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

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

Cave_Chaos.swf

This is the info page for
Flash #244309

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


Text
GAME IS LOADING

PLAY GAMES  ON  WWW.Y8.COM

sound
manager

LINKAGE

<p align="left"><font face="FFF Neostandard Bold_8pt_st" size="8" color="#000000" letterSpacing="0.000000" kerning="1">100.</font></p>

<p align="left"><font face="FFF Neostandard Bold_8pt_st" size="8" color="#000000" letterSpacing="0.000000" kerning="1">HEATHER</font></p>

<p align="left"><font face="FFF Neostandard Bold_8pt_st" size="8" color="#000000" letterSpacing="0.000000" kerning="1">10000</font></p>

HIGHSCORES ARE AVAILABLE
AT NITROME.COM

CLICK TO PLAY AT
NITROME.COM

<p align="center"><font face="FFF Neostandard Bold_8pt_st" size="8" color="#000000" letterSpacing="0.000000" kerning="1">YOUR SCORE IS 1000</font></p>

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

P1
CONTROLS:

P2
CONTROLS:

<p align="left"></p>

<p align="right"></p>

This game has been URL-Locked!
If you are reading this message then this
version of the game has been stolen and
hosted on a site without the prior permission
of Nitrome!
For licencing information please contact: enquiries@nitrome.com

GAME BY NITROME
www.nitrome.com

ARTWORK

PROGRAMMING

MUSIC

(PHYSICS POWERED BY BOX2D)

DOUBLE JUMP - ALLOWS THE PLAYER
TO JUMP AGAIN WHEN IN THE AIR.

BOMB - KILLS ALL ENEMIES WITHIN
RANGE.

INVINCIBILITY - KILLS ENEMIES
ON CONTACT.

RUN

JUMP

ESCAPE

TAP LEFT &
RIGHT TO
ESCAPE

PUSHY

MO & DJ

SILKY

CAPTAIN
TONGUE

MR NIBBLES

HURL

DYNA - MO

ActionScript [AS3]

Section 1
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2CircleDef extends b2ShapeDef { public var localPosition:b2Vec2; public var radius:Number; public function b2CircleDef(){ localPosition = new b2Vec2(0, 0); super(); type = b2Shape.e_circleShape; radius = 1; } } }//package Box2D.Collision.Shapes
Section 2
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_localPosition:b2Vec2; public var m_radius:Number; public function b2CircleShape(_arg1:b2ShapeDef){ m_localPosition = new b2Vec2(); super(_arg1); var _local2:b2CircleDef = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22 = _arg1.R; var _local4:Number = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local10:Number; var _local6:b2Mat22 = _arg1.R; var _local7:Number = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); var _local8:Number = (_arg1.position.x + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); var _local9:Number = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); var _local11:Number = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; var _local12:Number = (_arg4.p2.x - _arg4.p1.x); var _local13:Number = (_arg4.p2.y - _arg4.p1.y); var _local14:Number = ((_local9 * _local12) + (_local10 * _local13)); var _local15:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local16:Number = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; var _local17:Number = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22 = _arg2.R; var _local4:Number = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; _local4 = _arg2.R; var _local5:Number = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local6:Number = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; var _local7:Number = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local8:Number = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } public function GetRadius():Number{ return (m_radius); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number = (m_localPosition.x - _arg1.x); var _local3:Number = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } } }//package Box2D.Collision.Shapes
Section 3
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { public class b2FilterData { public var categoryBits:uint;// = 1 public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public function Copy():b2FilterData{ var _local1:b2FilterData = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 4
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ center = new b2Vec2(0, 0); super(); } } }//package Box2D.Collision.Shapes
Section 5
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertices:Array; public var vertexCount:int; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; var _local1:int; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function SetAsBox(_arg1:Number, _arg2:Number):void{ vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); if (_arg3){ _local5 = _arg3; _local6 = s_mat; _local6.Set(_arg4); _local7 = 0; while (_local7 < vertexCount) { _arg3 = vertices[_local7]; _arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y))); _arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y))); _arg3.x = _arg1; _local7++; }; }; } } }//package Box2D.Collision.Shapes
Section 6
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { private var s_supportVec:b2Vec2; public var m_centroid:b2Vec2; public var m_obb:b2OBB; public var m_vertices:Array; public var m_normals:Array; public var m_coreVertices:Array; public var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local3:int; 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; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; var _local2:b2PolygonDef = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; var _local4:int = _local3; var _local5:int = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local10:Number; var _local4:b2Mat22 = _arg1.R; var _local5:Number = (_arg2.x - _arg1.position.x); var _local6:Number = (_arg2.y - _arg1.position.y); var _local7:Number = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); var _local8:Number = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); var _local9:int; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local20:Number; var _local21:Number; var _local6:Number = 0; var _local7:Number = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; var _local12:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local13:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; var _local14:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local15:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); var _local18 = -1; var _local19:int; while (_local19 < m_vertexCount) { _local11 = m_vertices[_local19]; _local8 = (_local11.x - _local12); _local9 = (_local11.y - _local13); _local11 = m_normals[_local19]; _local20 = ((_local11.x * _local8) + (_local11.y * _local9)); _local21 = ((_local11.x * _local16) + (_local11.y * _local17)); if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){ _local6 = (_local20 / _local21); _local18 = _local19; } else { if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){ _local7 = (_local20 / _local21); }; }; if (_local7 < _local6){ return (false); }; _local19++; }; if (_local18 >= 0){ _arg2[0] = _local6; _local10 = _arg1.R; _local11 = m_normals[_local18]; _arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); return (true); }; return (false); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); var _local6:b2Mat22 = _local5; _local4 = m_obb.extents; var _local7:Number = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); var _local8:Number = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; var _local9:Number = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); var _local10:Number = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB = s_sweptAABB1; var _local5:b2AABB = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y); _arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y); } override public function ComputeMass(_arg1:b2MassData):void{ var _local10:b2Vec2; var _local11:b2Vec2; 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:Number = 0; var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; var _local7:Number = 0; var _local8:Number = (1 / 3); var _local9:int; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0]; _local12 = (_local10.x - _local6); _local13 = (_local10.y - _local7); _local14 = (_local11.x - _local6); _local15 = (_local11.y - _local7); _local16 = ((_local12 * _local15) - (_local13 * _local14)); _local17 = (0.5 * _local16); _local4 = (_local4 + _local17); _local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x))); _local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y))); _local18 = _local6; _local19 = _local7; _local20 = _local12; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18)); _local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local5 = (_local5 + (_local16 * (_local24 + _local25))); _local9++; }; _arg1.mass = (m_density * _local4); _local2 = (_local2 * (1 / _local4)); _local3 = (_local3 * (1 / _local4)); _arg1.center.Set(_local2, _local3); _arg1.I = (m_density * _local5); } public function GetOBB():b2OBB{ return (m_obb); } public function GetCentroid():b2Vec2{ return (m_centroid); } public function GetVertexCount():int{ return (m_vertexCount); } public function GetVertices():Array{ return (m_vertices); } public function GetCoreVertices():Array{ return (m_coreVertices); } public function GetNormals():Array{ return (m_normals); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_coreVertices[0])); } public function Centroid(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_centroid)); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local11:Number; _local5 = _arg1.R; var _local6:Number = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); var _local7:Number = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); var _local8:int; _local4 = m_coreVertices[0]; var _local9:Number = ((_local4.x * _local6) + (_local4.y * _local7)); var _local10 = 1; while (_local10 < m_vertexCount) { _local4 = m_coreVertices[_local10]; _local11 = ((_local4.x * _local6) + (_local4.y * _local7)); if (_local11 > _local9){ _local8 = _local10; _local9 = _local11; }; _local10++; }; _local5 = _arg1.R; _local4 = m_coreVertices[_local8]; s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y))); s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y))); return (s_supportVec); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local4:Number; var _local5:Number; m_sweepRadius = 0; var _local3:int; while (_local3 < m_vertexCount) { _local2 = m_coreVertices[_local3]; _local4 = (_local2.x - _arg1.x); _local5 = (_local2.y - _arg1.y); _local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local4 > m_sweepRadius){ m_sweepRadius = _local4; }; _local3++; }; } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local7:Number; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; _local7 = (1 / 3); var _local8:int; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local7:b2Vec2; 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; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; var _local5:Array = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; var _local6:Number = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 7
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2Shape { public var m_type:int; public var m_next:b2Shape; public var m_body:b2Body; public var m_sweepRadius:Number; public var m_density:Number; public var m_friction:Number; public var m_restitution:Number; public var m_proxyId:uint; public var m_filter:b2FilterData; public var m_isSensor:Boolean; public var m_userData; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_polygonShape:int = 1; public static const e_shapeTypeCount:int = 2; private static var s_proxyAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_resetAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxyId = b2Pair.b2_nullProxy; m_filter = _arg1.filter.Copy(); m_isSensor = _arg1.isSensor; } public function GetType():int{ return (m_type); } public function IsSensor():Boolean{ return (m_isSensor); } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function GetBody():b2Body{ return (m_body); } public function GetNext():b2Shape{ return (m_next); } public function GetUserData(){ return (m_userData); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function ComputeMass(_arg1:b2MassData):void{ } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetFriction():Number{ return (m_friction); } public function GetRestitution():Number{ return (m_restitution); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB = s_proxyAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; var _local4:b2AABB = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); var _local3:b2AABB = s_resetAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } public static function Destroy(_arg1:b2Shape, _arg2):void{ } } }//package Box2D.Collision.Shapes
Section 8
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var type:int; public var userData;// = null public var friction:Number;// = 0.2 public var restitution:Number;// = 0 public var density:Number;// = 0 public var isSensor:Boolean;// = false public var filter:b2FilterData; public function b2ShapeDef(){ type = b2Shape.e_unknownShape; filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 9
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var lowerBound:b2Vec2; public var upperBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number = (upperBound.x - lowerBound.x); var _local2:Number = (upperBound.y - lowerBound.y); var _local3:Boolean = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 10
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var value:uint; public var proxyId:uint; public var stabbingCount:uint; public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } public function Swap(_arg1:b2Bound):void{ var _local2:uint = value; var _local3:uint = proxyId; var _local4:uint = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } } }//package Box2D.Collision
Section 11
//b2BoundValues (Box2D.Collision.b2BoundValues) package Box2D.Collision { public class b2BoundValues { public var lowerValues:Array; public var upperValues:Array; public function b2BoundValues(){ lowerValues = [0, 0]; upperValues = [0, 0]; super(); } } }//package Box2D.Collision
Section 12
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_pairManager:b2PairManager; public var m_proxyPool:Array; public var m_freeProxy:uint; public var m_bounds:Array; public var m_queryResults:Array; public var m_queryResultCount:int; public var m_worldAABB:b2AABB; public var m_quantizationFactor:b2Vec2; public var m_proxyCount:int; public var m_timeStamp:uint; public static const b2_invalid:uint = b2Settings.USHRT_MAX; public static const b2_nullEdge:uint = b2Settings.USHRT_MAX; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; var _local4:Number = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); _local3 = 0; while (_local3 < (b2Settings.b2_maxProxies - 1)) { _local6 = new b2Proxy(); m_proxyPool[_local3] = _local6; _local6.SetNext((_local3 + 1)); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; _local3++; }; _local6 = new b2Proxy(); m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function InRange(_arg1:b2AABB):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = _arg1.lowerBound.x; _local3 = _arg1.lowerBound.y; _local2 = (_local2 - m_worldAABB.upperBound.x); _local3 = (_local3 - m_worldAABB.upperBound.y); _local4 = m_worldAABB.lowerBound.x; _local5 = m_worldAABB.lowerBound.y; _local4 = (_local4 - _arg1.upperBound.x); _local5 = (_local5 - _arg1.upperBound.y); _local2 = b2Math.b2Max(_local2, _local4); _local3 = b2Math.b2Max(_local3, _local5); return ((b2Math.b2Max(_local2, _local3) < 0)); } public function GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy = m_proxyPool[_arg1]; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){ return (null); }; return (_local2); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:b2Bound; var _local22:int; var _local23:b2Proxy; var _local5:uint = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; var _local6:uint = (2 * m_proxyCount); var _local7:Array = new Array(); var _local8:Array = new Array(); ComputeBounds(_local7, _local8, _arg1); var _local9:int; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local13 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local16 = new Array(); _local18 = (_local13 - _local12); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local12 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local19 = _local11[_local12]; _local20 = _local11[_local13]; _local19.value = _local7[_local9]; _local19.proxyId = _local5; _local20.value = _local8[_local9]; _local20.proxyId = _local5; _local21 = _local11[int((_local12 - 1))]; _local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount; _local21 = _local11[int((_local13 - 1))]; _local20.stabbingCount = _local21.stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local21 = _local11[_local3]; _local21.stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local19 = _local11[_local3]; _local23 = m_proxyPool[_local19.proxyId]; if (_local19.IsLower()){ _local23.lowerBounds[_local9] = _local3; } else { _local23.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; var _local10:int; while (_local10 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]); _local10++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local5); } public function DestroyProxy(_arg1:uint):void{ var _local2:b2Bound; var _local3:b2Bound; var _local8:Array; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:int; var _local15:int; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; var _local4:b2Proxy = m_proxyPool[_arg1]; var _local5:int = (2 * m_proxyCount); var _local6:int; while (_local6 < 2) { _local8 = m_bounds[_local6]; _local9 = _local4.lowerBounds[_local6]; _local10 = _local4.upperBounds[_local6]; _local2 = _local8[_local9]; _local11 = _local2.value; _local3 = _local8[_local10]; _local12 = _local3.value; _local13 = new Array(); _local15 = ((_local10 - _local9) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local9 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = _local9; _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local13 = new Array(); _local15 = ((_local5 - _local10) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local10 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = (_local10 - 1); _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = (_local5 - 2); _local17 = _local9; while (_local17 < _local15) { _local2 = _local8[_local17]; _local19 = m_proxyPool[_local2.proxyId]; if (_local2.IsLower()){ _local19.lowerBounds[_local6] = _local17; } else { _local19.upperBounds[_local6] = _local17; }; _local17++; }; _local15 = (_local10 - 1); _local18 = _local9; while (_local18 < _local15) { _local2 = _local8[_local18]; _local2.stabbingCount--; _local18++; }; Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6); _local6++; }; var _local7:int; while (_local7 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]); _local7++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local4.userData = null; _local4.overlapCount = b2_invalid; _local4.lowerBounds[0] = b2_invalid; _local4.lowerBounds[1] = b2_invalid; _local4.upperBounds[0] = b2_invalid; _local4.upperBounds[1] = b2_invalid; _local4.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{ var _local3:Array; var _local4:int; var _local5:uint; var _local6:uint; var _local7:b2Bound; var _local8:b2Bound; var _local9:b2Bound; var _local10:uint; var _local11:b2Proxy; var _local16:Array; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:uint; var _local21:int; var _local22:int; var _local23:uint; var _local24:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; var _local12:uint = (2 * m_proxyCount); var _local13:b2Proxy = m_proxyPool[_arg1]; var _local14:b2BoundValues = new b2BoundValues(); ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2); var _local15:b2BoundValues = new b2BoundValues(); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5][_local13.lowerBounds[_local5]]; _local15.lowerValues[_local5] = _local7.value; _local7 = m_bounds[_local5][_local13.upperBounds[_local5]]; _local15.upperValues[_local5] = _local7.value; _local5++; }; _local5 = 0; while (_local5 < 2) { _local16 = m_bounds[_local5]; _local17 = _local13.lowerBounds[_local5]; _local18 = _local13.upperBounds[_local5]; _local19 = _local14.lowerValues[_local5]; _local20 = _local14.upperValues[_local5]; _local7 = _local16[_local17]; _local21 = (_local19 - _local7.value); _local7.value = _local19; _local7 = _local16[_local18]; _local22 = (_local20 - _local7.value); _local7.value = _local20; if (_local21 < 0){ _local6 = _local17; while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local8.proxyId]; _local8.stabbingCount++; if (_local8.IsUpper() == true){ if (TestOverlap(_local14, _local24)){ m_pairManager.AddBufferedPair(_arg1, _local23); }; _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; if (_local22 > 0){ _local6 = _local18; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount++; if (_local9.IsLower() == true){ if (TestOverlap(_local14, _local11)){ m_pairManager.AddBufferedPair(_arg1, _local10); }; _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local21 > 0){ _local6 = _local17; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount--; if (_local9.IsUpper()){ if (TestOverlap(_local15, _local11)){ m_pairManager.RemoveBufferedPair(_arg1, _local10); }; _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local22 < 0){ _local6 = _local18; while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local23]; _local8.stabbingCount--; if (_local8.IsLower() == true){ if (TestOverlap(_local15, _local24)){ m_pairManager.RemoveBufferedPair(_arg1, _local23); }; _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; _local5++; }; } public function Commit():void{ m_pairManager.Commit(); } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local6:uint; var _local7:uint; var _local12:b2Proxy; var _local4:Array = new Array(); var _local5:Array = new Array(); ComputeBounds(_local4, _local5, _arg1); var _local8:Array = [_local6]; var _local9:Array = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); var _local10:int; var _local11:int; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local5:int; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number = _arg3.lowerBound.x; var _local5:Number = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); var _local6:Number = _arg3.upperBound.x; var _local7:Number = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg2.upperBounds[_local3]]; if (_arg1.lowerValues[_local3] > _local5.value){ return (false); }; _local5 = _local4[_arg2.lowerBounds[_local3]]; if (_arg1.upperValues[_local3] < _local5.value){ return (false); }; _local3++; }; return (true); } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local10:b2Bound; var _local12:int; var _local13:int; var _local14:b2Proxy; var _local8:uint = BinarySearch(_arg5, _arg6, _arg3); var _local9:uint = BinarySearch(_arg5, _arg6, _arg4); var _local11:uint = _local8; while (_local11 < _local9) { _local10 = _arg5[_local11]; if (_local10.IsLower()){ IncrementOverlapCount(_local10.proxyId); }; _local11++; }; if (_local8 > 0){ _local12 = (_local8 - 1); _local10 = _arg5[_local12]; _local13 = _local10.stabbingCount; while (_local13) { _local10 = _arg5[_local12]; if (_local10.IsLower()){ _local14 = m_proxyPool[_local10.proxyId]; if (_local8 <= _local14.upperBounds[_arg7]){ IncrementOverlapCount(_local10.proxyId); _local13--; }; }; _local12--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { (m_proxyPool[_local1] as b2Proxy).timeStamp = 0; _local1++; }; m_timeStamp = 1; } else { m_timeStamp++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local6:int; var _local7:b2Bound; var _local4:int; var _local5:int = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); _local7 = _arg1[_local6]; if (_local7.value > _arg3){ _local5 = (_local6 - 1); } else { if (_local7.value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.Collision
Section 13
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 14
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); var _local10:Number = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local11:b2Mat22; var _local12:b2Vec2; var _local25:Number; var _local6:int = _arg1.m_vertexCount; var _local7:Array = _arg1.m_vertices; var _local8:Array = _arg1.m_normals; var _local9:int = _arg4.m_vertexCount; var _local10:Array = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; var _local13:Number = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); var _local14:Number = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; var _local15:Number = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); var _local16:Number = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; var _local20:Number = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local21:Number = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; var _local22:Number = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local23:Number = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); var _local24:Number = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local8:b2Vec2; var _local9:b2Mat22; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; var _local6:int = _arg2.m_vertexCount; var _local7:Array = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; var _local10:Number = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); var _local11:Number = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); var _local12:Number = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); var _local13:Number = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); var _local14:int; var _local15:Number = -(Number.MAX_VALUE); var _local16:int; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; var _local17:Number = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; var _local18:int = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); var _local19:Number = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; var _local20:int = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; var _local21:Number = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local12:b2Mat22; var _local13:b2Vec2; var _local20:ClipVertex; var _local23:Number; var _local7:int = _arg2.m_vertexCount; var _local8:Array = _arg2.m_normals; var _local9:int = _arg5.m_vertexCount; var _local10:Array = _arg5.m_vertices; var _local11:Array = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; var _local14:Number = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); var _local15:Number = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; var _local16:Number = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; var _local21:int = _local17; var _local22:int = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local17:int; var _local18:uint; var _local34:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; var _local7:int; var _local8:Array = [_local7]; var _local9:Number = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; var _local10:int; var _local11:Array = [_local10]; var _local12:Number = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; var _local15:b2XForm = new b2XForm(); var _local16:b2XForm = new b2XForm(); var _local19:Number = 0.98; var _local20:Number = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; var _local21:Array = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); var _local22:int = _local13.m_vertexCount; var _local23:Array = _local13.m_vertices; var _local24:b2Vec2 = _local23[_local17]; var _local25:b2Vec2 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; var _local26:b2Vec2 = b2Math.SubtractVV(_local37, _local25); var _local27:b2Vec2 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); var _local28:b2Vec2 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); var _local29:Number = b2Math.b2Dot(_local28, _local25); var _local30:Number = -(b2Math.b2Dot(_local27, _local25)); var _local31:Number = b2Math.b2Dot(_local27, _local37); var _local32:Array = [new ClipVertex(), new ClipVertex()]; var _local33:Array = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); var _local35:int; var _local36:int; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local18:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; var _local8:Number = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local9:Number = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; var _local10:Number = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local11:Number = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); var _local12:Number = (_local10 - _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local15:Number = _arg2.m_radius; var _local16:Number = _arg4.m_radius; var _local17:Number = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; var _local19:b2ManifoldPoint = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); var _local20:Number = (0.5 * (_local8 + _local10)); var _local21:Number = (0.5 * (_local9 + _local11)); var _local22:Number = (_local20 - _arg3.position.x); var _local23:Number = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local17:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; var _local13:Number = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); var _local14:Number = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; var _local15:Number = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); var _local16:Number = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); var _local18:int; var _local19:Number = -(Number.MAX_VALUE); var _local20:Number = _arg4.m_radius; var _local21:int = _arg2.m_vertexCount; var _local22:Array = _arg2.m_vertices; var _local23:Array = _arg2.m_normals; var _local24:int; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; var _local25:int = _local18; var _local26:int = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; var _local27:b2Vec2 = _local22[_local26]; var _local28:Number = (_local27.x - _local11.x); var _local29:Number = (_local27.y - _local11.y); var _local30:Number = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); var _local31:Number = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = 0; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2 = _arg2.lowerBound; var _local4:b2Vec2 = _arg1.upperBound; var _local5:Number = (_local3.x - _local4.x); var _local6:Number = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; var _local7:Number = (_local3.x - _local4.x); var _local8:Number = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } } }//package Box2D.Collision
Section 15
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var features:Features; public var _key:uint; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID = new b2ContactID(); _local1.key = key; return (_local1); } public function get key():uint{ return (_key); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } } }//package Box2D.Collision
Section 16
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2ContactPoint { public var shape1:b2Shape; public var shape2:b2Shape; public var position:b2Vec2; public var velocity:b2Vec2; public var normal:b2Vec2; public var separation:Number; public var friction:Number; public var restitution:Number; public var id:b2ContactID; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 17
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Distance { private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local17:Number; var _local6:b2Vec2 = _arg5[0]; var _local7:b2Vec2 = _arg5[1]; var _local8:b2Vec2 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; var _local12:Number = -(_local7.x); var _local13:Number = -(_local7.y); var _local14:Number = (_local6.x - _local7.x); var _local15:Number = (_local6.y - _local7.y); var _local16:Number = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local35:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; var _local14:b2Vec2 = _arg4[2]; var _local15:Number = _local6.x; var _local16:Number = _local6.y; var _local17:Number = _local7.x; var _local18:Number = _local7.y; var _local19:Number = _local8.x; var _local20:Number = _local8.y; var _local21:Number = (_local17 - _local15); var _local22:Number = (_local18 - _local16); var _local23:Number = (_local19 - _local15); var _local24:Number = (_local20 - _local16); var _local25:Number = (_local19 - _local17); var _local26:Number = (_local20 - _local18); var _local27:Number = -(((_local15 * _local21) + (_local16 * _local22))); var _local28:Number = ((_local17 * _local21) + (_local18 * _local22)); var _local29:Number = -(((_local15 * _local23) + (_local16 * _local24))); var _local30:Number = ((_local19 * _local23) + (_local20 * _local24)); var _local31:Number = -(((_local17 * _local25) + (_local18 * _local26))); var _local32:Number = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; var _local33:Number = ((_local21 * _local24) - (_local22 * _local23)); var _local34:Number = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); var _local36:Number = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; var _local37:Number = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; var _local38:Number = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); var _local39:Number = (_local36 * _local38); var _local40:Number = (_local37 * _local38); var _local41:Number = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local4:Number = (100 * Number.MIN_VALUE); var _local5:int; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; var _local8:Array = s_p1s; var _local9:Array = s_p2s; var _local10:Array = s_points; var _local11:int; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); var _local12:Number = 0; var _local13 = 20; var _local14:int; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - ((_local15 * _local19) + (_local16 * _local20))) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; var _local9:Number = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local10:Number = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; var _local11:Number = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local12:Number = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:Number = ((_local13 * _local13) + (_local14 * _local14)); var _local16:Number = (_arg3.m_radius - b2Settings.b2_toiSlop); var _local17:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); var _local18:Number = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local9:b2Point = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local10:Number = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); var _local11:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int = _arg3.m_type; var _local8:int = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } } }//package Box2D.Collision
Section 18
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var points:Array; public var normal:b2Vec2; public var pointCount:int;// = 0 public function b2Manifold(){ points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Reset():void{ var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } public function Set(_arg1:b2Manifold):void{ pointCount = _arg1.pointCount; var _local2:int; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } } }//package Box2D.Collision
Section 19
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var localPoint1:b2Vec2; public var localPoint2:b2Vec2; public var separation:Number; public var normalImpulse:Number; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalImpulse = 0; tangentImpulse = 0; id.key = 0; } public function Set(_arg1:b2ManifoldPoint):void{ localPoint1.SetV(_arg1.localPoint1); localPoint2.SetV(_arg1.localPoint2); separation = _arg1.separation; normalImpulse = _arg1.normalImpulse; tangentImpulse = _arg1.tangentImpulse; id.key = _arg1.id.key; } } }//package Box2D.Collision
Section 20
//b2OBB (Box2D.Collision.b2OBB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2OBB { public var R:b2Mat22; public var center:b2Vec2; public var extents:b2Vec2; public function b2OBB(){ R = new b2Mat22(); center = new b2Vec2(); extents = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 21
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var userData;// = null public var proxyId1:uint; public var proxyId2:uint; public var next:uint; public var status:uint; public static var b2_nullPair:uint = b2Settings.USHRT_MAX; public static var b2_nullProxy:uint = b2Settings.USHRT_MAX; public static var b2_tableCapacity:int = b2Settings.b2_maxPairs; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairBuffered:uint = 1; public static var e_pairRemoved:uint = 2; public static var e_pairFinal:uint = 4; public function SetBuffered():void{ status = (status | e_pairBuffered); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } } }//package Box2D.Collision
Section 22
//b2PairCallback (Box2D.Collision.b2PairCallback) package Box2D.Collision { public class b2PairCallback { public function PairAdded(_arg1, _arg2){ return (null); } public function PairRemoved(_arg1, _arg2, _arg3):void{ } } }//package Box2D.Collision
Section 23
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PairManager { public var m_broadPhase:b2BroadPhase; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_freePair:uint; public var m_pairCount:int; public var m_pairBuffer:Array; public var m_pairBufferCount:int; public var m_hashTable:Array; public function b2PairManager(){ var _local1:uint; super(); m_hashTable = new Array(b2Pair.b2_tableCapacity); _local1 = 0; while (_local1 < b2Pair.b2_tableCapacity) { m_hashTable[_local1] = b2Pair.b2_nullPair; _local1++; }; m_pairs = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1] = new b2Pair(); _local1++; }; m_pairBuffer = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairBuffer[_local1] = new b2BufferedPair(); _local1++; }; _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy; m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy; m_pairs[_local1].userData = null; m_pairs[_local1].status = 0; m_pairs[_local1].next = (_local1 + 1); _local1++; }; m_pairs[int((b2Settings.b2_maxPairs - 1))].next = b2Pair.b2_nullPair; m_pairCount = 0; m_pairBufferCount = 0; } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = AddPair(_arg1, _arg2); if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = Find(_arg1, _arg2); if (_local4 == null){ return; }; if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; var _local3:int; var _local4:Array = m_broadPhase.m_proxyPool; _local2 = 0; while (_local2 < m_pairBufferCount) { _local1 = m_pairBuffer[_local2]; _local5 = Find(_local1.proxyId1, _local1.proxyId2); _local5.ClearBuffered(); _local6 = _local4[_local5.proxyId1]; _local7 = _local4[_local5.proxyId2]; if (_local5.IsRemoved()){ if (_local5.IsFinal() == true){ m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData); }; _local1 = m_pairBuffer[_local3]; _local1.proxyId1 = _local5.proxyId1; _local1.proxyId2 = _local5.proxyId2; _local3++; } else { if (_local5.IsFinal() == false){ _local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData); _local5.SetFinal(); }; }; _local2++; }; _local2 = 0; while (_local2 < _local3) { _local1 = m_pairBuffer[_local2]; RemovePair(_local1.proxyId1, _local1.proxyId2); _local2++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; var _local5:uint = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; var _local4:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local5:uint = m_hashTable[_local4]; var _local6:b2Pair; while (_local5 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local5], _arg1, _arg2)){ _local8 = _local5; _local3 = m_pairs[_local5]; if (_local6){ _local6.next = _local3.next; } else { m_hashTable[_local4] = _local3.next; }; _local3 = m_pairs[_local8]; _local9 = _local3.userData; _local3.next = m_freePair; _local3.proxyId1 = b2Pair.b2_nullProxy; _local3.proxyId2 = b2Pair.b2_nullProxy; _local3.userData = null; _local3.status = 0; m_freePair = _local8; m_pairCount--; return (_local9); } else { _local6 = m_pairs[_local5]; _local5 = _local6.next; }; }; return (null); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:b2Pair; var _local5:uint = m_hashTable[_arg3]; _local4 = m_pairs[_local5]; while (((!((_local5 == b2Pair.b2_nullPair))) && ((Equals(_local4, _arg1, _arg2) == false)))) { _local5 = _local4.next; _local4 = m_pairs[_local5]; }; if (_local5 == b2Pair.b2_nullPair){ return (null); }; return (_local4); } private function ValidateBuffer():void{ } private function ValidateTable():void{ } public static function Hash(_arg1:uint, _arg2:uint):uint{ var _local3:uint = (((_arg2 << 16) & 4294901760) | _arg1); _local3 = (~(_local3) + ((_local3 << 15) & 4294934528)); _local3 = (_local3 ^ ((_local3 >> 12) & 1048575)); _local3 = (_local3 + ((_local3 << 2) & 4294967292)); _local3 = (_local3 ^ ((_local3 >> 4) & 268435455)); _local3 = (_local3 * 2057); _local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF)); return (_local3); } public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{ return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3)))); } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } } }//package Box2D.Collision
Section 24
//b2Point (Box2D.Collision.b2Point) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Point { public var p:b2Vec2; public function b2Point(){ p = new b2Vec2(); super(); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 25
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var lowerBounds:Array; public var upperBounds:Array; public var overlapCount:uint; public var timeStamp:uint; public var userData;// = null public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } } }//package Box2D.Collision
Section 26
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local5:b2Vec2 = _arg3.p1; var _local6:Number = (_arg3.p2.x - _local5.x); var _local7:Number = (_arg3.p2.y - _local5.y); var _local8:Number = (p2.x - p1.x); var _local9:Number = (p2.y - p1.y); var _local10:Number = _local9; var _local11:Number = -(_local8); var _local12:Number = (100 * Number.MIN_VALUE); var _local13:Number = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local7) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.Collision
Section 27
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local7:Number = _arg1.m_sweepRadius; var _local8:Number = _arg3.m_sweepRadius; var _local9:Number = _arg2.t0; var _local10:Number = (_arg2.c.x - _arg2.c0.x); var _local11:Number = (_arg2.c.y - _arg2.c0.y); var _local12:Number = (_arg4.c.x - _arg4.c0.x); var _local13:Number = (_arg4.c.y - _arg4.c0.y); var _local14:Number = (_arg2.a - _arg2.a0); var _local15:Number = (_arg4.a - _arg4.a0); var _local16:Number = 0; var _local17:b2Vec2 = s_p1; var _local18:b2Vec2 = s_p2; var _local19 = 20; var _local20:int; var _local21:Number = 0; var _local22:Number = 0; var _local23:Number = 0; var _local24:Number = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } }//package Box2D.Collision
Section 28
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var v:b2Vec2; public var id:b2ContactID; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 29
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceEdge:int; public var _incidentEdge:int; public var _incidentVertex:int; public var _flip:int; public var _m_id:b2ContactID; public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } public function get incidentEdge():int{ return (_incidentEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function get flip():int{ return (_flip); } } }//package Box2D.Collision
Section 30
//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 Set(_arg1:Number):void{ var _local2:Number; _local2 = Math.cos(_arg1); var _local3:Number = 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 Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } 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 SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local4:Number; var _local6:Number; _local2 = col1.x; var _local3:Number = col2.x; _local4 = col1.y; var _local5:Number = 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 Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number = col1.x; var _local5:Number = col2.x; var _local6:Number = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } public function Abs():void{ col1.Abs(); col2.Abs(); } } }//package Box2D.Common.Math
Section 31
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); 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 function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); 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 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 AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); var _local4:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); var _local5:b2Mat22 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:* = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); 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 b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } } }//package Box2D.Common.Math
Section 32
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var c0:b2Vec2; public var c:b2Vec2; public var a0:Number; public var a:Number; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ var _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; var _local3:b2Mat22 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } } }//package Box2D.Common.Math
Section 33
//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 SetZero():void{ x = 0; y = 0; } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function MulM(_arg1:b2Mat22):void{ var _local2:Number = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function CrossVF(_arg1:Number):void{ var _local2:Number = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function CrossFV(_arg1:Number):void{ var _local2:Number = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.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 Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function Normalize():Number{ var _local1:Number = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; var _local2:Number = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 34
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var position:b2Vec2; public var R:b2Mat22; 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 SetIdentity():void{ position.SetZero(); R.SetIdentity(); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } } }//package Box2D.Common.Math
Section 35
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _r:uint;// = 0 private var _g:uint;// = 0 private var _b:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function get color():uint{ return (((_r | (_g << 8)) | (_b << 16))); } } }//package Box2D.Common
Section 36
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const USHRT_MAX:int = 0xFFFF; public static const b2_pi:Number = 3.14159265358979; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxPolygonVertices:int = 8; public static const b2_maxProxies:int = 0x0200; public static const b2_maxPairs:int = 4096; public static const b2_linearSlop:Number = 0.005; public static const b2_angularSlop:Number = 0.0349065850398866; public static const b2_toiSlop:Number = 0.04; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_velocityThreshold:Number = 1; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const b2_maxLinearVelocity:Number = 200; public static const b2_maxLinearVelocitySquared:Number = 40000; public static const b2_maxAngularVelocity:Number = 250; public static const b2_maxAngularVelocitySquared:Number = 62500; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_timeToSleep:Number = 0.5; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_angularSleepTolerance:Number = 0.0111111111111111; public static function b2Assert(_arg1:Boolean):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 37
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local8:b2ManifoldPoint; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); var _local7:b2ContactPoint = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } } }//package Box2D.Dynamics.Contacts
Section 38
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Contact { public var m_flags:uint; public var m_prev:b2Contact; public var m_next:b2Contact; public var m_node1:b2ContactEdge; public var m_node2:b2ContactEdge; public var m_shape1:b2Shape; public var m_shape2:b2Shape; public var m_manifoldCount:int; public var m_friction:Number; public var m_restitution:Number; public var m_toi:Number; public static var e_nonSolidFlag:uint = 1; public static var e_slowFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var e_toiFlag:uint = 8; public static var s_registers:Array; public static var s_initialized:Boolean = false; public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){ m_node1 = new b2ContactEdge(); m_node2 = new b2ContactEdge(); super(); m_flags = 0; if (((!(_arg1)) || (!(_arg2)))){ m_shape1 = null; m_shape2 = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_nonSolidFlag); }; m_shape1 = _arg1; m_shape2 = _arg2; m_manifoldCount = 0; m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction)); m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution); m_prev = null; m_next = null; m_node1.contact = null; m_node1.prev = null; m_node1.next = null; m_node1.other = null; m_node2.contact = null; m_node2.prev = null; m_node2.next = null; m_node2.other = null; } public function GetManifolds():Array{ return (null); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetNext():b2Contact{ return (m_next); } public function GetShape1():b2Shape{ return (m_shape1); } public function GetShape2():b2Shape{ return (m_shape2); } public function Update(_arg1:b2ContactListener):void{ var _local2:int = m_manifoldCount; Evaluate(_arg1); var _local3:int = m_manifoldCount; var _local4:b2Body = m_shape1.m_body; var _local5:b2Body = m_shape2.m_body; if ((((_local3 == 0)) && ((_local2 > 0)))){ _local4.WakeUp(); _local5.WakeUp(); }; if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } public function Evaluate(_arg1:b2ContactListener):void{ } public static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } public static function InitializeRegisters():void{ var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); var _local1:int; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; var _local4:int = _arg1.m_type; var _local5:int = _arg2.m_type; var _local6:b2ContactRegister = s_registers[_local4][_local5]; var _local7:Function = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); //unresolved jump }; return (null); } public static function Destroy(_arg1:b2Contact, _arg2):void{ if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; var _local3:int = _arg1.m_shape1.m_type; var _local4:int = _arg1.m_shape2.m_type; var _local5:b2ContactRegister = s_registers[_local3][_local4]; var _local6:Function = _local5.destroyFcn; _local6(_arg1, _arg2); } } }//package Box2D.Dynamics.Contacts
Section 39
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var normal:b2Vec2; public var manifold:b2Manifold; public var body1:b2Body; public var body2:b2Body; public var friction:Number; public var restitution:Number; public var pointCount:int; public function b2ContactConstraint(){ normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 40
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var r1:b2Vec2; public var r2:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var positionImpulse:Number; public var normalMass:Number; public var tangentMass:Number; public var equalizedMass:Number; public var separation:Number; public var velocityBias:Number; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 41
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var other:b2Body; public var contact:b2Contact; public var prev:b2ContactEdge; public var next:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 42
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var createFcn:Function; public var destroyFcn:Function; public var primary:Boolean; } }//package Box2D.Dynamics.Contacts
Section 43
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; public class b2ContactResult { public var shape1:b2Shape; public var shape2:b2Shape; public var position:b2Vec2; public var normal:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ContactResult(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Dynamics.Contacts
Section 44
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactSolver { public var m_step:b2TimeStep; public var m_allocator; public var m_constraints:Array; public var m_constraintCount:int; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local10:b2Body; var _local11:b2Body; var _local12:int; var _local13:Array; 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:int; var _local23:b2Manifold; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraint; var _local27:uint; var _local28:b2ManifoldPoint; var _local29:b2ContactConstraintPoint; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; m_step = new b2TimeStep(); m_constraints = new Array(); super(); m_step.dt = _arg1.dt; m_step.inv_dt = _arg1.inv_dt; m_step.maxIterations = _arg1.maxIterations; m_allocator = _arg4; m_constraintCount = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; m_constraintCount = (m_constraintCount + _local5.m_manifoldCount); _local6++; }; _local6 = 0; while (_local6 < m_constraintCount) { m_constraints[_local6] = new b2ContactConstraint(); _local6++; }; var _local9:int; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1.m_body; _local11 = _local5.m_shape2.m_body; _local12 = _local5.m_manifoldCount; _local13 = _local5.GetManifolds(); _local14 = _local5.m_friction; _local15 = _local5.m_restitution; _local16 = _local10.m_linearVelocity.x; _local17 = _local10.m_linearVelocity.y; _local18 = _local11.m_linearVelocity.x; _local19 = _local11.m_linearVelocity.y; _local20 = _local10.m_angularVelocity; _local21 = _local11.m_angularVelocity; _local22 = 0; while (_local22 < _local12) { _local23 = _local13[_local22]; _local24 = _local23.normal.x; _local25 = _local23.normal.y; _local26 = m_constraints[_local9]; _local26.body1 = _local10; _local26.body2 = _local11; _local26.manifold = _local23; _local26.normal.x = _local24; _local26.normal.y = _local25; _local26.pointCount = _local23.pointCount; _local26.friction = _local14; _local26.restitution = _local15; _local27 = 0; while (_local27 < _local26.pointCount) { _local28 = _local23.points[_local27]; _local29 = _local26.points[_local27]; _local29.normalImpulse = _local28.normalImpulse; _local29.tangentImpulse = _local28.tangentImpulse; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local8 = _local10.m_xf.R; _local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x); _local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33)); _local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33)); _local32 = _local30; _local29.r1.Set(_local32, _local33); _local8 = _local11.m_xf.R; _local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x); _local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local30; _local29.r2.Set(_local34, _local35); _local36 = ((_local32 * _local32) + (_local33 * _local33)); _local37 = ((_local34 * _local34) + (_local35 * _local35)); _local38 = ((_local32 * _local24) + (_local33 * _local25)); _local39 = ((_local34 * _local24) + (_local35 * _local25)); _local40 = (_local10.m_invMass + _local11.m_invMass); _local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39))))); _local29.normalMass = (1 / _local40); _local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass)); _local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39))))); _local29.equalizedMass = (1 / _local41); _local42 = _local25; _local43 = -(_local24); _local44 = ((_local32 * _local42) + (_local33 * _local43)); _local45 = ((_local34 * _local42) + (_local35 * _local43)); _local46 = (_local10.m_invMass + _local11.m_invMass); _local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45))))); _local29.tangentMass = (1 / _local46); _local29.velocityBias = 0; if (_local29.separation > 0){ _local29.velocityBias = (-60 * _local29.separation); }; _local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33)); _local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32)); _local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47)); }; _local27++; }; _local9++; _local22++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; 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:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; 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; var _local17:b2Mat22; var _local18:b2Vec2; var _local20:b2ContactConstraint; var _local21:b2Body; var _local22:b2Body; var _local23:Number; var _local24:Number; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:int; var _local38:Number; var _local19:int; while (_local19 < m_constraintCount) { _local20 = m_constraints[_local19]; _local21 = _local20.body1; _local22 = _local20.body2; _local23 = _local21.m_angularVelocity; _local24 = _local22.m_angularVelocity; _local25 = _local21.m_linearVelocity; _local26 = _local22.m_linearVelocity; _local27 = _local21.m_invMass; _local28 = _local21.m_invI; _local29 = _local22.m_invMass; _local30 = _local22.m_invI; _local31 = _local20.normal.x; _local32 = _local20.normal.y; _local33 = _local32; _local34 = -(_local31); _local35 = _local20.friction; _local37 = _local20.pointCount; _local1 = 0; while (_local1 < _local37) { _local2 = _local20.points[_local1]; _local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y)); _local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x)); _local9 = ((_local7 * _local31) + (_local8 * _local32)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local10 = ((_local7 * _local33) + (_local8 * _local34)); _local12 = (_local2.tangentMass * -(_local10)); _local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0); _local11 = (_local13 - _local2.normalImpulse); _local38 = (_local35 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38); _local12 = (_local14 - _local2.tangentImpulse); _local15 = ((_local11 * _local31) + (_local12 * _local33)); _local16 = ((_local11 * _local32) + (_local12 * _local34)); _local25.x = (_local25.x - (_local27 * _local15)); _local25.y = (_local25.y - (_local27 * _local16)); _local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local26.x = (_local26.x + (_local29 * _local15)); _local26.y = (_local26.y + (_local29 * _local16)); _local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.normalImpulse = _local13; _local2.tangentImpulse = _local14; _local1++; }; _local21.m_angularVelocity = _local23; _local22.m_angularVelocity = _local24; _local19++; }; } public function FinalizeVelocityConstraints():void{ var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; var _local1:int; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local3:b2Mat22; var _local4:b2Vec2; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; 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 _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local2:Number = 0; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } } }//package Box2D.Dynamics.Contacts
Section 45
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function Evaluate(_arg1:b2ContactListener):void{ } override public function GetManifolds():Array{ return (null); } } }//package Box2D.Dynamics.Contacts
Section 46
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local6:b2Body = m_shape1.m_body; var _local7:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); var _local8:Array = [false, false]; var _local9:b2ContactPoint = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } } }//package Box2D.Dynamics.Contacts
Section 47
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonContact extends b2Contact { private var m0:b2Manifold; private var m_manifolds:Array; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local7:b2ContactPoint; var _local8:int; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); var _local9:Array = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local9[_local13] == true){ } else { _local4 = m0.points[_local13]; if (_local4.id._key == _local12){ _local9[_local13] = true; _local10.normalImpulse = _local4.normalImpulse; _local10.tangentImpulse = _local4.tangentImpulse; _local11 = true; if (_arg1 != null){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Persist(_local7); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Add(_local7); }; _local8++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local8 = 0; while (_local8 < m0.pointCount) { if (_local9[_local8]){ } else { _local4 = m0.points[_local8]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; _local8++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } } }//package Box2D.Dynamics.Contacts
Section 48
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_u:b2Vec2; public var m_frequencyHz:Number; public var m_dampingRatio:Number; public var m_gamma:Number; public var m_bias:Number; public var m_impulse:Number; public var m_mass:Number; public var m_length:Number; public function b2DistanceJoint(_arg1:b2DistanceJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; m_inv_dt = 0; } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local8:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; m_inv_dt = _arg1.inv_dt; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); var _local10:Number = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; var _local11:Number = ((_local6 * m_u.y) - (_local7 * m_u.x)); var _local12:Number = ((_local8 * m_u.y) - (_local9 * m_u.x)); var _local13:Number = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; _local2 = _local3.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local7:Number = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); var _local11:Number = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); var _local12:Number = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); var _local13:Number = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); var _local14:Number = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); var _local15:Number = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); var _local16:Number = (_local15 * m_u.x); var _local17:Number = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; if (m_frequencyHz > 0){ return (true); }; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local1 = _local2.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; var _local9:Number = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); var _local10:Number = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); var _local11:Number = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); var _local12:Number = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local13:Number = (-(m_mass) * _local12); m_u.Set(_local9, _local10); var _local14:Number = (_local13 * m_u.x); var _local15:Number = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function GetReactionTorque():Number{ return (0); } } }//package Box2D.Dynamics.Joints
Section 49
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2DistanceJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var length:Number; public var frequencyHz:Number; public var dampingRatio:Number; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); var _local5:Number = (_arg4.x - _arg3.x); var _local6:Number = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.Joints
Section 50
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_ground1:b2Body; public var m_ground2:b2Body; public var m_revolute1:b2RevoluteJoint; public var m_prismatic1:b2PrismaticJoint; public var m_revolute2:b2RevoluteJoint; public var m_prismatic2:b2PrismaticJoint; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_J:b2Jacobian; public var m_constant:Number; public var m_ratio:Number; public var m_mass:Number; public var m_force:Number; public function b2GearJoint(_arg1:b2GearJointDef){ var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); var _local2:int = _arg1.joint1.m_type; var _local3:int = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.m_body1; m_body1 = _arg1.joint1.m_body2; if (_local2 == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local4 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local4 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_local3 == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local5 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local5 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local4 + (m_ratio * _local5)); m_force = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function GetReactionTorque():Number{ var _local1:b2Mat22 = m_body2.m_xf.R; var _local2:Number = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); var _local3:Number = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); var _local4:Number = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } public function GetRatio():Number{ return (m_ratio); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local15:Number; var _local2:b2Body = m_ground1; var _local3:b2Body = m_ground2; var _local4:b2Body = m_body1; var _local5:b2Body = m_body2; var _local14:Number = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local5:Number = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); var _local6:Number = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } override public function SolvePositionConstraints():Boolean{ var _local4:Number; var _local5:Number; var _local1:Number = 0; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; var _local6:Number = (m_constant - (_local4 + (m_ratio * _local5))); var _local7:Number = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } } }//package Box2D.Dynamics.Joints
Section 51
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint1:b2Joint; public var joint2:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 52
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var angular1:Number; public var linear2:b2Vec2; public var angular2:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 53
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2Joint { public var m_type:int; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_body1:b2Body; public var m_body2:b2Body; public var m_inv_dt:Number; public var m_islandFlag:Boolean; public var m_collideConnected:Boolean; public var m_userData; public static const e_unknownJoint:int = 0; public static const e_revoluteJoint:int = 1; public static const e_prismaticJoint:int = 2; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_mouseJoint:int = 5; public static const e_gearJoint:int = 6; public static const e_inactiveLimit:int = 0; public static const e_atLowerLimit:int = 1; public static const e_atUpperLimit:int = 2; public static const e_equalLimits:int = 3; public function b2Joint(_arg1:b2JointDef){ m_node1 = new b2JointEdge(); m_node2 = new b2JointEdge(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetType():int{ return (m_type); } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function GetReactionForce():b2Vec2{ return (null); } public function GetReactionTorque():Number{ return (0); } public function GetBody1():b2Body{ return (m_body1); } public function GetBody2():b2Body{ return (m_body2); } public function GetNext():b2Joint{ return (m_next); } public function GetUserData(){ return (m_userData); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public function SolvePositionConstraints():Boolean{ return (false); } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } public static function Destroy(_arg1:b2Joint, _arg2):void{ } } }//package Box2D.Dynamics.Joints
Section 54
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var type:int; public var userData; public var body1:b2Body; public var body2:b2Body; public var collideConnected:Boolean; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 55
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var other:b2Body; public var joint:b2Joint; public var prev:b2JointEdge; public var next:b2JointEdge; } }//package Box2D.Dynamics.Joints
Section 56
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { private var K:b2Mat22; private var K1:b2Mat22; private var K2:b2Mat22; public var m_localAnchor:b2Vec2; public var m_target:b2Vec2; public var m_impulse:b2Vec2; public var m_mass:b2Mat22; public var m_C:b2Vec2; public var m_maxForce:Number; public var m_beta:Number; public var m_gamma:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local3:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); var _local2:Number = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); var _local4:b2Mat22 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); var _local5:Number = m_body2.m_mass; var _local6:Number = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); var _local7:Number = (((2 * _local5) * _arg1.dampingRatio) * _local6); var _local8:Number = ((_arg1.timeStep * _local5) * (_local6 * _local6)); m_gamma = (1 / (_local7 + _local8)); m_beta = (_local8 / (_local7 + _local8)); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function GetReactionForce():b2Vec2{ return (m_impulse); } override public function GetReactionTorque():Number{ return (0); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local7:Number; var _local8:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); var _local9:Number = (_arg1.dt * m_impulse.x); var _local10:Number = (_arg1.dt * m_impulse.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local2:b2Body = m_body2; _local3 = _local2.m_xf.R; var _local6:Number = (m_localAnchor.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; var _local8:Number = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); var _local9:Number = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y)); var _local10:Number = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); var _local11:Number = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); var _local12:Number = m_impulse.x; var _local13:Number = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); var _local14:Number = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); var _local15:Number = (_arg1.dt * _local10); var _local16:Number = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } override public function SolvePositionConstraints():Boolean{ return (true); } } }//package Box2D.Dynamics.Joints
Section 57
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var target:b2Vec2; public var maxForce:Number; public var frequencyHz:Number; public var dampingRatio:Number; public var timeStep:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; timeStep = (1 / 60); } } }//package Box2D.Dynamics.Joints
Section 58
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_localXAxis1:b2Vec2; public var m_localYAxis1:b2Vec2; public var m_refAngle:Number; public var m_linearJacobian:b2Jacobian; public var m_linearMass:Number; public var m_force:Number; public var m_angularMass:Number; public var m_torque:Number; public var m_motorJacobian:b2Jacobian; public var m_motorMass:Number; public var m_motorForce:Number; public var m_limitForce:Number; public var m_limitPositionImpulse:Number; public var m_lowerTranslation:Number; public var m_upperTranslation:Number; public var m_maxMotorForce:Number; public var m_motorSpeed:Number; public var m_enableLimit:Boolean; public var m_enableMotor:Boolean; public var m_limitState:int; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_linearJacobian = new b2Jacobian(); m_motorJacobian = new b2Jacobian(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_linearJacobian.SetZero(); m_linearMass = 0; m_force = 0; m_angularMass = 0; m_torque = 0; m_motorJacobian.SetZero(); m_motorMass = 0; m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerTranslation = _arg1.lowerTranslation; m_upperTranslation = _arg1.upperTranslation; m_maxMotorForce = _arg1.maxMotorForce; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22 = m_body1.m_xf.R; var _local2:Number = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); var _local3:Number = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); var _local4:Number = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); var _local5:Number = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function GetReactionTorque():Number{ return (m_torque); } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } public function GetMotorForce():Number{ return (m_motorForce); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5: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 _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; _local4 = _local2.m_xf.R; var _local14:Number = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); var _local15:Number = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); var _local16:Number = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); var _local17:Number = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local8:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = _local2.m_invMass; var _local5:Number = _local3.m_invMass; var _local6:Number = _local2.m_invI; var _local7:Number = _local3.m_invI; var _local9:Number = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local10:Number = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); var _local11:Number = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); var _local12:Number = (_local3.m_angularVelocity - _local2.m_angularVelocity); var _local13:Number = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); var _local14:Number = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local9:b2Mat22; var _local10:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = _local3.m_invMass; var _local6:Number = _local4.m_invMass; var _local7:Number = _local3.m_invI; var _local8:Number = _local4.m_invI; _local9 = _local3.m_xf.R; var _local11:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local12:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; var _local13:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local14:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; var _local15:Number = (_local3.m_sweep.c.x + _local11); var _local16:Number = (_local3.m_sweep.c.y + _local12); var _local17:Number = (_local4.m_sweep.c.x + _local13); var _local18:Number = (_local4.m_sweep.c.y + _local14); var _local19:Number = (_local17 - _local15); var _local20:Number = (_local18 - _local16); _local9 = _local3.m_xf.R; var _local21:Number = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); var _local22:Number = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); var _local23:Number = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local24:Number = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); var _local25:Number = b2Math.b2Abs(_local23); var _local26:Number = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); var _local27:Number = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local28:Number = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } } }//package Box2D.Dynamics.Joints
Section 59
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PrismaticJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var localAxis1:b2Vec2; public var referenceAngle:Number; public var enableLimit:Boolean; public var lowerTranslation:Number; public var upperTranslation:Number; public var enableMotor:Boolean; public var maxMotorForce:Number; public var motorSpeed:Number; public function b2PrismaticJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxis1.Set(1, 0); referenceAngle = 0; enableLimit = false; lowerTranslation = 0; upperTranslation = 0; enableMotor = false; maxMotorForce = 0; motorSpeed = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 60
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_ground:b2Body; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_u1:b2Vec2; public var m_u2:b2Vec2; public var m_constant:Number; public var m_ratio:Number; public var m_maxLength1:Number; public var m_maxLength2:Number; public var m_pulleyMass:Number; public var m_limitMass1:Number; public var m_limitMass2:Number; public var m_force:Number; public var m_limitForce1:Number; public var m_limitForce2:Number; public var m_positionImpulse:Number; public var m_limitPositionImpulse1:Number; public var m_limitPositionImpulse2:Number; public var m_state:int; public var m_limitState1:int; public var m_limitState2:int; public static const b2_minPulleyLength:Number = 2; public function b2PulleyJoint(_arg1:b2PulleyJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u1 = new b2Vec2(); m_u2 = new b2Vec2(); super(_arg1); m_ground = m_body1.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_ratio = _arg1.ratio; m_constant = (_arg1.length1 + (m_ratio * _arg1.length2)); m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio)); m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function GetReactionTorque():Number{ return (0); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } public function GetLength1():Number{ var _local1:b2Vec2 = m_body1.GetWorldPoint(m_localAnchor1); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetLength2():Number{ var _local1:b2Vec2 = m_body2.GetWorldPoint(m_localAnchor2); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetRatio():Number{ return (m_ratio); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local2.m_sweep.c.x + _local5); var _local11:Number = (_local2.m_sweep.c.y + _local6); var _local12:Number = (_local3.m_sweep.c.x + _local8); var _local13:Number = (_local3.m_sweep.c.y + _local9); var _local14:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local15:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local16:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local17:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); var _local18:Number = m_u1.Length(); var _local19:Number = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; var _local20:Number = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; var _local21:Number = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); var _local22:Number = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; 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 _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } override public function SolvePositionConstraints():Boolean{ var _local3:b2Mat22; 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; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local5:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local6:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local7:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local23:Number = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u1.Set((_local12 - _local4), (_local13 - _local5)); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local16 = m_u1.Length(); _local17 = m_u2.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local16)); } else { m_u1.SetZero(); }; if (_local17 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local17)); } else { m_u2.SetZero(); }; _local18 = ((m_constant - _local16) - (m_ratio * _local17)); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_pulleyMass) * _local18); _local20 = m_positionImpulse; m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19)); _local19 = (m_positionImpulse - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local14 = ((-(m_ratio) * _local19) * m_u2.x); _local15 = ((-(m_ratio) * _local19) * m_u2.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.SynchronizeTransform(); _local2.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); m_u1.Set((_local12 - _local4), (_local13 - _local5)); _local16 = m_u1.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local16)); m_u1.y = (m_u1.y * (1 / _local16)); } else { m_u1.SetZero(); }; _local18 = (m_maxLength1 - _local16); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local21 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local21); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } } }//package Box2D.Dynamics.Joints
Section 61
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PulleyJointDef extends b2JointDef { public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var length1:Number; public var maxLength1:Number; public var length2:Number; public var maxLength2:Number; public var ratio:Number; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); var _local8:Number = (_arg5.x - _arg3.x); var _local9:Number = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); var _local10:Number = (_arg6.x - _arg4.x); var _local11:Number = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; var _local12:Number = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 62
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { private var K:b2Mat22; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_pivotForce:b2Vec2; public var m_motorForce:Number; public var m_limitForce:Number; public var m_limitPositionImpulse:Number; public var m_pivotMass:b2Mat22; public var m_motorMass:Number; public var m_enableMotor:Boolean; public var m_maxMotorTorque:Number; public var m_motorSpeed:Number; public var m_enableLimit:Boolean; public var m_referenceAngle:Number; public var m_lowerAngle:Number; public var m_upperAngle:Number; public var m_limitState:int; public static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_pivotForce = new b2Vec2(); m_pivotMass = new b2Mat22(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_referenceAngle = _arg1.referenceAngle; m_pivotForce.Set(0, 0); m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerAngle = _arg1.lowerAngle; m_upperAngle = _arg1.upperAngle; m_maxMotorTorque = _arg1.maxMotorTorque; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ return (m_pivotForce); } override public function GetReactionTorque():Number{ return (m_limitForce); } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function GetUpperLimit():Number{ return (m_upperAngle); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetMotorTorque():Number{ return (m_motorForce); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local7:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local10:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local11:Number = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); var _local12:Number = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); var _local13:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); var _local14:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); var _local15:Number = (_arg1.dt * _local13); _local16 = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local6:b2Mat22; var _local25:Number; var _local26:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = 0; _local6 = _local3.m_xf.R; var _local7:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local9:Number = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; var _local10:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local11:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; var _local12:Number = (_local3.m_sweep.c.x + _local7); var _local13:Number = (_local3.m_sweep.c.y + _local8); var _local14:Number = (_local4.m_sweep.c.x + _local10); var _local15:Number = (_local4.m_sweep.c.y + _local11); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); var _local18:Number = _local3.m_invMass; var _local19:Number = _local4.m_invMass; var _local20:Number = _local3.m_invI; var _local21:Number = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); var _local22:Number = tImpulse.x; var _local23:Number = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local24:Number = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } } }//package Box2D.Dynamics.Joints
Section 63
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2RevoluteJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var referenceAngle:Number; public var enableLimit:Boolean; public var lowerAngle:Number; public var upperAngle:Number; public var enableMotor:Boolean; public var motorSpeed:Number; public var maxMotorTorque:Number; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 64
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; public class b2Body { public var m_flags:uint; public var m_type:int; public var m_xf:b2XForm; public var m_sweep:b2Sweep; public var m_linearVelocity:b2Vec2; public var m_angularVelocity:Number; public var m_force:b2Vec2; public var m_torque:Number; public var m_world:b2World; public var m_prev:b2Body; public var m_next:b2Body; public var m_shapeList:b2Shape; public var m_shapeCount:int; public var m_jointList:b2JointEdge; public var m_contactList:b2ContactEdge; public var m_mass:Number; public var m_invMass:Number; public var m_I:Number; public var m_invI:Number; public var m_linearDamping:Number; public var m_angularDamping:Number; public var m_sleepTime:Number; public var m_userData; private static var s_massData:b2MassData = new b2MassData(); private static var s_xf1:b2XForm = new b2XForm(); public static var e_frozenFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var e_sleepFlag:uint = 8; public static var e_allowSleepFlag:uint = 16; public static var e_bulletFlag:uint = 32; public static var e_fixedRotationFlag:uint = 64; public static var e_staticType:uint = 1; public static var e_dynamicType:uint = 2; public static var e_maxTypes:uint = 3; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function CreateShape(_arg1:b2ShapeDef):b2Shape{ var _local2:b2Shape; if (m_world.m_lock == true){ return (null); }; _local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); return (_local2); } public function DestroyShape(_arg1:b2Shape):void{ if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); var _local2:b2Shape = m_shapeList; var _local3:b2Shape; var _local4:Boolean; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_shapeList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; var _local5:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function SetMassFromShapes():void{ var _local1:b2Shape; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; var _local2:Number = 0; var _local3:Number = 0; var _local4:b2MassData = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); var _local5:b2Mat22 = m_xf.R; var _local6:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; var _local7:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); var _local4:b2Mat22 = m_xf.R; var _local5:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); var _local6:Boolean; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function GetXForm():b2XForm{ return (m_xf); } public function GetPosition():b2Vec2{ return (m_xf.position); } public function GetAngle():Number{ return (m_sweep.a); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x)); m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y)); m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)))); } public function GetMass():Number{ return (m_mass); } public function GetInertia():Number{ return (m_I); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } public function PutToSleep():void{ m_flags = (m_flags | e_sleepFlag); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; } public function GetShapeList():b2Shape{ return (m_shapeList); } public function GetJointList():b2JointEdge{ return (m_jointList); } public function GetNext():b2Body{ return (m_next); } public function GetUserData(){ return (m_userData); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetWorld():b2World{ return (m_world); } public function SynchronizeShapes():Boolean{ var _local4:b2Shape; var _local1:b2XForm = s_xf1; _local1.R.Set(m_sweep.a0); var _local2:b2Mat22 = _local1.R; var _local3:b2Vec2 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); var _local5:Boolean; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function SynchronizeTransform():void{ m_xf.R.Set(m_sweep.a); var _local1:b2Mat22 = m_xf.R; var _local2:b2Vec2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge = m_jointList; while (_local2) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } } }//package Box2D.Dynamics
Section 65
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2BodyDef { public var massData:b2MassData; public var userData; public var position:b2Vec2; public var angle:Number; public var linearDamping:Number; public var angularDamping:Number; public var allowSleep:Boolean; public var isSleeping:Boolean; public var fixedRotation:Boolean; public var isBullet:Boolean; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.Dynamics
Section 66
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 67
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; public class b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:b2FilterData = _arg1.GetFilterData(); var _local4:b2FilterData = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; var _local5:Boolean = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.Dynamics
Section 68
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import flash.events.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; import flash.utils.*; public class b2ContactListener { private var myTimer:Timer; private var playSound:Boolean;// = true public function b2ContactListener(){ myTimer = new Timer(25, 1); super(); } public function Add(_arg1:b2ContactPoint):void{ if (playSound){ if ((((((((((((((((((((((_arg1.shape1.GetBody().GetUserData().name == "baddy_runner")) || ((_arg1.shape1.GetBody().GetUserData().name == "baddy_licker")))) || ((_arg1.shape1.GetBody().GetUserData().name == "baddy_pusher")))) || ((_arg1.shape1.GetBody().GetUserData().name == "baddy_snail")))) || ((_arg1.shape1.GetBody().GetUserData().name == "crate")))) || ((_arg1.shape1.GetBody().GetUserData().name == "boulder2")))) || ((_arg1.shape1.GetBody().GetUserData().name == "boulder1")))) || ((_arg1.shape1.GetBody().GetUserData().name == "barrelstand")))) || ((_arg1.shape1.GetBody().GetUserData().name == "barrelside")))) || ((_arg1.shape1.GetBody().GetUserData().name == "MineCartLong")))) || ((_arg1.shape1.GetBody().GetUserData().name == "MineCart")))){ if (_arg1.shape1.GetBody().GetLinearVelocity().Length() > 6){ NitromeGame.sound_manager.playSound("hitSnd"); }; playSound = false; myTimer.addEventListener(TimerEvent.TIMER, runOnce); myTimer.start(); } else { if ((((((((((((((((((((((_arg1.shape2.GetBody().GetUserData().name == "baddy_runner")) || ((_arg1.shape2.GetBody().GetUserData().name == "baddy_licker")))) || ((_arg1.shape2.GetBody().GetUserData().name == "baddy_pusher")))) || ((_arg1.shape2.GetBody().GetUserData().name == "baddy_snail")))) || ((_arg1.shape2.GetBody().GetUserData().name == "crate")))) || ((_arg1.shape2.GetBody().GetUserData().name == "boulder2")))) || ((_arg1.shape2.GetBody().GetUserData().name == "boulder1")))) || ((_arg1.shape2.GetBody().GetUserData().name == "barrelstand")))) || ((_arg1.shape2.GetBody().GetUserData().name == "barrelside")))) || ((_arg1.shape2.GetBody().GetUserData().name == "MineCartLong")))) || ((_arg1.shape2.GetBody().GetUserData().name == "MineCart")))){ if (_arg1.shape2.GetBody().GetLinearVelocity().Length() > 6){ NitromeGame.sound_manager.playSound("hitSnd"); }; playSound = false; myTimer.addEventListener(TimerEvent.TIMER, runOnce); myTimer.start(); }; }; }; } function runOnce(_arg1:TimerEvent):void{ playSound = true; myTimer.stop(); myTimer.removeEventListener(TimerEvent.TIMER, runOnce); } public function Persist(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Result(_arg1:b2ContactResult):void{ } } }//package Box2D.Dynamics
Section 69
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_nullContact:b2NullContact; public var m_destroyImmediate:Boolean; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape = (_arg1 as b2Shape); var _local4:b2Shape = (_arg2 as b2Shape); var _local5:b2Body = _local3.m_body; var _local6:b2Body = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; var _local7:b2Contact = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } override public function PairRemoved(_arg1, _arg2, _arg3):void{ if (_arg3 == null){ return; }; var _local4:b2Contact = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local7:b2Body; var _local8:b2Body; var _local9:Array; var _local10:b2ContactPoint; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2Vec2; var _local16:b2Vec2; var _local2:b2Shape = _arg1.m_shape1; var _local3:b2Shape = _arg1.m_shape2; var _local4:int = _arg1.m_manifoldCount; if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = _local2.m_body; _local8 = _local3.m_body; _local9 = _arg1.GetManifolds(); _local10 = s_evalCP; _local10.shape1 = _arg1.m_shape1; _local10.shape2 = _arg1.m_shape1; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; var _local5:b2Body = _local2.m_body; var _local6:b2Body = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } public function Collide():void{ var _local2:b2Body; var _local3:b2Body; var _local1:b2Contact = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.Dynamics
Section 70
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import flash.display.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2DebugDraw { public var m_drawFlags:uint; public var m_sprite:Sprite; public var m_drawScale:Number;// = 1 public var m_lineThickness:Number;// = 1 public var m_alpha:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_xformScale:Number;// = 1 public static var e_shapeBit:uint = 1; public static var e_jointBit:uint = 2; public static var e_coreShapeBit:uint = 4; public static var e_aabbBit:uint = 8; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_centerOfMassBit:uint = 64; public function b2DebugDraw(){ m_drawFlags = 0; } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function GetFlags():uint{ return (m_drawFlags); } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } } }//package Box2D.Dynamics
Section 71
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeJoint(_arg1:b2Joint):void{ } public function SayGoodbyeShape(_arg1:b2Shape):void{ } } }//package Box2D.Dynamics
Section 72
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Island { public var m_allocator; public var m_listener:b2ContactListener; public var m_bodies:Array; public var m_contacts:Array; public var m_joints:Array; public var m_bodyCount:int; public var m_jointCount:int; public var m_contactCount:int; public var m_bodyCapacity:int; public var m_contactCapacity:int; public var m_jointCapacity:int; public var m_positionIterationCount:int; private static var s_reportCR:b2ContactResult = new b2ContactResult(); public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){ var _local6:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; m_bodies = new Array(_arg1); _local6 = 0; while (_local6 < _arg1) { m_bodies[_local6] = null; _local6++; }; m_contacts = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { m_contacts[_local6] = null; _local6++; }; m_joints = new Array(_arg3); _local6 = 0; while (_local6 < _arg3) { m_joints[_local6] = null; _local6++; }; m_positionIterationCount = 0; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local9:int; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Number; var _local14:Number; var _local15:Number; _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; var _local8:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local8.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local8.SolveVelocityConstraints(); _local9 = 0; while (_local9 < m_jointCount) { _local7 = m_joints[_local9]; _local7.SolveVelocityConstraints(_arg1); _local9++; }; _local5++; }; _local8.FinalizeVelocityConstraints(); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_sweep.c0.SetV(_local6.m_sweep.c); _local6.m_sweep.a0 = _local6.m_sweep.a; _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y)); _local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity)); _local6.SynchronizeTransform(); }; _local5++; }; if (_arg3){ _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local10 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local12 = _local7.SolvePositionConstraints(); _local11 = ((_local11) && (_local12)); _local5++; }; if (((_local10) && (_local11))){ break; }; m_positionIterationCount++; }; }; Report(_local8.m_constraints); if (_arg4){ _local13 = Number.MAX_VALUE; _local14 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local15 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.m_invMass == 0){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local13 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local15)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local14)))){ _local6.m_sleepTime = 0; _local13 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local13 = b2Math.b2Min(_local13, _local6.m_sleepTime); }; }; _local5++; }; if (_local13 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local5:b2Body; var _local6:Boolean; var _local3:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; var _local4:Number = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } public function Report(_arg1:Array):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; var _local4:int; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function AddBody(_arg1:b2Body):void{ var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } } }//package Box2D.Dynamics
Section 73
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var dt:Number; public var inv_dt:Number; public var dtRatio:Number; public var maxIterations:int; public var warmStarting:Boolean; public var positionCorrection:Boolean; } }//package Box2D.Dynamics
Section 74
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2World { public var m_blockAllocator; public var m_stackAllocator; public var m_lock:Boolean; public var m_broadPhase:b2BroadPhase; public var m_contactManager:b2ContactManager; public var m_bodyList:b2Body; public var m_jointList:b2Joint; public var m_contactList:b2Contact; public var m_bodyCount:int; public var m_contactCount:int; public var m_jointCount:int; public var m_gravity:b2Vec2; public var m_allowSleep:Boolean; public var m_groundBody:b2Body; public var m_destructionListener:b2DestructionListener; public var m_boundaryListener:b2BoundaryListener; public var m_contactFilter:b2ContactFilter; public var m_contactListener:b2ContactListener; public var m_debugDraw:b2DebugDraw; public var m_inv_dt0:Number; public var m_positionIterationCount:int; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); private static var s_xf:b2XForm = new b2XForm(); public static var m_positionCorrection:Boolean; public static var m_warmStarting:Boolean; public static var m_continuousPhysics:Boolean; public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_positionCorrection = true; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_inv_dt0 = 0; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); var _local4:b2BodyDef = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function Validate():void{ m_broadPhase.Validate(); } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function CreateBody(_arg1:b2BodyDef):b2Body{ if (m_lock == true){ return (null); }; var _local2:b2Body = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function DestroyBody(_arg1:b2Body):void{ var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; var _local2:b2JointEdge = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; var _local3:b2Shape = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local3:b2Body; var _local4:b2Shape; var _local2:b2Joint = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local5:b2Body; var _local6:b2Shape; var _local2:Boolean = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; var _local3:b2Body = _arg1.m_body1; var _local4:b2Body = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetPositionCorrection(_arg1:Boolean):void{ m_positionCorrection = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } public function GetContactCount():int{ return (m_contactCount); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function Step(_arg1:Number, _arg2:int):void{ m_lock = true; var _local3:b2TimeStep = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; _local3.dtRatio = (m_inv_dt0 * _arg1); _local3.positionCorrection = m_positionCorrection; _local3.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((m_continuousPhysics) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_inv_dt0 = _local3.inv_dt; m_lock = false; } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array = new Array(_arg3); var _local5:int = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); var _local6:int; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function GetBodyList():b2Body{ return (m_bodyList); } public function GetJointList():b2Joint{ return (m_jointList); } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; var _local3:b2Island = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; var _local4:b2Contact = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; var _local5:b2Joint = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; var _local6:int = m_bodyCount; var _local7:Array = new Array(_local6); var _local8:b2Body = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.m_manifoldCount == 0){ } else { _local3.AddContact(_local12.contact); _local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag); _local11 = _local12.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local9; _local9 = (_local9 + 1); var _local16 = _temp2; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; }; _local12 = _local12.next; }; _local13 = _local2.m_jointList; while (_local13) { if (_local13.joint.m_islandFlag == true){ } else { _local3.AddJoint(_local13.joint); _local13.joint.m_islandFlag = true; _local11 = _local13.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local9; _local9 = (_local9 + 1); _local16 = _temp3; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; _local13 = _local13.next; }; }; }; _local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep); if (_local3.m_positionIterationCount > m_positionIterationCount){ m_positionIterationCount = _local3.m_positionIterationCount; }; _local10 = 0; while (_local10 < _local3.m_bodyCount) { _local2 = _local3.m_bodies[_local10]; if (_local2.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local10++; }; }; }; _local8 = _local8.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local14 = _local2.SynchronizeShapes(); if ((((_local14 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; var _local8:b2Island = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); var _local9:int = m_bodyCount; var _local10:Array = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.m_shape1; _local4 = _local11.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local19 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local19 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local19); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local19 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local19); }; }; _local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep); if ((((_local18 > 0)) && ((_local18 < 1)))){ _local18 = (((1 - _local18) * _local19) + _local18); if (_local18 > 1){ _local18 = 1; }; }; _local11.m_toi = _local18; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){ _local12 = _local11; _local13 = _local18; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.m_manifoldCount == 0){ } else { _local14 = _local5; if (_local14.IsStatic()){ _local14 = _local6; }; _local8.Clear(); _local15 = 0; var _temp1 = _local15; _local15 = (_local15 + 1); var _local22 = _temp1; _local10[_local22] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local15 > 0) { --_local15; _local2 = _local10[_local15]; _local8.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local8.m_contactCount == _local8.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function DrawJoint(_arg1:b2Joint):void{ var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; var _local2:b2Body = _arg1.m_body1; var _local3:b2Body = _arg1.m_body2; var _local4:b2XForm = _local2.m_xf; var _local5:b2XForm = _local3.m_xf; var _local6:b2Vec2 = _local4.position; var _local7:b2Vec2 = _local5.position; var _local8:b2Vec2 = _arg1.GetAnchor1(); var _local9:b2Vec2 = _arg1.GetAnchor2(); var _local10:b2Color = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; var _local5:b2Color = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; }; } public function DrawDebugData():void{ var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local11:b2XForm; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); var _local1:uint = m_debugDraw.GetFlags(); var _local7:b2Vec2 = new b2Vec2(); var _local8:b2Vec2 = new b2Vec2(); var _local9:b2Vec2 = new b2Vec2(); var _local10:b2Color = new b2Color(0, 0, 0); var _local12:b2AABB = new b2AABB(); var _local13:b2AABB = new b2AABB(); var _local14:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } } }//package Box2D.Dynamics
Section 75
//crystalPickUpBig_15 (cave_chaos_fla.crystalPickUpBig_15) package cave_chaos_fla { import flash.display.*; public dynamic class crystalPickUpBig_15 extends MovieClip { public function crystalPickUpBig_15(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package cave_chaos_fla
Section 76
//crystalPickUpSmal_16 (cave_chaos_fla.crystalPickUpSmal_16) package cave_chaos_fla { import flash.display.*; public dynamic class crystalPickUpSmal_16 extends MovieClip { public function crystalPickUpSmal_16(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package cave_chaos_fla
Section 77
//dieSnd_22 (cave_chaos_fla.dieSnd_22) package cave_chaos_fla { import flash.display.*; public dynamic class dieSnd_22 extends MovieClip { public function dieSnd_22(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package cave_chaos_fla
Section 78
//endSnd_25 (cave_chaos_fla.endSnd_25) package cave_chaos_fla { import flash.display.*; public dynamic class endSnd_25 extends MovieClip { public function endSnd_25(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package cave_chaos_fla
Section 79
//enemyAttackSnd_23 (cave_chaos_fla.enemyAttackSnd_23) package cave_chaos_fla { import flash.display.*; public dynamic class enemyAttackSnd_23 extends MovieClip { public function enemyAttackSnd_23(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package cave_chaos_fla
Section 80
//explode_17 (cave_chaos_fla.explode_17) package cave_chaos_fla { import flash.display.*; public dynamic class explode_17 extends MovieClip { public function explode_17(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package cave_chaos_fla
Section 81
//hitSnd_24 (cave_chaos_fla.hitSnd_24) package cave_chaos_fla { import flash.display.*; public dynamic class hitSnd_24 extends MovieClip { public function hitSnd_24(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package cave_chaos_fla
Section 82
//IDNetsmalllogo_197 (cave_chaos_fla.IDNetsmalllogo_197) package cave_chaos_fla { import flash.display.*; import flash.events.*; import flash.net.*; public dynamic class IDNetsmalllogo_197 extends MovieClip { public function IDNetsmalllogo_197(){ addFrameScript(0, frame1); } public function onC(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.id.net"), "_blank"); } function frame1(){ this.addEventListener(MouseEvent.CLICK, onC); this.buttonMode = true; } } }//package cave_chaos_fla
Section 83
//intro_anim_204 (cave_chaos_fla.intro_anim_204) package cave_chaos_fla { import flash.display.*; public dynamic class intro_anim_204 extends MovieClip { public function intro_anim_204(){ addFrameScript(248, frame249); } function frame249(){ NitromeGame.transition.doTween("game"); stop(); } } }//package cave_chaos_fla
Section 84
//jumpSnd_13 (cave_chaos_fla.jumpSnd_13) package cave_chaos_fla { import flash.display.*; public dynamic class jumpSnd_13 extends MovieClip { public function jumpSnd_13(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package cave_chaos_fla
Section 85
//lightOn_20 (cave_chaos_fla.lightOn_20) package cave_chaos_fla { import flash.display.*; public dynamic class lightOn_20 extends MovieClip { public function lightOn_20(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package cave_chaos_fla
Section 86
//linkage_clip_26 (cave_chaos_fla.linkage_clip_26) package cave_chaos_fla { import flash.display.*; public dynamic class linkage_clip_26 extends MovieClip { public function linkage_clip_26(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package cave_chaos_fla
Section 87
//MainTimeline (cave_chaos_fla.MainTimeline) package cave_chaos_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import com.nitrome.crystalmines.*; import com.nitrome.game.*; import com.nitrome.util.*; import flash.utils.*; import flash.media.*; import com.nitrome.buttons.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.ui.*; import flash.xml.*; public dynamic class MainTimeline extends MovieClip { public var level_12:LevelSelectButton; public var level_4:LevelSelectButton; public var level_13:LevelSelectButton; public var level_5:LevelSelectButton; public var level_10:LevelSelectButton; public var level_6:LevelSelectButton; public var level_20:LevelSelectButton; public var level_11:LevelSelectButton; public var level_7:LevelSelectButton; public var __id2_:CrystalFont; public var intro_anim:MovieClip; public var level_8:LevelSelectButton; public var back_choose_level:BackButton; public var __id3_:CrystalFont; public var level_9:LevelSelectButton; public var sfx:SoundManager; public var __id0_:CrystalFont; public var __id1_:CrystalFont; public var __id6_:CrystalFont; public var pause_button:PauseButton; public var tt:TransitionTween; public var __id7_:CrystalFont; public var __id4_:CrystalFont; public var pop_up:PopUpHolder; public var level_18:LevelSelectButton; public var __id5_:CrystalFont; public var level_19:LevelSelectButton; public var score_submit_panel:ScoreSubmitPanel; public var level_16:LevelSelectButton; public var level_17:LevelSelectButton; public var level_1:LevelSelectButton; public var level_14:LevelSelectButton; public var level_2:LevelSelectButton; public var instructions:MovieClip; public var outro_anim:MovieClip; public var level_15:LevelSelectButton; public var level_3:LevelSelectButton; public var __setPropDict:Dictionary; public var controller; public function MainTimeline(){ __setPropDict = new Dictionary(true); super(); addFrameScript(1, frame2, 9, frame10, 19, frame20, 29, frame30, 39, frame40, 49, frame50, 59, frame60, 69, frame70, 79, frame80, 89, frame90, 99, frame100, 109, frame110, 119, frame120, 129, frame130, 50, frame51, 51, frame52, 52, frame53, 53, frame54, 54, frame55, 55, frame56, 56, frame57, 57, frame58, 60, frame61, 61, frame62, 62, frame63, 63, frame64, 64, frame65, 65, frame66, 66, frame67, 67, frame68, 70, frame71, 71, frame72, 72, frame73, 73, frame74, 74, frame75, 75, frame76, 76, frame77, 77, frame78, 90, frame91, 91, frame92, 92, frame93, 93, frame94, 94, frame95, 95, frame96, 96, frame97, 97, frame98, 100, frame101, 101, frame102, 102, frame103, 103, frame104, 104, frame105, 105, frame106, 106, frame107, 107, frame108); } public function setupButtons():void{ var _local3:LevelSelectButton; var _local1:Array = NitromeGame.getAllLevelsUnlocked(); var _local2:Number = 1; while (_local2 <= NitromeGame.total_levels) { _local3 = (getChildByName(("level_" + _local2)) as LevelSelectButton); if (_local3){ _local3.init(_local1); }; _local2++; }; } function __setProp___id0__Scene1_content_49(){ if ((((__setPropDict[__id0_] == undefined)) || (!((((int(__setPropDict[__id0_]) >= 50)) && ((int(__setPropDict[__id0_]) <= 58))))))){ __setPropDict[__id0_] = currentFrame; try { __id0_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id0_.align = "center"; __id0_.align_vert = "center"; __id0_.id = "Crystal"; __id0_.line_spacing = 22; __id0_.text = "credits"; __id0_.tracking = 0; try { __id0_["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp___id1__Scene1_content_49(){ if ((((__setPropDict[__id1_] == undefined)) || (!((((int(__setPropDict[__id1_]) >= 50)) && ((int(__setPropDict[__id1_]) <= 58))))))){ __setPropDict[__id1_] = currentFrame; try { __id1_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id1_.align = "center"; __id1_.align_vert = "center"; __id1_.id = "Crystal"; __id1_.line_spacing = 22; __id1_.text = "markus heinel"; __id1_.tracking = 0; try { __id1_["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp___id2__Scene1_content_49(){ if ((((__setPropDict[__id2_] == undefined)) || (!((((int(__setPropDict[__id2_]) >= 50)) && ((int(__setPropDict[__id2_]) <= 58))))))){ __setPropDict[__id2_] = currentFrame; try { __id2_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id2_.align = "center"; __id2_.align_vert = "center"; __id2_.id = "Crystal"; __id2_.line_spacing = 22; __id2_.text = "andrew gardner"; __id2_.tracking = 0; try { __id2_["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp___id3__Scene1_content_49(){ if ((((__setPropDict[__id3_] == undefined)) || (!((((int(__setPropDict[__id3_]) >= 50)) && ((int(__setPropDict[__id3_]) <= 58))))))){ __setPropDict[__id3_] = currentFrame; try { __id3_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id3_.align = "center"; __id3_.align_vert = "center"; __id3_.id = "Crystal"; __id3_.line_spacing = 22; __id3_.text = "lee nicklen"; __id3_.tracking = 0; try { __id3_["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp___id4__Scene1_content_59(){ if ((((__setPropDict[__id4_] == undefined)) || (!((((int(__setPropDict[__id4_]) >= 60)) && ((int(__setPropDict[__id4_]) <= 68))))))){ __setPropDict[__id4_] = currentFrame; try { __id4_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id4_.align = "center"; __id4_.align_vert = "center"; __id4_.id = "Crystal"; __id4_.line_spacing = 22; __id4_.text = "help"; __id4_.tracking = 0; try { __id4_["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp___id5__Scene1_content_69(){ if ((((__setPropDict[__id5_] == undefined)) || (!((((int(__setPropDict[__id5_]) >= 70)) && ((int(__setPropDict[__id5_]) <= 78))))))){ __setPropDict[__id5_] = currentFrame; try { __id5_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id5_.align = "center"; __id5_.align_vert = "center"; __id5_.id = "Crystal"; __id5_.line_spacing = 22; __id5_.text = "scores"; __id5_.tracking = 0; try { __id5_["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp___id6__Scene1_content_89(){ if ((((__setPropDict[__id6_] == undefined)) || (!((((int(__setPropDict[__id6_]) >= 90)) && ((int(__setPropDict[__id6_]) <= 98))))))){ __setPropDict[__id6_] = currentFrame; try { __id6_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id6_.align = "center"; __id6_.align_vert = "center"; __id6_.id = "Crystal"; __id6_.line_spacing = 22; __id6_.text = "choose players"; __id6_.tracking = 0; try { __id6_["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp___id7__Scene1_content_99(){ if ((((__setPropDict[__id7_] == undefined)) || (!((((int(__setPropDict[__id7_]) >= 100)) && ((int(__setPropDict[__id7_]) <= 108))))))){ __setPropDict[__id7_] = currentFrame; try { __id7_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id7_.align = "center"; __id7_.align_vert = "center"; __id7_.id = "Crystal"; __id7_.line_spacing = 22; __id7_.text = "choose a level"; __id7_.tracking = 0; try { __id7_["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function frame2(){ Key.initialize(stage); NitromeGame.init((root as MovieClip), "rockbottom", "granite_", 20); NitromeGame.transition = tt; stage.showDefaultContextMenu = false; stop(); } function frame10(){ stop(); } function frame20(){ } function frame30(){ stop(); } function frame40(){ Lock.to(["pog.com", "gamepost.com", "dolimania.com", "4fun.com", "y8.com", "*.pog.com", "*.gamepost.com", "*.dolimania.com", "*.4fun.com", "*.y8.com"], stage, NitromeGame.game_id); NitromeGame.sound_manager.playMusic(SoundManager.MENU); stop(); } function frame50(){ __setProp___id3__Scene1_content_49(); __setProp___id2__Scene1_content_49(); __setProp___id1__Scene1_content_49(); __setProp___id0__Scene1_content_49(); stop(); } function frame60(){ __setProp___id4__Scene1_content_59(); stop(); } function frame70(){ __setProp___id5__Scene1_content_69(); stop(); } function frame80(){ stop(); } function frame90(){ __setProp___id6__Scene1_content_89(); stop(); } function frame100(){ __setProp___id7__Scene1_content_99(); if (currentLabel == "level_select"){ setupButtons(); }; stop(); } function frame110(){ stop(); } function frame120(){ stop(); } function frame130(){ stop(); pause_button.init(pop_up); controller = new GameController(); controller.setPopUp(pop_up); addChild(controller); setChildIndex(controller, 1); } function frame51(){ __setProp___id3__Scene1_content_49(); __setProp___id2__Scene1_content_49(); __setProp___id1__Scene1_content_49(); __setProp___id0__Scene1_content_49(); } function frame52(){ __setProp___id3__Scene1_content_49(); __setProp___id2__Scene1_content_49(); __setProp___id1__Scene1_content_49(); __setProp___id0__Scene1_content_49(); } function frame53(){ __setProp___id3__Scene1_content_49(); __setProp___id2__Scene1_content_49(); __setProp___id1__Scene1_content_49(); __setProp___id0__Scene1_content_49(); } function frame54(){ __setProp___id3__Scene1_content_49(); __setProp___id2__Scene1_content_49(); __setProp___id1__Scene1_content_49(); __setProp___id0__Scene1_content_49(); } function frame55(){ __setProp___id3__Scene1_content_49(); __setProp___id2__Scene1_content_49(); __setProp___id1__Scene1_content_49(); __setProp___id0__Scene1_content_49(); } function frame56(){ __setProp___id3__Scene1_content_49(); __setProp___id2__Scene1_content_49(); __setProp___id1__Scene1_content_49(); __setProp___id0__Scene1_content_49(); } function frame57(){ __setProp___id3__Scene1_content_49(); __setProp___id2__Scene1_content_49(); __setProp___id1__Scene1_content_49(); __setProp___id0__Scene1_content_49(); } function frame58(){ __setProp___id3__Scene1_content_49(); __setProp___id2__Scene1_content_49(); __setProp___id1__Scene1_content_49(); __setProp___id0__Scene1_content_49(); } function frame61(){ __setProp___id4__Scene1_content_59(); } function frame62(){ __setProp___id4__Scene1_content_59(); } function frame63(){ __setProp___id4__Scene1_content_59(); } function frame64(){ __setProp___id4__Scene1_content_59(); } function frame65(){ __setProp___id4__Scene1_content_59(); } function frame66(){ __setProp___id4__Scene1_content_59(); } function frame67(){ __setProp___id4__Scene1_content_59(); } function frame68(){ __setProp___id4__Scene1_content_59(); } function frame71(){ __setProp___id5__Scene1_content_69(); } function frame72(){ __setProp___id5__Scene1_content_69(); } function frame73(){ __setProp___id5__Scene1_content_69(); } function frame74(){ __setProp___id5__Scene1_content_69(); } function frame75(){ __setProp___id5__Scene1_content_69(); } function frame76(){ __setProp___id5__Scene1_content_69(); } function frame77(){ __setProp___id5__Scene1_content_69(); } function frame78(){ __setProp___id5__Scene1_content_69(); } function frame91(){ __setProp___id6__Scene1_content_89(); } function frame92(){ __setProp___id6__Scene1_content_89(); } function frame93(){ __setProp___id6__Scene1_content_89(); } function frame94(){ __setProp___id6__Scene1_content_89(); } function frame95(){ __setProp___id6__Scene1_content_89(); } function frame96(){ __setProp___id6__Scene1_content_89(); } function frame97(){ __setProp___id6__Scene1_content_89(); } function frame98(){ __setProp___id6__Scene1_content_89(); } function frame101(){ __setProp___id7__Scene1_content_99(); } function frame102(){ __setProp___id7__Scene1_content_99(); } function frame103(){ __setProp___id7__Scene1_content_99(); } function frame104(){ __setProp___id7__Scene1_content_99(); } function frame105(){ __setProp___id7__Scene1_content_99(); } function frame106(){ __setProp___id7__Scene1_content_99(); } function frame107(){ __setProp___id7__Scene1_content_99(); } function frame108(){ __setProp___id7__Scene1_content_99(); } } }//package cave_chaos_fla
Section 88
//mushroomJump_14 (cave_chaos_fla.mushroomJump_14) package cave_chaos_fla { import flash.display.*; public dynamic class mushroomJump_14 extends MovieClip { public function mushroomJump_14(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package cave_chaos_fla
Section 89
//nitrome_intro_186 (cave_chaos_fla.nitrome_intro_186) package cave_chaos_fla { import flash.display.*; public dynamic class nitrome_intro_186 extends MovieClip { public function nitrome_intro_186(){ addFrameScript(205, frame206, 263, frame264); } function frame206(){ NitromeGame.sound_manager.playSound("nitrome"); } function frame264(){ NitromeGame.transition.doTween("title_screen"); stop(); } } }//package cave_chaos_fla
Section 90
//outro_anim_199 (cave_chaos_fla.outro_anim_199) package cave_chaos_fla { import flash.display.*; public dynamic class outro_anim_199 extends MovieClip { public function outro_anim_199(){ addFrameScript(199, frame200); } function frame200(){ stop(); } } }//package cave_chaos_fla
Section 91
//pickUpExplode_18 (cave_chaos_fla.pickUpExplode_18) package cave_chaos_fla { import flash.display.*; public dynamic class pickUpExplode_18 extends MovieClip { public function pickUpExplode_18(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package cave_chaos_fla
Section 92
//popup_clip_47 (cave_chaos_fla.popup_clip_47) package cave_chaos_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import com.nitrome.game.*; import flash.utils.*; import flash.media.*; import com.nitrome.buttons.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.ui.*; import flash.xml.*; public dynamic class popup_clip_47 extends MovieClip { public var __id26_:CrystalFont; public var __id27_:CrystalFont; public var __id24_:CrystalFont; public var __id25_:CrystalFont; public var quit_button:QuitPauseButton; public var __id18_:CrystalFont; public var continueendbutton:ContinueEndButton; public var nextbutton:NextLevelButton; public var __id19_:CrystalFont; public var tryagainbutton:TryAgainButton; public var player2wins:CrystalFont; public var player1wins:CrystalFont; public var __id22_:CrystalFont; public var __id23_:CrystalFont; public var p2_anim:MovieClip; public var __id20_:CrystalFont; public var score_text:CrystalFont; public var __id21_:CrystalFont; public var __setPropDict:Dictionary; public function popup_clip_47(){ __setPropDict = new Dictionary(true); super(); addFrameScript(0, frame1, 9, frame10, 22, frame23, 32, frame33, 42, frame43, 54, frame55, 68, frame69, 81, frame82, 10, frame11, 11, frame12, 12, frame13, 13, frame14, 14, frame15, 15, frame16, 16, frame17, 17, frame18, 18, frame19, 19, frame20, 20, frame21, 23, frame24, 24, frame25, 25, frame26, 26, frame27, 27, frame28, 28, frame29, 29, frame30, 30, frame31, 33, frame34, 34, frame35, 35, frame36, 36, frame37, 37, frame38, 38, frame39, 39, frame40, 40, frame41, 43, frame44, 44, frame45, 45, frame46, 46, frame47, 47, frame48, 48, frame49, 49, frame50, 50, frame51, 51, frame52, 52, frame53, 55, frame56, 56, frame57, 57, frame58, 58, frame59, 59, frame60, 60, frame61, 61, frame62, 62, frame63, 63, frame64, 64, frame65, 65, frame66, 66, frame67, 69, frame70, 70, frame71, 71, frame72, 72, frame73, 73, frame74, 74, frame75, 75, frame76, 76, frame77, 77, frame78, 78, frame79, 79, frame80, 82, frame83, 83, frame84, 84, frame85, 85, frame86, 86, frame87, 87, frame88, 88, frame89, 89, frame90, 90, frame91); } function __setProp___id18__popup_clip_text(){ if ((((__setPropDict[__id18_] == undefined)) || (!((((int(__setPropDict[__id18_]) >= 10)) && ((int(__setPropDict[__id18_]) <= 21))))))){ __setPropDict[__id18_] = currentFrame; try { __id18_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id18_.align = "center"; __id18_.align_vert = "center"; __id18_.id = "Crystal"; __id18_.line_spacing = 22; __id18_.text = "level complete!"; __id18_.tracking = 0; try { __id18_["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp_score_text_popup_clip_text(){ if ((((__setPropDict[score_text] == undefined)) || (!((((int(__setPropDict[score_text]) >= 10)) && ((int(__setPropDict[score_text]) <= 21))))))){ __setPropDict[score_text] = currentFrame; try { score_text["componentInspectorSetting"] = true; } catch(e:Error) { }; score_text.align = "center"; score_text.align_vert = "center"; score_text.id = "Crystal"; score_text.line_spacing = 22; score_text.text = "score: 00000"; score_text.tracking = 0; try { score_text["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp___id19__popup_clip_text(){ if ((((__setPropDict[__id19_] == undefined)) || (!((((int(__setPropDict[__id19_]) >= 23)) && ((int(__setPropDict[__id19_]) <= 31))))))){ __setPropDict[__id19_] = currentFrame; try { __id19_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id19_.align = "center"; __id19_.align_vert = "center"; __id19_.id = "Crystal"; __id19_.line_spacing = 22; __id19_.text = "player 1 wins!"; __id19_.tracking = 0; try { __id19_["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp___id20__popup_clip_text(){ if ((((__setPropDict[__id20_] == undefined)) || (!((((int(__setPropDict[__id20_]) >= 23)) && ((int(__setPropDict[__id20_]) <= 31))))))){ __setPropDict[__id20_] = currentFrame; try { __id20_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id20_.align = "center"; __id20_.align_vert = "center"; __id20_.id = "Crystal"; __id20_.line_spacing = 22; __id20_.text = "vs."; __id20_.tracking = 0; try { __id20_["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp_player1wins_popup_clip_text(){ if ((((__setPropDict[player1wins] == undefined)) || (!((((int(__setPropDict[player1wins]) >= 23)) && ((int(__setPropDict[player1wins]) <= 31))))))){ __setPropDict[player1wins] = currentFrame; try { player1wins["componentInspectorSetting"] = true; } catch(e:Error) { }; player1wins.align = "right"; player1wins.align_vert = "center"; player1wins.id = "Crystal"; player1wins.line_spacing = 22; player1wins.text = "0"; player1wins.tracking = 0; try { player1wins["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp_player2wins_popup_clip_text(){ if ((((__setPropDict[player2wins] == undefined)) || (!((((int(__setPropDict[player2wins]) >= 23)) && ((int(__setPropDict[player2wins]) <= 31))))))){ __setPropDict[player2wins] = currentFrame; try { player2wins["componentInspectorSetting"] = true; } catch(e:Error) { }; player2wins.align = "left"; player2wins.align_vert = "center"; player2wins.id = "Crystal"; player2wins.line_spacing = 22; player2wins.text = "0"; player2wins.tracking = 0; try { player2wins["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp_score_text_popup_clip_text_1(){ if ((((__setPropDict[score_text] == undefined)) || (!((((int(__setPropDict[score_text]) >= 23)) && ((int(__setPropDict[score_text]) <= 31))))))){ __setPropDict[score_text] = currentFrame; try { score_text["componentInspectorSetting"] = true; } catch(e:Error) { }; score_text.align = "center"; score_text.align_vert = "center"; score_text.id = "Crystal"; score_text.line_spacing = 22; score_text.text = "score: 00000"; score_text.tracking = 0; try { score_text["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp___id21__popup_clip_text(){ if ((((__setPropDict[__id21_] == undefined)) || (!((((int(__setPropDict[__id21_]) >= 33)) && ((int(__setPropDict[__id21_]) <= 41))))))){ __setPropDict[__id21_] = currentFrame; try { __id21_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id21_.align = "center"; __id21_.align_vert = "center"; __id21_.id = "Crystal"; __id21_.line_spacing = 22; __id21_.text = "player 2 wins!"; __id21_.tracking = 0; try { __id21_["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp___id22__popup_clip_text(){ if ((((__setPropDict[__id22_] == undefined)) || (!((((int(__setPropDict[__id22_]) >= 33)) && ((int(__setPropDict[__id22_]) <= 41))))))){ __setPropDict[__id22_] = currentFrame; try { __id22_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id22_.align = "center"; __id22_.align_vert = "center"; __id22_.id = "Crystal"; __id22_.line_spacing = 22; __id22_.text = "vs."; __id22_.tracking = 0; try { __id22_["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp_player1wins_popup_clip_text_2(){ if ((((__setPropDict[player1wins] == undefined)) || (!((((int(__setPropDict[player1wins]) >= 33)) && ((int(__setPropDict[player1wins]) <= 41))))))){ __setPropDict[player1wins] = currentFrame; try { player1wins["componentInspectorSetting"] = true; } catch(e:Error) { }; player1wins.align = "right"; player1wins.align_vert = "center"; player1wins.id = "Crystal"; player1wins.line_spacing = 22; player1wins.text = "0"; player1wins.tracking = 0; try { player1wins["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp_player2wins_popup_clip_text_3(){ if ((((__setPropDict[player2wins] == undefined)) || (!((((int(__setPropDict[player2wins]) >= 33)) && ((int(__setPropDict[player2wins]) <= 41))))))){ __setPropDict[player2wins] = currentFrame; try { player2wins["componentInspectorSetting"] = true; } catch(e:Error) { }; player2wins.align = "left"; player2wins.align_vert = "center"; player2wins.id = "Crystal"; player2wins.line_spacing = 22; player2wins.text = "0"; player2wins.tracking = 0; try { player2wins["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp_score_text_popup_clip_text_4(){ if ((((__setPropDict[score_text] == undefined)) || (!((((int(__setPropDict[score_text]) >= 33)) && ((int(__setPropDict[score_text]) <= 41))))))){ __setPropDict[score_text] = currentFrame; try { score_text["componentInspectorSetting"] = true; } catch(e:Error) { }; score_text.align = "center"; score_text.align_vert = "center"; score_text.id = "Crystal"; score_text.line_spacing = 22; score_text.text = "score: 00000"; score_text.tracking = 0; try { score_text["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp___id23__popup_clip_text(){ if ((((__setPropDict[__id23_] == undefined)) || (!((((int(__setPropDict[__id23_]) >= 43)) && ((int(__setPropDict[__id23_]) <= 53))))))){ __setPropDict[__id23_] = currentFrame; try { __id23_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id23_.align = "center"; __id23_.align_vert = "center"; __id23_.id = "Crystal"; __id23_.line_spacing = 22; __id23_.text = "draw!"; __id23_.tracking = 0; try { __id23_["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp___id24__popup_clip_text(){ if ((((__setPropDict[__id24_] == undefined)) || (!((((int(__setPropDict[__id24_]) >= 43)) && ((int(__setPropDict[__id24_]) <= 53))))))){ __setPropDict[__id24_] = currentFrame; try { __id24_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id24_.align = "center"; __id24_.align_vert = "center"; __id24_.id = "Crystal"; __id24_.line_spacing = 22; __id24_.text = "vs."; __id24_.tracking = 0; try { __id24_["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp_player1wins_popup_clip_text_5(){ if ((((__setPropDict[player1wins] == undefined)) || (!((((int(__setPropDict[player1wins]) >= 43)) && ((int(__setPropDict[player1wins]) <= 53))))))){ __setPropDict[player1wins] = currentFrame; try { player1wins["componentInspectorSetting"] = true; } catch(e:Error) { }; player1wins.align = "right"; player1wins.align_vert = "center"; player1wins.id = "Crystal"; player1wins.line_spacing = 22; player1wins.text = "0"; player1wins.tracking = 0; try { player1wins["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp_player2wins_popup_clip_text_6(){ if ((((__setPropDict[player2wins] == undefined)) || (!((((int(__setPropDict[player2wins]) >= 43)) && ((int(__setPropDict[player2wins]) <= 53))))))){ __setPropDict[player2wins] = currentFrame; try { player2wins["componentInspectorSetting"] = true; } catch(e:Error) { }; player2wins.align = "left"; player2wins.align_vert = "center"; player2wins.id = "Crystal"; player2wins.line_spacing = 22; player2wins.text = "0"; player2wins.tracking = 0; try { player2wins["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp_score_text_popup_clip_text_7(){ if ((((__setPropDict[score_text] == undefined)) || (!((((int(__setPropDict[score_text]) >= 43)) && ((int(__setPropDict[score_text]) <= 53))))))){ __setPropDict[score_text] = currentFrame; try { score_text["componentInspectorSetting"] = true; } catch(e:Error) { }; score_text.align = "center"; score_text.align_vert = "center"; score_text.id = "Crystal"; score_text.line_spacing = 22; score_text.text = "score: 00000"; score_text.tracking = 0; try { score_text["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp___id25__popup_clip_text(){ if ((((__setPropDict[__id25_] == undefined)) || (!((((int(__setPropDict[__id25_]) >= 55)) && ((int(__setPropDict[__id25_]) <= 67))))))){ __setPropDict[__id25_] = currentFrame; try { __id25_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id25_.align = "center"; __id25_.align_vert = "center"; __id25_.id = "Crystal"; __id25_.line_spacing = 22; __id25_.text = "game over!"; __id25_.tracking = 0; try { __id25_["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp_score_text_popup_clip_text_8(){ if ((((__setPropDict[score_text] == undefined)) || (!((((int(__setPropDict[score_text]) >= 55)) && ((int(__setPropDict[score_text]) <= 67))))))){ __setPropDict[score_text] = currentFrame; try { score_text["componentInspectorSetting"] = true; } catch(e:Error) { }; score_text.align = "center"; score_text.align_vert = "center"; score_text.id = "Crystal"; score_text.line_spacing = 22; score_text.text = "score: 00000"; score_text.tracking = 0; try { score_text["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp___id26__popup_clip_text(){ if ((((__setPropDict[__id26_] == undefined)) || (!((((int(__setPropDict[__id26_]) >= 69)) && ((int(__setPropDict[__id26_]) <= 80))))))){ __setPropDict[__id26_] = currentFrame; try { __id26_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id26_.align = "center"; __id26_.align_vert = "center"; __id26_.id = "Crystal"; __id26_.line_spacing = 22; __id26_.text = "game paused"; __id26_.tracking = 0; try { __id26_["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp___id27__popup_clip_text(){ if ((((__setPropDict[__id27_] == undefined)) || (!((((int(__setPropDict[__id27_]) >= 82)) && ((int(__setPropDict[__id27_]) <= 91))))))){ __setPropDict[__id27_] = currentFrame; try { __id27_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id27_.align = "center"; __id27_.align_vert = "center"; __id27_.id = "Crystal"; __id27_.line_spacing = 22; __id27_.text = "game complete!"; __id27_.tracking = 0; try { __id27_["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function frame1(){ stop(); } function frame10(){ __setProp_score_text_popup_clip_text(); __setProp___id18__popup_clip_text(); (parent as PopUpHolder).frame_count++; score_text.text = String(("score: " + Score.value)); stop(); } function frame23(){ __setProp_score_text_popup_clip_text_1(); __setProp_player2wins_popup_clip_text(); __setProp_player1wins_popup_clip_text(); __setProp___id20__popup_clip_text(); __setProp___id19__popup_clip_text(); (parent as PopUpHolder).frame_count++; score_text.text = String(("score: " + Score.value)); player1wins.text = String(WinsP1.value); player2wins.text = String(WinsP2.value); stop(); } function frame33(){ __setProp_score_text_popup_clip_text_4(); __setProp_player2wins_popup_clip_text_3(); __setProp_player1wins_popup_clip_text_2(); __setProp___id22__popup_clip_text(); __setProp___id21__popup_clip_text(); (parent as PopUpHolder).frame_count++; score_text.text = String(("score: " + Score.value)); player1wins.text = String(WinsP1.value); player2wins.text = String(WinsP2.value); stop(); } function frame43(){ __setProp_score_text_popup_clip_text_7(); __setProp_player2wins_popup_clip_text_6(); __setProp_player1wins_popup_clip_text_5(); __setProp___id24__popup_clip_text(); __setProp___id23__popup_clip_text(); (parent as PopUpHolder).frame_count++; score_text.text = String(("score: " + Score.value)); player1wins.text = String(WinsP1.value); player2wins.text = String(WinsP2.value); stop(); } function frame55(){ __setProp_score_text_popup_clip_text_8(); __setProp___id25__popup_clip_text(); (parent as PopUpHolder).frame_count++; score_text.text = String(("score: " + Score.value)); stop(); } function frame69(){ __setProp___id26__popup_clip_text(); (parent as PopUpHolder).frame_count++; if (PlayerNum.value == 2){ p2_anim.visible = true; } else { p2_anim.visible = false; }; stop(); } function frame82(){ __setProp___id27__popup_clip_text(); (parent as PopUpHolder).frame_count++; if (PlayerNum.value == 2){ p2_anim.visible = true; } else { p2_anim.visible = false; }; stop(); } function frame11(){ __setProp_score_text_popup_clip_text(); __setProp___id18__popup_clip_text(); } function frame12(){ __setProp_score_text_popup_clip_text(); __setProp___id18__popup_clip_text(); } function frame13(){ __setProp_score_text_popup_clip_text(); __setProp___id18__popup_clip_text(); } function frame14(){ __setProp_score_text_popup_clip_text(); __setProp___id18__popup_clip_text(); } function frame15(){ __setProp_score_text_popup_clip_text(); __setProp___id18__popup_clip_text(); } function frame16(){ __setProp_score_text_popup_clip_text(); __setProp___id18__popup_clip_text(); } function frame17(){ __setProp_score_text_popup_clip_text(); __setProp___id18__popup_clip_text(); } function frame18(){ __setProp_score_text_popup_clip_text(); __setProp___id18__popup_clip_text(); } function frame19(){ __setProp_score_text_popup_clip_text(); __setProp___id18__popup_clip_text(); } function frame20(){ __setProp_score_text_popup_clip_text(); __setProp___id18__popup_clip_text(); } function frame21(){ __setProp_score_text_popup_clip_text(); __setProp___id18__popup_clip_text(); } function frame24(){ __setProp_score_text_popup_clip_text_1(); __setProp_player2wins_popup_clip_text(); __setProp_player1wins_popup_clip_text(); __setProp___id20__popup_clip_text(); __setProp___id19__popup_clip_text(); } function frame25(){ __setProp_score_text_popup_clip_text_1(); __setProp_player2wins_popup_clip_text(); __setProp_player1wins_popup_clip_text(); __setProp___id20__popup_clip_text(); __setProp___id19__popup_clip_text(); } function frame26(){ __setProp_score_text_popup_clip_text_1(); __setProp_player2wins_popup_clip_text(); __setProp_player1wins_popup_clip_text(); __setProp___id20__popup_clip_text(); __setProp___id19__popup_clip_text(); } function frame27(){ __setProp_score_text_popup_clip_text_1(); __setProp_player2wins_popup_clip_text(); __setProp_player1wins_popup_clip_text(); __setProp___id20__popup_clip_text(); __setProp___id19__popup_clip_text(); } function frame28(){ __setProp_score_text_popup_clip_text_1(); __setProp_player2wins_popup_clip_text(); __setProp_player1wins_popup_clip_text(); __setProp___id20__popup_clip_text(); __setProp___id19__popup_clip_text(); } function frame29(){ __setProp_score_text_popup_clip_text_1(); __setProp_player2wins_popup_clip_text(); __setProp_player1wins_popup_clip_text(); __setProp___id20__popup_clip_text(); __setProp___id19__popup_clip_text(); } function frame30(){ __setProp_score_text_popup_clip_text_1(); __setProp_player2wins_popup_clip_text(); __setProp_player1wins_popup_clip_text(); __setProp___id20__popup_clip_text(); __setProp___id19__popup_clip_text(); } function frame31(){ __setProp_score_text_popup_clip_text_1(); __setProp_player2wins_popup_clip_text(); __setProp_player1wins_popup_clip_text(); __setProp___id20__popup_clip_text(); __setProp___id19__popup_clip_text(); } function frame34(){ __setProp_score_text_popup_clip_text_4(); __setProp_player2wins_popup_clip_text_3(); __setProp_player1wins_popup_clip_text_2(); __setProp___id22__popup_clip_text(); __setProp___id21__popup_clip_text(); } function frame35(){ __setProp_score_text_popup_clip_text_4(); __setProp_player2wins_popup_clip_text_3(); __setProp_player1wins_popup_clip_text_2(); __setProp___id22__popup_clip_text(); __setProp___id21__popup_clip_text(); } function frame36(){ __setProp_score_text_popup_clip_text_4(); __setProp_player2wins_popup_clip_text_3(); __setProp_player1wins_popup_clip_text_2(); __setProp___id22__popup_clip_text(); __setProp___id21__popup_clip_text(); } function frame37(){ __setProp_score_text_popup_clip_text_4(); __setProp_player2wins_popup_clip_text_3(); __setProp_player1wins_popup_clip_text_2(); __setProp___id22__popup_clip_text(); __setProp___id21__popup_clip_text(); } function frame38(){ __setProp_score_text_popup_clip_text_4(); __setProp_player2wins_popup_clip_text_3(); __setProp_player1wins_popup_clip_text_2(); __setProp___id22__popup_clip_text(); __setProp___id21__popup_clip_text(); } function frame39(){ __setProp_score_text_popup_clip_text_4(); __setProp_player2wins_popup_clip_text_3(); __setProp_player1wins_popup_clip_text_2(); __setProp___id22__popup_clip_text(); __setProp___id21__popup_clip_text(); } function frame40(){ __setProp_score_text_popup_clip_text_4(); __setProp_player2wins_popup_clip_text_3(); __setProp_player1wins_popup_clip_text_2(); __setProp___id22__popup_clip_text(); __setProp___id21__popup_clip_text(); } function frame41(){ __setProp_score_text_popup_clip_text_4(); __setProp_player2wins_popup_clip_text_3(); __setProp_player1wins_popup_clip_text_2(); __setProp___id22__popup_clip_text(); __setProp___id21__popup_clip_text(); } function frame44(){ __setProp_score_text_popup_clip_text_7(); __setProp_player2wins_popup_clip_text_6(); __setProp_player1wins_popup_clip_text_5(); __setProp___id24__popup_clip_text(); __setProp___id23__popup_clip_text(); } function frame45(){ __setProp_score_text_popup_clip_text_7(); __setProp_player2wins_popup_clip_text_6(); __setProp_player1wins_popup_clip_text_5(); __setProp___id24__popup_clip_text(); __setProp___id23__popup_clip_text(); } function frame46(){ __setProp_score_text_popup_clip_text_7(); __setProp_player2wins_popup_clip_text_6(); __setProp_player1wins_popup_clip_text_5(); __setProp___id24__popup_clip_text(); __setProp___id23__popup_clip_text(); } function frame47(){ __setProp_score_text_popup_clip_text_7(); __setProp_player2wins_popup_clip_text_6(); __setProp_player1wins_popup_clip_text_5(); __setProp___id24__popup_clip_text(); __setProp___id23__popup_clip_text(); } function frame48(){ __setProp_score_text_popup_clip_text_7(); __setProp_player2wins_popup_clip_text_6(); __setProp_player1wins_popup_clip_text_5(); __setProp___id24__popup_clip_text(); __setProp___id23__popup_clip_text(); } function frame49(){ __setProp_score_text_popup_clip_text_7(); __setProp_player2wins_popup_clip_text_6(); __setProp_player1wins_popup_clip_text_5(); __setProp___id24__popup_clip_text(); __setProp___id23__popup_clip_text(); } function frame50(){ __setProp_score_text_popup_clip_text_7(); __setProp_player2wins_popup_clip_text_6(); __setProp_player1wins_popup_clip_text_5(); __setProp___id24__popup_clip_text(); __setProp___id23__popup_clip_text(); } function frame51(){ __setProp_score_text_popup_clip_text_7(); __setProp_player2wins_popup_clip_text_6(); __setProp_player1wins_popup_clip_text_5(); __setProp___id24__popup_clip_text(); __setProp___id23__popup_clip_text(); } function frame52(){ __setProp_score_text_popup_clip_text_7(); __setProp_player2wins_popup_clip_text_6(); __setProp_player1wins_popup_clip_text_5(); __setProp___id24__popup_clip_text(); __setProp___id23__popup_clip_text(); } function frame53(){ __setProp_score_text_popup_clip_text_7(); __setProp_player2wins_popup_clip_text_6(); __setProp_player1wins_popup_clip_text_5(); __setProp___id24__popup_clip_text(); __setProp___id23__popup_clip_text(); } function frame56(){ __setProp_score_text_popup_clip_text_8(); __setProp___id25__popup_clip_text(); } function frame57(){ __setProp_score_text_popup_clip_text_8(); __setProp___id25__popup_clip_text(); } function frame58(){ __setProp_score_text_popup_clip_text_8(); __setProp___id25__popup_clip_text(); } function frame59(){ __setProp_score_text_popup_clip_text_8(); __setProp___id25__popup_clip_text(); } function frame60(){ __setProp_score_text_popup_clip_text_8(); __setProp___id25__popup_clip_text(); } function frame61(){ __setProp_score_text_popup_clip_text_8(); __setProp___id25__popup_clip_text(); } function frame62(){ __setProp_score_text_popup_clip_text_8(); __setProp___id25__popup_clip_text(); } function frame63(){ __setProp_score_text_popup_clip_text_8(); __setProp___id25__popup_clip_text(); } function frame64(){ __setProp_score_text_popup_clip_text_8(); __setProp___id25__popup_clip_text(); } function frame65(){ __setProp_score_text_popup_clip_text_8(); __setProp___id25__popup_clip_text(); } function frame66(){ __setProp_score_text_popup_clip_text_8(); __setProp___id25__popup_clip_text(); } function frame67(){ __setProp_score_text_popup_clip_text_8(); __setProp___id25__popup_clip_text(); } function frame70(){ __setProp___id26__popup_clip_text(); } function frame71(){ __setProp___id26__popup_clip_text(); } function frame72(){ __setProp___id26__popup_clip_text(); } function frame73(){ __setProp___id26__popup_clip_text(); } function frame74(){ __setProp___id26__popup_clip_text(); } function frame75(){ __setProp___id26__popup_clip_text(); } function frame76(){ __setProp___id26__popup_clip_text(); } function frame77(){ __setProp___id26__popup_clip_text(); } function frame78(){ __setProp___id26__popup_clip_text(); } function frame79(){ __setProp___id26__popup_clip_text(); } function frame80(){ __setProp___id26__popup_clip_text(); } function frame83(){ __setProp___id27__popup_clip_text(); } function frame84(){ __setProp___id27__popup_clip_text(); } function frame85(){ __setProp___id27__popup_clip_text(); } function frame86(){ __setProp___id27__popup_clip_text(); } function frame87(){ __setProp___id27__popup_clip_text(); } function frame88(){ __setProp___id27__popup_clip_text(); } function frame89(){ __setProp___id27__popup_clip_text(); } function frame90(){ __setProp___id27__popup_clip_text(); } function frame91(){ __setProp___id27__popup_clip_text(); } } }//package cave_chaos_fla
Section 93
//powerUp_19 (cave_chaos_fla.powerUp_19) package cave_chaos_fla { import flash.display.*; public dynamic class powerUp_19 extends MovieClip { public function powerUp_19(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package cave_chaos_fla
Section 94
//sfx_miniclip1_11 (cave_chaos_fla.sfx_miniclip1_11) package cave_chaos_fla { import flash.display.*; public dynamic class sfx_miniclip1_11 extends MovieClip { public function sfx_miniclip1_11(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package cave_chaos_fla
Section 95
//sfx_miniclip2_12 (cave_chaos_fla.sfx_miniclip2_12) package cave_chaos_fla { import flash.display.*; public dynamic class sfx_miniclip2_12 extends MovieClip { public function sfx_miniclip2_12(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package cave_chaos_fla
Section 96
//sfx_nitrome_10 (cave_chaos_fla.sfx_nitrome_10) package cave_chaos_fla { import flash.display.*; public dynamic class sfx_nitrome_10 extends MovieClip { public function sfx_nitrome_10(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package cave_chaos_fla
Section 97
//shorterBats_21 (cave_chaos_fla.shorterBats_21) package cave_chaos_fla { import flash.display.*; public dynamic class shorterBats_21 extends MovieClip { public function shorterBats_21(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package cave_chaos_fla
Section 98
//Symbol2_198 (cave_chaos_fla.Symbol2_198) package cave_chaos_fla { import flash.display.*; public dynamic class Symbol2_198 extends MovieClip { public function Symbol2_198(){ addFrameScript(0, frame1, 10, frame11); } function frame1(){ stop(); } function frame11(){ stop(); } } }//package cave_chaos_fla
Section 99
//Y8Click_7 (cave_chaos_fla.Y8Click_7) package cave_chaos_fla { import flash.display.*; import flash.events.*; import flash.net.*; public dynamic class Y8Click_7 extends MovieClip { public function Y8Click_7(){ addFrameScript(0, frame1); } public function onC(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.y8.com"), "_blank"); } function frame1(){ this.addEventListener(MouseEvent.CLICK, onC); this.buttonMode = true; } } }//package cave_chaos_fla
Section 100
//Y8Preloaderas3_1 (cave_chaos_fla.Y8Preloaderas3_1) package cave_chaos_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.ui.*; import flash.xml.*; public dynamic class Y8Preloaderas3_1 extends MovieClip { public var ad_loading_text:MovieClip; public var ad_loading_bar:MovieClip; public function Y8Preloaderas3_1(){ addFrameScript(0, frame1); } public function loop(_arg1:Event):void{ var _local2:int = root.stage.loaderInfo.bytesTotal; var _local3:int = root.stage.loaderInfo.bytesLoaded; var _local4:int = Math.round(((_local3 / _local2) * 100)); if (_local4 >= 100){ this.removeEventListener(Event.ENTER_FRAME, loop); MovieClip(root).gotoAndPlay("nitrome"); } else { ad_loading_bar.ad_bar.width = ((530 * _local4) / 100); }; } function frame1(){ this.addEventListener(Event.ENTER_FRAME, loop); } } }//package cave_chaos_fla
Section 101
//Y8smalllogo_196 (cave_chaos_fla.Y8smalllogo_196) package cave_chaos_fla { import flash.display.*; import flash.events.*; import flash.net.*; public dynamic class Y8smalllogo_196 extends MovieClip { public function Y8smalllogo_196(){ addFrameScript(0, frame1); } public function onC(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.y8.com"), "_blank"); } function frame1(){ this.addEventListener(MouseEvent.CLICK, onC); this.buttonMode = true; } } }//package cave_chaos_fla
Section 102
//y8symbol2_6 (cave_chaos_fla.y8symbol2_6) package cave_chaos_fla { import flash.display.*; public dynamic class y8symbol2_6 extends MovieClip { public function y8symbol2_6(){ addFrameScript(134, frame135); } function frame135(){ stop(); } } }//package cave_chaos_fla
Section 103
//BackButton (com.nitrome.buttons.BackButton) package com.nitrome.buttons { import flash.events.*; public class BackButton extends SimpleButton { public var __id11_:CrystalFont; public function BackButton(){ addFrameScript(0, frame1, 9, frame10); __setProp___id11__back_button_Layer1_0(); } override public function onClick(_arg1:MouseEvent):void{ if (name == "back_choose_level"){ NitromeGame.transition.doTween("choose_players"); } else { NitromeGame.transition.doTween("title_screen"); }; } function __setProp___id11__back_button_Layer1_0(){ try { __id11_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id11_.align = "center"; __id11_.align_vert = "center"; __id11_.id = "Crystal"; __id11_.line_spacing = 22; __id11_.text = "back"; __id11_.tracking = 0; try { __id11_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ stop(); } function frame10(){ stop(); } } }//package com.nitrome.buttons
Section 104
//ContinueEndButton (com.nitrome.buttons.ContinueEndButton) package com.nitrome.buttons { import flash.events.*; import com.nitrome.crystalmines.*; import com.nitrome.game.*; public class ContinueEndButton extends SimpleButton { public var __id14_:CrystalFont; public function ContinueEndButton(){ addFrameScript(0, frame1, 9, frame10); __setProp___id14__continue_end_button_Layer7_0(); } override public function onClick(_arg1:MouseEvent):void{ NitromeGame.sound_manager.playMusic(SoundManager.MENU); NitromeGame.transition.doTween("congrats"); GameController.gameController.deleteAll(); } function __setProp___id14__continue_end_button_Layer7_0(){ try { __id14_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id14_.align = "center"; __id14_.align_vert = "center"; __id14_.id = "Crystal"; __id14_.line_spacing = 22; __id14_.text = "continue"; __id14_.tracking = 0; try { __id14_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ stop(); } function frame10(){ stop(); } } }//package com.nitrome.buttons
Section 105
//ContinuePauseButton (com.nitrome.buttons.ContinuePauseButton) package com.nitrome.buttons { import flash.events.*; import com.nitrome.crystalmines.*; import com.nitrome.game.*; public class ContinuePauseButton extends SimpleButton { public var __id15_:CrystalFont; public function ContinuePauseButton(){ addFrameScript(0, frame1, 9, frame10); __setProp___id15__continue_pause_button_Layer7_0(); } override public function onClick(_arg1:MouseEvent):void{ (parent.parent as PopUpHolder).doHide(); GameController.gameController.continueClick(); } function __setProp___id15__continue_pause_button_Layer7_0(){ try { __id15_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id15_.align = "center"; __id15_.align_vert = "center"; __id15_.id = "Crystal"; __id15_.line_spacing = 22; __id15_.text = "continue"; __id15_.tracking = 0; try { __id15_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ stop(); } function frame10(){ stop(); } } }//package com.nitrome.buttons
Section 106
//CreditsButton (com.nitrome.buttons.CreditsButton) package com.nitrome.buttons { import flash.events.*; public class CreditsButton extends SimpleButton { public var __id10_:CrystalFont; public function CreditsButton(){ addFrameScript(0, frame1, 9, frame10); __setProp___id10__credits_button_Layer1_0(); } override public function onClick(_arg1:MouseEvent):void{ NitromeGame.transition.doTween("credits"); } function __setProp___id10__credits_button_Layer1_0(){ try { __id10_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id10_.align = "center"; __id10_.align_vert = "center"; __id10_.id = "Crystal"; __id10_.line_spacing = 22; __id10_.text = "credits"; __id10_.tracking = 0; try { __id10_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ stop(); } function frame10(){ stop(); } } }//package com.nitrome.buttons
Section 107
//HelpButton (com.nitrome.buttons.HelpButton) package com.nitrome.buttons { import flash.events.*; public class HelpButton extends SimpleButton { public var __id12_:CrystalFont; public function HelpButton(){ addFrameScript(0, frame1, 9, frame10); __setProp___id12__help_button_Layer1_0(); } override public function onClick(_arg1:MouseEvent):void{ NitromeGame.transition.doTween("help"); } function __setProp___id12__help_button_Layer1_0(){ try { __id12_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id12_.align = "center"; __id12_.align_vert = "center"; __id12_.id = "Crystal"; __id12_.line_spacing = 22; __id12_.text = "help ?"; __id12_.tracking = 0; try { __id12_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ stop(); } function frame10(){ stop(); } } }//package com.nitrome.buttons
Section 108
//LevelSelectButton (com.nitrome.buttons.LevelSelectButton) package com.nitrome.buttons { import flash.events.*; import com.nitrome.game.*; import com.nitrome.util.*; import flash.utils.*; public class LevelSelectButton extends SimpleButton { public var __id16_:CrystalFont; public var level_text:CrystalFont; public var __setPropDict:Dictionary; private var number:Number; private var unlocked:Boolean; public function LevelSelectButton(){ __setPropDict = new Dictionary(true); super(); addFrameScript(0, frame1, 9, frame10, 19, frame20, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 10, frame11, 11, frame12, 12, frame13, 13, frame14, 14, frame15, 15, frame16, 16, frame17, 17, frame18, 20, frame21, 21, frame22, 22, frame23, 23, frame24, 24, frame25, 25, frame26, 26, frame27, 27, frame28, 28, frame29); addEventListener(Event.ADDED_TO_STAGE, firstUpdate); } private function firstUpdate(_arg1:Event):void{ number = Number(name.substr(6)); updateGraphic(); removeEventListener(Event.ADDED_TO_STAGE, firstUpdate); } public function init(_arg1:Array):void{ number = Number(name.substr(6)); unlocked = (((number == 1)) || (Global.isInList(number, _arg1))); useHandCursor = (buttonMode = unlocked); updateGraphic(); } override protected function updateGraphic():void{ if (unlocked){ if (over){ gotoAndStop("over"); } else { gotoAndStop("up"); }; } else { gotoAndStop("locked"); }; if (level_text != null){ level_text.text = String(number); level_text.visible = unlocked; }; } override public function onClick(_arg1:MouseEvent):void{ if (unlocked){ Score.value = 0; SelectedLevel.value = number; ScoreP1.value = 0; ScoreP2.value = 0; WinsP1.value = 0; WinsP2.value = 0; LevelScoreP1.value = 0; LevelScoreP2.value = 0; if (number == 1){ NitromeGame.transition.doTween("intro"); } else { NitromeGame.transition.doTween("game"); }; }; } function __setProp_level_text_level_select_button_Layer11_0(){ if ((((__setPropDict[level_text] == undefined)) || (!((((int(__setPropDict[level_text]) >= 1)) && ((int(__setPropDict[level_text]) <= 18))))))){ __setPropDict[level_text] = currentFrame; try { level_text["componentInspectorSetting"] = true; } catch(e:Error) { }; level_text.align = "center"; level_text.align_vert = "center"; level_text.id = "Crystal"; level_text.line_spacing = 22; level_text.text = "00"; level_text.tracking = 0; try { level_text["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp___id16__level_select_button_Layer11_19(){ if ((((__setPropDict[__id16_] == undefined)) || (!((((int(__setPropDict[__id16_]) >= 20)) && ((int(__setPropDict[__id16_]) <= 29))))))){ __setPropDict[__id16_] = currentFrame; try { __id16_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id16_.align = "center"; __id16_.align_vert = "center"; __id16_.id = "Crystal"; __id16_.line_spacing = 22; __id16_.text = "??"; __id16_.tracking = 0; try { __id16_["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function frame1(){ __setProp_level_text_level_select_button_Layer11_0(); updateGraphic(); stop(); } function frame10(){ __setProp_level_text_level_select_button_Layer11_0(); updateGraphic(); stop(); } function frame20(){ __setProp___id16__level_select_button_Layer11_19(); stop(); } function frame2(){ __setProp_level_text_level_select_button_Layer11_0(); } function frame3(){ __setProp_level_text_level_select_button_Layer11_0(); } function frame4(){ __setProp_level_text_level_select_button_Layer11_0(); } function frame5(){ __setProp_level_text_level_select_button_Layer11_0(); } function frame6(){ __setProp_level_text_level_select_button_Layer11_0(); } function frame7(){ __setProp_level_text_level_select_button_Layer11_0(); } function frame8(){ __setProp_level_text_level_select_button_Layer11_0(); } function frame9(){ __setProp_level_text_level_select_button_Layer11_0(); } function frame11(){ __setProp_level_text_level_select_button_Layer11_0(); } function frame12(){ __setProp_level_text_level_select_button_Layer11_0(); } function frame13(){ __setProp_level_text_level_select_button_Layer11_0(); } function frame14(){ __setProp_level_text_level_select_button_Layer11_0(); } function frame15(){ __setProp_level_text_level_select_button_Layer11_0(); } function frame16(){ __setProp_level_text_level_select_button_Layer11_0(); } function frame17(){ __setProp_level_text_level_select_button_Layer11_0(); } function frame18(){ __setProp_level_text_level_select_button_Layer11_0(); } function frame21(){ __setProp___id16__level_select_button_Layer11_19(); } function frame22(){ __setProp___id16__level_select_button_Layer11_19(); } function frame23(){ __setProp___id16__level_select_button_Layer11_19(); } function frame24(){ __setProp___id16__level_select_button_Layer11_19(); } function frame25(){ __setProp___id16__level_select_button_Layer11_19(); } function frame26(){ __setProp___id16__level_select_button_Layer11_19(); } function frame27(){ __setProp___id16__level_select_button_Layer11_19(); } function frame28(){ __setProp___id16__level_select_button_Layer11_19(); } function frame29(){ __setProp___id16__level_select_button_Layer11_19(); } } }//package com.nitrome.buttons
Section 109
//NextButton (com.nitrome.buttons.NextButton) package com.nitrome.buttons { import flash.display.*; import flash.events.*; public class NextButton extends SimpleButton { public function NextButton(){ addFrameScript(0, frame1, 9, frame10); } override public function onClick(_arg1:MouseEvent):void{ MovieClip(parent).gotoAndStop("page2"); } function frame1(){ stop(); } function frame10(){ stop(); } } }//package com.nitrome.buttons
Section 110
//NextLevelButton (com.nitrome.buttons.NextLevelButton) package com.nitrome.buttons { import flash.events.*; import com.nitrome.crystalmines.*; import com.nitrome.game.*; public class NextLevelButton extends SimpleButton { public var __id17_:CrystalFont; private var done:Boolean;// = false public function NextLevelButton(){ addFrameScript(0, frame1, 9, frame10); __setProp___id17__next_level_button_Layer7_0(); } override public function onClick(_arg1:MouseEvent):void{ doClick(); } public function doClick():void{ if (!done){ (parent.parent as PopUpHolder).doHide(); SelectedLevel.value++; LevelScoreP1.value = 0; LevelScoreP2.value = 0; done = true; NitromeGame.transition.doTween(function (){ GameController.gameController.deleteAll(); var _local1:* = new GameController(); _local1.setPopUp((parent.parent as PopUpHolder)); NitromeGame.timeline.addChild(_local1); NitromeGame.timeline.setChildIndex(_local1, 1); }); }; } function __setProp___id17__next_level_button_Layer7_0(){ try { __id17_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id17_.align = "center"; __id17_.align_vert = "center"; __id17_.id = "Crystal"; __id17_.line_spacing = 22; __id17_.text = "next level"; __id17_.tracking = 0; try { __id17_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ stop(); } function frame10(){ stop(); } } }//package com.nitrome.buttons
Section 111
//OnePlayerButton (com.nitrome.buttons.OnePlayerButton) package com.nitrome.buttons { import flash.events.*; import com.nitrome.game.*; public class OnePlayerButton extends SimpleButton { public var __id34_:CrystalFont; public function OnePlayerButton(){ addFrameScript(0, frame1, 9, frame10); __setProp___id34__player_1_button_Layer3_0(); } override public function onClick(_arg1:MouseEvent):void{ PlayerNum.value = 1; if (NitromeGame.getLastLevelUnlocked() == 1){ SelectedLevel.value = 1; NitromeGame.transition.doTween("game"); } else { NitromeGame.transition.doTween("level_select"); }; } function __setProp___id34__player_1_button_Layer3_0(){ try { __id34_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id34_.align = "center"; __id34_.align_vert = "center"; __id34_.id = "Crystal"; __id34_.line_spacing = 22; __id34_.text = "one player"; __id34_.tracking = 0; try { __id34_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ stop(); } function frame10(){ stop(); } } }//package com.nitrome.buttons
Section 112
//PauseButton (com.nitrome.buttons.PauseButton) package com.nitrome.buttons { import flash.events.*; import com.nitrome.crystalmines.*; import com.nitrome.game.*; public class PauseButton extends SimpleButton { private var popupholder:PopUpHolder; public function PauseButton(){ addFrameScript(0, frame1, 1, frame2); addEventListener(Event.ADDED_TO_STAGE, addedToStage, false, 0, true); addEventListener(Event.REMOVED_FROM_STAGE, removedFromStage, false, 0, true); } public function init(_arg1:PopUpHolder):void{ this.popupholder = _arg1; } public function addedToStage(_arg1:Event):void{ stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown, false, 0, true); } public function removedFromStage(_arg1:Event):void{ stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDown, false); } public function keyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == 80){ onClick(null); }; } override public function onClick(_arg1:MouseEvent):void{ if (GameController.gameController.pop_up.isFullyOpen){ GameController.gameController.pop_up.doHide(); GameController.gameController.continueClick(); } else { if (GameController.gameController.pop_up.isFullyClosed){ GameController.gameController.pauseClick(); }; }; } function frame1(){ stop(); } function frame2(){ stop(); } } }//package com.nitrome.buttons
Section 113
//PlayButton (com.nitrome.buttons.PlayButton) package com.nitrome.buttons { import flash.events.*; public class PlayButton extends SimpleButton { public function PlayButton(){ addFrameScript(0, frame1, 9, frame10); } override public function onClick(_arg1:MouseEvent):void{ NitromeGame.transition.doTween("choose_players"); } function frame1(){ stop(); } function frame10(){ stop(); } } }//package com.nitrome.buttons
Section 114
//PreviousButton (com.nitrome.buttons.PreviousButton) package com.nitrome.buttons { import flash.display.*; import flash.events.*; public class PreviousButton extends SimpleButton { public function PreviousButton(){ addFrameScript(0, frame1, 9, frame10); } override public function onClick(_arg1:MouseEvent):void{ MovieClip(parent).gotoAndStop("page1"); } function frame1(){ stop(); } function frame10(){ stop(); } } }//package com.nitrome.buttons
Section 115
//QuitButton (com.nitrome.buttons.QuitButton) package com.nitrome.buttons { import flash.events.*; import com.nitrome.crystalmines.*; import com.nitrome.game.*; public class QuitButton extends SimpleButton { public var __id28_:CrystalFont; public function QuitButton(){ addFrameScript(0, frame1, 9, frame10); __setProp___id28__quit_button_Layer7_0(); } override public function onClick(_arg1:MouseEvent):void{ NitromeGame.sound_manager.playMusic(SoundManager.MENU); NitromeGame.transition.doTween("title_screen"); GameController.gameController.deleteAll(); } function __setProp___id28__quit_button_Layer7_0(){ try { __id28_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id28_.align = "center"; __id28_.align_vert = "center"; __id28_.id = "Crystal"; __id28_.line_spacing = 22; __id28_.text = "quit"; __id28_.tracking = 0; try { __id28_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ stop(); } function frame10(){ stop(); } } }//package com.nitrome.buttons
Section 116
//QuitPauseButton (com.nitrome.buttons.QuitPauseButton) package com.nitrome.buttons { import flash.events.*; import com.nitrome.crystalmines.*; public class QuitPauseButton extends SimpleButton { public var __id30_:CrystalFont; public function QuitPauseButton(){ addFrameScript(0, frame1, 9, frame10); __setProp___id30__quit_pause_button_Layer7_0(); } override public function onClick(_arg1:MouseEvent):void{ NitromeGame.transition.doTween("title_screen"); GameController.gameController.deleteAll(); } function __setProp___id30__quit_pause_button_Layer7_0(){ try { __id30_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id30_.align = "center"; __id30_.align_vert = "center"; __id30_.id = "Crystal"; __id30_.line_spacing = 22; __id30_.text = "quit"; __id30_.tracking = 0; try { __id30_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ stop(); } function frame10(){ stop(); } } }//package com.nitrome.buttons
Section 117
//ScoresButton (com.nitrome.buttons.ScoresButton) package com.nitrome.buttons { import flash.events.*; public class ScoresButton extends SimpleButton { public var __id9_:CrystalFont; public function ScoresButton(){ addFrameScript(0, frame1, 9, frame10); __setProp___id9__scores_button_Layer1_0(); } override public function onClick(_arg1:MouseEvent):void{ NitromeGame.transition.doTween("scores"); } function __setProp___id9__scores_button_Layer1_0(){ try { __id9_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id9_.align = "center"; __id9_.align_vert = "center"; __id9_.id = "Crystal"; __id9_.line_spacing = 22; __id9_.text = "scores"; __id9_.tracking = 0; try { __id9_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ stop(); } function frame10(){ stop(); } } }//package com.nitrome.buttons
Section 118
//SimpleButton (com.nitrome.buttons.SimpleButton) package com.nitrome.buttons { import flash.display.*; import flash.events.*; public class SimpleButton extends MovieClip { protected var over:Boolean;// = false public function SimpleButton(){ mouseChildren = false; buttonMode = true; this.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver, false, 0, true); this.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut, false, 0, true); this.addEventListener(MouseEvent.MOUSE_DOWN, onClick, false, 0, true); stop(); } protected function updateGraphic():void{ if (over){ gotoAndStop("over"); } else { gotoAndStop("up"); }; } protected function onMouseOver(_arg1:MouseEvent):void{ over = true; updateGraphic(); } protected function onMouseOut(_arg1:MouseEvent):void{ over = false; updateGraphic(); } public function onClick(_arg1:MouseEvent):void{ } } }//package com.nitrome.buttons
Section 119
//SkipIntroButton (com.nitrome.buttons.SkipIntroButton) package com.nitrome.buttons { import flash.events.*; public class SkipIntroButton extends SimpleButton { public var __id36_:CrystalFont; public function SkipIntroButton(){ addFrameScript(0, frame1, 9, frame10); __setProp___id36__skip_intro_button_Layer8_0(); } override public function onClick(_arg1:MouseEvent):void{ NitromeGame.transition.doTween("game"); } function __setProp___id36__skip_intro_button_Layer8_0(){ try { __id36_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id36_.align = "center"; __id36_.align_vert = "center"; __id36_.id = "Crystal"; __id36_.line_spacing = 22; __id36_.text = "skip"; __id36_.tracking = 0; try { __id36_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ stop(); } function frame10(){ stop(); } } }//package com.nitrome.buttons
Section 120
//SubmitScoreButton (com.nitrome.buttons.SubmitScoreButton) package com.nitrome.buttons { import flash.events.*; import com.nitrome.crystalmines.*; import com.nitrome.game.*; public class SubmitScoreButton extends SimpleButton { public var __id33_:CrystalFont; public function SubmitScoreButton(){ addFrameScript(0, frame1, 9, frame10); if (Score.value <= NitromeGame.getLastSavedScore()){ visible = false; }; __setProp___id33__submit_score_button_Layer8_0(); } override public function onClick(_arg1:MouseEvent):void{ NitromeGame.sound_manager.playMusic(SoundManager.MENU); NitromeGame.setLastSavedScore(Score.value); NitromeGame.transition.doTween("submit_score"); GameController.gameController.deleteAll(); } function __setProp___id33__submit_score_button_Layer8_0(){ try { __id33_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id33_.align = "center"; __id33_.align_vert = "center"; __id33_.id = "Crystal"; __id33_.line_spacing = 22; __id33_.text = "submit score"; __id33_.tracking = 0; try { __id33_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ stop(); } function frame10(){ stop(); } } }//package com.nitrome.buttons
Section 121
//TryAgainButton (com.nitrome.buttons.TryAgainButton) package com.nitrome.buttons { import flash.events.*; import com.nitrome.crystalmines.*; import com.nitrome.game.*; public class TryAgainButton extends SimpleButton { public var __id29_:CrystalFont; private var done:Boolean;// = false public function TryAgainButton(){ addFrameScript(0, frame1, 9, frame10); __setProp___id29__try_again_button_Layer7_0(); } override public function onClick(_arg1:MouseEvent):void{ var e = _arg1; if (!done){ (parent.parent as PopUpHolder).doHide(); Score.value = 0; ScoreP1.value = 0; ScoreP2.value = 0; LevelScoreP1.value = 0; LevelScoreP2.value = 0; done = true; NitromeGame.transition.doTween(function (){ GameController.gameController.deleteAll(); var _local1:* = new GameController(); _local1.setPopUp((parent.parent as PopUpHolder)); NitromeGame.timeline.addChild(_local1); NitromeGame.timeline.setChildIndex(_local1, 1); }); }; } function __setProp___id29__try_again_button_Layer7_0(){ try { __id29_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id29_.align = "center"; __id29_.align_vert = "center"; __id29_.id = "Crystal"; __id29_.line_spacing = 22; __id29_.text = "try again"; __id29_.tracking = 0; try { __id29_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ stop(); } function frame10(){ stop(); } } }//package com.nitrome.buttons
Section 122
//TwoPlayerButton (com.nitrome.buttons.TwoPlayerButton) package com.nitrome.buttons { import flash.events.*; import com.nitrome.game.*; public class TwoPlayerButton extends SimpleButton { public var __id35_:CrystalFont; public function TwoPlayerButton(){ addFrameScript(0, frame1, 9, frame10); __setProp___id35__player_2_button_Layer3_0(); } override public function onClick(_arg1:MouseEvent):void{ PlayerNum.value = 2; if (NitromeGame.getLastLevelUnlocked() == 1){ SelectedLevel.value = 1; NitromeGame.transition.doTween("game"); } else { NitromeGame.transition.doTween("level_select"); }; } function __setProp___id35__player_2_button_Layer3_0(){ try { __id35_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id35_.align = "center"; __id35_.align_vert = "center"; __id35_.id = "Crystal"; __id35_.line_spacing = 22; __id35_.text = "two player"; __id35_.tracking = 0; try { __id35_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ stop(); } function frame10(){ stop(); } } }//package com.nitrome.buttons
Section 123
//baddy_spider_web (com.nitrome.crystalmines.baddy_spider_web) package com.nitrome.crystalmines { import flash.display.*; public dynamic class baddy_spider_web extends MovieClip { } }//package com.nitrome.crystalmines
Section 124
//Bat (com.nitrome.crystalmines.Bat) package com.nitrome.crystalmines { import Box2D.Dynamics.*; import flash.display.*; public class Bat extends MovieClip { public var body:b2Body; private var _gamePosX:Number;// = 0 private var _gamePosY:Number;// = 0 private var _vecX:Number;// = 0 private var _vecY:Number;// = 0 private var _speed:Number;// = 4 private var _dist:Number;// = 2 private var _inPlace:Boolean;// = false private var _floatyNo:Number;// = 0 private var _floatyUp:Boolean;// = true public function setPosition(_arg1:Number, _arg2:Number):void{ _vecX = _arg1; _vecY = _arg2; } public function update():void{ this.x = _vecX; this.y = _vecY; } public function setMovement(_arg1:Number, _arg2:Number){ } public function get dist():Number{ return (_dist); } public function set inPlace(_arg1:Boolean):void{ _inPlace = _arg1; } public function get inPlace():Boolean{ return (_inPlace); } public function set vecX(_arg1:Number){ _vecX = _arg1; } public function get vecX():Number{ return (_vecX); } public function set vecY(_arg1:Number){ _vecY = _arg1; } public function get vecY():Number{ return (_vecY); } public function set gamePositionX(_arg1:Number){ _gamePosX = _arg1; } public function get gamePositionX():Number{ return (_gamePosX); } public function set gamePositionY(_arg1:Number){ _gamePosY = _arg1; } public function get gamePositionY():Number{ return (_gamePosY); } public function get floatyNo():Number{ return (_floatyNo); } public function set floatyNo(_arg1:Number):void{ _floatyNo = _arg1; } public function get floatyUp():Boolean{ return (_floatyUp); } public function set floatyUp(_arg1:Boolean):void{ _floatyUp = _arg1; } } }//package com.nitrome.crystalmines
Section 125
//Block (com.nitrome.crystalmines.Block) package com.nitrome.crystalmines { import Box2D.Dynamics.*; import flash.display.*; public class Block extends MovieClip { public var body; public var body2:b2Body; private var _gamePosX:Number;// = 0 private var _gamePosY:Number;// = 0 private var _vecX:Number;// = 0 private var _vecY:Number;// = 0 private var _angle:Number;// = 0 private var _blockRotationDirection:Boolean;// = true private var _blockRotationTimer:int;// = 0 private var _blockRotationTimerStart:Boolean;// = false private var _dist:Number;// = 2 private var _inPlace:Boolean;// = false private var _floatyNo:Number;// = 0 private var _floatyUp:Boolean;// = true public static var speed:Number = 5.5; public function Block(){ stop(); } public function setPosition(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } public function animate(_arg1:int, _arg2:int):void{ _arg1 = 1; _arg2 = 10; if (currentFrame > 8){ gotoAndStop(9); }; if ((((currentFrame < _arg1)) || ((currentFrame > _arg2)))){ gotoAndStop(_arg1); }; if (currentFrame == _arg2){ gotoAndStop(_arg1); } else { gotoAndStop((currentFrame + 1)); }; } public function setMovement(_arg1:Number, _arg2:Number){ var _local3:Number = (_gamePosX - _arg1); var _local4:Number = (_gamePosY - _arg2); var _local5:Number = Math.atan2(_local4, _local3); _vecX = (speed * Math.cos(_local5)); _vecY = (speed * Math.sin(_local5)); _dist = Math.sqrt((Math.pow(_local3, 2) + Math.pow(_local4, 2))); } public function get dist():Number{ return (_dist); } public function set inPlace(_arg1:Boolean):void{ _inPlace = _arg1; } public function get inPlace():Boolean{ return (_inPlace); } public function set vecX(_arg1:Number){ _vecX = _arg1; } public function get vecX():Number{ return (_vecX); } public function set vecY(_arg1:Number){ _vecY = _arg1; } public function get vecY():Number{ return (_vecY); } public function set gamePositionX(_arg1:Number){ _gamePosX = _arg1; } public function get gamePositionX():Number{ return (_gamePosX); } public function set gamePositionY(_arg1:Number){ _gamePosY = _arg1; } public function get gamePositionY():Number{ return (_gamePosY); } public function get floatyNo():Number{ return (_floatyNo); } public function set floatyNo(_arg1:Number):void{ _floatyNo = _arg1; } public function get floatyUp():Boolean{ return (_floatyUp); } public function set floatyUp(_arg1:Boolean):void{ _floatyUp = _arg1; } public function get ang():Number{ return (_angle); } public function set ang(_arg1:Number):void{ _angle = _arg1; } public function get blockRotationDirection():Boolean{ return (_blockRotationDirection); } public function set blockRotationDirection(_arg1:Boolean):void{ _blockRotationDirection = _arg1; } public function get blockRotationTimer():int{ return (_blockRotationTimer); } public function set blockRotationTimer(_arg1:int):void{ _blockRotationTimer = _arg1; } public function get blockRotationTimerStart():Boolean{ return (_blockRotationTimerStart); } public function set blockRotationTimerStart(_arg1:Boolean):void{ _blockRotationTimerStart = _arg1; } } }//package com.nitrome.crystalmines
Section 126
//Bomb (com.nitrome.crystalmines.Bomb) package com.nitrome.crystalmines { import Box2D.Dynamics.*; import flash.display.*; public class Bomb extends MovieClip { private var _burningDown:Boolean;// = false private var _blowUp:Boolean;// = false private var _closeToBlowUp:Boolean;// = false private var _blowUpCountDownTimer:int;// = 30 public var body:b2Body; public static const BLOW_UP_SPEED:Number = 35; public static const BLOW_UP_PROXIMITY:Number = 120; public static const TIME_BEFORE_BLOW_UP:int = 30; public function Bomb(){ gotoAndStop(1); _burningDown = true; } public function setPosition(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } public function update():void{ _blowUpCountDownTimer--; if (_blowUpCountDownTimer < (TIME_BEFORE_BLOW_UP / 10)){ _closeToBlowUp = true; }; if (_blowUpCountDownTimer < 0){ _blowUp = true; }; animate(0, 0); } private function animate(_arg1:int, _arg2:int):void{ if (_blowUp){ gotoAndStop(6); } else { if (_closeToBlowUp){ _arg1 = 4; _arg2 = 6; } else { if (_burningDown){ _arg1 = 1; _arg2 = 3; }; }; }; if ((((currentFrame < _arg1)) || ((currentFrame > _arg2)))){ gotoAndStop(_arg1); }; if (currentFrame == _arg2){ gotoAndStop(_arg1); } else { gotoAndStop((currentFrame + 1)); }; } public function set blowUp(_arg1:Boolean):void{ _blowUp = _arg1; } public function get blowUp():Boolean{ return (_blowUp); } } }//package com.nitrome.crystalmines
Section 127
//CollisionDetection (com.nitrome.crystalmines.CollisionDetection) package com.nitrome.crystalmines { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import flash.display.*; import flash.events.*; import Box2D.Collision.*; public class CollisionDetection { private var _physScale:Number;// = 30 public static const NO_COLLISION:Number = -66666; public function checkForCollisions(_arg1:b2World, _arg2:MovieClip, _arg3:String, _arg4:String, _arg5:String):b2Body{ var _local6:b2Body; var _local7:b2Body = _arg1.m_bodyList; while (_local7) { if ((_local7.m_userData is Sprite)){ if (((!((_arg3 == null))) && (_arg4))){ if ((((((_local7.m_userData.name == _arg3)) || ((_local7.m_userData.name == _arg4)))) || ((_local7.m_userData.name == _arg5)))){ if (checkForObjectCollisions(_arg2, _local7.m_userData)){ _local6 = _local7.m_userData.body; return (_local6); }; }; }; }; _local7 = _local7.m_next; }; return (_local6); } public function checkForObjectCollisions(_arg1:MovieClip, _arg2:MovieClip):Boolean{ var _local3:*; var _local4:*; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; if ((_arg2 is Sprite)){ _local3 = _arg2.x; _local4 = _arg2.y; _local5 = (_arg1.x - _local3); _local6 = (_arg1.y - _local4); _local7 = Math.sqrt((Math.pow(_local5, 2) + Math.pow(_local6, 2))); _local8 = ((_arg2.width / 2) + (_arg1.width / 2)); if (_local7 < _local8){ return (true); }; }; return (false); } public function getBodyAtPoint2(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Boolean=false){ var _local14:b2Shape; var _local15:Boolean; var _local5:* = (_arg2 / _physScale); var _local6:* = (_arg3 / _physScale); var _local7:b2Vec2 = new b2Vec2(); _local7.Set(_local5, _local6); var _local8:b2AABB = new b2AABB(); _local8.lowerBound.Set((_local5 - 0.001), (_local6 - 0.001)); _local8.upperBound.Set((_local5 + 0.001), (_local6 + 0.001)); var _local9 = 10; var _local10:Array = new Array(); var _local11:int = _arg1.Query(_local8, _local10, _local9); var _local12:b2Body; var _local13:int; while (_local13 < _local11) { if ((((_local10[_local13].m_body.IsStatic() == false)) || (_arg4))){ _local14 = (_local10[_local13] as b2Shape); _local15 = (_local10[_local13] as b2Shape).TestPoint(_local14.m_body.GetXForm(), _local7); if (_local15){ _local12 = _local14.m_body; break; }; }; _local13++; }; return (_local12); } public function getBodyAtPoint(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Boolean, _arg5:String, _arg6:String):b2Body{ var _local16:b2Shape; var _local17:Boolean; var _local7:* = (_arg2 / _physScale); var _local8:* = (_arg3 / _physScale); var _local9:b2Vec2 = new b2Vec2(); _local9.Set(_local7, _local8); var _local10:b2AABB = new b2AABB(); _local10.lowerBound.Set((_local7 - 0.001), (_local8 - 0.001)); _local10.upperBound.Set((_local7 + 0.001), (_local8 + 0.001)); var _local11 = 60; var _local12:Array = new Array(); var _local13:int = _arg1.Query(_local10, _local12, _local11); var _local14:b2Body; var _local15:int; while (_local15 < _local13) { if ((((_local12[_local15].m_body.IsStatic() == false)) || (_arg4))){ _local16 = (_local12[_local15] as b2Shape); if (((!((_local16.m_body.m_userData.name == _arg5))) && (!((_local16.m_body.m_userData.name == _arg6))))){ _local17 = _local16.TestPoint(_local16.m_body.GetXForm(), _local9); if (_local17){ _local14 = _local16.m_body; break; }; }; }; _local15++; }; return (_local14); } public function checkOffBottomScreenObjects(_arg1:MovieClip, _arg2:Number):Boolean{ if ((_arg1.y - _arg1.height) > _arg2){ return (true); }; return (false); } public function checkOffSideScreenObjects(_arg1:MovieClip, _arg2:Number):Boolean{ if ((_arg1.x + (_arg1.width / 2)) > _arg2){ return (false); }; return (true); } } }//package com.nitrome.crystalmines
Section 128
//Crystal (com.nitrome.crystalmines.Crystal) package com.nitrome.crystalmines { import flash.display.*; public class Crystal extends MovieClip { private var _speed:Number;// = 16 private var _dist:Number;// = 2 private var _sparkleSpin:Boolean;// = true private var _grabbed:Boolean;// = false private var _remove:Boolean;// = false private var _gamePosX:Number;// = 0 private var _gamePosY:Number;// = 0 private var _vecX:Number;// = 0 private var _vecY:Number;// = 0 public var crystalType:String;// = "" public function Crystal(){ gotoAndStop(1); } public function setMovement(_arg1:Number, _arg2:Number){ var _local3:Number = (_gamePosX - _arg1); var _local4:Number = (_gamePosY - _arg2); var _local5:Number = Math.atan2(_local4, _local3); _vecX = (_speed * Math.cos(_local5)); _vecY = (_speed * Math.sin(_local5)); } public function get dist():Number{ var _local1:Number = (_gamePosX - this.x); var _local2:Number = (_gamePosY - this.y); _dist = Math.sqrt((Math.pow(_local1, 2) + Math.pow(_local2, 2))); return (_dist); } public function update():void{ x = (x + _vecX); y = (y + _vecY); animate(0, 0); } public function setPosition(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } public function set sparkleSpin(_arg1:Boolean):void{ _sparkleSpin = _arg1; } public function get sparkleSpin():Boolean{ return (_sparkleSpin); } public function set grabbed(_arg1:Boolean):void{ _grabbed = _arg1; } public function get grabbed():Boolean{ return (_grabbed); } public function set remove(_arg1:Boolean):void{ _remove = _arg1; } public function get remove():Boolean{ return (_remove); } public function animate(_arg1:int, _arg2:int):void{ if (_grabbed){ _arg1 = 7; _arg2 = 20; if (currentFrame > 17){ _remove = true; }; } else { if (_sparkleSpin){ _arg1 = 0; _arg2 = 8; }; }; if ((((currentFrame < _arg1)) || ((currentFrame > _arg2)))){ gotoAndStop(_arg1); }; if (currentFrame == _arg2){ gotoAndStop(_arg1); } else { gotoAndStop((currentFrame + 1)); }; } public function set gamePositionY(_arg1:Number){ _gamePosY = _arg1; } public function get gamePositionY():Number{ return (_gamePosY); } } }//package com.nitrome.crystalmines
Section 129
//Debug (com.nitrome.crystalmines.Debug) package com.nitrome.crystalmines { import Box2D.Dynamics.*; import flash.display.*; public final class Debug { public static function switchDebugOn(_arg1:b2World, _arg2:WorldContainer, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):void{ var _local7:Sprite; _local7 = new Sprite(); var _local8:b2DebugDraw = new b2DebugDraw(); var _local9:Sprite = new Sprite(); _arg2.addChild(_local7); _local7.addChild(_local9); _local8.m_sprite = _local7; _local8.m_drawScale = _arg3; _local8.m_alpha = _arg4; _local8.m_fillAlpha = _arg5; _local8.m_lineThickness = _arg6; _local8.m_drawFlags = ((((((b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit) | b2DebugDraw.e_coreShapeBit) | b2DebugDraw.e_aabbBit) | b2DebugDraw.e_obbBit) | b2DebugDraw.e_pairBit) | b2DebugDraw.e_centerOfMassBit); _arg1.SetDebugDraw(_local8); } } }//package com.nitrome.crystalmines
Section 130
//Enemy (com.nitrome.crystalmines.Enemy) package com.nitrome.crystalmines { import Box2D.Dynamics.*; import flash.display.*; public class Enemy extends MovieClip { private var _speed:Number;// = 8 private var _dist:Number;// = 2 private var _dieSpeed:Number;// = -10 private var _jump:Boolean;// = false private var _hit:Boolean;// = false private var _run:Boolean;// = true private var _still:Boolean;// = false private var _directionRight:Boolean;// = false private var _vecX:Number;// = 0 private var _vecY:Number;// = 0 private var _attack:Boolean;// = false private var _push:Boolean;// = false private var _grab:Boolean;// = false private var _eat:Boolean;// = false private var _bite:Boolean;// = false private var _accelaration:Number;// = 0 private var _maxSpeed:Number;// = 0 private var _busy:Boolean;// = false private var _busyWithPlayer:int;// = 0 private var _gamePosX:Number;// = 0 private var _gamePosY:Number;// = 0 private var _attackTimer:int;// = 0 public var body; public var body2:b2Body; public var bodyDef:b2BodyDef; public var hitRadius:Number;// = 35 public function setPosition(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } public function setMovement(_arg1:Number, _arg2:Number){ var _local3:Number = (_gamePosX - _arg1); var _local4:Number = (_gamePosY - _arg2); var _local5:Number = Math.atan2(_local4, _local3); _vecX = (_speed * Math.cos(_local5)); _vecY = (_speed * Math.sin(_local5)); } public function get dist():Number{ var _local1:Number = (_gamePosX - this.x); var _local2:Number = (_gamePosY - this.y); _dist = Math.sqrt((Math.pow(_local1, 2) + Math.pow(_local2, 2))); return (_dist); } public function update():void{ x = (x + _vecX); y = (y + _vecY); animate(0, 0); } private function animate(_arg1:int, _arg2:int):void{ if (_jump){ _arg1 = 13; _arg2 = 16; if (currentFrame >= 16){ gotoAndStop(16); }; } else { if (_grab){ _arg1 = 49; _arg2 = 66; if (_eat){ if (_busyWithPlayer == 0){ _arg1 = 15; _arg2 = 47; } else { _arg1 = 67; _arg2 = 99; }; }; } else { if (_attack){ _arg1 = 17; _arg2 = 46; if (name == "baddy_spider"){ _arg1 = 18; _arg2 = 23; if (currentFrame > 21){ gotoAndStop(22); }; } else { if (name == "baddy_puker"){ _arg1 = 13; _arg2 = 50; } else { if (name == "baddy_explosive_expert"){ _arg1 = 11; _arg2 = 28; }; }; }; } else { if (_bite){ if (_busyWithPlayer == 0){ _arg1 = 5; _arg2 = 12; } else { _arg1 = 17; _arg2 = 24; }; } else { if (_push){ _arg1 = 25; _arg2 = 30; } else { if (_run){ _arg1 = 1; if (name == "baddy_pusher"){ _arg2 = 12; } else { if (name == "baddy_licker"){ _arg2 = 16; } else { if (name == "baddy_runner"){ _arg2 = 4; } else { if (name == "baddy_spider"){ _arg2 = 12; } else { if (name == "baddy_explosive_expert"){ _arg2 = 10; } else { if (name == "baddy_puker"){ _arg2 = 12; } else { _arg2 = 14; }; }; }; }; }; }; } else { if (_still){ _arg1 = 13; _arg2 = 24; }; }; }; }; }; }; }; if ((((currentFrame < _arg1)) || ((currentFrame > _arg2)))){ gotoAndStop(_arg1); }; if (currentFrame == _arg2){ gotoAndStop(_arg1); } else { gotoAndStop((currentFrame + 1)); }; } public function set acceleration(_arg1:Number):void{ _accelaration = _arg1; } public function get acceleration():Number{ return (_accelaration); } public function set maxSpeed(_arg1:Number):void{ _maxSpeed = _arg1; } public function get maxSpeed():Number{ return (_maxSpeed); } public function set run(_arg1:Boolean):void{ _run = _arg1; } public function get run():Boolean{ return (_run); } public function set still(_arg1:Boolean):void{ _still = _arg1; } public function get still():Boolean{ return (_still); } public function set hit(_arg1:Boolean):void{ _hit = _arg1; } public function get hit():Boolean{ return (_hit); } public function set push(_arg1:Boolean):void{ _push = _arg1; } public function get push():Boolean{ return (_push); } public function set grab(_arg1:Boolean):void{ _grab = _arg1; } public function get grab():Boolean{ return (_grab); } public function set jump(_arg1:Boolean):void{ _jump = _arg1; } public function get jump():Boolean{ return (_jump); } public function set eat(_arg1:Boolean):void{ _eat = _arg1; } public function get eat():Boolean{ return (_eat); } public function set attack(_arg1:Boolean):void{ _attack = _arg1; } public function get attack():Boolean{ return (_attack); } public function set busy(_arg1:Boolean):void{ _busy = _arg1; } public function get busy():Boolean{ return (_busy); } public function set busyWithPlayer(_arg1:int):void{ _busyWithPlayer = _arg1; } public function get busyWithPlayer():int{ return (_busyWithPlayer); } public function set bite(_arg1:Boolean):void{ _bite = _arg1; } public function get bite():Boolean{ return (_bite); } public function set direction(_arg1:Boolean):void{ _directionRight = _arg1; } public function get direction():Boolean{ return (_directionRight); } public function setDirectionRight(_arg1:Boolean):void{ if (_arg1 != _directionRight){ scaleX = (scaleX * -1); _directionRight = _arg1; }; } public function set vecX(_arg1:Number){ _vecX = _arg1; } public function get vecX():Number{ return (_vecX); } public function set vecY(_arg1:Number){ _vecY = _arg1; } public function get vecY():Number{ return (_vecY); } public function set gamePositionX(_arg1:Number){ _gamePosX = _arg1; } public function get gamePositionX():Number{ return (_gamePosX); } public function set gamePositionY(_arg1:Number){ _gamePosY = _arg1; } public function get gamePositionY():Number{ return (_gamePosY); } public function set dieSpeed(_arg1:Number){ _dieSpeed = _arg1; } public function get dieSpeed():Number{ return (_dieSpeed); } public function set timer(_arg1:int){ _attackTimer = _arg1; } public function get timer():int{ return (_attackTimer); } } }//package com.nitrome.crystalmines
Section 131
//GameController (com.nitrome.crystalmines.GameController) package com.nitrome.crystalmines { import flash.display.*; import flash.events.*; import com.nitrome.game.*; import flash.utils.*; public class GameController extends MovieClip { private var _levelTime:Number;// = 60000 private var _timeLeft:Date; private var _msLeft:Number;// = 0 private var _levelFinished:Boolean;// = false private var _totalNoOfLevels:int;// = 0 private var _levelMovie:MovieClip;// = null public var pop_up:PopUpHolder; var myTimer:Timer; private var _randomBatCount:int;// = 0 private var _randomBatNo:int;// = 0 private static const TIMER_RATE:int = 30; private static var _gameTimer:Timer; private static var _world_mc:PlatformMiner; private static var _paused:Boolean = false; public static var gameController:GameController; public function GameController():void{ myTimer = new Timer(1000, 1); super(); addEventListener(Event.ADDED_TO_STAGE, init); gameController = this; } public function setPopUp(_arg1:PopUpHolder):void{ this.pop_up = _arg1; } private function init(_arg1:Event):void{ createLevel(); startGame(); } public function levelEndAnimation():void{ } public function playEndLevelMovie():void{ } public function endLevelMovie(_arg1:Event):void{ } public function createLevel():void{ _paused = true; PlatformMiner.noOfPlayers = PlayerNum.value; XMLData.xml = Levels.level[(SelectedLevel.value - 1)]; var _local1:int = (SelectedLevel.value - 1); _world_mc = new PlatformMiner(); _world_mc.playerPointsArray[0] = ScoreP1.value; if (PlatformMiner.noOfPlayers == 2){ _world_mc.playerPointsArray[1] = ScoreP2.value; }; addChild(_world_mc); _gameTimer = new Timer(TIMER_RATE, 0); _gameTimer.addEventListener(TimerEvent.TIMER, update); _gameTimer.reset(); _gameTimer.start(); _levelFinished = false; } public function startGame():void{ _paused = false; } private function playBatsRandom():void{ _randomBatCount++; if (_randomBatCount == 1){ _randomBatNo = ((Math.random() * (150 - 50)) + 50); }; if (_randomBatCount == _randomBatNo){ NitromeGame.sound_manager.playSound("shorterBats"); _randomBatCount = 0; }; } private function update(_arg1:Event):void{ if (!_paused){ _world_mc.update(); playBatsRandom(); checkLevelComplete(); checkForGameOver(); }; } private function checkLevelComplete():void{ if (_world_mc.levelComplete){ if (!_levelFinished){ levelComplete(); }; }; } private function checkForGameOver():void{ var _local1:int; _levelFinished = true; while (_local1 < _world_mc.playerArray.length) { if (!_world_mc.playerArray[_local1].dead){ _levelFinished = false; }; _local1++; }; if (_levelFinished){ if (!_paused){ gameOver(); }; }; } public function pauseClick():void{ if (!_paused){ _paused = true; _world_mc.stopSpritesAnimating(); if (_gameTimer != null){ _gameTimer.stop(); }; pop_up.displayPopUp("game_paused"); }; } public function continueClick():void{ myTimer.addEventListener(TimerEvent.TIMER, runOnce); myTimer.start(); } function runOnce(_arg1:TimerEvent):void{ _paused = false; _world_mc.startSpritesAnimating(); _world_mc.setStageFocus(); myTimer.stop(); myTimer.removeEventListener(TimerEvent.TIMER, runOnce); if (_gameTimer != null){ _gameTimer.start(); }; } public function set movie(_arg1:MovieClip):void{ _levelMovie = _arg1; } public function get totalLevels():Number{ return (_totalNoOfLevels); } public function deleteAll():void{ if (_gameTimer != null){ _gameTimer.stop(); }; if (_gameTimer != null){ _gameTimer.removeEventListener(TimerEvent.TIMER, update); }; _gameTimer = null; _paused = true; _world_mc.stopSpritesAnimating(); removeChild(_world_mc); _world_mc = null; parent.removeChild(this); } private function gameOver():void{ _levelFinished = true; ScoreP1.value = (ScoreP1.value + LevelScoreP1.value); if (PlatformMiner.noOfPlayers == 2){ ScoreP2.value = (ScoreP2.value + LevelScoreP2.value); }; Score.value = (ScoreP1.value + ScoreP2.value); if (_gameTimer != null){ _gameTimer.stop(); }; if (_gameTimer != null){ _gameTimer.removeEventListener(TimerEvent.TIMER, update); }; _paused = true; _world_mc.stopSpritesAnimating(); pop_up.displayPopUp("game_over"); } private function levelComplete():void{ _levelFinished = true; ScoreP1.value = (ScoreP1.value + LevelScoreP1.value); if (PlatformMiner.noOfPlayers == 2){ ScoreP2.value = (ScoreP2.value + LevelScoreP2.value); }; Score.value = (ScoreP1.value + ScoreP2.value); if (PlatformMiner.noOfPlayers == 2){ if (LevelScoreP1.value > LevelScoreP2.value){ WinsP1.value++; } else { if (LevelScoreP2.value > LevelScoreP1.value){ WinsP2.value++; } else { if (LevelScoreP1.value == LevelScoreP2.value){ WinsP1.value++; WinsP2.value++; }; }; }; }; if (_gameTimer != null){ _gameTimer.stop(); }; _paused = true; _world_mc.stopSpritesAnimating(); if (SelectedLevel.value == 20){ pop_up.displayPopUp("game_complete"); deleteAll(); } else { if (PlatformMiner.noOfPlayers == 2){ if (LevelScoreP1.value > LevelScoreP2.value){ pop_up.displayPopUp("1p_win"); } else { if (LevelScoreP2.value > LevelScoreP1.value){ pop_up.displayPopUp("2p_win"); } else { if (LevelScoreP1.value == LevelScoreP2.value){ pop_up.displayPopUp("draw"); }; }; }; } else { pop_up.displayPopUp("level_complete"); }; NitromeGame.setLevelUnlocked((SelectedLevel.value + 1)); }; } } }//package com.nitrome.crystalmines
Section 132
//Hero (com.nitrome.crystalmines.Hero) package com.nitrome.crystalmines { import Box2D.Dynamics.*; import flash.display.*; public class Hero extends MovieClip { private var _jump:Boolean;// = false private var _finished:Boolean;// = false private var _hit:Boolean;// = false private var _dance:Boolean;// = false private var _run:Boolean;// = false private var _still:Boolean;// = false private var _directionRight:Boolean;// = true private var _grabbed:Boolean;// = false private var _swallowed:Boolean;// = false private var _attacked:Boolean;// = false private var _shocked:Boolean;// = false private var _blocked:Boolean;// = false private var _vecX:Number;// = 0 private var _vecY:Number;// = 0 private var _busy:Boolean;// = false private var _stickyJump:Boolean;// = false private var _inMineCart:Boolean;// = false private var _dead:Boolean;// = false public var back:Boolean;// = false public var body:b2Body; public var hitRadius:Number;// = 33 public function Hero(){ stop(); } public function setPosition(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } public function update(_arg1:Number, _arg2:Number):void{ _vecX = _arg1; _vecY = _arg2; animate(0, 0); } private function animate(_arg1:int, _arg2:int):void{ if (_dance){ if (!_finished){ _arg1 = 29; _arg2 = 38; } else { _arg1 = 70; _arg2 = 85; }; } else { if (_shocked){ _arg1 = 39; _arg2 = 48; } else { if (_grabbed){ _arg1 = 49; _arg2 = 56; } else { if (_stickyJump){ _arg1 = 58; _arg2 = 69; if (currentFrame > 68){ _stickyJump = false; }; } else { if (_jump){ _arg1 = 1; _arg2 = 12; if (_vecY < 0){ if (currentFrame > 4){ _arg1 = 6; _arg2 = 6; }; } else { _arg1 = 7; _arg2 = 12; if (currentFrame > 10){ _arg1 = 12; _arg2 = 12; }; }; } else { if (_hit){ _arg1 = 25; _arg2 = 34; } else { if (_run){ _arg1 = 29; _arg2 = 38; } else { if (_still){ _arg1 = 13; _arg2 = 28; }; }; }; }; }; }; }; }; if ((((currentFrame < _arg1)) || ((currentFrame > _arg2)))){ gotoAndStop(_arg1); }; if (currentFrame == _arg2){ gotoAndStop(_arg1); } else { gotoAndStop((currentFrame + 1)); }; } public function set run(_arg1:Boolean):void{ _run = _arg1; } public function get dance():Boolean{ return (_dance); } public function set dance(_arg1:Boolean):void{ _dance = _arg1; } public function get run():Boolean{ return (_run); } public function set still(_arg1:Boolean):void{ _still = _arg1; } public function get still():Boolean{ return (_still); } public function set hit(_arg1:Boolean):void{ _hit = _arg1; } public function get hit():Boolean{ return (_hit); } public function set jump(_arg1:Boolean):void{ _jump = _arg1; } public function get jump():Boolean{ return (_jump); } public function set grabbed(_arg1:Boolean):void{ _grabbed = _arg1; } public function get grabbed():Boolean{ return (_grabbed); } public function set swallowed(_arg1:Boolean):void{ _swallowed = _arg1; } public function get swallowed():Boolean{ return (_swallowed); } public function set attacked(_arg1:Boolean):void{ _attacked = _arg1; } public function get attacked():Boolean{ return (_attacked); } public function set blocked(_arg1:Boolean):void{ _blocked = _arg1; } public function get blocked():Boolean{ return (_blocked); } public function set stickyJump(_arg1:Boolean):void{ _stickyJump = _arg1; } public function get stickyJump():Boolean{ return (_stickyJump); } public function set busy(_arg1:Boolean):void{ _busy = _arg1; } public function get busy():Boolean{ return (_busy); } public function set dead(_arg1:Boolean):void{ _dead = _arg1; } public function get dead():Boolean{ return (_dead); } public function set shocked(_arg1:Boolean):void{ _shocked = _arg1; } public function get shocked():Boolean{ return (_shocked); } public function set finished(_arg1:Boolean):void{ _finished = _arg1; } public function get finished():Boolean{ return (_finished); } public function set inMineCart(_arg1:Boolean):void{ _inMineCart = _arg1; } public function get inMineCart():Boolean{ return (_inMineCart); } public function get direction():Boolean{ return (_directionRight); } public function setDirectionRight(_arg1:Boolean):void{ if (_arg1 != _directionRight){ scaleX = (scaleX * -1); _directionRight = _arg1; }; } } }//package com.nitrome.crystalmines
Section 133
//KeyPoll (com.nitrome.crystalmines.KeyPoll) package com.nitrome.crystalmines { import flash.display.*; import flash.events.*; import flash.utils.*; public class KeyPoll { private var states:ByteArray; private var dispObj:DisplayObject; public function KeyPoll(_arg1:DisplayObject){ states = new ByteArray(); states.writeUnsignedInt(0); states.writeUnsignedInt(0); states.writeUnsignedInt(0); states.writeUnsignedInt(0); states.writeUnsignedInt(0); states.writeUnsignedInt(0); states.writeUnsignedInt(0); states.writeUnsignedInt(0); dispObj = _arg1; dispObj.addEventListener(KeyboardEvent.KEY_DOWN, keyDownListener, false, 0, true); dispObj.addEventListener(KeyboardEvent.KEY_UP, keyUpListener, false, 0, true); dispObj.addEventListener(Event.ACTIVATE, activateListener, false, 0, true); dispObj.addEventListener(Event.DEACTIVATE, deactivateListener, false, 0, true); } private function keyDownListener(_arg1:KeyboardEvent):void{ states[(_arg1.keyCode >>> 3)] = (states[(_arg1.keyCode >>> 3)] | (1 << (_arg1.keyCode & 7))); } private function keyUpListener(_arg1:KeyboardEvent):void{ states[(_arg1.keyCode >>> 3)] = (states[(_arg1.keyCode >>> 3)] & ~((1 << (_arg1.keyCode & 7)))); } private function activateListener(_arg1:Event):void{ var _local2:int; while (_local2 < 32) { states[_local2] = 0; _local2++; }; } private function deactivateListener(_arg1:Event):void{ var _local2:int; while (_local2 < 32) { states[_local2] = 0; _local2++; }; } public function isDown(_arg1:uint):Boolean{ return (!(((states[(_arg1 >>> 3)] & (1 << (_arg1 & 7))) == 0))); } public function isUp(_arg1:uint):Boolean{ return (((states[(_arg1 >>> 3)] & (1 << (_arg1 & 7))) == 0)); } } }//package com.nitrome.crystalmines
Section 134
//Lamp (com.nitrome.crystalmines.Lamp) package com.nitrome.crystalmines { import flash.display.*; public class Lamp extends MovieClip { private var _on:Boolean;// = false private var _withBat:Boolean;// = true private var _bat:MovieClip;// = null private var _timer:int;// = 0 public function Lamp(){ if (_withBat){ createBat(); }; gotoAndStop(1); } public function setPosition(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } private function createBat():void{ _bat = new BatLight(); _bat.x = (_bat.x - ((_bat.width / 2) - 3)); _bat.y = (_bat.y - (_bat.height + 15)); addChild(_bat); _bat.gotoAndStop(1); } public function update():void{ animate(0, 0); if (_withBat){ animateBat(0, 0); }; if (((((_withBat) && ((PlatformMiner.noOfPlayers == 1)))) && (visible))){ visible = false; }; } private function animate(_arg1:int, _arg2:int):void{ if (_on){ _arg1 = 8; _arg2 = 35; if (currentFrame > 32){ gotoAndStop(34); }; } else { _arg1 = 1; _arg2 = 6; }; if ((((currentFrame < _arg1)) || ((currentFrame > _arg2)))){ gotoAndStop(_arg1); }; if (currentFrame == _arg2){ gotoAndStop(_arg1); } else { gotoAndStop((currentFrame + 1)); }; } private function animateBat(_arg1:int, _arg2:int):void{ if (_on){ _arg1 = 13; _arg2 = 35; } else { _arg1 = 1; _arg2 = 12; }; if ((((_bat.currentFrame < _arg1)) || ((_bat.currentFrame > _arg2)))){ _bat.gotoAndStop(_arg1); }; if (_bat.currentFrame == _arg2){ _bat.gotoAndStop(_arg1); } else { _bat.gotoAndStop((_bat.currentFrame + 1)); }; } public function set withBat(_arg1:Boolean):void{ _withBat = _arg1; if (!withBat){ _bat.visible = false; }; } public function get withBat():Boolean{ return (_withBat); } public function stopBat(_arg1:Boolean):void{ if (_arg1){ _bat.stop(); } else { _bat.play(); }; } public function set on(_arg1:Boolean):void{ _on = _arg1; } public function get on():Boolean{ return (_on); } public function get timer():int{ return (_timer); } public function set timer(_arg1:int):void{ _timer = _arg1; } } }//package com.nitrome.crystalmines
Section 135
//Levels (com.nitrome.crystalmines.Levels) package com.nitrome.crystalmines { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import flash.display.*; import Box2D.Collision.*; public final class Levels extends MovieClip { public static var level:Array = new Array(); level[0] = <level w="82" h="11"> <a>-:902</a> <t>a,-:85,Hero1,Hero2,-:48,crate,-:81,crate,-:27,safeground1,-:53,crate,-:27,safeground1,-:7,instructions_board,-:32,barrelstand,-:12,crate,-:3,mineLight,-,panel2,-:2,CrystalSmall:4,-,panel2,-:13,safeground1,-:39,barrelstand:2,-:12,crate,-:5,panel2,woodplat1:7,panel2,-:13,safeground1,-:6,fast,-:23,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,barrelstand:3,-,rock2X4crystals,-:10,crate,-:5,panel2,-:7,panel2,slope_backwards1,-:12,safeground1,-:2,StartEnd,-:21,panel2,-:4,rock3X2,-,rock2X4,-:3,rockgemlong1_half1,rockgemlong1_half2,rock2:2,rock1,rocklong1_half1,rockgemlong1_half2,-:7,rock4,rock_gem3,rock4:2,rocklong2,-,rock_gem4,rock_gem3,rocklong2,-,panel2,-:7,panel2,rock_gem2,slope_backwards1,-:5,StartEnd,-:5,safeground1,-:13,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:3,panel2:2,-:2,rock2X2crystals,-:31,panel2,-:7,panel2,rock3,rock_gem3,slope_backwards1,-:10,safeground3,safeground2,-,safeground3,safeground1,safeground2,-,safeground1,safeground3,rockgemlong1_half1,rocklong1_half2,rock1,rockgemlong2_half1,rockgemlong1_half2,woodplat1:9,rock1,rock_gem1,rock2,rockgemlong1_half1,rockgemlong1_half2,-:32,panel2,-:7,panel2,rock2,rockgemlong2_half1,rockgemlong2_half2,safeground1,safeground3,safeground2,-,safeground3,safeground1,safeground2,-,safeground3,-:61,panel2,-:7,panel2,-:12,a</t> </level> ; level[1] = <level w="109" h="13"> <a>-:1417</a> <t>-:42,barrelside,-:175,a,-:41,barrelside,-:114,CrystalSmall:4,-:4,crazy,-:105,mineLight,-:37,CrystalLarge:2,-:16,safeground3,-:31,CrystalSmall,-:10,CrystalSmall:2,-:3,crate:3,-:6,barrelstand,-:51,safeground3,-:6,instructions_board,-:26,med,-:6,CrystalSmall:2,-:5,crate:3,-:4,barrelside:2,barrelstand:2,barrelside:2,-:30,CrystalSmall:2,-:16,safeground3,-:31,panel1,-:6,CrystalSmall:2,-,slope2,rock2X4,-:3,rock2X4crystals,-:3,rock2X2crystals,-,rock_gem4,rock2,rocklong1_half1,rocklong1_half2,rock2,rock4,rock_gem4,rock4,slope_backwards1,-:13,fast,-:14,CrystalSmall,crate,-,CrystalSmall,-:15,safeground3,-:23,crate,-:6,panel2,crate,-:5,CrystalSmall,-:2,slope2,rock2,-:17,rock4,rock_gem3,slope_backwards1,-,CrystalSmall,-:12,CrystalSmall:2,-:10,CrystalSmall,crate:3,-,CrystalSmall,-:14,safeground3,-:2,StartEnd,Hero1,Hero2,-:3,fast,-:3,CrystalSmall,-:2,CrystalSmall,-:2,CrystalSmall,-:2,CrystalSmall,panel2:2,-:2,CrystalSmall,-:2,crate:2,panel2,-:7,slope2,rock_gem3,rock4,-:18,rock4,rock2,slope_backwards1,-,CrystalSmall,-:10,barrelside:3,-:9,CrystalSmall,crate:5,-,CrystalSmall,-:13,safeground3,-:13,barrelside,-:2,barrelside,-:2,barrelside,-:2,panel2:2,-:4,rock2X4crystals,-:3,rocklong2,-,rock_gem2,rock2X2crystals,-,rock_gem3,rocklong2,-,rock4,-:20,rock_gem1,rock4,slope_backwards1,-,CrystalSmall,-:6,barrelside:9,-:5,CrystalSmall,crate:7,-,CrystalSmall,-:2,panel2:2,-:4,StartEnd,-:3,safeground2,-,safeground2,-,safeground1,safeground2,-,safeground3,safeground1,rock2X2crystals,-,rock4,rock2X2,-,rock_gem1,rock_gem3,rockgemlong2_half2,rock2X4,-:3,rockgemlong2_half1,rockgemlong2_half2,rock2X2crystals,rock2,rocklong2,-,rock2X2crystals,-:5,rock_gem3,rocklong1,-:3,rocklong1,-,rock_gem2,-:22,rock4:2,slope_backwards1,-,CrystalSmall,-:5,barrelside:9,-:4,CrystalSmall,crate:9,-,CrystalSmall,-,panel2:2,-:19,rock_gem2,-:2,rock4,rocklong2,-:5,rocklong2,-:3,rock4,rock_gem3,-:37,rock4,rock_gem3,rocklong2,-,rockgemlong1_half1,rockgemlong1_half2,rock4,rock_gem1,rock4:2,rock_gem3,rocklong2,-,rocklong1,-,rock4:2,rockgemlong1_half1,rock_gem2,rock4,rocklong1,-,rock4,rockgemlong1_half1,rockgemlong1_half2,rock4,rocklong1,-,rocklong2,-,rockgemlong1_half1,rockgemlong1_half2,rocklong1,-,rocklong2,-,safeground2,-,safeground3,safeground2,-,safeground1,safeground2,-,safeground2</t> </level> ; level[2] = <level w="223" h="13"> <a>-:2899</a> <t>-:120,slow,-:102,a,-:111,crazy,-:110,safeground3,-:85,crate:2,-:12,crate,-:5,crate:2,-:9,crate:2,-:2,crate:2,-:2,crate:2,-:96,safeground3,-:5,fast,-:69,mineLight,-:3,panel2,-:5,crate:2,-:12,crate,-:5,crate:2,-:3,CrystalSmall:4,-:2,crate:2,-:2,crate:2,-:2,crate:2,-:89,StartEnd,-:6,safeground3,-,StartEnd,Hero1,Hero2,-:26,baddy_pusher,-:11,baddy_pusher,-:32,barrelside,-,baddy_pusher,-,panel2,-:5,crate:2,-:6,baddy_pusher,-:5,crate,-:5,crate:2,-:9,crate:2,-:2,crate:2,-:2,crate:2,-:96,safeground3,-:20,CrystalSmall:3,-:32,baddy_pusher,-:16,CrystalSmall,slope1,rock4,rock_gem3,rock4,rockgemlong1_half1,rockgemlong1_half2,rock4,rock2X2,-,rock4,rockgemlong2_half1,rocklong2_half2,rock2X3,-:2,rockgemlong1_half1,rockgemlong1_half2,rock4,rockgemlong2_half1,rocklong1_half2,rock2X2,-,rock2X2crystals,-,rock4,rock2X2,-,rock4,-:2,rock2X2crystals,-,rock_gem1,rock4,rock_gem3,rock4,rockgemlong1_half1,rockgemlong1_half2,rock2X4,-:3,rockgemlong1_half1,rockgemlong1_half2,rock_gem3,-:2,crate:2,-:2,crate:2,-:2,med,-:8,CrystalSmall:8,-:29,CrystalSmall:4,-:23,CrystalSmall:6,rock3X2,-,safeground2,-,safeground3,safeground1,safeground2,-,safeground2,-,safeground2,-,safeground1:2,safeground3,safeground2,-,safeground1,safeground2,-,safeground3,rock_gem4,rock1,rocklong2,-,rock2,rock_gem4,rock2X2,-,rock3X2crystals,-,rocklong2,-:4,CrystalSmall,CrystalLarge,CrystalSmall,-:12,CrystalSmall,-:8,mineLight,-:26,CrystalSmall,slope1,rock4,rocklong2,-,rocklong2,-,rocklong1,-:3,rocklong2,-,rock_gem2,-:3,rock_gem3,rockgemlong1_half1,rockgemlong1_half2,rocklong2,-:5,rock_gem2,-:2,rock_gem4,-:4,rocklong2,-,rock4,rocklong2,-,rock_gem3,-:4,rock4,rocklong1,-:3,crate:2,-:2,crate:2,-:14,shield_icon,-:16,CrystalSmall:7,-:5,mineLight,-:2,baddy_runner,-,baddy_runner,flash_icon,-:2,baddy_runner,-:22,CrystalSmall:6,-:21,rocklong1,-,rock2X4crystals,-:7,rock2X2,-:4,CrystalSmall:3,-:11,CrystalSmall,-,CrystalSmall,-:5,barrelstand,-:27,CrystalSmall,slope1,rock_gem3,rock4,-:46,crate:2,-:2,crate:2,-:12,rock2,woodplat1:3,rock3,-:14,CrystalSmall:7,-:10,rock2,woodplat1,rock1,-:3,fast,-:5,CrystalSmall:12,-:2,rock3X2crystals,-,rock2,rockgemlong2_half1,rockgemlong2_half2,rocklong1,-:28,rockgemlong2_half1,rockgemlong2_half2,-:8,med,-:7,crate:2,-:10,barrelstand:2,-:26,CrystalSmall,slope1,rock4,rock_gem2,-:47,crate:2,-:2,crate:2,-:40,rock4:3,rock_gem2,-:32,rock2X4crystals,-:3,rock2X2crystals,-:45,crate:2,-,rock2X2crystals,-:3,rockgemlong2_half1,rockgemlong2_half2,rock2X4crystals,-:3,barrelstand:2,-:20,baddy_pusher,-:4,slope1,rock_gem2,rock2,-:48,crate:2,-:2,crate:2,-:38,rocklong2,-,rock4,rockgemlong1_half1,rockgemlong1_half2,rock4,-:5,baddy_runner,-:6,rock_gem2,rocklong2,-,rock_gem4,panel2,woodplat1:9,panel2,rock_gem4,rocklong1,-:44,rock_gem3,rock2,rock2X2,-,rocklong2,-,rockgemlong1_half1,rockgemlong2_half2,rock2X4crystals,-:8,rock2,-:4,rock4,rock_gem3,rock2X2,-,rockgemlong1_half1,rockgemlong1_half2,-:2,rock_gem4,rock2X2,-,rock_gem3,rock4,rockgemlong1_half1,rockgemlong1_half2,-:2,rock_gem3,rock2X2,-,rock_gem3,rock4:2,rockgemlong1_half1,rockgemlong1_half2,-:53,crate:2,-:2,crate:2,-:7,baddy_pusher,-:2,baddy_pusher,-:10,baddy_runner,-:3,baddy_runner,-:8,rock2X4crystals,-:3,rock4,rock2X2crystals,-,rock3X2crystals,-,rock_gem1,-:12,rocklong1,-,rockgemlong1_half1,rocklong2_half2,panel2,-:9,panel2,rock4:2,rock2X2,-:47,rock_gem2,rocklong2,-,rock_gem1,-:4,rock4,rock3,-:4,rockgemlong1_half1,rockgemlong2_half2,rocklong1,-,rocklong2,-:10,rocklong1,-,rock2,rock_gem2,-:5,rocklong2,-,rocklong1,-:53,rock_gem3,rock4,rock_gem4,rocklong2,-,rockgemlong1_half1,rocklong1_half2,rocklong1,-,rock_gem4,rockgemlong2_half1,rockgemlong2_half2,rocklong2,-,rockgemlong1_half1,rocklong1_half2,rocklong1,-,rocklong2,-,rocklong2,-,rocklong1,-,rocklong2,-,rocklong2,-,rocklong1,-,rockgemlong1_half1,rockgemlong1_half2,rocklong2,-,rockgemlong1_half1,rockgemlong2_half2,rocklong2,-,rocklong1,-,rocklong2,-:5,rock_gem3,-:4,rock4,mushroom,-:10,crate,rock4,rock2X2,-:2,panel2,-:9,panel2,rock1,rubyhalf1,-:193,rock4,rockgemlong2_half1,rockgemlong1_half2,rock4:5,rock_gem2,rock4,rockgemlong1_half1,rockgemlong1_half2,rock4:2,-:3,panel2,-:9,panel2,rock1,rubyhalf2,-:23</t> </level> ; level[3] = <level w="174" h="13"> <a>-:2262</a> <t>-:100,boulder2,-:16,boulder1,-:3,boulder1,-:2,boulder1,-:94,boulder2,-:10,boulder1,-,baddy_puker,-,boulder1,-:22,boulder1,-:13,boulder2,-:16,boulder1,-:4,boulder1,-:2,boulder1,-:3,boulder1,-:14,baddy_puker,-:32,safeground3,a,-:32,boulder1,-:19,boulder1,-:4,boulder1,-:2,boulder1,-:20,boulder1,-:86,StartEnd,-:3,safeground3,-:29,boulder1,-:26,boulder1,-:18,CrystalSmall:4,-:3,boulder1,-:5,mineLight,-:11,slope1,rock2,rock_gem3,rock2,rock1,rock_gem4,rock2,slope_backwards1,-:19,CrystalSmall:4,-:22,CrystalLarge:2,-:18,safeground3,-:27,boulder1,-:3,boulder1,-:43,CrystalSmall:4,-:3,boulder1,-:14,slope1,rock4,rock2X2crystals,-,rock2X3,-:2,rock2X4,-:12,CrystalSmall:2,-:8,CrystalSmall:4,-:2,barrelside,-:27,rockgemlong2_half1,rockgemlong2_half2,safeground1,safeground3,safeground2,-,safeground1,safeground2,-,safeground3,safeground1,safeground2,safeground3,-:23,boulder1,-:27,barrelside:3,-:21,CrystalSmall:4,-:3,slope1,rock1,panel2,woodplat1:10,panel2,-,rocklong2,-:19,CrystalSmall:2,-:14,barrelside,-:19,CrystalSmall:2,-:4,rockgemlong1_half1,rockgemlong1_half2,rock_gem2,-:11,safeground3,-:26,boulder1,-:18,slope2,rock_gem3,rock_gem2,rock4,rockgemlong1_half1,rockgemlong1_half2,rock4,rockgemlong1_half1,rockgemlong2_half2,rock2,stickytile3,stickytile1,stickytile2,stickytile3,rockgemlong1_half1,rock_gem1,rock2,rock_gem3,rock2:2,rockgemlong1_half1,rockgemlong1_half2,-,CrystalLarge,-:4,CrystalLarge,-,CrystalSmall:4,-:2,slope2,rock_gem3,rock4,panel2,-:10,panel2,-,rock2X2,-,rock2X3,-:2,rock2X4crystals,-:3,rocklong1,-:8,panel2,-,CrystalSmall:2,panel2,-:7,boulder2,-:5,barrelside,-:3,CrystalSmall:8,-:8,CrystalSmall:2,-:2,rock3X2crystals,-,rock_gem2,-:13,safeground3,-:12,barrelstand,-:22,CrystalLarge,-,CrystalLarge,-:6,slope2,rock_gem1,-:34,slope2,rock2:2,-,panel2,-:10,panel2,-:19,panel2,-,CrystalSmall:2,panel2,-:13,barrelside:3,-:17,CrystalSmall:2,-:18,safeground3,-:6,fast,-:5,barrelstand,-:4,CrystalSmall:5,-:7,mineLight,-:13,slope2,rock4,-:3,CrystalSmall:5,-:16,CrystalLarge,-:2,CrystalLarge,-:6,slope2,rock4,-:3,panel2,-:10,panel2,-:19,panel2,-,CrystalSmall:2,panel2,-:2,panel2:2,rock2X2,-:8,barrelside:3,-:17,CrystalSmall:2,rock2X2,-:17,safeground3,-:12,barrelstand,-:4,CrystalSmall:5,-:3,barrelstand,-:16,rock4,rock3,-:11,CrystalSmall:3,-:4,CrystalSmall:5,-:6,rock_gem3,rock2,rockgemlong1_half1,rockgemlong1_half2,rock2,rocklong2,-:5,panel2,-:10,panel2,-:3,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-:5,rock_gem1,rocklong2,-,rockgemlong1_half1,panel2,-:3,panel2,rockgemlong1_half2,rock3,panel2:2,-:2,rockgemlong2_half1,rockgemlong1_half2,rock2,rocklong2,-,slope_backwards2,-,barrelside:3,-:17,CrystalSmall:2,-:18,safeground3,-,StartEnd,Hero1,Hero2,-:8,barrelstand,-:12,barrelstand,-:24,rock2X2,-:19,CrystalLarge:2,-:12,panel2,-:10,panel2:13,-:3,panel2:5,-:3,panel2:13,rock2X4crystals,-:3,stickytile2:2,stickytile3,stickytile2,stickytile3,stickytile1,stickytile3,stickytile2,stickytile3,rock2,rock3,rock_gem3,rockgemlong1_half2,rocklong2,-,rock_gem1,rockgemlong1_half1,rockgemlong1_half2,-:19,safeground3,-:12,doublejump_icon,-:11,barrelstand,doublejump_icon,rocklong2,-,rock_gem1,rockgemlong1_half1,rockgemlong2_half2,rock_gem1,rockgemlong1_half1,rockgemlong1_half2,-:4,rocklong1,-:6,rocklong2,-:2,rockgemlong2_half1,rockgemlong2_half2,-:4,rockgemlong2_half1,rock_gem2,rocklong1_half1,rockgemlong2_half2,-:3,rock2X2,-:2,rock4,rock2X2crystals,-:4,mushroom,-:13,panel2,-:10,panel2,-:19,panel2,-:3,panel2,-:2,panel2:2,-:49,safeground3,safeground2,-,safeground1,safeground2,-,safeground3,rock4:2,rocklong1_half1,rocklong2_half2,rock_gem2,rock4,rock2:2,rock_gem3,rock2,rocklong2,-,rock_gem1,rocklong1_half1,rocklong1_half2,rock2,rocklong2,-,rock2:2,rock4,rock2,rockgemlong1_half1,rockgemlong2_half2,rockgemlong1_half1,rockgemlong1_half2,rockgemlong2_half1,rocklong2_half2,-:4,rocklong1,-,rock_gem3,rock_gem2:2,rocklong1,-:14,rock_gem4,-:11,rocklong1,-:13,panel2,-:10,panel2,-:19,panel2,-:3,panel2,-:2,panel2:2,-:49</t> </level> ; level[4] = <level w="186" h="13"> <a>-:2418</a> <t>a,-:96,crate:2,-:18,CrystalLarge:3,-:2,CrystalLarge:3,-:2,CrystalLarge:3,-:2,CrystalLarge:3,-:2,CrystalLarge:3,-:2,CrystalLarge:3,-:4,CrystalLarge:7,doublejump_icon,-:126,crate:2,-:14,rock4,-:3,rockgemlong1_half1,rockgemlong2_half2,-:3,rockgemlong1_half1,rocklong1_half2,-:3,rocklong1_half1,rocklong1_half2,-:3,rockgemlong2_half1,rockgemlong2_half2,-:3,rocklong2,-:4,rocklong1,-:4,rock4,rocklong1,-,rocklong2,-,rock4,rockgemlong1_half1,rockgemlong2_half2,rocklong1,-:48,CrystalLarge:3,-:72,CrystalSmall:3,-,crate:2,-:2,CrystalSmall:3,-:100,CrystalSmall:3,-:36,CrystalLarge,-:4,CrystalLarge,-:2,CrystalLarge,-:3,CrystalLarge,-:6,CrystalLarge,-:5,CrystalLarge,fast,-:9,CrystalSmall:3,mineLight,crate:2,-:2,CrystalSmall:3,-:4,med,-:36,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:22,StartEnd,-:3,safeground3,-:17,CrystalSmall:3,-:11,fast,-:10,CrystalSmall:4,-:5,CrystalLarge,-,med,-:38,CrystalSmall:3,-,crate:2,-:2,CrystalSmall:3,-:24,panel2,-:4,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:4,rocklong1,-,rocklong2,-,rock2X2,-,rocklong1,-,rocklong2,rockgemlong2_half2,rock2X4crystals,-,rocklong1,-,rocklong1,-:27,safeground3,-:34,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:3,CrystalSmall:4,-:25,mushroom,-:7,mushroom,-:2,rock2X4,-:6,rock_gem3,rocklong2,-,rockgemlong1_half1,rockgemlong1_half2,rocklong2,-,rocklong1,-,rock_gem3,rock2,rockgemlong1_half1,rockgemlong1_half2,rocklong2,-:6,mushroom,-:13,mineLight,-:3,panel2,-:2,rocklong2,-,rocklong2,-,rocklong2,-,rock_gem3,rockgemlong2_half1,rockgemlong2_half2,rock_gem3,-:4,rock1,rockgemlong1_half1,rockgemlong2_half2,-:22,rock2,rock3,rocklong2,-,rockgemlong1_half1,rockgemlong1_half2,rock2,rock1,safeground2,-,safeground1,safeground3,safeground2,-,safeground1,safeground3:2,-:20,rock_gem3,rock4:2,rock_gem2,-:2,rock_gem3,rock_gem1,rocklong2,-,rocklong2,-,slope_backwards2,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:3,CrystalSmall:4,mushroom,-:6,mushroom,-:7,CrystalLarge,-:7,rock4,rock_gem1,rockgemlong2_half1,rocklong2_half2,-:4,rock_gem1,rocklong2,-:10,panel2:22,-:16,panel2,-:57,safeground3,-,StartEnd,Hero1,Hero2,-:14,crate,-:8,rocklong2,-,rock2X2,-,rock_gem2,rock4,slope_backwards1,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,rocklong1,-,rock4,rockgemlong1_half1,rockgemlong2_half2,rocklong1,-:5,rock4,rock_gem1,rock2,-:66,crate,-:3,crate,-:2,panel2,-:32,CrystalSmall:2,slope2,rock2X4crystals,-:21,safeground3,-:17,crate:2,-:12,rock4,rock2X2,-,slope_backwards2,-,CrystalSmall,-,CrystalSmall,-:26,mushroom,-:54,doublejump_icon,-:3,doublejump_icon,-:2,panel2,-:4,CrystalSmall:6,-:21,CrystalSmall:2,slope2,rock2,-:22,safeground3,safeground2,-,safeground1,safeground2,-,safeground3,rocklong2,-,woodplat1:6,rock1,rock3X4crystals,-:18,rock4,slope_backwards2,CrystalSmall,-,CrystalSmall,-:24,rock_gem1,rocklong2,-:55,crate,-:3,crate,-:2,panel2,rocklong2,-,rockgemlong1_half1,rockgemlong1_half2,rocklong2,-,rocklong2,-,rockgemlong1_half1,rockgemlong2_half2,rocklong1,-:4,rocklong1,-:3,rocklong1,-:3,rocklong1,-:6,rockgemlong2_half1,rocklong2_half2,rock2,rock4,rock_gem2,rocklong2,-:28,rock4,-:26,rockgemlong1_half1,rockgemlong2_half2,rock4,slope_backwards2,-:21,mushroom,-:55,panel2:26,-:83,mushroom,-:18,rock4,rocklong2,rockgemlong2_half2,-:55,rock2X3,-:2,rocklong2,-,rock2X4,-:3,rock2X4crystals,-:3,panel2,-:27,mushroom,-:67,rock4:2,-:88,panel2,-:27,rock_gem3,-:29</t> </level> ; level[5] = <level w="301" h="13"> <a>-:3913</a> <t>safeground3,-:24,barrelstand,-:8,boulder1,-:2,boulder1,-:263,safeground3,-:6,fast,-:17,barrelstand,-:162,boulder1:3,-:64,baddy_licker,-:7,baddy_licker,-:37,safeground3,-:24,barrelstand,-:156,med,-:6,boulder1:3,-:109,safeground3,-,StartEnd,Hero1,Hero2,-:20,barrelstand,-:39,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:42,baddy_licker,-:5,CrystalSmall:2,-:11,CrystalSmall:2,-:2,baddy_licker,-:3,CrystalSmall:2,-,baddy_licker,-:18,boulder1,-,boulder1,-:15,fast,-:89,StartEnd,-:3,safeground3,-:24,barrelstand,-:39,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:9,CrystalLarge:2,-:2,CrystalLarge:2,-:2,CrystalLarge:2,-:28,CrystalSmall:4,-:2,baddy_licker,-:6,CrystalSmall:4,-:4,CrystalSmall:4,-:18,boulder1,-,boulder1,-:72,CrystalLarge,-:4,CrystalLarge,-:3,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-:8,CrystalLarge,-:2,CrystalLarge,-:10,safeground2,safeground3,safeground2,-,safeground2,-:20,barrelstand,-:32,mineLight,-:10,woodplat1:2,-:3,woodplat1:2,-:2,woodplat1,-:28,CrystalSmall:2,-:2,CrystalSmall:2,-:2,CrystalSmall:2,-:20,mineLight,-:7,baddy_licker,-:33,rocklong2,-,rock2X2,-,rockgemlong2_half1,rockgemlong1_half2,-:7,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:24,baddy_licker,-:4,baddy_licker,-:18,rock2X3,-:3,rock2X2crystals,-,rock4,-:2,rocklong2_half1,rockgemlong2_half2,rock2X2crystals,-,rock2X4crystals,-:9,rock2X2,-,rock3X4,-:5,safeground1,safeground3,safeground2,-,safeground3:2,safeground1,safeground3,-:6,safeground3,-:18,barrelstand,-:15,CrystalSmall:9,-:15,woodplat1:2,-:14,woodplat1:2,-:3,woodplat1,-:2,woodplat1:4,-:3,doublejump_icon,-:10,CrystalSmall:2,-:2,CrystalSmall:2,-:2,CrystalSmall:2,-:26,mushroom,-:12,mushroom,-:7,mushroom,-:13,rocklong1,-,ruby1,-:2,rocklong1,-,rock4,-:3,boulder1,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:47,rock4,-:6,rock_gem2,-:2,rocklong1,-:9,rock3X4crystals,-:26,safeground1,-:9,barrelstand:4,-:4,barrelstand,-:6,panel2,woodplat1:6,-:12,woodplat1:5,panel2:2,woodplat1:5,-:32,woodplat1:2,-:10,CrystalSmall:2,-:2,CrystalSmall:2,-:2,CrystalSmall:2,-:19,woodplat1:3,panel2:2,woodplat1:3,-:7,woodplat1:2,panel2:2,woodplat1:2,-:5,woodplat1,panel2,woodplat1,-:3,woodplat1,panel2,woodplat1,-:6,rock2X3,-:2,rock2X3,-:2,rock4,rock3X4crystals,-:7,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:15,CrystalSmall:4,-:26,rock3X4,-:3,rock_gem4,rock3,-,rock4,rubyhalf2,rock4,-:5,rockgemlong1_half1,rockgemlong2_half2,-:9,rock4,rock_gem2,-:4,rock1,-:17,safeground3,-:8,barrelstand:4,-:4,barrelstand,-:6,panel2,-:23,panel2:2,-:75,mushroom,-:5,panel2:2,-:12,panel2:2,-:8,panel2,-:5,panel2,-:5,rock3X2crystals,-:7,rubyhalf1,-:8,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:9,CrystalSmall:4,-:30,rock2X2crystals,-:5,rockgemlong1_half1,rockgemlong2_half2,-:29,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:9,rock2X2,-,rocklong1,-,rocklong2,-,rocklong2_half1,rockgemlong2_half2,rock2X4crystals,-:3,rocklong1,-,rock_gem4,rocklong2_half1,rocklong2_half2,rockgemlong2_half1,rockgemlong2_half2,-:4,panel2,-:23,panel2:2,-:43,rock3X4crystals,-:5,mushroom,-:3,mushroom,-:3,mushroom,-:3,rock2X2,-,rock2X2crystals,-,woodplat1,-,woodplat1,-,woodplat1,-,woodplat1,rocklong1,-,rocklong2,-:27,crate,-:12,rock2X2,-:3,rock2X2crystals,-,rock3X4,-:3,rubyhalf2,-:4,rock4,rock3X2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:3,CrystalSmall:4,-:7,rock2,woodplat1:3,rock3,-:21,rock_gem3,rock2,rock_gem2,-:14,rockgemlong2_half1,rock_gem2,-:4,rock3X2,-:34,rock2X2crystals,-,rock3X4crystals,-:7,rock3X2crystals,-,rock2X2,-,rock3X4,-:3,rock2,-:2,panel2,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:12,CrystalSmall,-,CrystalSmall,-,CrystalSmall,panel2:2,-:14,baddy_licker,-:26,rock2X2crystals,-:7,panel2,-:3,panel2,-:3,panel2,-:26,crate,-:8,crate,-:8,crate,-:11,crate,-:10,rock2X2,-,rock2X4crystals,-:6,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:8,rock2,woodplat1:3,rock4,-:7,rock2,woodplat1:3,rock4,-:27,CrystalSmall,-:3,rock4,rock3X2crystals,-,rock3X4,-:9,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:2,mushroom,rock3X4,-:4,CrystalSmall,-,CrystalSmall,-:9,rockgemlong1_half1,rocklong2_half2,-:6,rock2X2crystals,-,rocklong1,-:9,rock1,-:2,panel2,-:7,mushroom,-:3,mushroom,-:3,mushroom,-:7,panel2:2,-:6,rock_gem4,-:9,rock2,-:2,rock3,-:7,baddy_licker,-:5,rock_gem4,-:2,rocklong2,-,rockgemlong1_half1,rockgemlong2_half2,rock4,-:31,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,crate:2,shield_icon,-:7,crate:2,-:7,crate,flash_icon,-:5,crate:2,-:2,crate:2,rock2X2crystals,-,rock2X4,-:16,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,panel2,-:2,rock1,woodplat1:3,rock4,-:19,rock2,woodplat1:3,rock4,-:5,mushroom,-:5,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,rocklong2,-,rock2X2crystals,-:13,rock2X4crystals,-:3,rock4,-,rock2X2,-,rock2X2crystals,-,rockgemlong2_half1,rockgemlong2_half2,-:4,rock2X4crystals,-:3,a,-:8,rockgemlong2_half1,rock_gem2,rock4,rock_gem2,-:6,rocklong2_half1,rockgemlong2_half2,-:2,rock_gem4,rock2,-:4,rock3,rock4,rock_gem2,rock1,rockgemlong2_half1,rockgemlong2_half2,rocklong1,-,rocklong2,-:2,rock2,-:3,rock1,-:3,rock_gem2,-,rock_gem2,rocklong1,-,rocklong2,-,rockgemlong2_half1,rockgemlong2_half2,rocklong2,-,rocklong1,-,rockgemlong2_half2,rock4,rocklong2,-,rock1,rock4,rocklong1_half1,rock_gem2,rocklong1,-,rocklong2,-,rock4,rock_gem3,-:2,rocklong1,-,rockgemlong2_half1,rocklong2_half2,rocklong1,-,rubyhalf1,rocklong2,-,rocklong1_half1,rockgemlong1_half2,rock2,rock4,rocklong2,-:37,rock_gem1,rock3,rock4,rock1,rocklong1_half1,rockgemlong2_half2,rocklong2,-,rocklong1,-,rocklong1_half1,rock_gem2,rocklong2,-,rock4,rocklong1,-,rockgemlong1_half1,rockgemlong2_half2,rocklong1,-,rocklong2,-,rocklong1,-,rocklong2,-,rubyhalf1,rock4,rocklong2,-,rocklong1,-,rocklong2,-,rocklong2_half1,rockgemlong2_half2,rocklong1,-,rocklong2,-,rock_gem4,rock1,rocklong1_half1,rock_gem2,-:6,rocklong1,-,rocklong2,-,rocklong1_half1,rockgemlong2_half2,rocklong1,-,rock3,ruby1,rocklong2_half1,rockgemlong2_half2,rock1,rock4,-:2,rock1,-:2,rock2,-:2,rock4,-:2,rock1,-:2,rock4,-:2,rock3,-:2,rock2,-:34,rocklong1_half1,rockgemlong2_half2,rocklong2,-,rocklong2,-,rocklong1,-:2,rock1,rock_gem3,rocklong1_half1,rockgemlong2_half2,-,rock1,rock4,rubyhalf1,rock1:2,-:10,rocklong1,-:7,ruby1,-:5,rock_gem3,rock1,-:8</t> </level> ; level[6] = <level w="303" h="13"> <a>-:3939</a> <t>safeground1,-:302,safeground1,-:39,baddy_runner,-:4,baddy_runner,-:4,baddy_runner,-:18,baddy_runner,-:4,baddy_runner,-:5,baddy_runner,-:42,boulder2,-:179,safeground1,-:58,mushroom:8,-:87,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:9,boulder1:4,-,baddy_explosive_expert,boulder1:4,-,baddy_explosive_expert,boulder1:4,-,baddy_explosive_expert,boulder1:3,-,baddy_explosive_expert,boulder1:4,-:88,StartEnd,-,safeground1,-,StartEnd,Hero1,Hero2,-:27,CrystalSmall:3,-:14,CrystalSmall:3,-:6,mushroom,rock2X4,-:3,rock_gem2,rocklong2,-,rock4,mushroom,-:16,CrystalSmall:5,-:2,mushroom:4,-:58,rock2X4crystals,-:3,rocklong1,-,rock2X4crystals,-:3,rock2X2,-,rock4,rock3,rock3X2crystals,-,rock2X2,-,rockgemlong1_half1,rocklong1_half2,rock4:2,rocklong1_half1,rockgemlong1_half2,-:42,CrystalLarge:2,-:3,baddy_spider,-:4,CrystalLarge:2,-:3,baddy_spider,-:3,CrystalLarge:2,-:3,baddy_spider,-:3,CrystalLarge:2,-:6,CrystalSmall:33,-:15,safeground1,-:24,CrystalSmall:3,-:10,CrystalSmall:3,-:16,mushroom,rock_gem4,-:4,rock3X2,-,rock2X2,-,rock4,mushroom,-:7,mushroom:5,-:3,CrystalSmall:5,-:2,rock2X4crystals,-:5,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:5,mushroom:4,-:6,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:5,rocklong2,-:7,rock_gem2,rock_gem1,-:4,rock2X2,-,rocklong1_half1,rocklong1_half2,-:4,mushroom:2,-:2,med,-:112,safeground3,safeground1:2,safeground3,safeground2,-,safeground2,safeground1,safeground2,-,safeground2,-,safeground2,-,safeground2,-:10,CrystalSmall:3,-:11,mushroom:2,-:10,CrystalSmall:3,-:2,mushroom:2,-:5,mushroom,rock3X2crystals,-,rocklong1,-,rocklong2,-:5,rock2X2crystals,-,mushroom,-:6,rockgemlong2_half1,rocklong1_half2,rockgemlong1_half1,rocklong1_half2,rock_gem3,-:3,CrystalSmall:5,-:8,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:4,mushroom,rock3X2crystals,-,rock_gem2,rock4,mushroom,-:23,rocklong1_half1,rockgemlong1_half2,rocklong1,-,rocklong1,-,rocklong2,-,rockgemlong2_half1,rockgemlong2_half2,rocklong2,-,rockgemlong1_half1,rockgemlong1_half2,-:2,rocklong2,-:9,rock2,rock1,-:38,CrystalLarge:2,-:8,CrystalLarge:2,-:7,CrystalLarge:2,-:7,CrystalLarge:2,-:11,mushroom:2,-:30,mushroom:2,-:14,fast,-:19,mushroom:2,-:5,rockgemlong1_half1,rocklong1_half2,-:4,mushroom:2,-:9,rocklong2,-:5,mushroom,rock4,-:2,rock3X4,-:5,rock4,rock_gem1,-:2,rock_gem4,mushroom,-:13,CrystalSmall:5,-:2,rock3X2,-,rock_gem1,rock4,-:28,mushroom,rock4,-:2,rock2X2crystals,-,rock4,mushroom,-:4,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:25,mushroom:2,rock4,rock_gem4,-:3,mineLight,-:28,slow,-:35,mineLight,-:10,rocklong2,-:31,rock2,rock1,-:27,mushroom:2,-:5,rocklong2_half1,rocklong1_half2,-:11,rocklong1,-:5,mushroom:2,-:8,mushroom,rock4,rock2,-:6,rock2X4,-:3,rock2X3,-:2,rock4,mushroom,-:12,CrystalSmall:5,-,mushroom,-:2,rock2X2,-:29,rock4,rock_gem2,-:4,rocklong1_half1,rockgemlong1_half2,-:46,rock1,rock4,rock2X2crystals,-:39,CrystalLarge:2,-:8,CrystalLarge:2,-:7,CrystalLarge:2,-:7,CrystalLarge:2,-:6,mushroom:2,-:8,mushroom:2,-:8,mushroom:2,-:44,rockgemlong1_half1,rockgemlong1_half2,-:24,rocklong2,-:9,rockgemlong1_half1,rockgemlong1_half2,rock3,rocklong1,-:12,rockgemlong2_half1,rocklong1_half2,-:10,mineLight,-:7,rock_gem3,-:7,rotate_platform,-:7,rotate_platform,-:7,rotate_platform,-:20,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,mushroom:20,-:2,mushroom:2,rock3,ruby1,-:65,fast,-:10,rocklong2,-:9,rocklong1,-:9,rock_gem4,rock4,-:12,mushroom:2,-:103,rock3X4crystals,-:30,CrystalSmall:11,-:20,rock2X2,-,rock_gem1,rock4,rock2X4crystals,-:3,rocklong2,-,rock_gem3,rock2,rock2X4,-:3,rocklong2,-,rock2,rock_gem2,-:2,rock_gem3,rocklong2,-,rock4,rock_gem2,rock4,-:99,mushroom:2,-:7,rocklong1,-:65,mushroom,-:3,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,mushroom,-:48,mushroom:12,-:22,rocklong2,-:5,rock4,rocklong2,-,rock_gem2,-:4,rock_gem3,rock2,rocklong2,-:3,rock4,rockgemlong1_half1,rocklong1_half2,ruby1,rock4:2,-:89,mushroom:2,-:8,rocklong2,-:22,mushroom:52,rock4,mushroom:19,rock4,mushroom:16,doublejump_icon,mushroom,-:4,doublejump_icon,mushroom:2,-:4,mushroom:3,-:5,mushroom:3,-:6,mushroom:2,rock4,rockgemlong1_half1,rockgemlong2_half2,rock4,rock2X4crystals,-:3,rockgemlong1_half1,rock_gem2,rock2X2crystals,-,mushroom:20,rock2X4crystals,-:3,rocklong2,-,rockgemlong1_half1,rockgemlong1_half2,rock2X4,-:3,rock4,ruby1,rock3,rock2X3,-:2,rock2X2crystals,-,mushroom:2,ruby1,rocklong2,-,rock4,rock2X2crystals,-,mushroom:72,-:17,rockgemlong1_half1,rockgemlong2_half2,-:13,mushroom:2,-:16,rock1,rock4,rockgemlong1_half1,rock_gem2,rocklong2,-,rockgemlong2_half1,rocklong1_half2,rockgemlong1_half1,rocklong1_half2,rocklong1,-,rocklong2_half1,rock_gem2,rocklong2,-,rocklong2_half1,rock3,rocklong1_half1,rocklong2_half2,rocklong2,-,rockgemlong1_half1,rockgemlong2_half2,rocklong2,-,rocklong2,-,rockgemlong2_half1,rockgemlong1_half2,rocklong1_half1,rocklong1_half2,rockgemlong1_half1,rockgemlong1_half2,rockgemlong1_half1,rocklong2_half2,rocklong1,-,rockgemlong1_half1,rockgemlong2_half2,rocklong2,-,rocklong2,-,rockgemlong1_half1,rockgemlong2_half2,rocklong2,-,rockgemlong1_half1,rocklong2_half2,rocklong2,-,rocklong1,-,rocklong2,-,rockgemlong1_half1,rocklong1_half2,rocklong1,-,rocklong2,-,rockgemlong1_half1,rocklong1_half2,rocklong2,-,rock4:2,rockgemlong2_half1,rock_gem2,rocklong2,-,rockgemlong1_half1,rocklong1_half2,rocklong2,-,rockgemlong2_half1,rockgemlong1_half2,rocklong1,-,rockgemlong2_half1,rocklong2_half2,rockgemlong1_half1,rocklong1_half2,rocklong1_half1,rocklong2_half2,rocklong1_half1,rocklong1_half2,rocklong1_half1,rocklong2_half2,rocklong2_half1,rocklong2_half2,rock_gem3,rocklong1,-,rocklong2,-,rock4,-:4,rock2,rocklong2,-:6,rock2,rock_gem4,rock3,-:6,rockgemlong1_half1,rockgemlong2_half2,rocklong2,-,rocklong2,-:5,rockgemlong2_half1,rockgemlong1_half2,-:2,rocklong2,-,rockgemlong1_half1,rocklong1_half2,rocklong2,-,rock4,rock_gem1,rockgemlong2_half1,rockgemlong2_half2,rock_gem2,rock4,rockgemlong1_half1,rockgemlong2_half2,rocklong1,-,rockgemlong1_half1,rockgemlong1_half2,rock4,rock_gem3,-:4,rock4,rock_gem3,rocklong2,-:5,ruby1,rock4,rock3,-:5,rock4:3,rocklong2,-,rock4,-:2,rocklong1,-,rocklong2,-,rocklong1_half1,rockgemlong1_half2,rocklong2,-,rockgemlong2_half1,rocklong1_half2,rocklong1_half1,rockgemlong2_half2,rocklong2,-,rocklong2,-,rockgemlong1_half1,rocklong1_half2,rocklong1,-,rocklong1,-,rocklong2,-,rocklong2_half1,rockgemlong1_half2,rocklong2,-,rocklong2_half1,rockgemlong1_half2,rock_gem1,rocklong2_half2,rocklong1,-,rocklong1,-,rock_gem3,rock4,rocklong1,-,rocklong2,-,rocklong2,-,rocklong1,-,rockgemlong2_half1,rockgemlong2_half2,rocklong1,-,rockgemlong1_half1,rockgemlong1_half2,rock4:2,rocklong1,-,rock_gem1,rocklong2_half2,rocklong1,-,rocklong2,-,rocklong2_half1,rockgemlong2_half2,rocklong1,-,rockgemlong1_half1,rockgemlong1_half2,rocklong2,-,rocklong1_half1,rockgemlong2_half2,-:32,rockgemlong1_half1,rockgemlong1_half2,-:16</t> </level> ; level[7] = <level w="259" h="13"> <a>-:3367</a> <t>-:174,baddy_snail,-:5,baddy_snail,-:5,baddy_snail,-:48,fast,-:23,safeground3,-:187,fast,-:32,baddy_explosive_expert,-:13,boulder1,-,boulder1,-,boulder1:3,-:17,safeground3,-:10,fast,-:159,CrystalSmall:4,CrystalLarge,-,CrystalSmall:4,CrystalLarge,-,CrystalSmall:4,CrystalLarge,-:2,MineCart,-:45,boulder1,-,boulder1,-,boulder1,-:18,safeground3,-:19,slow,-:130,baddy_snail,-:34,doublejump_icon,-:18,crazy,-:29,boulder1,-,boulder1,-,boulder1,-,boulder1,-,CrystalSmall:7,-:6,StartEnd,-:2,safeground3,-:2,StartEnd,Hero1,Hero2,-:17,CrystalSmall:4,-:133,baddy_snail,-:10,rock1,woodplat1:2,rock4,-:2,rock3,woodplat1:2,rock3,-:2,rock2,woodplat1:2,rock4,-:33,fast,-:13,boulder1,-,boulder1,-,boulder1,-,boulder1,-:2,CrystalSmall:7,-:9,safeground3,-:22,CrystalSmall:4,-:13,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:16,baddy_spider,-:22,baddy_snail,-:3,crate,-:15,mineLight,-:3,crate,-:67,boulder1,-,boulder1:2,-,slope1,rocklong2,-,rocklong1,-,rocklong2,-,rockgemlong2_half1,rockgemlong2_half2,safeground1:3,safeground3,safeground2,-,safeground1,safeground3,safeground2,safeground3:3,safeground1:2,safeground3:3,safeground1:3,safeground3,woodplat1:2,-:9,CrystalSmall:4,-,fast,-:6,woodplat1:3,-:19,slow,-:21,shield_icon,-:11,doublejump_icon,-:12,shield_icon,-:21,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,rail_track,rail_flat:3,rail_track:2,-,crate:2,-:18,crate:2,-:26,CrystalSmall:14,-:4,slow,-:4,barrelstand,-:15,boulder1:2,-,boulder1,-:2,slope1,rockgemlong1_half1,rockgemlong1_half2,rock4,rock2X4,-:3,rock2X2crystals,-:24,woodplat1:2,-:7,CrystalSmall:4,-:6,woodplat1:2,-:4,rocklong2,-:3,rocklong1_half1,rockgemlong2_half2,-:2,rocklong2,-:3,rocklong1,-:3,rockgemlong2_half1,rocklong1_half2,-:2,rocklong2,-:3,rocklong2,-:3,rocklong2_half1,rocklong2_half2,-:2,rocklong1,-:3,rocklong2,-:3,rockgemlong2_half1,rockgemlong2_half2,-:2,rocklong1,-:3,rocklong2,-:3,rocklong1,-:3,rocklong2,-:3,rocklong1_half1,rockgemlong2_half2,-:2,rocklong2,-:6,slow,-:14,rocklong2,-,rock2X2,-,rocklong1,-,rocklong2,-,rock2X4,-:3,rocklong2,-,rockgemlong2_half1,rockgemlong1_half2,-:3,rock_gem3,woodplat1:54,rocklong2,-,rocklong1,-,rocklong2,-,rockgemlong2_half1,rockgemlong2_half2,slope_backwards1,-,CrystalSmall,-:7,barrelstand:3,-:16,boulder1:2,-,slope1,rock4,rocklong1,-,rock4,-:31,woodplat1:2,-:5,CrystalSmall:4,-:4,woodplat1:2,-:33,crazy,-:17,fast,-:40,rock4,rock_gem2,-:2,rock4,rock2X2,-,rock_gem2,-:4,rock_gem2,rock2,-:3,CrystalSmall:2,-:55,rock4,rock2X4crystals,-:3,rock2X2,-,rock2X2,-,slope_backwards1,-,CrystalSmall,-:5,barrelstand:5,-:10,crazy,-:3,boulder1,-:2,slope1,rock4,rockgemlong2_half1,rockgemlong2_half2,rock4:2,rock2X2crystals,-,rock2X4,-:30,woodplat1:2,-:9,woodplat1:2,-:30,MineCartLong,-:12,fast,-:4,crazy,-:45,rocklong2,-,rock_gem1,rocklong2,-:3,rock_gem1,rocklong2,-,rock_gem2,rock2,rock4,-:4,CrystalSmall:2,-:55,rock4,-:8,rock4,slope_backwards1,-,CrystalSmall,-:3,barrelstand:7,-:15,slope1,rock4,rocklong1,-,rocklong1,-,rock1,-:35,rocklong1,-,rock1,mushroom:3,rock1,rockgemlong2_half1,rock_gem2,-:41,mineLight,-:43,barrelstand:3,-:25,CrystalSmall:2,-:55,rock1,rock2X4,-:3,rocklong2,-,rocklong2,-,rocklong1,-,slope_backwards1,-,CrystalSmall,-,barrelstand:9,-:13,slope1,rock4,rocklong1,-,rocklong2,-,rock1:2,rocklong1,-,rock2X2,-,rock2X2,-:30,rocklong2,-,rock4,rock1,rock4,rock2:2,rocklong1,-:50,rail_track:3,rail_flat:23,rail_track:3,-:7,barrelstand:3,-:25,mushroom,-:56,rock2,-:4,rocklong2,-,rocklong1,-,rocklong2,-,rocklong1,-,rockgemlong2_half1,rockgemlong1_half2,rocklong2,-,rocklong1,-,rocklong2,-,rocklong1,-,rockgemlong2_half1,rocklong2_half2,rocklong1,-,rocklong2,-,rocklong1,-,rocklong2_half1,rock_gem2,rocklong2,-,rocklong1,-,rock4,rockgemlong1_half1,rockgemlong1_half2,rocklong2,-,rocklong2,-,rocklong2,-,rock3,-:68,rocklong2,-,rocklong1,-,rocklong1,-,rocklong1,-,rockgemlong1_half1,rock_gem2,rocklong1,-,rocklong1,-,rockgemlong2_half1,rockgemlong1_half2,rocklong2,-,rocklong1,-,rocklong2,-,rocklong1,-,rocklong2,-:24,rocklong2,-,rocklong2,-,rocklong2,-,rocklong1_half1,rockgemlong2_half2,rocklong2,-,rocklong2,-,rocklong2,-,rocklong1,-,rocklong2,-,rocklong1,-,rock1,-:2,rock1,-:2,rock1,-:2,rock1,-:2,rock1,-:2,rock1,-:2,rock1,-:116</t> </level> ; level[8] = <level w="161" h="14"> <a>-:2254</a> <t>-:26,a,-:326,doublejump_icon,-:2,doublejump_icon,-:155,CrystalSmall:2,rock4,woodplat1:2,rock1,-:6,baddy_puker,-:13,baddy_puker,-:6,baddy_puker,-:13,baddy_puker,-:6,baddy_puker,-:3,baddy_puker,-:5,baddy_puker,-:18,baddy_puker,-:8,baddy_puker,-:11,baddy_puker,-:4,baddy_puker,-:7,crate:3,-:12,a,-:21,baddy_puker,-:4,CrystalSmall:2,rock4,-:14,CrystalSmall:5,-:97,crate:3,-:2,CrystalSmall:2,-:33,CrystalSmall:2,rock4,-:16,CrystalSmall:5,-:24,crate,-:5,CrystalSmall:3,-:3,CrystalSmall,-:3,CrystalSmall:3,-:5,boulder2,-:48,crate:3,-:4,CrystalLarge,-:7,safeground3,-:22,CrystalSmall:2,rock4,-:12,barrelside,-:16,CrystalSmall,-:17,crate,-:5,CrystalSmall:3,-:3,CrystalSmall,-:3,CrystalSmall:3,-:53,crate:5,-:11,safeground3,-:19,rock4,-:2,rock3,-:13,barrelside:3,-:14,CrystalSmall,-,CrystalSmall,-:5,CrystalSmall,-:10,crate,-:25,slope2,rock_gem3,rock4:2,rocklong2,-,rock4:2,rock_gem3,-:17,boulder2,-:9,CrystalSmall:3,-:6,crate:6,-:8,StartEnd,-:2,safeground3,-:18,rock4,-:16,rocklong2,-,rocklong2,-,stickytile2:4,rocklong2,-,rockgemlong1_half1,rockgemlong1_half2,rocklong2,-:4,CrystalSmall,-:3,CrystalSmall,-:3,CrystalSmall,-,CrystalSmall,-:6,mineLight,-:2,crate,-:24,slope2,rock2X2,-,rock2X4,-:3,ruby1,rock2X2crystals,-:28,CrystalSmall:3,-:6,crate:6,-:11,safeground3,-:5,slow,-:11,rock2,-:15,rock3X2crystals,-,rock_gem2,rock2X2,-,rock_gem2,rocklong1,-,rockgemlong2_half1,rockgemlong1_half2,rock2X2crystals,-,rock2X4,-:6,slope1,stickytile3,stickytile1,slope_backwards1,-:3,CrystalSmall,-:3,CrystalSmall,-:5,slope2,rockgemlong2_half1,rockgemlong2_half2,rock4,stickytile1,stickytile3,stickytile2,stickytile3,rocklong2,-,rock2,-,stickytile3,stickytile1,rock4,-,stickytile1,stickytile3,rock3,rock2X2,-:2,stickytile1,stickytile3,rock2X4,-:3,rock_gem2,-:6,rock2,-:9,mineLight,-:3,CrystalSmall:4,-:4,slope1,rock2X2crystals,-,rock_gem2,rock4,stickytile2,stickytile1,stickytile3,stickytile2,stickytile1,stickytile3,stickytile2,stickytile3,rock2X4crystals,-,rock3,rock4,woodplat1:6,-:3,rocklong2,-,rock_gem3,safeground2,-,safeground3,safeground1,safeground2,safeground3,-,StartEnd,Hero1,Hero2,-:11,crate,-:9,CrystalSmall:5,-,rock2X2,-:19,slope2,rock4,rock_gem2,rock4,rock_gem2,slope_backwards1,-:2,slope2,stickytile1:2,slope_backwards2,-:5,slope2,rock_gem2,rock4:2,rocklong2,-,rock4,rock_gem3,rocklong2,-,rock4,rock_gem1,-:7,rock_gem3,-:30,CrystalSmall:4,-:3,slope1,rock4,-:2,rockgemlong1_half1,rockgemlong1_half2,-:29,safeground3,-:14,crate:2,-:9,CrystalSmall:5,-:19,stickytile2:2,rocklong2,-,rocklong2,-,rocklong2,-,stickytile2:2,rock_gem2,rock4:2,rock_gem2,slope_backwards1,-,CrystalLarge,-,slope1,rock4,rockgemlong1_half1,rockgemlong2_half2,-:37,rocklong2,-,stickytile3,stickytile1,rocklong2,-,rock_gem3,rocklong1,-,stickytile3,stickytile2,stickytile3,stickytile2,stickytile1,rocklong1,-,rock4:2,rock_gem2,-:33,safeground3:2,safeground2,-,safeground1,safeground3,rock2X2,-,rocklong2,-,rock_gem3,-:2,rock2X4crystals,-:5,stickytile3,stickytile2,stickytile3,stickytile2,stickytile3,rock2X2,-,rocklong2,rock2,rockgemlong1_half1,rockgemlong1_half2,rock2X4crystals,-:3,rock_gem3,-:22,rock4,rock_gem1,rocklong2,-,rockgemlong1_half1,rockgemlong1_half2,rocklong2,-,stickytile2:2,rocklong2,-,rock4,-:99,rock_gem1,rock_gem2,rock4,-:8,rocklong2,-,rock_gem3,rocklong1,-:3,rock_gem2,rocklong1,-,rock4,-:131</t> </level> ; level[9] = <level w="303" h="13"> <a>-:3939</a> <t>-:188,baddy_runner,-:5,baddy_runner,-:14,baddy_runner,-:4,baddy_runner,-:3,baddy_runner,-:26,rock2,rock_gem3,rock4,rock2X4,-:3,rock_gem2,rock2X3,-:2,rocklong2,-,rock_gem1,rock4,rock2X2,-,rock2X3,-:2,rocklong1,-,rock_gem2,rock2X2,-,rock3X2,-,rock2X4crystals,-:3,rocklong2,-,rock3X2crystals,-,rock2X4,-:3,rock_gem3,rock2X2,-,rock2,rocklong1,-,rockgemlong1_half2,rock2,-:11,rock2,rock_gem2,rocklong1,-,rock2X2,-,rock2X3,-:2,rock4,rock_gem2,rocklong2,-,rock3X2,-,rock2X2,-,rocklong2_half1,rock_gem2,rock4,rock2X2,-,rocklong2,-,rock4,rocklong2,-,rock4,rockgemlong1_half1,rockgemlong1_half2,rock4,rocklong2,-,rock3X2,-,rock2X3,-:2,rock4,rock3X2,-,rock2X2,-:8,baddy_runner,-:4,baddy_runner,-:5,baddy_runner,-:23,rock2X4crystals,-:3,rock3,rock_gem3,rocklong1,-,rock2X2crystals,-,rock3X2crystals,-,rock2X4crystals,-:3,rock2X2,-,rock2X2crystals,-,rock4,rocklong2,-:5,rock3X4,-:3,rock4,rock_gem2,-:55,boulder2,-:10,boulder2,-:56,boulder1,-:4,rocklong2,-:9,rock_gem3,-:8,rock_gem3,-:18,rock2,-:2,rock3X2,-,rock2X3,-:13,rock1,-:8,rockgemlong2_half2,-:2,rock4,-:9,rocklong1_half2,-:7,rock4,rock1,rock_gem2,-:5,rock_gem2,-:50,rock4,rock2X2,-,rockgemlong2_half2,-:12,rock2X2,-:10,rock4,rocklong2,-:3,CrystalLarge:4,-:20,CrystalSmall:7,-:46,CrystalSmall:23,-:17,boulder1,-:2,boulder1,-:38,rock3X4crystals,-:3,rock3X2crystals,-,rock_gem3,-:16,safeground1,-:34,rock2,rockgemlong2_half2,rockgemlong2_half1,rocklong1_half2,-:2,rockgemlong2_half1,-:7,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-:7,mineLight,-:18,rocklong1,-:3,rocklong2,-:18,rock2,-:4,rock3X2,-,rock_gem2,-:2,doublejump_icon,-,shield_icon,-:20,slope2,rocklong1_half1,rock_gem2,rock2,rocklong1,-,rock_gem3,slope_backwards1,-:24,slope1,rocklong2,-,rocklong1,-,rockgemlong2_half1,rock_gem2,slope_backwards1,-:5,fast,-:8,CrystalSmall:23,-:15,boulder1,-:3,boulder1,-,boulder1,-:9,MineCart,-:16,crazy,-:16,rock2,-:2,rock_gem3,rock1,rock2,-:11,safeground1,-:24,crate,-:3,crate,-:7,boulder1,-:3,boulder1,-:57,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:6,rocklong1,-,rockgemlong1_half2,rocklong2,-,rock_gem3,-:2,rockgemlong1_half1,rocklong1,-,rock2,rock3X2crystals,-,rock_gem4,-:3,CrystalSmall:4,-:11,slope1,panel2,woodplat1:6,panel2,slope_backwards1,-,med,-:3,doublejump_icon:2,-:15,slope1,panel2,woodplat1:6,panel2,slope_backwards1,-:52,boulder1,-:3,boulder1,-,rail_track:27,rail_flat:4,rail_track,-:11,rock2X2,-,rock3X4,-:14,safeground1,-:24,crate,-:3,crate,-:17,rock2X2,-,woodplat1:11,rock2X3,-:6,rock2X4crystals,-:3,rock2X2,-,rock4,-:5,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,rock4,rock_gem3,rock4,rockgemlong2_half1,rockgemlong2_half2,-,CrystalSmall,-:3,rock2X2,-,rock2X3,-:2,rock3X2,-:3,rock2X3,-:2,rock_gem2,-:2,rock4,-:3,CrystalSmall:4,-:10,slope2,rockgemlong2_half2,panel2,-:6,panel2,rock_gem2,slope_backwards1,-:3,rock2,woodplat1:2,rock3,-:13,slope1,rock_gem1,panel2,-:6,panel2,rock4,slope_backwards1,-:11,panel2,woodplat1:10,panel2,woodplat1:11,panel2,-:16,boulder1,-,boulder1:2,-,slope1,panel2,woodplat1:10,rock_gem3,rock2X2,-,rocklong2,-,woodplat1:10,panel2,-:4,rock2,slope_backwards2,CrystalSmall,-:26,safeground1,-:24,crate,-:3,crate,-:43,ruby1,-:4,rock1,woodplat1:3,rock3,-:2,rocklong1,-,rock_gem3,rock4,rock2X4,-:3,rocklong2_half2,rock3X2crystals,-,rockgemlong2_half1,rockgemlong2_half2,ruby1,rock2X4,-:3,rock2X2,-,rock2X2,-:10,rock_gem3,rock4,-:3,rock_gem4,-:2,rockgemlong2_half1,-:3,CrystalSmall:4,-:3,mineLight,-:4,crazy,slope2,rock2X2crystals,-,panel2,-:6,panel2,rock2X2crystals,-,slope_backwards1,-:18,slope1,rocklong1,-,panel2,-:6,panel2,rock2X2crystals,-,slope_backwards1,-:48,boulder1:2,-,boulder1:2,-,slope1,rock_gem4,panel2,-:13,rock4,-:11,panel2,-:4,rock4,ruby1,slope_backwards1,CrystalSmall,-:25,safeground1,-:7,fast,-:15,panel2,woodplat1:6,panel2,rock1,-:35,rock2X2,-,rock3X2crystals,-,rubyhalf1,-:12,rock2X2,-,rock3X2crystals,-:5,rock_gem3,-:2,rocklong2_half2:2,ruby1,-:9,rock3X4,-:3,rock2X2,-:3,rock3X4,-:3,rock3X2crystals,-,rubyhalf1,rock2X2,-:16,slope2,rock_gem2,-:2,panel2,woodplat1:6,panel2,-:2,rock2,slope_backwards1,-:16,slope1,rock2X3,-:2,panel2,woodplat1:6,panel2,-:2,rock4,slope_backwards1,-:52,slope1,rocklong1,-:33,rock2X2,-,slope_backwards2,CrystalSmall,-:24,safeground1,-:2,StartEnd,-,Hero1,Hero2,-:13,rock2X2,-,rock2X2crystals,-,panel2,-:6,panel2,rockgemlong2_half1,rock_gem2,-:11,mushroom,-:3,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:4,mushroom,-:5,rubyhalf2,-:16,rock4,rock_gem1,rock2X2crystals,-,rock4,-:2,rock2X2crystals,-,rock2X4crystals,-:3,rock2,rock2X3,-:11,rockgemlong1_half1,-:6,rubyhalf2,-:3,rock2X2,-,rocklong1_half1,rockgemlong1_half2,rock2X2,-,woodplat1:2,-:5,slope2,rock3X4crystals,-:3,panel2,-:6,panel2,rock2X4crystals,-:3,slope_backwards1,-:14,slope1,rock_gem3,-:3,panel2,-:6,panel2,rock2X4crystals,-:3,slope_backwards1,-:83,mushroom,-:4,rock2,slope_backwards2,CrystalSmall,-:23,safeground1,-:17,rocklong1,-:5,panel2,-:6,panel2,rock2X2,-,rock2,rocklong2,-,rock2X3,-:2,rock3X4,-:3,rocklong2,-,rock3X2,-,rock2X2,-,rocklong1,-,rock_gem3,rock2X3,-:2,rockgemlong1_half1,rockgemlong1_half2,rock3X4,-:3,rock_gem3,rock2X3,-:2,rock3X4crystals,-:5,rock2X2,-:12,rocklong2,-:4,rock4,-:2,rocklong1,-,rock4,-:6,rock2,-:19,rock4,rock_gem4,rock2,-:3,rock3X2,-:9,slope2,rock_gem2,-:4,panel2,-:6,panel2,-:4,rock_gem2,slope_backwards1,-:12,slope1,rock_gem1,rocklong2,-,rock2X2,-,panel2,-:6,panel2,-:4,rock_gem4,slope_backwards1,-:4,barrelstand:6,-:25,mineLight,-:28,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-:4,mushroom,rock4,mushroom,-:2,rock4,rock3X2crystals,-,slope_backwards2,CrystalSmall,-:22,safeground1:3,safeground2,-,safeground1,safeground3:2,panel2,woodplat1:4,panel2,rocklong1,-,rock2X4,-:3,rock_gem3,rock2X3,-:2,panel2,-:6,panel2,-:2,rock3X2,-,rock4,-:7,rock2X2crystals,-:5,rock_gem1,rock2X2,-:4,rock2X2,-:5,rock2,-:7,ruby1,rock4,-:54,rock4,rock_gem1,-:9,slope2,rock3X2,-:5,panel2,woodplat1:6,panel2,rock2X2crystals,-,rock3X4crystals,-:3,slope_backwards1,-:10,slope1,rock3X4crystals,-:5,panel2,woodplat1:6,panel2,rock3X4,-:3,rocklong2,-,slope_backwards1,-:3,barrelstand:6,-:42,rock3X4,-:3,rock4,-:2,rock2X2crystals,-:21,rock1,rock2,rock2X2,-,rock2X2,-:3,rock4,slope_backwards2,CrystalSmall,-:11,panel2,-:6,StartEnd,-:10,panel2,-:4,panel2,rock4,rockgemlong2_half2,-:4,rock_gem2,-:3,panel2,-:6,panel2,-:4,rocklong1,-,rock4,rock2,-:8,rock2X3,-:4,rock2,rock2X2,-:7,rock2X4,-:7,rock2X3,-:2,rock4,-:7,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:6,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:4,baddy_runner,-:15,mushroom,rock2X2,-:3,shield_icon,-:5,slope2,rock_gem3,-:2,rock4,rock2X2crystals,-,rock4,panel2,-:6,panel2,-:6,rock_gem2,slope_backwards1,-:8,slope1,rock_gem1,-:4,rock_gem1,rock_gem3,panel2,-:6,panel2,-:4,rock2X3,-:2,rock4,rock3,rock2X2,-,woodplat1:2,panel2,woodplat1:10,panel2,woodplat1:11,panel2,woodplat1:17,panel2,rock2X2,-,rock4,-:4,rock2X3,-:4,rock2X3,-:2,rocklong2,-,rockgemlong2_half2,rock2X2crystals,-,rock2,rock2X4,-:3,rock2X2,-,rocklong1,-,rock_gem1,rock2X3,-:2,rock_gem2,-:6,rock2X2crystals,-,slope_backwards2,CrystalSmall:9,CrystalLarge:2,panel2,-:17,panel2,-:4,panel2,-:10,panel2,-:6,panel2,-:41,rocklong2,-,rock2,rocklong2,-,rock4,woodplat1:12,rock_gem3,rocklong2,-,rock4,woodplat1:11,rock4,rocklong1,-,rocklong1,-,woodplat1:14,rock1,-:2,rock_gem1,rock4,rocklong1_half1,rockgemlong1_half2,rocklong2,-,rock_gem3,rocklong1,-,rock_gem1,-:2,rock4,-:2,rock_gem2,panel2,-:6,panel2,rockgemlong1_half1,rock4,-:4,rocklong1,rock_gem3,rocklong2,-,rock4,rockgemlong1_half2,rocklong1_half1,rockgemlong2_half2,rock2,rock3,rocklong1,-:5,rocklong2,-,panel2,-:6,panel2,-:7,rocklong2,-:5,panel2,-:10,panel2,-:11,panel2,-:17,panel2,-:2,ruby1,-:7,rockgemlong2_half2,rockgemlong1_half1,-:3,rock_gem3,rocklong2,-:3,rock2,-:6,rockgemlong2_half2,rocklong2,-:4,rocklong1,-,rock2,rock_gem3,rocklong1,-,rock4,-:2,rock2,rocklong1,-,rock_gem2,rock2,rocklong1,-,rock2,rock4,rock_gem3,rocklong1_half2,rocklong2,-,safeground2,-,safeground3,safeground2,-,safeground3,safeground2,-,safeground3</t> </level> ; level[10] = <level w="164" h="13"> <a>-:2132</a> <t>-:77,crate:2,-:8,baddy_explosive_expert,-:4,baddy_explosive_expert,-:4,baddy_explosive_expert,-:20,baddy_puker,-:4,barrelside,-:115,CrystalLarge,-,crate:2,-:27,fast,-:3,barrelside:2,-:11,barrelside,-:11,barrelside:2,-:101,barrelside:5,-:19,CrystalSmall:2,-:8,mineLight,-,barrelside:2,-:11,barrelside,-:11,barrelside:2,-:3,CrystalSmall:3,-:95,barrelside:5,-:9,CrystalSmall:2,-:3,CrystalSmall:2,-:3,CrystalSmall:2,-:4,rocklong2,-,rocklong2,-,rocklong2,-,rocklong2,-,slope_backwards1,-,CrystalSmall:9,slope1,rocklong2,-,rockgemlong1_half1,rockgemlong1_half2,rocklong1,-:6,barrelside:2,-:2,CrystalSmall:3,-,barrelstand:3,-:15,StartEnd,-:43,slow,-:2,CrystalSmall:2,-:5,CrystalSmall:2,-:5,CrystalSmall:2,-:14,slope2,rock2X4,rock_gem2,rock4,-,rock4,-:8,CrystalSmall:2,-:3,CrystalSmall:2,-:3,CrystalSmall:2,barrelstand:3,-,rock2X3,-:2,rock_gem3,rocklong1,-,rock2X2,-,rock4,slope_backwards1,-,CrystalSmall:7,slope1,rock4,rock_gem2,rock2X4,-:3,panel1,-:5,barrelside:2,-,CrystalSmall:3,-:2,barrelstand:3,-:39,CrystalSmall,-:5,CrystalSmall,-:16,CrystalSmall:2,-:5,CrystalSmall:2,-:5,CrystalSmall:2,-:2,barrelside:2,-:3,mineLight,-:4,CrystalSmall,slope2,rock4,-:4,rock_gem2,-:8,CrystalSmall:2,-:3,CrystalSmall:2,barrelstand:3,-:2,barrelstand:3,-:4,rockgemlong1_half1,rockgemlong1_half2,rock2,-:2,rock_gem2,rock4,slope_backwards1,-,CrystalSmall:5,slope1,rock2X2,-,rock_gem2,-:4,panel1,-:5,slope2,rocklong2,-,rocklong2,-:4,barrelstand:3,-:3,woodplat1:8,safeground2,-,safeground1,safeground3,safeground2,-,safeground2,safeground3,-:20,CrystalSmall,-:5,CrystalSmall,-:11,crate:3,-:5,crate:3,-:12,barrelside:2,-:2,doublejump_icon,-:4,CrystalSmall,slope2,rock4,-:16,barrelstand:3,-:2,barrelstand:3,-:2,barrelstand:3,-:10,rock2X2,rock4,slope_backwards1,-,CrystalSmall:3,slope1,rock4,-:7,panel1,-:4,slope2,rockgemlong1_half1,rockgemlong2_half2,rocklong1,-:5,rock2X3,-:20,safeground3,-:16,barrelstand:3,-,CrystalSmall,barrelstand:3,-:2,CrystalSmall,barrelstand:3,-:8,crate:3,-:5,crate:3,-:4,barrelstand:3,-:4,barrelside:4,-,rocklong2,-:3,CrystalSmall,-:14,barrelstand:3,-:2,barrelstand:3,-:2,barrelstand:3,-:2,rocklong2,-,rock_gem2,-:11,rock4:2,slope_backwards1,-,CrystalSmall,slope1,rock4,rock_gem3,-:7,panel1,-:3,slope2,rock2X2,-,rock3,-:27,safeground3,-:5,med,-:10,barrelstand:3,-:2,barrelstand:3,-:3,barrelstand:3,-:8,crate:3,-:2,CrystalSmall:2,-,crate:3,-,CrystalSmall:2,-,barrelstand:3,-,CrystalSmall:2,-,barrelside:4,-:5,slope1,-:14,barrelstand:3,-:2,barrelstand:3,-:2,rock2X3,-:4,rock_gem3,rocklong1,-:13,rock_gem3,rock3,stickytile2,stickytile3,rock4,-:12,slope2,rock_gem2,-:30,safeground3,-,StartEnd,Hero1,Hero2,-:12,barrelstand:3,-:2,barrelstand:3,-:3,barrelstand:3,-:8,crate:3,-:5,crate:3,-:4,barrelstand:3,-:3,panel1,barrelside:4,panel1,-:3,slope2,rock4,doublejump_icon,-:13,barrelstand:3,-:2,rock2X2crystals,-,rock4,-:36,woodplat1:3,-:32,safeground3,-:10,mushroom,-:4,rock3X4crystals,-:5,rock2X2crystals,-,rockgemlong2_half1,rockgemlong1_half2,-:2,rock2X4,-:9,rock2X4crystals,-:3,rock_gem1,-:2,rock_gem1,rock2X2crystals,-,rock_gem3,rocklong1_half1,rocklong1_half2,-:2,rock2X2,-,rockgemlong2_half1,rockgemlong1_half2,rock4,-:2,panel1,panel2:4,panel1,-:2,rock_gem1,rock4,rock1:2,rockgemlong2_half1,rockgemlong2_half2,rock2X4crystals,-:3,rockgemlong1_half1,rockgemlong1_half2,rocklong2,-,rock_gem2,-:2,rock2X3,-:6,rock_gem2,-:71,safeground2,-,safeground1,safeground3,safeground2,-,rock2X3,-:2,rock4,rock_gem2,rock4,-:12,rock4,rock_gem2,-:9,mushroom,-:6,rock_gem2,-:2,rock4,-:2,rocklong2,-,rock4,-:4,rock_gem2,rocklong1,-:3,rockgemlong1_half1,rockgemlong1_half2,rocklong2,-,rocklong2,-:4,rocklong1,-,rocklong2,-,rock_gem2,-:4,rock_gem3,rocklong2,-,rock_gem2,-:91,rocklong1,-,rock2,-:22,woodplat1:3,-:127</t> </level> ; level[11] = <level w="261" h="13"> <a>-:3393</a> <t>-:105,slow,boulder1:4,-:77,boulder2,-:73,safeground3,-:23,crazy,-:10,slow,-:6,MineCartLong,-:6,fast,-:32,MineCartLong,-:23,boulder1:4,slow,-:5,MineCartLong,-:6,MineCart,-:89,baddy_pusher,-:4,baddy_pusher,-:6,baddy_pusher,-:35,safeground3,-:105,boulder1:4,-:3,slow,-:4,crazy,-,slow,-:4,fast,-:73,baddy_pusher,-:61,safeground3,-:8,fast,-:14,rocklong2,-,rocklong1_half1,rocklong1_half2,rockgemlong1_half1,rockgemlong2_half2,woodplat1:7,-:48,fast,-:20,boulder1:4,-:24,crazy,-:4,fast,-:89,baddy_spider,-:31,safeground3,-:21,rockgemlong1_half1,rocklong1_half2,-:50,crazy,-:3,slow,-:19,crazy,-:9,mineLight,crazy,-:52,baddy_pusher,-:7,baddy_pusher,-:7,baddy_pusher,-:22,med,-:53,StartEnd,-:5,safeground3,-:19,rocklong1,-:25,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:13,barrelstand:3,-:73,med,-:4,fast,-:48,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:4,flash_icon,-:35,safeground3,-:17,rockgemlong1_half1,rockgemlong1_half2,-:15,doublejump_icon,rail_track:2,rail_flat:24,-,crazy,-:41,panel2,-:4,panel2,-:19,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-:27,slow,-:11,barrelside:2,-:16,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:3,rock4,woodplat1,rock2,-:12,CrystalSmall,slope1,rock2X4crystals,-:3,rock3X4crystals,-:3,safeground2,-,safeground3,safeground1,safeground2,-,safeground3,safeground1,safeground2,-,safeground1,safeground3:2,-,StartEnd,Hero1,Hero2,-:11,rocklong1_half1,rocklong2_half2,-:6,rock1,rock_gem4,rock4,woodplat1:7,rock2,rock4,rockgemlong1_half1,rocklong2_half2,-:24,railTrack,-:27,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:2,panel2,-:4,panel2,-:9,rail_flat:33,-:32,barrelside:4,-:12,rock2,rock4,-:18,rock1,rock3,-:15,CrystalSmall,slope1,ruby1,-:8,rock3X4,-:3,rock2X4crystals,-:3,rock2X2,-,rock3X2,-,safeground3,-:13,rock4,rock3,-:28,MineCart,-:25,slow,-:2,rail_flat:32,panel2,-:4,panel2,-:73,barrelside:2,shield_icon:2,barrelside:2,-:12,rock2,woodplat1:18,rock4,-:15,CrystalSmall,slope1,rock_gem2,rock4,rockgemlong2_half1,rockgemlong2_half2,rock3X2,-:17,safeground2,-,safeground2,-,safeground3,safeground1,safeground3,-,rocklong2_half1,woodplat1:4,rocklong2_half2,-:52,railTrack,-:38,panel2,-:4,panel2,-:9,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:4,rocklong2,-,woodplat1:4,rocklong1,-:21,barrelside:8,-:45,CrystalSmall,slope1,rock2X2crystals,-,rubyhalf1,rock3X2crystals,-:3,rock_gem3,rock2,rocklong1,-:5,rock3X2crystals,-,rock2X2crystals,-,rocklong2,-:21,rock2X4,-:3,rock3X2crystals,-:3,rock2X4crystals,-:5,rock2X2crystals,-:5,doublejump_icon,-:6,rail_track:3,rail_flat:27,rail_track:2,-:20,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,panel2,-:4,panel2,rail_flat:42,-:21,mineLight,-:7,barrelside:10,-:43,CrystalSmall,slope1,rock_gem2,-:2,rubyhalf2,-:4,rock3X2,-,rock2X2crystals,-,rock4,rock_gem1,rocklong1,-:5,rock3X4crystals,-:19,rock2X2,-:7,rock2X2crystals,-:6,rubyhalf1,-:2,ruby1,-,rocklong1,-,rock_gem4,rock_gem2,rockgemlong2_half1,rockgemlong2_half2,rock_gem4,rock2X2,-,rockgemlong1_half2,rockgemlong2_half1,rockgemlong2_half2,-:22,panel2:5,rocklong2_half1,rocklong1_half2,slope_backwards2,rail_flat:27,rocklong2_half1,rockgemlong2_half2,rock1,rock_gem4,rock4,rock1,-:70,barrelside:12,-:42,slope1,rock_gem3,rubyhalf1,rock2,rock2X2crystals,-:3,rock4:2,-:4,rock2X4crystals,-:5,rock2X2,-:12,rock_gem3,rocklong1,-,rocklong2,-,rocklong1,-,rockgemlong2_half1,rockgemlong2_half2,-:2,rockgemlong2_half1,rockgemlong2_half2,rocklong1_half1,rocklong2_half2,-:4,rockgemlong2_half1,rock_gem2,rockgemlong1_half1,rocklong2_half2,rock4,rubyhalf2,rocklong1,-,rock4,rubyhalf1,rock4,rocklong1_half1,rocklong1_half2,rockgemlong2_half1,rockgemlong2_half2,rocklong2,-:3,rocklong1,-:117,rocklong2,-,rocklong1_half1,rock_gem2,woodplat1:12,rocklong2,-,rockgemlong2_half1,rock_gem2,rockgemlong1_half1,rock_gem2,rubyhalf1,rock_gem3,rockgemlong1_half2,rock_gem2,rocklong2,-,rock_gem2,rock4,rocklong1,-,rock_gem3,rubyhalf1,rock2,woodplat1:30,rock4,rocklong2,-,rockgemlong1_half1,rocklong1_half2,rocklong1,-,rock2,rock4,rubyhalf2,rock4,-:2,rockgemlong2_half1,rockgemlong2_half2,rock2,rubyhalf1,-:2,rocklong1,-:5,rocklong2,-:7</t> </level> ; level[12] = <level w="169" h="13"> <a>-:2197</a> <t>-:43,barrelside:2,-:97,baddy_puker,-:27,a,-:41,barrelside:2,-:86,baddy_spider,-:56,barrelstand,-:23,barrelside,slope2,-:15,baddy_spider,-:41,CrystalSmall:4,-:42,CrystalSmall:4,-:35,doublejump_icon,barrelstand,-:7,crate,-:13,CrystalSmall,-,slope2,rock_gem2,-:57,CrystalLarge:4,-:19,CrystalSmall:2,-:8,CrystalSmall:3,-:9,CrystalSmall:6,-:26,slow,-:6,CrystalSmall,barrelstand:2,-:2,CrystalSmall:3,-:2,crate,-:13,CrystalSmall,-:60,CrystalSmall:4,-:19,CrystalSmall:2,-:8,CrystalSmall:3,-:9,CrystalSmall:6,-:33,CrystalSmall,barrelstand:2,-:2,CrystalSmall:3,-:16,CrystalSmall,-:6,mineLight,-:7,CrystalSmall:3,-:4,CrystalSmall:3,-:9,CrystalSmall:2,-:22,baddy_spider,-:2,CrystalLarge:4,-:9,CrystalSmall:2,-:5,CrystalSmall:2,-:12,rocklong2,-:3,stickytile1,stickytile2,stickytile3,rock2,rocklong1,-,rocklong2,-,rock3X2crystals,-,rocklong1,-,rock_gem2,rock_gem3,rocklong1,-:9,StartEnd,-:4,safeground3,-:16,CrystalSmall,crate:2,-:21,CrystalSmall,-:10,baddy_spider,-:3,CrystalSmall:3,-:4,CrystalSmall:3,-:2,baddy_spider,-:6,CrystalSmall:2,-:25,CrystalSmall:4,-:9,CrystalSmall:2,-:5,CrystalSmall:2,-:17,rock2X4,-:3,rock2X3,-:4,rock2X4crystals,-:3,rock4,-:14,safeground3,-:15,CrystalSmall,crate:3,-:26,rocklong2,-,rocklong1,-,rocklong2,rockgemlong1_half2,rocklong2,-,rock4,rock_gem1,-:2,rock2X2crystals,-,rock2X3,-:4,rock2X4,-:3,rock_gem2,rock2X2crystals,-:10,CrystalSmall:2,-:7,crate:2,-:23,CrystalSmall:2,-:7,rotate_platform,-:29,rock_gem2,-:4,safeground3,safeground2,-,safeground1,safeground2,-,safeground2,-,safeground3,safeground1,safeground3,-:14,CrystalSmall,crate:4,-:19,rotate_platform,-:4,doublejump_icon,-,rock2X4,-:3,rock2X2crystals,-,rock2X4crystals,-:16,ruby1,-:4,rotate_platform,-:6,CrystalSmall:2,-:7,crate:2,-:2,CrystalSmall:3,-:9,mineLight,-:62,safeground3,-,StartEnd,Hero1,Hero2,-:10,CrystalSmall,crate:4,-,rail_flat:6,-:16,rock4,rock_gem2,-:41,CrystalSmall:2,-,crate:3,-:2,CrystalSmall:3,-:24,rotate_platform,-:47,safeground3,-:9,rock2X2,-,rocklong2,-,rock_gem2,rock2X4crystals,rock4:4,rock_gem2,-:6,railTrack,-:7,rotate_platform,-:44,rotate_platform,-:5,CrystalSmall:2,-,crate:3,-:2,CrystalSmall:3,-,rock2X2,-,rocklong1,-,rock2X4,-:3,rocklong2,-,rock4,-:2,rock_gem3,rock2X2,-,rocklong2,-,rock2X4,-:11,CrystalLarge,-:6,mushroom,-:33,safeground3:2,safeground2,-,safeground1,safeground3,safeground2,-,safeground1,safeground3,-:78,rock2X2crystals,-,rockgemlong2_half1,rockgemlong1_half2,rail_track,rail_flat:4,rail_track,-:2,rock4,rock_gem3,-:4,rockgemlong1_half1,rockgemlong1_half2,rock_gem3,-:5,rock_gem3,rock2,-:12,rockgemlong1_half1,rockgemlong1_half2,-,rocklong2,-,rock_gem2,rock2X2crystals,-:65,rotate_platform,-:53,rotate_platform,-:4,rock2,-:42,rock4,-:35</t> </level> ; level[13] = <level w="158" h="13"> <a>-:2054</a> <t>-,a,-:97,baddy_explosive_expert,-:12,baddy_explosive_expert,-:93,boulder1,-,boulder1,-:81,MineCartLong,-:135,barrelstand,-:80,CrystalLarge,-:13,boulder1,-,CrystalSmall:4,-:41,CrystalSmall:2,CrystalLarge,CrystalSmall:2,-:10,barrelstand:2,-:3,CrystalSmall:3,-:17,crazy,-:6,CrystalSmall:2,CrystalLarge,CrystalSmall:2,-:12,safeground3,-:47,CrystalSmall:6,-:54,barrelstand:3,-:3,CrystalSmall:3,-:2,CrystalSmall:3,-:9,rail_track:3,-:7,CrystalSmall,-:4,CrystalSmall,-:11,safeground3,-:8,slow,-:20,CrystalSmall:5,-:7,mineLight,-:5,CrystalSmall:6,-:6,boulder1,-:23,boulder2,-:10,woodplat1:2,-:3,CrystalSmall:3,-:4,barrelstand:4,-:3,CrystalSmall:3,-:2,CrystalSmall:3,-:5,crate,rock2X2crystals,-,rock2X3,-:2,woodplat1,railTrack,-:4,CrystalSmall:3,-:5,CrystalSmall,-:10,safeground3,-:12,doublejump_icon,-:6,doublejump_icon,-:7,CrystalSmall:9,-:7,barrelside:2,-:10,panel2:2,-:2,boulder1:2,-,CrystalSmall:4,-:13,mineLight,-:19,CrystalSmall:3,-:4,barrelstand:4,-:8,CrystalSmall:3,-:4,rockgemlong1_half1,rockgemlong1_half2,-:20,CrystalSmall,-:9,safeground3,-:22,boulder2,-:4,CrystalSmall:9,-:5,crate,barrelside:3,rail_track,rail_flat:8,rail_track,panel2:2,-,boulder1:3,-,CrystalSmall:4,-:15,boulder1:2,-:3,rail_track,-:12,CrystalSmall:3,-:4,barrelstand:4,-:15,rock2X2,-:11,railTrack,-:3,fast,-:5,CrystalSmall,-,panel2,-:3,StartEnd,-:3,safeground3,-,StartEnd,Hero1,Hero2,-:36,rock3X2crystals,-,rocklong2,-,rock2,-:9,rocklong2,-,rock4,rock_gem3,rocklong2,-,rock2,slope_backwards1,-,CrystalSmall:3,-:10,rock2X3,-:2,rock2X2,-,rock2X2crystals,-,rocklong2,-,rockgemlong2_half1,woodplat1,railTrack,-:11,CrystalSmall:3,-:4,barrelstand:4,rail_track:2,rail_flat:4,-:7,rock3X2crystals,-:17,rail_track:2,-:4,CrystalSmall,-,panel2,-:7,safeground3,-:5,boulder1:4,rail_flat:7,rail_track,-:7,rail_flat:12,rail_track,-:5,rock_gem2,rock4,-:13,rocklong2,-,rock_gem2,rock_gem3,rock2,slope_backwards1,-,CrystalSmall:2,-:8,rock3X2crystals,-:8,rock_gem3,rocklong1,-:15,mineLight,-:4,mushroom,rock2X4crystals,-:3,woodplat1:2,-:4,rail_flat:4,rail_track:2,-:3,rock_gem3,-:15,rock_gem1,rock2X4crystals,-:3,rocklong2,-,rocklong1,-,safeground2,-,safeground3,safeground1,safeground2,-,safeground2,safeground3,safeground1,safeground2,-,safeground1,safeground2,-,safeground2,-,safeground3,-:7,rocklong2,-,rock2X2crystals,-,rock2X4crystals,-:15,rock2X4crystals,-:22,rocklong1,-,rock2X2crystals,-,slope_backwards1,rail_track,CrystalSmall,rail_flat:6,rocklong2,-:3,rock4,-:14,railTrack,-:12,rock3X2,-:15,woodplat1:3,-:23,rock_gem3,rocklong1,-,rock_gem2,-:25,rock_gem3,-:45,rock4:2,rock_gem3,-:6,rock_gem3,rock4,-:21,rail_track,-:10,rock_gem3,-:144,woodplat1:2,rocklong2,-,rocklong2,-,rock_gem3,rocklong2,-,rocklong2,-:54</t> </level> ; level[14] = <level w="256" h="13"> <a>-:3328</a> <t>-,a,-:77,baddy_puker,-:64,baddy_puker,-:5,baddy_puker,-:5,baddy_puker,-:31,boulder1,-,boulder1,-:4,boulder2,-:4,boulder2,-:3,baddy_explosive_expert,-:4,boulder2,-:5,boulder2,-:228,boulder1:3,-:154,baddy_pusher,-:49,slow,-:33,fast,-:14,boulder1:2,slope1,-:15,CrystalSmall,-:119,mineLight,-:12,rock3X4crystals,-:32,rock3X2,-:43,flash_icon,-:10,barrelside:2,-:3,doublejump_icon,-:11,boulder1,slope1,rock4,-:15,CrystalSmall,-:16,CrystalSmall:11,-:22,safeground3,-:25,panel2,-:39,rock3X2crystals,-:48,doublejump_icon,-:7,rock2X2,-:9,mineLight,-:5,CrystalSmall:2,-:4,CrystalSmall:2,-:4,CrystalSmall:2,-:4,CrystalSmall:2,rock4,woodplat1,rock3,-:7,barrelside,panel2:5,rocklong2,-,slope_backwards2,-:10,slope1,rock2X2crystals,-:16,CrystalSmall,-:6,crate:7,-:14,rock2X2crystals,-:21,safeground3,-:11,CrystalLarge,-:13,panel2,-:9,shield_icon,-:10,panel2,-:12,flash_icon,-:4,shield_icon,-:11,med,-:24,baddy_snail,-:4,baddy_snail,-:4,baddy_snail,-:2,rock4,-:12,boulder2,-:10,CrystalSmall:2,-:4,CrystalSmall:2,-:4,CrystalSmall:2,-:4,CrystalSmall:2,-:11,panel2,-:4,rock4,rock_gem4,rock4,slope_backwards1,-:8,slope1,rock_gem2,-:17,CrystalSmall,-:5,crate:9,-:2,fast,-,baddy_pusher,-:2,baddy_pusher,-:2,baddy_pusher,-:6,CrystalSmall,-:17,safeground3,-:24,crate,panel2,-:7,baddy_snail,-,panel2,-:3,baddy_runner,-:3,baddy_runner,-,baddy_runner,panel2,-:2,baddy_snail,-:7,baddy_snail,-,panel2,-:2,baddy_runner:2,crate,-:23,baddy_pusher,-:3,rock3X2crystals,-,rocklong2,-,rockgemlong1_half1,rocklong1_half2,rockgemlong1_half1,rockgemlong2_half2,rocklong1,-,rockgemlong2_half1,rockgemlong1_half2,rock4:2,rock_gem2,rock4,rock_gem3,rocklong2,-,rocklong1,-,rock2,rock_gem3,rock1,rock3,rocklong1,-,rocklong2,-,rock_gem1,rocklong2,-:36,baddy_pusher,-:2,baddy_pusher,-:2,baddy_pusher,-,baddy_pusher,doublejump_icon,panel2,-:5,rock3X2crystals,-,rock4,slope_backwards2,-,mineLight,slow,-:9,CrystalSmall:4,-:10,CrystalSmall,-:2,crate:3,rock3X2,-,rocklong2,-,rocklong1,-,rockgemlong2_half1,rockgemlong1_half2,rock4,rocklong2,-,rockgemlong1_half1,rockgemlong1_half2,rocklong1,-,rock3X2,-,rocklong1,-,rock4,rock_gem3,rock4,rocklong1,-:4,CrystalSmall,-:16,safeground3,-:8,fast,-,rockgemlong2_half1,rockgemlong2_half2,rocklong2,-,rock4,rock_gem1,rocklong2,-,rockgemlong1_half1,rockgemlong1_half2,rock2,rock_gem1,rocklong2,-,rocklong2,rockgemlong1_half2,rock_gem2,rock3,rocklong2,-,rockgemlong1_half1,rockgemlong2_half2,rock4,rock_gem3,rock4:2,rockgemlong2_half1,rockgemlong1_half2,rock4,rock_gem1,rockgemlong2_half1,rockgemlong2_half2,rocklong2,-,rock4,rock_gem1,rocklong2,-,rocklong1,-,rock_gem3,rocklong1,-,rocklong2,-,rockgemlong1_half1,rockgemlong2_half2,rocklong2,-,rocklong1_half1,rocklong1_half2,rockgemlong2_half1,rockgemlong2_half2,rocklong1,-,rockgemlong2_half1,rockgemlong1_half2,-:6,CrystalLarge,-:4,mushroom,-:11,rock2X2,-:16,crate,-:21,slope2,rock4:2,rocklong2,-,rocklong2,-,rocklong1,-,rotate_platform,-:2,stickytile1,stickytile2,stickytile3,rotate_platform,-:2,stickytile2,stickytile3,stickytile1,rotate_platform,-:2,stickytile3,stickytile1,stickytile2,rotate_platform,-:2,rocklong2,-,rocklong1,-,rock4,rock_gem3,rock_gem1,rocklong2,-,rocklong1,-:8,rock2X2,-,slope_backwards1,-:11,CrystalSmall:4,crate:8,-:2,CrystalLarge,-,baddy_pusher,crate:3,-:2,rock2X2crystals,-,rock2X4,-:3,rock_gem2,rocklong2,-,rock3X4,-:5,rock_gem3,rock2X4,-:3,rock_gem2,-:5,CrystalSmall,-:15,safeground3,-,StartEnd,Hero1,Hero2,-:65,woodplat1:8,stickytile1,rock3,stickytile1,stickytile2,stickytile3,rocklong2,-,rocklong1,-,rockgemlong1_half1,rockgemlong2_half2,rocklong2,-:18,crate,-:12,CrystalSmall:4,-:4,slope2,rock4,rock2X2crystals,-,rock_gem2,-:26,rock2X4,-:3,rock2X2crystals,-,rock3X2crystals,-,rock_gem2,rock2,-:10,rock4,slope_backwards2,-:7,CrystalSmall:7,crate:8,-:3,rock4,rocklong2,-,rockgemlong1_half1,rockgemlong1_half2,-:8,rocklong1,-,rock_gem3,-:6,rock_gem3,-:11,CrystalSmall,-:8,StartEnd,-:5,safeground3,-:8,panel2,-:15,CrystalSmall:15,-:6,CrystalSmall,CrystalLarge:2,CrystalSmall,-:50,CrystalLarge,CrystalSmall:2,CrystalLarge,CrystalSmall:2,CrystalLarge,-,crate,-:11,CrystalSmall:6,-:2,slope2,rock3X2crystals,-:38,rock4,-:8,rock3X4crystals,-:3,rock4,slope_backwards2,-:6,CrystalSmall:7,crate:8,-:2,rock2X2,-,rock_gem3,rocklong1_half1,rocklong1_half2,-:31,CrystalSmall,-:13,safeground3,safeground1,safeground2,-,safeground1,safeground2,-,safeground2,-,safeground3,woodplat1:3,-,woodplat1:5,-,woodplat1:3,-,woodplat1:3,-,woodplat1:2,-,woodplat1:7,-,woodplat1:2,-,woodplat1,-,woodplat1:10,-,woodplat1:3,-,woodplat1:3,-,woodplat1:5,-:14,CrystalSmall:10,-:6,rock2X2,-:8,doublejump_icon,crate,-:12,CrystalSmall:4,-:2,slope2,rock4,-:2,rock4,-:49,rock2X2,-:4,rock2X4,-:3,rocklong1,-,rock4,rock_gem3,rock4,rocklong1,-,rock4,rockgemlong1_half1,rockgemlong2_half2,rock4,rock_gem3,rock2:2,rockgemlong1_half1,rockgemlong2_half2,-:32,rock3X4crystals,-:3,rock2X4crystals,-:3,safeground2,-,safeground3,safeground1,safeground2,-,safeground1,safeground2,-,safeground2,-:69,rock4,rocklong2,-,rockgemlong1_half1,rockgemlong1_half2,-,rock2,rocklong1_half1,rockgemlong2_half2,-,rocklong1,-,rock2,-,rock4:2,rocklong1,-:2,rocklong2,-,rocklong2,rockgemlong2_half2,rock4,-,rockgemlong2_half1,rockgemlong2_half2,rock4,rock_gem2,-:4,rock4,rocklong1_half1,rocklong1_half2,rock4:2,rockgemlong1_half1,rockgemlong2_half2,rock_gem2,rocklong2,-,rocklong1,-,rocklong2,-,stickytile1,stickytile2,stickytile1,stickytile3,rocklong1,-,rock_gem2,rocklong2,-,rocklong2,-,rockgemlong2_half1,rockgemlong2_half2,-:61,rock_gem2,-:307,rocklong2,-,rock4,rock_gem1,-:10</t> </level> ; level[15] = <level w="151" h="13"> <a>-:1963</a> <t>a,-:40,boulder2,-:67,boulder2,-:9,boulder1,-:82,MineCartLong,-:27,MineCartLong,-:3,crazy,-:31,boulder1,-:5,boulder1,-:13,barrelside,-:93,rail_track,rail_flat:2,-:13,boulder2,-:17,boulder1,-:21,CrystalSmall,barrelside,-,rock2X2crystals,-:10,StartEnd,-:23,CrystalSmall:3,-:3,CrystalSmall:2,-:47,slope1,rock4:2,rocklong2,-,railTrack,-:52,CrystalSmall,barrelside,rock2,-:2,rock4,-:24,CrystalSmall:2,-:6,CrystalSmall:3,-:3,CrystalSmall:2,-:4,CrystalSmall,-:16,crazy,-:23,mineLight,slope1,rock4,rock2X2crystals,-,rockgemlong2_half2,rock4,-:6,CrystalSmall,-:10,boulder1,-:2,boulder1,-,boulder1,-:9,boulder1,-:12,boulder1,-:5,CrystalSmall,-,barrelside,woodplat1,rocklong1,-,rocklong2,-,safeground2,-,safeground1,safeground3,safeground2,-,safeground1,safeground2,-,safeground3:2,-:12,CrystalSmall:2,-:20,CrystalSmall,-:39,slope2,rock3X2,-:9,railTrack,-:3,CrystalSmall,-:20,slope1,-:21,CrystalSmall,-,woodplat1,-:16,safeground3,-:10,CrystalSmall:2,-,slope1,rock2,rocklong2,-,rock_gem3,rock2X2crystals,-,rocklong2,-,rock4,-:2,rocklong2,-,rock_gem4,-:3,panel2,-:2,CrystalSmall,-:12,CrystalSmall,-,rail_track,rail_flat:2,-:20,slope2,rock4,-:16,CrystalSmall,-:5,med,boulder1,-,boulder1,-:3,CrystalLarge:3,-:2,slope1,rock4,-:5,boulder1,-:6,boulder1,-:6,CrystalSmall,-:2,woodplat1,-:17,safeground1,-:9,CrystalSmall:2,-,slope2,rock3X2,-,rock_gem2,rocklong2,-:3,rock_gem2,rocklong2,-:3,rock_gem3,rocklong1,-:4,rock2X4crystals,-:3,slope_backwards2,-:10,CrystalSmall,slope1,rock4,rock2X3,-:2,railTrack,-:18,slope2,rock2X2crystals,-:15,railTrack,-:3,CrystalSmall,-:14,slope1,rock4,rock_gem2,-:10,CrystalSmall,-:6,fast,-,CrystalSmall,-,woodplat1,-:18,safeground1,-:8,CrystalSmall:2,-,slope2,rock1,-:22,rock4,-:9,CrystalSmall,slope2,rocklong1,-:12,slow,-:9,slope2,rock4,-:22,CrystalSmall,-:8,slow,-:13,CrystalSmall,-:4,CrystalSmall,-:7,woodplat1,-:19,safeground3,-,StartEnd,Hero1,Hero2,-:3,CrystalSmall:2,-,slope1,rock2X2,-:25,barrelstand,-,barrelstand,-,barrelstand,slope1,rocklong2,-,rock3X2crystals,-,rocklong2,-:8,railTrack,-:11,rock3X2,-,rock2X4crystals,-:21,railTrack,-:3,CrystalSmall,-:5,mineLight,-:24,CrystalSmall,-,woodplat1,-:20,safeground3,-:7,CrystalSmall,-,slope2,rock2,-:26,barrelstand,-,barrelstand,-,barrelstand,rock4,rock2X2crystals,-:16,rail_flat:2,rail_track:2,-:32,rail_flat:2,rail_track,-:12,rail_track:2,rail_flat:12,rail_track:2,CrystalSmall,woodplat1,-:21,safeground3:2,safeground2,-,safeground1,safeground3,-:3,slope1,rock4,rock_gem2,-:26,barrelstand,-,barrelstand,-,barrelstand,rock_gem1,-:17,rocklong2,-,rock3X4crystals,-:33,rocklong2,-,rocklong1,-,rock4,rock_gem3,rocklong2,-,rock1,rock4,-:2,woodplat1:5,-:12,woodplat1:3,-:30,rock4:2,rocklong1,-:27,panel2:6,-:17,rock2X2crystals,-:36,rock4,rock2X2crystals,-,rock2X4,-:3,rock4,-:45</t> </level> ; level[16] = <level w="314" h="13"> <a>-:4082</a> <t>-:134,baddy_puker,-:419,baddy_puker,-:171,CrystalSmall,-:104,CrystalSmall,-:68,baddy_puker,-,baddy_puker,-:34,StartEnd,-:47,CrystalSmall:4,-:3,CrystalSmall:4,-:30,CrystalSmall:6,-:5,rocklong2,-:2,CrystalSmall,rocklong1,-:4,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:42,CrystalSmall:2,-:43,woodplat1,rock4,rock3X2,-:2,CrystalSmall,rockgemlong1_half1,rocklong1_half2,rock4,woodplat1,-:18,CrystalLarge,-:54,woodplat1:11,rock_gem4,-,rock_gem2,woodplat1,-:18,safeground3,-:42,CrystalSmall:4,-:3,CrystalSmall:4,-:14,rock_gem1,rockgemlong2_half1,rocklong2_half2,rock4,-:12,CrystalSmall:6,-:6,rock3,-,CrystalSmall,rock_gem1,-:5,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:10,rocklong1_half1,rocklong1_half2,rockgemlong2_half1,rock_gem2,-:24,woodplat1,rock2,-,CrystalSmall:2,rock_gem3,woodplat1,-:42,rock4,-:3,CrystalSmall,rock4,ruby1,rock4,-:84,rock4:2,-,rock1,-:7,safeground2,-,safeground1:3,safeground2,-,safeground2,-,safeground2,-,safeground2,safeground3,-:11,fast,-:18,woodplat1,rock3X2,-,rockgemlong2_half1,rockgemlong2_half2,rock4,rock2,woodplat1,-:4,CrystalSmall:4,-:3,CrystalSmall:4,-:12,CrystalSmall:2,rock4,rock2,rock_gem2,rock4,-:24,rock4,-,CrystalSmall,rock3,-:4,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:12,rock2X2,-:27,rock4,-,CrystalSmall:2,rock4,-:9,rotate_platform,-:26,rotate_platform,-:6,rock4,-:3,CrystalSmall,rock4:3,-:19,CrystalLarge,-:19,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-:2,woodplat1,rock3,-,rock_gem4,woodplat1,-:5,rotate_platform,-:5,CrystalSmall:10,rock2,-:2,rock1,-:19,safeground3,-:33,rock4,rock3X2crystals,-,rock4,-:10,mineLight,-:14,rocklong1_half1,rocklong2_half2,-,CrystalSmall:2,rock2X4crystals,-:15,woodplat1,rock2,rock_gem2,rock4,woodplat1,-:7,rock_gem1,-,CrystalSmall,rock_gem2,-:5,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:9,CrystalLarge:2,-:28,rock4,-,CrystalSmall:2,ruby1,-:30,mineLight,-:12,rock4,rocklong1,-:2,CrystalSmall,rock4,rockgemlong1_half1,rockgemlong2_half2,-:16,woodplat1,rock3,-:2,rock_gem3,woodplat1,-:7,woodplat1,rock3,stickytile3,stickytile1,stickytile2,woodplat1,-:24,rock_gem3,-,rock3,-:12,CrystalLarge,CrystalSmall,CrystalLarge,CrystalSmall,CrystalLarge,CrystalSmall,CrystalLarge,CrystalSmall,CrystalLarge,rock4,rock_gem1,-:2,rock_gem3,-:19,safeground3,-:26,doublejump_icon,crate:2,doublejump_icon,-:3,ruby1,-:2,rock4,-:5,rotate_platform,-:6,rotate_platform,-:13,rock2,-,CrystalSmall:2,-:7,CrystalSmall:5,-:5,rock2X2,-,rock1,-:8,rock4,-,CrystalSmall,rock4,-:4,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:3,rotate_platform,-:8,rock_gem3,rock4,-:16,woodplat1,rock_gem4,rock4,woodplat1,-:6,rock_gem2,-,CrystalSmall:2,rock4,-:19,rotate_platform,-:8,woodplat1,rocklong2,-,rock4,woodplat1,-:10,rocklong1_half1,rockgemlong1_half2,rock3,-,CrystalSmall,rock1,rock2X2crystals,-:18,rock4,-,CrystalLarge,rock2,-:9,rock1,rock4,rock2X2crystals,-:7,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-:2,rock4,-,rock4,-:12,CrystalSmall:8,rock4,rock_gem3,-:3,rock3,-:19,safeground3,-:10,woodplat1:15,rock4,rocklong1_half1,rock_gem2,rock1,rock3,-,rock3,rock_gem2,rock4,-:2,rock3,-:26,rock1,-,CrystalSmall:2,rocklong1_half1,rocklong1_half2,rock4,ruby1,-:3,CrystalSmall:5,-:7,rock_gem2,-:8,rock_gem2,-,CrystalSmall,rock1,-:21,CrystalLarge:2,rock4,rock3,-:17,rock2X2,-:8,rock4,-,CrystalSmall:2,rock4,-:29,rock2X2,-,rock3,-:11,rock2X3,-:3,CrystalSmall,ruby1,-:19,rock1,-:2,rock4,-:9,ruby1,rock2,-:27,rock_gem4,-,rock4,-:12,CrystalLarge,CrystalSmall,CrystalLarge,CrystalSmall,CrystalLarge,CrystalSmall,CrystalLarge,rock1,rock_gem2,-:3,rock2X2crystals,-:20,safeground3,-:9,woodplat1,-:21,rock2X3,-:2,rocklong2,-,rock_gem3,-:26,ruby1,-,CrystalSmall:2,rock1,rock4,rock3X2crystals,-:14,rock4:3,-:8,rock_gem1,-,CrystalSmall,rock_gem1,-:10,mineLight,-:12,rock3X2,-:27,rock2,-,CrystalSmall:2,rock_gem1,-:31,rock4,-:15,CrystalSmall,rocklong2,-,rock2,-:17,rock_gem1,-,CrystalLarge,rock4,-:9,rock4,rockgemlong1_half1,rockgemlong2_half2,rock3,-:6,rotate_platform,-:5,rotate_platform,-:5,rotate_platform,-:6,rock4,-,rock_gem2,stickytile2,stickytile1,stickytile2,stickytile3,stickytile2,stickytile3,stickytile1,stickytile3,stickytile1,stickytile3,rocklong2_half1,rockgemlong2_half2,rock4:3,rock_gem4,rock4,rockgemlong1_half1,rocklong1_half2,rock2,-:3,rock1,-:21,safeground3,-,StartEnd,Hero1,Hero2,-:4,woodplat1,-:25,rock_gem2,rock4:2,-:19,woodplat1,rock2X2crystals,-,woodplat1,-:3,rock2,-,CrystalSmall:2,rock4,ruby1,-:5,woodplat1,rock3X2,-,woodplat1,-:6,rocklong1_half1,rocklong1_half2,ruby1,-:8,rock2,-,CrystalSmall,rock4,-:21,CrystalLarge:2,-:19,rock4,ruby1,-:7,rock_gem3,-,CrystalSmall:2,rock4,-:29,rock_gem1,rock3X2crystals,-:12,rocklong1,-,rock4,-,CrystalSmall,rock2X2,-,rock4,-:17,rock1,-:2,rock2,-:9,rock2X4crystals,-:28,rock_gem3,-:24,rock4:2,ruby1,rock4,-:19,safeground3,-:7,woodplat1,-:23,rocklong1_half1,rocklong1_half2,ruby1,rock4,rock2X2,-:27,rock_gem1,mushroom:3,rock2X2,-:16,rock2X3,-:10,rock4,mushroom:2,rock_gem2,-:8,woodplat1,rock4,rock_gem2,woodplat1,-:8,rockgemlong1_half1,rockgemlong2_half2,rock4,-:9,stickytile3,stickytile2,stickytile3,stickytile1,-:6,rock2,rock4,-:7,rock1,mushroom:3,rock2,-:29,rock4,-:13,rockgemlong2_half1,rockgemlong2_half2,rock4,mushroom:2,-:2,rock4,-:9,woodplat1:4,-:4,rock1,mushroom:2,rock4,-:38,rock4,-:2,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,rock2X4,-:22,safeground2,-,safeground1,safeground3,safeground2,-,safeground1,safeground3,-:24,rock1,rock2,rock4,rock2,-:7,rocklong2,-,rockgemlong2_half1,rockgemlong2_half2,rocklong2,-,rockgemlong1_half1,rocklong1_half2,rocklong2,-,rockgemlong2_half1,rocklong1_half2,-:3,rocklong1,-:5,rock2,rockgemlong1_half1,rocklong1_half2,rockgemlong2_half1,-:2,rocklong1_half1,rocklong1_half2,-:24,rockgemlong2_half1,rockgemlong2_half2,rock4:2,-:9,rocklong1,-:10,rock4:2,rocklong1_half1,rocklong2_half2,rock_gem2,-:8,rocklong2,-,rock4,rock_gem4,rock4,-:4,rockgemlong2_half1,rocklong2_half2,-:7,rock4,ruby1,rock4,rocklong1,-:30,rock1,-:13,rock4,rock_gem3,rocklong1,-,rock1,rock2,rocklong2,-:18,rock4,rocklong1_half1,rockgemlong1_half2,rock2,-:9,rocklong2,-,ruby1,rock3,-:25,rock_gem2,rock4,rock2,rocklong2,-,rock4,ruby1,rock4,rocklong2,-,rock_gem3,rock4,rock_gem4,rock4:2,rock2,rocklong1_half1,rockgemlong2_half2,rock4,rock_gem1,rocklong1_half1,rocklong1_half2,rock1,rock_gem2,rock4,-:23</t> </level> ; level[17] = <level w="307" h="11"> <a>-:3377</a> <t>-:23,boulder1:3,-,baddy_explosive_expert,boulder1:3,-:2,baddy_explosive_expert,boulder1:3,-:2,baddy_explosive_expert,boulder1:3,rocklong1,-,rocklong2,-,rockgemlong2_half1,rock_gem2,rocklong2,-,rocklong2,-,rock1,rockgemlong2_half1,rockgemlong1_half2,rock1:4,rock4,rock1,rock4,rockgemlong2_half1,rockgemlong2_half2,rock1:2,rockgemlong1_half1,rocklong2_half2,rock1,rock4,rock2,rock3,rock1:2,rock2,rockgemlong1_half1,rocklong1_half2,rock2,rockgemlong2_half1,rockgemlong2_half2,-:29,fast,-:21,med,-:3,boulder2,-:8,fast,-:8,boulder2,-:175,boulder1:3,-:2,boulder1:3,-:3,boulder1:3,-:3,boulder1:3,-:57,med,-:14,baddy_licker,-:4,baddy_licker,-:4,baddy_licker,-:57,baddy_explosive_expert,-:14,baddy_explosive_expert,-:19,baddy_licker,-:6,baddy_licker,-:5,baddy_licker,-:89,rock2X2,-:76,rock_gem1,rock2X2,-,rock_gem2,rock2X4,-:62,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:32,rock2X4,-:54,rock_gem1,rockgemlong1_half2,rocklong2,-,rock2:2,rock2X2,-,rock2,rock3X2crystals,-,rock2,rock2X2crystals,-:2,CrystalSmall,-,CrystalSmall,-,CrystalSmall,rock_gem4,rock2X2,-,rocklong2,-,rock2,rock_gem3,rock2,rockgemlong1_half1,rocklong2_half2,rock3X2crystals,-:101,rock4,-:2,rock4,-:8,rock3X4crystals,-:6,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:31,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:37,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-:24,rock4,rock3,-:2,rock4:2,-:3,rock1,rock2X4,rock2,rockgemlong1_half1,-,rock2,-:2,rock2,-:2,rock4,-:3,CrystalSmall,-,CrystalSmall,-,rock1,rock_gem2,-:2,rocklong2,-,rockgemlong1_half1,rocklong2_half2,rock2:3,-:16,slow,-:8,rockgemlong1_half1,rockgemlong2_half2,-:75,rock3X2crystals,-,rock4,rock2X2crystals,-,rocklong2,-,rock4,rock3X2,-,rocklong2,-:8,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:8,barrelstand:5,-:16,slope2,rocklong2,-,rockgemlong1_half1,rocklong2_half2,rocklong2,-,rocklong2,-,rocklong1_half1,rockgemlong2_half2,-:5,rocklong2,-,rock2X2crystals,-,rocklong1,-,slope_backwards1,-:32,rock4,rock_gem3,rock4,rock3,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:24,rock3X2crystals,-:2,CrystalSmall,rockgemlong1_half1,rocklong2_half2,-:3,rock_gem4,-:4,rock2,rockgemlong2_half1,rock_gem2,rock2,-:2,rock4,rock_gem3,rock4,-,CrystalSmall,-,CrystalSmall,rock1,rock3,rock1,rock2X3,-:2,rock4,rock2X4crystals,-:3,rock_gem2,-:11,safeground3,-:13,rock3X2crystals,-:4,rock2X4crystals,-:3,rock1,rock2,-:2,rock2X2,rock_gem4,rock2,rock_gem2,-:2,rock2X2,-,rock1,rock_gem4,-:2,rock_gem4,rock1,rocklong1_half1,rockgemlong2_half2,-:4,fast,-:8,crazy,-:13,slow,-:22,rock_gem3,-:2,rock2,rock2X2,-:3,rock2X2,-:8,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:8,barrelstand:5,-:15,slope1,rock2X4,-:3,rock2X4crystals,-:3,rocklong1,-,rock4,-:5,rock_gem1,rock2,-:2,rock2X2,-,rock4,slope_backwards1,-:30,rock2,rock_gem2,rock2,rock3X2,-:2,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:15,rock3,ruby1,rock2X2,-,rock3,rock_gem4,-:6,CrystalSmall,rockgemlong2_half1,rocklong1_half2,-:18,CrystalSmall,-,rock1,ruby1,rockgemlong1_half1,rockgemlong2_half2,-:3,ruby1,-:4,rockgemlong2_half1,rockgemlong2_half2,rock2,-:9,safeground3,-:15,rock2,rocklong1_half1,rockgemlong2_half2,-:4,rockgemlong1_half1,rocklong2_half2,-:2,rockgemlong1_half1,rockgemlong1_half2,rock3X2crystals,rock1,-:4,rock3X2crystals,-:3,rock2X4crystals,-:47,baddy_spider,-:5,rock4,rocklong2,-,rock_gem2,-:6,rocklong2,-,rockgemlong1_half1,rockgemlong1_half2,-:3,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:8,barrelstand:5,-:14,slope1,rock3,-:8,rocklong2,-,rock_gem4,-:5,rock2X4,-:5,rocklong2,-,slope_backwards1,-:30,rock2X2,-:4,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-:15,rocklong1,-:3,ruby1,rock4,-:6,CrystalSmall,-:5,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,rock_gem4,rockgemlong1_half1,rocklong2_half2,rock2,rock1,rock2X4crystals,-:3,rock2X4,-:3,rocklong1,-:7,StartEnd,-:3,safeground3,-:12,doublejump_icon,-:2,rock2X3,-:2,rock4,rock1,ruby1,rock1,rockgemlong2_half1,rocklong2_half2,-:2,rock2,ruby1,rock2:2,-:2,rock1,ruby1,-:56,rock3X4,-:3,rock4,rock3X2crystals,-,rock_gem2,rock3X4crystals,-:3,rock2X4,-:31,barrelstand:5,-:29,woodplat1:3,-:4,rockgemlong1_half1,rockgemlong2_half2,rock3X2,-,ruby1,slope_backwards1,-:9,barrelstand:9,-:36,mineLight,-:20,rock2,rock_gem3,-,CrystalSmall:3,-:3,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,rock1,rocklong2,-,rocklong2,-,rock1,-:20,safeground3,-,StartEnd,Hero1,Hero2,-:6,doublejump_icon,rocklong1,-,rocklong2,-:4,rock1,ruby1,rock1,rock3X2crystals,-,rock2,-:2,rock1:3,rock4,-:2,rock1:2,-:4,rock1:3,ruby1,-:2,CrystalLarge:5,-:7,CrystalLarge:5,-:7,CrystalLarge:5,-:9,mineLight,-:11,rock1,-:2,rock4,-:36,barrelstand:5,-:5,mineLight,-:8,CrystalLarge:14,-:4,rock2X4crystals,-:3,rock4,rock2,-:2,rock4:2,slope_backwards2,-:8,barrelstand:9,-:11,rock2X4crystals,-:36,CrystalSmall:7,-:2,rocklong1,-,rock2,rock1,rock2X2crystals,-:4,rockgemlong1_half1,rockgemlong1_half2,rock2,ruby1,rock2:2,rocklong1,-,rock_gem4,rock2X2crystals,-,rock2,rock3,-,CrystalSmall,-:16,slope2,safeground3:2,safeground2,-,safeground1:2,safeground2,-,safeground2,safeground3,-:9,rocklong2_half1,rocklong1_half2,rock2X2crystals,-,rock2,rock_gem2,rock2X2,-,rocklong2,-,rocklong2,-:3,rocklong2,-,rock2X2crystals,-,rocklong2_half1,rockgemlong1_half2,rock2X4,-:2,rock1,ruby1,rock1:3,rock_gem4,rock1,rock2X2crystals,-,rock1:2,rock_gem4,rock1,rock2X4crystals,-:9,rock2X2crystals,-,rocklong1_half1,rockgemlong2_half2,rock_gem2,rock4,-:6,rockgemlong1_half1,rocklong2_half2,rock2X3,-:2,rock4,-:21,rock4,-:2,rock2,-:4,rock_gem3,rocklong2_half1,rocklong1_half2,rocklong1_half1,rocklong1_half2,-:20,mushroom:3,-:4,barrelstand:5,-:11,slope1,rock4,rock2X2,-,rock_gem2,rock3,rock2X4crystals,-:3,rocklong2,-,rock2X2crystals,-,rock3,rocklong2,-:9,rocklong2,-:3,rockgemlong1_half1,rocklong2_half2,ruby1,slope_backwards2,-:7,barrelstand:9,-:8,mushroom:3,-:23,rock4,rocklong2,-,rocklong1,-,rocklong1,-,rock2,rock_gem4,rocklong1_half1,rock_gem2,-:3,rock2X2,-,rock4,rocklong2,-,rock_gem4,-:3,rockgemlong2_half1,rocklong1_half2,rocklong2,-:6,rock4,rock2X2,-,rock2,rock2X4,-:3,rock2,-:2,ruby1,rock4,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,slope2,rock4,-:9,safeground2,-,safeground3,safeground1,safeground3,safeground1:3,rockgemlong2_half1,rockgemlong2_half2,rockgemlong2_half1,rocklong2_half2,-:2,rocklong2,-:3,rockgemlong1_half1,rock_gem2,rock2,rock_gem3,-:2,rocklong2,-:3,rocklong2,-:5,rocklong1,-,rocklong2,-,rock1,ruby1,-:2,rocklong1_half1,rockgemlong2_half2,rocklong2,-:13,rocklong1,-,rockgemlong1_half1,rocklong1_half2,-:6,rock2,rock_gem1,-:3,rock_gem3,-:6,rocklong1_half1,rockgemlong2_half2,rock3,rock_gem4,rock1,rock3,rock_gem4,rock1,rock3,rock1,rock2,rock1:2,rocklong2,-,rocklong2,-,rocklong2,-,rockgemlong2_half1,rockgemlong2_half2,rocklong2,-,rocklong2,-,rocklong2_half1,rockgemlong1_half2,rocklong1,-,rocklong1_half1,rock_gem2,rocklong2,-,rocklong1,-,rockgemlong2_half1,rockgemlong2_half2,rocklong1,-,rock_gem3,rock4,rocklong1,-,rocklong2,-,rockgemlong1_half1,rocklong2_half2,rock3,rock4,rocklong2,-,rockgemlong2_half1,rocklong1_half2,rockgemlong1_half1,rocklong2_half2,rocklong2,-,rocklong2,-,rockgemlong1_half1,rock_gem2,rocklong2,-,rocklong1_half1,rockgemlong1_half2,rocklong1,-,rocklong1,-,rockgemlong1_half1,rocklong2_half2,rocklong1,-:3,rocklong1,-:5,rock_gem2,rock3,-:2,rock4,rockgemlong2_half1,rockgemlong2_half2,-:4,rocklong1,-,ruby1:2,rocklong1,-,rocklong2,-,rock4,ruby1,rock4:2,rockgemlong2_half1,rockgemlong1_half2,rock4,rocklong1_half1,rockgemlong2_half2,rock4,rock3,rock2,rock4,rock1,rocklong2,-,rocklong1,-,rockgemlong2_half1,rockgemlong2_half2,rocklong2,-,rocklong1,-:5,rocklong1_half1,rocklong2_half2,rocklong2,-,rocklong2_half1,rockgemlong2_half2,rock1,rock4,rock1,rockgemlong2_half1,rocklong2_half2,rock1,rock4,rockgemlong1_half1,rockgemlong2_half2,rocklong2_half1,rocklong1_half2,rock4:2,rock_gem2,rock4,rocklong1_half1,rockgemlong2_half2,rock1:4,rocklong1,-:14,rock4,rockgemlong1_half1,rocklong2_half2,rock3,-:12,rock1,-:2,rock2,-:4,rock2,rock4,rock2,rock4:3,rockgemlong1_half1,rockgemlong2_half2,rock1:3,rocklong1_half1,rock_gem2,rock1,rocklong1,-,rockgemlong2_half1,rockgemlong1_half2,rocklong2,-,rockgemlong2_half1,rockgemlong2_half2,rocklong1,-:10</t> </level> ; level[18] = <level w="303" h="13"> <a>-:3939</a> <t>-:188,baddy_runner,-:5,baddy_runner,-:14,baddy_runner,-:4,baddy_runner,-:3,baddy_runner,-:26,rock2,rock_gem3,rock4,rock2X4,-:3,rock_gem2,rock2X3,-:2,rocklong2,-,rock_gem1,rock4,rock2X2,-,rock2X3,-:2,rocklong1,-,rock_gem2,rock2X2,-,rock3X2,-,rock2X4crystals,-:3,rocklong2,-,rock3X2crystals,-,rock2X4,-:3,rock_gem3,rock2X2,-,rock2,rocklong1,-,rockgemlong1_half2,rock2,-:11,rock2,rock_gem2,rocklong1,-,rock2X2,-,rock2X3,-:2,rock4,rock_gem2,rocklong2,-,rock3X2,-,rock2X2,-,rocklong2_half1,rock_gem2,rock4,rock2X2,-,rocklong2,-,rock4,rocklong2,-,rock4,rockgemlong1_half1,rockgemlong1_half2,rock4,rocklong2,-,rock3X2,-,rock2X3,-:2,rock4,rock3X2,-,rock2X2,-:8,baddy_runner,-:4,baddy_runner,-:5,baddy_runner,-:23,rock2X4crystals,-:3,rock3,rock_gem3,rocklong1,-,rock2X2crystals,-,rock3X2crystals,-,rock2X4crystals,-:3,rock2X2,-,rock2X2crystals,-,rock4,rocklong2,-:5,rock3X4,-:3,rock4,rock_gem2,-:55,boulder2,-:10,boulder2,-:56,boulder1,-:4,rocklong2,-:9,rock_gem3,-:8,rock_gem3,-:18,rock2,-:2,rock3X2,-,rock2X3,-:13,rock1,-:8,rockgemlong2_half2,-:2,rock4,-:9,rocklong1_half2,-:7,rock4,rock1,rock_gem2,-:5,rock_gem2,-:50,rock4,rock2X2,-,rockgemlong2_half2,-:12,rock2X2,-:10,rock4,rocklong2,-:3,CrystalLarge:4,-:20,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:46,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:17,boulder1,-:2,boulder1,-:38,rock3X4crystals,-:3,rock3X2crystals,-,rock_gem3,-:16,safeground1,-:34,rock2,rockgemlong2_half2,rockgemlong2_half1,rocklong1_half2,-:2,rockgemlong2_half1,-:6,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-:6,mineLight,-:18,rocklong1,-:3,rocklong2,-:18,rock2,-:4,rock3X2,-,rock_gem2,-:2,doublejump_icon,-,shield_icon,-:20,slope2,rocklong1_half1,rock_gem2,rock2,rocklong1,-,rock_gem3,slope_backwards1,-,crazy,-:22,slope1,rocklong2,-,rocklong1,-,rockgemlong2_half1,rock_gem2,slope_backwards1,-:15,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:16,boulder1,-:3,boulder1,-,boulder1,-:9,MineCart,-:11,crazy,-:21,rock2,-:2,rock_gem3,rock1,rock2,-:11,safeground1,-:24,crate,-:3,crate,-:7,boulder1,-:3,boulder1,-:58,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:5,rocklong1,-,rockgemlong1_half2,rocklong2,-,rock_gem3,-:2,rockgemlong1_half1,rocklong1,-,rock2,rock3X2crystals,-,rock_gem4,-:3,CrystalSmall:4,crazy,-:4,fast,-:5,slope1,panel2,woodplat1:6,panel2,slope_backwards1,-:5,doublejump_icon:2,-:2,fast,-:12,slope1,panel2,woodplat1:6,panel2,slope_backwards1,-:52,boulder1,-:3,boulder1,-,rail_track:27,rail_flat:4,rail_track,-:11,rock2X2,-,rock3X4,-:14,safeground1,-:24,crate,-:3,crate,-:17,rock2X2,-,woodplat1:11,rock2X3,-:6,rock2X4crystals,-:3,rock2X2,-,rock4,-:4,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,rock4,rock_gem3,rock4,rockgemlong2_half1,rockgemlong2_half2,-:2,CrystalSmall,-:2,rock2X2,-,rock2X3,-:2,rock3X2,-:3,rock2X3,-:2,rock_gem2,-:2,rock4,-:3,CrystalSmall:4,-:10,slope2,rockgemlong2_half2,panel2,-:6,panel2,rock_gem2,slope_backwards1,-:3,rock2,woodplat1:2,rock3,-:13,slope1,rock_gem1,panel2,-:20,panel2,woodplat1:10,panel2,woodplat1:11,panel2,-:16,boulder1,-,boulder1:2,-,slope1,panel2,woodplat1:10,rock_gem3,rock2X2,-,rocklong2,-,woodplat1:10,panel2,-:4,rock2,slope_backwards2,CrystalSmall,-:26,safeground1,-:6,fast,-:17,crate,-:3,crate,-:43,ruby1,-:4,rock1,woodplat1:3,rock3,-:2,rocklong1,-,rock_gem3,rock4,rock2X4,-:3,rocklong2_half2,rock3X2crystals,-,rockgemlong2_half1,rockgemlong2_half2,ruby1,rock2X4,-:3,rock2X2,-,rock2X2,-:10,rock_gem3,rock4,-:3,rock_gem4,-:2,rockgemlong2_half1,-:3,CrystalSmall:4,-:3,mineLight,-:5,slope2,rock2X2crystals,-,panel2,-:6,panel2,rock2X2crystals,-,slope_backwards1,-:18,slope1,rocklong1,-,panel2,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-:3,slope_backwards1,-:48,boulder1:2,-,boulder1:2,-,slope1,rock_gem4,panel2,-:13,rock4,-:11,panel2,-:4,rock4,ruby1,slope_backwards1,CrystalSmall,-:25,safeground1,-:23,panel2,woodplat1:6,panel2,rock1,-:35,rock2X2,-,rock3X2crystals,-,rubyhalf1,-:12,rock2X2,-,rock3X2crystals,-:5,rock_gem3,-:2,rocklong2_half2:2,ruby1,-:9,rock3X4,-:3,rock2X2,-:3,rock3X4,-:3,rock3X2crystals,-,rubyhalf1,rock2X2,-:16,slope2,rock_gem2,-:2,panel2,woodplat1:6,panel2,-:2,rock2,slope_backwards1,-:16,slope1,rock2X3,-:2,panel2,woodplat1:3,-:2,woodplat1,panel2,rocklong1_half1,rockgemlong2_half2,rock4,slope_backwards1,-:52,slope1,rocklong1,-:33,rock2X2,-,slope_backwards2,CrystalSmall,-:24,safeground1,-:2,StartEnd,-,Hero1,Hero2,-:13,rock2X2,-,rock2X2crystals,-,panel2,-:6,panel2,rockgemlong2_half1,rock_gem2,-:11,mushroom,-:2,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:3,mushroom,-:5,rubyhalf2,-:16,rock4,rock_gem1,rock2X2crystals,-,rock4,-:2,rock2X2crystals,-,rock2X4crystals,-:3,rock2,rock2X3,-:11,rockgemlong1_half1,-:6,rubyhalf2,-:3,rock2X2,-,rocklong1_half1,rockgemlong1_half2,rock2X2,-,woodplat1:2,-:5,slope2,rock3X4crystals,-:3,panel2,-:6,panel2,rock2X4crystals,-:3,slope_backwards1,-:14,slope1,rock_gem3,-:10,rock4,rock2X4crystals,-:3,slope_backwards1,-:15,crazy,-:5,fast,-:61,mushroom,-:4,rock2,slope_backwards2,CrystalSmall,-:23,safeground1,-:17,rocklong1,-:5,panel2,-:6,panel2,rock2X2,-,rock2,rocklong2,-,rock2X3,-:2,rock3X4,-:3,rocklong2,-,rock3X2,-,rock2X2,-,rocklong1,-,rock_gem3,rock2X3,-:2,rockgemlong1_half1,rockgemlong1_half2,rock3X4,-:3,rock_gem3,rock2X3,-:2,rock3X4crystals,-:5,rock2X2,-:12,rocklong2,-:4,rock4,-:2,rocklong1,-,rock4,-:6,rock2,-:19,rock4,rock_gem4,rock2,-:3,rock3X2,-:9,slope2,rock_gem2,-:4,panel2,-:6,panel2,-:4,rock_gem2,slope_backwards1,-:12,slope1,rock_gem1,rocklong2,-:5,CrystalLarge,-,CrystalLarge,-,CrystalLarge,rock4,-:4,rock_gem4,slope_backwards1,-:4,barrelstand:6,-:25,mineLight,-:27,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,mushroom,rock4,mushroom,-,fast,rock4,rock3X2crystals,-,slope_backwards2,CrystalSmall,-:22,safeground1:3,safeground2,-,safeground1,safeground3:2,panel2,woodplat1:4,panel2,rocklong1,-,rock2X4,-:3,rock_gem3,rock2X3,-:2,panel2,-:6,panel2,-:2,rock3X2,-,rock4,-:7,rock2X2crystals,-:5,rock_gem1,rock2X2,-:4,rock2X2,-:5,rock2,-:7,ruby1,rock4,-:18,crazy,-:35,rock4,rock_gem1,-:9,slope2,rock3X2,-:5,panel2,woodplat1:6,panel2,rock2X2crystals,-,rock3X4crystals,-:3,slope_backwards1,-:17,panel2,woodplat1:6,panel2,rock3X4,-:3,rocklong2,-,slope_backwards1,-:3,barrelstand:6,-:42,rock3X4,-:3,rock4,-:2,rock2X2crystals,-:2,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,rock1,rock2,rock2X2,-,rock2X2,-:3,rock4,slope_backwards2,CrystalSmall,-:11,panel2,-:6,StartEnd,-:10,panel2,-:4,panel2,rock4,rockgemlong2_half2,-:4,rock_gem2,-:3,panel2,-:6,panel2,-:4,rocklong1,-,rock4,rock2,-:8,rock2X3,-:4,rock2,rock2X2,-:7,rock2X4,-:7,rock2X3,-:2,rock4,-:7,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:6,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,fast,-:3,baddy_runner,-:15,mushroom,rock2X2,-:3,shield_icon,-:5,slope2,rock_gem3,-:2,rock4,rock2X2crystals,-,rock4,panel2,-:6,panel2,-:6,rock_gem2,slope_backwards1,-:14,rock_gem1,rock_gem3,panel2,-:6,panel2,-:4,rock2X3,-:2,rock4,rock3,rock2X2,-,woodplat1:2,panel2,woodplat1:10,panel2,woodplat1:11,panel2,woodplat1:17,panel2,rock2X2,-,rock4,-:4,rock2X3,-:4,rock2X3,-:2,rocklong2,-,rockgemlong2_half2,rock2X2crystals,-,rock2,rock2X4,-:3,rock2X2,-,rocklong1,-,rock_gem1,rock2X3,-:2,rock_gem2,-:6,rock2X2crystals,-,slope_backwards2,CrystalSmall:9,CrystalLarge:2,panel2,-:17,panel2,-:4,panel2,-:10,panel2,-:6,panel2,-:41,rocklong2,-,rock2,rocklong2,-,rock4,woodplat1:12,rock_gem3,rocklong2,woodplat1,rock4,woodplat1:11,rock4,rocklong1,-,rocklong1,-,woodplat1:14,rock1,-:2,rock_gem1,rock4,rocklong1_half1,rockgemlong1_half2,rocklong2,-,rock_gem3,rocklong1,-,rock_gem1,-:2,rock4,-:2,rock_gem2,panel2,-:6,panel2,rockgemlong1_half1,rock4,-:4,rocklong1,rock_gem3,rocklong2,-,rock4,rockgemlong1_half2,rocklong1_half1,rockgemlong2_half2,rock2,rock3,rocklong1,-,rock4,rockgemlong1_half1,rockgemlong1_half2,rock_gem1,rocklong2,-,panel2,-:6,panel2,-:7,rocklong2,-:5,panel2,-:10,panel2,-:11,panel2,-:17,panel2,-:2,ruby1,-:7,rockgemlong2_half2,rockgemlong1_half1,-:3,rock_gem3,rocklong2,-:3,rock2,-:6,rockgemlong2_half2,rocklong2,-:4,rocklong1,-,rock2,rock_gem3,rocklong1,-,rock4,-:2,rock2,rocklong1,-,rock_gem2,rock2,rocklong1,-,rock2,rock4,rock_gem3,rocklong1_half2,rocklong2,-,safeground2,-,safeground3,safeground2,-,safeground3,safeground2,-,safeground3</t> </level> ; level[19] = <level w="186" h="13"> <a>-:2418</a> <t>-:23,MineCartLong,-:16,MineCartLong,-:29,MineCartLong,-:13,MineCartLong,-:12,MineCartLong,-:45,MineCartLong,-:19,boulder2,-:37,slow,-:10,crazy,-:38,fast,-:136,CrystalSmall:2,-,doublejump_icon,-,rail_track,rail_flat:4,-:42,rail_track,rail_flat:4,-:52,fast,-:23,crazy,-:16,slope2,rocklong2,-:2,CrystalLarge:7,-:24,CrystalSmall:3,slope1,rock4,rockgemlong2_half1,rockgemlong1_half2,rocklong2,-,rock_gem4,-,railTrack,-:4,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-:28,CrystalSmall,-,slope2,rock4,woodplat1:5,railTrack,-:4,med,-:51,mineLight,-:21,CrystalSmall:10,-:3,slope1,rock3X2crystals,-,rock_gem2,-:31,CrystalSmall:3,slope1,rock_gem1,rock3X2,-,rocklong2,-,rock_gem2,-:41,slope2,rock2X2crystals,-:51,CrystalSmall:2,-,rotate_platform,-:3,rock_gem3,rock2X2crystals,-,rock_gem2,rock2X4crystals,-:3,rock2,rock2X2crystals,-:6,rail_track:3,rail_flat:2,-:6,CrystalSmall:10,-:2,slope1,rock2,-:5,CrystalLarge:5,-:21,crazy,-,CrystalSmall:3,slope1,rock_gem2,rock_gem3,-:2,rock_gem2,-:8,railTrack,-:27,slow,-,crazy,-,CrystalSmall,-,slope2,rock4,-:11,railTrack,-:4,rail_track,rail_flat:4,-:4,crazy,-,med,-:31,rock4,-:2,rock2,-:4,rock_gem2,-:5,rock1,woodplat1:4,-:2,railTrack,-:13,fast,-,rock2X2crystals,-,rock2,rock_gem1,-:16,StartEnd,-:15,CrystalSmall:3,slope1,rock4,rock2X2,-:19,slow,-:5,fast,-:10,CrystalSmall:4,-:5,slope2,rock2X4,-:22,railTrack,-:26,CrystalSmall:2,-,rotate_platform,-:46,rock_gem2,rocklong2,-:6,CrystalLarge:3,-:11,safeground3,-:10,CrystalSmall:3,slope1,rock4,rock_gem3,-:17,railTrack,-:3,rail_track:6,-:2,CrystalSmall,-:5,med,-,CrystalSmall:4,-:2,CrystalSmall,-,slope2,rock4,-:17,railTrack,-:20,crazy,-:5,slow,-:41,railTrack,-:25,safeground2,-,safeground3:2,safeground2,-,safeground1,safeground2,-,safeground2,safeground3,-:9,CrystalSmall:3,slope1,rock4,rocklong2,-:22,rock4,rock_gem3,rocklong1,-,woodplat1:2,railTrack,-:3,CrystalSmall,-:5,CrystalSmall:4,-:3,slope2,rock2X2,-,rock4,rock_gem2,-:25,railTrack,-:3,rail_track,rail_flat:4,-:10,CrystalSmall:2,-,rotate_platform,-:40,rail_flat:17,-:2,CrystalLarge,-:12,safeground3,-:9,CrystalSmall:2,slope1,rock4,rockgemlong2_half1,rockgemlong1_half2,-:23,rock2X2crystals,-,rock_gem1,-:8,CrystalSmall,-:3,CrystalSmall:4,-:2,slope2,rock4,-:2,rock_gem3,-:35,railTrack,-:85,safeground3,-,StartEnd,Hero1,Hero2,-:6,slope1,rock2X2,-,rock_gem3,-:26,rock4,-:6,railTrack,-:7,mineLight,-:2,slope2,rock4,rockgemlong2_half1,rock3X2crystals,-,rock4,-:30,railTrack,-:13,rotate_platform,-:76,safeground3,-:7,doublejump_icon,-,slope1,rock4,-:40,rail_track:3,-:3,slope2,rock4,rockgemlong1_half1,rock4,-:42,railTrack,-:81,safeground3,safeground1,safeground2,-,safeground1,safeground2,-,safeground2,-,rock4:2,rockgemlong1_half1,rockgemlong1_half2,-:39,woodplat1:4,rocklong2,-,rock_gem2,rock4,rocklong2,-:125</t> </level> ; } }//package com.nitrome.crystalmines
Section 136
//LightFlash (com.nitrome.crystalmines.LightFlash) package com.nitrome.crystalmines { import flash.display.*; public class LightFlash extends MovieClip { private var _flash:Boolean;// = false private var _flashCounter:int;// = 0 private var _flashNo:int;// = 0 public static const FLASH_TIME:int = 5; public function LightFlash(){ stop(); } public function clearFlash(){ graphics.clear(); _flashCounter = 0; } public function drawFlash(_arg1:int, _arg2:int, _arg3:int, _arg4:int){ graphics.clear(); graphics.lineStyle(2, 0xFFFFFF); graphics.beginFill(0xFFFFFF); graphics.drawRect(_arg1, _arg2, _arg3, _arg4); } public function set flash(_arg1:Boolean){ _flash = _arg1; } public function get flash():Boolean{ return (_flash); } public function set flashCounter(_arg1:int){ _flashCounter = _arg1; } public function get flashCounter():int{ return (_flashCounter); } public function set flashNo(_arg1:int){ _flashNo = _arg1; } public function get flashNo():int{ return (_flashNo); } } }//package com.nitrome.crystalmines
Section 137
//ObjectManager (com.nitrome.crystalmines.ObjectManager) package com.nitrome.crystalmines { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import flash.display.*; import Box2D.Collision.*; import flash.utils.*; import Box2D.*; public final class ObjectManager extends MovieClip { public static const PLAYER_NAME:String = "Hero1"; public static const PLAYER_NAME2:String = "Hero2"; public static const PLAYER_NAME_ARRAY = new Array(PLAYER_NAME, PLAYER_NAME2); public static const BLOCK_NAME:String = "Block"; public static const STICKY_BLOCK_NAME:String = "StickyBlock"; public static const STICKY_BLOCK_NAME1:String = "stickytile1"; public static const STICKY_BLOCK_NAME2:String = "stickytile2"; public static const STICKY_BLOCK_NAME3:String = "stickytile3"; public static const SLOPE_NAME:String = "Slope"; public static const ROTATE_BLOCK_NAME:String = "rotate_platform"; public static const THROW_OBJECT_NAME:String = "ThrowObject"; public static const ENEMY_PUSHER_NAME:String = "baddy_pusher"; public static const ENEMY_SNAIL_NAME:String = "baddy_snail"; public static const ENEMY_LICKER_NAME:String = "baddy_licker"; public static const ENEMY_RUNNER_NAME:String = "baddy_runner"; public static const ENEMY_SPIDER_NAME:String = "baddy_spider"; public static const ENEMY_EXPLOSIVE_NAME:String = "baddy_explosive_expert"; public static const ENEMY_PUKER_NAME:String = "baddy_puker"; public static const ENEMY_PUKE:String = "Puke"; public static const ENEMY_SPIDER_WEB_NAME:String = "baddy_spider_web"; public static const INSTRUCTIONS_BOARD_NAME:String = "instructions_board"; public static const PICK_UP_DOUBLE_JUMP:String = "doublejump_icon"; public static const PICK_UP_FLASH:String = "flash_icon"; public static const PICK_UP_INVINCIBLE:String = "shield_icon"; public static const LIGHT_NAME:String = "mineLight"; public static const BARREL_STAND:String = "barrelstand"; public static const BARREL_SIDE:String = "barrelside"; public static const MUSHROOM_NAME:String = "mushroom"; public static const POWERUP_NAME:String = "PowerUp"; public static const MINECART_NAME:String = "MineCart"; public static const MINECART_LONG_NAME:String = "MineCartLong"; public static const CHECK_POINT_NAME:String = "StartEnd"; public static const CRYSTAL_SMALL_NAME:String = "CrystalSmall"; public static const CRYSTAL_LARGE_NAME:String = "CrystalLarge"; public static const SMALL_BOULDER_NAME:String = "boulder1"; public static const LARGE_BOULDER_NAME:String = "boulder2"; public static const BOMB_NAME:String = "bomb1"; public static const PLAYER_ICON_NAME1:String = "IconPlayer1"; public static const PLAYER_ICON_NAME2:String = "IconPlayer2"; public static const CRATE_NAME:String = "crate"; public static const BLOCK_SAFE_GROUND:String = "safeground"; public static const BLOCK_SAFE_GROUND1:String = "safeground1"; public static const BLOCK_SAFE_GROUND2:String = "safeground2"; public static const BLOCK_SAFE_GROUND3:String = "safeground3"; public static const RAIL_GROUND1:String = "railTrack"; public static const RAIL_GROUND2:String = "rail_flat"; public static const RAIL_GROUND3:String = "rail_track"; public static const ORB_SHIELD:String = "OrbShield"; public static const FLASHER:String = "Flasher"; public static const DJUMP:String = "DJump"; public static const SLOW_NAME:String = "slow"; public static const MED_NAME:String = "med"; public static const FAST_NAME:String = "fast"; public static const CRAZY_NAME:String = "crazy"; public static const PHYSICAL_SCALE:Number = 30; public static var body:b2Body; public static var bodyDef:b2BodyDef; public static var boxDef:b2PolygonDef; public static var circleDef:b2CircleDef; public static var m_world:b2World; public static var m_iterations:int = 15; public static var _physScale:Number = 30; public static function createOpponent(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean, _arg8:String, _arg9:MovieClip):b2BodyDef{ bodyDef = new b2BodyDef(); bodyDef.position.x = (_arg2 / _physScale); bodyDef.position.y = (_arg3 / _physScale); circleDef = new b2CircleDef(); circleDef.radius = getRealWH(_arg6); if (_arg7){ circleDef.density = 0; } else { circleDef.density = 3.5; }; circleDef.friction = 0.3; circleDef.restitution = 0; circleDef.filter.categoryBits = 6; circleDef.filter.maskBits = 4; circleDef.filter.groupIndex = 2; bodyDef.userData = _arg9; bodyDef.userData.name = _arg8; bodyDef.userData.width = ((_physScale * 2) * getRealWH(_arg4)); bodyDef.userData.height = ((_physScale * 2) * getRealWH(_arg5)); bodyDef.isBullet = false; body = _arg1.CreateBody(bodyDef); body.CreateShape(circleDef); if (_arg7){ body.SetMass(new b2MassData()); } else { body.SetMassFromShapes(); }; bodyDef.userData.body = body; return (bodyDef); } public static function createPuke(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean, _arg8:String, _arg9:MovieClip):b2BodyDef{ bodyDef = new b2BodyDef(); bodyDef.position.x = (_arg2 / _physScale); bodyDef.position.y = (_arg3 / _physScale); circleDef = new b2CircleDef(); circleDef.radius = getRealWH(_arg6); if (_arg7){ circleDef.density = 0; } else { circleDef.density = 0.1; }; circleDef.friction = 10.3; circleDef.restitution = 0; circleDef.filter.categoryBits = 6; circleDef.filter.maskBits = 4; circleDef.filter.groupIndex = 2; bodyDef.userData = _arg9; bodyDef.userData.name = _arg8; bodyDef.userData.hitRadius = _arg6; bodyDef.userData.width = ((_physScale * 2) * getRealWH(_arg4)); bodyDef.userData.height = ((_physScale * 2) * getRealWH(_arg5)); bodyDef.isBullet = false; body = _arg1.CreateBody(bodyDef); body.CreateShape(circleDef); if (_arg7){ body.SetMass(new b2MassData()); } else { body.SetMassFromShapes(); }; bodyDef.userData.body = body; return (bodyDef); } public static function createSpider(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean, _arg8:String, _arg9:MovieClip):b2BodyDef{ bodyDef = new b2BodyDef(); bodyDef.position.x = (_arg2 / _physScale); bodyDef.position.y = (_arg3 / _physScale); circleDef = new b2CircleDef(); circleDef.radius = getRealWH(_arg6); if (_arg7){ circleDef.density = 0; } else { circleDef.density = 0.1; }; circleDef.friction = 10.3; circleDef.restitution = 0; circleDef.filter.categoryBits = 6; circleDef.filter.maskBits = 4; circleDef.filter.groupIndex = 2; bodyDef.userData = _arg9; bodyDef.userData.name = _arg8; bodyDef.userData.width = ((_physScale * 2) * getRealWH(_arg4)); bodyDef.userData.height = ((_physScale * 2) * getRealWH(_arg5)); bodyDef.isBullet = false; body = _arg1.CreateBody(bodyDef); body.CreateShape(circleDef); if (_arg7){ body.SetMass(new b2MassData()); } else { body.SetMassFromShapes(); }; bodyDef.userData.body = body; return (bodyDef); } public static function createBarrel(_arg1:b2World, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean, _arg8:MovieClip):b2BodyDef{ bodyDef = new b2BodyDef(); bodyDef.position.x = (_arg3 / _physScale); bodyDef.position.y = (_arg4 / _physScale); boxDef = new b2PolygonDef(); boxDef.SetAsBox(getRealWH(_arg5), getRealWH(_arg6)); boxDef.density = 1.5; boxDef.friction = 0.1; boxDef.restitution = 0; boxDef.filter.categoryBits = 6; boxDef.filter.maskBits = 4; boxDef.filter.groupIndex = 2; bodyDef.userData = _arg8; bodyDef.userData.name = _arg2; bodyDef.userData.width = ((_physScale * 2) * getRealWH(_arg5)); bodyDef.userData.height = ((_physScale * 2) * getRealWH(_arg6)); bodyDef.isBullet = false; body = _arg1.CreateBody(bodyDef); body.CreateShape(boxDef); if (_arg7){ body.SetMass(new b2MassData()); } else { body.SetMassFromShapes(); }; bodyDef.userData.body = body; return (bodyDef); } public static function createHero(_arg1:b2World, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:MovieClip):b2BodyDef{ bodyDef = new b2BodyDef(); bodyDef.position.x = (_arg3 / _physScale); bodyDef.position.y = (_arg4 / _physScale); circleDef = new b2CircleDef(); circleDef.radius = getRealWH(_arg7.hitRadius); circleDef.density = 2.5; circleDef.friction = 0; circleDef.restitution = 0; circleDef.filter.groupIndex = 2; bodyDef.userData = _arg7; bodyDef.userData.name = _arg2; bodyDef.userData.width = ((_physScale * 2) * getRealWH(_arg5)); bodyDef.userData.height = ((_physScale * 2) * getRealWH(_arg6)); bodyDef.isBullet = false; body = _arg1.CreateBody(bodyDef); body.CreateShape(circleDef); body.SetMassFromShapes(); bodyDef.userData.body = body; return (bodyDef); } public static function createCircle(_arg1:b2World, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean, _arg8:MovieClip):b2BodyDef{ bodyDef = new b2BodyDef(); bodyDef.position.x = (_arg3 / _physScale); bodyDef.position.y = (_arg4 / _physScale); circleDef = new b2CircleDef(); circleDef.radius = getRealWH(_arg5); circleDef.density = 3.5; circleDef.friction = 0.3; circleDef.restitution = 0; circleDef.filter.categoryBits = 6; circleDef.filter.maskBits = 4; circleDef.filter.groupIndex = 2; bodyDef.userData = _arg8; bodyDef.userData.name = _arg2; bodyDef.userData.width = ((_physScale * 2) * getRealWH(_arg5)); bodyDef.userData.height = ((_physScale * 2) * getRealWH(_arg6)); bodyDef.isBullet = false; body = _arg1.CreateBody(bodyDef); body.CreateShape(circleDef); if (_arg7){ body.SetMass(new b2MassData()); } else { body.SetMassFromShapes(); }; bodyDef.userData.body = body; return (bodyDef); } public static function createRectanglePlatform(_arg1:b2World, _arg2:int, _arg3:int, _arg4:Number, _arg5:Number, _arg6:int, _arg7:int, _arg8:int, _arg9:int, _arg10:int, _arg11:int, _arg12:MovieClip):b2BodyDef{ bodyDef = new b2BodyDef(); bodyDef.position.x = ((_arg2 - 200) / _physScale); bodyDef.position.y = (_arg3 / _physScale); boxDef = new b2PolygonDef(); boxDef.vertexCount = 3; boxDef.density = 1; boxDef.friction = 40.7; boxDef.filter.categoryBits = 6; boxDef.filter.maskBits = 4; boxDef.filter.groupIndex = 2; boxDef.vertices[0].Set((_arg6 / _physScale), (_arg7 / _physScale)); boxDef.vertices[1].Set((_arg8 / _physScale), (_arg9 / _physScale)); boxDef.vertices[2].Set((_arg10 / _physScale), (_arg11 / _physScale)); bodyDef.userData = _arg12; bodyDef.userData.name = SLOPE_NAME; bodyDef.userData.width = ((_physScale * 2) * getRealWH(_arg4)); bodyDef.userData.height = ((_physScale * 2) * getRealWH(_arg5)); bodyDef.position.Set((_arg2 / _physScale), (_arg3 / _physScale)); body = _arg1.CreateBody(bodyDef); body.CreateShape(boxDef); body.SetMass(new b2MassData()); bodyDef.userData.body = body; return (bodyDef); } public static function createSquarePlatform(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:b2Vec2, _arg8:String, _arg9:MovieClip):b2BodyDef{ bodyDef = new b2BodyDef(); bodyDef.position.x = (_arg2 / _physScale); bodyDef.position.y = (_arg3 / _physScale); boxDef = new b2PolygonDef(); boxDef.SetAsOrientedBox(getRealWH(_arg4), getRealWH(_arg5), _arg7, 0); boxDef.density = 1; boxDef.friction = 40.7; boxDef.restitution = 0; bodyDef.userData = _arg9; boxDef.filter.categoryBits = 6; boxDef.filter.maskBits = 4; boxDef.filter.groupIndex = 2; bodyDef.userData.name = _arg8; bodyDef.userData.width = ((_physScale * 2) * getRealWH(_arg4)); bodyDef.userData.height = ((_physScale * 2) * getRealWH(_arg5)); bodyDef.isBullet = true; bodyDef.angle = ((_arg6 * Math.PI) / 180); body = _arg1.CreateBody(bodyDef); body.CreateShape(boxDef); body.SetMass(new b2MassData()); bodyDef.userData.body = body; return (bodyDef); } public static function createRotatingPlatform(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:b2Vec2, _arg8:String, _arg9:MovieClip):b2BodyDef{ bodyDef = new b2BodyDef(); bodyDef.position.x = (_arg2 / _physScale); bodyDef.position.y = (_arg3 / _physScale); boxDef = new b2PolygonDef(); boxDef.SetAsOrientedBox(getRealWH(_arg4), getRealWH(_arg5), _arg7, 0); boxDef.density = 1000; boxDef.friction = 0.2; boxDef.restitution = 0.1; boxDef.filter.categoryBits = 6; boxDef.filter.maskBits = 4; boxDef.filter.groupIndex = 2; bodyDef.userData = _arg9; bodyDef.userData.name = _arg8; bodyDef.userData.width = ((_physScale * 2) * getRealWH(_arg4)); bodyDef.userData.height = ((_physScale * 2) * getRealWH(_arg5)); bodyDef.isBullet = true; bodyDef.angle = ((_arg6 * Math.PI) / 180); body = _arg1.CreateBody(bodyDef); body.CreateShape(boxDef); body.SetMass(new b2MassData()); bodyDef.userData.body = body; return (bodyDef); } public static function createBaddy(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Boolean, _arg9:String, _arg10:MovieClip):b2BodyDef{ bodyDef = new b2BodyDef(); bodyDef.position.x = (_arg2 / _physScale); bodyDef.position.y = (_arg3 / _physScale); boxDef = new b2PolygonDef(); boxDef.SetAsOrientedBox(getRealWH(_arg4), getRealWH(_arg5), new b2Vec2(0, getRealWH((0 + 7))), 0); if (_arg8){ boxDef.density = 0; } else { boxDef.density = 30.3; }; boxDef.friction = 0; boxDef.restitution = 0; boxDef.filter.categoryBits = 6; boxDef.filter.maskBits = 4; boxDef.filter.groupIndex = 2; bodyDef.userData = _arg10; bodyDef.userData.name = _arg9; bodyDef.userData.width = ((_physScale * 2) * getRealWH(_arg6)); bodyDef.userData.height = ((_physScale * 2) * getRealWH(_arg7)); bodyDef.isBullet = false; body = _arg1.CreateBody(bodyDef); body.CreateShape(boxDef); if (_arg8){ body.SetMass(new b2MassData()); } else { body.SetMassFromShapes(); }; bodyDef.userData.body = body; return (bodyDef); } public static function createBomb(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Boolean, _arg7:String, _arg8:MovieClip):b2BodyDef{ bodyDef = new b2BodyDef(); bodyDef.position.x = (_arg2 / _physScale); bodyDef.position.y = (_arg3 / _physScale); boxDef = new b2PolygonDef(); boxDef.SetAsBox(getRealWH(_arg4), getRealWH(_arg5)); boxDef.density = 1.5; boxDef.friction = 0.1; boxDef.restitution = 0; boxDef.filter.categoryBits = 6; boxDef.filter.maskBits = 4; boxDef.filter.groupIndex = 2; bodyDef.userData = _arg8; bodyDef.userData.name = _arg7; bodyDef.userData.width = ((_physScale * 2) * getRealWH(_arg4)); bodyDef.userData.height = ((_physScale * 2) * getRealWH(_arg5)); bodyDef.isBullet = false; body = _arg1.CreateBody(bodyDef); body.CreateShape(boxDef); if (_arg6){ body.SetMass(new b2MassData()); } else { body.SetMassFromShapes(); }; bodyDef.userData.body = body; return (bodyDef); } public static function createBox(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Boolean, _arg7:String, _arg8:MovieClip):b2BodyDef{ bodyDef = new b2BodyDef(); bodyDef.position.x = (_arg2 / _physScale); bodyDef.position.y = (_arg3 / _physScale); boxDef = new b2PolygonDef(); boxDef.SetAsBox(getRealWH(_arg4), getRealWH(_arg5)); boxDef.filter.categoryBits = 6; boxDef.filter.maskBits = 4; boxDef.filter.groupIndex = 2; boxDef.density = 1.3; boxDef.friction = 60.7; boxDef.restitution = 0; bodyDef.userData = _arg8; bodyDef.userData.name = _arg7; bodyDef.userData.width = ((_physScale * 2) * getRealWH(_arg4)); bodyDef.userData.height = ((_physScale * 2) * getRealWH(_arg5)); bodyDef.isBullet = false; body = _arg1.CreateBody(bodyDef); body.CreateShape(boxDef); if (_arg6){ body.SetMass(new b2MassData()); } else { body.SetMassFromShapes(); }; bodyDef.userData.body = body; return (bodyDef); } public static function createRailPlatform(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:b2Vec2, _arg8:String, _arg9:MovieClip, _arg10:Boolean):b2BodyDef{ bodyDef = new b2BodyDef(); bodyDef.position.x = (_arg2 / _physScale); bodyDef.position.y = (_arg3 / _physScale); boxDef = new b2PolygonDef(); boxDef.SetAsOrientedBox(getRealWH((_arg4 + 14)), getRealWH((_arg5 / 20)), _arg7, _arg6); boxDef.filter.categoryBits = 6; boxDef.filter.maskBits = 4; if (!_arg10){ boxDef.filter.groupIndex = 2; }; boxDef.density = 1000; boxDef.friction = 0.1; boxDef.restitution = 0.1; bodyDef.userData = _arg9; bodyDef.userData.name = _arg8; bodyDef.userData.width = ((_physScale * 2) * getRealWH(_arg4)); bodyDef.userData.height = ((_physScale * 2) * getRealWH(_arg5)); bodyDef.isBullet = false; bodyDef.userData.angle = ((_arg6 * Math.PI) / 180); body = _arg1.CreateBody(bodyDef); body.CreateShape(boxDef); body.SetMass(new b2MassData()); bodyDef.userData.body = body; return (bodyDef); } public static function createCheckPoint(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Boolean, _arg7:String, _arg8:MovieClip):b2BodyDef{ bodyDef = new b2BodyDef(); bodyDef.position.x = (_arg2 / _physScale); bodyDef.position.y = (_arg3 / _physScale); boxDef = new b2PolygonDef(); boxDef.SetAsBox(getRealWH(_arg4), getRealWH(_arg5)); boxDef.density = 0.1; boxDef.friction = 60.7; boxDef.restitution = 0; bodyDef.userData = _arg8; boxDef.filter.categoryBits = 6; boxDef.filter.maskBits = 4; bodyDef.userData.name = _arg7; bodyDef.userData.width = ((_physScale * 2) * getRealWH(_arg4)); bodyDef.userData.height = ((_physScale * 2) * getRealWH(_arg5)); bodyDef.isBullet = false; body = _arg1.CreateBody(bodyDef); body.CreateShape(boxDef); if (_arg6){ body.SetMass(new b2MassData()); } else { body.SetMassFromShapes(); }; bodyDef.userData.body = body; return (bodyDef); } public static function createCreate(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Boolean, _arg7:String, _arg8:MovieClip):b2BodyDef{ bodyDef = new b2BodyDef(); bodyDef.position.x = (_arg2 / _physScale); bodyDef.position.y = (_arg3 / _physScale); boxDef = new b2PolygonDef(); boxDef.SetAsBox(getRealWH(_arg4), getRealWH(_arg5)); boxDef.filter.categoryBits = 6; boxDef.filter.maskBits = 4; boxDef.filter.groupIndex = 2; boxDef.density = 1.5; boxDef.friction = 0.1; boxDef.restitution = 0; bodyDef.userData = _arg8; bodyDef.userData.name = _arg7; bodyDef.userData.width = ((_physScale * 2) * getRealWH(_arg4)); bodyDef.userData.height = ((_physScale * 2) * getRealWH(_arg5)); bodyDef.isBullet = false; body = _arg1.CreateBody(bodyDef); body.CreateShape(boxDef); if (_arg6){ body.SetMass(new b2MassData()); } else { body.SetMassFromShapes(); }; bodyDef.userData.body = body; return (bodyDef); } public static function createSmallMineCart(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Boolean, _arg7:String, _arg8:MovieClip):b2BodyDef{ var _local9:b2PolygonDef = new b2PolygonDef(); _local9.SetAsBox((20 / _physScale), (6 / _physScale)); _local9.density = 10; _local9.friction = 0; _local9.restitution = 0; _local9.filter.categoryBits = 6; _local9.filter.maskBits = 4; _local9.filter.groupIndex = 2; var _local10:b2PolygonDef = new b2PolygonDef(); _local10.SetAsOrientedBox((8.5 / _physScale), (15 / _physScale), new b2Vec2((-25.5 / _physScale), (-12 / _physScale)), 0); _local10.density = 1; _local10.friction = 0; _local10.restitution = 0; _local10.filter.categoryBits = 6; _local10.filter.maskBits = 4; _local10.filter.groupIndex = 2; var _local11:b2PolygonDef = new b2PolygonDef(); _local11.SetAsOrientedBox((8.5 / _physScale), (15 / _physScale), new b2Vec2((25.5 / _physScale), (-12 / _physScale)), 0); _local11.density = 1; _local11.friction = 0; _local11.restitution = 0; _local11.filter.categoryBits = 6; _local11.filter.maskBits = 4; _local11.filter.groupIndex = 2; circleDef = new b2CircleDef(); circleDef.radius = getRealWH(5); circleDef.density = 10; circleDef.friction = 0; circleDef.restitution = 0; circleDef.filter.categoryBits = 6; circleDef.filter.maskBits = 4; circleDef.filter.groupIndex = 2; circleDef.localPosition.Set((-29 / _physScale), (15 / _physScale)); var _local12:* = new b2CircleDef(); _local12.radius = getRealWH(5); _local12.density = 10; _local12.friction = 0; _local12.restitution = 0; _local12.filter.categoryBits = 6; _local12.filter.maskBits = 4; _local12.filter.groupIndex = 2; _local12.localPosition.Set((29 / _physScale), (15 / _physScale)); bodyDef = new b2BodyDef(); bodyDef.position.Set((_arg2 / _physScale), (_arg3 / _physScale)); bodyDef.userData = _arg8; bodyDef.userData.name = _arg7; bodyDef.userData.width = ((_physScale * 2) * getRealWH(_arg4)); bodyDef.userData.height = ((_physScale * 2) * getRealWH(_arg5)); body = _arg1.CreateBody(bodyDef); body.CreateShape(_local9); body.CreateShape(_local10); body.CreateShape(_local11); body.CreateShape(circleDef); body.CreateShape(_local12); if (_arg6){ body.SetMass(new b2MassData()); } else { body.SetMassFromShapes(); }; bodyDef.userData.body = body; return (bodyDef); } public static function createSmallMineCart22(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Boolean, _arg7:String, _arg8:MovieClip):b2BodyDef{ var _local9:b2PolygonDef = new b2PolygonDef(); _local9.SetAsBox((20 / _physScale), (6 / _physScale)); _local9.density = 5; _local9.friction = 0; _local9.restitution = 0; _local9.filter.categoryBits = 6; _local9.filter.maskBits = 4; _local9.filter.groupIndex = 2; var _local10:b2PolygonDef = new b2PolygonDef(); _local10.SetAsOrientedBox((8.5 / _physScale), (15 / _physScale), new b2Vec2((-25.5 / _physScale), (-12 / _physScale)), 0); _local10.density = 1; _local10.friction = 0; _local10.restitution = 0; _local10.filter.categoryBits = 6; _local10.filter.maskBits = 4; _local10.filter.groupIndex = 2; var _local11:b2PolygonDef = new b2PolygonDef(); _local11.SetAsOrientedBox((8.5 / _physScale), (15 / _physScale), new b2Vec2((25.5 / _physScale), (-12 / _physScale)), 0); _local11.density = 1; _local11.friction = 0; _local11.restitution = 0; _local11.filter.categoryBits = 6; _local11.filter.maskBits = 4; _local11.filter.groupIndex = 2; circleDef = new b2CircleDef(); circleDef.radius = getRealWH(5); circleDef.density = 5; circleDef.friction = 0; circleDef.restitution = 0; circleDef.filter.categoryBits = 6; circleDef.filter.maskBits = 4; circleDef.filter.groupIndex = 2; circleDef.localPosition.Set((-25 / _physScale), (15 / _physScale)); var _local12:* = new b2CircleDef(); _local12.radius = getRealWH(5); _local12.density = 5; _local12.friction = 0; _local12.restitution = 0; _local12.filter.categoryBits = 6; _local12.filter.maskBits = 4; _local12.filter.groupIndex = 2; _local12.localPosition.Set((25 / _physScale), (15 / _physScale)); var _local13:* = new b2CircleDef(); _local13.radius = getRealWH(5); _local13.density = 5; _local13.friction = 0; _local13.restitution = 0; _local13.filter.categoryBits = 6; _local13.filter.maskBits = 4; _local13.filter.groupIndex = 2; _local13.localPosition.Set((0 / _physScale), (15 / _physScale)); bodyDef = new b2BodyDef(); bodyDef.position.Set((_arg2 / _physScale), (_arg3 / _physScale)); bodyDef.userData = _arg8; bodyDef.userData.name = _arg7; bodyDef.userData.width = ((_physScale * 2) * getRealWH(_arg4)); bodyDef.userData.height = ((_physScale * 2) * getRealWH(_arg5)); body = _arg1.CreateBody(bodyDef); body.CreateShape(_local9); body.CreateShape(_local10); body.CreateShape(_local11); body.CreateShape(circleDef); body.CreateShape(_local12); body.CreateShape(_local13); if (_arg6){ body.SetMass(new b2MassData()); } else { body.SetMassFromShapes(); }; bodyDef.userData.body = body; return (bodyDef); } public static function createMineCart(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Boolean, _arg7:String, _arg8:MovieClip):b2BodyDef{ var _local9:b2PolygonDef = new b2PolygonDef(); _local9.SetAsBox((60 / _physScale), (6 / _physScale)); _local9.density = 5; _local9.friction = 0; _local9.restitution = 0; _local9.filter.categoryBits = 6; _local9.filter.maskBits = 4; _local9.filter.groupIndex = 2; var _local10:b2PolygonDef = new b2PolygonDef(); _local10.SetAsOrientedBox((8.5 / _physScale), (15 / _physScale), new b2Vec2((-50.5 / _physScale), (-12 / _physScale)), 0); _local10.density = 1; _local10.friction = 0; _local10.restitution = 0; _local10.filter.categoryBits = 6; _local10.filter.maskBits = 4; _local10.filter.groupIndex = 2; var _local11:b2PolygonDef = new b2PolygonDef(); _local11.SetAsOrientedBox((8.5 / _physScale), (15 / _physScale), new b2Vec2((50.5 / _physScale), (-12 / _physScale)), 0); _local11.density = 1; _local11.friction = 0; _local11.restitution = 0; _local11.filter.categoryBits = 6; _local11.filter.maskBits = 4; _local11.filter.groupIndex = 2; var _local12:b2PolygonDef = new b2PolygonDef(); _local12.SetAsOrientedBox((8.5 / _physScale), (15 / _physScale), new b2Vec2((0.25 / _physScale), (-12 / _physScale)), 0); _local12.density = 1; _local12.friction = 0; _local12.restitution = 0; _local12.filter.categoryBits = 6; _local12.filter.maskBits = 4; _local12.filter.groupIndex = 2; circleDef = new b2CircleDef(); circleDef.radius = getRealWH(5); circleDef.density = 5; circleDef.friction = 0; circleDef.restitution = 0; circleDef.filter.categoryBits = 6; circleDef.filter.maskBits = 4; circleDef.filter.groupIndex = 2; circleDef.localPosition.Set((-50 / _physScale), (15 / _physScale)); var _local13:* = new b2CircleDef(); _local13.radius = getRealWH(5); _local13.density = 5; _local13.friction = 0; _local13.restitution = 0; _local13.filter.categoryBits = 6; _local13.filter.maskBits = 4; _local13.filter.groupIndex = 2; _local13.localPosition.Set((50 / _physScale), (15 / _physScale)); var _local14:* = new b2CircleDef(); _local14.radius = getRealWH(5); _local14.density = 5; _local14.friction = 0; _local14.restitution = 0; _local14.filter.categoryBits = 6; _local14.filter.maskBits = 4; _local14.filter.groupIndex = 2; _local14.localPosition.Set((0 / _physScale), (15 / _physScale)); bodyDef = new b2BodyDef(); bodyDef.position.Set((_arg2 / _physScale), (_arg3 / _physScale)); bodyDef.userData = _arg8; bodyDef.userData.name = _arg7; bodyDef.userData.width = ((_physScale * 2) * getRealWH(_arg4)); bodyDef.userData.height = ((_physScale * 2) * getRealWH(_arg5)); body = _arg1.CreateBody(bodyDef); body.CreateShape(_local9); body.CreateShape(_local10); body.CreateShape(_local11); body.CreateShape(_local12); body.CreateShape(circleDef); body.CreateShape(_local13); body.CreateShape(_local14); if (_arg6){ body.SetMass(new b2MassData()); } else { body.SetMassFromShapes(); }; bodyDef.userData.body = body; return (bodyDef); } public static function createObject(_arg1:String):MovieClip{ var _local2:String = _arg1; var _local3:Class = (getDefinitionByName(_local2) as Class); return ((new (_local3) as MovieClip)); } public static function getAngleBetweenObjects(_arg1:MovieClip, _arg2:MovieClip):Number{ var _local3:* = _arg2.x; var _local4:* = _arg2.y; var _local5:Number = (_arg1.x - _local3); var _local6:Number = (_arg1.y - _local4); var _local7:Number = Math.atan2(_local6, _local5); return (((_local7 * 180) / Math.PI)); } public static function getAngleInDegreesBetweenObjects(_arg1:MovieClip, _arg2:MovieClip):Number{ var _local3:* = _arg2.x; var _local4:* = _arg2.y; var _local5:Number = (_arg1.x - _local3); var _local6:Number = (_arg1.y - _local4); var _local7:Number = Math.atan2(_local6, _local5); var _local8:Number = (360 * (_local7 / (2 * Math.PI))); return (_local8); } public static function getDistanceBetweenObjects(_arg1:MovieClip, _arg2:MovieClip):Number{ var _local3:* = _arg2.x; var _local4:* = _arg2.y; var _local5:Number = (_arg1.x - _local3); var _local6:Number = (_arg1.y - _local4); var _local7:Number = Math.sqrt((Math.pow(_local5, 2) + Math.pow(_local6, 2))); return (_local7); } public static function destroy(_arg1:MovieClip, _arg2:b2World, _arg3:WorldContainer):void{ if (_arg1 != null){ _arg2.DestroyBody(_arg1.body); _arg1.enabled = false; _arg3.removeChild(_arg1); if (PlatformMiner.GARBAGE_COLLECT){ _arg1 = null; }; }; } public static function getRealWH(_arg1:Number){ return (((_arg1 / _physScale) / 2)); } public static function getFloatyNumber(_arg1:Number, _arg2:Boolean):Number{ if ((((_arg1 == 1)) && (_arg2))){ return (2); }; if ((((_arg1 == 2)) && (_arg2))){ return (3); }; if ((((_arg1 == 3)) && (_arg2))){ return (4); }; if ((((_arg1 == 4)) && (_arg2))){ return (5); }; if ((((_arg1 == 5)) && (_arg2))){ return (4); }; if ((((_arg1 == 5)) && (!(_arg2)))){ return (4); }; if ((((_arg1 == 4)) && (!(_arg2)))){ return (3); }; if ((((_arg1 == 3)) && (!(_arg2)))){ return (2); }; if ((((_arg1 == 2)) && (!(_arg2)))){ return (1); }; if ((((_arg1 == 1)) && (!(_arg2)))){ return (0); }; if ((((_arg1 == 0)) && (!(_arg2)))){ return (-1); }; if ((((_arg1 == 0)) && (_arg2))){ return (1); }; if ((((_arg1 == -1)) && (!(_arg2)))){ return (-2); }; if ((((_arg1 == -1)) && (_arg2))){ return (0); }; if ((((_arg1 == -2)) && (!(_arg2)))){ return (-3); }; if ((((_arg1 == -2)) && (_arg2))){ return (-1); }; if ((((_arg1 == -3)) && (!(_arg2)))){ return (-4); }; if ((((_arg1 == -3)) && (_arg2))){ return (-2); }; if ((((_arg1 == -4)) && (!(_arg2)))){ return (-5); }; if ((((_arg1 == -4)) && (_arg2))){ return (-3); }; if ((((_arg1 == -5)) && (!(_arg2)))){ return (-4); }; if ((((_arg1 == -5)) && (_arg2))){ return (-4); }; return (0); } } }//package com.nitrome.crystalmines
Section 138
//ParalaxCrystal (com.nitrome.crystalmines.ParalaxCrystal) package com.nitrome.crystalmines { import flash.display.*; public dynamic class ParalaxCrystal extends MovieClip { } }//package com.nitrome.crystalmines
Section 139
//ParalaxLayer (com.nitrome.crystalmines.ParalaxLayer) package com.nitrome.crystalmines { import flash.display.*; import flash.utils.*; public class ParalaxLayer extends MovieClip { private var _img1:MovieClip; private var _img2:MovieClip; private var _scaleSpeedX:Number; private var _scaleSpeedY:Number; private var _vecX:Number; private var _vecY:Number; public function ParalaxLayer(_arg1:String, _arg2:Number, _arg3:Number):void{ _vecX = 0; _vecY = 0; var _local4:Class = (getDefinitionByName(_arg1) as Class); _img1 = (new (_local4) as MovieClip); _img2 = (new (_local4) as MovieClip); _scaleSpeedX = _arg2; _scaleSpeedY = _arg3; _img2.x = (_img1.x + _img1.width); addChild(_img1); addChild(_img2); } public function update(_arg1:Number, _arg2:Number):void{ _vecX = (_arg1 * _scaleSpeedX); _vecY = (_arg2 * _scaleSpeedY); x = (x + _vecX); y = (y + _vecY); if (x <= -(_img1.width)){ x = (x + _img1.width); }; if (x >= 0){ x = (x + -(_img1.width)); }; } public function get vecX():Number{ return (_vecX); } public function get vecY():Number{ return (_vecY); } } }//package com.nitrome.crystalmines
Section 140
//ParalaxStalac1 (com.nitrome.crystalmines.ParalaxStalac1) package com.nitrome.crystalmines { import flash.display.*; public dynamic class ParalaxStalac1 extends MovieClip { } }//package com.nitrome.crystalmines
Section 141
//ParalaxStalac2 (com.nitrome.crystalmines.ParalaxStalac2) package com.nitrome.crystalmines { import flash.display.*; public dynamic class ParalaxStalac2 extends MovieClip { } }//package com.nitrome.crystalmines
Section 142
//PlatformMiner (com.nitrome.crystalmines.PlatformMiner) package com.nitrome.crystalmines { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import flash.display.*; import flash.events.*; import Box2D.Collision.*; import com.nitrome.game.*; import flash.utils.*; public class PlatformMiner extends MovieClip { private var _gamePlayArray; private var _gameTimer:Timer; private var _levelTime:Number;// = 6000000 private var _timeLeft:Date; private var _msLeft:Number;// = 0 private var _noOfColumnsInGame:int;// = 0 private var _blockFallSpeed:int;// = 0 private var _blocksFall:Boolean;// = true public var playerArray; private var _shieldProtectorPlayer1; private var _shieldProtectorPlayer2; private var _shieldProtectorArray; private var _collisionDetection:CollisionDetection; private var _hitTypeUnderPlayer1; private var _hitTypeLeftPlayer1; private var _hitTypeRightPlayer1:b2Body; private var _hitTypeUnderPlayer2; private var _hitTypeLeftPlayer2; private var _hitTypeRightPlayer2:b2Body; private var _hitTypeUnderArray; private var _hitTypeLeftArray; private var _hitTypeRightArray; private var _playerEnemyArray; private var _playerStuckArray; private var _playerIconArray; public var playerPointsArray; private var _pickUpFloatingUpArray; private var _levelSpeedArray; private var _playerEscapedArray; private var _playerKeyResetArray; private var _playerScoreArray; private var _playerTrappedInBlockTimeArray; private var _dustArray; private var _pointWhereBlocksCollapse:int;// = 0 private var _playerMakeDustArray:Array; private var _tongue:Tongue; private var _lightFlash:LightFlash; private var _paralaxCrystal; private var _paralaxStalac1; private var _paralaxStalac2:ParalaxLayer; private var _key:KeyPoll; private var _worldContainer:WorldContainer; private var _enemyArray:Array; private var _batArray:Array; private var _batArrayAfterInPlace:Array; private var _levelObjectArrayBeforeInPlace:Array; private var _levelObjectArray:Array; private var _rollerBarrelArray:Array; private var _crystalArray:Array; private var _mushroomArray:Array; private var _bombArray:Array; private var _pukeArray:Array; private var _explosionArray:Array; private var _mineCartArray:Array; private var _checkPointArray:Array; private var _lightArray:Array; private var _doubleJumpArray:Array; private var _doneAJumpArray:Array; private var _readyToDoubleJumpArray:Array; private var _playerPowerArray; private var _playerPowerUpIconArray; public var levelComplete:Boolean;// = false public var pickUpArray:Array; private var _m_world:b2World; private var _bodyDef:b2BodyDef; private var _m_iterations:int;// = 3 private var _physScale:Number;// = 30 private var _m_timeStep:Number; var counter:int;// = 0 var escapeFromEnemyKeyPressArray; var playerEscape:Boolean;// = false private static const DEBUG_LINES_ON:Boolean = false; private static const GRAVITY:Number = 20; private static const TIMER_RATE:int = 30; private static const PARALAX_LAYER_SPEED:Number = 0.5; public static const PLATFORM_LENGTH:Number = 550; public static const SLOW_LENGTH:Number = 500; public static const SLOW_SPEED:Number = 390; public static const SLOW_BLOCK_SPEED:Number = 11; public static const MEDIUM_LENGTH:Number = 400; public static const MEDIUM_SPEED:Number = 360; public static const MEDIUM_BLOCK_SPEED:Number = 12; public static const FAST_LENGTH:Number = 400; public static const FAST_SPEED:Number = 300; public static const FAST_BLOCK_SPEED:Number = 13; public static const CRAZY_LENGTH:Number = 350; public static const CRAZY_SPEED:Number = 210; public static const CRAZY_BLOCK_SPEED:Number = 25; public static const GARBAGE_COLLECT:Boolean = false; private static const HERO_MAX_SPEED:Number = 4; private static const HERO_ACCELERATION:Number = 0.5; private static const HERO_JUMP_HEIGHT:Number = 26; private static const HERO1_KEY_LEFT = 37; private static const HERO2_KEY_LEFT = 65; private static const HERO1_KEY_RIGHT = 39; private static const HERO2_KEY_RIGHT = 68; private static const HERO1_KEY_UP = 38; private static const HERO2_KEY_UP = 87; private static const PLAYER_KEY_ARRAY = new Array(new Array(HERO1_KEY_LEFT, HERO2_KEY_LEFT), new Array(HERO1_KEY_RIGHT, HERO2_KEY_RIGHT), new Array(HERO1_KEY_UP, HERO2_KEY_UP)); public static const ENEMY_ATTACK_DISTANCE:Number = 120; public static const ENEMY_ACCELERATION:Number = 0.5; public static const ENEMY_MAX_SPEED:Number = 2; public static const STAGE_WIDTH:Number = 550; public static const STAGE_HEIGHT:Number = 400; public static var noOfPlayers:int = 1; public static var _player1; public static var _player2:MovieClip; public function PlatformMiner(){ _gamePlayArray = new Array(SLOW_LENGTH, SLOW_SPEED); playerArray = new Array(); _shieldProtectorPlayer1 = new ShieldProtector(); _shieldProtectorPlayer2 = new ShieldProtector(); _shieldProtectorArray = new Array(_shieldProtectorPlayer1, _shieldProtectorPlayer2); _hitTypeUnderArray = new Array(_hitTypeUnderPlayer1, _hitTypeUnderPlayer2); _hitTypeLeftArray = new Array(_hitTypeLeftPlayer1, _hitTypeLeftPlayer2); _hitTypeRightArray = new Array(_hitTypeRightPlayer1, _hitTypeRightPlayer2); _playerEnemyArray = new Array(new Enemy(), new Enemy()); _playerStuckArray = new Array(false, false); _playerIconArray = new Array(new IconPlayer1(), new IconPlayer2(), new Bubble(), new Bubble()); playerPointsArray = new Array(0, 0); _pickUpFloatingUpArray = new Array(); _levelSpeedArray = new Array(); _playerEscapedArray = new Array(false, false); _playerKeyResetArray = new Array(new KeysResetIcon(), new KeysResetIcon()); _playerScoreArray = new Array(new Player1Score(), new Player2Score()); _playerTrappedInBlockTimeArray = new Array(0, 0); _dustArray = new Array(new Dust(), new Dust()); _playerMakeDustArray = new Array(false, false); _enemyArray = new Array(); _batArray = new Array(); _batArrayAfterInPlace = new Array(); _levelObjectArrayBeforeInPlace = new Array(); _levelObjectArray = new Array(); _rollerBarrelArray = new Array(); _crystalArray = new Array(); _mushroomArray = new Array(); _bombArray = new Array(); _pukeArray = new Array(); _explosionArray = new Array(); _mineCartArray = new Array(); _checkPointArray = new Array(); _lightArray = new Array(); _doubleJumpArray = new Array(false, false); _doneAJumpArray = new Array(false, false); _readyToDoubleJumpArray = new Array(false, false); _playerPowerArray = new Array("", ""); _playerPowerUpIconArray = new Array(null, null); pickUpArray = new Array(); _m_timeStep = (1 / _physScale); escapeFromEnemyKeyPressArray = new Array(false, false, false, true); super(); addEventListener(Event.ADDED_TO_STAGE, init); } private function init(_arg1:Event):void{ var _local2:int; XMLData.noOfColumnsInGame = 0; removeEventListener(Event.ADDED_TO_STAGE, init); _key = new KeyPoll(this.stage); stage.quality = StageQuality.LOW; _collisionDetection = new CollisionDetection(); createWorld(); _tongue = new Tongue(); _worldContainer.addChild(_tongue); _tongue.visible = false; _lightFlash = new LightFlash(); addChild(_lightFlash); _lightFlash.visible = false; while (_local2 < playerArray.length) { _worldContainer.addChild(_dustArray[_local2]); _dustArray[_local2].stop(); _dustArray[_local2].visible = false; _local2++; }; box2dUpdate(); update(); checkForLevelSpeedCollisions(); Block.speed = SLOW_BLOCK_SPEED; XMLData.getSpeed(_m_world, _worldContainer, _gamePlayArray, (playerArray[0].x + (stage.stageWidth / 2)), playerArray, false); XMLData.getXML(_m_world, _worldContainer, playerArray[0].x, (_gamePlayArray[0] / 2), _levelObjectArray, _mushroomArray, _crystalArray, _bombArray, _mineCartArray, _enemyArray, pickUpArray, _checkPointArray, _lightArray, _levelSpeedArray); _noOfColumnsInGame = XMLData.noOfColumnsInGame; XMLData.addExtraCrystal(_m_world, _worldContainer, _crystalArray); _pointWhereBlocksCollapse = ((_noOfColumnsInGame * 32) - _gamePlayArray[0]); if (noOfPlayers == 2){ addChild(_playerIconArray[2]); addChild(_playerIconArray[3]); addChild(_playerIconArray[0]); addChild(_playerIconArray[1]); }; NitromeGame.sound_manager.playMusic(SoundManager.GAME); } private function createWorld():void{ var _local7:*; var _local8:*; var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(10000, 10000); var _local2:b2Vec2 = new b2Vec2(0, GRAVITY); var _local3:Boolean; _m_world = new b2World(_local1, _local2, _local3); var _local4:* = new b2ContactListener(); _m_world.SetContactListener(_local4); _worldContainer = new WorldContainer(); if (DEBUG_LINES_ON){ Debug.switchDebugOn(_m_world, _worldContainer, 30, 1, 0.5, 1); }; XMLData.getSpeed(_m_world, _worldContainer, _gamePlayArray, 0, playerArray, true); _paralaxCrystal = new ParalaxLayer("com.nitrome.crystalmines.ParalaxCrystal", PARALAX_LAYER_SPEED, 0); _paralaxStalac1 = new ParalaxLayer("com.nitrome.crystalmines.ParalaxStalac1", PARALAX_LAYER_SPEED, 0); _paralaxStalac2 = new ParalaxLayer("com.nitrome.crystalmines.ParalaxStalac2", PARALAX_LAYER_SPEED, 0); setStageFocus(); _shieldProtectorArray[0] = _shieldProtectorPlayer1; _worldContainer.addChild(_shieldProtectorArray[0]); _shieldProtectorArray[0].visible = false; if (noOfPlayers == 2){ _shieldProtectorArray[1] = _shieldProtectorPlayer2; }; if (noOfPlayers == 2){ _worldContainer.addChild(_shieldProtectorArray[1]); }; if (noOfPlayers == 2){ _shieldProtectorArray[1].visible = false; }; addChild(_paralaxCrystal); addChild(_paralaxStalac2); addChild(_paralaxStalac1); _paralaxCrystal.y = 274; _paralaxStalac1.y = 0; _paralaxStalac2.y = 0; addChild(_worldContainer); var _local5:* = new Points(); _local5.x = 10; _local5.y = 25; addChild(_local5); var _local6:* = ObjectManager.createObject(ObjectManager.CRYSTAL_SMALL_NAME); _local6.setPosition((Points.POINTS_CRYSTAL_START_POINT_PLAYER1_X + 10), Points.POINTS_CRYSTAL_START_POINT_PLAYER1_Y); addChild(_local6); addChild(_playerScoreArray[0]); _playerScoreArray[0].score.text = playerPointsArray[0]; _playerScoreArray[0].x = 30; _playerScoreArray[0].y = (Points.POINTS_CRYSTAL_START_POINT_PLAYER1_Y - 10); if (noOfPlayers == 2){ _local7 = new Points(); addChild(_local7); _local7.scaleX = (_local7.scaleX * -1); _local7.x = (stage.stageWidth - 10); _local7.y = 25; _local8 = ObjectManager.createObject(ObjectManager.CRYSTAL_SMALL_NAME); _local8.setPosition((Points.POINTS_CRYSTAL_START_POINT_PLAYER2_X - 10), Points.POINTS_CRYSTAL_START_POINT_PLAYER2_Y); addChild(_local8); addChild(_playerScoreArray[1]); _playerScoreArray[1].score.text = playerPointsArray[1]; _playerScoreArray[1].y = (Points.POINTS_CRYSTAL_START_POINT_PLAYER1_Y - 10); _playerScoreArray[1].x = (((stage.stageWidth - 20) - _playerScoreArray[1].width) - 10); }; } public function setStageFocus():void{ this.stage.focus = this.stage; } public function getKeys(_arg1:Event):void{ var _local2:int; while (_local2 < playerArray.length) { if ((((playerArray[_local2].body.GetLinearVelocity().y == 0)) && ((playerArray[_local2].body.GetLinearVelocity().x == 0)))){ playerArray[_local2].body.SetMassFromShapes(); }; playerArray[_local2].run = false; playerArray[_local2].still = true; if (((((((((_key.isDown(PLAYER_KEY_ARRAY[1][_local2])) && ((_hitTypeRightArray[_local2] == null)))) && (!(playerArray[_local2].blocked)))) && (!(playerArray[_local2].dance)))) && (!(playerArray[_local2].swallowed)))){ if (!playerArray[_local2].inMineCart){ playerArray[_local2].run = true; }; if (playerArray[_local2].inMineCart){ accelerate(true, (HERO_ACCELERATION * 2), (HERO_MAX_SPEED * 2), playerArray[_local2]); } else { if (((playerArray[_local2].attacked) || ((_playerStuckArray[_local2] == true)))){ accelerate(true, (HERO_ACCELERATION / 4), (HERO_MAX_SPEED / 4), playerArray[_local2]); } else { accelerate(true, HERO_ACCELERATION, HERO_MAX_SPEED, playerArray[_local2]); }; }; } else { if (((((((((_key.isDown(PLAYER_KEY_ARRAY[0][_local2])) && ((_hitTypeLeftArray[_local2] == null)))) && (!(playerArray[_local2].blocked)))) && (!(playerArray[_local2].dance)))) && (!(playerArray[_local2].swallowed)))){ if (!playerArray[_local2].inMineCart){ playerArray[_local2].run = true; }; if (playerArray[_local2].inMineCart){ accelerate(false, -((HERO_ACCELERATION * 2)), (HERO_MAX_SPEED * 2), playerArray[_local2]); } else { if (((playerArray[_local2].attacked) || ((_playerStuckArray[_local2] == true)))){ accelerate(false, (-(HERO_ACCELERATION) / 4), (HERO_MAX_SPEED / 4), playerArray[_local2]); } else { accelerate(false, -(HERO_ACCELERATION), HERO_MAX_SPEED, playerArray[_local2]); }; }; }; }; if (((_key.isDown(PLAYER_KEY_ARRAY[2][_local2])) && (!(playerArray[_local2].dance)))){ if (((!((_hitTypeUnderArray[_local2] == null))) && (!((_hitTypeUnderArray[_local2].m_userData == playerArray[_local2]))))){ if (((((!(playerArray[_local2].jump)) && (!(playerArray[_local2].grabbed)))) && (!(playerArray[_local2].swallowed)))){ if (_playerStuckArray[_local2] == false){ NitromeGame.sound_manager.playSound("jumpSnd"); jump(-(HERO_JUMP_HEIGHT), _local2); } else { playerArray[_local2].stickyJump = true; }; }; } else { if (_hitTypeUnderArray[_local2] == null){ if ((((((((_readyToDoubleJumpArray[_local2] == true)) && (!(playerArray[_local2].grabbed)))) && (!(playerArray[_local2].swallowed)))) && (playerArray[_local2].jump))){ _doubleJumpArray[_local2] = false; _readyToDoubleJumpArray[_local2] = false; if (_playerStuckArray[_local2] == false){ NitromeGame.sound_manager.playSound("jumpSnd"); propelSprite(playerArray[_local2], playerArray[_local2].x, playerArray[_local2].y, 0, -270); } else { playerArray[_local2].stickyJump = true; }; }; }; }; }; if (((!((_hitTypeUnderArray[_local2] == null))) && ((_playerPowerArray[_local2] == ObjectManager.PICK_UP_DOUBLE_JUMP)))){ _readyToDoubleJumpArray[_local2] = false; _doubleJumpArray[_local2] = true; }; if (((((!(_key.isDown(PLAYER_KEY_ARRAY[2][_local2]))) && ((_doubleJumpArray[_local2] == true)))) && ((((_hitTypeUnderArray[_local2] == null)) || ((_hitTypeUnderArray[_local2].m_userData == playerArray[_local2])))))){ _readyToDoubleJumpArray[_local2] = true; }; if (((!(_key.isDown(PLAYER_KEY_ARRAY[0][_local2]))) && (((!(_key.isDown(PLAYER_KEY_ARRAY[1][_local2]))) && (!(playerArray[_local2].swallowed)))))){ decelerate(HERO_ACCELERATION, _local2); }; _local2++; }; } public function update():void{ _blockFallSpeed = (_blockFallSpeed + TIMER_RATE); if (_blockFallSpeed >= _gamePlayArray[1]){ _blockFallSpeed = 0; stageCollapseTimer(null); }; getKeys(null); var _local1:int; while (_local1 < playerArray.length) { playerArray[_local1].body.m_sweep.a = 0; _local1++; }; var _local2:int; while (_local2 < playerArray.length) { if (((!((_hitTypeUnderArray[_local2] == null))) && (!((_hitTypeUnderArray[_local2].m_userData == playerArray[_local2]))))){ playerArray[_local2].jump = false; } else { playerArray[_local2].jump = true; }; _local2++; }; stopPlayerSlide(); var _local3:int; while (_local3 < playerArray.length) { if (playerArray[_local3].body.m_linearVelocity.y >= -4){ _hitTypeUnderPlayer1 = _collisionDetection.getBodyAtPoint(_m_world, playerArray[_local3].x, (playerArray[_local3].y + ((playerArray[_local3].height / 2) + 5)), true, ObjectManager.CHECK_POINT_NAME, ObjectManager.RAIL_GROUND1); } else { _hitTypeUnderPlayer1 = null; }; if ((((_hitTypeUnderArray[_local3] == null)) && (!((_hitTypeUnderPlayer1 == null))))){ _playerMakeDustArray[_local3] = true; }; _hitTypeUnderArray[_local3] = _hitTypeUnderPlayer1; _hitTypeLeftArray[_local3] = _collisionDetection.getBodyAtPoint(_m_world, ((playerArray[_local3].x - (playerArray[_local3].hitRadius / 2)) - 2), (playerArray[_local3].y + 7), true, ObjectManager.CHECK_POINT_NAME, ObjectManager.RAIL_GROUND1); _hitTypeRightArray[_local3] = _collisionDetection.getBodyAtPoint(_m_world, ((playerArray[_local3].x + (playerArray[_local3].hitRadius / 2)) + 2), (playerArray[_local3].y + 7), true, ObjectManager.CHECK_POINT_NAME, ObjectManager.RAIL_GROUND1); _local3++; }; var _local4:int; while (_local4 < playerArray.length) { if (((!(playerArray[_local4].jump)) && ((_playerMakeDustArray[_local4] == true)))){ makeDust(playerArray[_local4].x, (playerArray[_local4].y + 10), _local4); }; _local4++; }; var _local5:int; while (_local5 < playerArray.length) { if (((!((_hitTypeUnderArray[_local5] == null))) && ((_hitTypeUnderArray[_local5].m_userData.name == ObjectManager.STICKY_BLOCK_NAME)))){ _playerStuckArray[_local5] = true; } else { _playerStuckArray[_local5] = false; }; _local5++; }; box2dUpdate(); var _local6:int; while (_local6 < playerArray.length) { playerArray[_local6].update(playerArray[_local6].body.m_linearVelocity.x, playerArray[_local6].body.m_linearVelocity.y); _local6++; }; centerScreen(noOfPlayers); _paralaxCrystal.update(_worldContainer.vecX, _worldContainer.vecY); _paralaxStalac1.update(_worldContainer.vecX, _worldContainer.vecY); _paralaxStalac2.update(_worldContainer.vecX, _worldContainer.vecY); blocksMoveIntoPlace(); moveBats(); moveEnemies(); checkForLights(); var _local7:int; while (_local7 < playerArray.length) { checkForCrystals(_local7); _local7++; }; var _local8:int; while (_local8 < playerArray.length) { checkForMushrooms(_local8); _local8++; }; var _local9:int; while (_local9 < _bombArray.length) { _bombArray[_local9].update(); _local9++; }; bombBlowCheck(); removeExplosions(); removePuke(); bounceOffPlayer(); checkPlayerOffScreen(); checkForMineCarts(); checkForPickUps(); updateShield(); checkForShieldAndEnemyCollisions(); checkForCheckPointCollisions(); checkForLightFlash(); checkForDustRemoval(); checkForLevelSpeedCollisions(); if ((((noOfPlayers == 1)) && (!(playerArray[0].finished)))){ if (_collisionDetection.checkOffSideScreenObjects(playerArray[0], (_pointWhereBlocksCollapse - stage.stageWidth))){ playerArray[0].dead = true; }; }; checkForPlayerTrappedInWall(); } private function checkForLevelSpeedCollisions():Boolean{ var _local2:int; var _local1:int; while (_local1 < playerArray.length) { _local2 = 0; while (_local2 < _levelSpeedArray.length) { if (playerArray[_local1].x > _levelSpeedArray[_local2].x){ if (_levelSpeedArray[_local2].name == ObjectManager.FAST_NAME){ _gamePlayArray[0] = FAST_LENGTH; _gamePlayArray[1] = FAST_SPEED; Block.speed = FAST_BLOCK_SPEED; } else { if (_levelSpeedArray[_local2].name == ObjectManager.MED_NAME){ _gamePlayArray[0] = MEDIUM_LENGTH; _gamePlayArray[1] = MEDIUM_SPEED; Block.speed = MEDIUM_BLOCK_SPEED; } else { if (_levelSpeedArray[_local2].name == ObjectManager.CRAZY_NAME){ _gamePlayArray[0] = CRAZY_LENGTH; _gamePlayArray[1] = CRAZY_SPEED; Block.speed = CRAZY_BLOCK_SPEED; } else { if (_levelSpeedArray[_local2].name == ObjectManager.SLOW_NAME){ _gamePlayArray[0] = SLOW_LENGTH; _gamePlayArray[1] = SLOW_SPEED; Block.speed = SLOW_BLOCK_SPEED; }; }; }; }; _worldContainer.removeChild(_levelSpeedArray[_local2]); if (GARBAGE_COLLECT){ _levelSpeedArray[_local2] = null; }; _levelSpeedArray.splice(_local2, 1); return (true); }; _local2++; }; _local1++; }; return (false); } private function checkForLightFlash():void{ if (_lightFlash.flash){ _lightFlash.flashCounter++; if (_lightFlash.flashCounter > LightFlash.FLASH_TIME){ _lightFlash.visible = false; _lightFlash.clearFlash(); _lightFlash.flash = false; addPowerUpIcon(_lightFlash.flashNo); removeChild(_playerPowerUpIconArray[_lightFlash.flashNo]); _playerPowerUpIconArray[_lightFlash.flashNo] = null; }; }; } private function checkForCheckPointCollisions():void{ var _local2:int; var _local3:*; var _local1:int; while (_local1 < playerArray.length) { _local2 = 0; while (_local2 < _checkPointArray.length) { _worldContainer.setChildIndex(_checkPointArray[_local2], 0); _local3 = _checkPointArray[_local2].extraData; if (_local2 == 1){ if ((((ObjectManager.getDistanceBetweenObjects(playerArray[_local1], _checkPointArray[_local2]) < 200)) && (!((_hitTypeUnderArray[_local1] == null))))){ if (((!((_hitTypeUnderArray[_local1].m_userData == playerArray[_local1]))) && ((_hitTypeUnderArray[_local1].m_userData.name == ObjectManager.BLOCK_SAFE_GROUND)))){ playerArray[_local1].dance = true; if (!playerArray[_local1].finished){ if (playerArray[_local1].x < _checkPointArray[_local2].x){ accelerate(true, HERO_ACCELERATION, (HERO_MAX_SPEED / 2), playerArray[_local1]); } else { if (playerArray[_local1].x > _checkPointArray[_local2].x){ accelerate(false, -(HERO_ACCELERATION), (HERO_MAX_SPEED / 2), playerArray[_local1]); }; }; }; if (noOfPlayers == 2){ if (_local1 == 1){ if (((playerArray[0].finished) && (!(playerArray[1].finished)))){ playerArray[1].finished = true; _local3.timer = 0; }; }; if (_local1 == 0){ if (((playerArray[1].finished) && (!(playerArray[0].finished)))){ playerArray[0].finished = true; _local3.timer = 0; }; }; }; if (ObjectManager.getDistanceBetweenObjects(playerArray[_local1], _checkPointArray[_local2]) < 20){ playerArray[_local1].finished = true; }; }; }; }; if ((((ObjectManager.getDistanceBetweenObjects(playerArray[_local1], _checkPointArray[_local2]) < 20)) || ((_local2 == 0)))){ if (((!(_local3.on)) && ((_local2 == 1)))){ NitromeGame.sound_manager.playSound("endSnd"); }; _checkPointArray[_local2].gotoAndStop(2); _local3.on = true; }; if (_local3.on){ _local3.update(); if ((((noOfPlayers == 1)) && ((_local2 == 1)))){ _local3.timer++; if (_local3.timer > 30){ levelComplete = true; }; } else { if ((((noOfPlayers == 2)) && ((_local2 == 1)))){ _local3.timer++; if (_local3.timer > 30){ if (((playerArray[0].finished) && (playerArray[1].finished))){ levelComplete = true; } else { if (((playerArray[0].finished) && (playerArray[1].dead))){ levelComplete = true; } else { if (((playerArray[1].finished) && (playerArray[0].dead))){ levelComplete = true; }; }; }; }; }; }; }; _local2++; }; _local1++; }; } private function checkForShieldAndEnemyCollisions():void{ var _local2:int; var _local1:int; while (_local1 < playerArray.length) { _local2 = 0; while (_local2 < _enemyArray.length) { if (_playerPowerArray[_local1] == ObjectManager.PICK_UP_INVINCIBLE){ if (ObjectManager.getDistanceBetweenObjects(playerArray[_local1], _enemyArray[_local2]) < 60){ if (((!(_enemyArray[_local2].hit)) && ((_shieldProtectorArray[_local1].noOfHits < 4)))){ NitromeGame.sound_manager.playSound("hitSnd"); _enemyArray[_local2].hit = true; _shieldProtectorArray[_local1].hit(); if (_shieldProtectorArray[_local1].noOfHits == 3){ _playerPowerArray[_local1] = ""; addPowerUpIcon(_local1); _shieldProtectorArray[_local1].noOfHits = 0; }; }; }; }; _local2++; }; _local1++; }; } private function updateShield():void{ var _local2:int; var _local1:int; while (_local1 < playerArray.length) { if (_playerPowerArray[_local1] == ObjectManager.PICK_UP_INVINCIBLE){ _local2 = ((_worldContainer.numChildren - 1) - _local1); if (_worldContainer.getChildIndex(_shieldProtectorArray[_local1]) != _local2){ _worldContainer.setChildIndex(_shieldProtectorArray[_local1], _local2); }; _shieldProtectorArray[_local1].update(playerArray[_local1].x, playerArray[_local1].y); }; _local1++; }; } private function checkForPickUps():void{ var _local4:MovieClip; var _local5:int; var _local6:*; var _local1:int; while (_local1 < _pickUpFloatingUpArray.length) { if (_pickUpFloatingUpArray[_local1].currentFrame > 6){ _worldContainer.removeChild(_pickUpFloatingUpArray[_local1]); if (GARBAGE_COLLECT){ _pickUpFloatingUpArray[_local1] = null; }; _pickUpFloatingUpArray.splice(_local1, 1); break; }; _local1++; }; var _local2:int; while (_local2 < playerArray.length) { if (((!((_playerPowerArray[_local2] == ""))) && (playerArray[_local2].dead))){ _playerPowerArray[_local2] = ""; addPowerUpIcon(_local2); }; _local2++; }; var _local3:int; while (_local3 < pickUpArray.length) { _local4 = pickUpArray[_local3]; if (!pickUpArray[_local3].enabled){ if (GARBAGE_COLLECT){ pickUpArray[_local3] = null; }; pickUpArray.splice(_local3, 1); break; }; _local5 = 0; while (_local5 < playerArray.length) { if ((((_enemyArray.length == 0)) && ((_playerPowerArray[_local5] == ObjectManager.PICK_UP_FLASH)))){ _playerPowerArray[_local5] = ""; addPowerUpIcon(_local5); }; if (ObjectManager.getDistanceBetweenObjects(_local4, playerArray[_local5]) < 50){ _local6 = ObjectManager.createObject(ObjectManager.DJUMP); _shieldProtectorArray[_local5].visible = false; _playerPowerArray[_local5] = _local4.name; addPowerUpIcon(_local5); if (_playerPowerArray[_local5] == ObjectManager.PICK_UP_INVINCIBLE){ NitromeGame.sound_manager.playSound("powerUp"); _shieldProtectorArray[_local5].visible = true; _shieldProtectorArray[_local5].renew(); _readyToDoubleJumpArray[_local5] = false; _local6 = ObjectManager.createObject(ObjectManager.ORB_SHIELD); } else { if (_playerPowerArray[_local5] == ObjectManager.PICK_UP_FLASH){ _readyToDoubleJumpArray[_local5] = false; _lightFlash.flash = true; NitromeGame.sound_manager.playSound("pickUpExplode"); _lightFlash.visible = true; _lightFlash.drawFlash(0, 0, stage.stageWidth, stage.stageHeight); setChildIndex(_lightFlash, (numChildren - 1)); _lightFlash.flashNo = _local5; _local6 = ObjectManager.createObject(ObjectManager.FLASHER); } else { NitromeGame.sound_manager.playSound("powerUp"); }; }; _worldContainer.addChild(_local6); _local6.x = _local4.x; _local6.y = _local4.y; _pickUpFloatingUpArray.push(_local6); _local6.gotoAndPlay(1); ObjectManager.destroy(_local4, _m_world, _worldContainer); if (GARBAGE_COLLECT){ pickUpArray[_local3] = null; }; pickUpArray.splice(_local3, 1); break; }; _local5++; }; _local3++; }; } private function checkForMineCarts():void{ var _local2:int; playerArray[0].inMineCart = false; if (noOfPlayers == 2){ playerArray[1].inMineCart = false; }; var _local1:int; while (_local1 < _mineCartArray.length) { _local2 = 0; while (_local2 < playerArray.length) { if (ObjectManager.getDistanceBetweenObjects(playerArray[_local2], _mineCartArray[_local1]) < 50){ if (((((!((_hitTypeUnderArray[_local2] == null))) && (!((_hitTypeUnderArray[_local2].m_userData == playerArray[_local2]))))) && ((_hitTypeUnderArray[_local2].m_userData.name == ObjectManager.MINECART_NAME)))){ playerArray[_local2].inMineCart = true; if (_mineCartArray[_local1].body.m_linearVelocity.x > 0.5){ accelerateMineCart(true, 0.2, 4, _mineCartArray[_local1]); } else { if (_mineCartArray[_local1].body.m_linearVelocity.x < -0.5){ accelerateMineCart(true, -0.2, 4, _mineCartArray[_local1]); }; }; }; }; _local2++; }; if (((!(playerArray[0].inMineCart)) && ((noOfPlayers == 1)))){ if (_mineCartArray[_local1].body.m_linearVelocity.x > 0.8){ accelerateMineCart(true, 0.2, 1.5, _mineCartArray[_local1]); }; if (_mineCartArray[_local1].body.m_linearVelocity.x < -0.8){ accelerateMineCart(true, -0.2, 1.5, _mineCartArray[_local1]); }; }; if ((((((noOfPlayers == 2)) && (!(playerArray[0].inMineCart)))) && (!(playerArray[1].inMineCart)))){ if (_mineCartArray[_local1].body.m_linearVelocity.x > 0.8){ accelerateMineCart(true, 0.2, 1.5, _mineCartArray[_local1]); }; if (_mineCartArray[_local1].body.m_linearVelocity.x < -0.8){ accelerateMineCart(true, -0.2, 1.5, _mineCartArray[_local1]); }; }; _local1++; }; } private function box2dUpdate():void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local1:b2Body = _m_world.m_bodyList; while (_local1) { if ((_local1.m_userData is Sprite)){ if ((((_local1.m_userData.name == ObjectManager.BLOCK_NAME)) || ((_local1.m_userData.name == ObjectManager.SLOPE_NAME)))){ if (_local1.m_userData.inPlace == false){ if (((_local1.m_userData.floatyUp) && ((_local1.m_userData.floatyNo == 5)))){ _local1.m_userData.floatyUp = false; }; if (((!(_local1.m_userData.floatyUp)) && ((_local1.m_userData.floatyNo == -5)))){ _local1.m_userData.floatyUp = true; }; _local1.m_userData.floatyNo = ObjectManager.getFloatyNumber(_local1.m_userData.floatyNo, _local1.m_userData.floatyUp); _local1.m_userData.y = ((_local1.GetPosition().y * _physScale) + _local1.m_userData.floatyNo); _local1.m_userData.x = (_local1.GetPosition().x * _physScale); } else { _local1.m_userData.x = (_local1.GetPosition().x * _physScale); _local1.m_userData.y = (_local1.GetPosition().y * _physScale); }; } else { if (_local1.m_userData.name == ObjectManager.ROTATE_BLOCK_NAME){ _local1.m_userData.x = (_local1.GetPosition().x * _physScale); _local1.m_userData.y = (_local1.GetPosition().y * _physScale); if (((_local1.m_userData.blockRotationDirection) && (!(_local1.m_userData.blockRotationTimerStart)))){ if ((((_local1.m_userData.ang < 4)) && (_local1.m_userData.blockRotationDirection))){ _local1.m_userData.body.SetXForm(new b2Vec2(_local1.m_userData.body.GetPosition().x, _local1.m_userData.body.GetPosition().y), (_local1.m_userData.ang = (_local1.m_userData.ang + 0.1))); if (((!((_hitTypeUnderArray[0] == null))) && ((_hitTypeUnderArray[0].m_userData.name == ObjectManager.ROTATE_BLOCK_NAME)))){ playerArray[0].body.WakeUp(); }; if (((!((_hitTypeUnderArray[1] == null))) && ((_hitTypeUnderArray[1].m_userData.name == ObjectManager.ROTATE_BLOCK_NAME)))){ playerArray[1].body.WakeUp(); }; }; if ((((_local1.m_userData.ang > 3.1)) && (_local1.m_userData.blockRotationDirection))){ _local1.m_userData.body.SetXForm(new b2Vec2(_local1.m_userData.body.GetPosition().x, _local1.m_userData.body.GetPosition().y), 3.144444); _local1.m_userData.blockRotationDirection = false; _local1.m_userData.blockRotationTimerStart = true; }; }; if (_local1.m_userData.blockRotationTimerStart){ _local1.m_userData.blockRotationTimer++; if (_local1.m_userData.blockRotationTimer > 50){ _local1.m_userData.blockRotationTimerStart = false; _local1.m_userData.blockRotationTimer = 0; }; }; if (((!(_local1.m_userData.blockRotationDirection)) && (!(_local1.m_userData.blockRotationTimerStart)))){ if ((((_local1.m_userData.ang > -1)) && (!(_local1.m_userData.blockRotationDirection)))){ _local1.m_userData.body.SetXForm(new b2Vec2(_local1.m_userData.body.GetPosition().x, _local1.m_userData.body.GetPosition().y), (_local1.m_userData.ang = (_local1.m_userData.ang - 0.1))); if (((!((_hitTypeUnderArray[0] == null))) && ((_hitTypeUnderArray[0].m_userData.name == ObjectManager.ROTATE_BLOCK_NAME)))){ playerArray[0].body.WakeUp(); }; if (((!((_hitTypeUnderArray[1] == null))) && ((_hitTypeUnderArray[1].m_userData.name == ObjectManager.ROTATE_BLOCK_NAME)))){ playerArray[1].body.WakeUp(); }; }; if ((((_local1.m_userData.ang < 0)) && (!(_local1.m_userData.blockRotationDirection)))){ _local1.m_userData.ang = 0; _local1.m_userData.blockRotationDirection = true; _local1.m_userData.blockRotationTimerStart = true; }; }; } else { if ((((((noOfPlayers == 2)) && ((_local1.m_userData.name == ObjectManager.PLAYER_NAME2)))) && (_local1.m_userData.dead))){ _local1.m_userData.body.SetMass(new b2MassData()); _local2 = (playerArray[0].x - playerArray[1].x); if ((((_local2 > 11)) || ((_local2 < -11)))){ _local3 = playerArray[1].x; _local4 = playerArray[0].x; if (_local3 > _local4){ _local3 = (_local3 - 20); }; if (_local3 < _local4){ _local3 = (_local3 + 20); }; _local1.m_userData.body.SetXForm(new b2Vec2((_local3 / _physScale), (-100 / _physScale)), 0); } else { _local1.m_userData.body.SetXForm(new b2Vec2((playerArray[0].x / _physScale), (-100 / _physScale)), 0); }; } else { if ((((((noOfPlayers == 2)) && ((_local1.m_userData.name == ObjectManager.PLAYER_NAME)))) && (_local1.m_userData.dead))){ _local1.m_userData.body.SetMass(new b2MassData()); _local5 = (playerArray[0].x - playerArray[1].x); if ((((_local5 > 4)) || ((_local5 < -4)))){ _local6 = playerArray[0].x; _local7 = playerArray[1].x; if (_local6 > _local7){ _local6 = (_local6 - 6); }; if (_local6 < _local7){ _local6 = (_local6 + 6); }; _local1.m_userData.body.SetXForm(new b2Vec2((_local6 / _physScale), (-100 / _physScale)), 0); } else { _local1.m_userData.body.SetXForm(new b2Vec2((playerArray[1].x / _physScale), (-100 / _physScale)), 0); }; }; }; _local1.m_userData.x = (_local1.GetPosition().x * _physScale); _local1.m_userData.y = (_local1.GetPosition().y * _physScale); if ((((_local1.m_userData.name == ObjectManager.PLAYER_NAME)) || ((_local1.m_userData.name == ObjectManager.PLAYER_NAME2)))){ _local1.m_userData.y = ((_local1.GetPosition().y * _physScale) - 5); }; }; }; _local1.m_userData.rotation = (_local1.GetAngle() * (180 / Math.PI)); if (_collisionDetection.checkOffBottomScreenObjects(_local1.m_userData, stage.stageHeight)){ if ((((_local1.m_userData.name == ObjectManager.PLAYER_NAME)) || ((_local1.m_userData.name == ObjectManager.PLAYER_NAME2)))){ if (!_local1.m_userData.dead){ NitromeGame.sound_manager.playSound("dieSnd"); }; _local1.m_userData.dead = true; } else { if (_collisionDetection.checkOffBottomScreenObjects(_local1.m_userData, (stage.stageHeight + 400))){ ObjectManager.destroy(_local1.m_userData, _m_world, _worldContainer); } else { if (_collisionDetection.checkOffSideScreenObjects(_local1.m_userData, (_pointWhereBlocksCollapse - 100))){ ObjectManager.destroy(_local1.m_userData, _m_world, _worldContainer); }; }; }; }; }; _local1 = _local1.m_next; }; _m_world.Step(_m_timeStep, _m_iterations); } public function blocksMoveIntoPlace():void{ var _local2:b2Vec2; var _local3:Number; var _local4:Number; var _local1:int; while (_local1 < _levelObjectArrayBeforeInPlace.length) { _local2 = new b2Vec2(); _local3 = (_levelObjectArrayBeforeInPlace[_local1].body.GetPosition().x * _physScale); _local4 = (_levelObjectArrayBeforeInPlace[_local1].body.GetPosition().y * _physScale); _levelObjectArrayBeforeInPlace[_local1].setMovement(_local3, _local4); _local3 = (_local3 + _levelObjectArrayBeforeInPlace[_local1].vecX); _local4 = (_local4 + _levelObjectArrayBeforeInPlace[_local1].vecY); _local2.Set((_local3 / _physScale), (_local4 / _physScale)); if (Math.floor(_levelObjectArrayBeforeInPlace[_local1].dist) < 20){ _local2.x = (_levelObjectArrayBeforeInPlace[_local1].gamePositionX / _physScale); _local2.y = (_levelObjectArrayBeforeInPlace[_local1].gamePositionY / _physScale); _levelObjectArray.push(_levelObjectArrayBeforeInPlace[_local1]); _levelObjectArrayBeforeInPlace[_local1].inPlace = true; if ((((((((((((_levelObjectArrayBeforeInPlace[_local1].name == ObjectManager.CRATE_NAME)) || ((_levelObjectArrayBeforeInPlace[_local1].name == ObjectManager.BARREL_SIDE)))) || ((_levelObjectArrayBeforeInPlace[_local1].name == ObjectManager.BARREL_STAND)))) || ((_levelObjectArrayBeforeInPlace[_local1].name == ObjectManager.MINECART_NAME)))) || ((_levelObjectArrayBeforeInPlace[_local1].name == ObjectManager.SMALL_BOULDER_NAME)))) || ((_levelObjectArrayBeforeInPlace[_local1].name == ObjectManager.LARGE_BOULDER_NAME)))){ _levelObjectArrayBeforeInPlace[_local1].body.SetMassFromShapes(); }; _batArray[_local1].setPosition(_levelObjectArrayBeforeInPlace[_local1].x, (_levelObjectArrayBeforeInPlace[_local1].y - (_levelObjectArrayBeforeInPlace[_local1].height / 2))); }; _levelObjectArrayBeforeInPlace[_local1].body.SetXForm(_local2, 0); _batArray[_local1].setPosition(_levelObjectArrayBeforeInPlace[_local1].x, (_levelObjectArrayBeforeInPlace[_local1].y - (_levelObjectArrayBeforeInPlace[_local1].height / 2))); if (Math.floor(_levelObjectArrayBeforeInPlace[_local1].dist) < 6){ if (GARBAGE_COLLECT){ _levelObjectArrayBeforeInPlace[_local1] = null; }; _levelObjectArrayBeforeInPlace.splice(_local1, 1); _batArrayAfterInPlace.push(_batArray[_local1]); if (GARBAGE_COLLECT){ _batArray[_local1] = null; }; _batArray.splice(_local1, 1); }; _local1++; }; } public function moveBatsAfterInPlace():void{ var _local2:Number; var _local3:Number; var _local4:int; var _local1:int; while (_local1 < _batArrayAfterInPlace.length) { _local2 = -2; _local3 = 7; _local4 = (Math.round((Math.random() * (_local3 - _local2))) + _local2); _batArrayAfterInPlace[_local1].y = (_batArrayAfterInPlace[_local1].y - (Math.round((Math.random() * (6 - 0))) + 0)); _batArrayAfterInPlace[_local1].x = (_batArrayAfterInPlace[_local1].x + _local4); if (_batArrayAfterInPlace[_local1].y < 0){ if (GARBAGE_COLLECT){ _batArrayAfterInPlace[_local1] = null; }; _batArrayAfterInPlace.splice(_local1, 1); }; _local1++; }; } public function blocksFall():void{ var _local1:int; _noOfColumnsInGame = XMLData.noOfColumnsInGame; _pointWhereBlocksCollapse = ((_noOfColumnsInGame * 32) - _gamePlayArray[0]); if (_blocksFall){ if (_levelObjectArray.length != 0){ _local1 = 0; while (_local1 < _levelObjectArray.length) { if ((_pointWhereBlocksCollapse + 5) > _levelObjectArray[_local1].gamePositionX){ if (((!((_levelObjectArray[_local1].name == ObjectManager.BLOCK_SAFE_GROUND))) && (!((_levelObjectArray[_local1].name == ObjectManager.CHECK_POINT_NAME))))){ _levelObjectArray[_local1].body.SetMassFromShapes(); }; if (GARBAGE_COLLECT){ _levelObjectArray[_local1] = null; }; _levelObjectArray.splice(_local1, 1); }; _local1++; }; }; }; } private function removeExplosions():void{ var _local1:int; while (_local1 < _explosionArray.length) { if (_explosionArray[_local1].currentFrame > (_explosionArray[_local1].totalFrames - 2)){ _worldContainer.removeChild(_explosionArray[_local1]); if (GARBAGE_COLLECT){ _explosionArray[_local1] = null; }; _explosionArray.splice(_local1, 1); break; }; _local1++; }; } private function removePuke():void{ var _local2:MovieClip; var _local3:b2Body; var _local1:int; while (_local1 < _pukeArray.length) { _local2 = _pukeArray[_local1]; _pukeArray[_local1].body.m_sweep.a = 0; _local3 = _collisionDetection.getBodyAtPoint(_m_world, _pukeArray[_local1].x, (_pukeArray[_local1].y + ((_pukeArray[_local1].hitRadius / 2) + 5)), true, "", ""); if ((((_pukeArray[_local1].currentFrame > 10)) && (!(_pukeArray[_local1].hitGround)))){ _pukeArray[_local1].gotoAndPlay(1); }; if (((!((_local3 == null))) && (!((_local3.m_userData == _pukeArray[_local1]))))){ if (!_pukeArray[_local1].hitGround){ _pukeArray[_local1].body.SetMass(new b2MassData()); _pukeArray[_local1].hitGround = true; _pukeArray[_local1].gotoAndPlay(20); }; }; if ((((_pukeArray[_local1].currentFrame > 32)) && (_pukeArray[_local1].hitGround))){ if (GARBAGE_COLLECT){ _pukeArray[_local1] = null; }; _pukeArray.splice(_local1, 1); _local2.body.SetMassFromShapes(); _local2.body.SetXForm(new b2Vec2((0 / _physScale), (stage.stageHeight + (70 / _physScale))), 0); }; _local1++; }; } private function bounceOffPlayer():void{ if (noOfPlayers == 2){ if (((((!((_hitTypeUnderArray[0] == null))) && (!((_hitTypeUnderArray[0].m_userData == playerArray[0]))))) && ((_hitTypeUnderArray[0].m_userData.name == playerArray[1].name)))){ _worldContainer.setChildIndex(playerArray[0], (numChildren - 1)); jump((-(HERO_JUMP_HEIGHT) - 6), 0); NitromeGame.sound_manager.playSound("mushroomJump"); } else { if (((((!((_hitTypeUnderArray[1] == null))) && (!((_hitTypeUnderArray[1].m_userData == playerArray[1]))))) && ((_hitTypeUnderArray[1].m_userData.name == playerArray[0].name)))){ _worldContainer.setChildIndex(playerArray[1], (numChildren - 1)); jump((-(HERO_JUMP_HEIGHT) - 6), 1); NitromeGame.sound_manager.playSound("mushroomJump"); }; }; }; } private function centerScreen(_arg1:int):Number{ var _local2:Number; if (_arg1 == 2){ _local2 = (_player1.x - _player2.x); if (_player1.x < _player2.x){ _worldContainer.update((_player2.x + (_local2 / 2)), _player1.y); return ((_player2.x + (_local2 / 2))); }; _worldContainer.update((_player1.x - (_local2 / 2)), _player1.y); return ((_player1.x - (_local2 / 2))); //unresolved jump }; _worldContainer.update(_player1.x, _player1.y); return (_player1.x); } private function moveBats():void{ var _local1:int; while (_local1 < _batArray.length) { _batArray[_local1].update(); _local1++; }; moveBatsAfterInPlace(); } private function stageCollapseTimer(_arg1:TimerEvent):void{ blocksFall(); XMLData.addNewColumn(_m_world, _worldContainer, _pointWhereBlocksCollapse, _batArray, _levelObjectArray, _mushroomArray, _crystalArray, _bombArray, _mineCartArray, _enemyArray, pickUpArray, _levelObjectArrayBeforeInPlace, _checkPointArray, _lightArray, _levelSpeedArray); } private function moveEnemies():void{ var _local2:int; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:b2Body; var _local7:b2Body; var _local1:int; while (_local1 < playerArray.length) { playerArray[_local1].blocked = false; if ((((_enemyArray.length == 0)) && ((_playerPowerArray[_local1] == ObjectManager.PICK_UP_FLASH)))){ _playerPowerArray[_local1] = ""; }; _local2 = 0; while (_local2 < _enemyArray.length) { if ((_pointWhereBlocksCollapse - stage.stageWidth) > _enemyArray[_local2].x){ ObjectManager.destroy(_enemyArray[_local2], _m_world, _worldContainer); }; if (!_enemyArray[_local2].enabled){ if (GARBAGE_COLLECT){ _enemyArray[_local2] = null; }; _enemyArray.splice(_local2, 1); break; }; _enemyArray[_local2].body.m_sweep.a = 0; if ((((_playerPowerArray[_local1] == ObjectManager.PICK_UP_FLASH)) || (_enemyArray[_local2].hit))){ if (!_enemyArray[_local2].busy){ killEnemy(_enemyArray[_local2]); } else { _playerEnemyArray[0].timer = 200; if (noOfPlayers == 2){ _playerEnemyArray[1].timer = 200; if ((((_enemyArray[_local2].name == ObjectManager.ENEMY_LICKER_NAME)) && (((playerArray[0].grabbed) || (playerArray[1].grabbed))))){ playerEscape = true; }; } else { if ((((_enemyArray[_local2].name == ObjectManager.ENEMY_LICKER_NAME)) && (playerArray[0].grabbed))){ playerEscape = true; }; }; }; } else { if ((((_enemyArray[_local2].name == ObjectManager.ENEMY_SPIDER_NAME)) || (_enemyArray[_local2].hit))){ enemySpiderAI(_enemyArray[_local2], _local1); } else { if ((((_enemyArray[_local2].name == ObjectManager.ENEMY_EXPLOSIVE_NAME)) || (_enemyArray[_local2].hit))){ enemyExlosiveExpertAI(_enemyArray[_local2], _local1); } else { if ((((_enemyArray[_local2].name == ObjectManager.ENEMY_PUKER_NAME)) || (_enemyArray[_local2].hit))){ enemyPukerAI(_enemyArray[_local2], _local1); } else { _local3 = _collisionDetection.getBodyAtPoint2(_m_world, (_enemyArray[_local2].x - ((_enemyArray[_local2].hitRadius / 2) + 8)), _enemyArray[_local2].y, true); _local4 = _collisionDetection.getBodyAtPoint2(_m_world, (_enemyArray[_local2].x + ((_enemyArray[_local2].hitRadius / 2) + 8)), _enemyArray[_local2].y, true); _local5 = _collisionDetection.getBodyAtPoint2(_m_world, (_enemyArray[_local2].x - ((_enemyArray[_local2].hitRadius / 2) + 2)), _enemyArray[_local2].y, true); _local6 = _collisionDetection.getBodyAtPoint2(_m_world, (_enemyArray[_local2].x + ((_enemyArray[_local2].hitRadius / 2) + 2)), _enemyArray[_local2].y, true); _local7 = _collisionDetection.getBodyAtPoint2(_m_world, _enemyArray[_local2].x, (_enemyArray[_local2].y + ((_enemyArray[_local2].hitRadius / 2) + 5)), true); if ((((((((_local7 == null)) || ((_local7.m_userData.name == _enemyArray[_local2].name)))) && (!((_enemyArray[_local2].name == ObjectManager.ENEMY_RUNNER_NAME))))) && (!(_enemyArray[_local2].hit)))){ _enemyArray[_local2].gotoAndStop(0); if ((((_enemyArray[_local2].name == ObjectManager.ENEMY_LICKER_NAME)) || ((_enemyArray[_local2].name == ObjectManager.ENEMY_SNAIL_NAME)))){ if (((((_enemyArray[_local2].busy) && ((_enemyArray[_local2].busyWithPlayer == _local1)))) && (playerArray[_local1].busy))){ _enemyArray[_local2].body.SetMassFromShapes(); playerArray[_local1].body.SetMassFromShapes(); playerArray[_local1].busy = false; _enemyArray[_local2].busy = false; playerArray[_local1].gotoAndPlay(1); _enemyArray[_local2].attack = false; playerArray[_local1].grabbed = false; _tongue.clearTongue(); playerArray[_local1].swallowed = false; if (_worldContainer.contains(_playerKeyResetArray[_local1])){ if ((((_playerEscapedArray[_local1] == false)) && ((_enemyArray[_local2].name == ObjectManager.ENEMY_LICKER_NAME)))){ _worldContainer.removeChild(_playerKeyResetArray[_local1]); }; }; }; }; } else { enemyMovement(_enemyArray[_local2], _local5, _local6); if (_local1 == 0){ _enemyArray[_local2].update(); }; if (((((!(_enemyArray[_local2].busy)) && (!(playerArray[_local1].busy)))) || (((((playerArray[_local1].busy) && (_enemyArray[_local2].busy))) && ((_enemyArray[_local2].busyWithPlayer == _local1)))))){ if (_playerPowerArray[_local1] != ObjectManager.PICK_UP_INVINCIBLE){ if (_enemyArray[_local2].name == ObjectManager.ENEMY_PUSHER_NAME){ enemyPusherAI(_enemyArray[_local2], _local1, _local3, _local4); } else { if (_enemyArray[_local2].name == ObjectManager.ENEMY_SNAIL_NAME){ enemySnailAI(_enemyArray[_local2], _local1); } else { if (_enemyArray[_local2].name == ObjectManager.ENEMY_RUNNER_NAME){ enemyRunnerAI(_enemyArray[_local2], _local1, _local3, _local4, _local7); } else { if (_enemyArray[_local2].name == ObjectManager.ENEMY_LICKER_NAME){ enemyLickerAI(_enemyArray[_local2], _local1); }; }; }; }; }; }; }; }; }; }; }; _local2++; }; _local1++; }; } private function enemyMovement(_arg1:MovieClip, _arg2:b2Body, _arg3:b2Body):void{ var _local4:Boolean; var _local5:Boolean; if (((((_arg1.direction) && (!(_arg1.attack)))) && (!(_arg1.grab)))){ _local4 = false; if (playerArray.length == 1){ if (((!((_arg3 == null))) && (!((_arg3.m_userData == _arg1))))){ if (_arg3.m_userData != playerArray[0]){ _local4 = true; }; }; } else { if (((!((_arg3 == null))) && (!((_arg3.m_userData == _arg1))))){ if (((!((_arg3.m_userData == playerArray[0]))) && (!((_arg3.m_userData == playerArray[1]))))){ _local4 = true; }; }; }; if (((_local4) && ((_arg1.name == ObjectManager.ENEMY_RUNNER_NAME)))){ _arg1.acceleration = ENEMY_ACCELERATION; }; if (((_local4) && ((_arg1.name == ObjectManager.ENEMY_RUNNER_NAME)))){ _arg1.maxSpeed = ENEMY_MAX_SPEED; }; if (_local4){ accelerate(false, -(_arg1.acceleration), _arg1.maxSpeed, _arg1); } else { accelerate(true, _arg1.acceleration, _arg1.maxSpeed, _arg1); }; }; if (((((!(_arg1.direction)) && (!(_arg1.attack)))) && (!(_arg1.grab)))){ _local5 = false; if (playerArray.length == 1){ if (((!((_arg2 == null))) && (!((_arg2.m_userData == _arg1))))){ if (_arg2.m_userData != playerArray[0]){ _local5 = true; }; }; } else { if (((!((_arg2 == null))) && (!((_arg2.m_userData == _arg1))))){ if (((!((_arg2.m_userData == playerArray[0]))) && (!((_arg2.m_userData == playerArray[1]))))){ _local5 = true; }; }; }; if (((_local5) && ((_arg1.name == ObjectManager.ENEMY_RUNNER_NAME)))){ _arg1.acceleration = ENEMY_ACCELERATION; }; if (((_local5) && ((_arg1.name == ObjectManager.ENEMY_RUNNER_NAME)))){ _arg1.maxSpeed = ENEMY_MAX_SPEED; }; if (_local5){ accelerate(true, _arg1.acceleration, _arg1.maxSpeed, _arg1); } else { accelerate(false, -(_arg1.acceleration), _arg1.maxSpeed, _arg1); }; }; } private function enemyLickerAI(_arg1:MovieClip, _arg2:int):void{ var _local3:* = playerArray[_arg2]; if (!_local3.grabbed){ checkForAttack(_arg1, _arg2); }; if (_arg1.attack){ if (!_local3.busy){ NitromeGame.sound_manager.playSound("enemyAttackSnd"); }; _arg1.body.SetMass(new b2MassData()); _arg1.busy = true; _arg1.busyWithPlayer = _arg2; _local3.busy = true; _playerEscapedArray[_arg2] = false; } else { _arg1.body.SetMassFromShapes(); if (((((_arg1.busy) && ((_arg1.busyWithPlayer == _arg2)))) && (_local3.busy))){ _local3.busy = false; _arg1.busy = false; }; }; if ((((((_arg1.currentFrame >= 39)) && (_arg1.attack))) && (_local3.grabbed))){ _local3.gotoAndPlay(1); if (_arg1.currentFrame > 43){ _arg1.attack = false; _local3.grabbed = false; _arg1.setDirectionRight(!(_arg1.direction)); }; }; if (((((_arg1.attack) && ((_arg1.currentFrame == 38)))) && (_local3.grabbed))){ _arg1.gotoAndStop(37); _local3.body.SetMass(new b2MassData()); if (escapeFromEnemy(_arg2)){ _playerEscapedArray[_arg2] = true; if (_worldContainer.contains(_playerKeyResetArray[_arg2])){ _worldContainer.removeChild(_playerKeyResetArray[_arg2]); }; _arg1.gotoAndPlay(38); _local3.body.SetMassFromShapes(); _tongue.clearTongue(); resetEscapeFromEnemy(); }; }; } private function enemyPusherAI(_arg1:MovieClip, _arg2:int, _arg3:b2Body, _arg4:b2Body):void{ var _local6:Boolean; var _local7:int; var _local5:MovieClip = playerArray[_arg2]; if (((!((_arg4 == null))) && ((_arg4.m_userData == _local5)))){ if (_arg1.direction){ _local5.blocked = true; }; }; if (((!((_arg3 == null))) && ((_arg3.m_userData == _local5)))){ if (!_arg1.direction){ _local5.blocked = true; }; }; if (_local5.blocked){ _local5.shocked = true; _local5.busy = true; _arg1.busy = true; _arg1.busyWithPlayer = _arg2; _arg1.push = true; } else { _local5.shocked = false; if (((((_arg1.busy) && ((_arg1.busyWithPlayer == _arg2)))) && (_local5.busy))){ _local5.busy = false; _arg1.busy = false; }; _local6 = true; _local7 = 0; while (_local7 < playerArray.length) { if (((!((_arg4 == null))) && ((_arg4.m_userData == playerArray[_local7])))){ if (_arg1.direction){ _local6 = false; }; }; if (((!((_arg3 == null))) && ((_arg3.m_userData == playerArray[_local7])))){ if (!_arg1.direction){ _local6 = false; }; }; if (_local6){ _arg1.push = false; }; _local7++; }; }; } private function propelSprite(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):void{ _arg1.body.SetXForm(new b2Vec2((_arg2 / _physScale), (_arg3 / _physScale)), 0); _arg1.body.SetMassFromShapes(); _arg1.body.SetLinearVelocity(new b2Vec2((_arg4 / _physScale), (_arg5 / _physScale))); _arg1.body.ApplyImpulse(new b2Vec2((_arg4 / _physScale), (_arg5 / _physScale)), _arg1.body.GetWorldCenter()); } private function escapeFromEnemy(_arg1:int):Boolean{ var _local2:int; if (playerEscape){ playerEscape = false; resetEscapeFromEnemy(); return (true); }; if ((((escapeFromEnemyKeyPressArray[0] == false)) && (_key.isDown(PLAYER_KEY_ARRAY[0][_arg1])))){ escapeFromEnemyKeyPressArray[0] = true; }; if ((((escapeFromEnemyKeyPressArray[0] == true)) && (_key.isDown(PLAYER_KEY_ARRAY[1][_arg1])))){ escapeFromEnemyKeyPressArray[1] = true; }; if ((((escapeFromEnemyKeyPressArray[1] == true)) && (_key.isDown(PLAYER_KEY_ARRAY[0][_arg1])))){ escapeFromEnemyKeyPressArray[2] = true; }; if ((((escapeFromEnemyKeyPressArray[2] == true)) && (_key.isDown(PLAYER_KEY_ARRAY[1][_arg1])))){ escapeFromEnemyKeyPressArray[3] = true; }; if ((((((escapeFromEnemyKeyPressArray[0] == true)) && ((escapeFromEnemyKeyPressArray[1] == true)))) && ((escapeFromEnemyKeyPressArray[2] == true)))){ if (escapeFromEnemyKeyPressArray[3] == true){ _local2 = 0; while (_local2 < escapeFromEnemyKeyPressArray.length) { escapeFromEnemyKeyPressArray[_local2] = false; _local2++; }; } else { return (true); }; }; return (false); } private function resetEscapeFromEnemy():void{ var _local1:int; while (_local1 < escapeFromEnemyKeyPressArray.length) { escapeFromEnemyKeyPressArray[_local1] = false; _local1++; }; escapeFromEnemyKeyPressArray[3] = true; } private function enemyRunnerAI(_arg1:MovieClip, _arg2:int, _arg3:b2Body, _arg4:b2Body, _arg5:b2Body):void{ var _local6:MovieClip = playerArray[_arg2]; checkForRunnerAttack(_arg1, _local6); if (((((((((!((_arg3 == null))) && (!((_arg3.m_userData == _arg1))))) && ((_arg3.m_userData == _local6)))) && (!(_arg1.direction)))) && (!((_hitTypeUnderArray[_arg2] == null))))){ if (((!((_arg5 == null))) && (!((_arg5.m_userData.name == _arg1.name))))){ if (!_local6.attacked){ _arg1.body.SetMass(new b2MassData()); }; _local6.attacked = true; }; }; if (((((((((!((_arg4 == null))) && (!((_arg4.m_userData == _arg1))))) && ((_arg4.m_userData == _local6)))) && (_arg1.direction))) && (!((_hitTypeUnderArray[_arg2] == null))))){ if (((!((_arg5 == null))) && (!((_arg5.m_userData.name == _arg1.name))))){ if (!_local6.attacked){ _arg1.body.SetMass(new b2MassData()); }; _local6.attacked = true; }; }; if (_local6.attacked){ if (_arg1.bite){ _arg1.visible = true; _arg1.body.SetXForm(new b2Vec2((_local6.x - (1000 / _physScale)), ((_local6.y - 1000) / _physScale)), 0); _arg1.body.SetMass(new b2MassData()); _playerEnemyArray[_arg2].update(); if (_playerEnemyArray[_arg2].dist < 20){ _playerEnemyArray[_arg2].timer++; _playerEnemyArray[_arg2].gamePositionX = _local6.x; _playerEnemyArray[_arg2].gamePositionY = _local6.y; _playerEnemyArray[_arg2].vecX = 0; _playerEnemyArray[_arg2].vecY = 0; _local6.body.SetMassFromShapes(); _playerEnemyArray[_arg2].bite = true; _playerEnemyArray[_arg2].jump = false; _playerEnemyArray[_arg2].setPosition(_local6.x, _local6.y); }; if (_playerEnemyArray[_arg2].timer > 100){ if (((((_arg1.busy) && ((_arg1.busyWithPlayer == _arg2)))) && (_local6.busy))){ _local6.busy = false; _arg1.busy = false; }; _playerEnemyArray[_arg2].timer = 0; _worldContainer.removeChild(_playerEnemyArray[_arg2]); _local6.attacked = false; _local6.visible = true; _arg1.body.SetXForm(new b2Vec2(((_local6.x - _local6.width) / _physScale), ((_local6.y - _local6.height) / _physScale)), 0); _arg1.body.SetMassFromShapes(); _arg1.bite = false; _arg1.acceleration = ENEMY_ACCELERATION; _arg1.maxSpeed = ENEMY_MAX_SPEED; if (!_arg1.direction){ propelSprite(_arg1, (_local6.x - (_local6.width / 4)), (_local6.y - (_local6.height / 4)), -8, -17); } else { propelSprite(_arg1, (_local6.x + (_local6.width / 4)), (_local6.y - (_local6.height / 4)), 8, -17); }; }; } else { if (!_local6.busy){ NitromeGame.sound_manager.playSound("enemyAttackSnd"); }; _local6.busy = true; _arg1.busyWithPlayer = _arg2; _arg1.busy = true; _arg1.bite = true; _arg1.acceleration = 0; _arg1.maxSpeed = 0; _playerEnemyArray[_arg2] = ObjectManager.createObject(ObjectManager.ENEMY_RUNNER_NAME); _playerEnemyArray[_arg2].setPosition(_arg1.x, _arg1.y); _playerEnemyArray[_arg2].gamePositionX = _local6.x; _playerEnemyArray[_arg2].gamePositionY = _local6.y; _playerEnemyArray[_arg2].setMovement(_arg1.x, _arg1.y); _playerEnemyArray[_arg2].setDirectionRight(_arg1.direction); _worldContainer.addChild(_playerEnemyArray[_arg2]); _playerEnemyArray[_arg2].jump = true; _arg1.body.SetMass(new b2MassData()); _local6.body.SetMass(new b2MassData()); }; }; } private function killEnemy(_arg1:MovieClip):void{ _arg1.hit = true; _arg1.gotoAndStop(_arg1.totalFrames); _arg1.body.SetMass(new b2MassData()); if (noOfPlayers == 1){ _arg1.dieSpeed = (_arg1.dieSpeed + 1); } else { _arg1.dieSpeed = (_arg1.dieSpeed + 0.5); }; _arg1.body.SetXForm(new b2Vec2(((_arg1.x = (_arg1.x - 1)) / _physScale), ((_arg1.y = (_arg1.y + _arg1.dieSpeed)) / _physScale)), 0); if (_arg1.name == ObjectManager.ENEMY_SPIDER_NAME){ _arg1.bodyDef.userData.body.SetMass(new b2MassData()); _arg1.bodyDef.userData.body.SetXForm(new b2Vec2(((_arg1.bodyDef.userData.x = (_arg1.bodyDef.userData.x - 1)) / _physScale), ((_arg1.bodyDef.userData.y = (_arg1.bodyDef.userData.y + _arg1.dieSpeed)) / _physScale)), 0); }; } private function enemySnailAI(_arg1:MovieClip, _arg2:int):void{ var _local3:MovieClip = playerArray[_arg2]; var _local4:Number = ObjectManager.getDistanceBetweenObjects(_local3, _arg1); var _local5:Number = ObjectManager.getAngleBetweenObjects(_local3, _arg1); var _local6 = 46; if (_arg2 == 1){ _local6 = 98; }; if (((_arg1.eat) && ((_arg1.currentFrame > _local6)))){ _arg1.body.SetMassFromShapes(); _arg1.grab = false; _arg1.eat = false; if (!_local3.visible){ NitromeGame.sound_manager.playSound("enemyAttackSnd"); }; _local3.visible = true; if (_arg1.direction){ propelSprite(_local3, (_arg1.x + (_arg1.width / 2)), ((_arg1.y - (_arg1.height / 2)) - (_local3.height / 2)), 100, -150); }; if (!_arg1.direction){ propelSprite(_local3, (_arg1.x - (_arg1.width / 2)), ((_arg1.y - (_arg1.height / 2)) - (_local3.height / 2)), -100, -150); }; if (_arg2 == 1){ update(); } else { _local3.update(_local3.body.m_linearVelocity.x, _local3.body.m_linearVelocity.y); box2dUpdate(); if (_local3.body.m_linearVelocity.y >= -4){ _hitTypeUnderPlayer1 = _collisionDetection.getBodyAtPoint(_m_world, _local3.x, (_local3.y + ((_local3.height / 2) + 5)), true, ObjectManager.CHECK_POINT_NAME, ObjectManager.RAIL_GROUND1); } else { _hitTypeUnderPlayer1 = null; }; _hitTypeUnderArray[_arg2] = _hitTypeUnderPlayer1; }; }; if (!_arg1.eat){ if ((((_local4 < ((ENEMY_ATTACK_DISTANCE / 4) * 3))) && (!(_local3.swallowed)))){ if ((((((_local5 > -4)) && ((_local5 < 2)))) && (_arg1.direction))){ _arg1.busy = true; _arg1.busyWithPlayer = _arg2; _local3.busy = true; _arg1.grab = true; _arg1.body.SetMass(new b2MassData()); if ((_arg1.currentFrame > 56)){ _local3.visible = false; _local3.body.SetXForm(new b2Vec2((_local3.x / _physScale), (((_arg1.y - (_arg1.height / 4)) - (_local3.height / 2)) / _physScale)), 0); _local3.swallowed = true; _arg1.eat = true; _local3.body.SetMass(new b2MassData()); }; } else { if ((((((_local5 > -185)) && ((_local5 < -170)))) && (!(_arg1.direction)))){ _arg1.busy = true; _arg1.busyWithPlayer = _arg2; _local3.busy = true; _arg1.grab = true; _arg1.body.SetMass(new b2MassData()); if ((_arg1.currentFrame > 56)){ _local3.visible = false; _local3.body.SetXForm(new b2Vec2((_local3.x / _physScale), (((_arg1.y - (_arg1.height / 4)) - (_local3.height / 2)) / _physScale)), 0); _local3.swallowed = true; _arg1.eat = true; _local3.body.SetMass(new b2MassData()); }; } else { if (((((((_arg1.busy) && ((_arg1.busyWithPlayer == _arg2)))) && (_local3.busy))) && (_local3.swallowed))){ _local3.busy = false; _arg1.busy = false; _arg1.grab = false; _arg1.body.SetMassFromShapes(); }; if (_arg1.currentFrame > 64){ _arg1.busy = false; _local3.busy = false; _arg1.grab = false; _arg1.body.SetMassFromShapes(); }; }; }; } else { if (_hitTypeUnderArray[_arg2] != null){ if (((((((_arg1.busy) && ((_arg1.busyWithPlayer == _arg2)))) && (_local3.busy))) && (_local3.swallowed))){ _local3.busy = false; _arg1.busy = false; _local3.swallowed = false; _arg1.body.SetMassFromShapes(); }; }; if (_arg1.currentFrame > 64){ _arg1.busy = false; _local3.busy = false; _arg1.grab = false; _arg1.body.SetMassFromShapes(); }; }; }; } private function makeDust(_arg1:int, _arg2:int, _arg3:int):void{ var _local4:MovieClip; if (!playerArray[_arg3].inMineCart){ _playerMakeDustArray[_arg3] = false; _local4 = _dustArray[0]; if (_local4.visible){ _local4 = _dustArray[1]; }; _local4.x = _arg1; _local4.y = _arg2; _local4.visible = true; _local4.gotoAndPlay(1); }; } private function checkForDustRemoval():void{ var _local1:int; while (_local1 < _dustArray.length) { if (_dustArray[_local1].currentFrame > 12){ _dustArray[_local1].visible = false; _dustArray[_local1].gotoAndStop(1); }; _local1++; }; } private function enemyPukerAI(_arg1:MovieClip, _arg2:int):void{ var _local3:*; if (_arg2 == 0){ _arg1.update(); }; _arg1.timer++; if (_arg1.timer > 80){ if (!_arg1.attack){ _arg1.gotoAndPlay(13); _arg1.attack = true; }; if (((_arg1.attack) && ((_arg1.currentFrame > 48)))){ _arg1.attack = false; _arg1.timer = 0; _local3 = new Puke(); _bodyDef = ObjectManager.createPuke(_m_world, _arg1.x, ((_arg1.y + (_local3.height / 2)) + 30), _local3.width, _local3.height, (_local3.width - 5), false, ObjectManager.ENEMY_PUKE, _local3); _worldContainer.addChild(_bodyDef.userData); _pukeArray.push(_local3); }; }; } private function enemyExlosiveExpertAI(_arg1:MovieClip, _arg2:int):void{ var _local3:*; if (_arg2 == 0){ _arg1.update(); }; _arg1.timer++; if (_arg1.timer > 30){ if (!_arg1.attack){ _arg1.gotoAndPlay(11); _arg1.attack = true; }; if (((_arg1.attack) && ((_arg1.currentFrame > 26)))){ _arg1.attack = false; _arg1.timer = 0; _local3 = ObjectManager.createObject(ObjectManager.BOMB_NAME); _bodyDef = ObjectManager.createBomb(_m_world, (_arg1.x - _local3.width), _arg1.y, _local3.width, _local3.height, false, ObjectManager.BOMB_NAME, _local3); _worldContainer.addChild(_bodyDef.userData); _bombArray.push(_bodyDef.userData); propelSprite(_local3, (_arg1.x - _local3.width), _arg1.y, -20, -5); }; }; } private function enemySpiderAI(_arg1:MovieClip, _arg2:int):void{ var _local3:b2Body = _collisionDetection.getBodyAtPoint2(_m_world, _arg1.x, (_arg1.y + ((_arg1.hitRadius / 2) + 15)), true); var _local4:Number = _arg1.y; var _local5:Number = (_local4 - 240); _local5 = (_local5 + 8); _arg1.bodyDef.userData.body.SetXForm(new b2Vec2((_arg1.x / _physScale), (_local5 / _physScale)), 0); if (_arg2 == 0){ _arg1.update(); }; if ((((((((_local3 == null)) || ((_local3.m_userData.name == _arg1.name)))) && (!(_arg1.still)))) && ((_arg1.y < 350)))){ _arg1.bodyDef.userData.visible = true; _arg1.body.SetXForm(new b2Vec2((_arg1.x / _physScale), ((_arg1.y = (_arg1.y + 8)) / _physScale)), 0); _arg1.gotoAndStop(13); _arg1.run = false; _arg1.attack = true; } else { if (((!((_local3 == null))) && ((((_local3.m_userData.name == ObjectManager.PLAYER_NAME)) || ((_local3.m_userData.name == ObjectManager.PLAYER_NAME2)))))){ if (_arg1.attack){ _arg1.timer = 79; }; }; if (_arg1.timer < 80){ if ((((_arg1.timer > 20)) && ((_arg1.timer < 40)))){ _arg1.gotoAndStop(21); }; if ((((_arg1.timer > 40)) && ((_arg1.timer < 80)))){ _arg1.gotoAndStop(23); }; _arg1.attack = true; _arg1.run = false; _arg1.body.SetMass(new b2MassData()); _arg1.still = true; _arg1.timer++; } else { _arg1.body.SetMass(new b2MassData()); if (_arg1.attack){ _arg1.gotoAndPlay(1); }; _local5 = (_local5 - 2); _arg1.bodyDef.userData.body.SetXForm(new b2Vec2((_arg1.x / _physScale), (_local5 / _physScale)), 0); _arg1.body.SetXForm(new b2Vec2((_arg1.x / _physScale), ((_arg1.y = (_arg1.y - 2)) / _physScale)), 0); _arg1.attack = false; _arg1.run = true; if (_arg1.y < _arg1.gamePositionY){ _arg1.timer = 0; _arg1.still = false; }; }; }; } private function checkForRunnerAttack(_arg1:MovieClip, _arg2:MovieClip):Boolean{ var _local3:Number = ObjectManager.getDistanceBetweenObjects(_arg2, _arg1); var _local4:Number = ObjectManager.getAngleBetweenObjects(_arg2, _arg1); if (_local3 < (ENEMY_ATTACK_DISTANCE * 3)){ if ((((((_local4 > -16)) && ((_local4 < 2)))) && (_arg1.direction))){ _arg1.acceleration = (ENEMY_ACCELERATION * 3); _arg1.maxSpeed = (ENEMY_MAX_SPEED * 3); return (true); }; if ((((((_local4 > -184)) && ((_local4 < -165)))) && (!(_arg1.direction)))){ _arg1.acceleration = (ENEMY_ACCELERATION * 3); _arg1.maxSpeed = (ENEMY_MAX_SPEED * 3); return (true); }; }; return (false); } private function checkForAttack(_arg1:MovieClip, _arg2:int):void{ var _local3:MovieClip = playerArray[_arg2]; var _local4:Number = 0; var _local5:Number = 0; if (noOfPlayers == 2){ if (_arg2 == 0){ _local4 = ObjectManager.getDistanceBetweenObjects(playerArray[1], _arg1); _local5 = ObjectManager.getAngleBetweenObjects(playerArray[1], _arg1); if ((((((_local4 < ENEMY_ATTACK_DISTANCE)) && ((((_local5 > -4)) && ((_local5 < 2)))))) && (_arg1.direction))){ _arg1.attack = false; return; }; if ((((((_local4 < ENEMY_ATTACK_DISTANCE)) && ((((_local5 > -179)) && ((_local5 < -175)))))) && (!(_arg1.direction)))){ _arg1.attack = false; return; }; }; }; _local4 = ObjectManager.getDistanceBetweenObjects(_local3, _arg1); _local5 = ObjectManager.getAngleBetweenObjects(_local3, _arg1); if ((((_local4 < ENEMY_ATTACK_DISTANCE)) || (_local3.grabbed))){ if ((((((((_local5 > -4)) && ((_local5 < 2)))) && (_arg1.direction))) || (_local3.grabbed))){ _arg1.attack = true; if (_arg1.currentFrame > 35){ _arg1.gotoAndStop(37); _local3.grabbed = true; _local3.setDirectionRight(!(_arg1.direction)); _worldContainer.addChild(_playerKeyResetArray[_arg2]); _playerKeyResetArray[_arg2].y = (_local3.y - 100); _playerKeyResetArray[_arg2].x = _local3.x; _tongue.visible = true; _tongue.drawTongue(int((_arg1.body.GetPosition().x * _physScale)), int(((_arg1.body.GetPosition().y * _physScale) + 10)), int(((_local3.body.GetPosition().x * _physScale) - 10)), int(((_arg1.body.GetPosition().y * _physScale) + 10))); }; } else { if ((((((((_local5 > -179)) && ((_local5 < -175)))) && (!(_arg1.direction)))) || (_local3.grabbed))){ _arg1.attack = true; if (_arg1.currentFrame > 35){ _arg1.gotoAndStop(37); _local3.grabbed = true; _local3.setDirectionRight(!(_arg1.direction)); _worldContainer.addChild(_playerKeyResetArray[_arg2]); _playerKeyResetArray[_arg2].y = (_local3.y - 100); _playerKeyResetArray[_arg2].x = _local3.x; _tongue.visible = true; _tongue.drawTongue(int((_arg1.body.GetPosition().x * _physScale)), int(((_arg1.body.GetPosition().y * _physScale) + 10)), int(((_local3.body.GetPosition().x * _physScale) + 10)), int(((_arg1.body.GetPosition().y * _physScale) + 10))); }; } else { if (!_local3.grabbed){ if (_arg1.currentFrame == 37){ gotoAndPlay(37); }; if (_arg1.currentFrame > 43){ _arg1.attack = false; }; _local3.grabbed = false; _tongue.clearTongue(); }; }; }; } else { if (!_local3.grabbed){ if (_arg1.currentFrame == 37){ gotoAndPlay(37); }; if (_arg1.currentFrame > 43){ _arg1.attack = false; }; _local3.grabbed = false; _tongue.clearTongue(); }; }; if (_local3.grabbed){ _local3.body.SetMass(new b2MassData()); }; } private function addPowerUpIcon(_arg1:int):void{ var _local2:MovieClip; if (_playerPowerUpIconArray[_arg1] != null){ if (contains(_playerPowerUpIconArray[_arg1])){ removeChild(_playerPowerUpIconArray[_arg1]); }; _playerPowerUpIconArray[_arg1] = null; }; if (_playerPowerArray[_arg1] != ""){ _local2 = ObjectManager.createObject(_playerPowerArray[_arg1]); _local2.gotoAndStop(2); if (_arg1 == 0){ _local2.x = 110; }; if (_arg1 == 0){ _local2.y = 40; }; if (_arg1 == 1){ _local2.x = 440; }; if (_arg1 == 1){ _local2.y = 40; }; _playerPowerUpIconArray[_arg1] = _local2; addChild(_playerPowerUpIconArray[_arg1]); }; } private function accelerateMineCart(_arg1:Boolean, _arg2:Number, _arg3:Number, _arg4:MovieClip):void{ _arg4.body.WakeUp(); _arg4.body.m_linearVelocity.x = (_arg4.body.m_linearVelocity.x + _arg2); if (_arg4.body.m_linearVelocity.x < -(_arg3)){ _arg4.body.m_linearVelocity.x = -(_arg3); }; if (_arg4.body.m_linearVelocity.x > _arg3){ _arg4.body.m_linearVelocity.x = _arg3; }; } private function accelerate(_arg1:Boolean, _arg2:Number, _arg3:Number, _arg4:MovieClip):void{ if (!_arg4.grabbed){ _arg4.body.WakeUp(); _arg4.body.m_linearVelocity.x = (_arg4.body.m_linearVelocity.x + _arg2); if (_arg4.body.m_linearVelocity.x < -(_arg3)){ _arg4.body.m_linearVelocity.x = -(_arg3); }; if (_arg4.body.m_linearVelocity.x > _arg3){ _arg4.body.m_linearVelocity.x = _arg3; }; if (_arg4.direction != _arg1){ _arg4.setDirectionRight(_arg1); }; }; } private function decelerate(_arg1:Number, _arg2:int):void{ var _local3:MovieClip = playerArray[_arg2]; if (_local3.body.m_linearVelocity.x > 0){ if ((((_local3.body.m_linearVelocity.x > ((HERO_MAX_SPEED / 5) * 4))) && (!((_hitTypeUnderArray[_arg2] == null))))){ _playerMakeDustArray[_arg2] = true; }; _local3.body.m_linearVelocity.x = (_local3.body.m_linearVelocity.x + ((-(_arg1) / 4) * 3)); if (_local3.body.m_linearVelocity.x < 0){ _local3.body.m_linearVelocity.x = 0; }; }; if (_local3.body.m_linearVelocity.x < 0){ if ((((_local3.body.m_linearVelocity.x < (-((HERO_MAX_SPEED / 5)) * 4))) && (!((_hitTypeUnderArray[_arg2] == null))))){ _playerMakeDustArray[_arg2] = true; }; _local3.body.m_linearVelocity.x = (_local3.body.m_linearVelocity.x + ((_arg1 / 4) * 3)); if (_local3.body.m_linearVelocity.x > 0){ _local3.body.m_linearVelocity.x = 0; }; }; } private function jump(_arg1:Number, _arg2:int):void{ makeDust(playerArray[_arg2].x, (playerArray[_arg2].y + 10), _arg2); playerArray[_arg2].body.WakeUp(); if (((!(_key.isDown(PLAYER_KEY_ARRAY[1][_arg2]))) && (!(_key.isDown(PLAYER_KEY_ARRAY[2][_arg2]))))){ playerArray[_arg2].body.SetLinearVelocity(new b2Vec2(playerArray[_arg2].body.GetLinearVelocity().x, 0)); } else { playerArray[_arg2].body.SetLinearVelocity(new b2Vec2(playerArray[_arg2].body.GetLinearVelocity().x, 0)); }; playerArray[_arg2].body.ApplyImpulse(new b2Vec2(0, _arg1), playerArray[_arg2].body.GetWorldCenter()); playerArray[_arg2].jump = true; } private function bombBlowCheck():Boolean{ var _local1:int; var _local2:MovieClip; var _local3:b2Body; var _local4:MovieClip; var _local5:Number; var _local6:Number; var _local7:*; var _local8:Number; var _local9:Number; while (_local1 < _bombArray.length) { if (!_bombArray[_local1].enabled){ if (GARBAGE_COLLECT){ _bombArray[_local1] = null; }; _bombArray.splice(_local1, 1); break; }; _local2 = _bombArray[_local1]; if (_local2.blowUp){ _local3 = _m_world.m_bodyList; while (_local3) { if ((_local3.m_userData is Sprite)){ _local4 = _local3.m_userData; if (_local4.name != ObjectManager.BOMB_NAME){ _local5 = ObjectManager.getDistanceBetweenObjects(_local2, _local4); if (_local5 < Bomb.BLOW_UP_PROXIMITY){ _local4.body.WakeUp(); if (_levelObjectArray[_local1].name != ObjectManager.BLOCK_SAFE_GROUND){ _local4.body.SetMassFromShapes(); }; _local6 = ObjectManager.getAngleInDegreesBetweenObjects(_local2, _local4); _local7 = ((2 * Math.PI) * ((_local6 + 180) / 360)); _local8 = (Bomb.BLOW_UP_SPEED * Math.cos(_local7)); _local9 = (Bomb.BLOW_UP_SPEED * Math.sin(_local7)); _local4.body.ApplyImpulse(new b2Vec2(_local8, _local9), _local4.body.GetWorldCenter()); }; }; }; _local3 = _local3.m_next; }; _local2.blowUp = false; addExplosion(_local2.x, _local2.y); ObjectManager.destroy(_local2, _m_world, _worldContainer); break; }; _local1++; }; return (false); } private function checkPlayerOffScreen():void{ var _local1:int; var _local2:int; var _local3:int; if (noOfPlayers == 2){ if (ObjectManager.getDistanceBetweenObjects(playerArray[0], playerArray[1]) > (stage.stageWidth * 3)){ while (_local1 < playerArray.length) { playerArray[_local1].dead = true; _local1++; }; }; if (ObjectManager.getDistanceBetweenObjects(playerArray[0], playerArray[1]) > (stage.stageWidth + playerArray[0].width)){ while (_local2 < _playerIconArray.length) { _playerIconArray[_local2].visible = true; _local2++; }; if (playerArray[0].x > playerArray[1].x){ _playerIconArray[0].x = (stage.stageWidth - _playerIconArray[0].width); _playerIconArray[0].y = (playerArray[0].y - (_playerIconArray[0].height / 2)); _playerIconArray[2].x = (stage.stageWidth - (_playerIconArray[0].width + 5)); _playerIconArray[2].y = (playerArray[0].y - ((_playerIconArray[0].height / 2) + 1)); _playerIconArray[1].x = 0; _playerIconArray[1].y = (playerArray[1].y - (_playerIconArray[1].height / 2)); if (_playerIconArray[3].scaleX != -1){ _playerIconArray[3].scaleX = (_playerIconArray[3].scaleX * -1); }; _playerIconArray[3].x = (_playerIconArray[3].width - 1); _playerIconArray[3].y = ((playerArray[1].y - (_playerIconArray[0].height / 2)) - 1); } else { _playerIconArray[1].x = (stage.stageWidth - _playerIconArray[1].width); _playerIconArray[1].y = (playerArray[1].y - (_playerIconArray[1].height / 2)); _playerIconArray[2].x = (stage.stageWidth - (_playerIconArray[1].width + 5)); _playerIconArray[2].y = (playerArray[1].y - ((_playerIconArray[1].height / 2) + 1)); _playerIconArray[0].x = 0; _playerIconArray[0].y = (playerArray[0].y - (_playerIconArray[0].height / 2)); if (_playerIconArray[3].scaleX != -1){ _playerIconArray[3].scaleX = (_playerIconArray[3].scaleX * -1); }; _playerIconArray[3].x = (_playerIconArray[3].width - 1); _playerIconArray[3].y = ((playerArray[0].y - (_playerIconArray[0].height / 2)) - 1); }; } else { while (_local3 < _playerIconArray.length) { _playerIconArray[_local3].visible = false; _local3++; }; }; }; } private function addExplosion(_arg1:Number, _arg2:Number):void{ var _local3:* = new Explosion(); _explosionArray.push(_local3); _local3.gotoAndPlay(1); _local3.x = (_arg1 - (_local3.width / 2)); _local3.y = (_arg2 - (_local3.height / 2)); _worldContainer.addChild(_local3); NitromeGame.sound_manager.playSound("explode"); } public function checkForMushrooms(_arg1:int):void{ if (((((!((_hitTypeUnderArray[_arg1] == null))) && (!((_hitTypeUnderArray[_arg1].m_userData == playerArray[_arg1]))))) && ((_hitTypeUnderArray[_arg1].m_userData.name == ObjectManager.MUSHROOM_NAME)))){ jump((-(HERO_JUMP_HEIGHT) * 1.5), _arg1); _hitTypeUnderArray[_arg1].m_userData.gotoAndPlay("move"); NitromeGame.sound_manager.playSound("mushroomJump"); }; } public function checkForLights():Boolean{ var _local2:int; var _local3:int; var _local4:b2Shape; var _local5:b2FilterData; var _local1:int; while (_local1 < _lightArray.length) { _lightArray[_local1].update(); while (_local2 < playerArray.length) { if ((((noOfPlayers == 2)) && ((Math.abs((playerArray[_local2].x - _lightArray[_local1].x)) < 26)))){ if (!_lightArray[_local1].on){ NitromeGame.sound_manager.playSound("lightOn"); _local3 = 0; while (_local3 < playerArray.length) { if (playerArray[_local3].dead){ playerArray[_local3].dead = false; playerArray[_local3].body.SetXForm(new b2Vec2((_lightArray[_local1].x / _physScale), (playerArray[_local3].y / _physScale)), 0); playerArray[_local3].body.SetMassFromShapes(); _local4 = playerArray[_local3].body.GetShapeList(); _local5 = _local4.GetFilterData(); _local5.maskBits = 4; _local5.groupIndex = 2; _local4.SetFilterData(_local5); _m_world.Refilter(_local4); }; _local3++; }; }; _lightArray[_local1].on = true; }; _local2++; }; if ((_pointWhereBlocksCollapse - stage.stageWidth) > _lightArray[_local1].x){ _worldContainer.removeChild(_lightArray[_local1]); if (GARBAGE_COLLECT){ _lightArray[_local1] = null; }; _lightArray.splice(_local1, 1); return (true); }; _local1++; }; return (false); } public function checkForCrystals(_arg1:int):Boolean{ var _local2:int; while (_local2 < _crystalArray.length) { if (_arg1 == 0){ _crystalArray[_local2].update(); }; if (_crystalArray[_local2].hitTestObject(playerArray[_arg1])){ if (!_crystalArray[_local2].grabbed){ NitromeGame.sound_manager.playSound("crystalPickUp"); if (_crystalArray[_local2].crystalType == ObjectManager.CRYSTAL_SMALL_NAME){ playerPointsArray[_arg1] = (playerPointsArray[_arg1] + 50); if (_arg1 == 0){ LevelScoreP1.value = (LevelScoreP1.value + 50); } else { LevelScoreP2.value = (LevelScoreP2.value + 50); }; _playerScoreArray[_arg1].score.text = playerPointsArray[_arg1]; NitromeGame.sound_manager.playSound("crystalPickUpSmal"); } else { if (_crystalArray[_local2].crystalType == ObjectManager.CRYSTAL_LARGE_NAME){ playerPointsArray[_arg1] = (playerPointsArray[_arg1] + 100); if (_arg1 == 0){ LevelScoreP1.value = (LevelScoreP1.value + 100); } else { LevelScoreP2.value = (LevelScoreP2.value + 100); }; _playerScoreArray[_arg1].score.text = playerPointsArray[_arg1]; NitromeGame.sound_manager.playSound("crystalPickUpBig"); }; }; }; _crystalArray[_local2].grabbed = true; }; if (((_crystalArray[_local2].remove) || (((_pointWhereBlocksCollapse - stage.stageWidth) > _crystalArray[_local2].x)))){ _worldContainer.removeChild(_crystalArray[_local2]); if (GARBAGE_COLLECT){ _crystalArray[_local2] = null; }; _crystalArray.splice(_local2, 1); return (true); }; _local2++; }; return (false); } private function stopPlayerSlide():void{ var _local1:int; while (_local1 < playerArray.length) { if (((((((((!((_hitTypeUnderArray[_local1] == null))) && (!((_hitTypeUnderArray[_local1].m_userData == playerArray[_local1]))))) && (!(_key.isDown(PLAYER_KEY_ARRAY[0][_local1]))))) && (!(_key.isDown(PLAYER_KEY_ARRAY[1][_local1]))))) && (!(_key.isDown(PLAYER_KEY_ARRAY[2][_local1]))))){ if ((_hitTypeUnderArray[_local1].m_userData.name == ObjectManager.SLOPE_NAME)){ playerArray[_local1].body.SetLinearVelocity(new b2Vec2(0, 0)); playerArray[_local1].body.SetMass(new b2MassData()); }; } else { if (((((((((!((_hitTypeUnderArray[_local1] == null))) && (!((_hitTypeUnderArray[_local1].m_userData == playerArray[_local1]))))) && ((_hitTypeUnderArray[_local1].m_userData.name == ObjectManager.SLOPE_NAME)))) && (!(playerArray[_local1].jump)))) && (_key.isDown(PLAYER_KEY_ARRAY[2][_local1])))){ playerArray[_local1].body.SetMassFromShapes(); NitromeGame.sound_manager.playSound("jumpSnd"); playerArray[_local1].body.SetLinearVelocity(new b2Vec2(0, 0)); jump(-(HERO_JUMP_HEIGHT), _local1); } else { if (((((((_key.isDown(PLAYER_KEY_ARRAY[1][_local1])) && (!(playerArray[_local1].dance)))) && (!(playerArray[_local1].blocked)))) && (!(playerArray[_local1].swallowed)))){ if (!playerArray[_local1].inMineCart){ playerArray[_local1].run = true; }; if (playerArray[_local1].inMineCart){ accelerate(true, (HERO_ACCELERATION * 2), (HERO_MAX_SPEED * 2), playerArray[_local1]); } else { if (((playerArray[_local1].attacked) || ((_playerStuckArray[_local1] == true)))){ accelerate(true, (HERO_ACCELERATION / 4), (HERO_MAX_SPEED / 4), playerArray[_local1]); } else { accelerate(true, HERO_ACCELERATION, HERO_MAX_SPEED, playerArray[_local1]); }; }; } else { if (((((((_key.isDown(PLAYER_KEY_ARRAY[0][_local1])) && (!(playerArray[_local1].dance)))) && (!(playerArray[_local1].blocked)))) && (!(playerArray[_local1].swallowed)))){ if (!playerArray[_local1].inMineCart){ playerArray[_local1].run = true; }; if (playerArray[_local1].inMineCart){ accelerate(false, -((HERO_ACCELERATION * 2)), (HERO_MAX_SPEED * 2), playerArray[_local1]); } else { if (((playerArray[_local1].attacked) || ((_playerStuckArray[_local1] == true)))){ accelerate(false, (-(HERO_ACCELERATION) / 4), (HERO_MAX_SPEED / 4), playerArray[_local1]); } else { accelerate(false, -(HERO_ACCELERATION), HERO_MAX_SPEED, playerArray[_local1]); }; }; }; }; }; }; _local1++; }; } public function stopSpritesAnimating():void{ var _local1:int; var _local2:int; var _local3:int; while (_local1 < _batArray.length) { _batArray[_local1].stop(); _local1++; }; while (_local2 < _batArrayAfterInPlace.length) { _batArrayAfterInPlace[_local2].stop(); _local2++; }; while (_local3 < _lightArray.length) { _lightArray[_local3].stopBat(true); _local3++; }; } public function startSpritesAnimating():void{ var _local1:int; var _local2:int; var _local3:int; while (_local1 < _batArray.length) { _batArray[_local1].play(); _local1++; }; while (_local2 < _batArrayAfterInPlace.length) { _batArrayAfterInPlace[_local2].play(); _local2++; }; while (_local3 < _lightArray.length) { _lightArray[_local3].stopBat(false); _local3++; }; } public function checkForPlayerTrappedInWall():void{ var _local2:b2Body; var _local3:b2Vec2; var _local4:Boolean; var _local5:Number; var _local6:b2Body; var _local7:b2Shape; var _local8:b2Shape; var _local9:b2FilterData; var _local1:int; while (_local1 < noOfPlayers) { _local2 = Hero(playerArray[_local1]).body; _local3 = _local2.GetWorldCenter(); _local4 = false; _local5 = 0; while (_local5 < _levelObjectArray.length) { _local6 = _levelObjectArray[_local5].body; if (!_local6){ } else { _local7 = _local6.GetShapeList(); while (_local7) { if (_local7.TestPoint(_local6.GetXForm(), _local3)){ _local4 = true; break; }; _local7 = _local7.GetNext(); }; if (_local4){ break; }; }; _local5++; }; if (_local4){ var _local10 = _playerTrappedInBlockTimeArray; var _local11 = _local1; var _local12 = (_local10[_local11] + 1); _local10[_local11] = _local12; if (_playerTrappedInBlockTimeArray[_local1] > 25){ _local8 = _local2.GetShapeList(); _local9 = _local8.GetFilterData(); if (_local9.maskBits){ _local9.maskBits = 0; _local9.groupIndex = 0; _local8.SetFilterData(_local9); _m_world.Refilter(_local8); }; }; } else { _playerTrappedInBlockTimeArray[_local1] = 0; }; _local1++; }; } } }//package com.nitrome.crystalmines
Section 143
//Points (com.nitrome.crystalmines.Points) package com.nitrome.crystalmines { import flash.display.*; public class Points extends MovieClip { public static const POINTS_CRYSTAL_START_POINT_PLAYER1_X:int = 10; public static const POINTS_CRYSTAL_START_POINT_PLAYER1_Y:int = 40; public static const POINTS_CRYSTAL_START_POINT_PLAYER2_X:int = 540; public static const POINTS_CRYSTAL_START_POINT_PLAYER2_Y:int = 40; public static const POINTS_CRYSTAL_START_POINT_PLAYER_ARRAY_X = new Array(POINTS_CRYSTAL_START_POINT_PLAYER1_X, POINTS_CRYSTAL_START_POINT_PLAYER2_X); public static const POINTS_CRYSTAL_START_POINT_PLAYER_ARRAY_Y = new Array(POINTS_CRYSTAL_START_POINT_PLAYER1_Y, POINTS_CRYSTAL_START_POINT_PLAYER2_Y); } }//package com.nitrome.crystalmines
Section 144
//Puke (com.nitrome.crystalmines.Puke) package com.nitrome.crystalmines { import Box2D.Dynamics.*; import flash.display.*; public class Puke extends MovieClip { private var _hitGround:Boolean;// = false public var body:b2Body; public var hitRadius:Number;// = 0 public function Puke(){ gotoAndPlay(0); } public function setPosition(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } public function set hitGround(_arg1:Boolean):void{ _hitGround = _arg1; } public function get hitGround():Boolean{ return (_hitGround); } } }//package com.nitrome.crystalmines
Section 145
//Shield (com.nitrome.crystalmines.Shield) package com.nitrome.crystalmines { import flash.display.*; public class Shield extends MovieClip { private var _hit:Boolean;// = false private var _dx:Number;// = 0 private var _dy:Number;// = 0 public var hitRadius:Number;// = 0 public function Shield(){ gotoAndPlay(0); } public function setPosition(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } public function setMovement(_arg1:Number, _arg2:Number){ _dx = _arg1; _dy = _arg2; } public function update():void{ this.x = (this.x + _dx); this.y = (this.y + _dy); } public function set hit(_arg1:Boolean):void{ _hit = _arg1; } public function get hit():Boolean{ return (_hit); } } }//package com.nitrome.crystalmines
Section 146
//ShieldProtector (com.nitrome.crystalmines.ShieldProtector) package com.nitrome.crystalmines { import Box2D.Dynamics.*; import flash.display.*; public class ShieldProtector extends MovieClip { private var _hit:Boolean;// = false private var _noOfHits:int;// = 0 private var _shieldArray; private var _shield1; private var _shield2; private var _shield3; private var _shieldAngleArray; private var _shield1Angle:Number;// = 0 private var _shield2Angle:Number;// = 120 private var _shield3Angle:Number;// = 240 public static const HIT_RADIUS:Number = 40; public static const ROTATION_SPEED:Number = 10; public function ShieldProtector(){ _shieldArray = new Array(); _shield1 = new Shield(); _shield2 = new Shield(); _shield3 = new Shield(); _shieldAngleArray = new Array(); super(); enable(); } public function enable():void{ var _local1:int; _shieldArray.push(_shield1); _shieldArray.push(_shield2); _shieldArray.push(_shield3); _shieldAngleArray.push(_shield1Angle); _shieldAngleArray.push(_shield2Angle); _shieldAngleArray.push(_shield3Angle); while (_local1 < _shieldArray.length) { addChild(_shieldArray[_local1]); _local1++; }; update(this.x, this.y); } public function renew():void{ var _local1:int; while (_local1 < _shieldArray.length) { _shieldArray[_local1].visible = true; _local1++; }; } public function setPosition(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } public function update(_arg1:Number, _arg2:Number):void{ var _local3:int; var _local4:Number; var _local5:Number; var _local6:Number; setPosition(_arg1, _arg2); updateShieldAngle(); while (_local3 < _shieldArray.length) { _local4 = ((_shieldAngleArray[_local3] * Math.PI) / 180); _local5 = (HIT_RADIUS * Math.cos(_local4)); _local6 = (HIT_RADIUS * Math.sin(_local4)); _shieldArray[_local3].setPosition(_local5, _local6); _local3++; }; } private function updateShieldAngle():void{ var _local1:int; while (_local1 < _shieldArray.length) { _shieldAngleArray[_local1] = (_shieldAngleArray[_local1] + ROTATION_SPEED); _local1++; }; } public function hit():void{ var _local1:int; var _local2:MovieClip; while (_local1 < _shieldArray.length) { _local2 = _shieldArray[(_local1 + _noOfHits)]; _local2.visible = false; _noOfHits++; break; _local1++; }; } public function set noOfHits(_arg1:int):void{ _noOfHits = _arg1; } public function get noOfHits():int{ return (_noOfHits); } } }//package com.nitrome.crystalmines
Section 147
//Tongue (com.nitrome.crystalmines.Tongue) package com.nitrome.crystalmines { import flash.display.*; public class Tongue extends MovieClip { private var size:uint;// = 80 private var bgColor:uint;// = 0xFFCC00 private var borderColor:uint;// = 0x666666 private var borderSize:uint;// = 0 private var cornerRadius:uint;// = 9 private var gutter:uint;// = 5 public function Tongue(){ stop(); } public function clearTongue(){ graphics.clear(); } public function drawTongueSprite(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:Number){ this.x = _arg1; this.y = _arg2; this.width = _arg5; } public function drawTongue(_arg1:int, _arg2:int, _arg3:int, _arg4:int){ graphics.clear(); graphics.lineStyle(2, 14120082); graphics.moveTo(_arg1, _arg2); graphics.lineTo(_arg3, _arg4); graphics.lineStyle(2, 0x422400); } } }//package com.nitrome.crystalmines
Section 148
//WorldContainer (com.nitrome.crystalmines.WorldContainer) package com.nitrome.crystalmines { import flash.display.*; public class WorldContainer extends MovieClip { private var _leftOffSet:Number;// = 153 private var _rightOffSet:Number;// = -323 private var _topOffSet:Number;// = 200730 private var _vecX:Number; private var _vecY:Number; private var _newX:Number;// = 0 private var _newY:Number;// = 0 public function WorldContainer():void{ _vecX = 0; _vecY = 0; } public function restrictMovement(_arg1:Number, _arg2:Number, _arg3:Number):void{ _leftOffSet = _arg1; _rightOffSet = _arg2; _topOffSet = _arg3; } public function get topOffset():Number{ return (_topOffSet); } public function set topOffset(_arg1:Number):void{ _topOffSet = _arg1; } public function update(_arg1:Number, _arg2:Number):void{ _newX = 0; _newY = 0; if (_arg1 >= (stage.stageWidth / 2)){ _newX = ((stage.stageWidth / 2) - _arg1); }; if (_arg1 <= (stage.stageWidth / 2)){ _newX = ((stage.stageWidth / 2) - _arg1); }; if (_newX > -16){ _newX = -16; }; _vecX = (_newX - x); _vecY = (_newY - y); x = _newX; y = _newY; } public function get newX():Number{ return (_newX); } public function get newY():Number{ return (_newY); } public function get vecX():Number{ if ((((_vecX < 0.1)) && ((_vecX > 0)))){ return (0); }; if ((((_vecX > -0.1)) && ((_vecX < 0)))){ return (0); }; return (_vecX); } public function get vecY():Number{ return (_vecY); } } }//package com.nitrome.crystalmines
Section 149
//XMLData (com.nitrome.crystalmines.XMLData) package com.nitrome.crystalmines { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import flash.display.*; import Box2D.Collision.*; public final class XMLData extends MovieClip { private static var _noOfColumnsInGame:int = 0; private static var _crystalColumnsInGame:int = 0; private static var _bodyDef:b2BodyDef; public static var xml:XML = <level w="302" h="12"> <a>-:3624</a> <t>-:39,baddy_runner,-:4,baddy_runner,-:4,baddy_runner,-:14,slow,-:3,baddy_runner,-:4,baddy_runner,-:5,baddy_runner,-:42,boulder2,-:237,mushroom:8,-:87,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-:9,boulder1:4,-,baddy_explosive_expert,boulder1:4,-,baddy_explosive_expert,boulder1:4,-,baddy_explosive_expert,boulder1:3,-,baddy_explosive_expert,boulder1:4,-:38,fast,-:3,CrystalSmall:33,-:13,StartEnd,-:2,StartEnd,Hero1,Hero2,-:27,CrystalSmall:3,-:14,CrystalSmall:3,-:6,mushroom,rock2X4,-:3,rock_gem2,rocklong2,-,rock4,mushroom,-:16,CrystalSmall:5,-:2,mushroom:4,-:58,rock2X4crystals,-:3,rocklong1,-,rock2X4crystals,-:3,rock2X2,-,rock4,rock3,rock3X2crystals,-,rock2X2,-,rockgemlong1_half1,rocklong1_half2,rock4:2,rocklong1_half1,rockgemlong1_half2,-:42,CrystalLarge:2,-:3,baddy_spider,-:4,CrystalLarge:2,-:3,baddy_spider,-:3,CrystalLarge:2,-:3,baddy_spider,-:3,CrystalLarge:2,-:6,CrystalSmall:33,-:39,CrystalSmall:3,-:4,CrystalSmall:3,-:3,CrystalSmall:3,-:8,CrystalSmall:3,-:5,mushroom,rock_gem4,-:4,rock3X2,-,rock2X2,-,rock4,mushroom,-:7,mushroom:5,-:3,CrystalSmall:5,-:2,rock2X4crystals,-:5,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:5,mushroom:4,-:6,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-:5,rocklong2,-:7,rock_gem2,rock_gem1,-:4,rock2X2,-,rocklong1_half1,rocklong1_half2,-:4,mushroom:2,-:115,safeground3,safeground1:2,safeground3,safeground2,-,safeground2:2,-,safeground2,-,safeground2,-,safeground2,-:10,CrystalSmall:3,-:4,CrystalSmall:3,-:4,mushroom:2,-:4,CrystalSmall:3,-:3,CrystalSmall:3,-:2,mushroom:2,-:5,mushroom,rock3X2crystals,-,rocklong1,-,rocklong2,-:5,rock2X2crystals,-,mushroom,-:6,rockgemlong2_half1,rocklong1_half2,rockgemlong1_half1,rocklong1_half2,rock_gem3,-:3,CrystalSmall:5,-:8,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-,CrystalSmall,-:2,fast,-,mushroom,rock3X2crystals,-,rock_gem2,rock4,mushroom,-:23,rocklong1_half1,rockgemlong1_half2,rocklong1,-,rocklong1,-,rocklong2,-,rockgemlong2_half1,rockgemlong2_half2,rocklong2,-,rockgemlong1_half1,rockgemlong1_half2,-:2,rocklong2,-:9,rock2,rock1,-:38,CrystalLarge:2,slow,-:7,CrystalLarge:2,-:7,CrystalLarge:2,-:7,CrystalLarge:2,-:11,mushroom:2,-:30,mushroom:2,-:13,slow,-:10,fast,-,CrystalSmall:3,-:4,mushroom:2,-:5,rockgemlong1_half1,rocklong1_half2,-:4,mushroom:2,-:4,CrystalSmall:3,-:2,rocklong2,-:5,mushroom,rock4,-:2,rock3X4,-:5,rock4,rock_gem1,-:2,rock_gem4,mushroom,-:13,CrystalSmall:5,-:2,rock3X2,-,rock_gem1,rock4,-:28,mushroom,rock4,-:2,rock2X2crystals,-,rock4,mushroom,-:4,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-:25,mushroom:2,rock4,rock_gem4,-:3,mineLight,-:21,med,-:44,mineLight,-:8,rocklong2,-:31,rock2,rock1,-:26,mushroom:2,-:5,rocklong2_half1,rocklong1_half2,-:11,rocklong1,-:5,mushroom:2,-:8,mushroom,rock4,rock2,-:6,rock2X4,-:3,rock2X3,-:2,rock4,mushroom,-:12,CrystalSmall:5,-,mushroom,-:2,rock2X2,-:29,rock4,rock_gem2,-:4,rocklong1_half1,rockgemlong1_half2,-:46,rock1,rock4,rock2X2crystals,-:39,CrystalLarge:2,-:8,CrystalLarge:2,-:7,CrystalLarge:2,-:7,CrystalLarge:2,-:6,mushroom:2,-:8,mushroom:2,-:8,mushroom:2,-:43,rockgemlong1_half1,rockgemlong1_half2,-:24,rocklong2,-:9,rockgemlong1_half1,rockgemlong1_half2,rock3,rocklong1,-:12,rockgemlong2_half1,rocklong1_half2,-:10,mineLight,-:7,rock_gem3,-:7,rotate_platform,-:7,rotate_platform,-:7,rotate_platform,-:20,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,mushroom:20,-:2,mushroom:2,rock3,ruby1,-:76,rocklong2,-:9,rocklong1,-:9,rock_gem4,rock4,-:12,mushroom:2,-:102,rock3X4crystals,-:30,CrystalSmall:11,-:20,rock2X2,-,rock_gem1,rock4,rock2X4crystals,-:3,rocklong2,-,rock_gem3,rock2,rock2X4,-:3,rocklong2,-,rock2,rock_gem2,-:2,rock_gem3,rocklong2,-,rock4,rock_gem2,rock4,-:38,CrystalLarge:2,-:8,CrystalLarge:2,-:7,CrystalLarge:2,-:7,CrystalLarge:2,-:31,mushroom:2,-:7,rocklong1,-:64,mushroom,-:3,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,CrystalLarge,-,mushroom,-:48,mushroom:12,-:22,rocklong2,-:5,rock4,rocklong2,-,rock_gem2,-:4,rock_gem3,rock2,rocklong2,-:3,rock4,rockgemlong1_half1,rocklong1_half2,ruby1,rock4:2,-:89,mushroom:2,-:8,rocklong2,-:22,mushroom:51,rock4,mushroom:19,rock4,mushroom:18,-:4,mushroom:3,-:4,mushroom,doublejump_icon,mushroom,-:5,doublejump_icon,mushroom:2,-:6,mushroom:2,rock4,rockgemlong1_half1,rockgemlong2_half2,rock4,rock2X4crystals,-:3,rockgemlong1_half1,rock_gem2,rock2X2crystals,-,mushroom:20,rock2X4crystals,-:3,rocklong2,-,rockgemlong1_half1,rockgemlong1_half2,rock2X4,-:3,rock4,ruby1,rock3,rock2X3,-:2,rock2X2crystals,-,mushroom:2,ruby1,rocklong2,-,rock4,rock2X2crystals,-,mushroom:72,-:17,rockgemlong1_half1,rockgemlong2_half2,-:13,mushroom:2,-:16,rock4,rockgemlong1_half1,rock_gem2,rocklong2,-,rockgemlong2_half1,rocklong1_half2,rockgemlong1_half1,rocklong1_half2,rocklong1,-,rocklong2_half1,rock_gem2,rocklong2,-,rocklong2_half1,rock3,rocklong1_half1,rocklong2_half2,rocklong2,-,rockgemlong1_half1,rockgemlong2_half2,rocklong2,-,rocklong2,-,rockgemlong2_half1,rockgemlong1_half2,rocklong1_half1,rocklong1_half2,rockgemlong1_half1,rockgemlong1_half2,rockgemlong1_half1,rocklong2_half2,rocklong1,-,rockgemlong1_half1,rockgemlong2_half2,rocklong2,-,rocklong2,-,rockgemlong1_half1,rockgemlong2_half2,rocklong2,-,rockgemlong1_half1,rocklong2_half2,rocklong2,-,rocklong1,-,rocklong2,-,rockgemlong1_half1,rocklong1_half2,rocklong1,-,rocklong2,-,rockgemlong1_half1,rocklong1_half2,rocklong2,-,rock4:2,rockgemlong2_half1,rock_gem2,rocklong2,-,rockgemlong1_half1,rocklong1_half2,rocklong2,-,rockgemlong2_half1,rockgemlong1_half2,rocklong1,-,rockgemlong2_half1,rocklong2_half2,rockgemlong1_half1,rocklong1_half2,rocklong1_half1,rocklong2_half2,rocklong1_half1,rocklong1_half2,rocklong1_half1,rocklong2_half2,rocklong2_half1,rocklong2_half2,rock_gem3,rocklong1,-,rocklong2,-,rock4,-:4,rock2,rocklong2,-:6,rock2,rock_gem4,rock3,-:6,rockgemlong1_half1,rockgemlong2_half2,rocklong2,-,rocklong2,-:5,rockgemlong2_half1,rockgemlong1_half2,-:2,rocklong2,-,rockgemlong1_half1,rocklong1_half2,rocklong2,-,rock4,rock_gem1,rockgemlong2_half1,rockgemlong2_half2,rock_gem2,rock4,rockgemlong1_half1,rockgemlong2_half2,rocklong1,-,rockgemlong1_half1,rockgemlong1_half2,rock4,rock_gem3,-:4,rock4,rock_gem3,rocklong2,-:5,ruby1,rock4,rock3,-:5,rock4:3,rocklong2,-,rock4,-:2,rocklong1,-,rocklong2,-,rocklong1_half1,rockgemlong1_half2,rocklong2,-,rockgemlong2_half1,rocklong1_half2,rocklong1_half1,rockgemlong2_half2,rocklong2,-,rocklong2,-,rockgemlong1_half1,rocklong1_half2,rocklong1,-,rocklong1,-,rocklong2,-,rocklong2_half1,rockgemlong1_half2,rocklong2,-,rocklong2_half1,rockgemlong1_half2,rock_gem1,rocklong2_half2,rocklong1,-,rocklong1,-,rock_gem3,rock4,rocklong1,-,rocklong2,-,rocklong2,-,rocklong1,-,rockgemlong2_half1,rockgemlong2_half2,rocklong1,-,rockgemlong1_half1,rockgemlong1_half2,rock4:2,rocklong1,-,rock_gem1,rocklong2_half2,rocklong1,-,rocklong2,-,rocklong2_half1,rockgemlong2_half2,rocklong1,-,rockgemlong1_half1,rockgemlong1_half2,rocklong2,-,rocklong1_half1,rockgemlong2_half2,-:32,rockgemlong1_half1,rockgemlong1_half2,-:16</t> </level> ; public static function getXML(_arg1:b2World, _arg2:WorldContainer, _arg3:Number, _arg4:Number, _arg5:Array, _arg6:Array, _arg7:Array, _arg8:Array, _arg9:Array, _arg10:Array, _arg11:Array, _arg12:Array, _arg13:Array, _arg14:Array):void{ var _local22:String; var _local23:int; var _local24:int; var _local25:MovieClip; var _local26:*; var _local27:*; var _local28:*; var _local29:*; var _local30:*; var _local15:Number = (_arg3 + _arg4); var _local16:Number = (_arg3 - (_arg4 + 300)); var _local17:XML = xml; var _local18:int; var _local19:int; var _local20:Array = unserialize(_local17.t); var _local21:int; while (_local21 < _local20.length) { if (_local19 == _local17.@w){ _local19 = 0; _local18++; }; _local22 = _local20[_local21]; _local23 = (_local19 * 32); _local24 = (_local18 * 32); if (((((((!((_local22 == "-"))) && (!((_local22 == "a"))))) && (!((_local22 == ObjectManager.PLAYER_NAME))))) && (!((_local22 == ObjectManager.PLAYER_NAME2))))){ _local25 = ObjectManager.createObject(_local22); _local25.gamePositionY = _local24; _local25.gamePositionX = _local23; if ((((_local25.gamePositionX < _local15)) && ((_local25.gamePositionX > _local16)))){ _local25.inPlace = true; if (((((((((((((((((((((((((((((!((_local22 == ObjectManager.INSTRUCTIONS_BOARD_NAME))) && (!((_local22 == ObjectManager.ENEMY_EXPLOSIVE_NAME))))) && (!((_local22 == ObjectManager.ENEMY_LICKER_NAME))))) && (!((_local22 == ObjectManager.ENEMY_PUKER_NAME))))) && (!((_local22 == ObjectManager.ENEMY_PUSHER_NAME))))) && (!((_local22 == ObjectManager.ENEMY_RUNNER_NAME))))) && (!((_local22 == ObjectManager.ENEMY_SNAIL_NAME))))) && (!((_local22 == ObjectManager.ENEMY_SPIDER_NAME))))) && (!((_local22 == ObjectManager.CRYSTAL_SMALL_NAME))))) && (!((_local22 == ObjectManager.CRYSTAL_LARGE_NAME))))) && (!((_local22 == ObjectManager.LIGHT_NAME))))) && (!((_local22 == ObjectManager.FAST_NAME))))) && (!((_local22 == ObjectManager.CRAZY_NAME))))) && (!((_local22 == ObjectManager.MED_NAME))))) && (!((_local22 == ObjectManager.SLOW_NAME))))){ _arg5.push(_local25); }; if ((((_local22 == "slope1")) || ((_local22 == "slope2")))){ _local25.gamePositionX = (_local25.gamePositionX + 16); _local25.gamePositionY = (_local25.gamePositionY + 16); _bodyDef = ObjectManager.createRectanglePlatform(_arg1, _local25.gamePositionX, _local25.gamePositionY, 32, 32, -32, 0, 0, -32, 0, 0, _local25); _arg2.addChild(_bodyDef.userData); } else { if (_local22 == ObjectManager.INSTRUCTIONS_BOARD_NAME){ _local26 = ObjectManager.createObject(ObjectManager.INSTRUCTIONS_BOARD_NAME); _local25.gamePositionX = (_local25.gamePositionX - 16); _local25.gamePositionY = (_local25.gamePositionY - 16); _local26.x = _local25.gamePositionX; _local26.y = _local25.gamePositionY; _arg2.addChild(_local26); _arg2.setChildIndex(_local26, 0); } else { if ((((((((_local22 == ObjectManager.FAST_NAME)) || ((_local22 == ObjectManager.CRAZY_NAME)))) || ((_local22 == ObjectManager.MED_NAME)))) || ((_local22 == ObjectManager.SLOW_NAME)))){ _local27 = ObjectManager.createObject(_local22); _local27.setPosition(_local25.gamePositionX, _local25.gamePositionY); _local27.name = _local22; _arg2.addChild(_local27); _local27.visible = false; _arg14.push(_local27); } else { if ((((_local22 == "slope_backwards1")) || ((_local22 == "slope_backwards2")))){ _local25.gamePositionX = (_local25.gamePositionX - 16); _local25.gamePositionY = (_local25.gamePositionY + 16); _bodyDef = ObjectManager.createRectanglePlatform(_arg1, _local25.gamePositionX, _local25.gamePositionY, 32, 32, 0, 0, 0, -32, 32, 0, _local25); _arg2.addChild(_bodyDef.userData); } else { if ((((_local22 == "rocklong1")) || ((_local22 == "rocklong2")))){ _local25.gamePositionX = (_local25.gamePositionX + 16); _bodyDef = ObjectManager.createSquarePlatform(_arg1, _local25.gamePositionX, _local25.gamePositionY, _local25.width, _local25.height, 0, new b2Vec2(0, 0), ObjectManager.BLOCK_NAME, _local25); _arg2.addChild(_bodyDef.userData); } else { if ((((_local22 == ObjectManager.CRYSTAL_LARGE_NAME)) || ((_local22 == ObjectManager.CRYSTAL_SMALL_NAME)))){ if (_local22 == ObjectManager.CRYSTAL_LARGE_NAME){ _local25.gamePositionX = (_local25.gamePositionX - ((_local25.width / 3) * 2)); } else { _local25.gamePositionX = (_local25.gamePositionX - _local25.width); }; if (_local22 == ObjectManager.CRYSTAL_LARGE_NAME){ _local25.gamePositionY = (_local25.gamePositionY - ((_local25.height / 3) * 2)); } else { _local25.gamePositionY = (_local25.gamePositionY - _local25.height); }; _local28 = ObjectManager.createObject(_local22); _local28.crystalType = _local22; _local28.setPosition(_local25.gamePositionX, _local25.gamePositionY); _arg7.push(_local28); _arg2.addChild(_local28); } else { if (_local22 == ObjectManager.LIGHT_NAME){ _local25.gamePositionX = (_local25.gamePositionX - (_local25.width / 2)); _local25.gamePositionY = (_local25.gamePositionY - (_local25.height / 2)); _local29 = ObjectManager.createObject(_local22); _local29.setPosition(_local25.gamePositionX, _local25.gamePositionY); _arg13.push(_local29); _local29.withBat = true; _arg2.addChild(_local29); _arg2.setChildIndex(_local29, 0); } else { if ((_local22 == ObjectManager.CHECK_POINT_NAME)){ _local25.gamePositionX = (_local25.gamePositionX + 4); _local25.gamePositionY = (_local25.gamePositionY + ((_local25.height / 4) - 2)); _bodyDef = ObjectManager.createCheckPoint(_arg1, _local25.gamePositionX, _local25.gamePositionY, _local25.width, _local25.height, true, ObjectManager.CHECK_POINT_NAME, _local25); _arg2.addChild(_bodyDef.userData); _local30 = ObjectManager.createObject(ObjectManager.LIGHT_NAME); _local30.withBat = false; _local30.x = (_local30.x - 3); _bodyDef.userData.addChild(_local30); _arg12.push(_bodyDef.userData); _bodyDef.userData.extraData = _local30; } else { if (_local22 == ObjectManager.ROTATE_BLOCK_NAME){ _local25.gamePositionX = (_local25.gamePositionX + 32); _local25.blockRotationTimer = ((Math.random() * (50 - 0)) + 0); _bodyDef = ObjectManager.createRotatingPlatform(_arg1, _local25.gamePositionX, _local25.gamePositionY, _local25.width, _local25.height, 0, new b2Vec2(0, 0), ObjectManager.ROTATE_BLOCK_NAME, _local25); _arg2.addChild(_bodyDef.userData); } else { if ((((_local22 == ObjectManager.SMALL_BOULDER_NAME)) || ((_local22 == ObjectManager.LARGE_BOULDER_NAME)))){ if (_local22 == ObjectManager.LARGE_BOULDER_NAME){ _local25.gamePositionX = (_local25.gamePositionX + 32); }; _bodyDef = ObjectManager.createCircle(_arg1, _local22, _local25.gamePositionX, _local25.gamePositionY, _local25.width, _local25.height, false, _local25); _arg2.addChild(_bodyDef.userData); _bodyDef.userData.body.SetMassFromShapes(); } else { if (_local22 == ObjectManager.MINECART_NAME){ _local25.gamePositionX = (_local25.gamePositionX + 16); _bodyDef = ObjectManager.createSmallMineCart(_arg1, _local25.gamePositionX, _local25.gamePositionY, _local25.width, _local25.height, false, ObjectManager.MINECART_NAME, _local25); _arg2.addChild(_bodyDef.userData); _arg9.push(_bodyDef.userData); } else { if (_local22 == ObjectManager.MINECART_LONG_NAME){ _bodyDef = ObjectManager.createMineCart(_arg1, _local25.gamePositionX, _local25.gamePositionY, _local25.width, _local25.height, false, ObjectManager.MINECART_NAME, _local25); _arg2.addChild(_bodyDef.userData); _arg9.push(_bodyDef.userData); } else { if ((((((_local22 == ObjectManager.PICK_UP_DOUBLE_JUMP)) || ((_local22 == ObjectManager.PICK_UP_FLASH)))) || ((_local22 == ObjectManager.PICK_UP_INVINCIBLE)))){ _bodyDef = ObjectManager.createBox(_arg1, _local25.gamePositionX, _local25.gamePositionY, _local25.width, _local25.height, true, _local22, _local25); _arg2.addChild(_bodyDef.userData); _arg11.push(_bodyDef.userData); } else { if (_local22 == ObjectManager.BOMB_NAME){ _bodyDef = ObjectManager.createBomb(_arg1, _local25.gamePositionX, _local25.gamePositionY, _local25.width, _local25.height, false, ObjectManager.BOMB_NAME, _local25); _arg2.addChild(_bodyDef.userData); _arg8.push(_bodyDef.userData); } else { if (_local22 == ObjectManager.MUSHROOM_NAME){ _bodyDef = ObjectManager.createBox(_arg1, _local25.gamePositionX, _local25.gamePositionY, _local25.width, _local25.height, true, ObjectManager.MUSHROOM_NAME, _local25); _arg2.addChild(_bodyDef.userData); _arg6.push(_bodyDef.userData); } else { if (_local22 == ObjectManager.CRATE_NAME){ _bodyDef = ObjectManager.createCreate(_arg1, _local25.gamePositionX, _local25.gamePositionY, _local25.width, _local25.height, true, ObjectManager.CRATE_NAME, _local25); _arg2.addChild(_bodyDef.userData); } else { if ((_local22 == ObjectManager.RAIL_GROUND1)){ _local25.gamePositionX = (_local25.gamePositionX + 45); _local25.gamePositionY = (_local25.gamePositionY + 17); _bodyDef = ObjectManager.createRailPlatform(_arg1, _local25.gamePositionX, _local25.gamePositionY, _local25.width, _local25.height, 35.02, new b2Vec2(0, 0), ObjectManager.RAIL_GROUND1, _local25, true); _arg2.addChild(_bodyDef.userData); } else { if ((((_local22 == ObjectManager.RAIL_GROUND2)) || ((_local22 == ObjectManager.RAIL_GROUND3)))){ _local25.gamePositionY = (_local25.gamePositionY + 17); if (_local22 == ObjectManager.RAIL_GROUND3){ _bodyDef = ObjectManager.createRailPlatform(_arg1, _local25.gamePositionX, _local25.gamePositionY, _local25.width, _local25.height, 0, new b2Vec2(0, 0), _local22, _local25, false); } else { _bodyDef = ObjectManager.createRailPlatform(_arg1, _local25.gamePositionX, _local25.gamePositionY, _local25.width, _local25.height, 0, new b2Vec2(0, 0), _local22, _local25, true); }; _arg2.addChild(_bodyDef.userData); } else { if ((((((((((((((_local22 == ObjectManager.ENEMY_EXPLOSIVE_NAME)) || ((_local22 == ObjectManager.ENEMY_LICKER_NAME)))) || ((_local22 == ObjectManager.ENEMY_PUKER_NAME)))) || ((_local22 == ObjectManager.ENEMY_PUSHER_NAME)))) || ((_local22 == ObjectManager.ENEMY_RUNNER_NAME)))) || ((_local22 == ObjectManager.ENEMY_SNAIL_NAME)))) || ((_local22 == ObjectManager.ENEMY_SPIDER_NAME)))){ if (_local22 == ObjectManager.ENEMY_SPIDER_NAME){ createBaddy(_arg1, _arg2, _local22, _local25.gamePositionX, 0, 70, 0, true, _arg10); } else { if (_local22 == ObjectManager.ENEMY_SNAIL_NAME){ createBaddy(_arg1, _arg2, _local22, _local25.gamePositionX, -300, 36, 11, false, _arg10); } else { if (_local22 == ObjectManager.ENEMY_LICKER_NAME){ createBaddy(_arg1, _arg2, _local22, _local25.gamePositionX, -300, 15, 0, true, _arg10); } else { if ((((_local22 == ObjectManager.ENEMY_EXPLOSIVE_NAME)) || ((_local22 == ObjectManager.ENEMY_PUKER_NAME)))){ createBaddy(_arg1, _arg2, _local22, _local25.gamePositionX, (0 + (_local25.height / 2)), 0, 0, false, _arg10); } else { if (_local22 == ObjectManager.ENEMY_PUSHER_NAME){ createBaddy(_arg1, _arg2, _local22, _local25.gamePositionX, -300, 20, 0, false, _arg10); } else { createBaddy(_arg1, _arg2, _local22, _local25.gamePositionX, -300, 20, 0, true, _arg10); }; }; }; }; }; } else { if ((((_local22 == ObjectManager.BARREL_SIDE)) || ((_local22 == ObjectManager.BARREL_STAND)))){ if (_local22 == ObjectManager.BARREL_SIDE){ _bodyDef = ObjectManager.createCircle(_arg1, ObjectManager.BARREL_SIDE, _local25.gamePositionX, _local25.gamePositionY, _local25.width, _local25.height, true, _local25); } else { _bodyDef = ObjectManager.createBox(_arg1, _local25.gamePositionX, _local25.gamePositionY, _local25.width, _local25.height, true, ObjectManager.BARREL_STAND, _local25); }; _arg2.addChild(_bodyDef.userData); _bodyDef.userData.body.SetMassFromShapes(); } else { if ((((((_local22 == ObjectManager.BLOCK_SAFE_GROUND1)) || ((_local22 == ObjectManager.BLOCK_SAFE_GROUND2)))) || ((_local22 == ObjectManager.BLOCK_SAFE_GROUND3)))){ if (_local22 == ObjectManager.BLOCK_SAFE_GROUND2){ _local25.gamePositionX = (_local25.gamePositionX + 16); }; _bodyDef = ObjectManager.createBox(_arg1, _local25.gamePositionX, _local25.gamePositionY, _local25.width, _local25.height, true, ObjectManager.BLOCK_SAFE_GROUND, _local25); _arg2.addChild(_bodyDef.userData); } else { if ((((((((((((((((((_local22 == "rock2X2")) || ((_local22 == "rock2X2crystals")))) || ((_local22 == "rock2X3")))) || ((_local22 == "rock2X4")))) || ((_local22 == "rock3X4crystals")))) || ((_local22 == "rock2X4crystals")))) || ((_local22 == "rock3X4")))) || ((_local22 == "rock3X2crystals")))) || ((_local22 == "rock3X2")))){ if ((((_local22 == "rock2X2")) || ((_local22 == "rock2X2crystals")))){ _local25.gamePositionX = (_local25.gamePositionX + 16); }; if ((((_local22 == "rock2X2")) || ((_local22 == "rock2X2crystals")))){ _local25.gamePositionY = (_local25.gamePositionY + 16); }; if ((((_local22 == "rock2X3")) || ((_local22 == "rock2X3crystals")))){ _local25.gamePositionX = (_local25.gamePositionX + (_local25.width / 3)); }; if ((((_local22 == "rock2X3")) || ((_local22 == "rock2X3crystals")))){ _local25.gamePositionY = (_local25.gamePositionY + 16); }; if ((((_local22 == "rock2X4")) || ((_local22 == "rock2X4crystals")))){ _local25.gamePositionX = (_local25.gamePositionX + (32 + 16)); }; if ((((_local22 == "rock2X4")) || ((_local22 == "rock2X4crystals")))){ _local25.gamePositionY = (_local25.gamePositionY + 16); }; if ((((_local22 == "rock3X4")) || ((_local22 == "rock3X4crystals")))){ _local25.gamePositionX = (_local25.gamePositionX + ((_local25.width / 4) + 16)); }; if ((((_local22 == "rock3X4")) || ((_local22 == "rock3X4crystals")))){ _local25.gamePositionY = (_local25.gamePositionY + (_local25.height / 3)); }; if ((((_local22 == "rock3X2")) || ((_local22 == "rock3X2crystals")))){ _local25.gamePositionX = (_local25.gamePositionX + 16); }; if ((((_local22 == "rock3X2")) || ((_local22 == "rock3X2crystals")))){ _local25.gamePositionY = (_local25.gamePositionY + (_local25.height / 3)); }; _bodyDef = ObjectManager.createSquarePlatform(_arg1, _local25.gamePositionX, _local25.gamePositionY, _local25.width, _local25.height, 0, new b2Vec2(0, 0), ObjectManager.BLOCK_NAME, _local25); _arg2.addChild(_bodyDef.userData); } else { if ((((((_local22 == ObjectManager.STICKY_BLOCK_NAME1)) || ((_local22 == ObjectManager.STICKY_BLOCK_NAME2)))) || ((_local22 == ObjectManager.STICKY_BLOCK_NAME3)))){ _bodyDef = ObjectManager.createBox(_arg1, _local25.gamePositionX, _local25.gamePositionY, _local25.width, _local25.height, true, ObjectManager.STICKY_BLOCK_NAME, _local25); _arg2.addChild(_bodyDef.userData); } else { _bodyDef = ObjectManager.createBox(_arg1, _local25.gamePositionX, _local25.gamePositionY, _local25.width, _local25.height, true, ObjectManager.BLOCK_NAME, _local25); _arg2.addChild(_bodyDef.userData); }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; if (_noOfColumnsInGame < _local19){ noOfColumnsInGame = _local19; _crystalColumnsInGame = noOfColumnsInGame; }; }; }; _local19++; _local21++; }; } public static function getSpeed(_arg1:b2World, _arg2:WorldContainer, _arg3:Array, _arg4:Number, _arg5:Array, _arg6:Boolean):void{ var _local13:String; var _local14:int; var _local15:int; var _local7:Number = _arg4; var _local8:XML = xml; var _local9:int; var _local10:int; var _local11:Array = unserialize(_local8.t); var _local12:int; while (_local12 < _local11.length) { if (_local10 == _local8.@w){ _local10 = 0; _local9++; }; _local13 = _local11[_local12]; _local14 = (_local10 * 32); _local15 = (_local9 * 32); if (_arg6){ if (((!((_local13 == "-"))) && (!((_local13 == "a"))))){ if (_local13 == ObjectManager.PLAYER_NAME){ PlatformMiner._player1 = ObjectManager.createObject(ObjectManager.PLAYER_NAME); _arg5[0] = PlatformMiner._player1; _bodyDef = ObjectManager.createHero(_arg1, _local13, _local14, (_local15 + 36), 45, 51, _arg5[0]); _arg2.addChild(_bodyDef.userData); } else { if ((((_local13 == ObjectManager.PLAYER_NAME2)) && ((PlatformMiner.noOfPlayers == 2)))){ PlatformMiner._player2 = ObjectManager.createObject(ObjectManager.PLAYER_NAME2); _arg5[1] = PlatformMiner._player2; _bodyDef = ObjectManager.createHero(_arg1, _local13, _local14, (_local15 + 36), 45, 51, _arg5[1]); _arg2.addChild(_bodyDef.userData); }; }; } else { if (_local14 < _local7){ if ((((((((_local13 == ObjectManager.FAST_NAME)) || ((_local13 == ObjectManager.CRAZY_NAME)))) || ((_local13 == ObjectManager.MED_NAME)))) || ((_local13 == ObjectManager.SLOW_NAME)))){ if (_local13 == ObjectManager.FAST_NAME){ _arg3[0] = PlatformMiner.FAST_LENGTH; _arg3[1] = PlatformMiner.FAST_SPEED; Block.speed = PlatformMiner.FAST_BLOCK_SPEED; } else { if (_local13 == ObjectManager.MED_NAME){ _arg3[0] = PlatformMiner.MEDIUM_LENGTH; _arg3[1] = PlatformMiner.MEDIUM_SPEED; Block.speed = PlatformMiner.MEDIUM_BLOCK_SPEED; } else { if (_local13 == ObjectManager.CRAZY_NAME){ _arg3[0] = PlatformMiner.CRAZY_LENGTH; _arg3[1] = PlatformMiner.CRAZY_SPEED; Block.speed = PlatformMiner.CRAZY_BLOCK_SPEED; } else { if (_local13 == ObjectManager.SLOW_NAME){ _arg3[0] = PlatformMiner.SLOW_LENGTH; _arg3[1] = PlatformMiner.SLOW_SPEED; Block.speed = PlatformMiner.SLOW_BLOCK_SPEED; }; }; }; }; }; }; }; }; _local10++; _local12++; }; } public static function addExtraCrystal(_arg1:b2World, _arg2:WorldContainer, _arg3:Array):void{ var _local9:String; var _local10:int; var _local11:int; var _local12:MovieClip; var _local13:*; var _local14:MovieClip; var _local15:*; var _local4:XML = xml; var _local5:int; var _local6:int; var _local7:Array = unserialize(_local4.t); var _local8:int; while (_local8 < _local7.length) { if (_local6 == _local4.@w){ _local6 = 0; _local5++; }; _local9 = _local7[_local8]; _local10 = (_local6 * 32); _local11 = (_local5 * 32); if (((((((!((_local9 == "-"))) && (!((_local9 == "a"))))) && (!((_local9 == ObjectManager.PLAYER_NAME))))) && (!((_local9 == ObjectManager.PLAYER_NAME2))))){ if ((((((((((((((((((_local6 == (_crystalColumnsInGame + 1))) || ((_local6 == (_crystalColumnsInGame + 2))))) || ((_local6 == (_crystalColumnsInGame + 3))))) || ((_local6 == (_crystalColumnsInGame + 4))))) || ((_local6 == (_crystalColumnsInGame + 5))))) || ((_local6 == (_crystalColumnsInGame + 6))))) || ((_local6 == (_crystalColumnsInGame + 7))))) || ((_local6 == (_crystalColumnsInGame + 8))))) || ((_local6 == (_crystalColumnsInGame + 9))))){ if ((((_local9 == ObjectManager.CRYSTAL_LARGE_NAME)) || ((_local9 == ObjectManager.CRYSTAL_SMALL_NAME)))){ _local12 = ObjectManager.createObject(_local9); _local12.gamePositionY = _local11; _local12.gamePositionX = _local10; if (_local9 == ObjectManager.CRYSTAL_LARGE_NAME){ _local12.gamePositionX = (_local12.gamePositionX - ((_local12.width / 3) * 2)); } else { _local12.gamePositionX = (_local12.gamePositionX - _local12.width); }; if (_local9 == ObjectManager.CRYSTAL_LARGE_NAME){ _local12.gamePositionY = (_local12.gamePositionY - ((_local12.height / 3) * 2)); } else { _local12.gamePositionY = (_local12.gamePositionY - _local12.height); }; _local13 = ObjectManager.createObject(_local9); _local13.crystalType = _local9; _local13.setPosition(_local12.gamePositionX, _local12.gamePositionY); _arg3.push(_local13); _arg2.addChild(_local13); } else { if (_local9 == ObjectManager.INSTRUCTIONS_BOARD_NAME){ _local14 = ObjectManager.createObject(_local9); _local14.gamePositionY = _local11; _local14.gamePositionX = _local10; _local15 = ObjectManager.createObject(ObjectManager.INSTRUCTIONS_BOARD_NAME); _local14.gamePositionY = (_local14.gamePositionY - 16); _local14.gamePositionX = (_local14.gamePositionX - 16); _local15.x = _local14.gamePositionX; _local15.y = _local14.gamePositionY; _arg2.addChild(_local15); _arg2.setChildIndex(_local15, 0); }; }; }; }; _local6++; _local8++; }; _crystalColumnsInGame = (_crystalColumnsInGame + 9); } public static function addNewColumn(_arg1:b2World, _arg2:WorldContainer, _arg3:int, _arg4:Array, _arg5:Array, _arg6:Array, _arg7:Array, _arg8:Array, _arg9:Array, _arg10:Array, _arg11:Array, _arg12:Array, _arg13:Array, _arg14:Array, _arg15:Array):void{ var _local21:String; var _local22:int; var _local23:int; var _local24:*; var _local25:*; var _local26:*; var _local27:*; var _local28:int; var _local29:Number; var _local30:Number; var _local31:int; var _local32:int; var _local33:*; var _local34:*; var _local35:*; var _local36:*; var _local16:XML = xml; var _local17:int; var _local18:int; var _local19:Array = unserialize(_local16.t); var _local20:int; while (_local20 < _local19.length) { if (_local18 == _local16.@w){ _local18 = 0; _local17++; }; _local21 = _local19[_local20]; _local22 = (_local18 * 32); _local23 = (_local17 * 32); if (((((((!((_local21 == "-"))) && (!((_local21 == "a"))))) && (!((_local21 == ObjectManager.PLAYER_NAME))))) && (!((_local21 == ObjectManager.PLAYER_NAME2))))){ if (_local18 == (_crystalColumnsInGame + 1)){ _local24 = ObjectManager.createObject(_local21); _local24.gamePositionY = _local23; _local24.gamePositionX = _local22; if ((((_local21 == ObjectManager.CRYSTAL_LARGE_NAME)) || ((_local21 == ObjectManager.CRYSTAL_SMALL_NAME)))){ if (_local21 == ObjectManager.CRYSTAL_LARGE_NAME){ _local24.gamePositionX = (_local24.gamePositionX - ((_local24.width / 3) * 2)); } else { _local24.gamePositionX = (_local24.gamePositionX - _local24.width); }; if (_local21 == ObjectManager.CRYSTAL_LARGE_NAME){ _local24.gamePositionY = (_local24.gamePositionY - ((_local24.height / 3) * 2)); } else { _local24.gamePositionY = (_local24.gamePositionY - _local24.height); }; _local25 = ObjectManager.createObject(_local21); _local25.crystalType = _local21; _local25.setPosition(_local24.gamePositionX, _local24.gamePositionY); _arg7.push(_local25); _arg2.addChild(_local25); } else { if (_local21 == ObjectManager.INSTRUCTIONS_BOARD_NAME){ _local26 = ObjectManager.createObject(_local21); _local27.gamePositionY = (_local27.gamePositionY - 16); _local27.gamePositionX = (_local27.gamePositionX - 16); _local26.x = _local24.gamePositionX; _local26.y = _local24.gamePositionY; _arg2.addChild(_local26); _arg2.setChildIndex(_local26, 0); }; }; }; if (_local18 == (_noOfColumnsInGame + 1)){ _local27 = ObjectManager.createObject(_local21); _local27.gamePositionY = _local23; _local27.gamePositionX = _local22; _local28 = 0; if (_local27.gamePositionY >= (PlatformMiner.STAGE_HEIGHT / 2)){ _local28 = 40; }; if (_local27.gamePositionY >= ((PlatformMiner.STAGE_HEIGHT / 3) * 2)){ _local28 = 60; }; if (_local27.gamePositionY > ((PlatformMiner.STAGE_HEIGHT / 4) * 3)){ _local28 = 80; }; if (_local27.gamePositionY < (PlatformMiner.STAGE_HEIGHT / 2)){ _local28 = -100; }; if (_local27.gamePositionY < (PlatformMiner.STAGE_HEIGHT / 3)){ _local28 = -100; }; if (_local27.gamePositionY < (PlatformMiner.STAGE_HEIGHT / 4)){ (_local28 - 100); }; _local29 = _local27.gamePositionY; _local30 = (_local27.gamePositionY + _local28); _local31 = (Math.round((Math.random() * (_local30 - _local29))) + _local29); _local29 = ((_arg3 + PlatformMiner.PLATFORM_LENGTH) + 100); _local30 = ((_arg3 + PlatformMiner.PLATFORM_LENGTH) + 200); _local32 = (Math.round((Math.random() * (_local30 - _local29))) + _local29); if ((((_local21 == "slope1")) || ((_local21 == "slope2")))){ _local27.gamePositionY = (_local27.gamePositionY + 16); _local27.gamePositionX = (_local27.gamePositionX + 16); _bodyDef = ObjectManager.createRectanglePlatform(_arg1, _local32, _local31, 32, 32, -32, 0, 0, -32, 0, 0, _local27); _bodyDef.userData.body.SetMass(new b2MassData()); _arg2.addChild(_bodyDef.userData); } else { if ((((_local21 == "slope_backwards1")) || ((_local21 == "slope_backwards2")))){ _local27.gamePositionX = (_local27.gamePositionX - 16); _local27.gamePositionY = (_local27.gamePositionY + 16); _bodyDef = ObjectManager.createRectanglePlatform(_arg1, _local32, _local31, 32, 32, 0, 0, 0, -32, 32, 0, _local27); _arg2.addChild(_bodyDef.userData); } else { if ((((_local21 == "rocklong1")) || ((_local21 == "rocklong2")))){ _local27.gamePositionX = (_local27.gamePositionX + 16); _bodyDef = ObjectManager.createSquarePlatform(_arg1, _local32, _local31, _local27.width, _local27.height, 0, new b2Vec2(0, 0), ObjectManager.BLOCK_NAME, _local27); _arg2.addChild(_bodyDef.userData); } else { if (_local21 == ObjectManager.RAIL_GROUND1){ _local27.gamePositionX = (_local27.gamePositionX + 45); _local27.gamePositionY = (_local27.gamePositionY + 17); _bodyDef = ObjectManager.createRailPlatform(_arg1, _local32, _local31, _local27.width, _local27.height, 35.02, new b2Vec2(0, 0), ObjectManager.RAIL_GROUND1, _local27, true); _arg2.addChild(_bodyDef.userData); } else { if ((((_local21 == ObjectManager.RAIL_GROUND2)) || ((_local21 == ObjectManager.RAIL_GROUND3)))){ _local27.gamePositionY = (_local27.gamePositionY + 17); if (_local21 == ObjectManager.RAIL_GROUND3){ _bodyDef = ObjectManager.createRailPlatform(_arg1, _local32, _local31, _local27.width, _local27.height, 0, new b2Vec2(0, 0), _local21, _local27, false); } else { _bodyDef = ObjectManager.createRailPlatform(_arg1, _local32, _local31, _local27.width, _local27.height, 0, new b2Vec2(0, 0), _local21, _local27, true); }; _arg2.addChild(_bodyDef.userData); } else { if ((_local21 == ObjectManager.CHECK_POINT_NAME)){ _local27.gamePositionX = (_local27.gamePositionX + 4); _local27.gamePositionY = (_local27.gamePositionY + ((_local27.height / 4) - 2)); _bodyDef = ObjectManager.createCheckPoint(_arg1, _local32, _local31, _local27.width, _local27.height, true, ObjectManager.CHECK_POINT_NAME, _local27); _arg2.addChild(_bodyDef.userData); _local33 = ObjectManager.createObject(ObjectManager.LIGHT_NAME); _local33.withBat = false; _local33.x = (_local33.x - 3); _bodyDef.userData.addChild(_local33); _arg13.push(_bodyDef.userData); _bodyDef.userData.extraData = _local33; } else { if ((((((_local21 == ObjectManager.INSTRUCTIONS_BOARD_NAME)) || ((_local21 == ObjectManager.CRYSTAL_LARGE_NAME)))) || ((_local21 == ObjectManager.CRYSTAL_SMALL_NAME)))){ } else { if (_local21 == ObjectManager.LIGHT_NAME){ _local27.gamePositionX = (_local27.gamePositionX - (_local27.width / 2)); _local27.gamePositionY = (_local27.gamePositionY - (_local27.height / 2)); _local34 = ObjectManager.createObject(_local21); _local34.setPosition(_local27.gamePositionX, _local27.gamePositionY); _arg14.push(_local34); _local34.withBat = true; _arg2.addChild(_local34); _arg2.setChildIndex(_local34, 0); } else { if (_local21 == ObjectManager.ROTATE_BLOCK_NAME){ _local27.gamePositionX = (_local27.gamePositionX + 32); _local27.blockRotationTimer = ((Math.random() * (50 - 0)) + 0); _bodyDef = ObjectManager.createRotatingPlatform(_arg1, _local32, _local31, _local27.width, _local27.height, 0, new b2Vec2(0, 0), ObjectManager.ROTATE_BLOCK_NAME, _local27); _arg2.addChild(_bodyDef.userData); } else { if ((((((_local21 == ObjectManager.BLOCK_SAFE_GROUND1)) || ((_local21 == ObjectManager.BLOCK_SAFE_GROUND2)))) || ((_local21 == ObjectManager.BLOCK_SAFE_GROUND3)))){ if (_local21 == ObjectManager.BLOCK_SAFE_GROUND2){ _local27.gamePositionX = (_local27.gamePositionX + 16); }; _bodyDef = ObjectManager.createBox(_arg1, _local32, _local31, _local27.width, _local27.height, true, ObjectManager.BLOCK_SAFE_GROUND, _local27); _arg2.addChild(_bodyDef.userData); } else { if ((((_local21 == ObjectManager.SMALL_BOULDER_NAME)) || ((_local21 == ObjectManager.LARGE_BOULDER_NAME)))){ if (_local21 == ObjectManager.LARGE_BOULDER_NAME){ _local27.gamePositionX = (_local27.gamePositionX + 32); }; _bodyDef = ObjectManager.createCircle(_arg1, _local21, _local32, _local31, _local27.width, _local27.height, true, _local27); _arg2.addChild(_bodyDef.userData); } else { if ((((((((_local21 == ObjectManager.FAST_NAME)) || ((_local21 == ObjectManager.CRAZY_NAME)))) || ((_local21 == ObjectManager.MED_NAME)))) || ((_local21 == ObjectManager.SLOW_NAME)))){ _local35 = ObjectManager.createObject(_local21); _local35.setPosition(_local27.gamePositionX, _local27.gamePositionY); _local35.name = _local21; _local35.visible = false; _arg2.addChild(_local35); _arg15.push(_local35); } else { if (_local21 == ObjectManager.MINECART_NAME){ _local27.gamePositionX = (_local27.gamePositionX + 16); _bodyDef = ObjectManager.createSmallMineCart(_arg1, _local32, _local31, _local27.width, _local27.height, true, ObjectManager.MINECART_NAME, _local27); _arg2.addChild(_bodyDef.userData); _arg9.push(_bodyDef.userData); } else { if (_local21 == ObjectManager.MINECART_LONG_NAME){ _bodyDef = ObjectManager.createMineCart(_arg1, _local32, _local31, _local27.width, _local27.height, true, ObjectManager.MINECART_NAME, _local27); _arg2.addChild(_bodyDef.userData); _arg9.push(_bodyDef.userData); } else { if ((((((_local21 == ObjectManager.PICK_UP_DOUBLE_JUMP)) || ((_local21 == ObjectManager.PICK_UP_FLASH)))) || ((_local21 == ObjectManager.PICK_UP_INVINCIBLE)))){ _bodyDef = ObjectManager.createBox(_arg1, _local32, _local31, _local27.width, _local27.height, true, _local21, _local27); _arg2.addChild(_bodyDef.userData); _arg11.push(_bodyDef.userData); } else { if (_local21 == ObjectManager.BOMB_NAME){ } else { if ((((_local21 == ObjectManager.BARREL_SIDE)) || ((_local21 == ObjectManager.BARREL_STAND)))){ if (_local21 == ObjectManager.BARREL_SIDE){ _bodyDef = ObjectManager.createCircle(_arg1, ObjectManager.BARREL_SIDE, _local32, _local31, _local27.width, _local27.height, true, _local27); } else { _bodyDef = ObjectManager.createBarrel(_arg1, ObjectManager.BARREL_STAND, _local32, _local31, _local27.width, _local27.height, true, _local27); }; _arg2.addChild(_bodyDef.userData); } else { if (_local21 == ObjectManager.CRATE_NAME){ _bodyDef = ObjectManager.createCreate(_arg1, _local32, _local31, _local27.width, _local27.height, true, ObjectManager.CRATE_NAME, _local27); _arg2.addChild(_bodyDef.userData); } else { if (_local21 == ObjectManager.MUSHROOM_NAME){ _bodyDef = ObjectManager.createBox(_arg1, _local32, _local31, _local27.width, _local27.height, true, ObjectManager.MUSHROOM_NAME, _local27); _arg2.addChild(_bodyDef.userData); _arg6.push(_bodyDef.userData); } else { if ((((((((((((((_local21 == ObjectManager.ENEMY_EXPLOSIVE_NAME)) || ((_local21 == ObjectManager.ENEMY_LICKER_NAME)))) || ((_local21 == ObjectManager.ENEMY_PUKER_NAME)))) || ((_local21 == ObjectManager.ENEMY_PUSHER_NAME)))) || ((_local21 == ObjectManager.ENEMY_RUNNER_NAME)))) || ((_local21 == ObjectManager.ENEMY_SNAIL_NAME)))) || ((_local21 == ObjectManager.ENEMY_SPIDER_NAME)))){ if (_local21 == ObjectManager.ENEMY_SPIDER_NAME){ createBaddy(_arg1, _arg2, _local21, _local27.gamePositionX, 0, 70, 0, true, _arg10); } else { if (_local21 == ObjectManager.ENEMY_SNAIL_NAME){ createBaddy(_arg1, _arg2, _local21, _local27.gamePositionX, -300, 36, 11, false, _arg10); } else { if (_local21 == ObjectManager.ENEMY_LICKER_NAME){ createBaddy(_arg1, _arg2, _local21, _local27.gamePositionX, -300, 15, 0, true, _arg10); } else { if ((((_local21 == ObjectManager.ENEMY_EXPLOSIVE_NAME)) || ((_local21 == ObjectManager.ENEMY_PUKER_NAME)))){ createBaddy(_arg1, _arg2, _local21, _local27.gamePositionX, (0 + (_local27.height / 2)), 0, 0, false, _arg10); } else { if (_local21 == ObjectManager.ENEMY_PUSHER_NAME){ createBaddy(_arg1, _arg2, _local21, _local27.gamePositionX, -300, 20, 0, false, _arg10); } else { createBaddy(_arg1, _arg2, _local21, _local27.gamePositionX, -300, 20, 0, true, _arg10); }; }; }; }; }; } else { if ((((((((((((((((((_local21 == "rock2X2")) || ((_local21 == "rock2X2crystals")))) || ((_local21 == "rock2X3")))) || ((_local21 == "rock2X4")))) || ((_local21 == "rock3X4crystals")))) || ((_local21 == "rock2X4crystals")))) || ((_local21 == "rock3X4")))) || ((_local21 == "rock3X2crystals")))) || ((_local21 == "rock3X2")))){ if ((((_local21 == "rock2X2")) || ((_local21 == "rock2X2crystals")))){ _local27.gamePositionX = (_local27.gamePositionX + 16); }; if ((((_local21 == "rock2X2")) || ((_local21 == "rock2X2crystals")))){ _local27.gamePositionY = (_local27.gamePositionY + 16); }; if ((((_local21 == "rock2X3")) || ((_local21 == "rock2X3crystals")))){ _local27.gamePositionX = (_local27.gamePositionX + (_local27.width / 3)); }; if ((((_local21 == "rock2X3")) || ((_local21 == "rock2X3crystals")))){ _local27.gamePositionY = (_local27.gamePositionY + 16); }; if ((((_local21 == "rock2X4")) || ((_local21 == "rock2X4crystals")))){ _local27.gamePositionX = (_local27.gamePositionX + (32 + 16)); }; if ((((_local21 == "rock2X4")) || ((_local21 == "rock2X4crystals")))){ _local27.gamePositionY = (_local27.gamePositionY + 16); }; if ((((_local21 == "rock3X4")) || ((_local21 == "rock3X4crystals")))){ _local27.gamePositionX = (_local27.gamePositionX + ((_local27.width / 4) + 16)); }; if ((((_local21 == "rock3X4")) || ((_local21 == "rock3X4crystals")))){ _local27.gamePositionY = (_local27.gamePositionY + (_local27.height / 3)); }; if ((((_local21 == "rock3X2")) || ((_local21 == "rock3X2crystals")))){ _local27.gamePositionX = (_local27.gamePositionX + 16); }; if ((((_local21 == "rock3X2")) || ((_local21 == "rock3X2crystals")))){ _local27.gamePositionY = (_local27.gamePositionY + (_local27.height / 3)); }; _bodyDef = ObjectManager.createSquarePlatform(_arg1, _local32, _local31, _local27.width, _local27.height, 0, new b2Vec2(0, 0), ObjectManager.BLOCK_NAME, _local27); _arg2.addChild(_bodyDef.userData); } else { if ((((((_local21 == ObjectManager.STICKY_BLOCK_NAME1)) || ((_local21 == ObjectManager.STICKY_BLOCK_NAME2)))) || ((_local21 == ObjectManager.STICKY_BLOCK_NAME3)))){ _bodyDef = ObjectManager.createBox(_arg1, _local32, _local31, _local27.width, _local27.height, true, ObjectManager.STICKY_BLOCK_NAME, _local27); _arg2.addChild(_bodyDef.userData); } else { _bodyDef = ObjectManager.createBox(_arg1, _local32, _local31, _local27.width, _local27.height, true, ObjectManager.BLOCK_NAME, _local27); _arg2.addChild(_bodyDef.userData); }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; _local27.y = -1000; if (((((((((((((((((((((((((((((!((_local21 == ObjectManager.INSTRUCTIONS_BOARD_NAME))) && (!((_local21 == ObjectManager.ENEMY_EXPLOSIVE_NAME))))) && (!((_local21 == ObjectManager.ENEMY_LICKER_NAME))))) && (!((_local21 == ObjectManager.ENEMY_PUKER_NAME))))) && (!((_local21 == ObjectManager.ENEMY_PUSHER_NAME))))) && (!((_local21 == ObjectManager.ENEMY_RUNNER_NAME))))) && (!((_local21 == ObjectManager.ENEMY_SNAIL_NAME))))) && (!((_local21 == ObjectManager.ENEMY_SPIDER_NAME))))) && (!((_local21 == ObjectManager.CRYSTAL_SMALL_NAME))))) && (!((_local21 == ObjectManager.CRYSTAL_LARGE_NAME))))) && (!((_local21 == ObjectManager.LIGHT_NAME))))) && (!((_local21 == ObjectManager.FAST_NAME))))) && (!((_local21 == ObjectManager.CRAZY_NAME))))) && (!((_local21 == ObjectManager.MED_NAME))))) && (!((_local21 == ObjectManager.SLOW_NAME))))){ _arg12.push(_local27); _local36 = new Bat(); _local36.y = -1000; _arg4.push(_local36); _arg2.addChild(_local36); }; }; }; _local18++; _local20++; }; _noOfColumnsInGame++; _crystalColumnsInGame++; } public static function unserialize(_arg1:String):Array{ var _local5:String; var _local6:Array; var _local7:String; var _local8:Number; var _local9:Number; var _local2:Array = _arg1.split(","); var _local3:Array = []; var _local4:Number = 0; while (_local4 < _local2.length) { _local5 = _local2[_local4]; if (_local5.indexOf(":") == -1){ _local3.push(_local5); } else { _local6 = _local5.split(":"); _local7 = _local6[0]; _local8 = Number(_local6[1]); _local9 = 0; while (_local9 < _local8) { _local3.push(_local7); _local9++; }; }; _local4++; }; return (_local3); } private static function createBaddy(_arg1:b2World, _arg2:WorldContainer, _arg3:String, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Boolean, _arg9:Array):void{ if ((((((((_arg3 == ObjectManager.ENEMY_RUNNER_NAME)) || ((_arg3 == ObjectManager.ENEMY_LICKER_NAME)))) || ((_arg3 == ObjectManager.ENEMY_SNAIL_NAME)))) || ((_arg3 == ObjectManager.ENEMY_SNAIL_NAME)))){ _arg8 = false; }; var _local10:* = ObjectManager.createObject(_arg3); if (_arg3 == ObjectManager.ENEMY_SPIDER_NAME){ _local10.gamePositionX = _arg4; }; if (_arg3 == ObjectManager.ENEMY_SPIDER_NAME){ _local10.gamePositionY = _arg5; }; if (_arg3 == ObjectManager.ENEMY_SPIDER_NAME){ _local10.bodyDef = ObjectManager.createBox(_arg1, _arg4, _arg5, 2, 500, true, ObjectManager.ENEMY_SPIDER_WEB_NAME, new baddy_spider_web()); }; if (_arg3 == ObjectManager.ENEMY_SPIDER_NAME){ _local10.bodyDef.userData.visible = false; }; if (_arg3 == ObjectManager.ENEMY_SPIDER_NAME){ _arg2.addChild(_local10.bodyDef.userData); }; if (_arg3 == ObjectManager.ENEMY_SPIDER_NAME){ _local10.timer = ((Math.random() * (80 - 10)) + 10); }; if (_arg3 == ObjectManager.ENEMY_RUNNER_NAME){ _arg5 = (_arg5 - 100); }; if (_arg3 == ObjectManager.ENEMY_RUNNER_NAME){ _arg4 = (_arg4 - 50); }; if (_arg3 == ObjectManager.ENEMY_SNAIL_NAME){ _bodyDef = ObjectManager.createBaddy(_arg1, _arg4, _arg5, (_local10.hitRadius = (_local10.width - _arg6)), (_local10.height - _arg7), _local10.width, _local10.height, false, _arg3, _local10); } else { if ((((_arg3 == ObjectManager.ENEMY_EXPLOSIVE_NAME)) || ((_arg3 == ObjectManager.ENEMY_PUKER_NAME)))){ _bodyDef = ObjectManager.createBaddy(_arg1, _arg4, _arg5, (_local10.hitRadius = _local10.width), _local10.height, _local10.width, _local10.height, true, _arg3, _local10); } else { if (_arg3 == ObjectManager.ENEMY_SPIDER_NAME){ _bodyDef = ObjectManager.createSpider(_arg1, _arg4, _arg5, _local10.width, _local10.height, (_local10.hitRadius = (_local10.width - _arg6)), true, _arg3, _local10); } else { _bodyDef = ObjectManager.createOpponent(_arg1, _arg4, _arg5, _local10.width, _local10.height, (_local10.hitRadius = (_local10.width - _arg6)), false, _arg3, _local10); }; }; }; _arg2.addChild(_bodyDef.userData); _arg9.push(_local10); _local10.acceleration = PlatformMiner.ENEMY_ACCELERATION; _local10.maxSpeed = PlatformMiner.ENEMY_MAX_SPEED; if (_arg3 == ObjectManager.ENEMY_SNAIL_NAME){ _local10.acceleration = PlatformMiner.ENEMY_ACCELERATION; }; if (_arg3 == ObjectManager.ENEMY_SNAIL_NAME){ _local10.maxSpeed = (PlatformMiner.ENEMY_MAX_SPEED / 2); }; _local10.setDirectionRight(_arg8); } public static function set noOfColumnsInGame(_arg1:int):void{ _noOfColumnsInGame = _arg1; } public static function get noOfColumnsInGame():int{ return (_noOfColumnsInGame); } } }//package com.nitrome.crystalmines
Section 150
//CrystalFont (com.nitrome.game.CrystalFont) package com.nitrome.game { public class CrystalFont extends TextComponent { public function CrystalFont(){ _tracking = 0; _line_spacing = 18; _id = "Crystal"; } override public function get tracking():int{ return (_tracking); } override public function set tracking(_arg1:int){ _tracking = _arg1; } override public function get line_spacing():int{ return (_line_spacing); } override public function set line_spacing(_arg1:int){ _line_spacing = _arg1; } override public function get id():String{ return (_id); } override public function set id(_arg1:String){ _id = _arg1; } override protected function getClassNameFromChar(_arg1:String):String{ if (_arg1 == "Space"){ return ("SPACE"); }; if (_arg1 == "."){ return ("STOP"); }; if (_arg1 == "?"){ return ("QUESTION"); }; if (_arg1 == ","){ return ("COMMA"); }; if (_arg1 == "!"){ return ("EXCLAMATION"); }; if (_arg1 == "\\"){ return ("BACKSLASH"); }; if (_arg1 == "/"){ return ("FORWARDSLASH"); }; if (_arg1 == "="){ return ("EQUALS"); }; if (_arg1 == "+"){ return ("PLUS"); }; if (_arg1 == "("){ return ("LEFTBRACKET"); }; if (_arg1 == ")"){ return ("RIGHTBRACKET"); }; if (_arg1 == "-"){ return ("HYPHEN"); }; if (_arg1 == "\""){ return ("QUOTES"); }; if (_arg1 == ":"){ return ("COLON"); }; if (_arg1 == "£"){ return ("POUND"); }; if (_arg1 == "_"){ return ("UNDERSCORE"); }; if (_arg1 == "@"){ return ("AT"); }; if (_arg1 == "%"){ return ("PERCENT"); }; if ((((((_arg1 == "\n")) || ((_arg1 == "\r")))) || ((_arg1 == "|")))){ return ("NEWLINE"); }; return (_arg1); } } }//package com.nitrome.game
Section 151
//FxToggle (com.nitrome.game.FxToggle) package com.nitrome.game { import flash.events.*; public class FxToggle extends SimpleButton { public function FxToggle(){ addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16); if (!NitromeGame.sfx){ gotoAndStop("_off_up"); } else { gotoAndStop("_on_up"); }; } override protected function updateGraphic():void{ if (over){ if (NitromeGame.sound_manager.sfx){ gotoAndStop("_on_over"); } else { if (!NitromeGame.sound_manager.sfx){ gotoAndStop("_off_over"); }; }; } else { if (NitromeGame.sound_manager.sfx){ gotoAndStop("_on_up"); } else { if (!NitromeGame.sound_manager.sfx){ gotoAndStop("_off_up"); }; }; }; } override public function onClick(_arg1:MouseEvent):void{ NitromeGame.sound_manager.toggleSfx(); over = false; updateGraphic(); } function frame1(){ stop(); } function frame6(){ stop(); } function frame11(){ stop(); } function frame16(){ stop(); } } }//package com.nitrome.game
Section 152
//Key (com.nitrome.game.Key) package com.nitrome.game { import flash.display.*; import flash.events.*; public class Key { 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 F1:uint = 112; public static const F2:uint = 113; public static const F3:uint = 114; public static const F4:uint = 115; public static const F5:uint = 116; public static const F6:uint = 117; public static const F7:uint = 118; public static const F8:uint = 119; public static const F9:uint = 120; public static const F10:uint = 121; public static const F11:uint = 122; public static const F12:uint = 123; public static const F13:uint = 124; public static const F14:uint = 125; public static const F15:uint = 126; public static const NUMBER_0:uint = 48; public static const NUMBER_1:uint = 49; public static const NUMBER_2:uint = 50; public static const NUMBER_3:uint = 51; public static const NUMBER_4:uint = 52; public static const NUMBER_5:uint = 53; public static const NUMBER_6:uint = 54; public static const NUMBER_7:uint = 55; public static const NUMBER_8:uint = 56; public static const NUMBER_9:uint = 57; public static const NUMPAD:uint = 21; public static const NUMPAD_0:uint = 96; public static const NUMPAD_1:uint = 97; public static const NUMPAD_2:uint = 98; public static const NUMPAD_3:uint = 99; public static const NUMPAD_4:uint = 100; public static const NUMPAD_5:uint = 101; public static const NUMPAD_6:uint = 102; public static const NUMPAD_7:uint = 103; public static const NUMPAD_8:uint = 104; public static const NUMPAD_9:uint = 105; public static const NUMPAD_ADD:uint = 107; public static const NUMPAD_DECIMAL:uint = 110; public static const NUMPAD_DIVIDE:uint = 111; public static const NUMPAD_ENTER:uint = 108; public static const NUMPAD_MULTIPLY:uint = 106; public static const NUMPAD_SUBTRACT:uint = 109; public static const ALTERNATE:uint = 18; public static const BACKQUOTE:uint = 192; public static const BACKSLASH:uint = 220; public static const BACKSPACE:uint = 8; public static const CAPS_LOCK:uint = 20; public static const COMMA:uint = 188; public static const COMMAND:uint = 15; public static const CONTROL:uint = 17; public static const DELETE:uint = 46; public static const DOWN:uint = 40; public static const END:uint = 35; public static const ENTER:uint = 13; public static const EQUAL:uint = 187; public static const ESCAPE:uint = 27; public static const HOME:uint = 36; public static const INSERT:uint = 45; public static const LEFT:uint = 37; public static const LEFTBRACKET:uint = 219; public static const MINUS:uint = 189; public static const PAGE_DOWN:uint = 34; public static const PAGE_UP:uint = 33; public static const PERIOD:uint = 190; public static const QUOTE:uint = 222; public static const RIGHT:uint = 39; public static const RIGHTBRACKET:uint = 221; public static const SEMICOLON:uint = 186; public static const SHIFT:uint = 16; public static const SLASH:uint = 191; public static const SPACE:uint = 32; public static const TAB:uint = 9; public static const UP:uint = 38; protected static var initialized:Boolean = false; protected static var keysDown:Object = new Object(); public static var custom:Array; public static function initialize(_arg1:Stage):void{ if (!initialized){ _arg1.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed); _arg1.addEventListener(KeyboardEvent.KEY_UP, keyReleased); _arg1.addEventListener(Event.DEACTIVATE, clearKeys); initialized = true; }; } public static function terminate(_arg1:Stage):void{ if (initialized){ _arg1.removeEventListener(KeyboardEvent.KEY_DOWN, keyPressed); _arg1.removeEventListener(KeyboardEvent.KEY_UP, keyReleased); _arg1.removeEventListener(Event.DEACTIVATE, clearKeys); initialized = false; keysDown = new Object(); }; } public static function isReady():Boolean{ return (initialized); } public static function isDown(_arg1:uint):Boolean{ if (!initialized){ }; return (Boolean((_arg1 in keysDown))); } public static function customDown(_arg1:uint):Boolean{ if (!initialized){ }; return (Boolean((custom[_arg1] in keysDown))); } protected static function keyPressed(_arg1:KeyboardEvent):void{ keysDown[_arg1.keyCode] = true; } protected static function keyReleased(_arg1:KeyboardEvent):void{ if ((_arg1.keyCode in keysDown)){ delete keysDown[_arg1.keyCode]; }; } protected static function clearKeys(_arg1:Event):void{ keysDown = new Object(); } public static function keyString(_arg1:uint):String{ switch (_arg1){ case BACKSPACE: return ("bsp"); case CAPS_LOCK: return ("cpl"); case CONTROL: return ("ctr"); case DELETE: return ("del"); case DOWN: return ("dwn"); case END: return ("end"); case ENTER: return ("ent"); case ESCAPE: return ("esc"); case HOME: return ("hom"); case INSERT: return ("ins"); case LEFT: return ("lft"); case PAGE_DOWN: return ("pgd"); case PAGE_UP: return ("pgu"); case RIGHT: return ("rgt"); case SHIFT: return ("sft"); case SPACE: return ("spc"); case TAB: return ("tab"); case UP: return ("up"); case SEMICOLON: return (":"); case PERIOD: return (">"); case COMMA: return ("<"); case SLASH: return ("/"); case NUMPAD_SUBTRACT: return ("n -"); case NUMPAD_ADD: return ("n +"); case EQUAL: return ("+"); case MINUS: return ("-"); case QUOTE: return ("'"); case LEFTBRACKET: return ("["); case RIGHTBRACKET: return ("]"); default: if ((((_arg1 >= 96)) && ((_arg1 <= 105)))){ return (("n " + String.fromCharCode((_arg1 - 48)))); }; return (String.fromCharCode(_arg1)); }; } } }//package com.nitrome.game
Section 153
//LevelScoreP1 (com.nitrome.game.LevelScoreP1) package com.nitrome.game { public class LevelScoreP1 { private static var _value:int; private static var r:int; private static var hash:String; public static function init():void{ r = (int((Math.random() * 2000000)) - 1000000); _value = r; hash = _value.toString(16); } public static function set value(_arg1:int):void{ var _local2:Boolean = verify(); r = (int((Math.random() * 2000000)) - 1000000); _value = (r + _arg1); if (_local2){ hash = _value.toString(16); }; } public static function get value():int{ return ((_value - r)); } public static function verify():Boolean{ return ((_value.toString(16) == hash)); } } }//package com.nitrome.game
Section 154
//LevelScoreP2 (com.nitrome.game.LevelScoreP2) package com.nitrome.game { public class LevelScoreP2 { private static var _value:int; private static var r:int; private static var hash:String; public static function init():void{ r = (int((Math.random() * 2000000)) - 1000000); _value = r; hash = _value.toString(16); } public static function set value(_arg1:int):void{ var _local2:Boolean = verify(); r = (int((Math.random() * 2000000)) - 1000000); _value = (r + _arg1); if (_local2){ hash = _value.toString(16); }; } public static function get value():int{ return ((_value - r)); } public static function verify():Boolean{ return ((_value.toString(16) == hash)); } } }//package com.nitrome.game
Section 155
//MusicToggle (com.nitrome.game.MusicToggle) package com.nitrome.game { import flash.events.*; public class MusicToggle extends SimpleButton { public function MusicToggle(){ addFrameScript(0, frame1, 5, frame6, 10, frame11, 15, frame16); if (!NitromeGame.music){ gotoAndStop("_off_up"); } else { gotoAndStop("_on_up"); }; } override protected function updateGraphic():void{ if (over){ if (NitromeGame.sound_manager.music){ gotoAndStop("_on_over"); } else { if (!NitromeGame.sound_manager.music){ gotoAndStop("_off_over"); }; }; } else { if (NitromeGame.sound_manager.music){ gotoAndStop("_on_up"); } else { if (!NitromeGame.sound_manager.music){ gotoAndStop("_off_up"); }; }; }; } override public function onClick(_arg1:MouseEvent):void{ NitromeGame.sound_manager.toggleMusic(); over = false; updateGraphic(); } function frame1(){ stop(); } function frame6(){ stop(); } function frame11(){ stop(); } function frame16(){ stop(); } } }//package com.nitrome.game
Section 156
//NitromeLink (com.nitrome.game.NitromeLink) package com.nitrome.game { import flash.display.*; import flash.events.*; import flash.net.*; public class NitromeLink extends SimpleButton { public function NitromeLink(){ this.addEventListener(MouseEvent.CLICK, click); } public function click(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.nitrome.com/"), "_blank"); } } }//package com.nitrome.game
Section 157
//PlayerNum (com.nitrome.game.PlayerNum) package com.nitrome.game { public class PlayerNum { private static var _value:int; private static var r:int; private static var hash:String; public static function init():void{ r = (int((Math.random() * 2000000)) - 1000000); _value = r; hash = _value.toString(16); } public static function set value(_arg1:int):void{ var _local2:Boolean = verify(); r = (int((Math.random() * 2000000)) - 1000000); _value = (r + _arg1); if (_local2){ hash = _value.toString(16); }; } public static function get value():int{ return ((_value - r)); } public static function verify():Boolean{ return ((_value.toString(16) == hash)); } } }//package com.nitrome.game
Section 158
//PopUpHolder (com.nitrome.game.PopUpHolder) package com.nitrome.game { import flash.display.*; import flash.events.*; import com.nitrome.buttons.*; public class PopUpHolder extends MovieClip { public var popup_clip:MovieClip; private var popup_id:String; public var spaceEnabled:Boolean;// = false public var frame_count:int;// = 0 public var isFullyOpen:Boolean;// = false public var isFullyClosed:Boolean;// = false public function PopUpHolder(){ addFrameScript(0, frame1, 1, frame2, 29, frame30, 30, frame31); } public function displayPopUp(_arg1:String):void{ frame_count = 0; popup_id = _arg1; if (popup_id != "game_paused"){ spaceEnabled = true; stage.addEventListener(KeyboardEvent.KEY_DOWN, pressKey, false, 0, true); } else { spaceEnabled = false; }; gotoAndPlay("in"); } public function refreshDisplay():void{ popup_clip.gotoAndStop(popup_id); } public function doHide():void{ gotoAndPlay("out"); if (stage.hasEventListener(KeyboardEvent.KEY_DOWN)){ stage.removeEventListener(KeyboardEvent.KEY_DOWN, pressKey); }; } public function pressKey(_arg1:KeyboardEvent):void{ if ((((_arg1.charCode == 32)) && ((frame_count > 0)))){ spacePressed(); stage.removeEventListener(KeyboardEvent.KEY_DOWN, pressKey); }; } public function get isOpen():Boolean{ return (!((currentFrame == 1))); } public function spacePressed():void{ if (((!(spaceEnabled)) || (!(isOpen)))){ return; }; if (popup_clip.getChildByName("nextbutton") != null){ (popup_clip.getChildByName("nextbutton") as NextLevelButton).onClick(null); spaceEnabled = false; return; }; if (popup_clip.getChildByName("tryagainbutton") != null){ (popup_clip.getChildByName("tryagainbutton") as TryAgainButton).onClick(null); spaceEnabled = false; return; }; if (popup_clip.getChildByName("continueendbutton") != null){ (popup_clip.getChildByName("continueendbutton") as ContinueEndButton).onClick(null); spaceEnabled = false; return; }; } function frame1(){ stop(); isFullyClosed = true; } function frame2(){ (this as PopUpHolder).refreshDisplay(); isFullyClosed = false; } function frame30(){ stop(); isFullyOpen = true; } function frame31(){ isFullyOpen = false; } } }//package com.nitrome.game
Section 159
//Score (com.nitrome.game.Score) package com.nitrome.game { public class Score { private static var _value:int; private static var r:int; private static var hash:String; public static function init():void{ r = (int((Math.random() * 2000000)) - 1000000); _value = r; hash = _value.toString(16); } public static function set value(_arg1:int):void{ var _local2:Boolean = verify(); r = (int((Math.random() * 2000000)) - 1000000); _value = (r + _arg1); if (_local2){ hash = _value.toString(16); }; } public static function get value():int{ return ((_value - r)); } public static function verify():Boolean{ return ((_value.toString(16) == hash)); } } }//package com.nitrome.game
Section 160
//ScoreP1 (com.nitrome.game.ScoreP1) package com.nitrome.game { public class ScoreP1 { private static var _value:int; private static var r:int; private static var hash:String; public static function init():void{ r = (int((Math.random() * 2000000)) - 1000000); _value = r; hash = _value.toString(16); } public static function set value(_arg1:int):void{ var _local2:Boolean = verify(); r = (int((Math.random() * 2000000)) - 1000000); _value = (r + _arg1); if (_local2){ hash = _value.toString(16); }; } public static function get value():int{ return ((_value - r)); } public static function verify():Boolean{ return ((_value.toString(16) == hash)); } } }//package com.nitrome.game
Section 161
//ScoreP2 (com.nitrome.game.ScoreP2) package com.nitrome.game { public class ScoreP2 { private static var _value:int; private static var r:int; private static var hash:String; public static function init():void{ r = (int((Math.random() * 2000000)) - 1000000); _value = r; hash = _value.toString(16); } public static function set value(_arg1:int):void{ var _local2:Boolean = verify(); r = (int((Math.random() * 2000000)) - 1000000); _value = (r + _arg1); if (_local2){ hash = _value.toString(16); }; } public static function get value():int{ return ((_value - r)); } public static function verify():Boolean{ return ((_value.toString(16) == hash)); } } }//package com.nitrome.game
Section 162
//SelectedLevel (com.nitrome.game.SelectedLevel) package com.nitrome.game { public class SelectedLevel { private static var _value:int; private static var r:int; private static var hash:String; public static function init():void{ r = (int((Math.random() * 2000000)) - 1000000); _value = r; hash = _value.toString(16); } public static function set value(_arg1:int):void{ var _local2:Boolean = verify(); r = (int((Math.random() * 2000000)) - 1000000); _value = (r + _arg1); if (_local2){ hash = _value.toString(16); }; } public static function get value():int{ return ((_value - r)); } public static function verify():Boolean{ return ((_value.toString(16) == hash)); } } }//package com.nitrome.game
Section 163
//SimpleButton (com.nitrome.game.SimpleButton) package com.nitrome.game { import flash.display.*; import flash.events.*; public class SimpleButton extends MovieClip { protected var over:Boolean;// = false public var i:int; public function SimpleButton(){ mouseChildren = false; buttonMode = true; addEventListener(MouseEvent.MOUSE_OVER, onMouseOver, false, 0, true); addEventListener(MouseEvent.MOUSE_OUT, onMouseOut, false, 0, true); addEventListener(MouseEvent.CLICK, onClick, false, 0, true); } protected function updateGraphic():void{ if (over){ gotoAndStop("over"); } else { gotoAndStop("up"); }; } protected function onMouseOver(_arg1:MouseEvent):void{ over = true; updateGraphic(); } protected function onMouseOut(_arg1:MouseEvent):void{ over = false; updateGraphic(); } public function onClick(_arg1:MouseEvent):void{ } } }//package com.nitrome.game
Section 164
//SoundManager (com.nitrome.game.SoundManager) package com.nitrome.game { import flash.display.*; import flash.media.*; public class SoundManager extends SoundManagerSuper { protected const MENU_VOLUME:Number = 1; protected const GAME_VOLUME:Number = 1; public var dieSnd:MovieClip; public var enemyAttackSnd:MovieClip; public var pickUpExplode:MovieClip; public var hitSnd:MovieClip; public var explode:MovieClip; public var shorterBats:MovieClip; public var nitrome:MovieClip; public var crystalPickUpSmal:MovieClip; public var jumpSnd:MovieClip; public var endSnd:MovieClip; public var powerUp:MovieClip; public var miniclip2:MovieClip; public var crystalPickUpBig:MovieClip; public var miniclip1:MovieClip; public var lightOn:MovieClip; public var mushroomJump:MovieClip; public static const MENU:uint = 0; public static const GAME:uint = 1; public function SoundManager(){ NitromeGame.sound_manager = this; music_sounds.push(new TitleMusic()); music_sounds.push(new GameMusic()); transforms.push(new SoundTransform(MENU_VOLUME, 0)); transforms.push(new SoundTransform(GAME_VOLUME, 0)); channels.push(new SoundChannel()); channels.push(new SoundChannel()); volumes.push(MENU_VOLUME); volumes.push(GAME_VOLUME); music_type = uint.MAX_VALUE; } } }//package com.nitrome.game
Section 165
//SoundManagerSuper (com.nitrome.game.SoundManagerSuper) package com.nitrome.game { import flash.display.*; import flash.events.*; public class SoundManagerSuper extends Sprite { protected const CROSS_FADE_SPEED:Number = 0.05; protected var sound_clips:Array; protected var music_sounds:Array; protected var channels:Array; protected var transforms:Array; protected var volumes:Array; protected var fade_from:int; protected var _music:Boolean;// = true protected var _sfx:Boolean;// = true public var fading:Boolean;// = false public var music_type:int; public function SoundManagerSuper(){ var _local2:MovieClip; sound_clips = new Array(); music_sounds = new Array(); channels = new Array(); transforms = new Array(); volumes = new Array(); super(); _music = NitromeGame.music; _sfx = NitromeGame.sfx; var _local1:int; while (_local1 < numChildren) { _local2 = (getChildAt(_local1) as MovieClip); if (_local2 != null){ sound_clips[_local2.name] = _local2; }; _local1++; }; } public function get music():Boolean{ return (_music); } public function set music(_arg1:Boolean):void{ _music = _arg1; } public function get sfx():Boolean{ return (_sfx); } public function set sfx(_arg1:Boolean):void{ _sfx = _arg1; } public function playSound(_arg1:String):void{ if (_sfx){ if (sound_clips[_arg1] != null){ sound_clips[_arg1].gotoAndPlay(2); }; }; } public function playMusic(_arg1:uint, _arg2:Boolean=false):void{ var _local3:uint; if (((!((music_type == _arg1))) || (_arg2))){ if (_arg1 < music_sounds.length){ if (_music){ _local3 = 0; while (_local3 < music_sounds.length) { if (_local3 == _arg1){ } else { if (channels[_local3] != null){ channels[_local3].stop(); }; }; _local3++; }; transforms[_arg1].volume = volumes[_arg1]; channels[_arg1] = music_sounds[_arg1].play(0, int.MAX_VALUE, transforms[_arg1]); }; music_type = _arg1; }; }; } public function toggleMusic():void{ if (_music){ turnOffMusic(); } else { turnOnMusic(); }; } public function turnOnMusic():void{ NitromeGame.music = (_music = true); playMusic(music_type, true); } public function turnOffMusic():void{ var _local1:uint; while (_local1 < channels.length) { if (channels[_local1] != null){ channels[_local1].stop(); }; _local1++; }; NitromeGame.music = (_music = false); } public function pauseMusic():void{ var _local1:uint; while (_local1 < channels.length) { if (channels[_local1] != null){ channels[_local1].stop(); }; _local1++; }; } public function unpauseMusic(_arg1:int):void{ if (((_music) && ((music_type == 1)))){ channels[_arg1] = music_sounds[_arg1].play(0, int.MAX_VALUE, transforms[_arg1]); }; } public function toggleSfx():void{ _sfx = !(_sfx); NitromeGame.sfx = !(NitromeGame.sfx); } public function turnOffSfx():void{ NitromeGame.sfx = (_sfx = false); } public function turnOnSfx():void{ NitromeGame.sfx = (_sfx = true); } public function crossFade(_arg1:int):void{ if (((((!(_music)) || ((music_type == _arg1)))) || (fading))){ return; }; transforms[_arg1].volume = 0; channels[_arg1] = music_sounds[_arg1].play(0, int.MAX_VALUE, transforms[_arg1]); fade_from = music_type; music_type = _arg1; fading = true; addEventListener(Event.ENTER_FRAME, crossFadeAction); } private function crossFadeAction(_arg1:Event):void{ if (transforms[fade_from].volume > 0){ transforms[fade_from].volume = (transforms[fade_from].volume - CROSS_FADE_SPEED); channels[fade_from].soundTransform = transforms[fade_from]; }; if (transforms[music_type].volume < 1){ transforms[music_type].volume = (transforms[music_type].volume + CROSS_FADE_SPEED); channels[music_type].soundTransform = transforms[music_type]; }; if ((((transforms[music_type].volume >= volumes[music_type])) && ((transforms[fade_from].volume <= 0)))){ channels[fade_from].stop(); fading = false; _arg1.target.removeEventListener(Event.ENTER_FRAME, crossFadeAction); }; } } }//package com.nitrome.game
Section 166
//TextComponent (com.nitrome.game.TextComponent) package com.nitrome.game { import flash.display.*; import flash.geom.*; import flash.utils.*; public class TextComponent extends Sprite { protected var _text:String;// = "enter text" protected var _tracking:int;// = -1 protected var _align:String;// = "center" protected var _align_vert:String;// = "center" protected var _line_spacing:int;// = 18 protected var _id:String;// = "Crystal" protected var _color:ColorTransform; protected var holder:Array; protected var letters:Array; protected var base:Sprite; private var _width:Number;// = 0 private var _height:Number;// = 0 private var _background:Sprite; public function TextComponent(){ init(); createChildren(); draw(); } private function init():void{ letters = new Array(); holder = new Array(); _width = width; _height = height; scaleX = 1; scaleY = 1; removeChildAt(0); } private function createChildren():void{ _background = new Sprite(); addChild(_background); } public function get text():String{ return (_text); } public function set text(_arg1:String){ _text = _arg1; draw(); } public function get tracking():int{ return (_tracking); } public function set tracking(_arg1:int){ _tracking = _arg1; draw(); } public function get line_spacing():int{ return (_line_spacing); } public function set line_spacing(_arg1:int){ _line_spacing = _arg1; draw(); } public function get align():String{ return (_align); } public function set align(_arg1:String){ _align = _arg1; draw(); } public function get align_vert():String{ return (_align_vert); } public function set align_vert(_arg1:String){ _align_vert = _arg1; draw(); } public function get id():String{ return (_id); } public function set id(_arg1:String){ _id = _arg1; draw(); } public function get color():ColorTransform{ return (_color); } public function set color(_arg1:ColorTransform){ _color = _arg1; draw(); } protected function draw():void{ var i:int; var c:*; var class_name:String; var class_id:Class; var temp:Sprite; var j:int; var x_tracking:*; _background.graphics.clear(); if (base != null){ this.removeChild(base); }; base = new Sprite(); holder = new Array(); var line:* = 0; holder.push(base.addChild(new Sprite())); letters = new Array(); letters.push(new Array()); i = 0; while (i < _text.length) { _text = _text.toUpperCase(); c = _text.charAt(i); class_name = getClassNameFromChar(c); if (class_name == "NEWLINE"){ line = (line + 1); letters.push(new Array()); holder.push(base.addChild(new Sprite())); holder[line].y = (line_spacing * line); } else { if (class_name != ""){ try { class_id = (getDefinitionByName(((("Text_" + _id) + "_") + class_name)) as Class); } catch(e:ReferenceError) { try { class_id = (getDefinitionByName((("Text_" + _id) + "_SPACE")) as Class); } catch(e:ReferenceError) { break; }; }; if (Class != null){ temp = (new (class_id) as Sprite); letters[line].push(holder[line].addChild(temp)); }; }; }; i = (i + 1); }; i = 0; while (i < letters.length) { j = 1; while (j < letters[i].length) { x_tracking = _tracking; if (letters[i][(j - 1)].kerning != null){ x_tracking = (x_tracking + letters[i][(j - 1)].kerning._x); } else { x_tracking = (x_tracking + letters[i][(j - 1)].width); }; letters[i][j].x = (letters[i][(j - 1)].x + x_tracking); j = (j + 1); }; if (_align == "center"){ holder[i].x = (holder[i].x + int(((_width * 0.5) - (holder[i].width * 0.5)))); } else { if (_align == "right"){ holder[i].x = (holder[i].x + int((_width - holder[i].width))); }; }; i = (i + 1); }; if (_align_vert == "bottom"){ base.y = (base.y + int((_height - base.height))); } else { if (_align_vert == "center"){ base.y = (base.y + int(((_height * 0.5) - (base.height * 0.5)))); }; }; if (_color != null){ base.transform.colorTransform = _color; }; base.cacheAsBitmap = true; this.addChild(base); this.cacheAsBitmap = true; var isLivePreview:Boolean = ((!((parent == null))) && ((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent"))); if (((isLivePreview) && ((_text == "")))){ _background.graphics.clear(); _background.graphics.lineStyle(1, 0); _background.graphics.beginFill(0xFFFFFF, 0.5); _background.graphics.drawRoundRect(0, 0, _width, _height, 10, 10); _background.graphics.endFill(); }; } protected function getClassNameFromChar(_arg1:String):String{ if (_arg1 == "Space"){ return ("SPACE"); }; if (_arg1 == "."){ return ("STOP"); }; if (_arg1 == "?"){ return ("QUESTION"); }; if (_arg1 == ","){ return ("COMMA"); }; if (_arg1 == "!"){ return ("EXCLAMATION"); }; if (_arg1 == "\\"){ return ("BACKSLASH"); }; if (_arg1 == "/"){ return ("FORWARDSLASH"); }; if (_arg1 == "="){ return ("EQUALS"); }; if (_arg1 == "+"){ return ("PLUS"); }; if (_arg1 == "("){ return ("LEFTBRACKET"); }; if (_arg1 == ")"){ return ("RIGHTBRACKET"); }; if (_arg1 == "-"){ return ("HYPHEN"); }; if (_arg1 == "\""){ return ("QUOTES"); }; if (_arg1 == ":"){ return ("COLON"); }; if (_arg1 == "£"){ return ("POUND"); }; if (_arg1 == "_"){ return ("UNDERSCORE"); }; if (_arg1 == "@"){ return ("AT"); }; if (_arg1 == "%"){ return ("PERCENT"); }; if ((((((_arg1 == "\n")) || ((_arg1 == "\r")))) || ((_arg1 == "|")))){ return ("NEWLINE"); }; return (_arg1); } public function setSize(_arg1:Number, _arg2:Number):void{ _width = _arg1; _height = _arg2; draw(); } } }//package com.nitrome.game
Section 167
//TransitionTween (com.nitrome.game.TransitionTween) package com.nitrome.game { import flash.display.*; public class TransitionTween extends MovieClip { private var next_frame; public function TransitionTween(){ addFrameScript(0, frame1, 12, frame13); stop(); } public function doTween(_arg1):void{ this.next_frame = _arg1; gotoAndPlay(2); } public function gotoNextFrame():void{ if ((next_frame is Function)){ next_frame(); } else { (parent as MovieClip).gotoAndStop(next_frame); }; } function frame1(){ stop(); } function frame13(){ gotoNextFrame(); } } }//package com.nitrome.game
Section 168
//WinsP1 (com.nitrome.game.WinsP1) package com.nitrome.game { public class WinsP1 { private static var _value:int; private static var r:int; private static var hash:String; public static function init():void{ r = (int((Math.random() * 2000000)) - 1000000); _value = r; hash = _value.toString(16); } public static function set value(_arg1:int):void{ var _local2:Boolean = verify(); r = (int((Math.random() * 2000000)) - 1000000); _value = (r + _arg1); if (_local2){ hash = _value.toString(16); }; } public static function get value():int{ return ((_value - r)); } public static function verify():Boolean{ return ((_value.toString(16) == hash)); } } }//package com.nitrome.game
Section 169
//WinsP2 (com.nitrome.game.WinsP2) package com.nitrome.game { public class WinsP2 { private static var _value:int; private static var r:int; private static var hash:String; public static function init():void{ r = (int((Math.random() * 2000000)) - 1000000); _value = r; hash = _value.toString(16); } public static function set value(_arg1:int):void{ var _local2:Boolean = verify(); r = (int((Math.random() * 2000000)) - 1000000); _value = (r + _arg1); if (_local2){ hash = _value.toString(16); }; } public static function get value():int{ return ((_value - r)); } public static function verify():Boolean{ return ((_value.toString(16) == hash)); } } }//package com.nitrome.game
Section 170
//ArrowButton (com.nitrome.highscore.ArrowButton) package com.nitrome.highscore { import flash.events.*; import com.nitrome.game.*; public class ArrowButton extends SimpleButton { var high_score_board:HighScoreBoard; public function ArrowButton(){ high_score_board = (parent as HighScoreBoard); visible = false; } public function hide():void{ visible = false; } public function show():void{ visible = true; } override public function onClick(_arg1:MouseEvent):void{ if (name == "_prev_arrow"){ high_score_board.shiftScoresPrev(); } else { if (name == "_next_arrow"){ high_score_board.shiftScoresNext(); }; }; } } }//package com.nitrome.highscore
Section 171
//ClearButton (com.nitrome.highscore.ClearButton) package com.nitrome.highscore { import flash.events.*; import com.nitrome.game.*; public class ClearButton extends SimpleButton { private var score_submit_panel:ScoreSubmitPanel; public function ClearButton(){ score_submit_panel = (parent as ScoreSubmitPanel); } override public function onClick(_arg1:MouseEvent):void{ score_submit_panel.clearName(); } } }//package com.nitrome.highscore
Section 172
//HighScoreBoard (com.nitrome.highscore.HighScoreBoard) package com.nitrome.highscore { import flash.display.*; import flash.events.*; import flash.net.*; public class HighScoreBoard extends MovieClip { public const MAX_DIGITS:int = 8; public const NUM_LINES:int = 10; private const MAX_RANK:int = 100; public var _score_line_3:ScoreLine; public var _score_line_2:ScoreLine; public var _score_line_1:ScoreLine; public var _prev_arrow:PrevArrow; public var _score_line_7:ScoreLine; public var _score_line_6:ScoreLine; public var _score_line_5:ScoreLine; public var _score_line_4:ScoreLine; public var _next_arrow:NextArrow; public var _score_line_9:ScoreLine; public var _score_line_8:ScoreLine; public var _score_line_10:ScoreLine; private var _zero_fill:Boolean;// = false private var saved_min_rank:int; private var score_lines:Array; private var prev_arrow:ArrowButton; private var next_arrow:ArrowButton; private var scores_loader:URLLoader; private var scores_vars:URLVariables; private var scores_request:URLRequest; public function HighScoreBoard(){ if (((root) && (((((((((root as MovieClip).currentLabel == "game")) || (((root as MovieClip).currentLabel == "congrats")))) || (((root as MovieClip).currentLabel == "help")))) || (((root as MovieClip).currentLabel == "credits")))))){ return; }; if (!NitromeGame.isAtURL(NitromeGame.NITROME)){ gotoAndStop("off"); return; }; score_lines = new Array(NUM_LINES); var _local1:int; while (_local1 < score_lines.length) { score_lines[_local1] = (getChildByName(("_score_line_" + (_local1 + 1))) as HighScoreLine); _local1++; }; prev_arrow = (getChildByName("_prev_arrow") as ArrowButton); next_arrow = (getChildByName("_next_arrow") as ArrowButton); addEventListener(Event.ADDED_TO_STAGE, init); } public function get zero_fill():Boolean{ return (_zero_fill); } public function set zero_fill(_arg1:Boolean):void{ _zero_fill = _arg1; } public function loadHighScores(_arg1:int):void{ saved_min_rank = _arg1; scores_loader = new URLLoader(); scores_vars = new URLVariables(); scores_request = new URLRequest(NitromeGame.RETRIEVE_URL); scores_request.method = URLRequestMethod.POST; scores_request.data = scores_vars; scores_loader.dataFormat = URLLoaderDataFormat.VARIABLES; scores_loader.addEventListener(Event.COMPLETE, retrieveSuccessful); scores_loader.addEventListener(IOErrorEvent.IO_ERROR, retrieveFailed); scores_vars.min_rank = String(_arg1); scores_vars.game_name = NitromeGame.game_id; scores_vars.time_based = (NitromeGame.time_based) ? "1" : "0"; scores_loader.load(scores_request); } public function displayHighScores(_arg1:String):void{ var _local2:int; var _local3:Object; if (_arg1 != "0"){ _local2 = 0; while (_local2 < score_lines.length) { _local3 = NitromeGame.getHighScoreLine(_arg1, (_local2 + 1)); if (_local3 == null){ score_lines[_local2].hide(); } else { score_lines[_local2].displayData((saved_min_rank + _local2), _local3.username, _local3.score); }; _local2++; }; if (NitromeGame.displayNextButton(_arg1)){ next_arrow.show(); } else { next_arrow.hide(); }; if (NitromeGame.displayPreviousButton(_arg1)){ prev_arrow.show(); } else { prev_arrow.hide(); }; }; } public function shiftScoresPrev():void{ var _local1:int = (saved_min_rank - 10); if (_local1 < 1){ _local1 = 1; }; loadHighScores(_local1); } public function shiftScoresNext():void{ var _local1:int = (saved_min_rank + 10); loadHighScores(_local1); } public function displayHighScoresMTV(_arg1:Array):void{ var _local2:int; var _local3:String; var _local4:String; if (_arg1.length > 0){ _local2 = 0; while (_local2 <= 9) { _local3 = String(_arg1[_local2].user_name); _local4 = String(_arg1[_local2].score); if ((((_local3 == "")) || ((_local3 == null)))){ score_lines[_local2].hide(); next_arrow.hide(); } else { score_lines[_local2].displayData((saved_min_rank + _local2), _local3, _local4); }; _local2++; }; //unresolved jump }; } private function init(_arg1:Event):void{ loadHighScores(1); _arg1.target.removeEventListener(Event.ADDED_TO_STAGE, init); } private function retrieveSuccessful(_arg1:Event):void{ var _local2:String = _arg1.target.data.result; displayHighScores(_local2); } private function retrieveFailed(_arg1:IOErrorEvent):void{ } } }//package com.nitrome.highscore
Section 173
//HighScoreLine (com.nitrome.highscore.HighScoreLine) package com.nitrome.highscore { import flash.display.*; import flash.events.*; import flash.text.*; public class HighScoreLine extends Sprite { private const FADE_SPEED:Number = 0.3; public var _rank_text:TextField; public var _name_text:TextField; public var _score_text:TextField; private var score_text:TextField; private var name_text:TextField; private var rank_text:TextField; private var high_score_board:HighScoreBoard; private var hidden:Boolean; private var fade_delay:int; private var fade_count:int; public function HighScoreLine(){ visible = false; hidden = false; score_text = (getChildByName("_score_text") as TextField); name_text = (getChildByName("_name_text") as TextField); rank_text = (getChildByName("_rank_text") as TextField); high_score_board = (parent as HighScoreBoard); } public function displayData(_arg1:int, _arg2:String, _arg3:String):void{ var _local4:int; var _local5:int; var _local6:int; var _local7:int; rank_text.text = String((_arg1 + ".")); name_text.text = _arg2.toUpperCase(); if (high_score_board.zero_fill){ _local4 = high_score_board.MAX_DIGITS; _local5 = _arg3.length; _local6 = (_local4 - _local5); _local7 = 1; while (_local7 <= _local6) { _arg3 = ("0" + _arg3); _local7++; }; score_text.text = _arg3; } else { score_text.text = _arg3; }; alpha = 0; visible = true; fade_delay = (((_arg1 - 1) % high_score_board.NUM_LINES) * int((1 / FADE_SPEED))); fade_count = 0; addEventListener(Event.ENTER_FRAME, performFade); } public function hide():void{ visible = false; hidden = true; } private function performFade(_arg1:Event):void{ if (fade_count >= fade_delay){ alpha = (alpha + FADE_SPEED); if (alpha >= 1){ _arg1.target.removeEventListener(Event.ENTER_FRAME, performFade); }; }; fade_count++; } } }//package com.nitrome.highscore
Section 174
//LetterButton (com.nitrome.highscore.LetterButton) package com.nitrome.highscore { import flash.events.*; import com.nitrome.game.*; public class LetterButton extends SimpleButton { public var _letter:CrystalFont; private var score_submit_panel:ScoreSubmitPanel; private var letter:TextComponent; private var letter_text:String; public function LetterButton(){ score_submit_panel = (parent as ScoreSubmitPanel); letter_text = name; letter = (getChildByName("_letter") as TextComponent); addEventListener(Event.ADDED_TO_STAGE, init); } private function init(_arg1:Event):void{ letter.text = letter_text; _arg1.target.removeEventListener(Event.ADDED_TO_STAGE, init); } override public function onClick(_arg1:MouseEvent):void{ score_submit_panel.addLetter(letter_text); } override protected function onMouseOver(_arg1:MouseEvent):void{ super.onMouseOver(_arg1); } override protected function onMouseOut(_arg1:MouseEvent):void{ super.onMouseOut(_arg1); } } }//package com.nitrome.highscore
Section 175
//ScoreSubmitPanel (com.nitrome.highscore.ScoreSubmitPanel) package com.nitrome.highscore { import flash.display.*; import flash.events.*; import flash.text.*; import com.nitrome.game.*; import flash.net.*; import flash.ui.*; public class ScoreSubmitPanel extends MovieClip { private const MAX_LENGTH:Number = 10; public var D:LetterButton; public var U:LetterButton; public var E:LetterButton; public var V:LetterButton; public var F:LetterButton; public var W:LetterButton; public var G:LetterButton; public var X:LetterButton; public var H:LetterButton; public var Y:LetterButton; public var I:LetterButton; public var Z:LetterButton; public var _submit_button:SubmitButton; public var J:LetterButton; public var _clear_button:ClearButton; public var K:LetterButton; public var L:LetterButton; public var M:LetterButton; public var N:LetterButton; public var O:LetterButton; public var P:LetterButton; public var Q:LetterButton; public var A:LetterButton; public var R:LetterButton; public var _name_text:TextField; public var B:LetterButton; public var S:LetterButton; public var _score_text:TextField; public var C:LetterButton; public var T:LetterButton; private var name_text:TextField; private var score_text:TextField; private var submit_button:SubmitButton; private var loading_clip:MovieClip; private var submit_loader:URLLoader; private var submit_vars:URLVariables; private var submit_request:URLRequest; public function ScoreSubmitPanel(){ if (!NitromeGame.isAtURL(NitromeGame.NITROME)){ gotoAndStop("off"); return; }; addEventListener(Event.ADDED_TO_STAGE, init); } public function addLetter(_arg1:String):void{ var _local3:String; var _local2:String = _name_text.text; if (_local2.length < MAX_LENGTH){ _arg1 = _arg1.toUpperCase(); _local3 = (_local2 + _arg1); name_text.text = _local3; submit_button.enable(); }; } public function clearName():void{ submit_button.disable(); name_text.text = ""; } public function submitScore():void{ stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyPressed); var _local1:String = name_text.text; if (_local1 != ""){ submit_loader = new URLLoader(); submit_vars = new URLVariables(); submit_request = new URLRequest(NitromeGame.SUBMIT_URL); submit_request.method = URLRequestMethod.POST; submit_request.data = submit_vars; submit_loader.addEventListener(Event.COMPLETE, submitSuccessful, false, 0, true); submit_loader.addEventListener(IOErrorEvent.IO_ERROR, submitFailed, false, 0, true); submit_vars.data_string = NitromeGame.getScoreData(Score.value, _local1); submit_vars.time_based = "0"; submit_request.data = submit_vars; submit_loader.load(submit_request); } else { NitromeGame.timeline.gotoAndStop("scores"); }; } private function init(_arg1:Event):void{ submit_button = (getChildByName("_submit_button") as SubmitButton); name_text = (getChildByName("_name_text") as TextField); score_text = (getChildByName("_score_text") as TextField); score_text.text = String(("YOUR SCORE IS " + Score.value)); stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed, false, 0, true); removeEventListener(Event.ADDED_TO_STAGE, init); } private function keyPressed(_arg1:KeyboardEvent):void{ var _local2:int = _arg1.charCode; if ((((((_local2 >= 65)) && ((_local2 <= 90)))) || ((((_local2 >= 97)) && ((_local2 <= 122)))))){ addLetter(String.fromCharCode(_local2)); }; if ((((_arg1.keyCode == Keyboard.BACKSPACE)) || ((_arg1.keyCode == Keyboard.DELETE)))){ clearName(); }; } private function submitSuccessful(_arg1:Event):void{ NitromeGame.timeline.gotoAndStop("scores"); } private function submitFailed(_arg1:IOErrorEvent):void{ NitromeGame.timeline.gotoAndStop("scores"); } } }//package com.nitrome.highscore
Section 176
//SubmitButton (com.nitrome.highscore.SubmitButton) package com.nitrome.highscore { import flash.events.*; import com.nitrome.game.*; public class SubmitButton extends SimpleButton { private var pressed:Boolean;// = false private var disabled:Boolean;// = true private var score_submit_panel:ScoreSubmitPanel; public function SubmitButton(){ gotoAndStop("up"); score_submit_panel = (parent as ScoreSubmitPanel); } override protected function updateGraphic():void{ if (((!(over)) || (disabled))){ gotoAndStop("up"); } else { gotoAndStop("over"); }; } public function enable():void{ disabled = false; useHandCursor = true; buttonMode = true; updateGraphic(); } public function disable():void{ disabled = true; useHandCursor = false; buttonMode = false; updateGraphic(); } override public function onClick(_arg1:MouseEvent):void{ if (disabled){ gotoAndStop("up"); } else { if (!pressed){ score_submit_panel.submitScore(); pressed = true; }; }; } } }//package com.nitrome.highscore
Section 177
//Global (com.nitrome.util.Global) package com.nitrome.util { import flash.display.*; import flash.geom.*; import flash.text.*; public class Global { public static function findInList(_arg1, _arg2:Array):Number{ var _local3:Number = 0; while (_local3 < _arg2.length) { if (_arg2[_local3] == _arg1){ return (_local3); }; _local3++; }; return (-1); } public static function isInList(_arg1, _arg2:Array):Boolean{ var _local3:Number = 0; while (_local3 < _arg2.length) { if (_arg2[_local3] == _arg1){ return (true); }; _local3++; }; return (false); } public static function removeFromList(_arg1, _arg2:Array):void{ var _local3:Number = (_arg2.length - 1); while (_local3 >= 0) { if (_arg2[_local3] == _arg1){ _arg2.splice(_local3, 1); }; _local3--; }; } public static function removeOnceFromList(_arg1, _arg2:Array):void{ var _local3:Number = (_arg2.length - 1); while (_local3 >= 0) { if (_arg2[_local3] == _arg1){ _arg2.splice(_local3, 1); return; }; _local3--; }; } public static function slide(_arg1:Number, _arg2:Number, _arg3:Number):Number{ if (_arg1 == _arg2){ return (_arg2); }; if (_arg1 < _arg2){ _arg1 = (_arg1 + _arg3); if (_arg1 > _arg2){ _arg1 = _arg2; }; return (_arg1); //unresolved jump }; _arg1 = (_arg1 - _arg3); if (_arg1 < _arg2){ _arg1 = _arg2; }; return (_arg1); } public static function lerp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (((_arg1 * (1 - _arg3)) + (_arg2 * _arg3))); } public static function alerp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (((_arg3 - _arg1) / (_arg2 - _arg1))); } public static function deceleratingSweep(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{ var _local6:Number = ((_arg3)>0) ? -(_arg5) : _arg5; var _local7:Number = ((_arg3 * _arg3) / (2 * -(_local6))); _local7 = (_local7 + _arg1); if (_arg1 < _arg2){ if (_local7 > _arg2){ return (-(_arg5)); }; return (_arg4); //unresolved jump }; if (_local7 < _arg2){ return (_arg5); }; return (-(_arg4)); } public static function positiveModulo(_arg1:Number, _arg2:Number):Number{ if (_arg1 >= 0){ return ((_arg1 % _arg2)); }; return (((_arg1 % _arg2) + _arg2)); } public static function negativeModulo(_arg1:Number, _arg2:Number):Number{ if (_arg1 >= 0){ return (((_arg1 % _arg2) - _arg2)); }; return ((_arg1 % _arg2)); } public static function sign(_arg1:Number):Number{ if (_arg1 > 0){ return (1); }; if (_arg1 < 0){ return (-1); }; return (0); } public static function copyColorTransform(_arg1:ColorTransform):ColorTransform{ return (new ColorTransform(_arg1.redMultiplier, _arg1.greenMultiplier, _arg1.blueMultiplier, _arg1.alphaMultiplier, _arg1.redOffset, _arg1.greenOffset, _arg1.blueOffset, _arg1.alphaOffset)); } public static function whiteOut(_arg1:Number):ColorTransform{ var _local2:Number; var _local3:Number; if (_arg1 > 0.5){ _local2 = ((_arg1 - 0.5) * 2); _local3 = (0xFF - (_local2 * 0xFF)); return (new ColorTransform(_local2, _local2, _local2, 1, _local3, _local3, _local3, 0)); }; return (new ColorTransform(0, 0, 0, (_arg1 * 2), 0xFF, 0xFF, 0xFF, 0)); } public static function blackOut(_arg1:Number):ColorTransform{ var _local2:Number; if (_arg1 > 0.5){ _local2 = ((_arg1 - 0.5) * 2); return (new ColorTransform(_local2, _local2, _local2, 1, 0, 0, 0, 0)); }; return (new ColorTransform(0, 0, 0, (_arg1 * 2), 0, 0, 0, 0)); } public static function trim(_arg1:String):String{ var _local2:Number = 0; var _local3:Number = (_arg1.length - 1); while ((((((((_arg1.charAt(_local2) == " ")) || ((_arg1.charAt(_local2) == "\t")))) || ((_arg1.charAt(_local2) == "\n")))) || ((_arg1.charAt(_local2) == "\r")))) { _local2++; }; while ((((((((_arg1.charAt(_local3) == " ")) || ((_arg1.charAt(_local3) == "\t")))) || ((_arg1.charAt(_local3) == "\n")))) || ((_arg1.charAt(_local3) == "\r")))) { _local3--; }; return (_arg1.substring(_local2, (_local3 + 1))); } public static function repeatString(_arg1:String, _arg2:Number):String{ if (_arg2 < 1){ return (""); }; var _local3:String = _arg1; var _local4:Number = 1; while (_local4 < _arg2) { _local3 = (_local3 + _arg1); _local4++; }; return (_local3); } public static function childrenList(_arg1, _arg2:String):Array{ var _local4:*; var _local3:Array = []; for (_local4 in _arg1) { _local3.push(_arg1[_local4][_arg2]); }; return (_local3); } public static function safeMinimum(_arg1:Array):Number{ var _local3:*; var _local2:Number = NaN; for (_local3 in _arg1) { if (((isNaN(_local2)) || ((_arg1[_local3] < _local2)))){ _local2 = _arg1[_local3]; }; }; return (_local2); } public static function safeMaximum(_arg1:Array):Number{ var _local3:*; var _local2:Number = NaN; for (_local3 in _arg1) { if (((isNaN(_local2)) || ((_arg1[_local3] > _local2)))){ _local2 = _arg1[_local3]; }; }; return (_local2); } public static function isNumeric(_arg1:String):Boolean{ return ((_arg1 == String(Number(_arg1)))); } public static function textToBitmap(_arg1:BitmapData, _arg2:String, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0xFFFFFF, _arg6:Boolean=false, _arg7:TextFormat=null):void{ var _local8:TextField = new TextField(); _local8.autoSize = TextFieldAutoSize.LEFT; if (_arg7){ _local8.defaultTextFormat = _arg7; } else { _local8.defaultTextFormat = new TextFormat("_sans", 10); }; _local8.textColor = _arg5; _local8.text = _arg2; if (_arg6){ _arg1.draw(_local8, new Matrix(1, 0, 0, 1, (_arg3 - int((_local8.width / 2))), (_arg4 - int((_local8.height / 2))))); } else { _arg1.draw(_local8, new Matrix(1, 0, 0, 1, _arg3, _arg4)); }; } public static function enforcePlaces(_arg1:Number, _arg2:Number):String{ if (_arg1 < 0){ return (("-" + enforcePlaces(-(_arg1), _arg2))); }; var _local3:String = String(Math.floor(_arg1)); var _local4:String = String(Math.floor(((_arg1 % 1) * Math.pow(10, _arg2)))); while (_local4.length < _arg2) { _local4 = ("0" + _local4); }; return (((_local3 + ".") + _local4)); } public static function ordinal(_arg1:Number):String{ if (((((_arg1 % 100) > 10)) && (((_arg1 % 100) < 15)))){ return ((_arg1.toString() + "th")); }; if ((_arg1 % 10) == 1){ return ((_arg1.toString() + "st")); }; if ((_arg1 % 10) == 2){ return ((_arg1.toString() + "nd")); }; if ((_arg1 % 10) == 3){ return ((_arg1.toString() + "rd")); }; return ((_arg1.toString() + "th")); } public static function createGrid(_arg1:Number, _arg2:Number, _arg3=null):Array{ var _local6:Number; var _local4:Array = []; var _local5:Array = []; _local6 = 0; while (_local6 < _arg2) { _local5.push(_arg3); _local6++; }; _local6 = 0; while (_local6 < _arg1) { _local4.push(_local5.slice()); _local6++; }; return (_local4); } public static function createList(_arg1:Number, _arg2=null):Array{ var _local3:Array = []; var _local4:Number = 0; while (_local4 < _arg1) { _local3.push(_arg2); _local4++; }; return (_local3); } public static function copyArrayDeep(_arg1:Array):Array{ var _local2:Array = []; var _local3:Number = 0; while (_local3 < _arg1.length) { if ((_arg1[_local3] is Array)){ _local2.push(copyArrayDeep(_arg1[_local3])); } else { _local2.push(_arg1[_local3]); }; _local3++; }; return (_local2); } public static function findLabel(_arg1:MovieClip, _arg2:String):FrameLabel{ var _local3:Number = 0; while (_local3 < _arg1.currentLabels.length) { if (_arg1.currentLabels[_local3].name == _arg2){ return (_arg1.currentLabels[_local3]); }; _local3++; }; return (null); } public static function unique(_arg1:Array):Array{ if (_arg1.length < 1){ return ([]); }; var _local2:Array = [_arg1[0]]; var _local3:Number = 1; while (_local3 < _arg1.length) { if (_arg1[(_local3 - 1)] != _arg1[_local3]){ _local2.push(_arg1[_local3]); }; _local3++; }; return (_local2); } } }//package com.nitrome.util
Section 178
//Lock (com.nitrome.util.Lock) package com.nitrome.util { import flash.display.*; import flash.net.*; public class Lock extends MovieClip { private static var _url:String; public function Lock(){ addFrameScript(1, this.frame2); } function frame2(){ stop(); } public static function to(_arg1:Array, _arg2:Stage, _arg3:String):void{ _url = _arg2.loaderInfo.url; if (!(isGood(_arg1)) != true){ _arg2.addChild(new (Lock)); navigateToURL(new URLRequest(("http://www.nitrome.com/games/" + _arg3))); }; } private static function isGood(_arg1:Array):Boolean{ var _loc4_:String; var _loc5_:Array; var _loc6_:Array; var _loc7_:Array; var _loc8_:int; var _loc2_:String = _url.split("://")[1]; var _loc3_:int; while (_loc3_ < _arg1.length) { _loc4_ = _arg1[_loc3_]; if (_loc4_.indexOf("/") != -1){ _loc5_ = new Array(); if (_loc2_.indexOf("/") == -1){ return (false); }; _loc6_ = _loc4_.split("/"); _loc7_ = _loc2_.split("/"); _loc8_ = 0; while (_loc8_ < _loc6_.length) { if (!(_loc7_[_loc8_])){ return (false); }; if (checkUrls(_loc7_[_loc8_], _loc6_[_loc8_]) == true){ _loc5_.push(true); } else { _loc5_.push(false); }; _loc8_++; }; if (_loc5_.indexOf(false) == -1){ return (true); }; } else { if (checkUrls(_loc2_.split("/")[0], _loc4_) == true){ return (true); }; }; _loc3_++; }; return (false); } public static function checkUrls(_arg1:String, _arg2:String):Boolean{ var _loc3_:Array; var _loc4_:Array; var _loc5_:Array; var _loc6_:int; if (_arg1 == _arg2){ return (true); }; if (((((!((_arg2.indexOf(".") == -1))) && (!((_arg1.indexOf(".") == -1))))) && ((_arg2.split(".").length == _arg1.split(".").length)))){ _loc3_ = new Array(); _loc4_ = _arg2.split("."); _loc5_ = _arg1.split("."); _loc6_ = 0; while (_loc6_ < _loc4_.length) { if ((((_loc5_[_loc6_] == _loc4_[_loc6_])) || ((_loc4_[_loc6_] == "*")))){ _loc3_.push(true); } else { _loc3_.push(false); }; _loc6_++; }; if (_loc3_.indexOf(false) == -1){ return (true); }; return (false); }; if (_arg2 == "*"){ return (true); }; return (false); } private static function isAtURL(... _args):Boolean{ var _loc3_:Array; var _loc4_:int; var _loc5_:String; var _loc2_:int; while (_loc2_ < _args.length) { _loc3_ = _args[_loc2_]; _loc4_ = 0; while (_loc4_ < _loc3_.length) { _loc5_ = _loc3_[_loc4_]; if (compareURLTo(_loc5_, _url)){ return (true); }; _loc4_++; }; _loc2_++; }; return (false); } private static function compareURLTo(_arg1:String, _arg2:String):Boolean{ var _loc4_:int; var _loc5_:String; var _loc10_:Number; var _loc11_:String; var _loc12_:String; var _loc3_:Array = ["http://", "https://"]; _loc4_ = 0; while (_loc4_ < _loc3_.length) { if (_arg2.substr(0, _loc3_[_loc4_].length) == _loc3_[_loc4_]){ _loc5_ = _loc3_[_loc4_]; break; }; _loc4_++; }; if (_loc4_ == _loc3_.length){ return (false); }; var _loc6_:String = _arg2.substr(_loc5_.length); param1 = _arg1.substr(_loc5_.length); while (_loc6_.charAt(0) == "/") { _loc6_ = _loc6_.substr(1); }; while (param1.charAt(0) == "/") { param1 = param1.substr(1); }; var _loc7_:Array = _loc6_.split("/"); var _loc8_:Array = param1.split("/"); var _loc9_:Number = 0; while (_loc9_ < _loc8_.length) { if (_loc8_[_loc9_].length >= 1){ _loc10_ = _loc8_[_loc9_].indexOf("*"); if (_loc10_ != -1){ _loc11_ = _loc8_[_loc9_].substr(0, _loc10_); _loc12_ = _loc8_[_loc9_].substr((_loc10_ + 1)); if (_loc7_[_loc9_].substr(0, _loc11_.length) != _loc11_){ return (false); }; if (_loc7_[_loc9_].substr(-(_loc12_.length)) != _loc12_){ return (false); }; } else { if (_loc8_[_loc9_] != _loc7_[_loc9_]){ return (false); }; }; }; _loc9_++; }; return (true); } } }//package com.nitrome.util
Section 179
//BackBit (BackBit) package { import flash.display.*; public dynamic class BackBit extends MovieClip { } }//package
Section 180
//Background (Background) package { import flash.display.*; public dynamic class Background extends Sprite { } }//package
Section 181
//baddy_explosive_expert (baddy_explosive_expert) package { import com.nitrome.crystalmines.*; public dynamic class baddy_explosive_expert extends Enemy { } }//package
Section 182
//baddy_licker (baddy_licker) package { import com.nitrome.crystalmines.*; public dynamic class baddy_licker extends Enemy { } }//package
Section 183
//baddy_puker (baddy_puker) package { import com.nitrome.crystalmines.*; public dynamic class baddy_puker extends Enemy { } }//package
Section 184
//baddy_pusher (baddy_pusher) package { import com.nitrome.crystalmines.*; public dynamic class baddy_pusher extends Enemy { } }//package
Section 185
//baddy_runner (baddy_runner) package { import com.nitrome.crystalmines.*; public dynamic class baddy_runner extends Enemy { } }//package
Section 186
//baddy_snail (baddy_snail) package { import com.nitrome.crystalmines.*; public dynamic class baddy_snail extends Enemy { } }//package
Section 187
//baddy_spider (baddy_spider) package { import com.nitrome.crystalmines.*; public dynamic class baddy_spider extends Enemy { } }//package
Section 188
//barrelside (barrelside) package { import com.nitrome.crystalmines.*; public dynamic class barrelside extends Block { } }//package
Section 189
//barrelstand (barrelstand) package { import com.nitrome.crystalmines.*; public dynamic class barrelstand extends Block { } }//package
Section 190
//BatLight (BatLight) package { import flash.display.*; public dynamic class BatLight extends MovieClip { } }//package
Section 191
//bomb1 (bomb1) package { import com.nitrome.crystalmines.*; public dynamic class bomb1 extends Bomb { } }//package
Section 192
//boulder1 (boulder1) package { import com.nitrome.crystalmines.*; public dynamic class boulder1 extends Block { } }//package
Section 193
//boulder2 (boulder2) package { import com.nitrome.crystalmines.*; public dynamic class boulder2 extends Block { } }//package
Section 194
//Bubble (Bubble) package { import flash.display.*; public dynamic class Bubble extends MovieClip { } }//package
Section 195
//ClearButton (ClearButton) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import com.nitrome.highscore.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.ui.*; import flash.xml.*; public dynamic class ClearButton extends ClearButton { public var __id13_:CrystalFont; public function ClearButton(){ addFrameScript(0, frame1, 9, frame10); __setProp___id13__ClearButton_Layer7_0(); } function __setProp___id13__ClearButton_Layer7_0(){ try { __id13_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id13_.align = "center"; __id13_.align_vert = "center"; __id13_.id = "Crystal"; __id13_.line_spacing = 22; __id13_.text = "clear"; __id13_.tracking = 0; try { __id13_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ stop(); } function frame10(){ stop(); } } }//package
Section 196
//crate (crate) package { import com.nitrome.crystalmines.*; public dynamic class crate extends Block { } }//package
Section 197
//crazy (crazy) package { import com.nitrome.crystalmines.*; public dynamic class crazy extends Block { } }//package
Section 198
//CrystalFont (CrystalFont) package { import com.nitrome.game.*; public dynamic class CrystalFont extends CrystalFont { } }//package
Section 199
//CrystalLarge (CrystalLarge) package { import com.nitrome.crystalmines.*; public dynamic class CrystalLarge extends Crystal { } }//package
Section 200
//CrystalSmall (CrystalSmall) package { import com.nitrome.crystalmines.*; public dynamic class CrystalSmall extends Crystal { } }//package
Section 201
//DJump (DJump) package { import com.nitrome.crystalmines.*; public dynamic class DJump extends Block { } }//package
Section 202
//doublejump (doublejump) package { import flash.display.*; public dynamic class doublejump extends Sprite { } }//package
Section 203
//doublejump_icon (doublejump_icon) package { import com.nitrome.crystalmines.*; public dynamic class doublejump_icon extends Block { } }//package
Section 204
//Dust (Dust) package { import flash.display.*; public dynamic class Dust extends MovieClip { } }//package
Section 205
//e_tile_crate (e_tile_crate) package { import flash.display.*; public dynamic class e_tile_crate extends Sprite { } }//package
Section 206
//e_tile_railTrack (e_tile_railTrack) package { import com.nitrome.crystalmines.*; public dynamic class e_tile_railTrack extends Block { } }//package
Section 207
//Explosion (Explosion) package { import flash.display.*; public dynamic class Explosion extends MovieClip { } }//package
Section 208
//explosiveexpert_death (explosiveexpert_death) package { import flash.display.*; public dynamic class explosiveexpert_death extends Sprite { } }//package
Section 209
//fast (fast) package { import com.nitrome.crystalmines.*; public dynamic class fast extends Block { } }//package
Section 210
//flash (flash) package { import flash.display.*; public dynamic class flash extends Sprite { } }//package
Section 211
//flash_icon (flash_icon) package { import com.nitrome.crystalmines.*; public dynamic class flash_icon extends Block { } }//package
Section 212
//Flasher (Flasher) package { import com.nitrome.crystalmines.*; public dynamic class Flasher extends Block { } }//package
Section 213
//GameMusic (GameMusic) package { import flash.media.*; public dynamic class GameMusic extends Sound { } }//package
Section 214
//hamham_hi2 (hamham_hi2) package { import flash.display.*; public dynamic class hamham_hi2 extends Sprite { } }//package
Section 215
//Hero1 (Hero1) package { import com.nitrome.crystalmines.*; public dynamic class Hero1 extends Hero { } }//package
Section 216
//Hero2 (Hero2) package { import com.nitrome.crystalmines.*; public dynamic class Hero2 extends Hero { } }//package
Section 217
//HighScoreBoard (HighScoreBoard) package { import com.nitrome.highscore.*; public dynamic class HighScoreBoard extends HighScoreBoard { public function HighScoreBoard(){ addFrameScript(0, frame1, 10, frame11); } function frame1(){ stop(); } function frame11(){ stop(); } } }//package
Section 218
//IconPlayer1 (IconPlayer1) package { import flash.display.*; public dynamic class IconPlayer1 extends Sprite { } }//package
Section 219
//IconPlayer2 (IconPlayer2) package { import flash.display.*; public dynamic class IconPlayer2 extends Sprite { } }//package
Section 220
//instructions_board (instructions_board) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import com.nitrome.crystalmines.*; import flash.utils.*; import flash.media.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.ui.*; import flash.xml.*; public dynamic class instructions_board extends Block { public var __id37_:CrystalFont; public function instructions_board(){ __setProp___id37__instructions_board_Layer1_0(); } function __setProp___id37__instructions_board_Layer1_0(){ try { __id37_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id37_.align = "center"; __id37_.align_vert = "center"; __id37_.id = "Crystal"; __id37_.line_spacing = 22; __id37_.text = "run!!!"; __id37_.tracking = 0; try { __id37_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 221
//KeysResetIcon (KeysResetIcon) package { import flash.display.*; public dynamic class KeysResetIcon extends MovieClip { } }//package
Section 222
//LetterButton (LetterButton) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import com.nitrome.highscore.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.ui.*; import flash.xml.*; public dynamic class LetterButton extends LetterButton { public function LetterButton(){ addFrameScript(0, frame1, 9, frame10); __setProp__letter_LetterButton_Layer11_0(); } function __setProp__letter_LetterButton_Layer11_0(){ try { _letter["componentInspectorSetting"] = true; } catch(e:Error) { }; _letter.align = "center"; _letter.align_vert = "center"; _letter.id = "Crystal"; _letter.line_spacing = 22; _letter.text = "a"; _letter.tracking = 0; try { _letter["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ stop(); } function frame10(){ stop(); } } }//package
Section 223
//MD5 (MD5) package { public class MD5 { public static const HEX_FORMAT_LOWERCASE:uint = 0; public static const HEX_FORMAT_UPPERCASE:uint = 1; public static const BASE64_PAD_CHARACTER_DEFAULT_COMPLIANCE:String = ""; public static const BASE64_PAD_CHARACTER_RFC_COMPLIANCE:String = "="; public static var hexcase:uint = 0; public static var b64pad:String = ""; public function hash(_arg1:String):String{ return (hex_md5(_arg1)); } public static function encrypt(_arg1:String):String{ return (hex_md5(_arg1)); } public static function hex_md5(_arg1:String):String{ return (rstr2hex(rstr_md5(str2rstr_utf8(_arg1)))); } public static function b64_md5(_arg1:String):String{ return (rstr2b64(rstr_md5(str2rstr_utf8(_arg1)))); } public static function any_md5(_arg1:String, _arg2:String):String{ return (rstr2any(rstr_md5(str2rstr_utf8(_arg1)), _arg2)); } public static function hex_hmac_md5(_arg1:String, _arg2:String):String{ return (rstr2hex(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)))); } public static function b64_hmac_md5(_arg1:String, _arg2:String):String{ return (rstr2b64(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)))); } public static function any_hmac_md5(_arg1:String, _arg2:String, _arg3:String):String{ return (rstr2any(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)), _arg3)); } public static function md5_vm_test():Boolean{ return ((hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72")); } public static function rstr_md5(_arg1:String):String{ return (binl2rstr(binl_md5(rstr2binl(_arg1), (_arg1.length * 8)))); } public static function rstr_hmac_md5(_arg1:String, _arg2:String):String{ var _local3:Array = rstr2binl(_arg1); if (_local3.length > 16){ _local3 = binl_md5(_local3, (_arg1.length * 8)); }; var _local4:Array = new Array(16); var _local5:Array = new Array(16); var _local6:Number = 0; while (_local6 < 16) { _local4[_local6] = (_local3[_local6] ^ 909522486); _local5[_local6] = (_local3[_local6] ^ 1549556828); _local6++; }; var _local7:Array = binl_md5(_local4.concat(rstr2binl(_arg2)), (0x0200 + (_arg2.length * 8))); return (binl2rstr(binl_md5(_local5.concat(_local7), (0x0200 + 128)))); } public static function rstr2hex(_arg1:String):String{ var _local4:Number; var _local2:String = (hexcase) ? "0123456789ABCDEF" : "0123456789abcdef"; var _local3 = ""; var _local5:Number = 0; while (_local5 < _arg1.length) { _local4 = _arg1.charCodeAt(_local5); _local3 = (_local3 + (_local2.charAt(((_local4 >>> 4) & 15)) + _local2.charAt((_local4 & 15)))); _local5++; }; return (_local3); } public static function rstr2b64(_arg1:String):String{ var _local6:Number; var _local7:Number; var _local2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; var _local3 = ""; var _local4:Number = _arg1.length; var _local5:Number = 0; while (_local5 < _local4) { _local6 = (((_arg1.charCodeAt(_local5) << 16) | (((_local5 + 1) < _local4)) ? (_arg1.charCodeAt((_local5 + 1)) << 8) : 0) | (((_local5 + 2) < _local4)) ? _arg1.charCodeAt((_local5 + 2)) : 0); _local7 = 0; while (_local7 < 4) { if (((_local5 * 8) + (_local7 * 6)) > (_arg1.length * 8)){ _local3 = (_local3 + b64pad); } else { _local3 = (_local3 + _local2.charAt(((_local6 >>> (6 * (3 - _local7))) & 63))); }; _local7++; }; _local5 = (_local5 + 3); }; return (_local3); } public static function rstr2any(_arg1:String, _arg2:String):String{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Array; var _local3:Number = _arg2.length; var _local4:Array = []; var _local9:Array = new Array((_arg1.length / 2)); _local5 = 0; while (_local5 < _local9.length) { _local9[_local5] = ((_arg1.charCodeAt((_local5 * 2)) << 8) | _arg1.charCodeAt(((_local5 * 2) + 1))); _local5++; }; while (_local9.length > 0) { _local8 = []; _local7 = 0; _local5 = 0; while (_local5 < _local9.length) { _local7 = ((_local7 << 16) + _local9[_local5]); _local6 = Math.floor((_local7 / _local3)); _local7 = (_local7 - (_local6 * _local3)); if ((((_local8.length > 0)) || ((_local6 > 0)))){ _local8[_local8.length] = _local6; }; _local5++; }; _local4[_local4.length] = _local7; _local9 = _local8; }; var _local10 = ""; _local5 = (_local4.length - 1); while (_local5 >= 0) { _local10 = (_local10 + _arg2.charAt(_local4[_local5])); _local5--; }; return (_local10); } public static function str2rstr_utf8(_arg1:String):String{ var _local4:Number; var _local5:Number; var _local2 = ""; var _local3:Number = -1; while (++_local3 < _arg1.length) { _local4 = _arg1.charCodeAt(_local3); _local5 = (((_local3 + 1) < _arg1.length)) ? _arg1.charCodeAt((_local3 + 1)) : 0; if ((((((((0xD800 <= _local4)) && ((_local4 <= 56319)))) && ((0xDC00 <= _local5)))) && ((_local5 <= 57343)))){ _local4 = ((65536 + ((_local4 & 1023) << 10)) + (_local5 & 1023)); _local3++; }; if (_local4 <= 127){ _local2 = (_local2 + String.fromCharCode(_local4)); } else { if (_local4 <= 2047){ _local2 = (_local2 + String.fromCharCode((192 | ((_local4 >>> 6) & 31)), (128 | (_local4 & 63)))); } else { if (_local4 <= 0xFFFF){ _local2 = (_local2 + String.fromCharCode((224 | ((_local4 >>> 12) & 15)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63)))); } else { if (_local4 <= 2097151){ _local2 = (_local2 + String.fromCharCode((240 | ((_local4 >>> 18) & 7)), (128 | ((_local4 >>> 12) & 63)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63)))); }; }; }; }; }; return (_local2); } public static function str2rstr_utf16le(_arg1:String):String{ var _local2 = ""; var _local3:Number = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode((_arg1.charCodeAt(_local3) & 0xFF), ((_arg1.charCodeAt(_local3) >>> 8) & 0xFF))); _local3++; }; return (_local2); } public static function str2rstr_utf16be(_arg1:String):String{ var _local2 = ""; var _local3:Number = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode(((_arg1.charCodeAt(_local3) >>> 8) & 0xFF), (_arg1.charCodeAt(_local3) & 0xFF))); _local3++; }; return (_local2); } public static function rstr2binl(_arg1:String):Array{ var _local2:Array = new Array((_arg1.length >> 2)); var _local3:Number = 0; while (_local3 < _local2.length) { _local2[_local3] = 0; _local3++; }; _local3 = 0; while (_local3 < (_arg1.length * 8)) { _local2[(_local3 >> 5)] = (_local2[(_local3 >> 5)] | ((_arg1.charCodeAt((_local3 / 8)) & 0xFF) << (_local3 % 32))); _local3 = (_local3 + 8); }; return (_local2); } public static function binl2rstr(_arg1:Array):String{ var _local2 = ""; var _local3:Number = 0; while (_local3 < (_arg1.length * 32)) { _local2 = (_local2 + String.fromCharCode(((_arg1[(_local3 >> 5)] >>> (_local3 % 32)) & 0xFF))); _local3 = (_local3 + 8); }; return (_local2); } public static function binl_md5(_arg1:Array, _arg2:Number):Array{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; _arg1[(_arg2 >> 5)] = (_arg1[(_arg2 >> 5)] | (128 << (_arg2 % 32))); _arg1[((((_arg2 + 64) >>> 9) << 4) + 14)] = _arg2; var _local3:Number = 1732584193; var _local4:Number = -271733879; var _local5:Number = -1732584194; var _local6:Number = 271733878; var _local7:Number = 0; while (_local7 < _arg1.length) { _local8 = _local3; _local9 = _local4; _local10 = _local5; _local11 = _local6; _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 7, -680876936); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 1)], 12, -389564586); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 17, 606105819); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 3)], 22, -1044525330); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 7, -176418897); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 5)], 12, 1200080426); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 17, -1473231341); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 7)], 22, -45705983); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 7, 1770035416); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 9)], 12, -1958414417); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 17, -42063); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 11)], 22, -1990404162); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 7, 1804603682); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 13)], 12, -40341101); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 17, -1502002290); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 15)], 22, 1236535329); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 5, -165796510); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 6)], 9, -1069501632); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 14, 643717713); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 0)], 20, -373897302); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 5, -701558691); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 10)], 9, 38016083); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 14, -660478335); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 4)], 20, -405537848); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 5, 568446438); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 14)], 9, -1019803690); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 14, -187363961); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 8)], 20, 1163531501); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 5, -1444681467); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 2)], 9, -51403784); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 14, 1735328473); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 12)], 20, -1926607734); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 4, -378558); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 8)], 11, -2022574463); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 16, 1839030562); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 14)], 23, -35309556); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 4, -1530992060); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 4)], 11, 1272893353); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 16, -155497632); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 10)], 23, -1094730640); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 4, 681279174); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 0)], 11, -358537222); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 16, -722521979); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 6)], 23, 76029189); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 4, -640364487); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 12)], 11, -421815835); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 16, 530742520); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 2)], 23, -995338651); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 6, -198630844); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 7)], 10, 1126891415); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 15, -1416354905); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 5)], 21, -57434055); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 6, 1700485571); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 3)], 10, -1894986606); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 15, -1051523); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 1)], 21, -2054922799); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 6, 1873313359); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 15)], 10, -30611744); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 15, -1560198380); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 13)], 21, 1309151649); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 6, -145523070); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 11)], 10, -1120210379); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 15, 718787259); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 9)], 21, -343485551); _local3 = safe_add(_local3, _local8); _local4 = safe_add(_local4, _local9); _local5 = safe_add(_local5, _local10); _local6 = safe_add(_local6, _local11); _local7 = (_local7 + 16); }; return ([_local3, _local4, _local5, _local6]); } public static function md5_cmn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Number{ return (safe_add(bit_rol(safe_add(safe_add(_arg2, _arg1), safe_add(_arg4, _arg6)), _arg5), _arg3)); } public static function md5_ff(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 & _arg3) | (~(_arg2) & _arg4)), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function md5_gg(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 & _arg4) | (_arg3 & ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function md5_hh(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 ^ _arg3) ^ _arg4), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function md5_ii(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn((_arg3 ^ (_arg2 | ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function safe_add(_arg1:Number, _arg2:Number):Number{ var _local3:Number = ((_arg1 & 0xFFFF) + (_arg2 & 0xFFFF)); var _local4:Number = (((_arg1 >> 16) + (_arg2 >> 16)) + (_local3 >> 16)); return (((_local4 << 16) | (_local3 & 0xFFFF))); } public static function bit_rol(_arg1:Number, _arg2:Number):Number{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } } }//package
Section 224
//med (med) package { import com.nitrome.crystalmines.*; public dynamic class med extends Block { } }//package
Section 225
//MineCart (MineCart) package { import com.nitrome.crystalmines.*; public dynamic class MineCart extends Block { } }//package
Section 226
//MineCartLong (MineCartLong) package { import com.nitrome.crystalmines.*; public dynamic class MineCartLong extends Block { } }//package
Section 227
//mineLight (mineLight) package { import com.nitrome.crystalmines.*; public dynamic class mineLight extends Lamp { } }//package
Section 228
//mushroom (mushroom) package { import com.nitrome.crystalmines.*; public dynamic class mushroom extends Block { public function mushroom(){ addFrameScript(8, frame9); } function frame9(){ stop(); } } }//package
Section 229
//new_shield (new_shield) package { import flash.display.*; public dynamic class new_shield extends Sprite { } }//package
Section 230
//newshield_box (newshield_box) package { import flash.display.*; public dynamic class newshield_box extends Sprite { } }//package
Section 231
//newshield_icon (newshield_icon) package { import flash.display.*; public dynamic class newshield_icon extends Sprite { } }//package
Section 232
//NextArrow (NextArrow) package { import com.nitrome.highscore.*; public dynamic class NextArrow extends ArrowButton { public function NextArrow(){ addFrameScript(0, frame1, 9, frame10); } function frame1(){ stop(); } function frame10(){ stop(); } } }//package
Section 233
//NitromeGame (NitromeGame) package { import flash.display.*; import com.nitrome.game.*; import flash.net.*; public class NitromeGame { private static const NITROME_URL:Array = new Array("http://www.nitrome.com/", "http://cdn.nitrome.com/", "http://www.nitrome.co.uk/", "http://www.nitrome.net/", "http://www.nitromegames.com/", "http://www.nitromegames.co.uk/", "http://www.nitrome-games.com/", "http://www.nitrome-games.co.uk/", "http://www.nitromeimages.com/"); private static const CANDYSTAND_URL:Array = new Array("http://www.candystand.com/", "http://candystand.com/"); private static const MINICLIP_URL:Array = new Array("http://www.miniclip.com/", "http://miniclip.com/"); private static const DOMAINS:Array = new Array(".nitrome.com/", ".miniclip.com/", ".candystand.com/"); public static const NITROME:Array = new Array("http://www.nitrome.com/", "http://cdn.nitrome.com/", "http://www.nitrome.co.uk/", "http://www.nitrome.net/", "http://www.nitromegames.com/", "http://www.nitromegames.co.uk/", "http://www.nitrome-games.com/", "http://www.nitrome-games.co.uk/", "http://www.nitromeimages.com/"); public static const MINICLIP:uint = 1; public static const CANDYSTAND:uint = 2; public static const SUBMIT_URL:String = "http://www.nitrome.com/php/submit_score.php"; public static const RETRIEVE_URL:String = "http://www.nitrome.com/php/retrieve_scores.php"; public static const FGL_URL:Array = ["http://www.flashgamelicense.com/", "https://www.flashgamelicense.com"]; private static var _level_id:String; private static var _total_levels:int; private static var _game_id:String; private static var _url:String; private static var _leading_zero:Boolean = false; private static var _time_based:Boolean = false; private static var _selected_level:int = 1; private static var ar_1:Array = new Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "/", ":", ".", "_", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-"); private static var ar_2:Array = new Array("_", "7", "c", "2", "l", "r", "a", "h", "i", ".", "g", "m", "v", "1", "b", "q", "3", "z", "w", "o", "u", "t", "s", "0", "d", "f", "8", "n", "5", "k", ":", "j", "p", "/", "4", "6", "e", "9", "y", "x", "-"); private static var ar_key:String = "ctdngevfaqki8_lb:psoj90ux127hm/4w5y3rz.6-"; private static var adj:Number = 1.75; private static var ff:Array = new Array(); public static var timeline:MovieClip; public static var sound_manager:SoundManager; public static var global:Object = new Object(); public static var transition:TransitionTween; public static var defaultKeys:Array; public static var usingDefaultKeys:Boolean = true; public static function init(_arg1:MovieClip, _arg2:String, _arg3:String, _arg4:Number, _arg5:Array=null):void{ timeline = _arg1; _url = _arg1.loaderInfo.url; _level_id = _arg3; _total_levels = _arg4; _game_id = _arg2.toLowerCase(); if (_arg5 != null){ defaultKeys = _arg5.slice(); getKeys(_arg5); }; } public static function get game_id():String{ return (_game_id); } public static function get level_id():String{ return (_level_id); } public static function get total_levels():int{ return (_total_levels); } public static function get selected_level():int{ return (_selected_level); } public static function set selected_level(_arg1:int):void{ _selected_level = _arg1; } public static function get url():String{ return (_url); } public static function get leading_zero():Boolean{ return (_leading_zero); } public static function set leading_zero(_arg1:Boolean):void{ _leading_zero = _arg1; } public static function get time_based():Boolean{ return (_time_based); } public static function set time_based(_arg1:Boolean):void{ _time_based = _arg1; } public static function isAtURL(... _args):Boolean{ var _local3:Array; var _local4:int; var _local5:String; if (_args.length == 0){ _args.push(NITROME_URL); }; var _local2:int; while (_local2 < _args.length) { _local3 = _args[_local2]; _local4 = 0; while (_local4 < _local3.length) { _local5 = _local3[_local4]; if (compareURLTo(_local5, _url)){ return (true); }; _local4++; }; _local2++; }; return (false); } private static function compareURLTo(_arg1:String, _arg2:String):Boolean{ var _local4:int; var _local5:String; var _local10:Number; var _local11:String; var _local12:String; var _local3:Array = ["http://", "https://"]; _local4 = 0; while (_local4 < _local3.length) { if (_arg2.substr(0, _local3[_local4].length) == _local3[_local4]){ _local5 = _local3[_local4]; break; }; _local4++; }; if (_local4 == _local3.length){ return (false); }; var _local6:String = _arg2.substr(_local5.length); _arg1 = _arg1.substr(_local5.length); while (_local6.charAt(0) == "/") { _local6 = _local6.substr(1); }; while (_arg1.charAt(0) == "/") { _arg1 = _arg1.substr(1); }; var _local7:Array = _local6.split("/"); var _local8:Array = _arg1.split("/"); var _local9:Number = 0; while (_local9 < _local8.length) { if (_local8[_local9].length < 1){ } else { _local10 = _local8[_local9].indexOf("*"); if (_local10 != -1){ _local11 = _local8[_local9].substr(0, _local10); _local12 = _local8[_local9].substr((_local10 + 1)); if (_local7[_local9].substr(0, _local11.length) != _local11){ return (false); }; if (_local7[_local9].substr(-(_local12.length)) != _local12){ return (false); }; } else { if (_local8[_local9] != _local7[_local9]){ return (false); }; }; }; _local9++; }; return (true); } public static function getSwfPath():String{ var _local1:String = url; var _local2:int = _local1.length; while (_local2 >= 0) { if (_local1.charAt(_local2) == "/"){ _local1 = _local1.slice(0, (_local2 + 1)); break; }; _local2--; }; return (_local1); } public static function getLevelName(_arg1:Number, _arg2:String=".xml"):String{ var _local3:MD5 = new MD5(); var _local4 = ""; if (leading_zero){ if (_arg1 < 10){ _local4 = "0"; }; }; var _local5:String = _local3.hash(String(((level_id + _local4) + _arg1))); return ((_local5 + _arg2)); } public static function setBoughtItem(_arg1:int=1):void{ var _local2:String = (("so_" + game_id) + _arg1); var _local3:SharedObject = SharedObject.getLocal(_local2); _local3.data.bought_item = true; _local3.flush(); _local3.close(); } public static function getBoughtItem(_arg1:int=1):Boolean{ var _local2:String = (("so_" + game_id) + _arg1); var _local3:SharedObject = SharedObject.getLocal(_local2); var _local4:Boolean = _local3.data.bought_item; _local3.close(); if ((((_local4 == true)) || ((_local4 == false)))){ return (_local4); }; return (false); } public static function setLevelUnlocked(_arg1:int, _arg2:int=1):void{ var _local6:*; var _local7:Array; var _local8:int; var _local3:String = (("so_" + game_id) + _arg2); var _local4:SharedObject = SharedObject.getLocal(_local3); var _local5:Boolean; for each (_local6 in _local4.data) { _local5 = true; break; }; _local7 = new Array(total_levels); if (!_local5){ _local8 = 0; while (_local8 < _local7.length) { _local7[_local8] = 0; _local8++; }; _local7[0] = 1; } else { if (_local4.data.levels_unlocked == undefined){ _local8 = 0; while (_local8 < _local7.length) { _local7[_local8] = 0; _local8++; }; _local7[0] = 1; } else { _local7 = _local4.data.levels_unlocked; }; }; _local7[(_arg1 - 1)] = 1; _local4.data.levels_unlocked = _local7; _local4.flush(); _local4.close(); } public static function getLevelUnlocked(_arg1:int, _arg2:int=1):Boolean{ var _local6:*; var _local7:Array; var _local8:int; var _local3:String = (("so_" + game_id) + _arg2); var _local4:SharedObject = SharedObject.getLocal(_local3); var _local5:Boolean; for each (_local6 in _local4.data) { _local5 = true; break; }; _local7 = new Array(total_levels); if (!_local5){ _local8 = 0; while (_local8 < _local7.length) { _local7[_local8] = 0; _local8++; }; _local7[0] = 1; _local4.data.levels_unlocked = _local7; _local4.flush(); _local4.close(); if (_arg1 == 1){ return (true); }; return (false); } else { if (_local4.data.levels_unlocked == undefined){ _local8 = 0; while (_local8 < _local7.length) { _local7[_local8] = 0; _local8++; }; _local7[0] = 1; _local4.data.levels_unlocked = _local7; _local4.flush(); _local4.close(); if (_arg1 == 1){ return (true); }; return (false); } else { if (_local4.data.levels_unlocked[(_arg1 - 1)] == 1){ return (true); }; if (_local4.data.levels_unlocked[(_arg1 - 1)] == 0){ return (false); }; }; }; return (false); } public static function getLastLevelUnlocked(_arg1:int=1):int{ var _local5:*; var _local6:Array; var _local7:int; var _local2:String = (("so_" + game_id) + _arg1); var _local3:SharedObject = SharedObject.getLocal(_local2); var _local4:Boolean; for each (_local5 in _local3.data) { _local4 = true; break; }; _local6 = new Array(total_levels); if (!_local4){ _local7 = 0; while (_local7 < _local6.length) { _local6[_local7] = 0; _local7++; }; _local6[0] = 1; _local3.data.levels_unlocked = _local6; _local3.flush(); _local3.close(); return (1); } else { if (_local3.data.levels_unlocked == undefined){ _local7 = 0; while (_local7 < _local6.length) { _local6[_local7] = 0; _local7++; }; _local6[0] = 1; _local3.data.levels_unlocked = _local6; _local3.flush(); _local3.close(); return (1); } else { _local7 = 0; while (_local7 < _local3.data.levels_unlocked.length) { if ((((((_local3.data.levels_unlocked[_local7] == 0)) || ((_local3.data.levels_unlocked[_local7] == undefined)))) || ((_local3.data.levels_unlocked[_local7] == null)))){ return (_local7); }; if ((((_local3.data.levels_unlocked[_local7] == 1)) && ((_local7 == (_local3.data.levels_unlocked.length - 1))))){ return (_local3.data.levels_unlocked.length); }; _local7++; }; }; }; return (1); } public static function getAllLevelsUnlocked(_arg1:int=1):Array{ var _local5:Number; var _local2:Array = [1]; var _local3:String = (("so_" + game_id) + _arg1); var _local4:SharedObject = SharedObject.getLocal(_local3); if (((_local4) && (_local4.data.levels_unlocked))){ _local5 = 1; while (_local5 < total_levels) { if (_local4.data.levels_unlocked[_local5]){ _local2.push((_local5 + 1)); }; _local5++; }; }; return (_local2); } public static function mashLevelsUnlocked(_arg1:String, _arg2:int=1):void{ var _local6:*; var _local7:Array; var _local8:int; var _local3:String = (("so_" + game_id) + _arg2); var _local4:SharedObject = SharedObject.getLocal(_local3); var _local5:Boolean; for each (_local6 in _local4.data) { _local5 = true; break; }; _local7 = new Array(total_levels); if (!_local5){ _local8 = 0; while (_local8 < _local7.length) { _local7[_local8] = 0; _local8++; }; _local7[0] = 1; _local4.data.levels_unlocked = _local7; } else { if (_local4.data.levels_unlocked == undefined){ _local8 = 0; while (_local8 < _local7.length) { _local7[_local8] = 0; _local8++; }; _local7[0] = 1; _local4.data.levels_unlocked = _local7; }; }; var _local9:Array = _local4.data.levels_unlocked; var _local10:Array = _arg1.split(","); _local8 = 0; while (_local8 < _local9.length) { if ((((_local9[_local8] == 1)) || ((_local10[_local8] == 1)))){ _local4.data.levels_unlocked[_local8] = 1; }; _local8++; }; } public static function getLevelUnlockedString(_arg1:int=1):String{ var _local5:*; var _local6:Array; var _local7:int; var _local2:String = (("so_" + game_id) + _arg1); var _local3:SharedObject = SharedObject.getLocal(_local2); var _local4:Boolean; for each (_local5 in _local3.data) { _local4 = true; break; }; _local6 = new Array(total_levels); if (!_local4){ _local7 = 0; while (_local7 < _local6.length) { _local6[_local7] = 0; _local7++; }; _local6[0] = 1; _local3.data.levels_unlocked = _local6; _local3.flush(); _local3.close(); return (String(_local6)); //unresolved jump }; if (_local3.data.levels_unlocked == undefined){ _local7 = 0; while (_local7 < _local6.length) { _local6[_local7] = 0; _local7++; }; _local6[0] = 1; _local3.data.levels_unlocked = _local6; _local3.flush(); _local3.close(); return (String(_local6)); //unresolved jump }; _local6 = _local3.data.levels_unlocked; return (String(_local6)); } public static function lockAllLevels(_arg1:int=1):void{ var _local5:int; var _local2:String = (("so_" + game_id) + _arg1); var _local3:SharedObject = SharedObject.getLocal(_local2); var _local4:Array = new Array(total_levels); _local5 = 0; while (_local5 < _local4.length) { _local4[_local5] = 0; _local5++; }; _local4[0] = 1; _local3.data.levels_unlocked = _local4; _local3.flush(); _local3.close(); } public static function unlockAllLevels(_arg1:int=1):void{ var _local5:int; var _local2:String = (("so_" + game_id) + _arg1); var _local3:SharedObject = SharedObject.getLocal(_local2); var _local4:Array = new Array(total_levels); _local5 = 0; while (_local5 < _local4.length) { _local4[_local5] = 1; _local5++; }; _local3.data.levels_unlocked = _local4; _local3.flush(); _local3.close(); } public static function setLevelScore(_arg1:int, _arg2:int, _arg3:int=1):void{ var _local7:*; var _local4:String = (("so_" + game_id) + _arg3); var _local5:SharedObject = SharedObject.getLocal(_local4); var _local6:Boolean; for each (_local7 in _local5.data) { _local6 = true; break; }; if (!_local6){ _local5.data.level_scores = new Array(); _local5.data.level_scores[_arg2] = _arg1; } else { if (_local5.data.level_scores == undefined){ _local5.data.level_scores = new Array(); _local5.data.level_scores[_arg2] = _arg1; } else { _local5.data.level_scores[_arg2] = _arg1; }; }; _local5.flush(); _local5.close(); } public static function getLevelScore(_arg1:int, _arg2:int=1):int{ var _local6:*; var _local3:String = (("so_" + game_id) + String(_arg2)); var _local4:SharedObject = SharedObject.getLocal(_local3); var _local5:Boolean; for each (_local6 in _local4.data) { _local5 = true; break; }; if (!_local5){ return (0); }; if (_local4.data.level_scores == undefined){ return (0); }; if (_local4.data.level_scores[_arg1] == undefined){ return (0); }; return (_local4.data.level_scores[_arg1]); } public static function getTotalScore(_arg1:int=1):int{ var _local5:*; var _local6:int; var _local7:int; var _local2:String = (("so_" + game_id) + String(_arg1)); var _local3:SharedObject = SharedObject.getLocal(_local2); var _local4:Boolean; for each (_local5 in _local3.data) { _local4 = true; break; }; if (!_local4){ return (0); }; if (_local3.data.level_scores == undefined){ return (0); }; _local6 = 0; _local7 = 0; while (_local7 < _local3.data.level_scores.length) { if (((!((_local3.data.level_scores[_local7] == undefined))) && (!(isNaN(_local3.data.level_scores[_local7]))))){ _local6 = (_local6 + _local3.data.level_scores[_local7]); }; _local7++; }; return (_local6); } public static function getLastSavedScore(_arg1:int=1):int{ var _local5:*; var _local2:String = (("so_" + game_id) + String(_arg1)); var _local3:SharedObject = SharedObject.getLocal(_local2); var _local4:Boolean; for each (_local5 in _local3.data) { _local4 = true; break; }; if (!_local4){ return (0); }; if (_local3.data.last_saved_score == undefined){ return (0); }; return (_local3.data.last_saved_score); } public static function setLastSavedScore(_arg1:int, _arg2:int=1):void{ var _local3:String = (("so_" + game_id) + String(_arg2)); var _local4:SharedObject = SharedObject.getLocal(_local3); _local4.data.last_saved_score = _arg1; _local4.flush(); _local4.close(); } public static function getHighScoreLine(_arg1:String, _arg2:int):Object{ var _local5:Array; var _local6:Object; var _local3:Array = _arg1.split("|"); var _local4:String = _local3[(_arg2 - 1)]; if ((((((((_local4 == "0")) || ((_local4 == "1")))) || ((_local4 == null)))) || ((_local4 == "")))){ return (null); }; _local5 = _local4.split("_"); if ((((_local5[1] == "n")) || ((_local5[2] == "n")))){ return (null); }; _local6 = new Object(); _local6.username = _local5[2]; _local6.score = _local5[1]; _local6.rank = _local5[0]; return (_local6); } public static function displayNextButton(_arg1:String):Boolean{ var _local2:Array = _arg1.split("|"); var _local3:String = _local2[10]; if (_local3 == "1"){ return (true); }; if (_local3 == "0"){ return (false); }; return (false); } public static function displayPreviousButton(_arg1:String):Boolean{ var _local2:Array = _arg1.split("|"); var _local3:String = _local2[11]; if (_local3 == "1"){ return (true); }; if (_local3 == "0"){ return (false); }; return (false); } public static function getScoreData(_arg1:int, _arg2:String):String{ var _local3:String = ((((String(_arg1) + "_") + game_id) + "_") + _arg2.toLowerCase()); var _local4:String = encryptString(ar_key, _local3); return (_local4); } private static function encryptString(_arg1:String, _arg2:String):String{ var _local6:String; var _local7:int; var _local8:int; var _local9:Number; var _local10:int; var _local11:String; adj = 1.75; ff = convertKey(_arg1); var _local3 = ""; var _local4:Number = 0; var _local5:int; while (_local5 < _arg2.length) { _local6 = _arg2.substr(_local5, 1); _local8 = 0; while (_local8 < ar_1.length) { if (ar_1[_local8] == _local6){ _local7 = _local8; break; }; _local8++; }; adj = applyFudgeFactor(); _local9 = (_local4 + adj); _local10 = (Math.round(_local9) + _local7); _local10 = checkRange(_local10); _local4 = (_local9 + _local10); _local11 = ar_2[_local10]; _local3 = (_local3 + _local11); _local5++; }; return (_local3); } private static function convertKey(_arg1:String):Array{ var _local5:String; var _local6:int; var _local7:int; var _local2:Array = new Array(); _local2.push(_arg1.length); var _local3:int; var _local4:int; while (_local4 < _arg1.length) { _local5 = _arg1.substr(_local4, 1); _local7 = 0; while (_local7 < ar_1.length) { if (ar_1[_local7] == _local5){ _local6 = _local7; break; }; _local7++; }; _local2.push(_local6); _local3 = (_local3 + _local6); _local4++; }; _local2.push(_local3); return (_local2); } private static function applyFudgeFactor():Number{ var _local1:Number = Number(ff.shift()); _local1 = (_local1 + adj); ff.push(_local1); return (_local1); } private static function checkRange(_arg1:int):int{ _arg1 = Math.round(_arg1); var _local2:int = ar_1.length; while (_arg1 >= _local2) { _arg1 = (_arg1 - _local2); }; while (_arg1 < 0) { _arg1 = (_arg1 + _local2); }; return (_arg1); } private static function decryptString(_arg1:String, _arg2:String):String{ var _local6:*; var _local7:int; var _local8:int; var _local9:Number; var _local10:int; var _local11:String; adj = 1.75; ff = convertKey(_arg1); var _local3 = ""; var _local4:Number = 0; var _local5:int; while (_local5 < _arg2.length) { _local6 = _arg2.substr(_local5, 1); _local8 = 0; while (_local8 < ar_2.length) { if (ar_2[_local8] == _local6){ _local7 = _local8; break; }; _local8++; }; adj = applyFudgeFactor(); _local9 = (_local4 + adj); _local10 = (_local7 - Math.round(_local9)); _local10 = checkRange(_local10); _local4 = (_local9 + _local7); _local11 = ar_1[_local10]; _local3 = (_local3 + _local11); _local5++; }; return (_local3); } public static function set music(_arg1:Boolean):void{ var _local2:String = ("so_" + game_id); var _local3:SharedObject = SharedObject.getLocal(_local2); _local3.data.musicon = _arg1; _local3.flush(); _local3.close(); } public static function get music():Boolean{ var _local4:*; var _local1:String = ("so_" + game_id); var _local2:SharedObject = SharedObject.getLocal(_local1); var _local3:Boolean; for each (_local4 in _local2.data) { _local3 = true; break; }; if (_local3){ if (_local2.data.musicon != undefined){ return (_local2.data.musicon); }; return (true); //unresolved jump }; return (true); } public static function set sfx(_arg1:Boolean):void{ var _local2:String = ("so_" + game_id); var _local3:SharedObject = SharedObject.getLocal(_local2); _local3.data.sfxon = _arg1; _local3.flush(); _local3.close(); } public static function get sfx():Boolean{ var _local4:*; var _local1:String = ("so_" + game_id); var _local2:SharedObject = SharedObject.getLocal(_local1); var _local3:Boolean; for each (_local4 in _local2.data) { _local3 = true; break; }; if (_local3){ if (_local2.data.sfxon != undefined){ return (_local2.data.sfxon); }; return (true); //unresolved jump }; return (true); } public static function setKey(_arg1:uint, _arg2:uint, _arg3:int=1):void{ var _local7:*; var _local4:String = (("so_" + game_id) + _arg3); var _local5:SharedObject = SharedObject.getLocal(_local4); var _local6:Boolean; for each (_local7 in _local5.data) { _local6 = true; break; }; if (!_local6){ _local5.data.custom_keys = Key.custom; Key.custom[_arg1] = (_local5.data.custom_keys[_arg1] = _arg2); } else { if (_local5.data.custom_keys == undefined){ _local5.data.custom_keys = Key.custom; Key.custom[_arg1] = (_local5.data.custom_keys[_arg1] = _arg2); } else { Key.custom[_arg1] = (_local5.data.custom_keys[_arg1] = _arg2); }; }; _local5.data.use_default_keys = false; _local5.flush(); _local5.close(); } public static function setDefaultKeys(_arg1:int=1):void{ var _local2:String = (("so_" + game_id) + String(_arg1)); var _local3:SharedObject = SharedObject.getLocal(_local2); delete _local3.data.custom_keys; _local3.data.use_default_keys = true; _local3.flush(); _local3.close(); } public static function getKeys(_arg1:Array, _arg2:int=1):void{ var _local6:*; var _local3:String = (("so_" + game_id) + String(_arg2)); var _local4:SharedObject = SharedObject.getLocal(_local3); var _local5:Boolean; for each (_local6 in _local4.data) { _local5 = true; break; }; if (!_local5){ Key.custom = (_local4.data.custom_keys = _arg1); } else { if (_local4.data.custom_keys == undefined){ Key.custom = (_local4.data.custom_keys = _arg1); } else { Key.custom = _local4.data.custom_keys; }; }; if (_local4.data.use_default_keys === false){ usingDefaultKeys = false; } else { usingDefaultKeys = true; }; } } }//package
Section 234
//orb (orb) package { import flash.display.*; public dynamic class orb extends Sprite { } }//package
Section 235
//OrbShield (OrbShield) package { import com.nitrome.crystalmines.*; public dynamic class OrbShield extends Block { public function OrbShield(){ addFrameScript(0, frame1); } function frame1(){ if (currentFrame == 9){ parent.removeChild(this); }; } } }//package
Section 236
//panel1 (panel1) package { import com.nitrome.crystalmines.*; public dynamic class panel1 extends Block { } }//package
Section 237
//panel2 (panel2) package { import com.nitrome.crystalmines.*; public dynamic class panel2 extends Block { } }//package
Section 238
//Player1Score (Player1Score) package { import flash.display.*; import flash.text.*; public dynamic class Player1Score extends MovieClip { public var score:TextField; } }//package
Section 239
//Player2Score (Player2Score) package { import flash.display.*; import flash.text.*; public dynamic class Player2Score extends MovieClip { public var score:TextField; } }//package
Section 240
//PrevArrow (PrevArrow) package { import com.nitrome.highscore.*; public dynamic class PrevArrow extends ArrowButton { public function PrevArrow(){ addFrameScript(0, frame1, 9, frame10); } function frame1(){ stop(); } function frame10(){ stop(); } } }//package
Section 241
//rail_1 (rail_1) package { import com.nitrome.crystalmines.*; public dynamic class rail_1 extends Block { } }//package
Section 242
//rail_flat (rail_flat) package { import com.nitrome.crystalmines.*; public dynamic class rail_flat extends Block { } }//package
Section 243
//rail_track (rail_track) package { import com.nitrome.crystalmines.*; public dynamic class rail_track extends Block { } }//package
Section 244
//railTrack (railTrack) package { import com.nitrome.crystalmines.*; public dynamic class railTrack extends Block { } }//package
Section 245
//rock_gem1 (rock_gem1) package { import com.nitrome.crystalmines.*; public dynamic class rock_gem1 extends Block { } }//package
Section 246
//rock_gem2 (rock_gem2) package { import com.nitrome.crystalmines.*; public dynamic class rock_gem2 extends Block { } }//package
Section 247
//rock_gem3 (rock_gem3) package { import com.nitrome.crystalmines.*; public dynamic class rock_gem3 extends Block { } }//package
Section 248
//rock_gem4 (rock_gem4) package { import com.nitrome.crystalmines.*; public dynamic class rock_gem4 extends Block { } }//package
Section 249
//rock1 (rock1) package { import com.nitrome.crystalmines.*; public dynamic class rock1 extends Block { } }//package
Section 250
//rock2 (rock2) package { import com.nitrome.crystalmines.*; public dynamic class rock2 extends Block { } }//package
Section 251
//rock2X2 (rock2X2) package { import com.nitrome.crystalmines.*; public dynamic class rock2X2 extends Block { } }//package
Section 252
//rock2X2crystals (rock2X2crystals) package { import com.nitrome.crystalmines.*; public dynamic class rock2X2crystals extends Block { } }//package
Section 253
//rock2X3 (rock2X3) package { import com.nitrome.crystalmines.*; public dynamic class rock2X3 extends Block { } }//package
Section 254
//rock2X4 (rock2X4) package { import com.nitrome.crystalmines.*; public dynamic class rock2X4 extends Block { } }//package
Section 255
//rock2X4crystals (rock2X4crystals) package { import com.nitrome.crystalmines.*; public dynamic class rock2X4crystals extends Block { } }//package
Section 256
//rock3 (rock3) package { import com.nitrome.crystalmines.*; public dynamic class rock3 extends Block { } }//package
Section 257
//rock3X2 (rock3X2) package { import com.nitrome.crystalmines.*; public dynamic class rock3X2 extends Block { } }//package
Section 258
//rock3X2crystals (rock3X2crystals) package { import com.nitrome.crystalmines.*; public dynamic class rock3X2crystals extends Block { } }//package
Section 259
//rock3X4 (rock3X4) package { import com.nitrome.crystalmines.*; public dynamic class rock3X4 extends Block { } }//package
Section 260
//rock3X4crystals (rock3X4crystals) package { import com.nitrome.crystalmines.*; public dynamic class rock3X4crystals extends Block { } }//package
Section 261
//rock4 (rock4) package { import com.nitrome.crystalmines.*; public dynamic class rock4 extends Block { } }//package
Section 262
//rockgemlong1_half1 (rockgemlong1_half1) package { import com.nitrome.crystalmines.*; public dynamic class rockgemlong1_half1 extends Block { } }//package
Section 263
//rockgemlong1_half2 (rockgemlong1_half2) package { import com.nitrome.crystalmines.*; public dynamic class rockgemlong1_half2 extends Block { } }//package
Section 264
//rockgemlong2_half1 (rockgemlong2_half1) package { import com.nitrome.crystalmines.*; public dynamic class rockgemlong2_half1 extends Block { } }//package
Section 265
//rockgemlong2_half2 (rockgemlong2_half2) package { import com.nitrome.crystalmines.*; public dynamic class rockgemlong2_half2 extends Block { } }//package
Section 266
//rocklong1 (rocklong1) package { import com.nitrome.crystalmines.*; public dynamic class rocklong1 extends Block { } }//package
Section 267
//rocklong1_half1 (rocklong1_half1) package { import com.nitrome.crystalmines.*; public dynamic class rocklong1_half1 extends Block { } }//package
Section 268
//rocklong1_half2 (rocklong1_half2) package { import com.nitrome.crystalmines.*; public dynamic class rocklong1_half2 extends Block { } }//package
Section 269
//rocklong2 (rocklong2) package { import com.nitrome.crystalmines.*; public dynamic class rocklong2 extends Block { } }//package
Section 270
//rocklong2_half1 (rocklong2_half1) package { import com.nitrome.crystalmines.*; public dynamic class rocklong2_half1 extends Block { } }//package
Section 271
//rocklong2_half2 (rocklong2_half2) package { import com.nitrome.crystalmines.*; public dynamic class rocklong2_half2 extends Block { } }//package
Section 272
//rotate_platform (rotate_platform) package { import com.nitrome.crystalmines.*; public dynamic class rotate_platform extends Block { } }//package
Section 273
//ruby1 (ruby1) package { import com.nitrome.crystalmines.*; public dynamic class ruby1 extends Block { } }//package
Section 274
//rubyhalf1 (rubyhalf1) package { import com.nitrome.crystalmines.*; public dynamic class rubyhalf1 extends Block { } }//package
Section 275
//rubyhalf2 (rubyhalf2) package { import com.nitrome.crystalmines.*; public dynamic class rubyhalf2 extends Block { } }//package
Section 276
//safeground1 (safeground1) package { import com.nitrome.crystalmines.*; public dynamic class safeground1 extends Block { } }//package
Section 277
//safeground2 (safeground2) package { import com.nitrome.crystalmines.*; public dynamic class safeground2 extends Block { } }//package
Section 278
//safeground3 (safeground3) package { import com.nitrome.crystalmines.*; public dynamic class safeground3 extends Block { } }//package
Section 279
//ScoreLine (ScoreLine) package { import com.nitrome.highscore.*; public dynamic class ScoreLine extends HighScoreLine { } }//package
Section 280
//ScoreSubmitPanel (ScoreSubmitPanel) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import com.nitrome.game.*; import flash.utils.*; import flash.media.*; import com.nitrome.highscore.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.ui.*; import flash.xml.*; public dynamic class ScoreSubmitPanel extends ScoreSubmitPanel { public var __id31_:CrystalFont; public var __setPropDict:Dictionary; public function ScoreSubmitPanel(){ __setPropDict = new Dictionary(true); super(); addFrameScript(0, frame1, 10, frame11, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9); } function __setProp___id31__ScoreSubmitPanel_Layer2_0(){ if ((((__setPropDict[__id31_] == undefined)) || (!((((int(__setPropDict[__id31_]) >= 1)) && ((int(__setPropDict[__id31_]) <= 9))))))){ __setPropDict[__id31_] = currentFrame; try { __id31_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id31_.align = "center"; __id31_.align_vert = "center"; __id31_.id = "Crystal"; __id31_.line_spacing = 22; __id31_.text = "enter your name"; __id31_.tracking = 0; try { __id31_["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function frame1(){ __setProp___id31__ScoreSubmitPanel_Layer2_0(); _score_text.text = ("YOUR SCORE IS " + Score.value); _name_text.text = ""; stop(); } function frame11(){ stop(); } function frame2(){ __setProp___id31__ScoreSubmitPanel_Layer2_0(); } function frame3(){ __setProp___id31__ScoreSubmitPanel_Layer2_0(); } function frame4(){ __setProp___id31__ScoreSubmitPanel_Layer2_0(); } function frame5(){ __setProp___id31__ScoreSubmitPanel_Layer2_0(); } function frame6(){ __setProp___id31__ScoreSubmitPanel_Layer2_0(); } function frame7(){ __setProp___id31__ScoreSubmitPanel_Layer2_0(); } function frame8(){ __setProp___id31__ScoreSubmitPanel_Layer2_0(); } function frame9(){ __setProp___id31__ScoreSubmitPanel_Layer2_0(); } } }//package
Section 281
//shield_icon (shield_icon) package { import com.nitrome.crystalmines.*; public dynamic class shield_icon extends Block { } }//package
Section 282
//slope_backwards1 (slope_backwards1) package { import com.nitrome.crystalmines.*; public dynamic class slope_backwards1 extends Block { } }//package
Section 283
//slope_backwards2 (slope_backwards2) package { import com.nitrome.crystalmines.*; public dynamic class slope_backwards2 extends Block { } }//package
Section 284
//slope1 (slope1) package { import com.nitrome.crystalmines.*; public dynamic class slope1 extends Block { } }//package
Section 285
//slope2 (slope2) package { import com.nitrome.crystalmines.*; public dynamic class slope2 extends Block { } }//package
Section 286
//slow (slow) package { import com.nitrome.crystalmines.*; public dynamic class slow extends Block { } }//package
Section 287
//start_end (start_end) package { import flash.display.*; public dynamic class start_end extends Sprite { } }//package
Section 288
//StartEnd (StartEnd) package { import com.nitrome.crystalmines.*; public dynamic class StartEnd extends Block { } }//package
Section 289
//stickytile1 (stickytile1) package { import com.nitrome.crystalmines.*; public dynamic class stickytile1 extends Block { } }//package
Section 290
//stickytile2 (stickytile2) package { import com.nitrome.crystalmines.*; public dynamic class stickytile2 extends Block { } }//package
Section 291
//stickytile3 (stickytile3) package { import com.nitrome.crystalmines.*; public dynamic class stickytile3 extends Block { } }//package
Section 292
//SubmitButton (SubmitButton) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import com.nitrome.highscore.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.ui.*; import flash.xml.*; public dynamic class SubmitButton extends SubmitButton { public var __id32_:CrystalFont; public function SubmitButton(){ addFrameScript(0, frame1, 9, frame10); __setProp___id32__SubmitButton_Layer7_0(); } function __setProp___id32__SubmitButton_Layer7_0(){ try { __id32_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id32_.align = "center"; __id32_.align_vert = "center"; __id32_.id = "Crystal"; __id32_.line_spacing = 22; __id32_.text = "submit"; __id32_.tracking = 0; try { __id32_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ stop(); } function frame10(){ stop(); } } }//package
Section 293
//Text_Crystal_0 (Text_Crystal_0) package { import flash.display.*; public dynamic class Text_Crystal_0 extends Sprite { } }//package
Section 294
//Text_Crystal_1 (Text_Crystal_1) package { import flash.display.*; public dynamic class Text_Crystal_1 extends Sprite { } }//package
Section 295
//Text_Crystal_2 (Text_Crystal_2) package { import flash.display.*; public dynamic class Text_Crystal_2 extends Sprite { } }//package
Section 296
//Text_Crystal_3 (Text_Crystal_3) package { import flash.display.*; public dynamic class Text_Crystal_3 extends Sprite { } }//package
Section 297
//Text_Crystal_4 (Text_Crystal_4) package { import flash.display.*; public dynamic class Text_Crystal_4 extends Sprite { } }//package
Section 298
//Text_Crystal_5 (Text_Crystal_5) package { import flash.display.*; public dynamic class Text_Crystal_5 extends Sprite { } }//package
Section 299
//Text_Crystal_6 (Text_Crystal_6) package { import flash.display.*; public dynamic class Text_Crystal_6 extends Sprite { } }//package
Section 300
//Text_Crystal_7 (Text_Crystal_7) package { import flash.display.*; public dynamic class Text_Crystal_7 extends Sprite { } }//package
Section 301
//Text_Crystal_8 (Text_Crystal_8) package { import flash.display.*; public dynamic class Text_Crystal_8 extends Sprite { } }//package
Section 302
//Text_Crystal_9 (Text_Crystal_9) package { import flash.display.*; public dynamic class Text_Crystal_9 extends Sprite { } }//package
Section 303
//Text_Crystal_A (Text_Crystal_A) package { import flash.display.*; public dynamic class Text_Crystal_A extends Sprite { } }//package
Section 304
//Text_Crystal_B (Text_Crystal_B) package { import flash.display.*; public dynamic class Text_Crystal_B extends Sprite { } }//package
Section 305
//Text_Crystal_BACKSLASH (Text_Crystal_BACKSLASH) package { import flash.display.*; public dynamic class Text_Crystal_BACKSLASH extends Sprite { } }//package
Section 306
//Text_Crystal_C (Text_Crystal_C) package { import flash.display.*; public dynamic class Text_Crystal_C extends Sprite { } }//package
Section 307
//Text_Crystal_COLON (Text_Crystal_COLON) package { import flash.display.*; public dynamic class Text_Crystal_COLON extends Sprite { } }//package
Section 308
//Text_Crystal_COMMA (Text_Crystal_COMMA) package { import flash.display.*; public dynamic class Text_Crystal_COMMA extends Sprite { } }//package
Section 309
//Text_Crystal_D (Text_Crystal_D) package { import flash.display.*; public dynamic class Text_Crystal_D extends Sprite { } }//package
Section 310
//Text_Crystal_E (Text_Crystal_E) package { import flash.display.*; public dynamic class Text_Crystal_E extends Sprite { } }//package
Section 311
//Text_Crystal_EQUALS (Text_Crystal_EQUALS) package { import flash.display.*; public dynamic class Text_Crystal_EQUALS extends Sprite { } }//package
Section 312
//Text_Crystal_EXCLAMATION (Text_Crystal_EXCLAMATION) package { import flash.display.*; public dynamic class Text_Crystal_EXCLAMATION extends Sprite { } }//package
Section 313
//Text_Crystal_F (Text_Crystal_F) package { import flash.display.*; public dynamic class Text_Crystal_F extends Sprite { } }//package
Section 314
//Text_Crystal_FORWARDSLASH (Text_Crystal_FORWARDSLASH) package { import flash.display.*; public dynamic class Text_Crystal_FORWARDSLASH extends Sprite { } }//package
Section 315
//Text_Crystal_G (Text_Crystal_G) package { import flash.display.*; public dynamic class Text_Crystal_G extends Sprite { } }//package
Section 316
//Text_Crystal_H (Text_Crystal_H) package { import flash.display.*; public dynamic class Text_Crystal_H extends Sprite { } }//package
Section 317
//Text_Crystal_HYPHEN (Text_Crystal_HYPHEN) package { import flash.display.*; public dynamic class Text_Crystal_HYPHEN extends Sprite { } }//package
Section 318
//Text_Crystal_I (Text_Crystal_I) package { import flash.display.*; public dynamic class Text_Crystal_I extends Sprite { } }//package
Section 319
//Text_Crystal_J (Text_Crystal_J) package { import flash.display.*; public dynamic class Text_Crystal_J extends Sprite { } }//package
Section 320
//Text_Crystal_K (Text_Crystal_K) package { import flash.display.*; public dynamic class Text_Crystal_K extends Sprite { } }//package
Section 321
//Text_Crystal_L (Text_Crystal_L) package { import flash.display.*; public dynamic class Text_Crystal_L extends Sprite { } }//package
Section 322
//Text_Crystal_M (Text_Crystal_M) package { import flash.display.*; public dynamic class Text_Crystal_M extends Sprite { } }//package
Section 323
//Text_Crystal_N (Text_Crystal_N) package { import flash.display.*; public dynamic class Text_Crystal_N extends Sprite { } }//package
Section 324
//Text_Crystal_O (Text_Crystal_O) package { import flash.display.*; public dynamic class Text_Crystal_O extends Sprite { } }//package
Section 325
//Text_Crystal_P (Text_Crystal_P) package { import flash.display.*; public dynamic class Text_Crystal_P extends Sprite { } }//package
Section 326
//Text_Crystal_PERCENT (Text_Crystal_PERCENT) package { import flash.display.*; public dynamic class Text_Crystal_PERCENT extends Sprite { } }//package
Section 327
//Text_Crystal_Q (Text_Crystal_Q) package { import flash.display.*; public dynamic class Text_Crystal_Q extends Sprite { } }//package
Section 328
//Text_Crystal_QUESTION (Text_Crystal_QUESTION) package { import flash.display.*; public dynamic class Text_Crystal_QUESTION extends Sprite { } }//package
Section 329
//Text_Crystal_R (Text_Crystal_R) package { import flash.display.*; public dynamic class Text_Crystal_R extends Sprite { } }//package
Section 330
//Text_Crystal_S (Text_Crystal_S) package { import flash.display.*; public dynamic class Text_Crystal_S extends Sprite { } }//package
Section 331
//Text_Crystal_SPACE (Text_Crystal_SPACE) package { import flash.display.*; public dynamic class Text_Crystal_SPACE extends Sprite { } }//package
Section 332
//Text_Crystal_STOP (Text_Crystal_STOP) package { import flash.display.*; public dynamic class Text_Crystal_STOP extends Sprite { } }//package
Section 333
//Text_Crystal_T (Text_Crystal_T) package { import flash.display.*; public dynamic class Text_Crystal_T extends Sprite { } }//package
Section 334
//Text_Crystal_U (Text_Crystal_U) package { import flash.display.*; public dynamic class Text_Crystal_U extends Sprite { } }//package
Section 335
//Text_Crystal_V (Text_Crystal_V) package { import flash.display.*; public dynamic class Text_Crystal_V extends Sprite { } }//package
Section 336
//Text_Crystal_W (Text_Crystal_W) package { import flash.display.*; public dynamic class Text_Crystal_W extends Sprite { } }//package
Section 337
//Text_Crystal_X (Text_Crystal_X) package { import flash.display.*; public dynamic class Text_Crystal_X extends Sprite { } }//package
Section 338
//Text_Crystal_Y (Text_Crystal_Y) package { import flash.display.*; public dynamic class Text_Crystal_Y extends Sprite { } }//package
Section 339
//Text_Crystal_Z (Text_Crystal_Z) package { import flash.display.*; public dynamic class Text_Crystal_Z extends Sprite { } }//package
Section 340
//TitleMusic (TitleMusic) package { import flash.media.*; public dynamic class TitleMusic extends Sound { } }//package
Section 341
//woodplat1 (woodplat1) package { import com.nitrome.crystalmines.*; public dynamic class woodplat1 extends Block { } }//package

Library Items

Symbol 1 BitmapUsed by:2 226 372
Symbol 2 GraphicUses:1Used by:147 231 232 265 275 369 385
Symbol 3 GraphicUsed by:144
Symbol 4 BitmapUsed by:5
Symbol 5 GraphicUses:4Used by:6
Symbol 6 MovieClip {Text_Crystal_0}Uses:5Used by:144
Symbol 7 BitmapUsed by:8
Symbol 8 GraphicUses:7Used by:9
Symbol 9 MovieClip {Text_Crystal_1}Uses:8Used by:144
Symbol 10 BitmapUsed by:11
Symbol 11 GraphicUses:10Used by:12
Symbol 12 MovieClip {Text_Crystal_2}Uses:11Used by:144
Symbol 13 BitmapUsed by:14
Symbol 14 GraphicUses:13Used by:15
Symbol 15 MovieClip {Text_Crystal_3}Uses:14Used by:144
Symbol 16 BitmapUsed by:17
Symbol 17 GraphicUses:16Used by:18
Symbol 18 MovieClip {Text_Crystal_4}Uses:17Used by:144
Symbol 19 BitmapUsed by:20
Symbol 20 GraphicUses:19Used by:21
Symbol 21 MovieClip {Text_Crystal_5}Uses:20Used by:144
Symbol 22 BitmapUsed by:23
Symbol 23 GraphicUses:22Used by:24
Symbol 24 MovieClip {Text_Crystal_6}Uses:23Used by:144
Symbol 25 BitmapUsed by:26
Symbol 26 GraphicUses:25Used by:27
Symbol 27 MovieClip {Text_Crystal_7}Uses:26Used by:144
Symbol 28 BitmapUsed by:29
Symbol 29 GraphicUses:28Used by:30
Symbol 30 MovieClip {Text_Crystal_8}Uses:29Used by:144
Symbol 31 BitmapUsed by:32
Symbol 32 GraphicUses:31Used by:33
Symbol 33 MovieClip {Text_Crystal_9}Uses:32Used by:144
Symbol 34 BitmapUsed by:35
Symbol 35 GraphicUses:34Used by:36
Symbol 36 MovieClip {Text_Crystal_A}Uses:35Used by:144
Symbol 37 BitmapUsed by:38
Symbol 38 GraphicUses:37Used by:39
Symbol 39 MovieClip {Text_Crystal_B}Uses:38Used by:144
Symbol 40 BitmapUsed by:41
Symbol 41 GraphicUses:40Used by:42 65
Symbol 42 MovieClip {Text_Crystal_BACKSLASH}Uses:41Used by:144
Symbol 43 BitmapUsed by:44
Symbol 44 GraphicUses:43Used by:45
Symbol 45 MovieClip {Text_Crystal_C}Uses:44Used by:144
Symbol 46 BitmapUsed by:47
Symbol 47 GraphicUses:46Used by:49
Symbol 49 MovieClip {Text_Crystal_COMMA}Uses:47Used by:144
Symbol 50 BitmapUsed by:51
Symbol 51 GraphicUses:50Used by:52
Symbol 52 MovieClip {Text_Crystal_D}Uses:51Used by:144
Symbol 53 BitmapUsed by:54
Symbol 54 GraphicUses:53Used by:55
Symbol 55 MovieClip {Text_Crystal_E}Uses:54Used by:144
Symbol 56 BitmapUsed by:57
Symbol 57 GraphicUses:56Used by:58
Symbol 58 MovieClip {Text_Crystal_EQUALS}Uses:57Used by:144
Symbol 59 BitmapUsed by:60
Symbol 60 GraphicUses:59Used by:61
Symbol 61 MovieClip {Text_Crystal_EXCLAMATION}Uses:60Used by:144
Symbol 62 BitmapUsed by:63
Symbol 63 GraphicUses:62Used by:64
Symbol 64 MovieClip {Text_Crystal_F}Uses:63Used by:144
Symbol 65 MovieClip {Text_Crystal_FORWARDSLASH}Uses:41Used by:144
Symbol 66 BitmapUsed by:67
Symbol 67 GraphicUses:66Used by:68
Symbol 68 MovieClip {Text_Crystal_G}Uses:67Used by:144
Symbol 69 BitmapUsed by:70
Symbol 70 GraphicUses:69Used by:71
Symbol 71 MovieClip {Text_Crystal_H}Uses:70Used by:144
Symbol 72 BitmapUsed by:73
Symbol 73 GraphicUses:72Used by:74
Symbol 74 MovieClip {Text_Crystal_I}Uses:73Used by:144
Symbol 75 BitmapUsed by:76
Symbol 76 GraphicUses:75Used by:77
Symbol 77 MovieClip {Text_Crystal_J}Uses:76Used by:144
Symbol 78 BitmapUsed by:79
Symbol 79 GraphicUses:78Used by:80
Symbol 80 MovieClip {Text_Crystal_K}Uses:79Used by:144
Symbol 81 BitmapUsed by:82
Symbol 82 GraphicUses:81Used by:83
Symbol 83 MovieClip {Text_Crystal_L}Uses:82Used by:144
Symbol 84 BitmapUsed by:85
Symbol 85 GraphicUses:84Used by:86
Symbol 86 MovieClip {Text_Crystal_M}Uses:85Used by:144
Symbol 87 BitmapUsed by:88
Symbol 88 GraphicUses:87Used by:89
Symbol 89 MovieClip {Text_Crystal_N}Uses:88Used by:144
Symbol 90 BitmapUsed by:91
Symbol 91 GraphicUses:90Used by:92
Symbol 92 MovieClip {Text_Crystal_O}Uses:91Used by:144
Symbol 93 BitmapUsed by:94
Symbol 94 GraphicUses:93Used by:95
Symbol 95 MovieClip {Text_Crystal_P}Uses:94Used by:144
Symbol 96 BitmapUsed by:97
Symbol 97 GraphicUses:96Used by:98
Symbol 98 MovieClip {Text_Crystal_Q}Uses:97Used by:144
Symbol 99 BitmapUsed by:100
Symbol 100 GraphicUses:99Used by:101
Symbol 101 MovieClip {Text_Crystal_QUESTION}Uses:100Used by:144
Symbol 102 BitmapUsed by:103
Symbol 103 GraphicUses:102Used by:104
Symbol 104 MovieClip {Text_Crystal_R}Uses:103Used by:144
Symbol 105 BitmapUsed by:106
Symbol 106 GraphicUses:105Used by:107
Symbol 107 MovieClip {Text_Crystal_S}Uses:106Used by:144
Symbol 108 BitmapUsed by:109
Symbol 109 GraphicUses:108Used by:110
Symbol 110 MovieClip {Text_Crystal_SPACE}Uses:109Used by:144
Symbol 111 BitmapUsed by:112
Symbol 112 GraphicUses:111Used by:113
Symbol 113 MovieClip {Text_Crystal_STOP}Uses:112Used by:144
Symbol 114 BitmapUsed by:115
Symbol 115 GraphicUses:114Used by:116
Symbol 116 MovieClip {Text_Crystal_T}Uses:115Used by:144
Symbol 117 BitmapUsed by:118
Symbol 118 GraphicUses:117Used by:119
Symbol 119 MovieClip {Text_Crystal_U}Uses:118Used by:144
Symbol 120 BitmapUsed by:121
Symbol 121 GraphicUses:120Used by:122
Symbol 122 MovieClip {Text_Crystal_V}Uses:121Used by:144
Symbol 123 BitmapUsed by:124
Symbol 124 GraphicUses:123Used by:125
Symbol 125 MovieClip {Text_Crystal_W}Uses:124Used by:144
Symbol 126 BitmapUsed by:127
Symbol 127 GraphicUses:126Used by:128
Symbol 128 MovieClip {Text_Crystal_X}Uses:127Used by:144
Symbol 129 BitmapUsed by:130
Symbol 130 GraphicUses:129Used by:131
Symbol 131 MovieClip {Text_Crystal_Y}Uses:130Used by:144
Symbol 132 BitmapUsed by:133
Symbol 133 GraphicUses:132Used by:134
Symbol 134 MovieClip {Text_Crystal_Z}Uses:133Used by:144
Symbol 135 BitmapUsed by:136
Symbol 136 GraphicUses:135Used by:137
Symbol 137 MovieClip {Text_Crystal_COLON}Uses:136Used by:144
Symbol 138 BitmapUsed by:139
Symbol 139 GraphicUses:138Used by:140
Symbol 140 MovieClip {Text_Crystal_HYPHEN}Uses:139Used by:144
Symbol 141 BitmapUsed by:142
Symbol 142 GraphicUses:141Used by:143
Symbol 143 MovieClip {Text_Crystal_PERCENT}Uses:142Used by:144
Symbol 144 MovieClip {CrystalFont}Uses:3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 49 52 55 58 61 64 65 68 71 74 77 80 83 86 89 92 95 98 101 104 107 110 113 116 119 122 125 128 131 134 137 140 143Used by:147 222 225 228 229 230 231 232 255 256 265 275 369 370 373 376 385 434 450 457 1028 1486  Timeline
Symbol 145 BitmapUsed by:146 227
Symbol 146 GraphicUses:145Used by:147 231 232 265 275 369 385
Symbol 147 MovieClip {com.nitrome.buttons.QuitPauseButton}Uses:2 144 146Used by:370 1486
Symbol 148 BitmapUsed by:149
Symbol 149 GraphicUses:148Used by:Timeline
Symbol 150 BitmapUsed by:151
Symbol 151 GraphicUses:150Used by:Timeline
Symbol 152 FontUsed by:153
Symbol 153 TextUses:152Used by:154
Symbol 154 MovieClipUses:153Used by:167
Symbol 155 GraphicUsed by:156
Symbol 156 MovieClipUses:155Used by:159
Symbol 157 GraphicUsed by:158
Symbol 158 MovieClipUses:157Used by:159
Symbol 159 MovieClipUses:156 158Used by:167
Symbol 161 GraphicUsed by:164 206 251 272 1483
Symbol 162 FontUsed by:163
Symbol 163 TextUses:162Used by:164
Symbol 164 MovieClip {cave_chaos_fla.y8symbol2_6}Uses:161 163Used by:167
Symbol 165 GraphicUsed by:166
Symbol 166 MovieClip {cave_chaos_fla.Y8Click_7}Uses:165Used by:167
Symbol 167 MovieClip {cave_chaos_fla.Y8Preloaderas3_1}Uses:154 159 164 166Used by:Timeline
Symbol 168 ShapeTweeningUsed by:171
Symbol 169 ShapeTweeningUsed by:171
Symbol 170 GraphicUsed by:171
Symbol 171 MovieClip {com.nitrome.game.TransitionTween}Uses:168 169 170Used by:1486  Timeline
Symbol 172 SoundUsed by:173
Symbol 173 MovieClip {cave_chaos_fla.sfx_nitrome_10}Uses:172Used by:206
Symbol 174 SoundUsed by:175
Symbol 175 MovieClip {cave_chaos_fla.sfx_miniclip1_11}Uses:174Used by:206
Symbol 176 SoundUsed by:177
Symbol 177 MovieClip {cave_chaos_fla.sfx_miniclip2_12}Uses:176Used by:206
Symbol 178 SoundUsed by:179
Symbol 179 MovieClip {cave_chaos_fla.jumpSnd_13}Uses:178Used by:206
Symbol 180 SoundUsed by:181
Symbol 181 MovieClip {cave_chaos_fla.mushroomJump_14}Uses:180Used by:206
Symbol 182 SoundUsed by:183
Symbol 183 MovieClip {cave_chaos_fla.crystalPickUpBig_15}Uses:182Used by:206
Symbol 184 SoundUsed by:185
Symbol 185 MovieClip {cave_chaos_fla.crystalPickUpSmal_16}Uses:184Used by:206
Symbol 186 SoundUsed by:187
Symbol 187 MovieClip {cave_chaos_fla.explode_17}Uses:186Used by:206
Symbol 188 SoundUsed by:189
Symbol 189 MovieClip {cave_chaos_fla.pickUpExplode_18}Uses:188Used by:206
Symbol 190 SoundUsed by:191
Symbol 191 MovieClip {cave_chaos_fla.powerUp_19}Uses:190Used by:206
Symbol 192 SoundUsed by:193
Symbol 193 MovieClip {cave_chaos_fla.lightOn_20}Uses:192Used by:206
Symbol 194 SoundUsed by:195
Symbol 195 MovieClip {cave_chaos_fla.shorterBats_21}Uses:194Used by:206
Symbol 196 SoundUsed by:197
Symbol 197 MovieClip {cave_chaos_fla.dieSnd_22}Uses:196Used by:206
Symbol 198 SoundUsed by:199
Symbol 199 MovieClip {cave_chaos_fla.enemyAttackSnd_23}Uses:198Used by:206
Symbol 200 SoundUsed by:201
Symbol 201 MovieClip {cave_chaos_fla.hitSnd_24}Uses:200Used by:206
Symbol 202 SoundUsed by:203
Symbol 203 MovieClip {cave_chaos_fla.endSnd_25}Uses:202Used by:206
Symbol 204 FontUsed by:205
Symbol 205 TextUses:204Used by:206
Symbol 206 MovieClip {com.nitrome.game.SoundManager}Uses:173 175 177 179 181 183 185 187 189 191 193 195 197 199 201 203 161 205Used by:Timeline
Symbol 207 FontUsed by:208
Symbol 208 TextUses:207Used by:1486
Symbol 209 BitmapUsed by:210
Symbol 210 GraphicUses:209Used by:215
Symbol 211 BitmapUsed by:212 456
Symbol 212 GraphicUses:211Used by:215
Symbol 213 BitmapUsed by:214
Symbol 214 GraphicUses:213Used by:215
Symbol 215 MovieClip {com.nitrome.buttons.PlayButton}Uses:210 212 214Used by:1486  Timeline
Symbol 216 BitmapUsed by:217
Symbol 217 GraphicUses:216Used by:222 225 229
Symbol 218 BitmapUsed by:219
Symbol 219 GraphicUses:218Used by:222
Symbol 220 BitmapUsed by:221
Symbol 221 GraphicUses:220Used by:222 225 229
Symbol 222 MovieClip {com.nitrome.buttons.ScoresButton}Uses:217 144 219 221Used by:1486
Symbol 223 BitmapUsed by:224
Symbol 224 GraphicUses:223Used by:225
Symbol 225 MovieClip {com.nitrome.buttons.CreditsButton}Uses:217 144 224 221Used by:1486  Timeline
Symbol 226 GraphicUses:1Used by:228 230 373 457
Symbol 227 GraphicUses:145Used by:228 230 373 457
Symbol 228 MovieClip {com.nitrome.buttons.BackButton}Uses:226 144 227Used by:1486 1717  Timeline
Symbol 229 MovieClip {com.nitrome.buttons.HelpButton}Uses:217 144 221Used by:1486  Timeline
Symbol 230 MovieClip {ClearButton}Uses:226 144 227Used by:376 1486
Symbol 231 MovieClip {com.nitrome.buttons.ContinueEndButton}Uses:2 144 146Used by:370 1486
Symbol 232 MovieClip {com.nitrome.buttons.ContinuePauseButton}Uses:2 144 146Used by:370 1486
Symbol 233 FontUsed by:234 235 236 247 248 374 375 1137 1139 1480 1624 1625 1626 1627 1628 1631 1632 1633 1634 1635 1638 1641 1642 1643 1644 1645 1646 1647
Symbol 234 EditableTextUses:233Used by:237
Symbol 235 EditableTextUses:233Used by:237
Symbol 236 EditableTextUses:233Used by:237
Symbol 237 MovieClip {ScoreLine}Uses:234 235 236Used by:252 1486
Symbol 238 BitmapUsed by:239 253
Symbol 239 GraphicUses:238Used by:244 246 256 410 454
Symbol 240 BitmapUsed by:241 245
Symbol 241 GraphicUses:240Used by:244 410 1028
Symbol 242 BitmapUsed by:243 254
Symbol 243 GraphicUses:242Used by:244 246 256 410 454
Symbol 244 MovieClip {NextArrow}Uses:239 241 243Used by:252 1486
Symbol 245 GraphicUses:240Used by:246 454
Symbol 246 MovieClip {PrevArrow}Uses:239 245 243Used by:252 1486
Symbol 247 TextUses:233Used by:252 376
Symbol 248 TextUses:233Used by:252 376
Symbol 249 BitmapUsed by:250
Symbol 250 GraphicUses:249Used by:252 376  Timeline
Symbol 251 Button {com.nitrome.game.NitromeLink}Uses:161Used by:252 376 1486
Symbol 252 MovieClip {HighScoreBoard}Uses:237 244 246 247 248 250 251Used by:1486  Timeline
Symbol 253 GraphicUses:238Used by:255
Symbol 254 GraphicUses:242Used by:255
Symbol 255 MovieClip {LetterButton}Uses:253 144 254Used by:376 1486
Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton}Uses:239 144 243Used by:1486  Timeline
Symbol 257 BitmapUsed by:258
Symbol 258 GraphicUses:257Used by:264
Symbol 259 BitmapUsed by:261
Symbol 260 BitmapUsed by:261
Symbol 261 GraphicUses:259 260Used by:264
Symbol 262 BitmapUsed by:263
Symbol 263 GraphicUses:262Used by:264
Symbol 264 MovieClip {com.nitrome.game.MusicToggle}Uses:258 261 263Used by:1486  Timeline
Symbol 265 MovieClip {com.nitrome.buttons.NextLevelButton}Uses:2 144 146Used by:370 1486
Symbol 266 BitmapUsed by:267
Symbol 267 GraphicUses:266Used by:271
Symbol 268 BitmapUsed by:270
Symbol 269 BitmapUsed by:270
Symbol 270 GraphicUses:268 269Used by:271
Symbol 271 MovieClip {com.nitrome.buttons.PauseButton}Uses:267 270Used by:1486  Timeline
Symbol 272 MovieClipUses:161Used by:371
Symbol 273 BitmapUsed by:274 1623
Symbol 274 GraphicUses:273Used by:370
Symbol 275 MovieClip {com.nitrome.buttons.QuitButton}Uses:2 144 146Used by:370 1486
Symbol 276 BitmapUsed by:277
Symbol 277 GraphicUses:276Used by:306
Symbol 278 BitmapUsed by:279
Symbol 279 GraphicUses:278Used by:306
Symbol 280 BitmapUsed by:281
Symbol 281 GraphicUses:280Used by:306
Symbol 282 BitmapUsed by:283
Symbol 283 GraphicUses:282Used by:306
Symbol 284 BitmapUsed by:285
Symbol 285 GraphicUses:284Used by:306
Symbol 286 BitmapUsed by:287
Symbol 287 GraphicUses:286Used by:306
Symbol 288 BitmapUsed by:289
Symbol 289 GraphicUses:288Used by:306
Symbol 290 BitmapUsed by:291
Symbol 291 GraphicUses:290Used by:306
Symbol 292 BitmapUsed by:293
Symbol 293 GraphicUses:292Used by:306
Symbol 294 BitmapUsed by:295
Symbol 295 GraphicUses:294Used by:306
Symbol 296 BitmapUsed by:297
Symbol 297 GraphicUses:296Used by:306
Symbol 298 BitmapUsed by:299
Symbol 299 GraphicUses:298Used by:306
Symbol 300 BitmapUsed by:301
Symbol 301 GraphicUses:300Used by:306
Symbol 302 BitmapUsed by:303
Symbol 303 GraphicUses:302Used by:306
Symbol 304 BitmapUsed by:305
Symbol 305 GraphicUses:304Used by:306
Symbol 306 MovieClipUses:277 279 281 283 285 287 289 291 293 295 297 299 301 303 305Used by:370 1717
Symbol 307 BitmapUsed by:308
Symbol 308 GraphicUses:307Used by:321
Symbol 309 BitmapUsed by:310
Symbol 310 GraphicUses:309Used by:321
Symbol 311 BitmapUsed by:312
Symbol 312 GraphicUses:311Used by:321
Symbol 313 BitmapUsed by:314
Symbol 314 GraphicUses:313Used by:321
Symbol 315 BitmapUsed by:316
Symbol 316 GraphicUses:315Used by:321
Symbol 317 BitmapUsed by:318
Symbol 318 GraphicUses:317Used by:321
Symbol 319 BitmapUsed by:320
Symbol 320 GraphicUses:319Used by:321
Symbol 321 MovieClipUses:308 310 312 314 316 318 320Used by:370  Timeline
Symbol 322 BitmapUsed by:324 326 328 330 332 334 336 338 340 342 344 346 348 350 352 442 444 446 448 897 899 901 903 905 907 909 911 913 915 917 919 921 923 925 928 934 936 938 940 942 944 946 948 950 956 958 960 962 964 966 968 970 972 974 976 978 980 982 984 1017 1018 1019 1020 1021 1022 1023 1398 1400 1402 1404 1406 1408 1410 1412
Symbol 323 BitmapUsed by:324 1017
Symbol 324 GraphicUses:322 323Used by:353
Symbol 325 BitmapUsed by:326 1018
Symbol 326 GraphicUses:322 325Used by:353
Symbol 327 BitmapUsed by:328 1019
Symbol 328 GraphicUses:322 327Used by:353
Symbol 329 BitmapUsed by:330 1020
Symbol 330 GraphicUses:322 329Used by:353
Symbol 331 BitmapUsed by:332 1021
Symbol 332 GraphicUses:322 331Used by:353
Symbol 333 BitmapUsed by:334
Symbol 334 GraphicUses:322 333Used by:353 1024
Symbol 335 BitmapUsed by:336
Symbol 336 GraphicUses:322 335Used by:353 1024
Symbol 337 BitmapUsed by:338 1022
Symbol 338 GraphicUses:322 337Used by:353
Symbol 339 BitmapUsed by:340
Symbol 340 GraphicUses:322 339Used by:353 1024
Symbol 341 BitmapUsed by:342
Symbol 342 GraphicUses:322 341Used by:353 1024
Symbol 343 BitmapUsed by:344
Symbol 344 GraphicUses:322 343Used by:353 1024
Symbol 345 BitmapUsed by:346
Symbol 346 GraphicUses:322 345Used by:353 1024
Symbol 347 BitmapUsed by:348 1023
Symbol 348 GraphicUses:322 347Used by:353
Symbol 349 BitmapUsed by:350
Symbol 350 GraphicUses:322 349Used by:353 1024
Symbol 351 BitmapUsed by:352
Symbol 352 GraphicUses:322 351Used by:353 1024
Symbol 353 MovieClipUses:324 326 328 330 332 334 336 338 340 342 344 346 348 350 352Used by:370
Symbol 354 BitmapUsed by:355
Symbol 355 GraphicUses:354Used by:368
Symbol 356 BitmapUsed by:357
Symbol 357 GraphicUses:356Used by:368
Symbol 358 BitmapUsed by:359
Symbol 359 GraphicUses:358Used by:368
Symbol 360 BitmapUsed by:361
Symbol 361 GraphicUses:360Used by:368
Symbol 362 BitmapUsed by:363
Symbol 363 GraphicUses:362Used by:368
Symbol 364 BitmapUsed by:365
Symbol 365 GraphicUses:364Used by:368
Symbol 366 BitmapUsed by:367
Symbol 367 GraphicUses:366Used by:368
Symbol 368 MovieClipUses:355 357 359 361 363 365 367Used by:370  Timeline
Symbol 369 MovieClip {com.nitrome.buttons.TryAgainButton}Uses:2 144 146Used by:370 1486
Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47}Uses:274 265 275 144 306 321 353 368 369 147 232 231Used by:371
Symbol 371 MovieClip {com.nitrome.game.PopUpHolder}Uses:272 370Used by:1486  Timeline
Symbol 372 GraphicUses:1Used by:376
Symbol 373 MovieClip {SubmitButton}Uses:226 144 227Used by:376 1486
Symbol 374 EditableTextUses:233Used by:376
Symbol 375 EditableTextUses:233Used by:376
Symbol 376 MovieClip {ScoreSubmitPanel}Uses:372 373 230 255 374 144 375 247 248 250 251Used by:1486  Timeline
Symbol 377 BitmapUsed by:378
Symbol 378 GraphicUses:377Used by:384
Symbol 379 BitmapUsed by:381
Symbol 380 BitmapUsed by:381
Symbol 381 GraphicUses:379 380Used by:384
Symbol 382 BitmapUsed by:383
Symbol 383 GraphicUses:382Used by:384
Symbol 384 MovieClip {com.nitrome.game.FxToggle}Uses:378 381 383Used by:1486  Timeline
Symbol 385 MovieClip {com.nitrome.buttons.SubmitScoreButton}Uses:2 144 146Used by:1486
Symbol 386 BitmapUsed by:387
Symbol 387 GraphicUses:386Used by:388 596
Symbol 388 MovieClipUses:387Used by:1486
Symbol 389 BitmapUsed by:390
Symbol 390 GraphicUses:389Used by:391 659
Symbol 391 MovieClip {doublejump}Uses:390Used by:1486
Symbol 392 BitmapUsed by:393
Symbol 393 GraphicUses:392Used by:394 796
Symbol 394 MovieClip {explosiveexpert_death}Uses:393Used by:1486
Symbol 395 BitmapUsed by:396
Symbol 396 GraphicUses:395Used by:397 801
Symbol 397 MovieClip {flash}Uses:396Used by:1486
Symbol 398 BitmapUsed by:399
Symbol 399 GraphicUses:398Used by:400
Symbol 400 MovieClip {hamham_hi2}Uses:399Used by:1486
Symbol 401 BitmapUsed by:402
Symbol 402 GraphicUses:401Used by:403 455
Symbol 403 MovieClip {new_shield}Uses:402Used by:1486
Symbol 404 BitmapUsed by:405
Symbol 405 GraphicUses:404Used by:406 1307
Symbol 406 MovieClip {newshield_box}Uses:405Used by:1486
Symbol 407 BitmapUsed by:408
Symbol 408 GraphicUses:407Used by:409 1307
Symbol 409 MovieClip {newshield_icon}Uses:408Used by:1486
Symbol 410 MovieClip {com.nitrome.buttons.NextButton}Uses:239 241 243Used by:1486 1648
Symbol 411 BitmapUsed by:412
Symbol 412 GraphicUses:411Used by:413
Symbol 413 MovieClip {orb}Uses:412Used by:1486
Symbol 414 BitmapUsed by:415
Symbol 415 GraphicUses:414Used by:434 450
Symbol 416 BitmapUsed by:417
Symbol 417 GraphicUses:416Used by:424
Symbol 418 BitmapUsed by:419
Symbol 419 GraphicUses:418Used by:424
Symbol 420 BitmapUsed by:421
Symbol 421 GraphicUses:420Used by:424
Symbol 422 BitmapUsed by:423
Symbol 423 GraphicUses:422Used by:424
Symbol 424 MovieClipUses:417 419 421 423Used by:434 450 1776
Symbol 425 BitmapUsed by:429
Symbol 426 BitmapUsed by:429
Symbol 427 BitmapUsed by:429
Symbol 428 BitmapUsed by:429
Symbol 429 GraphicUses:425 426 427 428Used by:434 450
Symbol 430 FontUsed by:431 435
Symbol 431 TextUses:430Used by:434 450
Symbol 432 BitmapUsed by:433
Symbol 433 GraphicUses:432Used by:434 450
Symbol 434 MovieClip {com.nitrome.buttons.OnePlayerButton}Uses:415 424 429 431 144 433Used by:1486  Timeline
Symbol 435 TextUses:430Used by:450
Symbol 436 BitmapUsed by:440
Symbol 437 BitmapUsed by:440
Symbol 438 BitmapUsed by:440
Symbol 439 BitmapUsed by:440
Symbol 440 GraphicUses:436 437 438 439Used by:450
Symbol 441 BitmapUsed by:442 951
Symbol 442 GraphicUses:322 441Used by:449
Symbol 443 BitmapUsed by:444 952
Symbol 444 GraphicUses:322 443Used by:449
Symbol 445 BitmapUsed by:446 953
Symbol 446 GraphicUses:322 445Used by:449
Symbol 447 BitmapUsed by:448 954
Symbol 448 GraphicUses:322 447Used by:449
Symbol 449 MovieClipUses:442 444 446 448Used by:450
Symbol 450 MovieClip {com.nitrome.buttons.TwoPlayerButton}Uses:415 429 431 435 440 424 449 144 433Used by:1486  Timeline
Symbol 451 BitmapUsed by:452
Symbol 452 GraphicUses:451Used by:453
Symbol 453 MovieClip {com.nitrome.crystalmines.Points}Uses:452Used by:1486
Symbol 454 MovieClip {com.nitrome.buttons.PreviousButton}Uses:239 245 243Used by:1486 1648
Symbol 455 MovieClip {com.nitrome.crystalmines.Shield}Uses:402Used by:1486
Symbol 456 GraphicUses:211Used by:457
Symbol 457 MovieClip {com.nitrome.buttons.SkipIntroButton}Uses:226 144 456 227Used by:1486  Timeline
Symbol 458 GraphicUsed by:459
Symbol 459 MovieClip {BackBit}Uses:458Used by:1486
Symbol 460 BitmapUsed by:461
Symbol 461 GraphicUses:460Used by:462
Symbol 462 MovieClip {rock2X2}Uses:461Used by:1486
Symbol 463 BitmapUsed by:464
Symbol 464 GraphicUses:463Used by:465
Symbol 465 MovieClip {rock2X2crystals}Uses:464Used by:1486
Symbol 466 BitmapUsed by:467
Symbol 467 GraphicUses:466Used by:468
Symbol 468 MovieClip {rock2X3}Uses:467Used by:1486
Symbol 469 BitmapUsed by:470
Symbol 470 GraphicUses:469Used by:471
Symbol 471 MovieClip {rock2X4}Uses:470Used by:1486
Symbol 472 BitmapUsed by:473
Symbol 473 GraphicUses:472Used by:474
Symbol 474 MovieClip {rock2X4crystals}Uses:473Used by:1486
Symbol 475 BitmapUsed by:476
Symbol 476 GraphicUses:475Used by:477
Symbol 477 MovieClip {rock3X2}Uses:476Used by:1486
Symbol 478 BitmapUsed by:479
Symbol 479 GraphicUses:478Used by:480
Symbol 480 MovieClip {rock3X2crystals}Uses:479Used by:1486
Symbol 481 BitmapUsed by:482
Symbol 482 GraphicUses:481Used by:483
Symbol 483 MovieClip {rock3X4}Uses:482Used by:1486
Symbol 484 BitmapUsed by:485
Symbol 485 GraphicUses:484Used by:486
Symbol 486 MovieClip {rock3X4crystals}Uses:485Used by:1486
Symbol 487 BitmapUsed by:488
Symbol 488 GraphicUses:487Used by:489
Symbol 489 MovieClip {barrelside}Uses:488Used by:1486
Symbol 490 BitmapUsed by:491
Symbol 491 GraphicUses:490Used by:492
Symbol 492 MovieClip {barrelstand}Uses:491Used by:1486
Symbol 493 BitmapUsed by:494
Symbol 494 GraphicUses:493Used by:505
Symbol 495 BitmapUsed by:496
Symbol 496 GraphicUses:495Used by:505
Symbol 497 BitmapUsed by:498
Symbol 498 GraphicUses:497Used by:505
Symbol 499 BitmapUsed by:500
Symbol 500 GraphicUses:499Used by:505
Symbol 501 BitmapUsed by:502
Symbol 502 GraphicUses:501Used by:505
Symbol 503 BitmapUsed by:504
Symbol 504 GraphicUses:503Used by:505
Symbol 505 MovieClip {com.nitrome.crystalmines.Bat}Uses:494 496 498 500 502 504Used by:1486
Symbol 506 BitmapUsed by:507
Symbol 507 GraphicUses:506Used by:530 1027
Symbol 508 BitmapUsed by:509
Symbol 509 GraphicUses:508Used by:530 1027
Symbol 510 BitmapUsed by:511
Symbol 511 GraphicUses:510Used by:530 1027
Symbol 512 BitmapUsed by:513
Symbol 513 GraphicUses:512Used by:530 1027
Symbol 514 BitmapUsed by:515
Symbol 515 GraphicUses:514Used by:530 1027
Symbol 516 BitmapUsed by:517
Symbol 517 GraphicUses:516Used by:530 1027
Symbol 518 BitmapUsed by:519
Symbol 519 GraphicUses:518Used by:530
Symbol 520 BitmapUsed by:521
Symbol 521 GraphicUses:520Used by:530
Symbol 522 BitmapUsed by:523
Symbol 523 GraphicUses:522Used by:530
Symbol 524 BitmapUsed by:525
Symbol 525 GraphicUses:524Used by:530
Symbol 526 BitmapUsed by:527
Symbol 527 GraphicUses:526Used by:530
Symbol 528 BitmapUsed by:529
Symbol 529 GraphicUses:528Used by:530
Symbol 530 MovieClip {BatLight}Uses:507 509 511 513 515 517 519 521 523 525 527 529Used by:1486
Symbol 531 BitmapUsed by:532
Symbol 532 GraphicUses:531Used by:533
Symbol 533 MovieClip {Background}Uses:532Used by:1486
Symbol 534 BitmapUsed by:535
Symbol 535 GraphicUses:534Used by:536
Symbol 536 MovieClip {boulder1}Uses:535Used by:1486
Symbol 537 BitmapUsed by:538
Symbol 538 GraphicUses:537Used by:539
Symbol 539 MovieClip {boulder2}Uses:538Used by:1486
Symbol 540 BitmapUsed by:541
Symbol 541 GraphicUses:540Used by:542
Symbol 542 MovieClip {Bubble}Uses:541Used by:1486
Symbol 543 BitmapUsed by:544
Symbol 544 GraphicUses:543Used by:545
Symbol 545 MovieClip {e_tile_crate}Uses:544Used by:1486
Symbol 546 GraphicUsed by:547
Symbol 547 MovieClip {crazy}Uses:546Used by:1486
Symbol 548 BitmapUsed by:549
Symbol 549 GraphicUses:548Used by:596
Symbol 550 BitmapUsed by:551
Symbol 551 GraphicUses:550Used by:596
Symbol 552 BitmapUsed by:553
Symbol 553 GraphicUses:552Used by:596
Symbol 554 BitmapUsed by:555
Symbol 555 GraphicUses:554Used by:596
Symbol 556 BitmapUsed by:557
Symbol 557 GraphicUses:556Used by:596
Symbol 558 BitmapUsed by:559
Symbol 559 GraphicUses:558Used by:596
Symbol 560 BitmapUsed by:561
Symbol 561 GraphicUses:560Used by:596
Symbol 562 BitmapUsed by:563
Symbol 563 GraphicUses:562Used by:596
Symbol 564 BitmapUsed by:565
Symbol 565 GraphicUses:564Used by:596
Symbol 566 BitmapUsed by:567
Symbol 567 GraphicUses:566Used by:596
Symbol 568 BitmapUsed by:569
Symbol 569 GraphicUses:568Used by:596
Symbol 570 BitmapUsed by:571
Symbol 571 GraphicUses:570Used by:596
Symbol 572 BitmapUsed by:573
Symbol 573 GraphicUses:572Used by:596
Symbol 574 BitmapUsed by:575
Symbol 575 GraphicUses:574Used by:596
Symbol 576 BitmapUsed by:577
Symbol 577 GraphicUses:576Used by:596
Symbol 578 BitmapUsed by:579
Symbol 579 GraphicUses:578Used by:596
Symbol 580 BitmapUsed by:581
Symbol 581 GraphicUses:580Used by:596
Symbol 582 BitmapUsed by:583
Symbol 583 GraphicUses:582Used by:596
Symbol 584 BitmapUsed by:585
Symbol 585 GraphicUses:584Used by:596
Symbol 586 BitmapUsed by:587
Symbol 587 GraphicUses:586Used by:596
Symbol 588 BitmapUsed by:589
Symbol 589 GraphicUses:588Used by:596
Symbol 590 BitmapUsed by:591
Symbol 591 GraphicUses:590Used by:596
Symbol 592 BitmapUsed by:593
Symbol 593 GraphicUses:592Used by:596
Symbol 594 BitmapUsed by:595
Symbol 595 GraphicUses:594Used by:596
Symbol 596 MovieClip {baddy_runner}Uses:549 551 553 555 557 559 561 563 565 567 569 571 573 575 577 579 581 583 585 587 589 591 593 595 387Used by:1486
Symbol 597 BitmapUsed by:598
Symbol 598 GraphicUses:597Used by:617
Symbol 599 BitmapUsed by:600
Symbol 600 GraphicUses:599Used by:617
Symbol 601 BitmapUsed by:602
Symbol 602 GraphicUses:601Used by:617
Symbol 603 BitmapUsed by:604
Symbol 604 GraphicUses:603Used by:617
Symbol 605 BitmapUsed by:606
Symbol 606 GraphicUses:605Used by:617
Symbol 607 BitmapUsed by:608
Symbol 608 GraphicUses:607Used by:617
Symbol 609 BitmapUsed by:610
Symbol 610 GraphicUses:609Used by:617
Symbol 611 BitmapUsed by:612
Symbol 612 GraphicUses:611Used by:617
Symbol 613 BitmapUsed by:614
Symbol 614 GraphicUses:613Used by:617
Symbol 615 BitmapUsed by:616
Symbol 616 GraphicUses:615Used by:617
Symbol 617 MovieClip {CrystalLarge}Uses:598 600 602 604 606 608 610 612 614 616Used by:1486
Symbol 618 BitmapUsed by:619
Symbol 619 GraphicUses:618Used by:620
Symbol 620 MovieClip {com.nitrome.crystalmines.ParalaxCrystal}Uses:619Used by:1486
Symbol 621 BitmapUsed by:622
Symbol 622 GraphicUses:621Used by:639
Symbol 623 BitmapUsed by:624
Symbol 624 GraphicUses:623Used by:639
Symbol 625 BitmapUsed by:626
Symbol 626 GraphicUses:625Used by:639
Symbol 627 BitmapUsed by:628
Symbol 628 GraphicUses:627Used by:639
Symbol 629 BitmapUsed by:630
Symbol 630 GraphicUses:629Used by:639
Symbol 631 BitmapUsed by:632
Symbol 632 GraphicUses:631Used by:639
Symbol 633 BitmapUsed by:634
Symbol 634 GraphicUses:633Used by:639
Symbol 635 BitmapUsed by:636
Symbol 636 GraphicUses:635Used by:639
Symbol 637 BitmapUsed by:638
Symbol 638 GraphicUses:637Used by:639
Symbol 639 MovieClip {CrystalSmall}Uses:622 624 626 628 630 632 634 636 638Used by:1486
Symbol 640 BitmapUsed by:641
Symbol 641 GraphicUses:640Used by:642
Symbol 642 MovieClipUses:641Used by:643
Symbol 643 MovieClip {DJump}Uses:642Used by:1486
Symbol 644 BitmapUsed by:645
Symbol 645 GraphicUses:644Used by:656
Symbol 646 BitmapUsed by:647
Symbol 647 GraphicUses:646Used by:656
Symbol 648 BitmapUsed by:649
Symbol 649 GraphicUses:648Used by:656
Symbol 650 BitmapUsed by:651
Symbol 651 GraphicUses:650Used by:656
Symbol 652 BitmapUsed by:653
Symbol 653 GraphicUses:652Used by:656
Symbol 654 BitmapUsed by:655
Symbol 655 GraphicUses:654Used by:656
Symbol 656 MovieClip {bomb1}Uses:645 647 649 651 653 655Used by:1486
Symbol 657 BitmapUsed by:658
Symbol 658 GraphicUses:657Used by:659
Symbol 659 MovieClip {doublejump_icon}Uses:390 658Used by:1486
Symbol 660 BitmapUsed by:661
Symbol 661 GraphicUses:660Used by:674
Symbol 662 BitmapUsed by:663
Symbol 663 GraphicUses:662Used by:674
Symbol 664 BitmapUsed by:665
Symbol 665 GraphicUses:664Used by:674
Symbol 666 BitmapUsed by:667
Symbol 667 GraphicUses:666Used by:674
Symbol 668 BitmapUsed by:669
Symbol 669 GraphicUses:668Used by:674
Symbol 670 BitmapUsed by:671
Symbol 671 GraphicUses:670Used by:674
Symbol 672 BitmapUsed by:673
Symbol 673 GraphicUses:672Used by:674
Symbol 674 MovieClip {Dust}Uses:661 663 665 667 669 671 673Used by:1486
Symbol 675 BitmapUsed by:676
Symbol 676 GraphicUses:675Used by:677
Symbol 677 MovieClip {panel1}Uses:676Used by:1486
Symbol 678 BitmapUsed by:679
Symbol 679 GraphicUses:678Used by:680
Symbol 680 MovieClip {panel2}Uses:679Used by:1486
Symbol 681 BitmapUsed by:682
Symbol 682 GraphicUses:681Used by:683
Symbol 683 MovieClip {rock_gem1}Uses:682Used by:1486
Symbol 684 BitmapUsed by:685
Symbol 685 GraphicUses:684Used by:686
Symbol 686 MovieClip {rock_gem2}Uses:685Used by:1486
Symbol 687 BitmapUsed by:688
Symbol 688 GraphicUses:687Used by:689
Symbol 689 MovieClip {rock_gem3}Uses:688Used by:1486
Symbol 690 BitmapUsed by:691
Symbol 691 GraphicUses:690Used by:692
Symbol 692 MovieClip {rock_gem4}Uses:691Used by:1486
Symbol 693 BitmapUsed by:694
Symbol 694 GraphicUses:693Used by:695
Symbol 695 MovieClip {rock1}Uses:694Used by:1486
Symbol 696 BitmapUsed by:697
Symbol 697 GraphicUses:696Used by:698
Symbol 698 MovieClip {rock2}Uses:697Used by:1486
Symbol 699 BitmapUsed by:700
Symbol 700 GraphicUses:699Used by:701
Symbol 701 MovieClip {rock3}Uses:700Used by:1486
Symbol 702 BitmapUsed by:703
Symbol 703 GraphicUses:702Used by:704 717
Symbol 704 MovieClip {e_tile_railTrack}Uses:703Used by:1486
Symbol 705 BitmapUsed by:706
Symbol 706 GraphicUses:705Used by:707
Symbol 707 MovieClip {rock4}Uses:706Used by:1486
Symbol 708 BitmapUsed by:709
Symbol 709 GraphicUses:708Used by:710
Symbol 710 MovieClip {rocklong1}Uses:709Used by:1486
Symbol 711 BitmapUsed by:712
Symbol 712 GraphicUses:711Used by:713
Symbol 713 MovieClip {rocklong1_half1}Uses:712Used by:1486
Symbol 714 BitmapUsed by:715
Symbol 715 GraphicUses:714Used by:716
Symbol 716 MovieClip {rocklong1_half2}Uses:715Used by:1486
Symbol 717 MovieClip {rocklong2}Uses:703Used by:1486
Symbol 718 BitmapUsed by:719
Symbol 719 GraphicUses:718Used by:720
Symbol 720 MovieClip {rocklong2_half1}Uses:719Used by:1486
Symbol 721 BitmapUsed by:722
Symbol 722 GraphicUses:721Used by:723
Symbol 723 MovieClip {rocklong2_half2}Uses:722Used by:1486
Symbol 724 BitmapUsed by:725
Symbol 725 GraphicUses:724Used by:726
Symbol 726 MovieClip {rotate_platform}Uses:725Used by:1486
Symbol 727 BitmapUsed by:728 733
Symbol 728 GraphicUses:727Used by:729
Symbol 729 MovieClip {slope_backwards1}Uses:728Used by:1486
Symbol 730 BitmapUsed by:731 735
Symbol 731 GraphicUses:730Used by:732
Symbol 732 MovieClip {slope_backwards2}Uses:731Used by:1486
Symbol 733 GraphicUses:727Used by:734
Symbol 734 MovieClip {slope1}Uses:733Used by:1486
Symbol 735 GraphicUses:730Used by:736
Symbol 736 MovieClip {slope2}Uses:735Used by:1486
Symbol 737 BitmapUsed by:738
Symbol 738 GraphicUses:737Used by:739
Symbol 739 MovieClip {stickytile1}Uses:738Used by:1486
Symbol 740 BitmapUsed by:741
Symbol 741 GraphicUses:740Used by:742
Symbol 742 MovieClip {stickytile2}Uses:741Used by:1486
Symbol 743 BitmapUsed by:744
Symbol 744 GraphicUses:743Used by:745
Symbol 745 MovieClip {stickytile3}Uses:744Used by:1486
Symbol 746 BitmapUsed by:747
Symbol 747 GraphicUses:746Used by:748
Symbol 748 MovieClip {woodplat1}Uses:747Used by:1486
Symbol 749 GraphicUsed by:750
Symbol 750 MovieClipUses:749Used by:767
Symbol 751 BitmapUsed by:752
Symbol 752 GraphicUses:751Used by:767
Symbol 753 BitmapUsed by:754
Symbol 754 GraphicUses:753Used by:767
Symbol 755 GraphicUsed by:756
Symbol 756 MovieClipUses:755Used by:767 1119
Symbol 757 BitmapUsed by:758
Symbol 758 GraphicUses:757Used by:767
Symbol 759 BitmapUsed by:760
Symbol 760 GraphicUses:759Used by:767
Symbol 761 BitmapUsed by:762
Symbol 762 GraphicUses:761Used by:767
Symbol 763 BitmapUsed by:764
Symbol 764 GraphicUses:763Used by:767
Symbol 765 BitmapUsed by:766
Symbol 766 GraphicUses:765Used by:767
Symbol 767 MovieClip {Explosion}Uses:750 752 754 756 758 760 762 764 766Used by:1486
Symbol 768 BitmapUsed by:769
Symbol 769 GraphicUses:768Used by:796
Symbol 770 BitmapUsed by:771
Symbol 771 GraphicUses:770Used by:796
Symbol 772 BitmapUsed by:773
Symbol 773 GraphicUses:772Used by:796
Symbol 774 BitmapUsed by:775
Symbol 775 GraphicUses:774Used by:796
Symbol 776 BitmapUsed by:777
Symbol 777 GraphicUses:776Used by:796
Symbol 778 BitmapUsed by:779
Symbol 779 GraphicUses:778Used by:796
Symbol 780 BitmapUsed by:781
Symbol 781 GraphicUses:780Used by:796
Symbol 782 BitmapUsed by:783
Symbol 783 GraphicUses:782Used by:796
Symbol 784 BitmapUsed by:785
Symbol 785 GraphicUses:784Used by:796
Symbol 786 BitmapUsed by:787
Symbol 787 GraphicUses:786Used by:796
Symbol 788 BitmapUsed by:789
Symbol 789 GraphicUses:788Used by:796
Symbol 790 BitmapUsed by:791
Symbol 791 GraphicUses:790Used by:796
Symbol 792 BitmapUsed by:793
Symbol 793 GraphicUses:792Used by:796
Symbol 794 BitmapUsed by:795
Symbol 795 GraphicUses:794Used by:796
Symbol 796 MovieClip {baddy_explosive_expert}Uses:769 771 773 775 777 779 781 783 785 787 789 791 793 795 393Used by:1486
Symbol 797 GraphicUsed by:798
Symbol 798 MovieClip {fast}Uses:797Used by:1486
Symbol 799 BitmapUsed by:800
Symbol 800 GraphicUses:799Used by:801
Symbol 801 MovieClip {flash_icon}Uses:396 800Used by:1486
Symbol 802 BitmapUsed by:804 806 808 810 812 814 816 818 820 822 824 826 828 830 832 834 836 838 840 842 844 846 848 850 852 854 856 858 860 862 864 951 952 953 954
Symbol 803 BitmapUsed by:804
Symbol 804 GraphicUses:802 803Used by:926
Symbol 805 BitmapUsed by:806
Symbol 806 GraphicUses:802 805Used by:926
Symbol 807 BitmapUsed by:808
Symbol 808 GraphicUses:802 807Used by:926
Symbol 809 BitmapUsed by:810
Symbol 810 GraphicUses:802 809Used by:926
Symbol 811 BitmapUsed by:812
Symbol 812 GraphicUses:802 811Used by:926
Symbol 813 BitmapUsed by:814
Symbol 814 GraphicUses:802 813Used by:926
Symbol 815 BitmapUsed by:816
Symbol 816 GraphicUses:802 815Used by:926
Symbol 817 BitmapUsed by:818
Symbol 818 GraphicUses:802 817Used by:926
Symbol 819 BitmapUsed by:820
Symbol 820 GraphicUses:802 819Used by:926
Symbol 821 BitmapUsed by:822
Symbol 822 GraphicUses:802 821Used by:926
Symbol 823 BitmapUsed by:824
Symbol 824 GraphicUses:802 823Used by:926
Symbol 825 BitmapUsed by:826
Symbol 826 GraphicUses:802 825Used by:926
Symbol 827 BitmapUsed by:828
Symbol 828 GraphicUses:802 827Used by:926
Symbol 829 BitmapUsed by:830
Symbol 830 GraphicUses:802 829Used by:926
Symbol 831 BitmapUsed by:832
Symbol 832 GraphicUses:802 831Used by:926
Symbol 833 BitmapUsed by:834
Symbol 834 GraphicUses:802 833Used by:926
Symbol 835 BitmapUsed by:836
Symbol 836 GraphicUses:802 835Used by:926
Symbol 837 BitmapUsed by:838
Symbol 838 GraphicUses:802 837Used by:926
Symbol 839 BitmapUsed by:840
Symbol 840 GraphicUses:802 839Used by:926
Symbol 841 BitmapUsed by:842
Symbol 842 GraphicUses:802 841Used by:926
Symbol 843 BitmapUsed by:844
Symbol 844 GraphicUses:802 843Used by:926
Symbol 845 BitmapUsed by:846
Symbol 846 GraphicUses:802 845Used by:926
Symbol 847 BitmapUsed by:848
Symbol 848 GraphicUses:802 847Used by:926
Symbol 849 BitmapUsed by:850
Symbol 850 GraphicUses:802 849Used by:926
Symbol 851 BitmapUsed by:852
Symbol 852 GraphicUses:802 851Used by:926
Symbol 853 BitmapUsed by:854
Symbol 854 GraphicUses:802 853Used by:926
Symbol 855 BitmapUsed by:856
Symbol 856 GraphicUses:802 855Used by:926
Symbol 857 BitmapUsed by:858
Symbol 858 GraphicUses:802 857Used by:926
Symbol 859 BitmapUsed by:860
Symbol 860 GraphicUses:802 859Used by:926
Symbol 861 BitmapUsed by:862
Symbol 862 GraphicUses:802 861Used by:926
Symbol 863 BitmapUsed by:864
Symbol 864 GraphicUses:802 863Used by:926
Symbol 865 BitmapUsed by:867 1330 1332 1334 1336 1338 1340 1342 1344 1346 1348 1350 1352 1354 1356 1358 1360 1362 1364 1366 1368 1370 1372 1374 1376 1378 1380 1382 1384 1386 1388 1390 1392 1394 1396
Symbol 866 BitmapUsed by:867
Symbol 867 GraphicUses:865 866Used by:926
Symbol 868 BitmapUsed by:869
Symbol 869 GraphicUses:868Used by:926
Symbol 870 BitmapUsed by:871
Symbol 871 GraphicUses:870Used by:926
Symbol 872 BitmapUsed by:873
Symbol 873 GraphicUses:872Used by:926
Symbol 874 BitmapUsed by:875
Symbol 875 GraphicUses:874Used by:926
Symbol 876 BitmapUsed by:877
Symbol 877 GraphicUses:876Used by:926
Symbol 878 BitmapUsed by:879
Symbol 879 GraphicUses:878Used by:926
Symbol 880 BitmapUsed by:881
Symbol 881 GraphicUses:880Used by:926
Symbol 882 BitmapUsed by:883
Symbol 883 GraphicUses:882Used by:926
Symbol 884 BitmapUsed by:885
Symbol 885 GraphicUses:884Used by:926
Symbol 886 BitmapUsed by:887
Symbol 887 GraphicUses:886Used by:926
Symbol 888 BitmapUsed by:889
Symbol 889 GraphicUses:888Used by:926
Symbol 890 BitmapUsed by:891
Symbol 891 GraphicUses:890Used by:926
Symbol 892 BitmapUsed by:893
Symbol 893 GraphicUses:892Used by:926
Symbol 894 BitmapUsed by:895
Symbol 895 GraphicUses:894Used by:926
Symbol 896 BitmapUsed by:897
Symbol 897 GraphicUses:322 896Used by:926
Symbol 898 BitmapUsed by:899
Symbol 899 GraphicUses:322 898Used by:926
Symbol 900 BitmapUsed by:901
Symbol 901 GraphicUses:322 900Used by:926
Symbol 902 BitmapUsed by:903
Symbol 903 GraphicUses:322 902Used by:926
Symbol 904 BitmapUsed by:905
Symbol 905 GraphicUses:322 904Used by:926
Symbol 906 BitmapUsed by:907
Symbol 907 GraphicUses:322 906Used by:926
Symbol 908 BitmapUsed by:909
Symbol 909 GraphicUses:322 908Used by:926
Symbol 910 BitmapUsed by:911
Symbol 911 GraphicUses:322 910Used by:926
Symbol 912 BitmapUsed by:913
Symbol 913 GraphicUses:322 912Used by:926
Symbol 914 BitmapUsed by:915
Symbol 915 GraphicUses:322 914Used by:926
Symbol 916 BitmapUsed by:917
Symbol 917 GraphicUses:322 916Used by:926
Symbol 918 BitmapUsed by:919
Symbol 919 GraphicUses:322 918Used by:926
Symbol 920 BitmapUsed by:921
Symbol 921 GraphicUses:322 920Used by:926
Symbol 922 BitmapUsed by:923
Symbol 923 GraphicUses:322 922Used by:926
Symbol 924 BitmapUsed by:925
Symbol 925 GraphicUses:322 924Used by:926
Symbol 926 MovieClip {Hero1}Uses:804 806 808 810 812 814 816 818 820 822 824 826 828 830 832 834 836 838 840 842 844 846 848 850 852 854 856 858 860 862 864 867 869 871 873 875 877 879 881 883 885 887 889 891 893 895 897 899 901 903 905 907 909 911 913 915 917 919 921 923 925Used by:1486
Symbol 927 BitmapUsed by:928
Symbol 928 GraphicUses:322 927Used by:1024
Symbol 929 BitmapUsed by:930
Symbol 930 GraphicUses:929Used by:1024
Symbol 931 BitmapUsed by:932
Symbol 932 GraphicUses:931Used by:1024
Symbol 933 BitmapUsed by:934
Symbol 934 GraphicUses:322 933Used by:1024
Symbol 935 BitmapUsed by:936
Symbol 936 GraphicUses:322 935Used by:1024
Symbol 937 BitmapUsed by:938
Symbol 938 GraphicUses:322 937Used by:1024
Symbol 939 BitmapUsed by:940
Symbol 940 GraphicUses:322 939Used by:1024
Symbol 941 BitmapUsed by:942
Symbol 942 GraphicUses:322 941Used by:1024
Symbol 943 BitmapUsed by:944
Symbol 944 GraphicUses:322 943Used by:1024
Symbol 945 BitmapUsed by:946
Symbol 946 GraphicUses:322 945Used by:1024
Symbol 947 BitmapUsed by:948
Symbol 948 GraphicUses:322 947Used by:1024
Symbol 949 BitmapUsed by:950
Symbol 950 GraphicUses:322 949Used by:1024
Symbol 951 GraphicUses:802 441Used by:1024
Symbol 952 GraphicUses:802 443Used by:1024
Symbol 953 GraphicUses:802 445Used by:1024
Symbol 954 GraphicUses:802 447Used by:1024
Symbol 955 BitmapUsed by:956
Symbol 956 GraphicUses:322 955Used by:1024
Symbol 957 BitmapUsed by:958
Symbol 958 GraphicUses:322 957Used by:1024
Symbol 959 BitmapUsed by:960
Symbol 960 GraphicUses:322 959Used by:1024
Symbol 961 BitmapUsed by:962
Symbol 962 GraphicUses:322 961Used by:1024
Symbol 963 BitmapUsed by:964
Symbol 964 GraphicUses:322 963Used by:1024
Symbol 965 BitmapUsed by:966
Symbol 966 GraphicUses:322 965Used by:1024
Symbol 967 BitmapUsed by:968
Symbol 968 GraphicUses:322 967Used by:1024
Symbol 969 BitmapUsed by:970
Symbol 970 GraphicUses:322 969Used by:1024
Symbol 971 BitmapUsed by:972
Symbol 972 GraphicUses:322 971Used by:1024
Symbol 973 BitmapUsed by:974
Symbol 974 GraphicUses:322 973Used by:1024
Symbol 975 BitmapUsed by:976
Symbol 976 GraphicUses:322 975Used by:1024
Symbol 977 BitmapUsed by:978
Symbol 978 GraphicUses:322 977Used by:1024
Symbol 979 BitmapUsed by:980
Symbol 980 GraphicUses:322 979Used by:1024
Symbol 981 BitmapUsed by:982
Symbol 982 GraphicUses:322 981Used by:1024
Symbol 983 BitmapUsed by:984
Symbol 984 GraphicUses:322 983Used by:1024
Symbol 985 BitmapUsed by:986
Symbol 986 GraphicUses:985Used by:1024
Symbol 987 BitmapUsed by:988
Symbol 988 GraphicUses:987Used by:1024
Symbol 989 BitmapUsed by:990
Symbol 990 GraphicUses:989Used by:1024
Symbol 991 BitmapUsed by:992
Symbol 992 GraphicUses:991Used by:1024
Symbol 993 BitmapUsed by:994
Symbol 994 GraphicUses:993Used by:1024
Symbol 995 BitmapUsed by:996
Symbol 996 GraphicUses:995Used by:1024
Symbol 997 BitmapUsed by:998
Symbol 998 GraphicUses:997Used by:1024
Symbol 999 BitmapUsed by:1000
Symbol 1000 GraphicUses:999Used by:1024
Symbol 1001 BitmapUsed by:1002
Symbol 1002 GraphicUses:1001Used by:1024
Symbol 1003 BitmapUsed by:1004
Symbol 1004 GraphicUses:1003Used by:1024
Symbol 1005 BitmapUsed by:1006
Symbol 1006 GraphicUses:1005Used by:1024
Symbol 1007 BitmapUsed by:1008
Symbol 1008 GraphicUses:1007Used by:1024
Symbol 1009 BitmapUsed by:1010
Symbol 1010 GraphicUses:1009Used by:1024
Symbol 1011 BitmapUsed by:1012
Symbol 1012 GraphicUses:1011Used by:1024
Symbol 1013 BitmapUsed by:1014
Symbol 1014 GraphicUses:1013Used by:1024
Symbol 1015 BitmapUsed by:1016
Symbol 1016 GraphicUses:1015Used by:1024
Symbol 1017 GraphicUses:322 323Used by:1024
Symbol 1018 GraphicUses:322 325Used by:1024
Symbol 1019 GraphicUses:322 327Used by:1024
Symbol 1020 GraphicUses:322 329Used by:1024
Symbol 1021 GraphicUses:322 331Used by:1024
Symbol 1022 GraphicUses:322 337Used by:1024
Symbol 1023 GraphicUses:322 347Used by:1024
Symbol 1024 MovieClip {Hero2}Uses:928 930 932 934 936 938 940 942 944 946 948 950 951 952 953 954 956 958 960 962 964 966 968 970 972 974 976 978 980 982 984 986 988 990 992 994 996 998 1000 1002 1004 1006 1008 1010 1012 1014 1016 1017 1018 1019 1020 1021 334 336 1022 340 342 344 346 1023 350 352Used by:1486
Symbol 1025 BitmapUsed by:1026
Symbol 1026 GraphicUses:1025Used by:1028
Symbol 1027 MovieClipUses:507 509 511 513 515 517Used by:1028
Symbol 1028 MovieClip {instructions_board}Uses:1026 1027 144 241Used by:1486
Symbol 1029 BitmapUsed by:1030
Symbol 1030 GraphicUses:1029Used by:1041
Symbol 1031 BitmapUsed by:1032
Symbol 1032 GraphicUses:1031Used by:1041
Symbol 1033 BitmapUsed by:1034
Symbol 1034 GraphicUses:1033Used by:1041
Symbol 1035 BitmapUsed by:1036
Symbol 1036 GraphicUses:1035Used by:1041
Symbol 1037 BitmapUsed by:1038
Symbol 1038 GraphicUses:1037Used by:1041
Symbol 1039 BitmapUsed by:1040
Symbol 1040 GraphicUses:1039Used by:1041
Symbol 1041 MovieClip {KeysResetIcon}Uses:1030 1032 1034 1036 1038 1040Used by:1486
Symbol 1042 BitmapUsed by:1043
Symbol 1043 GraphicUses:1042Used by:1112
Symbol 1044 BitmapUsed by:1045
Symbol 1045 GraphicUses:1044Used by:1112
Symbol 1046 BitmapUsed by:1047
Symbol 1047 GraphicUses:1046Used by:1112
Symbol 1048 BitmapUsed by:1049
Symbol 1049 GraphicUses:1048Used by:1112
Symbol 1050 BitmapUsed by:1051
Symbol 1051 GraphicUses:1050Used by:1112
Symbol 1052 BitmapUsed by:1053
Symbol 1053 GraphicUses:1052Used by:1112
Symbol 1054 BitmapUsed by:1055
Symbol 1055 GraphicUses:1054Used by:1112
Symbol 1056 BitmapUsed by:1057
Symbol 1057 GraphicUses:1056Used by:1112
Symbol 1058 BitmapUsed by:1059
Symbol 1059 GraphicUses:1058Used by:1112
Symbol 1060 BitmapUsed by:1061
Symbol 1061 GraphicUses:1060Used by:1112
Symbol 1062 BitmapUsed by:1063
Symbol 1063 GraphicUses:1062Used by:1112
Symbol 1064 BitmapUsed by:1065
Symbol 1065 GraphicUses:1064Used by:1112
Symbol 1066 BitmapUsed by:1067
Symbol 1067 GraphicUses:1066Used by:1112
Symbol 1068 BitmapUsed by:1069
Symbol 1069 GraphicUses:1068Used by:1112
Symbol 1070 BitmapUsed by:1071
Symbol 1071 GraphicUses:1070Used by:1112
Symbol 1072 BitmapUsed by:1073
Symbol 1073 GraphicUses:1072Used by:1112
Symbol 1074 BitmapUsed by:1075
Symbol 1075 GraphicUses:1074Used by:1112
Symbol 1076 BitmapUsed by:1077
Symbol 1077 GraphicUses:1076Used by:1112
Symbol 1078 BitmapUsed by:1079
Symbol 1079 GraphicUses:1078Used by:1112
Symbol 1080 BitmapUsed by:1081
Symbol 1081 GraphicUses:1080Used by:1112
Symbol 1082 BitmapUsed by:1083
Symbol 1083 GraphicUses:1082Used by:1112
Symbol 1084 BitmapUsed by:1085
Symbol 1085 GraphicUses:1084Used by:1112
Symbol 1086 BitmapUsed by:1087
Symbol 1087 GraphicUses:1086Used by:1112
Symbol 1088 BitmapUsed by:1089
Symbol 1089 GraphicUses:1088Used by:1112
Symbol 1090 BitmapUsed by:1091
Symbol 1091 GraphicUses:1090Used by:1112
Symbol 1092 BitmapUsed by:1093
Symbol 1093 GraphicUses:1092Used by:1112
Symbol 1094 BitmapUsed by:1095
Symbol 1095 GraphicUses:1094Used by:1112
Symbol 1096 BitmapUsed by:1097
Symbol 1097 GraphicUses:1096Used by:1112
Symbol 1098 BitmapUsed by:1099
Symbol 1099 GraphicUses:1098Used by:1112
Symbol 1100 BitmapUsed by:1101
Symbol 1101 GraphicUses:1100Used by:1112
Symbol 1102 BitmapUsed by:1103
Symbol 1103 GraphicUses:1102Used by:1112
Symbol 1104 BitmapUsed by:1105
Symbol 1105 GraphicUses:1104Used by:1112
Symbol 1106 BitmapUsed by:1107
Symbol 1107 GraphicUses:1106Used by:1112
Symbol 1108 BitmapUsed by:1109
Symbol 1109 GraphicUses:1108Used by:1112
Symbol 1110 BitmapUsed by:1111
Symbol 1111 GraphicUses:1110Used by:1112
Symbol 1112 MovieClip {baddy_licker}Uses:1043 1045 1047 1049 1051 1053 1055 1057 1059 1061 1063 1065 1067 1069 1071 1073 1075 1077 1079 1081 1083 1085 1087 1089 1091 1093 1095 1097 1099 1101 1103 1105 1107 1109 1111Used by:1486
Symbol 1113 BitmapUsed by:1114
Symbol 1114 GraphicUses:1113Used by:1119
Symbol 1115 BitmapUsed by:1116
Symbol 1116 GraphicUses:1115Used by:1119
Symbol 1117 BitmapUsed by:1118
Symbol 1118 GraphicUses:1117Used by:1119
Symbol 1119 MovieClip {mineLight}Uses:1114 756 1116 1118Used by:1486
Symbol 1120 BitmapUsed by:1121
Symbol 1121 GraphicUses:1120Used by:1122
Symbol 1122 MovieClip {railTrack}Uses:1121Used by:1486
Symbol 1123 GraphicUsed by:1124
Symbol 1124 MovieClip {med}Uses:1123Used by:1486
Symbol 1125 BitmapUsed by:1126
Symbol 1126 GraphicUses:1125Used by:1127
Symbol 1127 MovieClip {MineCartLong}Uses:1126Used by:1486
Symbol 1128 BitmapUsed by:1129
Symbol 1129 GraphicUses:1128Used by:1130
Symbol 1130 MovieClip {MineCart}Uses:1129Used by:1486
Symbol 1131 BitmapUsed by:1132
Symbol 1132 GraphicUses:1131Used by:1133
Symbol 1133 MovieClip {IconPlayer1}Uses:1132Used by:1486
Symbol 1134 BitmapUsed by:1135
Symbol 1135 GraphicUses:1134Used by:1136
Symbol 1136 MovieClip {IconPlayer2}Uses:1135Used by:1486
Symbol 1137 EditableTextUses:233Used by:1138
Symbol 1138 MovieClip {Player1Score}Uses:1137Used by:1486
Symbol 1139 EditableTextUses:233Used by:1140
Symbol 1140 MovieClip {Player2Score}Uses:1139Used by:1486
Symbol 1141 BitmapUsed by:1142
Symbol 1142 GraphicUses:1141Used by:1181
Symbol 1143 BitmapUsed by:1144
Symbol 1144 GraphicUses:1143Used by:1181
Symbol 1145 BitmapUsed by:1146
Symbol 1146 GraphicUses:1145Used by:1181
Symbol 1147 BitmapUsed by:1148
Symbol 1148 GraphicUses:1147Used by:1181
Symbol 1149 BitmapUsed by:1150
Symbol 1150 GraphicUses:1149Used by:1181
Symbol 1151 BitmapUsed by:1152
Symbol 1152 GraphicUses:1151Used by:1181
Symbol 1153 BitmapUsed by:1154
Symbol 1154 GraphicUses:1153Used by:1181
Symbol 1155 BitmapUsed by:1156
Symbol 1156 GraphicUses:1155Used by:1181
Symbol 1157 BitmapUsed by:1158
Symbol 1158 GraphicUses:1157Used by:1181
Symbol 1159 BitmapUsed by:1160
Symbol 1160 GraphicUses:1159Used by:1181
Symbol 1161 BitmapUsed by:1162
Symbol 1162 GraphicUses:1161Used by:1181
Symbol 1163 BitmapUsed by:1164
Symbol 1164 GraphicUses:1163Used by:1181
Symbol 1165 BitmapUsed by:1166
Symbol 1166 GraphicUses:1165Used by:1181
Symbol 1167 BitmapUsed by:1168
Symbol 1168 GraphicUses:1167Used by:1181
Symbol 1169 BitmapUsed by:1170
Symbol 1170 GraphicUses:1169Used by:1181
Symbol 1171 BitmapUsed by:1172
Symbol 1172 GraphicUses:1171Used by:1181
Symbol 1173 BitmapUsed by:1174
Symbol 1174 GraphicUses:1173Used by:1181
Symbol 1175 BitmapUsed by:1176
Symbol 1176 GraphicUses:1175Used by:1181
Symbol 1177 BitmapUsed by:1178
Symbol 1178 GraphicUses:1177Used by:1181
Symbol 1179 BitmapUsed by:1180
Symbol 1180 GraphicUses:1179Used by:1181
Symbol 1181 MovieClip {com.nitrome.crystalmines.Puke}Uses:1142 1144 1146 1148 1150 1152 1154 1156 1158 1160 1162 1164 1166 1168 1170 1172 1174 1176 1178 1180Used by:1486
Symbol 1182 BitmapUsed by:1183
Symbol 1183 GraphicUses:1182Used by:1228
Symbol 1184 BitmapUsed by:1185
Symbol 1185 GraphicUses:1184Used by:1228
Symbol 1186 BitmapUsed by:1187
Symbol 1187 GraphicUses:1186Used by:1228
Symbol 1188 BitmapUsed by:1189
Symbol 1189 GraphicUses:1188Used by:1228
Symbol 1190 BitmapUsed by:1191
Symbol 1191 GraphicUses:1190Used by:1228
Symbol 1192 BitmapUsed by:1193
Symbol 1193 GraphicUses:1192Used by:1228
Symbol 1194 BitmapUsed by:1195
Symbol 1195 GraphicUses:1194Used by:1228
Symbol 1196 BitmapUsed by:1197
Symbol 1197 GraphicUses:1196Used by:1228
Symbol 1198 BitmapUsed by:1199
Symbol 1199 GraphicUses:1198Used by:1228
Symbol 1200 BitmapUsed by:1201
Symbol 1201 GraphicUses:1200Used by:1228
Symbol 1202 BitmapUsed by:1203
Symbol 1203 GraphicUses:1202Used by:1228
Symbol 1204 BitmapUsed by:1205
Symbol 1205 GraphicUses:1204Used by:1228
Symbol 1206 BitmapUsed by:1207
Symbol 1207 GraphicUses:1206Used by:1228
Symbol 1208 BitmapUsed by:1209
Symbol 1209 GraphicUses:1208Used by:1228
Symbol 1210 BitmapUsed by:1211
Symbol 1211 GraphicUses:1210Used by:1228
Symbol 1212 BitmapUsed by:1213
Symbol 1213 GraphicUses:1212Used by:1228
Symbol 1214 BitmapUsed by:1215
Symbol 1215 GraphicUses:1214Used by:1228
Symbol 1216 BitmapUsed by:1217
Symbol 1217 GraphicUses:1216Used by:1228
Symbol 1218 BitmapUsed by:1219
Symbol 1219 GraphicUses:1218Used by:1228
Symbol 1220 BitmapUsed by:1221
Symbol 1221 GraphicUses:1220Used by:1228
Symbol 1222 BitmapUsed by:1223
Symbol 1223 GraphicUses:1222Used by:1228
Symbol 1224 BitmapUsed by:1225
Symbol 1225 GraphicUses:1224Used by:1228
Symbol 1226 BitmapUsed by:1227
Symbol 1227 GraphicUses:1226Used by:1228
Symbol 1228 MovieClip {baddy_puker}Uses:1183 1185 1187 1189 1191 1193 1195 1197 1199 1201 1203 1205 1207 1209 1211 1213 1215 1217 1219 1221 1223 1225 1227Used by:1486
Symbol 1229 BitmapUsed by:1230
Symbol 1230 GraphicUses:1229Used by:1267
Symbol 1231 BitmapUsed by:1232
Symbol 1232 GraphicUses:1231Used by:1267
Symbol 1233 BitmapUsed by:1234
Symbol 1234 GraphicUses:1233Used by:1267
Symbol 1235 BitmapUsed by:1236
Symbol 1236 GraphicUses:1235Used by:1267
Symbol 1237 BitmapUsed by:1238
Symbol 1238 GraphicUses:1237Used by:1267
Symbol 1239 BitmapUsed by:1240
Symbol 1240 GraphicUses:1239Used by:1267
Symbol 1241 BitmapUsed by:1242
Symbol 1242 GraphicUses:1241Used by:1267
Symbol 1243 BitmapUsed by:1244
Symbol 1244 GraphicUses:1243Used by:1267
Symbol 1245 BitmapUsed by:1246
Symbol 1246 GraphicUses:1245Used by:1267
Symbol 1247 BitmapUsed by:1248
Symbol 1248 GraphicUses:1247Used by:1267
Symbol 1249 BitmapUsed by:1250
Symbol 1250 GraphicUses:1249Used by:1267
Symbol 1251 BitmapUsed by:1252
Symbol 1252 GraphicUses:1251Used by:1267
Symbol 1253 BitmapUsed by:1254
Symbol 1254 GraphicUses:1253Used by:1267
Symbol 1255 BitmapUsed by:1256
Symbol 1256 GraphicUses:1255Used by:1267
Symbol 1257 BitmapUsed by:1258
Symbol 1258 GraphicUses:1257Used by:1267
Symbol 1259 BitmapUsed by:1260
Symbol 1260 GraphicUses:1259Used by:1267
Symbol 1261 BitmapUsed by:1262
Symbol 1262 GraphicUses:1261Used by:1267
Symbol 1263 BitmapUsed by:1264
Symbol 1264 GraphicUses:1263Used by:1267
Symbol 1265 BitmapUsed by:1266
Symbol 1266 GraphicUses:1265Used by:1267
Symbol 1267 MovieClip {baddy_pusher}Uses:1230 1232 1234 1236 1238 1240 1242 1244 1246 1248 1250 1252 1254 1256 1258 1260 1262 1264 1266Used by:1486
Symbol 1268 BitmapUsed by:1269
Symbol 1269 GraphicUses:1268Used by:1270
Symbol 1270 MovieClip {rail_flat}Uses:1269Used by:1486
Symbol 1271 BitmapUsed by:1272
Symbol 1272 GraphicUses:1271Used by:1273
Symbol 1273 MovieClip {rail_1}Uses:1272Used by:1486
Symbol 1274 BitmapUsed by:1275
Symbol 1275 GraphicUses:1274Used by:1276
Symbol 1276 MovieClip {rail_track}Uses:1275Used by:1486
Symbol 1277 BitmapUsed by:1278
Symbol 1278 GraphicUses:1277Used by:1279
Symbol 1279 MovieClip {rockgemlong1_half1}Uses:1278Used by:1486
Symbol 1280 BitmapUsed by:1281
Symbol 1281 GraphicUses:1280Used by:1282
Symbol 1282 MovieClip {rockgemlong1_half2}Uses:1281Used by:1486
Symbol 1283 BitmapUsed by:1284
Symbol 1284 GraphicUses:1283Used by:1285
Symbol 1285 MovieClip {rockgemlong2_half1}Uses:1284Used by:1486
Symbol 1286 BitmapUsed by:1287
Symbol 1287 GraphicUses:1286Used by:1288
Symbol 1288 MovieClip {rockgemlong2_half2}Uses:1287Used by:1486
Symbol 1289 BitmapUsed by:1290
Symbol 1290 GraphicUses:1289Used by:1291
Symbol 1291 MovieClip {ruby1}Uses:1290Used by:1486
Symbol 1292 BitmapUsed by:1293
Symbol 1293 GraphicUses:1292Used by:1294
Symbol 1294 MovieClip {rubyhalf1}Uses:1293Used by:1486
Symbol 1295 BitmapUsed by:1296
Symbol 1296 GraphicUses:1295Used by:1297
Symbol 1297 MovieClip {rubyhalf2}Uses:1296Used by:1486
Symbol 1298 BitmapUsed by:1299
Symbol 1299 GraphicUses:1298Used by:1300
Symbol 1300 MovieClip {safeground1}Uses:1299Used by:1486
Symbol 1301 BitmapUsed by:1302
Symbol 1302 GraphicUses:1301Used by:1303
Symbol 1303 MovieClip {safeground2}Uses:1302Used by:1486
Symbol 1304 BitmapUsed by:1305
Symbol 1305 GraphicUses:1304Used by:1306
Symbol 1306 MovieClip {safeground3}Uses:1305Used by:1486
Symbol 1307 MovieClip {shield_icon}Uses:405 408Used by:1486
Symbol 1308 BitmapUsed by:1309
Symbol 1309 GraphicUses:1308Used by:1326
Symbol 1310 BitmapUsed by:1311
Symbol 1311 GraphicUses:1310Used by:1326
Symbol 1312 BitmapUsed by:1313
Symbol 1313 GraphicUses:1312Used by:1326
Symbol 1314 BitmapUsed by:1315
Symbol 1315 GraphicUses:1314Used by:1326
Symbol 1316 BitmapUsed by:1317
Symbol 1317 GraphicUses:1316Used by:1326
Symbol 1318 BitmapUsed by:1319
Symbol 1319 GraphicUses:1318Used by:1326
Symbol 1320 BitmapUsed by:1321
Symbol 1321 GraphicUses:1320Used by:1326
Symbol 1322 BitmapUsed by:1323
Symbol 1323 GraphicUses:1322Used by:1326
Symbol 1324 BitmapUsed by:1325
Symbol 1325 GraphicUses:1324Used by:1326
Symbol 1326 MovieClip {mushroom}Uses:1309 1311 1313 1315 1317 1319 1321 1323 1325Used by:1486
Symbol 1327 GraphicUsed by:1328
Symbol 1328 MovieClip {slow}Uses:1327Used by:1486
Symbol 1329 BitmapUsed by:1330
Symbol 1330 GraphicUses:865 1329Used by:1415
Symbol 1331 BitmapUsed by:1332
Symbol 1332 GraphicUses:865 1331Used by:1415
Symbol 1333 BitmapUsed by:1334
Symbol 1334 GraphicUses:865 1333Used by:1415
Symbol 1335 BitmapUsed by:1336
Symbol 1336 GraphicUses:865 1335Used by:1415
Symbol 1337 BitmapUsed by:1338
Symbol 1338 GraphicUses:865 1337Used by:1415
Symbol 1339 BitmapUsed by:1340
Symbol 1340 GraphicUses:865 1339Used by:1415
Symbol 1341 BitmapUsed by:1342
Symbol 1342 GraphicUses:865 1341Used by:1415
Symbol 1343 BitmapUsed by:1344
Symbol 1344 GraphicUses:865 1343Used by:1415
Symbol 1345 BitmapUsed by:1346
Symbol 1346 GraphicUses:865 1345Used by:1415
Symbol 1347 BitmapUsed by:1348
Symbol 1348 GraphicUses:865 1347Used by:1415
Symbol 1349 BitmapUsed by:1350
Symbol 1350 GraphicUses:865 1349Used by:1415
Symbol 1351 BitmapUsed by:1352
Symbol 1352 GraphicUses:865 1351Used by:1415
Symbol 1353 BitmapUsed by:1354
Symbol 1354 GraphicUses:865 1353Used by:1415
Symbol 1355 BitmapUsed by:1356
Symbol 1356 GraphicUses:865 1355Used by:1415
Symbol 1357 BitmapUsed by:1358
Symbol 1358 GraphicUses:865 1357Used by:1415
Symbol 1359 BitmapUsed by:1360
Symbol 1360 GraphicUses:865 1359Used by:1415
Symbol 1361 BitmapUsed by:1362
Symbol 1362 GraphicUses:865 1361Used by:1415
Symbol 1363 BitmapUsed by:1364
Symbol 1364 GraphicUses:865 1363Used by:1415
Symbol 1365 BitmapUsed by:1366
Symbol 1366 GraphicUses:865 1365Used by:1415
Symbol 1367 BitmapUsed by:1368
Symbol 1368 GraphicUses:865 1367Used by:1415
Symbol 1369 BitmapUsed by:1370
Symbol 1370 GraphicUses:865 1369Used by:1415
Symbol 1371 BitmapUsed by:1372
Symbol 1372 GraphicUses:865 1371Used by:1415
Symbol 1373 BitmapUsed by:1374
Symbol 1374 GraphicUses:865 1373Used by:1415
Symbol 1375 BitmapUsed by:1376
Symbol 1376 GraphicUses:865 1375Used by:1415
Symbol 1377 BitmapUsed by:1378
Symbol 1378 GraphicUses:865 1377Used by:1415
Symbol 1379 BitmapUsed by:1380
Symbol 1380 GraphicUses:865 1379Used by:1415
Symbol 1381 BitmapUsed by:1382
Symbol 1382 GraphicUses:865 1381Used by:1415
Symbol 1383 BitmapUsed by:1384
Symbol 1384 GraphicUses:865 1383Used by:1415
Symbol 1385 BitmapUsed by:1386
Symbol 1386 GraphicUses:865 1385Used by:1415
Symbol 1387 BitmapUsed by:1388
Symbol 1388 GraphicUses:865 1387Used by:1415
Symbol 1389 BitmapUsed by:1390
Symbol 1390 GraphicUses:865 1389Used by:1415
Symbol 1391 BitmapUsed by:1392
Symbol 1392 GraphicUses:865 1391Used by:1415
Symbol 1393 BitmapUsed by:1394
Symbol 1394 GraphicUses:865 1393Used by:1415
Symbol 1395 BitmapUsed by:1396
Symbol 1396 GraphicUses:865 1395Used by:1415
Symbol 1397 BitmapUsed by:1398
Symbol 1398 GraphicUses:322 1397Used by:1415
Symbol 1399 BitmapUsed by:1400
Symbol 1400 GraphicUses:322 1399Used by:1415
Symbol 1401 BitmapUsed by:1402
Symbol 1402 GraphicUses:322 1401Used by:1415
Symbol 1403 BitmapUsed by:1404
Symbol 1404 GraphicUses:322 1403Used by:1415
Symbol 1405 BitmapUsed by:1406
Symbol 1406 GraphicUses:322 1405Used by:1415
Symbol 1407 BitmapUsed by:1408
Symbol 1408 GraphicUses:322 1407Used by:1415
Symbol 1409 BitmapUsed by:1410
Symbol 1410 GraphicUses:322 1409Used by:1415
Symbol 1411 BitmapUsed by:1412
Symbol 1412 GraphicUses:322 1411Used by:1415
Symbol 1413 BitmapUsed by:1414
Symbol 1414 GraphicUses:1413Used by:1415
Symbol 1415 MovieClip {baddy_snail}Uses:1330 1332 1334 1336 1338 1340 1342 1344 1346 1348 1350 1352 1354 1356 1358 1360 1362 1364 1366 1368 1370 1372 1374 1376 1378 1380 1382 1384 1386 1388 1390 1392 1394 1396 1398 1400 1402 1404 1406 1408 1410 1412 1414Used by:1486
Symbol 1416 BitmapUsed by:1417
Symbol 1417 GraphicUses:1416Used by:1448
Symbol 1418 BitmapUsed by:1419
Symbol 1419 GraphicUses:1418Used by:1448
Symbol 1420 BitmapUsed by:1421
Symbol 1421 GraphicUses:1420Used by:1448
Symbol 1422 BitmapUsed by:1423
Symbol 1423 GraphicUses:1422Used by:1448
Symbol 1424 BitmapUsed by:1425
Symbol 1425 GraphicUses:1424Used by:1448
Symbol 1426 BitmapUsed by:1427
Symbol 1427 GraphicUses:1426Used by:1448
Symbol 1428 BitmapUsed by:1429
Symbol 1429 GraphicUses:1428Used by:1448
Symbol 1430 BitmapUsed by:1431
Symbol 1431 GraphicUses:1430Used by:1448
Symbol 1432 BitmapUsed by:1433
Symbol 1433 GraphicUses:1432Used by:1448
Symbol 1434 BitmapUsed by:1435
Symbol 1435 GraphicUses:1434Used by:1448
Symbol 1436 BitmapUsed by:1437
Symbol 1437 GraphicUses:1436Used by:1448
Symbol 1438 BitmapUsed by:1439
Symbol 1439 GraphicUses:1438Used by:1448
Symbol 1440 BitmapUsed by:1441
Symbol 1441 GraphicUses:1440Used by:1448
Symbol 1442 BitmapUsed by:1443
Symbol 1443 GraphicUses:1442Used by:1448
Symbol 1444 BitmapUsed by:1445
Symbol 1445 GraphicUses:1444Used by:1448
Symbol 1446 BitmapUsed by:1447
Symbol 1447 GraphicUses:1446Used by:1448
Symbol 1448 MovieClip {baddy_spider}Uses:1417 1419 1421 1423 1425 1427 1429 1431 1433 1435 1437 1439 1441 1443 1445 1447Used by:1486
Symbol 1449 BitmapUsed by:1450
Symbol 1450 GraphicUses:1449Used by:1451
Symbol 1451 MovieClip {com.nitrome.crystalmines.ParalaxStalac1}Uses:1450Used by:1486
Symbol 1452 BitmapUsed by:1453
Symbol 1453 GraphicUses:1452Used by:1454
Symbol 1454 MovieClip {com.nitrome.crystalmines.ParalaxStalac2}Uses:1453Used by:1486
Symbol 1455 BitmapUsed by:1456
Symbol 1456 GraphicUses:1455Used by:1457
Symbol 1457 MovieClip {start_end}Uses:1456Used by:1486
Symbol 1458 BitmapUsed by:1459
Symbol 1459 GraphicUses:1458Used by:1460
Symbol 1460 MovieClip {com.nitrome.crystalmines.Tongue}Uses:1459Used by:1486
Symbol 1461 BitmapUsed by:1462
Symbol 1462 GraphicUses:1461Used by:1463
Symbol 1463 MovieClip {com.nitrome.crystalmines.baddy_spider_web}Uses:1462Used by:1486
Symbol 1464 BitmapUsed by:1465
Symbol 1465 GraphicUses:1464Used by:1466
Symbol 1466 MovieClip {crate}Uses:1465Used by:1486
Symbol 1467 BitmapUsed by:1468
Symbol 1468 GraphicUses:1467Used by:1469
Symbol 1469 MovieClipUses:1468Used by:1470
Symbol 1470 MovieClip {Flasher}Uses:1469Used by:1486
Symbol 1471 BitmapUsed by:1472
Symbol 1472 GraphicUses:1471Used by:1473
Symbol 1473 MovieClipUses:1472Used by:1474
Symbol 1474 MovieClip {OrbShield}Uses:1473Used by:1486
Symbol 1475 BitmapUsed by:1476
Symbol 1476 GraphicUses:1475Used by:1479
Symbol 1477 BitmapUsed by:1478
Symbol 1478 GraphicUses:1477Used by:1479
Symbol 1479 MovieClip {StartEnd}Uses:1476 1478Used by:1486
Symbol 1480 TextUses:233Used by:1483
Symbol 1481 BitmapUsed by:1482
Symbol 1482 GraphicUses:1481Used by:1483
Symbol 1483 MovieClip {com.nitrome.util.Lock}Uses:161 1480 1482Used by:1486
Symbol 1484 Sound {GameMusic}Used by:1486
Symbol 1485 Sound {TitleMusic}Used by:1486
Symbol 1486 MovieClip {cave_chaos_fla.linkage_clip_26}Uses:208 215 222 225 228 229 230 231 232 252 255 256 264 265 244 251 271 371 246 275 147 237 376 384 385 373 171 369 388 144 391 394 397 400 403 406 409 410 413 434 450 453 454 455 457 459 462 465 468 471 474 477 480 483 486 489 492 505 530 533 536 539 542 545 547 596 617 620 639 643 656 659 674 677 680 683 686 689 692 695 698 701 704 707 710 713 716 717 720 723 726 729 732 734 736 739 742 745 748 767 796 798 801 926 1024 1028 1041 1112 1119 1122 1124 1127 1130 1133 1136 1138 1140 1181 1228 1267 1270 1273 1276 1279 1282 1285 1288 1291 1294 1297 1300 1303 1306 1307 1326 1328 1415 1448 1451 1454 1457 1460 1463 1466 1470 1474 1479 1483 1484 1485Used by:Timeline
Symbol 1487 BitmapUsed by:1489 1520
Symbol 1488 BitmapUsed by:1489 1519
Symbol 1489 GraphicUses:1487 1488Used by:1614
Symbol 1490 BitmapUsed by:1491
Symbol 1491 GraphicUses:1490Used by:1614
Symbol 1492 BitmapUsed by:1493
Symbol 1493 GraphicUses:1492Used by:1504
Symbol 1494 BitmapUsed by:1495
Symbol 1495 GraphicUses:1494Used by:1504
Symbol 1496 BitmapUsed by:1497
Symbol 1497 GraphicUses:1496Used by:1504
Symbol 1498 BitmapUsed by:1499
Symbol 1499 GraphicUses:1498Used by:1504
Symbol 1500 BitmapUsed by:1501
Symbol 1501 GraphicUses:1500Used by:1504
Symbol 1502 BitmapUsed by:1503
Symbol 1503 GraphicUses:1502Used by:1504
Symbol 1504 MovieClipUses:1493 1495 1497 1499 1501 1503Used by:1614
Symbol 1505 BitmapUsed by:1506
Symbol 1506 GraphicUses:1505Used by:1511
Symbol 1507 BitmapUsed by:1508
Symbol 1508 GraphicUses:1507Used by:1511
Symbol 1509 BitmapUsed by:1510
Symbol 1510 GraphicUses:1509Used by:1511
Symbol 1511 MovieClipUses:1506 1508 1510Used by:1614
Symbol 1512 BitmapUsed by:1513
Symbol 1513 GraphicUses:1512Used by:1518
Symbol 1514 BitmapUsed by:1515
Symbol 1515 GraphicUses:1514Used by:1518
Symbol 1516 BitmapUsed by:1517
Symbol 1517 GraphicUses:1516Used by:1518
Symbol 1518 MovieClipUses:1513 1515 1517Used by:1614
Symbol 1519 GraphicUses:1488Used by:1614
Symbol 1520 GraphicUses:1487Used by:1614
Symbol 1521 BitmapUsed by:1522
Symbol 1522 GraphicUses:1521Used by:1614
Symbol 1523 BitmapUsed by:1524
Symbol 1524 GraphicUses:1523Used by:1614
Symbol 1525 BitmapUsed by:1526 1597
Symbol 1526 GraphicUses:1525Used by:1614
Symbol 1527 BitmapUsed by:1528
Symbol 1528 GraphicUses:1527Used by:1529
Symbol 1529 MovieClipUses:1528Used by:1614
Symbol 1530 BitmapUsed by:1531
Symbol 1531 GraphicUses:1530Used by:1538
Symbol 1532 BitmapUsed by:1533
Symbol 1533 GraphicUses:1532Used by:1538
Symbol 1534 BitmapUsed by:1535
Symbol 1535 GraphicUses:1534Used by:1538
Symbol 1536 BitmapUsed by:1537
Symbol 1537 GraphicUses:1536Used by:1538
Symbol 1538 MovieClipUses:1531 1533 1535 1537Used by:1614
Symbol 1539 BitmapUsed by:1540
Symbol 1540 GraphicUses:1539Used by:1559
Symbol 1541 BitmapUsed by:1542
Symbol 1542 GraphicUses:1541Used by:1559
Symbol 1543 BitmapUsed by:1544
Symbol 1544 GraphicUses:1543Used by:1559
Symbol 1545 BitmapUsed by:1546
Symbol 1546 GraphicUses:1545Used by:1559
Symbol 1547 BitmapUsed by:1548
Symbol 1548 GraphicUses:1547Used by:1559
Symbol 1549 BitmapUsed by:1550
Symbol 1550 GraphicUses:1549Used by:1559
Symbol 1551 BitmapUsed by:1552
Symbol 1552 GraphicUses:1551Used by:1559
Symbol 1553 BitmapUsed by:1554
Symbol 1554 GraphicUses:1553Used by:1559
Symbol 1555 BitmapUsed by:1556
Symbol 1556 GraphicUses:1555Used by:1559
Symbol 1557 BitmapUsed by:1558
Symbol 1558 GraphicUses:1557Used by:1559
Symbol 1559 MovieClipUses:1540 1542 1544 1546 1548 1550 1552 1554 1556 1558Used by:1614
Symbol 1560 BitmapUsed by:1561
Symbol 1561 GraphicUses:1560Used by:1574
Symbol 1562 BitmapUsed by:1563
Symbol 1563 GraphicUses:1562Used by:1574
Symbol 1564 BitmapUsed by:1565
Symbol 1565 GraphicUses:1564Used by:1574
Symbol 1566 BitmapUsed by:1567
Symbol 1567 GraphicUses:1566Used by:1574
Symbol 1568 BitmapUsed by:1569
Symbol 1569 GraphicUses:1568Used by:1574
Symbol 1570 BitmapUsed by:1571
Symbol 1571 GraphicUses:1570Used by:1574
Symbol 1572 BitmapUsed by:1573
Symbol 1573 GraphicUses:1572Used by:1574
Symbol 1574 MovieClipUses:1561 1563 1565 1567 1569 1571 1573Used by:1614
Symbol 1575 BitmapUsed by:1576
Symbol 1576 GraphicUses:1575Used by:1598
Symbol 1577 BitmapUsed by:1578
Symbol 1578 GraphicUses:1577Used by:1598
Symbol 1579 BitmapUsed by:1580
Symbol 1580 GraphicUses:1579Used by:1598
Symbol 1581 BitmapUsed by:1582
Symbol 1582 GraphicUses:1581Used by:1598
Symbol 1583 BitmapUsed by:1584
Symbol 1584 GraphicUses:1583Used by:1598
Symbol 1585 BitmapUsed by:1586
Symbol 1586 GraphicUses:1585Used by:1598
Symbol 1587 BitmapUsed by:1588
Symbol 1588 GraphicUses:1587Used by:1598
Symbol 1589 BitmapUsed by:1590
Symbol 1590 GraphicUses:1589Used by:1598
Symbol 1591 BitmapUsed by:1592
Symbol 1592 GraphicUses:1591Used by:1598
Symbol 1593 BitmapUsed by:1594
Symbol 1594 GraphicUses:1593Used by:1598
Symbol 1595 BitmapUsed by:1596
Symbol 1596 GraphicUses:1595Used by:1598
Symbol 1597 GraphicUses:1525Used by:1598
Symbol 1598 MovieClipUses:1576 1578 1580 1582 1584 1586 1588 1590 1592 1594 1596 1597Used by:1614
Symbol 1599 BitmapUsed by:1600
Symbol 1600 GraphicUses:1599Used by:1613
Symbol 1601 BitmapUsed by:1602
Symbol 1602 GraphicUses:1601Used by:1613
Symbol 1603 BitmapUsed by:1604
Symbol 1604 GraphicUses:1603Used by:1613
Symbol 1605 BitmapUsed by:1606
Symbol 1606 GraphicUses:1605Used by:1613
Symbol 1607 BitmapUsed by:1608
Symbol 1608 GraphicUses:1607Used by:1613
Symbol 1609 BitmapUsed by:1610
Symbol 1610 GraphicUses:1609Used by:1613
Symbol 1611 BitmapUsed by:1612
Symbol 1612 GraphicUses:1611Used by:1613
Symbol 1613 MovieClipUses:1600 1602 1604 1606 1608 1610 1612Used by:1614
Symbol 1614 MovieClip {cave_chaos_fla.nitrome_intro_186}Uses:1489 1491 1504 1511 1518 1519 1520 1522 1524 1526 1529 1538 1559 1574 1598 1613Used by:Timeline
Symbol 1615 BitmapUsed by:1616
Symbol 1616 GraphicUses:1615Used by:Timeline
Symbol 1617 BitmapUsed by:1618
Symbol 1618 GraphicUses:1617Used by:Timeline
Symbol 1620 MovieClip {cave_chaos_fla.Y8smalllogo_196}Used by:Timeline
Symbol 1622 MovieClip {cave_chaos_fla.IDNetsmalllogo_197}Used by:Timeline
Symbol 1623 GraphicUses:273Used by:Timeline
Symbol 1624 TextUses:233Used by:Timeline
Symbol 1625 TextUses:233Used by:Timeline
Symbol 1626 TextUses:233Used by:Timeline
Symbol 1627 TextUses:233Used by:Timeline
Symbol 1628 TextUses:233Used by:Timeline
Symbol 1629 BitmapUsed by:1630
Symbol 1630 GraphicUses:1629Used by:1648
Symbol 1631 TextUses:233Used by:1648
Symbol 1632 TextUses:233Used by:1648
Symbol 1633 TextUses:233Used by:1648
Symbol 1634 TextUses:233Used by:1648
Symbol 1635 TextUses:233Used by:1648
Symbol 1636 FontUsed by:1637
Symbol 1637 TextUses:1636Used by:1648
Symbol 1638 TextUses:233Used by:1648
Symbol 1639 BitmapUsed by:1640
Symbol 1640 GraphicUses:1639Used by:1648
Symbol 1641 TextUses:233Used by:1648
Symbol 1642 TextUses:233Used by:1648
Symbol 1643 TextUses:233Used by:1648
Symbol 1644 TextUses:233Used by:1648
Symbol 1645 TextUses:233Used by:1648
Symbol 1646 TextUses:233Used by:1648
Symbol 1647 TextUses:233Used by:1648
Symbol 1648 MovieClip {cave_chaos_fla.Symbol2_198}Uses:1630 410 1631 1632 1633 1634 1635 1637 1638 1640 454 1641 1642 1643 1644 1645 1646 1647Used by:Timeline
Symbol 1649 BitmapUsed by:1650
Symbol 1650 GraphicUses:1649Used by:Timeline
Symbol 1651 BitmapUsed by:1652
Symbol 1652 GraphicUses:1651Used by:1717
Symbol 1653 BitmapUsed by:1654
Symbol 1654 GraphicUses:1653Used by:1661
Symbol 1655 BitmapUsed by:1656
Symbol 1656 GraphicUses:1655Used by:1661
Symbol 1657 BitmapUsed by:1658
Symbol 1658 GraphicUses:1657Used by:1661
Symbol 1659 BitmapUsed by:1660
Symbol 1660 GraphicUses:1659Used by:1661
Symbol 1661 MovieClipUses:1654 1656 1658 1660Used by:1717
Symbol 1662 BitmapUsed by:1663
Symbol 1663 GraphicUses:1662Used by:1686
Symbol 1664 BitmapUsed by:1665
Symbol 1665 GraphicUses:1664Used by:1686
Symbol 1666 BitmapUsed by:1667
Symbol 1667 GraphicUses:1666Used by:1686
Symbol 1668 BitmapUsed by:1669
Symbol 1669 GraphicUses:1668Used by:1686
Symbol 1670 BitmapUsed by:1671
Symbol 1671 GraphicUses:1670Used by:1686
Symbol 1672 BitmapUsed by:1673
Symbol 1673 GraphicUses:1672Used by:1686
Symbol 1674 BitmapUsed by:1675
Symbol 1675 GraphicUses:1674Used by:1686
Symbol 1676 BitmapUsed by:1677
Symbol 1677 GraphicUses:1676Used by:1686
Symbol 1678 BitmapUsed by:1679
Symbol 1679 GraphicUses:1678Used by:1686
Symbol 1680 BitmapUsed by:1681
Symbol 1681 GraphicUses:1680Used by:1686
Symbol 1682 BitmapUsed by:1683
Symbol 1683 GraphicUses:1682Used by:1686
Symbol 1684 BitmapUsed by:1685
Symbol 1685 GraphicUses:1684Used by:1686
Symbol 1686 MovieClipUses:1663 1665 1667 1669 1671 1673 1675 1677 1679 1681 1683 1685Used by:1717
Symbol 1687 BitmapUsed by:1688
Symbol 1688 GraphicUses:1687Used by:1695
Symbol 1689 BitmapUsed by:1690
Symbol 1690 GraphicUses:1689Used by:1695
Symbol 1691 BitmapUsed by:1692
Symbol 1692 GraphicUses:1691Used by:1695
Symbol 1693 BitmapUsed by:1694
Symbol 1694 GraphicUses:1693Used by:1695
Symbol 1695 MovieClipUses:1688 1690 1692 1694Used by:1717
Symbol 1696 BitmapUsed by:1697
Symbol 1697 GraphicUses:1696Used by:1716
Symbol 1698 BitmapUsed by:1699
Symbol 1699 GraphicUses:1698Used by:1716
Symbol 1700 BitmapUsed by:1701
Symbol 1701 GraphicUses:1700Used by:1716
Symbol 1702 BitmapUsed by:1703
Symbol 1703 GraphicUses:1702Used by:1716
Symbol 1704 BitmapUsed by:1705
Symbol 1705 GraphicUses:1704Used by:1716
Symbol 1706 BitmapUsed by:1707
Symbol 1707 GraphicUses:1706Used by:1716
Symbol 1708 BitmapUsed by:1709
Symbol 1709 GraphicUses:1708Used by:1716
Symbol 1710 BitmapUsed by:1711
Symbol 1711 GraphicUses:1710Used by:1716
Symbol 1712 BitmapUsed by:1713
Symbol 1713 GraphicUses:1712Used by:1716
Symbol 1714 BitmapUsed by:1715
Symbol 1715 GraphicUses:1714Used by:1716
Symbol 1716 MovieClipUses:1697 1699 1701 1703 1705 1707 1709 1711 1713 1715Used by:1717
Symbol 1717 MovieClip {cave_chaos_fla.outro_anim_199}Uses:1652 1661 1686 1695 1716 306 228Used by:Timeline
Symbol 1718 BitmapUsed by:1719
Symbol 1719 GraphicUses:1718Used by:1776
Symbol 1720 BitmapUsed by:1721
Symbol 1721 GraphicUses:1720Used by:1776
Symbol 1722 BitmapUsed by:1723
Symbol 1723 GraphicUses:1722Used by:1776
Symbol 1724 BitmapUsed by:1725
Symbol 1725 GraphicUses:1724Used by:1776
Symbol 1726 BitmapUsed by:1727
Symbol 1727 GraphicUses:1726Used by:1776
Symbol 1728 BitmapUsed by:1729
Symbol 1729 GraphicUses:1728Used by:1748
Symbol 1730 BitmapUsed by:1731
Symbol 1731 GraphicUses:1730Used by:1748
Symbol 1732 BitmapUsed by:1733
Symbol 1733 GraphicUses:1732Used by:1748
Symbol 1734 BitmapUsed by:1735
Symbol 1735 GraphicUses:1734Used by:1748
Symbol 1736 BitmapUsed by:1737
Symbol 1737 GraphicUses:1736Used by:1748
Symbol 1738 BitmapUsed by:1739
Symbol 1739 GraphicUses:1738Used by:1748
Symbol 1740 BitmapUsed by:1741
Symbol 1741 GraphicUses:1740Used by:1748
Symbol 1742 BitmapUsed by:1743
Symbol 1743 GraphicUses:1742Used by:1748
Symbol 1744 BitmapUsed by:1745
Symbol 1745 GraphicUses:1744Used by:1748
Symbol 1746 BitmapUsed by:1747
Symbol 1747 GraphicUses:1746Used by:1748
Symbol 1748 MovieClipUses:1729 1731 1733 1735 1737 1739 1741 1743 1745 1747Used by:1776
Symbol 1749 SoundUsed by:1776
Symbol 1750 BitmapUsed by:1751
Symbol 1751 GraphicUses:1750Used by:1774
Symbol 1752 BitmapUsed by:1753
Symbol 1753 GraphicUses:1752Used by:1774
Symbol 1754 BitmapUsed by:1755
Symbol 1755 GraphicUses:1754Used by:1774
Symbol 1756 BitmapUsed by:1757
Symbol 1757 GraphicUses:1756Used by:1774
Symbol 1758 BitmapUsed by:1759
Symbol 1759 GraphicUses:1758Used by:1774
Symbol 1760 BitmapUsed by:1761
Symbol 1761 GraphicUses:1760Used by:1774
Symbol 1762 BitmapUsed by:1763
Symbol 1763 GraphicUses:1762Used by:1774
Symbol 1764 BitmapUsed by:1765
Symbol 1765 GraphicUses:1764Used by:1774
Symbol 1766 BitmapUsed by:1767
Symbol 1767 GraphicUses:1766Used by:1774
Symbol 1768 BitmapUsed by:1769
Symbol 1769 GraphicUses:1768Used by:1774
Symbol 1770 BitmapUsed by:1771
Symbol 1771 GraphicUses:1770Used by:1774
Symbol 1772 BitmapUsed by:1773
Symbol 1773 GraphicUses:1772Used by:1774
Symbol 1774 MovieClipUses:1751 1753 1755 1757 1759 1761 1763 1765 1767 1769 1771 1773Used by:1776
Symbol 1775 SoundUsed by:1776
Symbol 1776 MovieClip {cave_chaos_fla.intro_anim_204}Uses:1719 1721 1723 1725 1727 1748 424 1749 1774 1775Used by:Timeline

Instance Names

"tt"Frame 2Symbol 171 MovieClip {com.nitrome.game.TransitionTween}
"sfx"Frame 5Symbol 206 MovieClip {com.nitrome.game.SoundManager}
"__id0_"Frame 50Symbol 144 MovieClip {CrystalFont}
"__id1_"Frame 50Symbol 144 MovieClip {CrystalFont}
"__id2_"Frame 50Symbol 144 MovieClip {CrystalFont}
"__id3_"Frame 50Symbol 144 MovieClip {CrystalFont}
"instructions"Frame 60Symbol 1648 MovieClip {cave_chaos_fla.Symbol2_198}
"__id4_"Frame 60Symbol 144 MovieClip {CrystalFont}
"__id5_"Frame 70Symbol 144 MovieClip {CrystalFont}
"score_submit_panel"Frame 80Symbol 376 MovieClip {ScoreSubmitPanel}
"__id6_"Frame 90Symbol 144 MovieClip {CrystalFont}
"back_choose_level"Frame 100Symbol 228 MovieClip {com.nitrome.buttons.BackButton}
"level_1"Frame 100Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton}
"level_2"Frame 100Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton}
"level_3"Frame 100Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton}
"level_4"Frame 100Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton}
"level_5"Frame 100Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton}
"level_6"Frame 100Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton}
"level_7"Frame 100Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton}
"level_8"Frame 100Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton}
"level_9"Frame 100Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton}
"level_10"Frame 100Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton}
"level_11"Frame 100Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton}
"level_12"Frame 100Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton}
"level_13"Frame 100Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton}
"level_14"Frame 100Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton}
"level_15"Frame 100Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton}
"level_16"Frame 100Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton}
"level_17"Frame 100Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton}
"level_18"Frame 100Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton}
"level_19"Frame 100Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton}
"level_20"Frame 100Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton}
"__id7_"Frame 100Symbol 144 MovieClip {CrystalFont}
"outro_anim"Frame 110Symbol 1717 MovieClip {cave_chaos_fla.outro_anim_199}
"intro_anim"Frame 120Symbol 1776 MovieClip {cave_chaos_fla.intro_anim_204}
"pause_button"Frame 130Symbol 271 MovieClip {com.nitrome.buttons.PauseButton}
"pop_up"Frame 130Symbol 371 MovieClip {com.nitrome.game.PopUpHolder}
"__id30_"Symbol 147 MovieClip {com.nitrome.buttons.QuitPauseButton} Frame 1Symbol 144 MovieClip {CrystalFont}
"ad_bar_background"Symbol 159 MovieClip Frame 1Symbol 156 MovieClip
"ad_bar"Symbol 159 MovieClip Frame 1Symbol 156 MovieClip
"ad_bar_outline"Symbol 159 MovieClip Frame 1Symbol 158 MovieClip
"ad_loading_text"Symbol 167 MovieClip {cave_chaos_fla.Y8Preloaderas3_1} Frame 1Symbol 154 MovieClip
"ad_loading_bar"Symbol 167 MovieClip {cave_chaos_fla.Y8Preloaderas3_1} Frame 1Symbol 159 MovieClip
"nitrome"Symbol 206 MovieClip {com.nitrome.game.SoundManager} Frame 1Symbol 173 MovieClip {cave_chaos_fla.sfx_nitrome_10}
"miniclip1"Symbol 206 MovieClip {com.nitrome.game.SoundManager} Frame 1Symbol 175 MovieClip {cave_chaos_fla.sfx_miniclip1_11}
"miniclip2"Symbol 206 MovieClip {com.nitrome.game.SoundManager} Frame 1Symbol 177 MovieClip {cave_chaos_fla.sfx_miniclip2_12}
"jumpSnd"Symbol 206 MovieClip {com.nitrome.game.SoundManager} Frame 1Symbol 179 MovieClip {cave_chaos_fla.jumpSnd_13}
"mushroomJump"Symbol 206 MovieClip {com.nitrome.game.SoundManager} Frame 1Symbol 181 MovieClip {cave_chaos_fla.mushroomJump_14}
"crystalPickUpBig"Symbol 206 MovieClip {com.nitrome.game.SoundManager} Frame 1Symbol 183 MovieClip {cave_chaos_fla.crystalPickUpBig_15}
"crystalPickUpSmal"Symbol 206 MovieClip {com.nitrome.game.SoundManager} Frame 1Symbol 185 MovieClip {cave_chaos_fla.crystalPickUpSmal_16}
"explode"Symbol 206 MovieClip {com.nitrome.game.SoundManager} Frame 1Symbol 187 MovieClip {cave_chaos_fla.explode_17}
"pickUpExplode"Symbol 206 MovieClip {com.nitrome.game.SoundManager} Frame 1Symbol 189 MovieClip {cave_chaos_fla.pickUpExplode_18}
"powerUp"Symbol 206 MovieClip {com.nitrome.game.SoundManager} Frame 1Symbol 191 MovieClip {cave_chaos_fla.powerUp_19}
"lightOn"Symbol 206 MovieClip {com.nitrome.game.SoundManager} Frame 1Symbol 193 MovieClip {cave_chaos_fla.lightOn_20}
"shorterBats"Symbol 206 MovieClip {com.nitrome.game.SoundManager} Frame 1Symbol 195 MovieClip {cave_chaos_fla.shorterBats_21}
"dieSnd"Symbol 206 MovieClip {com.nitrome.game.SoundManager} Frame 1Symbol 197 MovieClip {cave_chaos_fla.dieSnd_22}
"enemyAttackSnd"Symbol 206 MovieClip {com.nitrome.game.SoundManager} Frame 1Symbol 199 MovieClip {cave_chaos_fla.enemyAttackSnd_23}
"hitSnd"Symbol 206 MovieClip {com.nitrome.game.SoundManager} Frame 1Symbol 201 MovieClip {cave_chaos_fla.hitSnd_24}
"endSnd"Symbol 206 MovieClip {com.nitrome.game.SoundManager} Frame 1Symbol 203 MovieClip {cave_chaos_fla.endSnd_25}
"__id9_"Symbol 222 MovieClip {com.nitrome.buttons.ScoresButton} Frame 1Symbol 144 MovieClip {CrystalFont}
"__id10_"Symbol 225 MovieClip {com.nitrome.buttons.CreditsButton} Frame 1Symbol 144 MovieClip {CrystalFont}
"__id11_"Symbol 228 MovieClip {com.nitrome.buttons.BackButton} Frame 1Symbol 144 MovieClip {CrystalFont}
"__id12_"Symbol 229 MovieClip {com.nitrome.buttons.HelpButton} Frame 1Symbol 144 MovieClip {CrystalFont}
"__id13_"Symbol 230 MovieClip {ClearButton} Frame 1Symbol 144 MovieClip {CrystalFont}
"__id14_"Symbol 231 MovieClip {com.nitrome.buttons.ContinueEndButton} Frame 1Symbol 144 MovieClip {CrystalFont}
"__id15_"Symbol 232 MovieClip {com.nitrome.buttons.ContinuePauseButton} Frame 1Symbol 144 MovieClip {CrystalFont}
"_rank_text"Symbol 237 MovieClip {ScoreLine} Frame 1Symbol 234 EditableText
"_name_text"Symbol 237 MovieClip {ScoreLine} Frame 1Symbol 235 EditableText
"_score_text"Symbol 237 MovieClip {ScoreLine} Frame 1Symbol 236 EditableText
"_score_line_1"Symbol 252 MovieClip {HighScoreBoard} Frame 1Symbol 237 MovieClip {ScoreLine}
"_score_line_2"Symbol 252 MovieClip {HighScoreBoard} Frame 1Symbol 237 MovieClip {ScoreLine}
"_score_line_3"Symbol 252 MovieClip {HighScoreBoard} Frame 1Symbol 237 MovieClip {ScoreLine}
"_score_line_4"Symbol 252 MovieClip {HighScoreBoard} Frame 1Symbol 237 MovieClip {ScoreLine}
"_score_line_5"Symbol 252 MovieClip {HighScoreBoard} Frame 1Symbol 237 MovieClip {ScoreLine}
"_score_line_6"Symbol 252 MovieClip {HighScoreBoard} Frame 1Symbol 237 MovieClip {ScoreLine}
"_score_line_7"Symbol 252 MovieClip {HighScoreBoard} Frame 1Symbol 237 MovieClip {ScoreLine}
"_score_line_8"Symbol 252 MovieClip {HighScoreBoard} Frame 1Symbol 237 MovieClip {ScoreLine}
"_score_line_9"Symbol 252 MovieClip {HighScoreBoard} Frame 1Symbol 237 MovieClip {ScoreLine}
"_score_line_10"Symbol 252 MovieClip {HighScoreBoard} Frame 1Symbol 237 MovieClip {ScoreLine}
"_next_arrow"Symbol 252 MovieClip {HighScoreBoard} Frame 1Symbol 244 MovieClip {NextArrow}
"_prev_arrow"Symbol 252 MovieClip {HighScoreBoard} Frame 1Symbol 246 MovieClip {PrevArrow}
"_letter"Symbol 255 MovieClip {LetterButton} Frame 1Symbol 144 MovieClip {CrystalFont}
"level_text"Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton} Frame 1Symbol 144 MovieClip {CrystalFont}
"__id16_"Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton} Frame 20Symbol 144 MovieClip {CrystalFont}
"__id17_"Symbol 265 MovieClip {com.nitrome.buttons.NextLevelButton} Frame 1Symbol 144 MovieClip {CrystalFont}
"__id28_"Symbol 275 MovieClip {com.nitrome.buttons.QuitButton} Frame 1Symbol 144 MovieClip {CrystalFont}
"__id29_"Symbol 369 MovieClip {com.nitrome.buttons.TryAgainButton} Frame 1Symbol 144 MovieClip {CrystalFont}
"nextbutton"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 10Symbol 265 MovieClip {com.nitrome.buttons.NextLevelButton}
"__id18_"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 10Symbol 144 MovieClip {CrystalFont}
"score_text"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 10Symbol 144 MovieClip {CrystalFont}
"nextbutton"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 23Symbol 265 MovieClip {com.nitrome.buttons.NextLevelButton}
"__id19_"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 23Symbol 144 MovieClip {CrystalFont}
"__id20_"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 23Symbol 144 MovieClip {CrystalFont}
"p2_anim"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 23Symbol 321 MovieClip
"player1wins"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 23Symbol 144 MovieClip {CrystalFont}
"player2wins"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 23Symbol 144 MovieClip {CrystalFont}
"score_text"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 23Symbol 144 MovieClip {CrystalFont}
"nextbutton"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 33Symbol 265 MovieClip {com.nitrome.buttons.NextLevelButton}
"__id21_"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 33Symbol 144 MovieClip {CrystalFont}
"p2_anim"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 33Symbol 353 MovieClip
"__id22_"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 33Symbol 144 MovieClip {CrystalFont}
"player1wins"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 33Symbol 144 MovieClip {CrystalFont}
"player2wins"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 33Symbol 144 MovieClip {CrystalFont}
"score_text"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 33Symbol 144 MovieClip {CrystalFont}
"nextbutton"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 43Symbol 265 MovieClip {com.nitrome.buttons.NextLevelButton}
"__id23_"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 43Symbol 144 MovieClip {CrystalFont}
"p2_anim"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 43Symbol 353 MovieClip
"__id24_"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 43Symbol 144 MovieClip {CrystalFont}
"player1wins"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 43Symbol 144 MovieClip {CrystalFont}
"player2wins"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 43Symbol 144 MovieClip {CrystalFont}
"score_text"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 43Symbol 144 MovieClip {CrystalFont}
"tryagainbutton"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 55Symbol 369 MovieClip {com.nitrome.buttons.TryAgainButton}
"__id25_"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 55Symbol 144 MovieClip {CrystalFont}
"score_text"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 55Symbol 144 MovieClip {CrystalFont}
"quit_button"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 69Symbol 147 MovieClip {com.nitrome.buttons.QuitPauseButton}
"__id26_"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 69Symbol 144 MovieClip {CrystalFont}
"p2_anim"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 69Symbol 321 MovieClip
"continueendbutton"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 82Symbol 231 MovieClip {com.nitrome.buttons.ContinueEndButton}
"__id27_"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 82Symbol 144 MovieClip {CrystalFont}
"p2_anim"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 82Symbol 353 MovieClip
"popup_clip"Symbol 371 MovieClip {com.nitrome.game.PopUpHolder} Frame 2Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47}
"__id32_"Symbol 373 MovieClip {SubmitButton} Frame 1Symbol 144 MovieClip {CrystalFont}
"_submit_button"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 373 MovieClip {SubmitButton}
"_clear_button"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 230 MovieClip {ClearButton}
"A"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"B"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"C"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"D"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"E"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"F"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"G"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"H"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"I"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"J"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"K"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"L"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"M"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"N"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"O"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"P"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"Q"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"R"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"S"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"T"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"U"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"V"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"W"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"X"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"Y"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"Z"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 255 MovieClip {LetterButton}
"_score_text"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 374 EditableText
"__id31_"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 144 MovieClip {CrystalFont}
"_name_text"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1Symbol 375 EditableText
"__id33_"Symbol 385 MovieClip {com.nitrome.buttons.SubmitScoreButton} Frame 1Symbol 144 MovieClip {CrystalFont}
"__id34_"Symbol 434 MovieClip {com.nitrome.buttons.OnePlayerButton} Frame 1Symbol 144 MovieClip {CrystalFont}
"__id35_"Symbol 450 MovieClip {com.nitrome.buttons.TwoPlayerButton} Frame 1Symbol 144 MovieClip {CrystalFont}
"__id36_"Symbol 457 MovieClip {com.nitrome.buttons.SkipIntroButton} Frame 1Symbol 144 MovieClip {CrystalFont}
"__id37_"Symbol 1028 MovieClip {instructions_board} Frame 1Symbol 144 MovieClip {CrystalFont}
"score"Symbol 1138 MovieClip {Player1Score} Frame 1Symbol 1137 EditableText
"score"Symbol 1140 MovieClip {Player2Score} Frame 1Symbol 1139 EditableText

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.

Labels

"preloader"Frame 2
"linkage"Frame 10
"miniclip"Frame 20
"nitrome"Frame 30
"title_screen"Frame 40
"credits"Frame 50
"help"Frame 60
"scores"Frame 70
"submit_score"Frame 80
"choose_players"Frame 90
"level_select"Frame 100
"congrats"Frame 110
"intro"Frame 120
"game"Frame 130
"up"Symbol 147 MovieClip {com.nitrome.buttons.QuitPauseButton} Frame 1
"over"Symbol 147 MovieClip {com.nitrome.buttons.QuitPauseButton} Frame 10
"up"Symbol 215 MovieClip {com.nitrome.buttons.PlayButton} Frame 1
"over"Symbol 215 MovieClip {com.nitrome.buttons.PlayButton} Frame 10
"up"Symbol 222 MovieClip {com.nitrome.buttons.ScoresButton} Frame 1
"over"Symbol 222 MovieClip {com.nitrome.buttons.ScoresButton} Frame 10
"up"Symbol 225 MovieClip {com.nitrome.buttons.CreditsButton} Frame 1
"over"Symbol 225 MovieClip {com.nitrome.buttons.CreditsButton} Frame 10
"up"Symbol 228 MovieClip {com.nitrome.buttons.BackButton} Frame 1
"over"Symbol 228 MovieClip {com.nitrome.buttons.BackButton} Frame 10
"up"Symbol 229 MovieClip {com.nitrome.buttons.HelpButton} Frame 1
"over"Symbol 229 MovieClip {com.nitrome.buttons.HelpButton} Frame 10
"up"Symbol 230 MovieClip {ClearButton} Frame 1
"over"Symbol 230 MovieClip {ClearButton} Frame 10
"up"Symbol 231 MovieClip {com.nitrome.buttons.ContinueEndButton} Frame 1
"over"Symbol 231 MovieClip {com.nitrome.buttons.ContinueEndButton} Frame 10
"up"Symbol 232 MovieClip {com.nitrome.buttons.ContinuePauseButton} Frame 1
"over"Symbol 232 MovieClip {com.nitrome.buttons.ContinuePauseButton} Frame 10
"up"Symbol 244 MovieClip {NextArrow} Frame 1
"over"Symbol 244 MovieClip {NextArrow} Frame 10
"up"Symbol 246 MovieClip {PrevArrow} Frame 1
"over"Symbol 246 MovieClip {PrevArrow} Frame 10
"on"Symbol 252 MovieClip {HighScoreBoard} Frame 1
"off"Symbol 252 MovieClip {HighScoreBoard} Frame 11
"up"Symbol 255 MovieClip {LetterButton} Frame 1
"over"Symbol 255 MovieClip {LetterButton} Frame 10
"up"Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton} Frame 1
"over"Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton} Frame 10
"locked"Symbol 256 MovieClip {com.nitrome.buttons.LevelSelectButton} Frame 20
"_on_up"Symbol 264 MovieClip {com.nitrome.game.MusicToggle} Frame 1
"_on_over"Symbol 264 MovieClip {com.nitrome.game.MusicToggle} Frame 6
"_off_up"Symbol 264 MovieClip {com.nitrome.game.MusicToggle} Frame 11
"_off_over"Symbol 264 MovieClip {com.nitrome.game.MusicToggle} Frame 16
"up"Symbol 265 MovieClip {com.nitrome.buttons.NextLevelButton} Frame 1
"over"Symbol 265 MovieClip {com.nitrome.buttons.NextLevelButton} Frame 10
"up"Symbol 271 MovieClip {com.nitrome.buttons.PauseButton} Frame 1
"over"Symbol 271 MovieClip {com.nitrome.buttons.PauseButton} Frame 2
"up"Symbol 275 MovieClip {com.nitrome.buttons.QuitButton} Frame 1
"over"Symbol 275 MovieClip {com.nitrome.buttons.QuitButton} Frame 10
"up"Symbol 369 MovieClip {com.nitrome.buttons.TryAgainButton} Frame 1
"over"Symbol 369 MovieClip {com.nitrome.buttons.TryAgainButton} Frame 10
"level_complete"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 10
"1p_win"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 23
"2p_win"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 33
"draw"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 43
"game_over"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 55
"game_paused"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 69
"game_complete"Symbol 370 MovieClip {cave_chaos_fla.popup_clip_47} Frame 82
"in"Symbol 371 MovieClip {com.nitrome.game.PopUpHolder} Frame 2
"out"Symbol 371 MovieClip {com.nitrome.game.PopUpHolder} Frame 31
"up"Symbol 373 MovieClip {SubmitButton} Frame 1
"over"Symbol 373 MovieClip {SubmitButton} Frame 10
"on"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 1
"off"Symbol 376 MovieClip {ScoreSubmitPanel} Frame 11
"_on_up"Symbol 384 MovieClip {com.nitrome.game.FxToggle} Frame 1
"_on_over"Symbol 384 MovieClip {com.nitrome.game.FxToggle} Frame 6
"_off_up"Symbol 384 MovieClip {com.nitrome.game.FxToggle} Frame 11
"_off_over"Symbol 384 MovieClip {com.nitrome.game.FxToggle} Frame 16
"up"Symbol 385 MovieClip {com.nitrome.buttons.SubmitScoreButton} Frame 1
"over"Symbol 385 MovieClip {com.nitrome.buttons.SubmitScoreButton} Frame 10
"up"Symbol 410 MovieClip {com.nitrome.buttons.NextButton} Frame 1
"over"Symbol 410 MovieClip {com.nitrome.buttons.NextButton} Frame 10
"up"Symbol 434 MovieClip {com.nitrome.buttons.OnePlayerButton} Frame 1
"over"Symbol 434 MovieClip {com.nitrome.buttons.OnePlayerButton} Frame 10
"up"Symbol 450 MovieClip {com.nitrome.buttons.TwoPlayerButton} Frame 1
"over"Symbol 450 MovieClip {com.nitrome.buttons.TwoPlayerButton} Frame 10
"up"Symbol 454 MovieClip {com.nitrome.buttons.PreviousButton} Frame 1
"over"Symbol 454 MovieClip {com.nitrome.buttons.PreviousButton} Frame 10
"up"Symbol 457 MovieClip {com.nitrome.buttons.SkipIntroButton} Frame 1
"over"Symbol 457 MovieClip {com.nitrome.buttons.SkipIntroButton} Frame 10
"walk"Symbol 596 MovieClip {baddy_runner} Frame 1
"attack"Symbol 596 MovieClip {baddy_runner} Frame 5
"spin"Symbol 639 MovieClip {CrystalSmall} Frame 1
"move"Symbol 1326 MovieClip {mushroom} Frame 1
"page1"Symbol 1648 MovieClip {cave_chaos_fla.Symbol2_198} Frame 1
"page2"Symbol 1648 MovieClip {cave_chaos_fla.Symbol2_198} Frame 11




http://swfchan.com/49/244309/info.shtml
Created: 11/2 -2022 10:44:28 Last modified: 11/2 -2022 10:44:28 Server time: 19/05 -2024 02:57:41