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

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

Jetski-Mario.swf

This is the info page for
Flash #117407

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


Text
START GAME

START GAME

START GAME

START GAME

START GAME

START GAME

INSTRUCTION

INSTRUCTION

INSTRUCTION

INSTRUCTION

INSTRUCTION

INSTRUCTION

MORE GAMES

MORE GAMES

MORE GAMES

MORE GAMES

MORE GAMES

MORE GAMES

LEVEL

LEVEL

LEVEL

LEVEL

LEVEL

LEVEL

NO

NO

<p align="left"><font face="Britannic Bold" size="36" color="#ffffff" letterSpacing="0.000000" kerning="1">100</font></p>

PLAY

PLAY

DID YOU LIKE THIS GAME?

DID YOU LIKE THIS GAME?

YES

YES

LIVES

<p align="left"><font face="Showcard Gothic" size="25" color="#ffffff" letterSpacing="0.000000" kerning="1">99</font></p>

TIME

<p align="left"><font face="Showcard Gothic" size="28" color="#ffffff" letterSpacing="0.000000" kerning="1">00</font></p>

<p align="left"><font face="Showcard Gothic" size="28" color="#ffffff" letterSpacing="0.000000" kerning="1">00</font></p>

:

POINTS

<p align="left"><font face="Showcard Gothic" size="25" color="#ffffff" letterSpacing="0.000000" kerning="1">9999</font></p>

LEVEL

<p align="left"><font face="Super Mario Brothers" size="20" color="#ffffff" letterSpacing="0.000000" kerning="1">MUSIC ON</font></p>

<p align="left"><font face="Super Mario Brothers" size="20" color="#ffffff" letterSpacing="0.000000" kerning="1">SOUND FX ON</font></p>

<p align="left"><font face="Showcard Gothic" size="25" color="#ffffff" letterSpacing="0.000000" kerning="1">10</font></p>

CHECKPOINT

LEVEL SELECTION SCREEN

LEVEL SELECTION SCREEN

<p align="left"><font face="Showcard Gothic" size="16" color="#ffffff" letterSpacing="0.000000" kerning="1">LEVEL UNLOCKED</font></p>

YOU CAN JUMP BY
PRESSING THE
SPACE BAR

HINT!

WHEN JUMPING
OVER OBJECTS IN
THE WATER ITS BEST
TO KEEP YOUR
JETSKI AT A

DEGREE ANGLE

45

SOME OBSTACLES
REQUIRE YOU TO GO
AT SLOWER SPEED
TO CONQUER THEM

WHEN USING THE
"DIVE" POWER-UP,
POINT YOUR JETSKI
DOWN INTO THE
WATER, AND STEER
UP AND OUT

SUPERJUMP OFF OF
THE TOP OF RAMPS
TO REACH HIGHER
OBSTACLES

PERFORM FLIPS FOR
BONUS POINTS

SKULLS WILL DEDUCT
POINTS FROM YOUR
SCORE

THE HIGHER YOU
JUMP THE MORE YOU
MUST CONTROL
YOUR BALANCE TO
LAND SAFELY

MANY OBSTACLES
ARE IN THE AIR,
GAIN AS MUCH
HEIGHT AS YOU CAN

MAIN MENU

MAIN MENU

MORE GAMES

MORE GAMES

NEXT LEVEL

NEXT LEVEL

<p align="left"><font face="Showcard Gothic" size="25" color="#ffffff" letterSpacing="0.000000" kerning="1">1</font></p>

PLAY

PLAY

CONTINUE

CONTINUE

INSTRUCTION

INSTRUCTION

ACCELERATE

ACCELERATE

DECELERATE

DECELERATE

TILT FORWARD

TILT FORWARD

TILT BACKWARD

TILT BACKWARD

JUMP

JUMP

SPACE BAR

HIT JUMP WHEN YOU'RE
HERE ON THE RAMP
FOR A SUPERJUMP!

BACK

BACK

ActionScript [AS3]

Section 1
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2CircleDef extends b2ShapeDef { public var radius:Number; public var localPosition:b2Vec2; 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 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); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } public function GetRadius():Number{ return (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)))); } 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); } 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 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))); } } }//package Box2D.Collision.Shapes
Section 3
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { public class b2FilterData { public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public var categoryBits:uint;// = 1 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 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++; }; }; } 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); } } }//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 { public var m_coreVertices:Array; public var m_vertices:Array; private var s_supportVec:b2Vec2; public var m_centroid:b2Vec2; public var m_normals:Array; public var m_obb:b2OBB; 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 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); } public function GetVertices():Array{ return (m_vertices); } public function GetCoreVertices():Array{ return (m_coreVertices); } public function GetCentroid():b2Vec2{ return (m_centroid); } public function GetOBB():b2OBB{ return (m_obb); } 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)); } 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 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 GetNormals():Array{ return (m_normals); } 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); } public function GetVertexCount():int{ return (m_vertexCount); } 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 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++; }; } 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); } 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_next:b2Shape; public var m_type:int; public var m_sweepRadius:Number; public var m_density:Number; public var m_filter:b2FilterData; public var m_friction:Number; public var m_isSensor:Boolean; public var m_restitution:Number; public var m_userData; public var m_proxyId:uint; public var m_body:b2Body; public static const e_polygonShape:int = 1; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_shapeTypeCount:int = 2; private static var s_resetAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_proxyAABB: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 SetUserData(_arg1):void{ m_userData = _arg1; } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetNext():b2Shape{ return (m_next); } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function GetType():int{ return (m_type); } public function GetRestitution():Number{ return (m_restitution); } public function GetFriction():Number{ return (m_friction); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ 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 SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetUserData(){ return (m_userData); } 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 ComputeMass(_arg1:b2MassData):void{ } public function IsSensor():Boolean{ return (m_isSensor); } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function GetBody():b2Body{ return (m_body); } 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 TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public static function Destroy(_arg1:b2Shape, _arg2):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); }; } } }//package Box2D.Collision.Shapes
Section 8
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var friction:Number;// = 0.2 public var isSensor:Boolean;// = false public var density:Number;// = 0 public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var type:int; 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 upperBound:b2Vec2; public var lowerBound: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 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; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//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_bounds:Array; public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; public var m_freeProxy:uint; public var m_proxyCount:int; public var m_proxyPool:Array; public var m_queryResultCount:int; public var m_pairManager:b2PairManager; public var m_timeStamp:uint; public var m_queryResults:Array; public static const b2_nullEdge:uint = b2Settings.USHRT_MAX; public static const b2_invalid: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 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 Commit():void{ m_pairManager.Commit(); } public function GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy = m_proxyPool[_arg1]; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){ return (null); }; return (_local2); } 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++; }; } 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 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); } 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); } 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 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); } 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 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++; }; } 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 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 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 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 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); } 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 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 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 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; } } }//package Box2D.Collision
Section 15
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var _key:uint; public var features:Features; 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 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); } public function get key():uint{ return (_key); } } }//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 friction:Number; public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var restitution:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public var velocity:b2Vec2; 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_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s: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 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 ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local14:b2Vec2; var _local35:Number; _local6 = _arg5[0]; var _local7:b2Vec2 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; _local14 = _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 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); } 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 _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); var _local17:Number = ((_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); } } }//package Box2D.Collision
Section 18
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var pointCount:int;// = 0 public var normal:b2Vec2; public var points:Array; 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 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); } public function Reset():void{ var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 19
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var separation:Number; public var localPoint2:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var localPoint1:b2Vec2; public var id:b2ContactID; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } 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; } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalImpulse = 0; tangentImpulse = 0; id.key = 0; } } }//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 proxyId1:uint; public var userData;// = null public var proxyId2:uint; public var status:uint; public var next:uint; public static var e_pairFinal:uint = 4; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairRemoved:uint = 2; public static var b2_nullPair:uint = b2Settings.USHRT_MAX; public static var e_pairBuffered:uint = 1; public static var b2_nullProxy:uint = b2Settings.USHRT_MAX; public static var b2_tableCapacity:int = b2Settings.b2_maxPairs; public function SetBuffered():void{ status = (status | e_pairBuffered); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } } }//package Box2D.Collision
Section 22
//b2PairCallback (Box2D.Collision.b2PairCallback) package Box2D.Collision { public class b2PairCallback { public function PairRemoved(_arg1, _arg2, _arg3):void{ } public function PairAdded(_arg1, _arg2){ return (null); } } }//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_pairCount:int; public var m_pairBuffer:Array; public var m_hashTable:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_broadPhase:b2BroadPhase; public var m_freePair:uint; 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; } 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 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 ValidateBuffer():void{ } 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(); }; } 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(); }; } 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); } 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(); }; } 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 ValidateTable():void{ } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } 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)))); } } }//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 GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 25
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var userData;// = null public var lowerBounds:Array; public var upperBounds:Array; public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } } }//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_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); 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 id:b2ContactID; public var v:b2Vec2; 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 _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get flip():int{ return (_flip); } public function get incidentEdge():int{ return (_incidentEdge); } public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } 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 set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//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 SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } 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 SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _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 GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number; _local4 = 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); } } }//package Box2D.Common.Math
Section 31
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); 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 b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } 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 b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = b2MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:* = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } 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 b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } 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 b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); 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 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 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 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 b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); 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 b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } }//package Box2D.Common.Math
Section 32
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var a:Number; public var c:b2Vec2; public var a0:Number; public var c0:b2Vec2; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } 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; }; } 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))); } } }//package Box2D.Common.Math
Section 33
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var y:Number; public var x:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Add(_arg1:b2Vec2):b2Vec2{ x = (x + _arg1.x); y = (y + _arg1.y); return (this); } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Multiply(_arg1:Number):b2Vec2{ x = (x * _arg1); y = (y * _arg1); return (this); } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } 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 SetZero():void{ x = 0; y = 0; } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.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 CrossVF(_arg1:Number):void{ var _local2:Number = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function CrossFV(_arg1:Number):void{ var _local2:Number = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public function Divide(_arg1:Number):b2Vec2{ x = (x / _arg1); y = (y / _arg1); return (this); } public function Subtract(_arg1:b2Vec2):b2Vec2{ x = (x - _arg1.x); y = (y - _arg1.y); return (this); } public function Copy():b2Vec2{ return (new b2Vec2(x, 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 Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(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 Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } } }//package Box2D.Common.Math
Section 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 b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function get color():uint{ return (((_r | (_g << 8)) | (_b << 16))); } 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))); } } }//package Box2D.Common
Section 36
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const b2_angularSleepTolerance:Number = 0.0111111111111111; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_angularSlop:Number = 0.0349065850398866; public static const b2_linearSlop:Number = 0.005; public static const b2_pi:Number = 3.14159265358979; public static const b2_maxProxies:int = 0x0200; public static const b2_maxAngularVelocitySquared:Number = 62500; public static const b2_maxPolygonVertices:int = 8; public static const b2_velocityThreshold:Number = 1; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_maxPairs:int = 4096; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_timeToSleep:Number = 0.5; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxAngularVelocity:Number = 250; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const USHRT_MAX:int = 0xFFFF; public static const b2_maxLinearVelocity:Number = 200; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_toiSlop:Number = 0.04; public static const b2_maxLinearVelocitySquared:Number = 40000; 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 Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } } }//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_shape1:b2Shape; public var m_shape2:b2Shape; public var m_prev:b2Contact; public var m_toi:Number; public var m_next:b2Contact; public var m_friction:Number; public var m_manifoldCount:int; public var m_node1:b2ContactEdge; public var m_node2:b2ContactEdge; public var m_restitution:Number; public var m_flags:uint; public static var e_toiFlag:uint = 8; public static var e_nonSolidFlag:uint = 1; public static var e_slowFlag:uint = 2; public static var e_islandFlag:uint = 4; 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 IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetShape1():b2Shape{ return (m_shape1); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetNext():b2Contact{ return (m_next); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function GetManifolds():Array{ return (null); } 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 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 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); } 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 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); } } }//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 restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var body2:b2Body; public var friction: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 r2:b2Vec2; public var separation:Number; public var positionImpulse:Number; public var normalImpulse:Number; public var tangentMass:Number; public var equalizedMass:Number; public var tangentImpulse:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var normalMass:Number; public var velocityBias:Number; public var r1:b2Vec2; 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 prev:b2ContactEdge; public var contact:b2Contact; public var next:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 42
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn:Function; public var destroyFcn:Function; } }//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 position:b2Vec2; public var shape1:b2Shape; public var shape2:b2Shape; public var normalImpulse:Number; public var normal:b2Vec2; 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_constraintCount:int; public var m_constraints:Array; public var m_allocator; public var m_step:b2TimeStep; 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 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))); } 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++; }; } } }//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 Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } }//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 m_manifolds:Array; private var m0:b2Manifold; 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 Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } } }//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_bias:Number; public var m_gamma:Number; public var m_u:b2Vec2; public var m_mass:Number; public var m_impulse:Number; public var m_dampingRatio:Number; public var m_frequencyHz: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 GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local7:Number; var _local8:Number; var _local9: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); _local7 = (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); _local9 = (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 GetReactionTorque():Number{ return (0); } 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 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 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)))); } } }//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 length:Number; public var dampingRatio:Number; public var localAnchor2:b2Vec2; public var frequencyHz: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_ground2:b2Body; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_ratio:Number; public var m_revolute2:b2RevoluteJoint; public var m_force:Number; public var m_mass:Number; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_revolute1:b2RevoluteJoint; public var m_prismatic1:b2PrismaticJoint; public var m_constant:Number; public var m_J:b2Jacobian; 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 InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Body; var _local5:b2Body; 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; _local4 = m_body1; _local5 = 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 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); } 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 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)); } public function GetRatio():Number{ return (m_ratio); } 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)); } } }//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 linear2:b2Vec2; public var angular1:Number; public var angular2:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } 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_islandFlag:Boolean; public var m_body1:b2Body; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_type:int; public var m_collideConnected:Boolean; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_inv_dt:Number; public var m_userData; public var m_body2:b2Body; public static const e_unknownJoint:int = 0; public static const e_inactiveLimit:int = 0; public static const e_atUpperLimit:int = 2; public static const e_atLowerLimit:int = 1; public static const e_gearJoint:int = 6; public static const e_revoluteJoint:int = 1; public static const e_equalLimits:int = 3; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_prismaticJoint:int = 2; public static const e_mouseJoint:int = 5; 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 GetBody2():b2Body{ return (m_body2); } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function GetNext():b2Joint{ return (m_next); } public function GetType():int{ return (m_type); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetReactionTorque():Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce():b2Vec2{ return (null); } public function SolvePositionConstraints():Boolean{ return (false); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetBody1():b2Body{ return (m_body1); } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public static function Destroy(_arg1:b2Joint, _arg2):void{ } 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); } } }//package Box2D.Dynamics.Joints
Section 54
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var body2:b2Body; public var type:int; public var userData; public var collideConnected:Boolean; public var body1:b2Body; 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 next:b2JointEdge; public var prev:b2JointEdge; public var joint:b2Joint; } }//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 K1:b2Mat22; private var K:b2Mat22; public var m_beta:Number; public var m_mass:b2Mat22; private var K2:b2Mat22; public var m_target:b2Vec2; public var m_gamma:Number; public var m_impulse:b2Vec2; public var m_C:b2Vec2; public var m_localAnchor:b2Vec2; public var m_maxForce: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)); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } 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 GetAnchor1():b2Vec2{ return (m_target); } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ return (m_impulse); } override public function SolvePositionConstraints():Boolean{ return (true); } 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)))); } } }//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 timeStep:Number; public var target:b2Vec2; public var maxForce:Number; public var dampingRatio:Number; public var frequencyHz: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_limitForce:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_refAngle:Number; public var m_torque:Number; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_angularMass:Number; public var m_maxMotorForce:Number; public var m_localYAxis1:b2Vec2; public var m_force:Number; public var m_motorMass:Number; public var m_upperTranslation:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitState:int; public var m_linearMass:Number; public var m_motorJacobian:b2Jacobian; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_enableMotor:Boolean; public var m_linearJacobian:b2Jacobian; 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 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 GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } 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 GetMotorSpeed():Number{ return (m_motorSpeed); } 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 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)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } 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); } 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; } public function GetMotorForce():Number{ return (m_motorForce); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } } }//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 motorSpeed:Number; public var localAxis1:b2Vec2; public var referenceAngle:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var maxMotorForce:Number; public var lowerTranslation: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_limitState1:int; public var m_limitState2:int; public var m_ground:b2Body; public var m_maxLength2:Number; public var m_maxLength1:Number; public var m_limitPositionImpulse1:Number; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_constant:Number; public var m_positionImpulse:Number; public var m_state:int; public var m_ratio:Number; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitMass1:Number; public var m_limitMass2:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_limitForce1:Number; public var m_limitForce2:Number; public var m_u2:b2Vec2; 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; } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } 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 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)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local2 = m_body1; _local3 = 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 GetReactionTorque():Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } 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)))); }; } 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 GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//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 maxLength1:Number; public var maxLength2:Number; public var length1:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var ratio:Number; public var length2: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 { public var m_limitForce:Number; public var m_pivotMass:b2Mat22; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_limitState:int; public var m_motorMass:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var K:b2Mat22; public var m_pivotForce:b2Vec2; public var m_enableMotor:Boolean; public var m_referenceAngle:Number; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_upperAngle:Number; public var m_lowerAngle:Number; public var m_maxMotorTorque:Number; 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 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 GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ return (m_pivotForce); } 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)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } public function GetMotorTorque():Number{ return (m_motorForce); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local9:Number; var _local14:Number; var _local2:b2Body = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (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); _local9 = (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; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_limitForce); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } } }//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 upperAngle:Number; public var enableMotor:Boolean; public var referenceAngle:Number; public var motorSpeed:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var lowerAngle: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_next:b2Body; public var m_xf:b2XForm; public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var m_shapeList:b2Shape; public var m_force:b2Vec2; public var m_mass:Number; public var m_sweep:b2Sweep; public var m_torque:Number; public var m_userData; public var m_flags:uint; public var m_world:b2World; public var m_prev:b2Body; public var m_invMass:Number; public var m_type:int; public var m_linearDamping:Number; public var m_shapeCount:int; public var m_angularDamping:Number; public var m_invI:Number; public var m_linearVelocity:b2Vec2; public var m_sleepTime:Number; public var m_jointList:b2JointEdge; public var m_I:Number; public static var e_fixedRotationFlag:uint = 64; public static var e_frozenFlag:uint = 2; public static var e_maxTypes:uint = 3; public static var e_sleepFlag:uint = 8; private static var s_massData:b2MassData = new b2MassData(); public static var e_bulletFlag:uint = 32; public static var e_staticType:uint = 1; public static var e_islandFlag:uint = 4; public static var e_allowSleepFlag:uint = 16; private static var s_xf1:b2XForm = new b2XForm(); public static var e_dynamicType:uint = 2; 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 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 SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } 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 GetInertia():Number{ return (m_I); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } 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 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 GetJointList():b2JointEdge{ return (m_jointList); } 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 GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } 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 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 GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } 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 GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } 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 GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; var _local3:b2Mat22; 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); _local3 = 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 IsStatic():Boolean{ return ((m_type == e_staticType)); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetShapeList():b2Shape{ return (m_shapeList); } public function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } 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 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 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 GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } 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 GetWorld():b2World{ return (m_world); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//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 angularDamping:Number; public var angle:Number; public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var fixedRotation:Boolean; public var linearDamping:Number; public var massData:b2MassData; 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.*; import Box2D.Dynamics.Contacts.*; public class b2ContactListener { public function Add(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Persist(_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_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; 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 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--; } 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); } 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 flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_drawFlags:uint; public var m_lineThickness:Number;// = 1 public var m_drawScale:Number;// = 1 public var m_sprite:Sprite; public static var e_coreShapeBit:uint = 4; public static var e_shapeBit:uint = 1; public static var e_centerOfMassBit:uint = 64; 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_jointBit:uint = 2; public function b2DebugDraw(){ m_drawFlags = 0; } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } 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 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 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 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 GetFlags():uint{ return (m_drawFlags); } 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 SayGoodbyeShape(_arg1:b2Shape):void{ } public function SayGoodbyeJoint(_arg1:b2Joint):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_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies:Array; public var m_joints:Array; public var m_jointCapacity:int; public var m_contactCount:int; public var m_contacts:Array; public var m_contactCapacity:int; public var m_jointCount:int; public var m_allocator; public var m_bodyCount: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 AddBody(_arg1:b2Body):void{ var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } 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 AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } 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 Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } 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); } } }//package Box2D.Dynamics
Section 73
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var warmStarting:Boolean; public var positionCorrection:Boolean; public var dt:Number; public var maxIterations:int; public var dtRatio:Number; public var inv_dt:Number; } }//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_inv_dt0:Number; public var m_boundaryListener:b2BoundaryListener; public var m_contactList:b2Contact; public var m_blockAllocator; public var m_contactListener:b2ContactListener; public var m_allowSleep:Boolean; public var m_broadPhase:b2BroadPhase; public var m_destructionListener:b2DestructionListener; public var m_jointCount:int; public var m_bodyCount:int; public var m_lock:Boolean; public var m_positionIterationCount:int; public var m_groundBody:b2Body; public var m_contactCount:int; public var m_debugDraw:b2DebugDraw; public var m_contactFilter:b2ContactFilter; public var m_bodyList:b2Body; public var m_stackAllocator; public var m_jointList:b2Joint; public var m_gravity:b2Vec2; public var m_contactManager:b2ContactManager; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); public static var m_continuousPhysics:Boolean; public static var m_warmStarting:Boolean; private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); public static var m_positionCorrection:Boolean; private static var s_xf:b2XForm = new b2XForm(); 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 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 Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } 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; }; }; } 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 SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function GetGroundBody():b2Body{ return (m_groundBody); } 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 GetContactCount():int{ return (m_contactCount); } 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 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 SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } 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 GetJointList():b2Joint{ return (m_jointList); } public function GetBodyList():b2Body{ return (m_bodyList); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function Validate():void{ m_broadPhase.Validate(); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetPositionCorrection(_arg1:Boolean):void{ m_positionCorrection = _arg1; } 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 SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } 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 SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } 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 GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } } }//package Box2D.Dynamics
Section 75
//AuxFunctions (caurina.transitions.AuxFunctions) package caurina.transitions { public class AuxFunctions { public static function getObjectLength(_arg1:Object):uint{ var _local3:String; var _local2:uint; for (_local3 in _arg1) { _local2++; }; return (_local2); } public static function numberToG(_arg1:Number):Number{ return (((_arg1 & 0xFF00) >> 8)); } public static function numberToB(_arg1:Number):Number{ return ((_arg1 & 0xFF)); } public static function numberToR(_arg1:Number):Number{ return (((_arg1 & 0xFF0000) >> 16)); } public static function concatObjects(... _args):Object{ var _local3:Object; var _local5:String; var _local2:Object = {}; var _local4:int; while (_local4 < _args.length) { _local3 = _args[_local4]; for (_local5 in _local3) { if (_local3[_local5] == null){ delete _local2[_local5]; } else { _local2[_local5] = _local3[_local5]; }; }; _local4++; }; return (_local2); } } }//package caurina.transitions
Section 76
//Equations (caurina.transitions.Equations) package caurina.transitions { public class Equations { public function Equations(){ trace("Equations is a static class and should not be instantiated."); } public static function easeOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); if (_arg1 < (1 / 2.75)){ return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2)); }; if (_arg1 < (2 / 2.75)){ _arg1 = (_arg1 - (1.5 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2)); }; if (_arg1 < (2.5 / 2.75)){ _arg1 = (_arg1 - (2.25 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2)); }; _arg1 = (_arg1 - (2.625 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2)); } public static function easeInOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 == 2){ return ((_arg2 + _arg3)); }; var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * (0.3 * 1.5)) : _arg5.period; var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; if (_arg1 < 1){ --_arg1; return (((-0.5 * ((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2)); }; --_arg1; return ((((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) * 0.5) + _arg3) + _arg2)); } public static function easeInOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2)); }; --_arg1; return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2)); } public static function easeInOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (((easeInBounce((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2)); }; return ((((easeOutBounce(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2)); } public static function easeInOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ _local6 = (_local6 * 1.525); return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_local6 + 1) * _arg1) - _local6))) + _arg2)); }; _arg1 = (_arg1 - 2); _local6 = (_local6 * 1.525); return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 2)) + _arg2)); } public static function easeOutInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutCubic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInCubic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 1)) + _arg2)); } public static function easeInOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2)); } public static function easeInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * (((_local6 + 1) * _arg1) - _local6)) + _arg2)); } public static function easeInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeOutInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuint((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuint(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutBounce((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInBounce(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function init():void{ Tweener.registerTransition("easenone", easeNone); Tweener.registerTransition("linear", easeNone); Tweener.registerTransition("easeinquad", easeInQuad); Tweener.registerTransition("easeoutquad", easeOutQuad); Tweener.registerTransition("easeinoutquad", easeInOutQuad); Tweener.registerTransition("easeoutinquad", easeOutInQuad); Tweener.registerTransition("easeincubic", easeInCubic); Tweener.registerTransition("easeoutcubic", easeOutCubic); Tweener.registerTransition("easeinoutcubic", easeInOutCubic); Tweener.registerTransition("easeoutincubic", easeOutInCubic); Tweener.registerTransition("easeinquart", easeInQuart); Tweener.registerTransition("easeoutquart", easeOutQuart); Tweener.registerTransition("easeinoutquart", easeInOutQuart); Tweener.registerTransition("easeoutinquart", easeOutInQuart); Tweener.registerTransition("easeinquint", easeInQuint); Tweener.registerTransition("easeoutquint", easeOutQuint); Tweener.registerTransition("easeinoutquint", easeInOutQuint); Tweener.registerTransition("easeoutinquint", easeOutInQuint); Tweener.registerTransition("easeinsine", easeInSine); Tweener.registerTransition("easeoutsine", easeOutSine); Tweener.registerTransition("easeinoutsine", easeInOutSine); Tweener.registerTransition("easeoutinsine", easeOutInSine); Tweener.registerTransition("easeincirc", easeInCirc); Tweener.registerTransition("easeoutcirc", easeOutCirc); Tweener.registerTransition("easeinoutcirc", easeInOutCirc); Tweener.registerTransition("easeoutincirc", easeOutInCirc); Tweener.registerTransition("easeinexpo", easeInExpo); Tweener.registerTransition("easeoutexpo", easeOutExpo); Tweener.registerTransition("easeinoutexpo", easeInOutExpo); Tweener.registerTransition("easeoutinexpo", easeOutInExpo); Tweener.registerTransition("easeinelastic", easeInElastic); Tweener.registerTransition("easeoutelastic", easeOutElastic); Tweener.registerTransition("easeinoutelastic", easeInOutElastic); Tweener.registerTransition("easeoutinelastic", easeOutInElastic); Tweener.registerTransition("easeinback", easeInBack); Tweener.registerTransition("easeoutback", easeOutBack); Tweener.registerTransition("easeinoutback", easeInOutBack); Tweener.registerTransition("easeoutinback", easeOutInBack); Tweener.registerTransition("easeinbounce", easeInBounce); Tweener.registerTransition("easeoutbounce", easeOutBounce); Tweener.registerTransition("easeinoutbounce", easeInOutBounce); Tweener.registerTransition("easeoutinbounce", easeOutInBounce); } public static function easeOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg1)==_arg4) ? (_arg2 + _arg3) : (((_arg3 * 1.001) * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2)); } public static function easeOutInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutBack((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInBack(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg1)==0) ? _arg2 : (((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2) - (_arg3 * 0.001))); } public static function easeInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((-(_arg3) / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) + 1)) + _arg2)); } public static function easeInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((_arg3 * _arg1) * _arg1) + _arg2)); } public static function easeInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg3 - easeOutBounce((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2)); } public static function easeOutInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutExpo((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInExpo(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((-(_arg3) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2)); } public static function easeInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg3) + _arg2)); } public static function easeInOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((-(_arg3) / 2) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 2)) + _arg2)); } public static function easeOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function easeOutInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutElastic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInElastic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period; var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; --_arg1; return ((-(((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2)); } public static function easeOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeOutInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuad((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuad(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2)); } public static function easeInOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 2)) + _arg2)); } public static function easeInOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2)); } public static function easeInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); } public static function easeOutInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutSine((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInSine(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 == 0){ return (_arg2); }; if (_arg1 == _arg4){ return ((_arg2 + _arg3)); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * Math.pow(2, (10 * (_arg1 - 1)))) + _arg2) - (_arg3 * 0.0005))); }; --_arg1; return (((((_arg3 / 2) * 1.0005) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2)); } public static function easeOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period; var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; return (((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) + _arg3) + _arg2)); } public static function easeOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2)); } public static function easeOutInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuart((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuart(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutCirc((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInCirc(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } } }//package caurina.transitions
Section 77
//PropertyInfoObj (caurina.transitions.PropertyInfoObj) package caurina.transitions { public class PropertyInfoObj { public var modifierParameters:Array; public var isSpecialProperty:Boolean; public var valueComplete:Number; public var modifierFunction:Function; public var extra:Object; public var valueStart:Number; public var hasModifier:Boolean; public var arrayIndex:Number; public var originalValueComplete:Object; public function PropertyInfoObj(_arg1:Number, _arg2:Number, _arg3:Object, _arg4:Number, _arg5:Object, _arg6:Boolean, _arg7:Function, _arg8:Array){ valueStart = _arg1; valueComplete = _arg2; originalValueComplete = _arg3; arrayIndex = _arg4; extra = _arg5; isSpecialProperty = _arg6; hasModifier = Boolean(_arg7); modifierFunction = _arg7; modifierParameters = _arg8; } public function toString():String{ var _local1 = "\n[PropertyInfoObj "; _local1 = (_local1 + ("valueStart:" + String(valueStart))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("valueComplete:" + String(valueComplete))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("originalValueComplete:" + String(originalValueComplete))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("arrayIndex:" + String(arrayIndex))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("extra:" + String(extra))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("isSpecialProperty:" + String(isSpecialProperty))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("hasModifier:" + String(hasModifier))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("modifierFunction:" + String(modifierFunction))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("modifierParameters:" + String(modifierParameters))); _local1 = (_local1 + "]\n"); return (_local1); } public function clone():PropertyInfoObj{ var _local1:PropertyInfoObj = new PropertyInfoObj(valueStart, valueComplete, originalValueComplete, arrayIndex, extra, isSpecialProperty, modifierFunction, modifierParameters); return (_local1); } } }//package caurina.transitions
Section 78
//SpecialProperty (caurina.transitions.SpecialProperty) package caurina.transitions { public class SpecialProperty { public var parameters:Array; public var getValue:Function; public var preProcess:Function; public var setValue:Function; public function SpecialProperty(_arg1:Function, _arg2:Function, _arg3:Array=null, _arg4:Function=null){ getValue = _arg1; setValue = _arg2; parameters = _arg3; preProcess = _arg4; } public function toString():String{ var _local1 = ""; _local1 = (_local1 + "[SpecialProperty "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("setValue:" + String(setValue))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("parameters:" + String(parameters))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("preProcess:" + String(preProcess))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 79
//SpecialPropertyModifier (caurina.transitions.SpecialPropertyModifier) package caurina.transitions { public class SpecialPropertyModifier { public var getValue:Function; public var modifyValues:Function; public function SpecialPropertyModifier(_arg1:Function, _arg2:Function){ modifyValues = _arg1; getValue = _arg2; } public function toString():String{ var _local1 = ""; _local1 = (_local1 + "[SpecialPropertyModifier "); _local1 = (_local1 + ("modifyValues:" + String(modifyValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 80
//SpecialPropertySplitter (caurina.transitions.SpecialPropertySplitter) package caurina.transitions { public class SpecialPropertySplitter { public var parameters:Array; public var splitValues:Function; public function SpecialPropertySplitter(_arg1:Function, _arg2:Array){ splitValues = _arg1; parameters = _arg2; } public function toString():String{ var _local1 = ""; _local1 = (_local1 + "[SpecialPropertySplitter "); _local1 = (_local1 + ("splitValues:" + String(splitValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("parameters:" + String(parameters))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 81
//Tweener (caurina.transitions.Tweener) package caurina.transitions { import flash.display.*; import flash.events.*; import flash.utils.*; public class Tweener { private static var _timeScale:Number = 1; private static var _currentTimeFrame:Number; private static var _specialPropertySplitterList:Object; public static var autoOverwrite:Boolean = true; private static var _engineExists:Boolean = false; private static var _currentTime:Number; private static var _tweenList:Array; private static var _specialPropertyModifierList:Object; private static var _specialPropertyList:Object; private static var _transitionList:Object; private static var _inited:Boolean = false; private static var __tweener_controller__:MovieClip; public function Tweener(){ trace("Tweener is a static class and should not be instantiated."); } public static function registerSpecialPropertyModifier(_arg1:String, _arg2:Function, _arg3:Function):void{ if (!_inited){ init(); }; var _local4:SpecialPropertyModifier = new SpecialPropertyModifier(_arg2, _arg3); _specialPropertyModifierList[_arg1] = _local4; } public static function registerSpecialProperty(_arg1:String, _arg2:Function, _arg3:Function, _arg4:Array=null, _arg5:Function=null):void{ if (!_inited){ init(); }; var _local6:SpecialProperty = new SpecialProperty(_arg2, _arg3, _arg4, _arg5); _specialPropertyList[_arg1] = _local6; } public static function init(... _args):void{ _inited = true; _transitionList = new Object(); Equations.init(); _specialPropertyList = new Object(); _specialPropertyModifierList = new Object(); _specialPropertySplitterList = new Object(); } private static function updateTweens():Boolean{ var _local1:int; if (_tweenList.length == 0){ return (false); }; _local1 = 0; while (_local1 < _tweenList.length) { if ((((_tweenList[_local1] == undefined)) || (!(_tweenList[_local1].isPaused)))){ if (!updateTweenByIndex(_local1)){ removeTweenByIndex(_local1); }; if (_tweenList[_local1] == null){ removeTweenByIndex(_local1, true); _local1--; }; }; _local1++; }; return (true); } public static function addCaller(_arg1:Object=null, _arg2:Object=null):Boolean{ var _local3:Number; var _local4:Array; var _local8:Function; var _local9:TweenListObj; var _local10:Number; var _local11:String; if (!Boolean(_arg1)){ return (false); }; if ((_arg1 is Array)){ _local4 = _arg1.concat(); } else { _local4 = [_arg1]; }; var _local5:Object = _arg2; if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; var _local6:Number = (isNaN(_local5.time)) ? 0 : _local5.time; var _local7:Number = (isNaN(_local5.delay)) ? 0 : _local5.delay; if (typeof(_local5.transition) == "string"){ _local11 = _local5.transition.toLowerCase(); _local8 = _transitionList[_local11]; } else { _local8 = _local5.transition; }; if (!Boolean(_local8)){ _local8 = _transitionList["easeoutexpo"]; }; _local3 = 0; while (_local3 < _local4.length) { if (_local5.useFrames == true){ _local9 = new TweenListObj(_local4[_local3], (_currentTimeFrame + (_local7 / _timeScale)), (_currentTimeFrame + ((_local7 + _local6) / _timeScale)), true, _local8, _local5.transitionParams); } else { _local9 = new TweenListObj(_local4[_local3], (_currentTime + ((_local7 * 1000) / _timeScale)), (_currentTime + (((_local7 * 1000) + (_local6 * 1000)) / _timeScale)), false, _local8, _local5.transitionParams); }; _local9.properties = null; _local9.onStart = _local5.onStart; _local9.onUpdate = _local5.onUpdate; _local9.onComplete = _local5.onComplete; _local9.onOverwrite = _local5.onOverwrite; _local9.onStartParams = _local5.onStartParams; _local9.onUpdateParams = _local5.onUpdateParams; _local9.onCompleteParams = _local5.onCompleteParams; _local9.onOverwriteParams = _local5.onOverwriteParams; _local9.onStartScope = _local5.onStartScope; _local9.onUpdateScope = _local5.onUpdateScope; _local9.onCompleteScope = _local5.onCompleteScope; _local9.onOverwriteScope = _local5.onOverwriteScope; _local9.onErrorScope = _local5.onErrorScope; _local9.isCaller = true; _local9.count = _local5.count; _local9.waitFrames = _local5.waitFrames; _tweenList.push(_local9); if ((((_local6 == 0)) && ((_local7 == 0)))){ _local10 = (_tweenList.length - 1); updateTweenByIndex(_local10); removeTweenByIndex(_local10); }; _local3++; }; return (true); } public static function pauseAllTweens():Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; var _local1:Boolean; _local2 = 0; while (_local2 < _tweenList.length) { pauseTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function removeTweens(_arg1:Object, ... _args):Boolean{ var _local4:uint; var _local5:SpecialPropertySplitter; var _local6:Array; var _local7:uint; var _local3:Array = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){ if (_specialPropertySplitterList[_args[_local4]]){ _local5 = _specialPropertySplitterList[_args[_local4]]; _local6 = _local5.splitValues(_arg1, null); _local7 = 0; while (_local7 < _local6.length) { _local3.push(_local6[_local7].name); _local7++; }; } else { _local3.push(_args[_local4]); }; }; _local4++; }; return (affectTweens(removeTweenByIndex, _arg1, _local3)); } public static function updateFrame():void{ _currentTimeFrame++; } public static function splitTweens(_arg1:Number, _arg2:Array):uint{ var _local5:uint; var _local6:String; var _local7:Boolean; var _local3:TweenListObj = _tweenList[_arg1]; var _local4:TweenListObj = _local3.clone(false); _local5 = 0; while (_local5 < _arg2.length) { _local6 = _arg2[_local5]; if (Boolean(_local3.properties[_local6])){ _local3.properties[_local6] = undefined; delete _local3.properties[_local6]; }; _local5++; }; for (_local6 in _local4.properties) { _local7 = false; _local5 = 0; while (_local5 < _arg2.length) { if (_arg2[_local5] == _local6){ _local7 = true; break; }; _local5++; }; if (!_local7){ _local4.properties[_local6] = undefined; delete _local4.properties[_local6]; }; }; _tweenList.push(_local4); return ((_tweenList.length - 1)); } public static function resumeTweenByIndex(_arg1:Number):Boolean{ var _local2:TweenListObj = _tweenList[_arg1]; if ((((_local2 == null)) || (!(_local2.isPaused)))){ return (false); }; var _local3:Number = getCurrentTweeningTime(_local2); _local2.timeStart = (_local2.timeStart + (_local3 - _local2.timePaused)); _local2.timeComplete = (_local2.timeComplete + (_local3 - _local2.timePaused)); _local2.timePaused = undefined; _local2.isPaused = false; return (true); } public static function getVersion():String{ return ("AS3 1.33.74"); } public static function onEnterFrame(_arg1:Event):void{ updateTime(); updateFrame(); var _local2:Boolean; _local2 = updateTweens(); if (!_local2){ stopEngine(); }; } public static function updateTime():void{ _currentTime = getTimer(); } private static function updateTweenByIndex(_arg1:Number):Boolean{ var tTweening:TweenListObj; var mustUpdate:Boolean; var nv:Number; var t:Number; var b:Number; var c:Number; var d:Number; var pName:String; var eventScope:Object; var tScope:Object; var tProperty:Object; var pv:Number; var i = _arg1; tTweening = _tweenList[i]; if ((((tTweening == null)) || (!(Boolean(tTweening.scope))))){ return (false); }; var isOver:Boolean; var cTime:Number = getCurrentTweeningTime(tTweening); if (cTime >= tTweening.timeStart){ tScope = tTweening.scope; if (tTweening.isCaller){ do { t = (((tTweening.timeComplete - tTweening.timeStart) / tTweening.count) * (tTweening.timesCalled + 1)); b = tTweening.timeStart; c = (tTweening.timeComplete - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d); } while (!(cTime >= nv)); } else { mustUpdate = (((((tTweening.skipUpdates < 1)) || (!(tTweening.skipUpdates)))) || ((tTweening.updatesSkipped >= tTweening.skipUpdates))); if (cTime >= tTweening.timeComplete){ isOver = true; mustUpdate = true; }; if (!tTweening.hasStarted){ if (Boolean(tTweening.onStart)){ eventScope = (Boolean(tTweening.onStartScope)) ? tTweening.onStartScope : tScope; try { tTweening.onStart.apply(eventScope, tTweening.onStartParams); } catch(e2:Error) { handleError(tTweening, e2, "onStart"); }; }; for (pName in tTweening.properties) { if (tTweening.properties[pName].isSpecialProperty){ if (Boolean(_specialPropertyList[pName].preProcess)){ tTweening.properties[pName].valueComplete = _specialPropertyList[pName].preProcess(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].originalValueComplete, tTweening.properties[pName].extra); }; pv = _specialPropertyList[pName].getValue(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra); } else { pv = tScope[pName]; }; tTweening.properties[pName].valueStart = (isNaN(pv)) ? tTweening.properties[pName].valueComplete : pv; }; mustUpdate = true; tTweening.hasStarted = true; }; if (mustUpdate){ for (pName in tTweening.properties) { tProperty = tTweening.properties[pName]; if (isOver){ nv = tProperty.valueComplete; } else { if (tProperty.hasModifier){ t = (cTime - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, 0, 1, d, tTweening.transitionParams); nv = tProperty.modifierFunction(tProperty.valueStart, tProperty.valueComplete, nv, tProperty.modifierParameters); } else { t = (cTime - tTweening.timeStart); b = tProperty.valueStart; c = (tProperty.valueComplete - tProperty.valueStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d, tTweening.transitionParams); }; }; if (tTweening.rounded){ nv = Math.round(nv); }; if (tProperty.isSpecialProperty){ _specialPropertyList[pName].setValue(tScope, nv, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra); } else { tScope[pName] = nv; }; }; tTweening.updatesSkipped = 0; if (Boolean(tTweening.onUpdate)){ eventScope = (Boolean(tTweening.onUpdateScope)) ? tTweening.onUpdateScope : tScope; try { tTweening.onUpdate.apply(eventScope, tTweening.onUpdateParams); } catch(e3:Error) { handleError(tTweening, e3, "onUpdate"); }; }; } else { tTweening.updatesSkipped++; }; }; if (((isOver) && (Boolean(tTweening.onComplete)))){ eventScope = (Boolean(tTweening.onCompleteScope)) ? tTweening.onCompleteScope : tScope; try { tTweening.onComplete.apply(eventScope, tTweening.onCompleteParams); } catch(e4:Error) { handleError(tTweening, e4, "onComplete"); }; }; return (!(isOver)); }; return (true); } public static function setTimeScale(_arg1:Number):void{ var _local2:Number; var _local3:Number; if (isNaN(_arg1)){ _arg1 = 1; }; if (_arg1 < 1E-5){ _arg1 = 1E-5; }; if (_arg1 != _timeScale){ if (_tweenList != null){ _local2 = 0; while (_local2 < _tweenList.length) { _local3 = getCurrentTweeningTime(_tweenList[_local2]); _tweenList[_local2].timeStart = (_local3 - (((_local3 - _tweenList[_local2].timeStart) * _timeScale) / _arg1)); _tweenList[_local2].timeComplete = (_local3 - (((_local3 - _tweenList[_local2].timeComplete) * _timeScale) / _arg1)); if (_tweenList[_local2].timePaused != undefined){ _tweenList[_local2].timePaused = (_local3 - (((_local3 - _tweenList[_local2].timePaused) * _timeScale) / _arg1)); }; _local2++; }; }; _timeScale = _arg1; }; } public static function resumeAllTweens():Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; var _local1:Boolean; _local2 = 0; while (_local2 < _tweenList.length) { resumeTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } private static function handleError(_arg1:TweenListObj, _arg2:Error, _arg3:String):void{ var eventScope:Object; var pTweening = _arg1; var pError = _arg2; var pCallBackName = _arg3; if (((Boolean(pTweening.onError)) && ((pTweening.onError is Function)))){ eventScope = (Boolean(pTweening.onErrorScope)) ? pTweening.onErrorScope : pTweening.scope; try { pTweening.onError.apply(eventScope, [pTweening.scope, pError]); } catch(metaError:Error) { printError(((((String(pTweening.scope) + " raised an error while executing the 'onError' handler. Original error:\n ") + pError.getStackTrace()) + "\nonError error: ") + metaError.getStackTrace())); }; } else { if (!Boolean(pTweening.onError)){ printError(((((String(pTweening.scope) + " raised an error while executing the '") + pCallBackName) + "'handler. \n") + pError.getStackTrace())); }; }; } private static function startEngine():void{ _engineExists = true; _tweenList = new Array(); __tweener_controller__ = new MovieClip(); __tweener_controller__.addEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); _currentTimeFrame = 0; updateTime(); } public static function removeAllTweens():Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; var _local1:Boolean; _local2 = 0; while (_local2 < _tweenList.length) { removeTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function addTween(_arg1:Object=null, _arg2:Object=null):Boolean{ var _local3:Number; var _local4:Number; var _local5:String; var _local6:Array; var _local13:Function; var _local14:Object; var _local15:TweenListObj; var _local16:Number; var _local17:Array; var _local18:Array; var _local19:Array; var _local20:String; if (!Boolean(_arg1)){ return (false); }; if ((_arg1 is Array)){ _local6 = _arg1.concat(); } else { _local6 = [_arg1]; }; var _local7:Object = TweenListObj.makePropertiesChain(_arg2); if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; var _local8:Number = (isNaN(_local7.time)) ? 0 : _local7.time; var _local9:Number = (isNaN(_local7.delay)) ? 0 : _local7.delay; var _local10:Array = new Array(); var _local11:Object = {overwrite:true, time:true, delay:true, useFrames:true, skipUpdates:true, transition:true, transitionParams:true, onStart:true, onUpdate:true, onComplete:true, onOverwrite:true, onError:true, rounded:true, onStartParams:true, onUpdateParams:true, onCompleteParams:true, onOverwriteParams:true, onStartScope:true, onUpdateScope:true, onCompleteScope:true, onOverwriteScope:true, onErrorScope:true}; var _local12:Object = new Object(); for (_local5 in _local7) { if (!_local11[_local5]){ if (_specialPropertySplitterList[_local5]){ _local17 = _specialPropertySplitterList[_local5].splitValues(_local7[_local5], _specialPropertySplitterList[_local5].parameters); _local3 = 0; while (_local3 < _local17.length) { if (_specialPropertySplitterList[_local17[_local3].name]){ _local18 = _specialPropertySplitterList[_local17[_local3].name].splitValues(_local17[_local3].value, _specialPropertySplitterList[_local17[_local3].name].parameters); _local4 = 0; while (_local4 < _local18.length) { _local10[_local18[_local4].name] = {valueStart:undefined, valueComplete:_local18[_local4].value, arrayIndex:_local18[_local4].arrayIndex, isSpecialProperty:false}; _local4++; }; } else { _local10[_local17[_local3].name] = {valueStart:undefined, valueComplete:_local17[_local3].value, arrayIndex:_local17[_local3].arrayIndex, isSpecialProperty:false}; }; _local3++; }; } else { if (_specialPropertyModifierList[_local5] != undefined){ _local19 = _specialPropertyModifierList[_local5].modifyValues(_local7[_local5]); _local3 = 0; while (_local3 < _local19.length) { _local12[_local19[_local3].name] = {modifierParameters:_local19[_local3].parameters, modifierFunction:_specialPropertyModifierList[_local5].getValue}; _local3++; }; } else { _local10[_local5] = {valueStart:undefined, valueComplete:_local7[_local5]}; }; }; }; }; for (_local5 in _local10) { if (_specialPropertyList[_local5] != undefined){ _local10[_local5].isSpecialProperty = true; } else { if (_local6[0][_local5] == undefined){ printError((((("The property '" + _local5) + "' doesn't seem to be a normal object property of ") + String(_local6[0])) + " or a registered special property.")); }; }; }; for (_local5 in _local12) { if (_local10[_local5] != undefined){ _local10[_local5].modifierParameters = _local12[_local5].modifierParameters; _local10[_local5].modifierFunction = _local12[_local5].modifierFunction; }; }; if (typeof(_local7.transition) == "string"){ _local20 = _local7.transition.toLowerCase(); _local13 = _transitionList[_local20]; } else { _local13 = _local7.transition; }; if (!Boolean(_local13)){ _local13 = _transitionList["easeoutexpo"]; }; _local3 = 0; while (_local3 < _local6.length) { _local14 = new Object(); for (_local5 in _local10) { _local14[_local5] = new PropertyInfoObj(_local10[_local5].valueStart, _local10[_local5].valueComplete, _local10[_local5].valueComplete, _local10[_local5].arrayIndex, {}, _local10[_local5].isSpecialProperty, _local10[_local5].modifierFunction, _local10[_local5].modifierParameters); }; if (_local7.useFrames == true){ _local15 = new TweenListObj(_local6[_local3], (_currentTimeFrame + (_local9 / _timeScale)), (_currentTimeFrame + ((_local9 + _local8) / _timeScale)), true, _local13, _local7.transitionParams); } else { _local15 = new TweenListObj(_local6[_local3], (_currentTime + ((_local9 * 1000) / _timeScale)), (_currentTime + (((_local9 * 1000) + (_local8 * 1000)) / _timeScale)), false, _local13, _local7.transitionParams); }; _local15.properties = _local14; _local15.onStart = _local7.onStart; _local15.onUpdate = _local7.onUpdate; _local15.onComplete = _local7.onComplete; _local15.onOverwrite = _local7.onOverwrite; _local15.onError = _local7.onError; _local15.onStartParams = _local7.onStartParams; _local15.onUpdateParams = _local7.onUpdateParams; _local15.onCompleteParams = _local7.onCompleteParams; _local15.onOverwriteParams = _local7.onOverwriteParams; _local15.onStartScope = _local7.onStartScope; _local15.onUpdateScope = _local7.onUpdateScope; _local15.onCompleteScope = _local7.onCompleteScope; _local15.onOverwriteScope = _local7.onOverwriteScope; _local15.onErrorScope = _local7.onErrorScope; _local15.rounded = _local7.rounded; _local15.skipUpdates = _local7.skipUpdates; if (((_local7.overwrite == undefined)) ? autoOverwrite : _local7.overwrite){ removeTweensByTime(_local15.scope, _local15.properties, _local15.timeStart, _local15.timeComplete); }; _tweenList.push(_local15); if ((((_local8 == 0)) && ((_local9 == 0)))){ _local16 = (_tweenList.length - 1); updateTweenByIndex(_local16); removeTweenByIndex(_local16); }; _local3++; }; return (true); } public static function registerTransition(_arg1:String, _arg2:Function):void{ if (!_inited){ init(); }; _transitionList[_arg1] = _arg2; } public static function printError(_arg1:String):void{ trace(("## [Tweener] Error: " + _arg1)); } private static function affectTweens(_arg1:Function, _arg2:Object, _arg3:Array):Boolean{ var _local5:uint; var _local6:Array; var _local7:uint; var _local8:uint; var _local9:uint; var _local4:Boolean; if (!Boolean(_tweenList)){ return (false); }; _local5 = 0; while (_local5 < _tweenList.length) { if (((_tweenList[_local5]) && ((_tweenList[_local5].scope == _arg2)))){ if (_arg3.length == 0){ _arg1(_local5); _local4 = true; } else { _local6 = new Array(); _local7 = 0; while (_local7 < _arg3.length) { if (Boolean(_tweenList[_local5].properties[_arg3[_local7]])){ _local6.push(_arg3[_local7]); }; _local7++; }; if (_local6.length > 0){ _local8 = AuxFunctions.getObjectLength(_tweenList[_local5].properties); if (_local8 == _local6.length){ _arg1(_local5); _local4 = true; } else { _local9 = splitTweens(_local5, _local6); _arg1(_local9); _local4 = true; }; }; }; }; _local5++; }; return (_local4); } public static function getTweens(_arg1:Object):Array{ var _local2:uint; var _local3:String; if (!Boolean(_tweenList)){ return ([]); }; var _local4:Array = new Array(); _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ for (_local3 in _tweenList[_local2].properties) { _local4.push(_local3); }; }; _local2++; }; return (_local4); } public static function isTweening(_arg1:Object):Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ return (true); }; _local2++; }; return (false); } public static function pauseTweenByIndex(_arg1:Number):Boolean{ var _local2:TweenListObj = _tweenList[_arg1]; if ((((_local2 == null)) || (_local2.isPaused))){ return (false); }; _local2.timePaused = getCurrentTweeningTime(_local2); _local2.isPaused = true; return (true); } public static function getCurrentTweeningTime(_arg1:Object):Number{ return ((_arg1.useFrames) ? _currentTimeFrame : _currentTime); } public static function getTweenCount(_arg1:Object):Number{ var _local2:uint; if (!Boolean(_tweenList)){ return (0); }; var _local3:Number = 0; _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ _local3 = (_local3 + AuxFunctions.getObjectLength(_tweenList[_local2].properties)); }; _local2++; }; return (_local3); } private static function stopEngine():void{ _engineExists = false; _tweenList = null; _currentTime = 0; _currentTimeFrame = 0; __tweener_controller__.removeEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); __tweener_controller__ = null; } public static function removeTweensByTime(_arg1:Object, _arg2:Object, _arg3:Number, _arg4:Number):Boolean{ var removedLocally:Boolean; var i:uint; var pName:String; var eventScope:Object; var p_scope = _arg1; var p_properties = _arg2; var p_timeStart = _arg3; var p_timeComplete = _arg4; var removed:Boolean; var tl:uint = _tweenList.length; i = 0; while (i < tl) { if (((Boolean(_tweenList[i])) && ((p_scope == _tweenList[i].scope)))){ if ((((p_timeComplete > _tweenList[i].timeStart)) && ((p_timeStart < _tweenList[i].timeComplete)))){ removedLocally = false; for (pName in _tweenList[i].properties) { if (Boolean(p_properties[pName])){ if (Boolean(_tweenList[i].onOverwrite)){ eventScope = (Boolean(_tweenList[i].onOverwriteScope)) ? _tweenList[i].onOverwriteScope : _tweenList[i].scope; try { _tweenList[i].onOverwrite.apply(eventScope, _tweenList[i].onOverwriteParams); } catch(e:Error) { handleError(_tweenList[i], e, "onOverwrite"); }; }; _tweenList[i].properties[pName] = undefined; delete _tweenList[i].properties[pName]; removedLocally = true; removed = true; }; }; if (removedLocally){ if (AuxFunctions.getObjectLength(_tweenList[i].properties) == 0){ removeTweenByIndex(i); }; }; }; }; i = (i + 1); }; return (removed); } public static function registerSpecialPropertySplitter(_arg1:String, _arg2:Function, _arg3:Array=null):void{ if (!_inited){ init(); }; var _local4:SpecialPropertySplitter = new SpecialPropertySplitter(_arg2, _arg3); _specialPropertySplitterList[_arg1] = _local4; } public static function removeTweenByIndex(_arg1:Number, _arg2:Boolean=false):Boolean{ _tweenList[_arg1] = null; if (_arg2){ _tweenList.splice(_arg1, 1); }; return (true); } public static function resumeTweens(_arg1:Object, ... _args):Boolean{ var _local4:uint; var _local3:Array = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(resumeTweenByIndex, _arg1, _local3)); } public static function pauseTweens(_arg1:Object, ... _args):Boolean{ var _local4:uint; var _local3:Array = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(pauseTweenByIndex, _arg1, _local3)); } } }//package caurina.transitions
Section 82
//TweenListObj (caurina.transitions.TweenListObj) package caurina.transitions { public class TweenListObj { public var hasStarted:Boolean; public var onUpdate:Function; public var useFrames:Boolean; public var count:Number; public var onOverwriteParams:Array; public var timeStart:Number; public var timeComplete:Number; public var onStartParams:Array; public var onUpdateScope:Object; public var rounded:Boolean; public var onUpdateParams:Array; public var properties:Object; public var onComplete:Function; public var transitionParams:Object; public var updatesSkipped:Number; public var onStart:Function; public var onOverwriteScope:Object; public var skipUpdates:Number; public var onStartScope:Object; public var scope:Object; public var isCaller:Boolean; public var timePaused:Number; public var transition:Function; public var onCompleteParams:Array; public var onError:Function; public var timesCalled:Number; public var onErrorScope:Object; public var onOverwrite:Function; public var isPaused:Boolean; public var waitFrames:Boolean; public var onCompleteScope:Object; public function TweenListObj(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Boolean, _arg5:Function, _arg6:Object){ scope = _arg1; timeStart = _arg2; timeComplete = _arg3; useFrames = _arg4; transition = _arg5; transitionParams = _arg6; properties = new Object(); isPaused = false; timePaused = undefined; isCaller = false; updatesSkipped = 0; timesCalled = 0; skipUpdates = 0; hasStarted = false; } public function clone(_arg1:Boolean):TweenListObj{ var _local3:String; var _local2:TweenListObj = new TweenListObj(scope, timeStart, timeComplete, useFrames, transition, transitionParams); _local2.properties = new Array(); for (_local3 in properties) { _local2.properties[_local3] = properties[_local3].clone(); }; _local2.skipUpdates = skipUpdates; _local2.updatesSkipped = updatesSkipped; if (!_arg1){ _local2.onStart = onStart; _local2.onUpdate = onUpdate; _local2.onComplete = onComplete; _local2.onOverwrite = onOverwrite; _local2.onError = onError; _local2.onStartParams = onStartParams; _local2.onUpdateParams = onUpdateParams; _local2.onCompleteParams = onCompleteParams; _local2.onOverwriteParams = onOverwriteParams; _local2.onStartScope = onStartScope; _local2.onUpdateScope = onUpdateScope; _local2.onCompleteScope = onCompleteScope; _local2.onOverwriteScope = onOverwriteScope; _local2.onErrorScope = onErrorScope; }; _local2.rounded = rounded; _local2.isPaused = isPaused; _local2.timePaused = timePaused; _local2.isCaller = isCaller; _local2.count = count; _local2.timesCalled = timesCalled; _local2.waitFrames = waitFrames; _local2.hasStarted = hasStarted; return (_local2); } public function toString():String{ var _local3:String; var _local1 = "\n[TweenListObj "; _local1 = (_local1 + ("scope:" + String(scope))); _local1 = (_local1 + ", properties:"); var _local2:Boolean; for (_local3 in properties) { if (!_local2){ _local1 = (_local1 + ","); }; _local1 = (_local1 + ("[name:" + properties[_local3].name)); _local1 = (_local1 + (",valueStart:" + properties[_local3].valueStart)); _local1 = (_local1 + (",valueComplete:" + properties[_local3].valueComplete)); _local1 = (_local1 + "]"); _local2 = false; }; _local1 = (_local1 + (", timeStart:" + String(timeStart))); _local1 = (_local1 + (", timeComplete:" + String(timeComplete))); _local1 = (_local1 + (", useFrames:" + String(useFrames))); _local1 = (_local1 + (", transition:" + String(transition))); _local1 = (_local1 + (", transitionParams:" + String(transitionParams))); if (skipUpdates){ _local1 = (_local1 + (", skipUpdates:" + String(skipUpdates))); }; if (updatesSkipped){ _local1 = (_local1 + (", updatesSkipped:" + String(updatesSkipped))); }; if (Boolean(onStart)){ _local1 = (_local1 + (", onStart:" + String(onStart))); }; if (Boolean(onUpdate)){ _local1 = (_local1 + (", onUpdate:" + String(onUpdate))); }; if (Boolean(onComplete)){ _local1 = (_local1 + (", onComplete:" + String(onComplete))); }; if (Boolean(onOverwrite)){ _local1 = (_local1 + (", onOverwrite:" + String(onOverwrite))); }; if (Boolean(onError)){ _local1 = (_local1 + (", onError:" + String(onError))); }; if (onStartParams){ _local1 = (_local1 + (", onStartParams:" + String(onStartParams))); }; if (onUpdateParams){ _local1 = (_local1 + (", onUpdateParams:" + String(onUpdateParams))); }; if (onCompleteParams){ _local1 = (_local1 + (", onCompleteParams:" + String(onCompleteParams))); }; if (onOverwriteParams){ _local1 = (_local1 + (", onOverwriteParams:" + String(onOverwriteParams))); }; if (onStartScope){ _local1 = (_local1 + (", onStartScope:" + String(onStartScope))); }; if (onUpdateScope){ _local1 = (_local1 + (", onUpdateScope:" + String(onUpdateScope))); }; if (onCompleteScope){ _local1 = (_local1 + (", onCompleteScope:" + String(onCompleteScope))); }; if (onOverwriteScope){ _local1 = (_local1 + (", onOverwriteScope:" + String(onOverwriteScope))); }; if (onErrorScope){ _local1 = (_local1 + (", onErrorScope:" + String(onErrorScope))); }; if (rounded){ _local1 = (_local1 + (", rounded:" + String(rounded))); }; if (isPaused){ _local1 = (_local1 + (", isPaused:" + String(isPaused))); }; if (timePaused){ _local1 = (_local1 + (", timePaused:" + String(timePaused))); }; if (isCaller){ _local1 = (_local1 + (", isCaller:" + String(isCaller))); }; if (count){ _local1 = (_local1 + (", count:" + String(count))); }; if (timesCalled){ _local1 = (_local1 + (", timesCalled:" + String(timesCalled))); }; if (waitFrames){ _local1 = (_local1 + (", waitFrames:" + String(waitFrames))); }; if (hasStarted){ _local1 = (_local1 + (", hasStarted:" + String(hasStarted))); }; _local1 = (_local1 + "]\n"); return (_local1); } public static function makePropertiesChain(_arg1:Object):Object{ var _local3:Object; var _local4:Object; var _local5:Object; var _local6:Number; var _local7:Number; var _local8:Number; var _local2:Object = _arg1.base; if (_local2){ _local3 = {}; if ((_local2 is Array)){ _local4 = []; _local8 = 0; while (_local8 < _local2.length) { _local4.push(_local2[_local8]); _local8++; }; } else { _local4 = [_local2]; }; _local4.push(_arg1); _local6 = _local4.length; _local7 = 0; while (_local7 < _local6) { if (_local4[_local7]["base"]){ _local5 = AuxFunctions.concatObjects(makePropertiesChain(_local4[_local7]["base"]), _local4[_local7]); } else { _local5 = _local4[_local7]; }; _local3 = AuxFunctions.concatObjects(_local3, _local5); _local7++; }; if (_local3["base"]){ delete _local3["base"]; }; return (_local3); //unresolved jump }; return (_arg1); } } }//package caurina.transitions
Section 83
//BaseButton (fl.controls.BaseButton) package fl.controls { import flash.display.*; import fl.core.*; import flash.events.*; import flash.utils.*; import fl.events.*; public class BaseButton extends UIComponent { protected var _selected:Boolean;// = false private var unlockedMouseState:String; protected var pressTimer:Timer; protected var mouseState:String; protected var background:DisplayObject; private var _mouseStateLocked:Boolean;// = false protected var _autoRepeat:Boolean;// = false private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35}; public function BaseButton(){ _selected = false; _autoRepeat = false; _mouseStateLocked = false; super(); buttonMode = true; mouseChildren = false; useHandCursor = false; setupMouseEvents(); setMouseState("up"); pressTimer = new Timer(1, 0); pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true); } protected function endPress():void{ pressTimer.reset(); } public function set mouseStateLocked(_arg1:Boolean):void{ _mouseStateLocked = _arg1; if (_arg1 == false){ setMouseState(unlockedMouseState); } else { unlockedMouseState = mouseState; }; } public function get autoRepeat():Boolean{ return (_autoRepeat); } public function set autoRepeat(_arg1:Boolean):void{ _autoRepeat = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; mouseEnabled = _arg1; } public function get selected():Boolean{ return (_selected); } protected function mouseEventHandler(_arg1:MouseEvent):void{ if (_arg1.type == MouseEvent.MOUSE_DOWN){ setMouseState("down"); startPress(); } else { if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){ setMouseState("over"); endPress(); } else { if (_arg1.type == MouseEvent.ROLL_OUT){ setMouseState("up"); endPress(); }; }; }; } public function setMouseState(_arg1:String):void{ if (_mouseStateLocked){ unlockedMouseState = _arg1; return; }; if (mouseState == _arg1){ return; }; mouseState = _arg1; invalidate(InvalidationType.STATE); } protected function startPress():void{ if (_autoRepeat){ pressTimer.delay = Number(getStyleValue("repeatDelay")); pressTimer.start(); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } protected function buttonDown(_arg1:TimerEvent):void{ if (!_autoRepeat){ endPress(); return; }; if (pressTimer.currentCount == 1){ pressTimer.delay = Number(getStyleValue("repeatInterval")); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } public function set selected(_arg1:Boolean):void{ if (_selected == _arg1){ return; }; _selected = _arg1; invalidate(InvalidationType.STATE); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function setupMouseEvents():void{ addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true); } protected function drawLayout():void{ background.width = width; background.height = height; } protected function drawBackground():void{ var _local1:String; var _local2:DisplayObject; _local1 = (enabled) ? mouseState : "disabled"; if (selected){ _local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1)); }; _local1 = (_local1 + "Skin"); _local2 = background; background = getDisplayObjectInstance(getStyleValue(_local1)); addChildAt(background, 0); if (((!((_local2 == null))) && (!((_local2 == background))))){ removeChild(_local2); }; } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 84
//Button (fl.controls.Button) package fl.controls { import flash.display.*; import fl.core.*; import fl.managers.*; public class Button extends LabelButton implements IFocusManagerComponent { protected var emphasizedBorder:DisplayObject; protected var _emphasized:Boolean;// = false private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2}; public static var createAccessibilityImplementation:Function; public function Button(){ _emphasized = false; super(); } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; var _local3:*; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("emphasizedPadding")); if ((((_local2 < 0)) || (!(_emphasized)))){ _local2 = 0; }; _local3 = getStyleValue("focusRectPadding"); _local3 = ((_local3)==null) ? 2 : _local3; _local3 = (_local3 + _local2); uiFocusRect.x = -(_local3); uiFocusRect.y = -(_local3); uiFocusRect.width = (width + (_local3 * 2)); uiFocusRect.height = (height + (_local3 * 2)); }; } public function set emphasized(_arg1:Boolean):void{ _emphasized = _arg1; invalidate(InvalidationType.STYLES); } override protected function draw():void{ if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){ drawEmphasized(); }; super.draw(); if (emphasizedBorder != null){ setChildIndex(emphasizedBorder, (numChildren - 1)); }; } public function get emphasized():Boolean{ return (_emphasized); } override protected function initializeAccessibility():void{ if (Button.createAccessibilityImplementation != null){ Button.createAccessibilityImplementation(this); }; } protected function drawEmphasized():void{ var _local1:Object; var _local2:Number; if (emphasizedBorder != null){ removeChild(emphasizedBorder); }; emphasizedBorder = null; if (!_emphasized){ return; }; _local1 = getStyleValue("emphasizedSkin"); if (_local1 != null){ emphasizedBorder = getDisplayObjectInstance(_local1); }; if (emphasizedBorder != null){ addChildAt(emphasizedBorder, 0); _local2 = Number(getStyleValue("emphasizedPadding")); emphasizedBorder.x = (emphasizedBorder.y = -(_local2)); emphasizedBorder.width = (width + (_local2 * 2)); emphasizedBorder.height = (height + (_local2 * 2)); }; } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles)); } } }//package fl.controls
Section 85
//ButtonLabelPlacement (fl.controls.ButtonLabelPlacement) package fl.controls { public class ButtonLabelPlacement { public static const TOP:String = "top"; public static const LEFT:String = "left"; public static const BOTTOM:String = "bottom"; public static const RIGHT:String = "right"; } }//package fl.controls
Section 86
//LabelButton (fl.controls.LabelButton) package fl.controls { import flash.display.*; import fl.core.*; import flash.events.*; import fl.managers.*; import flash.text.*; import fl.events.*; import flash.ui.*; public class LabelButton extends BaseButton implements IFocusManagerComponent { protected var _labelPlacement:String;// = "right" protected var _toggle:Boolean;// = false protected var icon:DisplayObject; protected var oldMouseState:String; protected var mode:String;// = "center" public var textField:TextField; protected var _label:String;// = "Label" private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function LabelButton(){ _labelPlacement = ButtonLabelPlacement.RIGHT; _toggle = false; _label = "Label"; mode = "center"; super(); } protected function toggleSelected(_arg1:MouseEvent):void{ selected = !(selected); dispatchEvent(new Event(Event.CHANGE, true)); } public function get labelPlacement():String{ return (_labelPlacement); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ if (oldMouseState == null){ oldMouseState = mouseState; }; setMouseState("down"); startPress(); }; } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ setMouseState(oldMouseState); oldMouseState = null; endPress(); dispatchEvent(new MouseEvent(MouseEvent.CLICK)); }; } override public function get selected():Boolean{ return ((_toggle) ? _selected : false); } public function set labelPlacement(_arg1:String):void{ _labelPlacement = _arg1; invalidate(InvalidationType.SIZE); } public function set toggle(_arg1:Boolean):void{ if (((!(_arg1)) && (super.selected))){ selected = false; }; _toggle = _arg1; if (_toggle){ addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true); } else { removeEventListener(MouseEvent.CLICK, toggleSelected); }; invalidate(InvalidationType.STATE); } public function get label():String{ return (_label); } override public function set selected(_arg1:Boolean):void{ _selected = _arg1; if (_toggle){ invalidate(InvalidationType.STATE); }; } override protected function draw():void{ if (textField.text != _label){ label = _label; }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); drawIcon(); drawTextFormat(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } public function get toggle():Boolean{ return (_toggle); } override protected function configUI():void{ super.configUI(); textField = new TextField(); textField.type = TextFieldType.DYNAMIC; textField.selectable = false; addChild(textField); } override protected function drawLayout():void{ var _local1:Number; var _local2:String; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement; textField.height = (textField.textHeight + 4); _local3 = (textField.textWidth + 4); _local4 = (textField.textHeight + 4); _local5 = ((icon)==null) ? 0 : (icon.width + _local1); _local6 = ((icon)==null) ? 0 : (icon.height + _local1); textField.visible = (label.length > 0); if (icon != null){ icon.x = Math.round(((width - icon.width) / 2)); icon.y = Math.round(((height - icon.height) / 2)); }; if (textField.visible == false){ textField.width = 0; textField.height = 0; } else { if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){ _local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1)))); if ((height - 2) > _local4){ _local8 = _local4; } else { _local8 = (height - 2); }; _local3 = _local7; textField.width = _local3; _local4 = _local8; textField.height = _local4; textField.x = Math.round(((width - _local3) / 2)); textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0)); if (icon != null){ icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1)); }; } else { _local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1)))); _local3 = _local7; textField.width = _local3; textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0)); textField.y = Math.round(((height - textField.height) / 2)); if (icon != null){ icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1)); }; }; }; super.drawLayout(); } override protected function initializeAccessibility():void{ if (LabelButton.createAccessibilityImplementation != null){ LabelButton.createAccessibilityImplementation(this); }; } protected function drawIcon():void{ var _local1:DisplayObject; var _local2:String; var _local3:Object; _local1 = icon; _local2 = (enabled) ? mouseState : "disabled"; if (selected){ _local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1)); }; _local2 = (_local2 + "Icon"); _local3 = getStyleValue(_local2); if (_local3 == null){ _local3 = getStyleValue("icon"); }; if (_local3 != null){ icon = getDisplayObjectInstance(_local3); }; if (icon != null){ addChildAt(icon, 1); }; if (((!((_local1 == null))) && (!((_local1 == icon))))){ removeChild(_local1); }; } public function set label(_arg1:String):void{ _label = _arg1; if (textField.text != _label){ textField.text = _label; dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE)); }; invalidate(InvalidationType.SIZE); invalidate(InvalidationType.STYLES); } protected function drawTextFormat():void{ var _local1:Object; var _local2:TextFormat; var _local3:TextFormat; _local1 = UIComponent.getStyleDefinition(); _local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); _local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition())); } } }//package fl.controls
Section 87
//TextInput (fl.controls.TextInput) package fl.controls { import flash.display.*; import fl.core.*; import flash.events.*; import fl.managers.*; import flash.text.*; import fl.events.*; import flash.ui.*; public class TextInput extends UIComponent implements IFocusManagerComponent { protected var _html:Boolean;// = false protected var _savedHTML:String; protected var background:DisplayObject; protected var _editable:Boolean;// = true public var textField:TextField; private static var defaultStyles:Object = {upSkin:"TextInput_upSkin", disabledSkin:"TextInput_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:0, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function TextInput(){ _editable = true; _html = false; super(); } override public function drawFocus(_arg1:Boolean):void{ if (focusTarget != null){ focusTarget.drawFocus(_arg1); return; }; super.drawFocus(_arg1); } public function set imeMode(_arg1:String):void{ _imeMode = _arg1; } override protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((((_arg1 == textField)) || (super.isOurFocus(_arg1)))); } protected function handleKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ENTER){ dispatchEvent(new ComponentEvent(ComponentEvent.ENTER, true)); }; } public function set text(_arg1:String):void{ textField.text = _arg1; _html = false; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } protected function updateTextFieldType():void{ textField.type = (((enabled) && (editable))) ? TextFieldType.INPUT : TextFieldType.DYNAMIC; textField.selectable = enabled; } public function get selectionEndIndex():int{ return (textField.selectionEndIndex); } public function get editable():Boolean{ return (_editable); } override protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (_arg1.target == this){ stage.focus = textField; }; _local2 = focusManager; if (((editable) && (_local2))){ _local2.showFocusIndicator = true; if (((textField.selectable) && ((textField.selectionBeginIndex == textField.selectionBeginIndex)))){ setSelection(0, textField.length); }; }; super.focusInHandler(_arg1); if (editable){ setIMEMode(true); }; } public function get selectionBeginIndex():int{ return (textField.selectionBeginIndex); } public function set alwaysShowSelection(_arg1:Boolean):void{ textField.alwaysShowSelection = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; updateTextFieldType(); } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } public function get horizontalScrollPosition():int{ return (textField.scrollH); } public function set condenseWhite(_arg1:Boolean):void{ textField.condenseWhite = _arg1; } public function set displayAsPassword(_arg1:Boolean):void{ textField.displayAsPassword = _arg1; } public function set horizontalScrollPosition(_arg1:int):void{ textField.scrollH = _arg1; } public function get restrict():String{ return (textField.restrict); } public function get textWidth():Number{ return (textField.textWidth); } public function get textHeight():Number{ return (textField.textHeight); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; updateTextFieldType(); } public function get maxChars():int{ return (textField.maxChars); } public function get length():int{ return (textField.length); } public function getLineMetrics(_arg1:int):TextLineMetrics{ return (textField.getLineMetrics(_arg1)); } public function get imeMode():String{ return (_imeMode); } override protected function focusOutHandler(_arg1:FocusEvent):void{ super.focusOutHandler(_arg1); if (editable){ setIMEMode(false); }; } public function set htmlText(_arg1:String):void{ if (_arg1 == ""){ text = ""; return; }; _html = true; _savedHTML = _arg1; textField.htmlText = _arg1; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } public function get text():String{ return (textField.text); } override public function get enabled():Boolean{ return (super.enabled); } public function get condenseWhite():Boolean{ return (textField.condenseWhite); } public function get alwaysShowSelection():Boolean{ return (textField.alwaysShowSelection); } override protected function draw():void{ var _local1:Object; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawTextFormat(); drawBackground(); _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function handleTextInput(_arg1:TextEvent):void{ _arg1.stopPropagation(); dispatchEvent(new TextEvent(TextEvent.TEXT_INPUT, true, false, _arg1.text)); } override protected function configUI():void{ super.configUI(); tabChildren = true; textField = new TextField(); addChild(textField); updateTextFieldType(); textField.addEventListener(TextEvent.TEXT_INPUT, handleTextInput, false, 0, true); textField.addEventListener(Event.CHANGE, handleChange, false, 0, true); textField.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown, false, 0, true); } public function setSelection(_arg1:int, _arg2:int):void{ textField.setSelection(_arg1, _arg2); } public function get displayAsPassword():Boolean{ return (textField.displayAsPassword); } public function appendText(_arg1:String):void{ textField.appendText(_arg1); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; textField.restrict = _arg1; } public function get htmlText():String{ return (textField.htmlText); } protected function drawBackground():void{ var _local1:DisplayObject; var _local2:String; _local1 = background; _local2 = (enabled) ? "upSkin" : "disabledSkin"; background = getDisplayObjectInstance(getStyleValue(_local2)); if (background == null){ return; }; addChildAt(background, 0); if (((((!((_local1 == null))) && (!((_local1 == background))))) && (contains(_local1)))){ removeChild(_local1); }; } override public function setFocus():void{ stage.focus = textField; } protected function drawLayout():void{ var _local1:Number; _local1 = Number(getStyleValue("textPadding")); if (background != null){ background.width = width; background.height = height; }; textField.width = (width - (2 * _local1)); textField.height = (height - (2 * _local1)); textField.x = (textField.y = _local1); } public function set maxChars(_arg1:int):void{ textField.maxChars = _arg1; } public function get maxHorizontalScrollPosition():int{ return (textField.maxScrollH); } protected function drawTextFormat():void{ var _local1:Object; var _local2:TextFormat; var _local3:TextFormat; _local1 = UIComponent.getStyleDefinition(); _local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); _local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); if (_html){ textField.htmlText = _savedHTML; }; } protected function handleChange(_arg1:Event):void{ _arg1.stopPropagation(); dispatchEvent(new Event(Event.CHANGE, true)); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 88
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 89
//InvalidationType (fl.core.InvalidationType) package fl.core { public class InvalidationType { public static const SIZE:String = "size"; public static const ALL:String = "all"; public static const DATA:String = "data"; public static const SCROLL:String = "scroll"; public static const STATE:String = "state"; public static const STYLES:String = "styles"; public static const SELECTED:String = "selected"; public static const RENDERER_STYLES:String = "rendererStyles"; } }//package fl.core
Section 90
//UIComponent (fl.core.UIComponent) package fl.core { import flash.display.*; import flash.events.*; import fl.managers.*; import flash.text.*; import flash.utils.*; import fl.events.*; import flash.system.*; public class UIComponent extends Sprite { protected var _enabled:Boolean;// = true private var _mouseFocusEnabled:Boolean;// = true protected var startHeight:Number; protected var _height:Number; protected var _oldIMEMode:String;// = null protected var startWidth:Number; public var focusTarget:IFocusManagerComponent; protected var errorCaught:Boolean;// = false protected var uiFocusRect:DisplayObject; protected var _width:Number; public var version:String;// = "3.0.0.15" protected var isFocused:Boolean;// = false protected var callLaterMethods:Dictionary; private var _focusEnabled:Boolean;// = true private var tempText:TextField; protected var invalidateFlag:Boolean;// = false protected var _inspector:Boolean;// = false protected var sharedStyles:Object; protected var invalidHash:Object; protected var isLivePreview:Boolean;// = false protected var _imeMode:String;// = null protected var instanceStyles:Object; protected var _x:Number; protected var _y:Number; public static var inCallLaterPhase:Boolean = false; private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)}; public static var createAccessibilityImplementation:Function; private static var focusManagers:Dictionary = new Dictionary(false); public function UIComponent(){ version = "3.0.0.15"; isLivePreview = false; invalidateFlag = false; _enabled = true; isFocused = false; _focusEnabled = true; _mouseFocusEnabled = true; _imeMode = null; _oldIMEMode = null; errorCaught = false; _inspector = false; super(); instanceStyles = {}; sharedStyles = {}; invalidHash = {}; callLaterMethods = new Dictionary(); StyleManager.registerInstance(this); configUI(); invalidate(InvalidationType.ALL); tabEnabled = (this is IFocusManagerComponent); focusRect = false; if (tabEnabled){ addEventListener(FocusEvent.FOCUS_IN, focusInHandler); addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler); addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); }; initializeFocusManager(); addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true); } public function drawFocus(_arg1:Boolean):void{ var _local2:Number; isFocused = _arg1; if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){ removeChild(uiFocusRect); uiFocusRect = null; }; if (_arg1){ uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite); if (uiFocusRect == null){ return; }; _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = -(_local2); uiFocusRect.y = -(_local2); uiFocusRect.width = (width + (_local2 * 2)); uiFocusRect.height = (height + (_local2 * 2)); addChildAt(uiFocusRect, 0); }; } private function callLaterDispatcher(_arg1:Event):void{ var _local2:Dictionary; var _local3:Object; if (_arg1.type == Event.ADDED_TO_STAGE){ removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher); stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); return; }; _arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher); if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); return; }; inCallLaterPhase = true; _local2 = callLaterMethods; for (_local3 in _local2) { _local3(); delete _local2[_local3]; }; inCallLaterPhase = false; } private function addedHandler(_arg1:Event):void{ removeEventListener("addedToStage", addedHandler); initializeFocusManager(); } protected function getStyleValue(_arg1:String):Object{ return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]); } protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((_arg1 == this)); } override public function get scaleX():Number{ return ((width / startWidth)); } override public function get scaleY():Number{ return ((height / startHeight)); } override public function set height(_arg1:Number):void{ if (_height == _arg1){ return; }; setSize(width, _arg1); } protected function keyDownHandler(_arg1:KeyboardEvent):void{ } protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (isOurFocus((_arg1.target as DisplayObject))){ _local2 = focusManager; if (((_local2) && (_local2.showFocusIndicator))){ drawFocus(true); isFocused = true; }; }; } public function setStyle(_arg1:String, _arg2:Object):void{ if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; instanceStyles[_arg1] = _arg2; invalidate(InvalidationType.STYLES); } override public function get visible():Boolean{ return (super.visible); } public function get componentInspectorSetting():Boolean{ return (_inspector); } override public function get x():Number{ return ((isNaN(_x)) ? super.x : _x); } override public function get y():Number{ return ((isNaN(_y)) ? super.y : _y); } protected function setIMEMode(_arg1:Boolean){ var enabled = _arg1; if (_imeMode != null){ if (enabled){ IME.enabled = true; _oldIMEMode = IME.conversionMode; try { if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _imeMode; }; errorCaught = false; } catch(e:Error) { errorCaught = true; throw (new Error(("IME mode not supported: " + _imeMode))); }; } else { if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _oldIMEMode; }; IME.enabled = false; }; }; } public function set enabled(_arg1:Boolean):void{ if (_arg1 == _enabled){ return; }; _enabled = _arg1; invalidate(InvalidationType.STATE); } public function setSharedStyle(_arg1:String, _arg2:Object):void{ if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; sharedStyles[_arg1] = _arg2; if (instanceStyles[_arg1] == null){ invalidate(InvalidationType.STYLES); }; } protected function keyUpHandler(_arg1:KeyboardEvent):void{ } public function set focusEnabled(_arg1:Boolean):void{ _focusEnabled = _arg1; } override public function set scaleX(_arg1:Number):void{ setSize((startWidth * _arg1), height); } public function get mouseFocusEnabled():Boolean{ return (_mouseFocusEnabled); } override public function set scaleY(_arg1:Number):void{ setSize(width, (startHeight * _arg1)); } protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{ var classDef:Object; var skin = _arg1; classDef = null; if ((skin is Class)){ return ((new (skin) as DisplayObject)); }; if ((skin is DisplayObject)){ (skin as DisplayObject).x = 0; (skin as DisplayObject).y = 0; return ((skin as DisplayObject)); }; try { classDef = getDefinitionByName(skin.toString()); } catch(e:Error) { try { classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object); } catch(e:Error) { }; }; if (classDef == null){ return (null); }; return ((new (classDef) as DisplayObject)); } protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{ var _local3:String; for (_local3 in _arg2) { _arg1.setStyle(_local3, getStyleValue(_arg2[_local3])); }; } protected function beforeComponentParameters():void{ } protected function callLater(_arg1:Function):void{ if (inCallLaterPhase){ return; }; callLaterMethods[_arg1] = true; if (stage != null){ stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); } else { addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); }; } protected function createFocusManager():void{ if (focusManagers[stage] == null){ focusManagers[stage] = new FocusManager(stage); }; } override public function set visible(_arg1:Boolean):void{ var _local2:String; if (super.visible == _arg1){ return; }; super.visible = _arg1; _local2 = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE; dispatchEvent(new ComponentEvent(_local2, true)); } protected function hookAccessibility(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, hookAccessibility); initializeAccessibility(); } public function set componentInspectorSetting(_arg1:Boolean):void{ _inspector = _arg1; if (_inspector){ beforeComponentParameters(); } else { afterComponentParameters(); }; } override public function set x(_arg1:Number):void{ move(_arg1, _y); } public function drawNow():void{ draw(); } override public function set y(_arg1:Number):void{ move(_x, _arg1); } protected function checkLivePreview():Boolean{ var className:String; if (parent == null){ return (false); }; try { className = getQualifiedClassName(parent); } catch(e:Error) { }; return ((className == "fl.livepreview::LivePreviewParent")); } protected function focusOutHandler(_arg1:FocusEvent):void{ if (isOurFocus((_arg1.target as DisplayObject))){ drawFocus(false); isFocused = false; }; } public function set mouseFocusEnabled(_arg1:Boolean):void{ _mouseFocusEnabled = _arg1; } public function getFocus():InteractiveObject{ if (stage){ return (stage.focus); }; return (null); } protected function validate():void{ invalidHash = {}; } override public function get height():Number{ return (_height); } public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{ invalidHash[_arg1] = true; if (_arg2){ this.callLater(draw); }; } public function get enabled():Boolean{ return (_enabled); } protected function getScaleX():Number{ return (super.scaleX); } protected function getScaleY():Number{ return (super.scaleY); } public function get focusEnabled():Boolean{ return (_focusEnabled); } protected function afterComponentParameters():void{ } protected function draw():void{ if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } protected function configUI():void{ var _local1:Number; var _local2:Number; var _local3:Number; isLivePreview = checkLivePreview(); _local1 = rotation; rotation = 0; _local2 = super.width; _local3 = super.height; var _local4 = 1; super.scaleY = _local4; super.scaleX = _local4; setSize(_local2, _local3); move(super.x, super.y); rotation = _local1; startWidth = _local2; startHeight = _local3; if (numChildren > 0){ removeChildAt(0); }; } protected function setScaleX(_arg1:Number):void{ super.scaleX = _arg1; } protected function setScaleY(_arg1:Number):void{ super.scaleY = _arg1; } private function initializeFocusManager():void{ if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true); } else { createFocusManager(); }; } public function set focusManager(_arg1:IFocusManager):void{ UIComponent.focusManagers[this] = _arg1; } public function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } protected function isInvalid(_arg1:String, ... _args):Boolean{ if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){ return (true); }; while (_args.length > 0) { if (invalidHash[_args.pop()]){ return (true); }; }; return (false); } public function setSize(_arg1:Number, _arg2:Number):void{ _width = _arg1; _height = _arg2; invalidate(InvalidationType.SIZE); dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false)); } override public function set width(_arg1:Number):void{ if (_width == _arg1){ return; }; setSize(_arg1, height); } public function setFocus():void{ if (stage){ stage.focus = this; }; } protected function initializeAccessibility():void{ if (UIComponent.createAccessibilityImplementation != null){ UIComponent.createAccessibilityImplementation(this); }; } public function get focusManager():IFocusManager{ var _local1:DisplayObject; _local1 = this; while (_local1) { if (UIComponent.focusManagers[_local1] != null){ return (IFocusManager(UIComponent.focusManagers[_local1])); }; _local1 = _local1.parent; }; return (null); } override public function get width():Number{ return (_width); } public function move(_arg1:Number, _arg2:Number):void{ _x = _arg1; _y = _arg2; super.x = Math.round(_arg1); super.y = Math.round(_arg2); dispatchEvent(new ComponentEvent(ComponentEvent.MOVE)); } public function validateNow():void{ invalidate(InvalidationType.ALL, false); draw(); } public function getStyle(_arg1:String):Object{ return (instanceStyles[_arg1]); } public static function getStyleDefinition():Object{ return (defaultStyles); } public static function mergeStyles(... _args):Object{ var _local2:Object; var _local3:uint; var _local4:uint; var _local5:Object; var _local6:String; _local2 = {}; _local3 = _args.length; _local4 = 0; while (_local4 < _local3) { _local5 = _args[_local4]; for (_local6 in _local5) { if (_local2[_local6] != null){ } else { _local2[_local6] = _args[_local4][_local6]; }; }; _local4++; }; return (_local2); } } }//package fl.core
Section 91
//ComponentEvent (fl.events.ComponentEvent) package fl.events { import flash.events.*; public class ComponentEvent extends Event { public static const HIDE:String = "hide"; public static const BUTTON_DOWN:String = "buttonDown"; public static const MOVE:String = "move"; public static const RESIZE:String = "resize"; public static const ENTER:String = "enter"; public static const LABEL_CHANGE:String = "labelChange"; public static const SHOW:String = "show"; public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("ComponentEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new ComponentEvent(type, bubbles, cancelable)); } } }//package fl.events
Section 92
//FocusManager (fl.managers.FocusManager) package fl.managers { import fl.controls.*; import flash.display.*; import fl.core.*; import flash.events.*; import flash.text.*; import flash.utils.*; import flash.ui.*; public class FocusManager implements IFocusManager { private var focusableObjects:Dictionary; private var _showFocusIndicator:Boolean;// = true private var defButton:Button; private var focusableCandidates:Array; private var _form:DisplayObjectContainer; private var _defaultButtonEnabled:Boolean;// = true private var activated:Boolean;// = false private var _defaultButton:Button; private var calculateCandidates:Boolean;// = true private var lastFocus:InteractiveObject; private var lastAction:String; public function FocusManager(_arg1:DisplayObjectContainer){ activated = false; calculateCandidates = true; _showFocusIndicator = true; _defaultButtonEnabled = true; super(); focusableObjects = new Dictionary(true); if (_arg1 != null){ _form = _arg1; addFocusables(DisplayObject(_arg1)); _arg1.addEventListener(Event.ADDED, addedHandler); _arg1.addEventListener(Event.REMOVED, removedHandler); activate(); }; } public function get showFocusIndicator():Boolean{ return (_showFocusIndicator); } private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{ var _local5:int; var _local6:int; var _local7:DisplayObject; var _local8:IFocusManagerGroup; var _local9:int; var _local10:DisplayObject; var _local11:IFocusManagerGroup; _local5 = focusableCandidates.length; _local6 = _arg1; while (true) { if (_arg2){ _arg1--; } else { _arg1++; }; if (_arg3){ if (((_arg2) && ((_arg1 < 0)))){ break; }; if (((!(_arg2)) && ((_arg1 == _local5)))){ break; }; } else { _arg1 = ((_arg1 + _local5) % _local5); if (_local6 == _arg1){ break; }; }; if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){ _local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1])); if ((_local7 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local7); _local9 = 0; while (_local9 < focusableCandidates.length) { _local10 = focusableCandidates[_local9]; if ((_local10 is IFocusManagerGroup)){ _local11 = IFocusManagerGroup(_local10); if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){ _arg1 = _local9; break; }; }; _local9++; }; }; return (_arg1); }; }; return (_arg1); } public function set form(_arg1:DisplayObjectContainer):void{ _form = _arg1; } private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{ var focusable:IFocusManagerComponent; var io:InteractiveObject; var doc:DisplayObjectContainer; var i:int; var child:DisplayObject; var o = _arg1; var skipTopLevel = _arg2; if (!skipTopLevel){ if ((o is IFocusManagerComponent)){ focusable = IFocusManagerComponent(o); if (focusable.focusEnabled){ if (((focusable.tabEnabled) && (isTabVisible(o)))){ focusableObjects[o] = true; calculateCandidates = true; }; o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; } else { if ((o is InteractiveObject)){ io = (o as InteractiveObject); if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){ focusableObjects[io] = true; calculateCandidates = true; }; io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; }; }; if ((o is DisplayObjectContainer)){ doc = DisplayObjectContainer(o); o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){ i = 0; while (i < doc.numChildren) { try { child = doc.getChildAt(i); if (child != null){ addFocusables(doc.getChildAt(i)); }; } catch(error:SecurityError) { }; i = (i + 1); }; }; }; } private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{ return (_arg1.getChildIndex(_arg2)); } private function mouseFocusChangeHandler(_arg1:FocusEvent):void{ if ((_arg1.relatedObject is TextField)){ return; }; _arg1.preventDefault(); } private function focusOutHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; _local2 = (_arg1.target as InteractiveObject); } private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{ var _local3:IFocusManagerGroup; if (!isEnabledAndVisible(_arg1)){ return (false); }; if ((_arg1 is IFocusManagerGroup)){ _local3 = IFocusManagerGroup(_arg1); if (_arg2 == _local3.groupName){ return (false); }; }; return (true); } public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{ var _local2:InteractiveObject; _local2 = _arg1; while (_arg1) { if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){ return (_arg1); }; _arg1 = _arg1.parent; }; return (_local2); } private function sortFocusableObjectsTabIndex():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){ focusableCandidates.push(_local2); }; }; focusableCandidates.sort(sortByTabIndex); } private function removeFocusables(_arg1:DisplayObject):void{ var _local2:Object; var _local3:DisplayObject; if ((_arg1 is DisplayObjectContainer)){ _arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); _arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); for (_local2 in focusableObjects) { _local3 = DisplayObject(_local2); if (DisplayObjectContainer(_arg1).contains(_local3)){ if (_local3 == lastFocus){ lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local2]; calculateCandidates = true; }; }; }; } private function addedHandler(_arg1:Event):void{ var _local2:DisplayObject; _local2 = DisplayObject(_arg1.target); if (_local2.stage){ addFocusables(DisplayObject(_arg1.target)); }; } private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{ while (_arg1 != InteractiveObject(form)) { if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){ return (_arg1); }; _arg1 = _arg1.parent; if (_arg1 == null){ break; }; }; return (null); } private function tabChildrenChangeHandler(_arg1:Event):void{ var _local2:DisplayObjectContainer; if (_arg1.target != _arg1.currentTarget){ return; }; calculateCandidates = true; _local2 = DisplayObjectContainer(_arg1.target); if (_local2.tabChildren){ addFocusables(_local2, true); } else { removeFocusables(_local2); }; } public function sendDefaultButtonEvent():void{ defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); } public function getFocus():InteractiveObject{ var _local1:InteractiveObject; _local1 = form.stage.focus; return (findFocusManagerComponent(_local1)); } private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; var _local3:TextField; var _local4:SimpleButton; _local2 = DisplayObject(form).parent; while (_arg1 != _local2) { if ((_arg1 is UIComponent)){ if (!UIComponent(_arg1).enabled){ return (false); }; } else { if ((_arg1 is TextField)){ _local3 = TextField(_arg1); if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){ return (false); }; } else { if ((_arg1 is SimpleButton)){ _local4 = SimpleButton(_arg1); if (!_local4.enabled){ return (false); }; }; }; }; if (!_arg1.visible){ return (false); }; _arg1 = _arg1.parent; }; return (true); } public function set defaultButton(_arg1:Button):void{ var _local2:Button; _local2 = (_arg1) ? Button(_arg1) : null; if (_local2 != _defaultButton){ if (_defaultButton){ _defaultButton.emphasized = false; }; if (defButton){ defButton.emphasized = false; }; _defaultButton = _local2; defButton = _local2; if (_local2){ _local2.emphasized = true; }; }; } private function deactivateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); } public function setFocus(_arg1:InteractiveObject):void{ if ((_arg1 is IFocusManagerComponent)){ IFocusManagerComponent(_arg1).setFocus(); } else { form.stage.focus = _arg1; }; } private function setFocusToNextObject(_arg1:FocusEvent):void{ var _local2:InteractiveObject; if (!hasFocusableObjects()){ return; }; _local2 = getNextFocusManagerComponent(_arg1.shiftKey); if (_local2){ setFocus(_local2); }; } private function hasFocusableObjects():Boolean{ var _local1:Object; for (_local1 in focusableObjects) { return (true); }; return (false); } private function tabIndexChangeHandler(_arg1:Event):void{ calculateCandidates = true; } private function sortFocusableObjects():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){ sortFocusableObjectsTabIndex(); return; }; focusableCandidates.push(_local2); }; focusableCandidates.sort(sortByDepth); } private function keyFocusChangeHandler(_arg1:FocusEvent):void{ showFocusIndicator = true; if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){ setFocusToNextObject(_arg1); _arg1.preventDefault(); }; } private function getIndexOfFocusedObject(_arg1:DisplayObject):int{ var _local2:int; var _local3:int; _local2 = focusableCandidates.length; _local3 = 0; _local3 = 0; while (_local3 < _local2) { if (focusableCandidates[_local3] == _arg1){ return (_local3); }; _local3++; }; return (-1); } public function hideFocus():void{ } private function removedHandler(_arg1:Event):void{ var _local2:int; var _local3:DisplayObject; var _local4:InteractiveObject; _local3 = DisplayObject(_arg1.target); if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){ if (_local3 == lastFocus){ IFocusManagerComponent(lastFocus).drawFocus(false); lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local3]; calculateCandidates = true; } else { if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){ _local4 = (_local3 as InteractiveObject); if (_local4){ if (_local4 == lastFocus){ lastFocus = null; }; delete focusableObjects[_local4]; calculateCandidates = true; }; _local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); }; }; removeFocusables(_local3); } private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{ var _local3:String; var _local4:String; var _local5:int; var _local6:String; var _local7:String; var _local8:String; var _local9:DisplayObject; var _local10:DisplayObject; _local3 = ""; _local4 = ""; _local8 = "0000"; _local9 = DisplayObject(_arg1); _local10 = DisplayObject(_arg2); while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) { _local5 = getChildIndex(_local9.parent, _local9); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local3 = (_local7 + _local3); _local9 = _local9.parent; }; while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) { _local5 = getChildIndex(_local10.parent, _local10); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local4 = (_local7 + _local4); _local10 = _local10.parent; }; return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0); } public function get defaultButton():Button{ return (_defaultButton); } private function activateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); if (lastFocus){ if ((lastFocus is IFocusManagerComponent)){ IFocusManagerComponent(lastFocus).setFocus(); } else { form.stage.focus = lastFocus; }; }; lastAction = "ACTIVATE"; } public function showFocus():void{ } public function set defaultButtonEnabled(_arg1:Boolean):void{ _defaultButtonEnabled = _arg1; } public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{ var _local2:DisplayObject; var _local3:String; var _local4:int; var _local5:Boolean; var _local6:int; var _local7:int; var _local8:IFocusManagerGroup; if (!hasFocusableObjects()){ return (null); }; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; _local2 = form.stage.focus; _local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2))); _local3 = ""; if ((_local2 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local2); _local3 = _local8.groupName; }; _local4 = getIndexOfFocusedObject(_local2); _local5 = false; _local6 = _local4; if (_local4 == -1){ if (_arg1){ _local4 = focusableCandidates.length; }; _local5 = true; }; _local7 = getIndexOfNextObject(_local4, _arg1, _local5, _local3); return (findFocusManagerComponent(focusableCandidates[_local7])); } private function mouseDownHandler(_arg1:MouseEvent):void{ var _local2:InteractiveObject; if (_arg1.isDefaultPrevented()){ return; }; _local2 = getTopLevelFocusTarget(InteractiveObject(_arg1.target)); if (!_local2){ return; }; showFocusIndicator = false; if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){ setFocus(_local2); }; lastAction = "MOUSEDOWN"; } private function isTabVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; _local2 = _arg1.parent; while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) { if (!_local2.tabChildren){ return (false); }; _local2 = _local2.parent; }; return (true); } public function get nextTabIndex():int{ return (0); } private function keyDownHandler(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.TAB){ lastAction = "KEY"; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; }; if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){ sendDefaultButtonEvent(); }; } private function focusInHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; var _local3:Button; _local2 = InteractiveObject(_arg1.target); if (form.contains(_local2)){ lastFocus = findFocusManagerComponent(InteractiveObject(_local2)); if ((lastFocus is Button)){ _local3 = Button(lastFocus); if (defButton){ defButton.emphasized = false; defButton = _local3; _local3.emphasized = true; }; } else { if (((defButton) && (!((defButton == _defaultButton))))){ defButton.emphasized = false; defButton = _defaultButton; _defaultButton.emphasized = true; }; }; }; } private function tabEnabledChangeHandler(_arg1:Event):void{ var _local2:InteractiveObject; var _local3:Boolean; calculateCandidates = true; _local2 = InteractiveObject(_arg1.target); _local3 = (focusableObjects[_local2] == true); if (_local2.tabEnabled){ if (((!(_local3)) && (isTabVisible(_local2)))){ if (!(_local2 is IFocusManagerComponent)){ _local2.focusRect = false; }; focusableObjects[_local2] = true; }; } else { if (_local3){ delete focusableObjects[_local2]; }; }; } public function set showFocusIndicator(_arg1:Boolean):void{ _showFocusIndicator = _arg1; } public function get form():DisplayObjectContainer{ return (_form); } private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{ return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2)); } public function activate():void{ if (activated){ return; }; form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true); form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true); form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true); form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true); form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = true; if (lastFocus){ setFocus(lastFocus); }; } public function deactivate():void{ form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler); form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.removeEventListener(Event.ACTIVATE, activateHandler); form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler); form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = false; } public function get defaultButtonEnabled():Boolean{ return (_defaultButtonEnabled); } } }//package fl.managers
Section 93
//IFocusManager (fl.managers.IFocusManager) package fl.managers { import fl.controls.*; import flash.display.*; public interface IFocusManager { function getFocus():InteractiveObject; function deactivate():void; function set defaultButton(_arg1:Button):void; function set showFocusIndicator(_arg1:Boolean):void; function get defaultButtonEnabled():Boolean; function get nextTabIndex():int; function get defaultButton():Button; function get showFocusIndicator():Boolean; function setFocus(_arg1:InteractiveObject):void; function activate():void; function showFocus():void; function set defaultButtonEnabled(_arg1:Boolean):void; function hideFocus():void; function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject; function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject; } }//package fl.managers
Section 94
//IFocusManagerComponent (fl.managers.IFocusManagerComponent) package fl.managers { public interface IFocusManagerComponent { function set focusEnabled(_arg1:Boolean):void; function drawFocus(_arg1:Boolean):void; function setFocus():void; function get focusEnabled():Boolean; function get tabEnabled():Boolean; function get tabIndex():int; function get mouseFocusEnabled():Boolean; } }//package fl.managers
Section 95
//IFocusManagerGroup (fl.managers.IFocusManagerGroup) package fl.managers { public interface IFocusManagerGroup { function set groupName(_arg1:String):void; function set selected(_arg1:Boolean):void; function get groupName():String; function get selected():Boolean; } }//package fl.managers
Section 96
//StyleManager (fl.managers.StyleManager) package fl.managers { import fl.core.*; import flash.text.*; import flash.utils.*; public class StyleManager { private var globalStyles:Object; private var classToDefaultStylesDict:Dictionary; private var styleToClassesHash:Object; private var classToStylesDict:Dictionary; private var classToInstancesDict:Dictionary; private static var _instance:StyleManager; public function StyleManager(){ styleToClassesHash = {}; classToInstancesDict = new Dictionary(true); classToStylesDict = new Dictionary(true); classToDefaultStylesDict = new Dictionary(true); globalStyles = UIComponent.getStyleDefinition(); } public static function clearComponentStyle(_arg1:Object, _arg2:String):void{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){ delete _local4[_arg2]; invalidateComponentStyle(_local3, _arg2); }; } private static function getClassDef(_arg1:Object):Class{ var component = _arg1; if ((component is Class)){ return ((component as Class)); }; try { return ((getDefinitionByName(getQualifiedClassName(component)) as Class)); } catch(e:Error) { if ((component is UIComponent)){ try { return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class)); } catch(e:Error) { }; }; }; return (null); } public static function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Class; var _local5:Object; _local4 = getClassDef(_arg1); _local5 = getInstance().classToStylesDict[_local4]; if (_local5 == null){ _local5 = (getInstance().classToStylesDict[_local4] = {}); }; if (_local5 == _arg3){ return; }; _local5[_arg2] = _arg3; invalidateComponentStyle(_local4, _arg2); } private static function setSharedStyles(_arg1:UIComponent):void{ var _local2:StyleManager; var _local3:Class; var _local4:Object; var _local5:String; _local2 = getInstance(); _local3 = getClassDef(_arg1); _local4 = _local2.classToDefaultStylesDict[_local3]; for (_local5 in _local4) { _arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5)); }; } public static function getComponentStyle(_arg1:Object, _arg2:String):Object{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; return (((_local4)==null) ? null : _local4[_arg2]); } private static function getInstance(){ if (_instance == null){ _instance = new (StyleManager); }; return (_instance); } private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{ var _local3:Dictionary; var _local4:Object; var _local5:UIComponent; _local3 = getInstance().classToInstancesDict[_arg1]; if (_local3 == null){ return; }; for (_local4 in _local3) { _local5 = (_local4 as UIComponent); if (_local5 == null){ } else { _local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2)); }; }; } private static function invalidateStyle(_arg1:String):void{ var _local2:Dictionary; var _local3:Object; _local2 = getInstance().styleToClassesHash[_arg1]; if (_local2 == null){ return; }; for (_local3 in _local2) { invalidateComponentStyle(Class(_local3), _arg1); }; } public static function registerInstance(_arg1:UIComponent):void{ var inst:StyleManager; var classDef:Class; var target:Class; var defaultStyles:Object; var styleToClasses:Object; var n:String; var instance = _arg1; inst = getInstance(); classDef = getClassDef(instance); if (classDef == null){ return; }; if (inst.classToInstancesDict[classDef] == null){ inst.classToInstancesDict[classDef] = new Dictionary(true); target = classDef; while (defaultStyles == null) { if (target["getStyleDefinition"] != null){ defaultStyles = target["getStyleDefinition"](); break; }; try { target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class); } catch(err:Error) { try { target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class); } catch(e:Error) { defaultStyles = UIComponent.getStyleDefinition(); break; }; }; }; styleToClasses = inst.styleToClassesHash; for (n in defaultStyles) { if (styleToClasses[n] == null){ styleToClasses[n] = new Dictionary(true); }; styleToClasses[n][classDef] = true; }; inst.classToDefaultStylesDict[classDef] = defaultStyles; inst.classToStylesDict[classDef] = {}; }; inst.classToInstancesDict[classDef][instance] = true; setSharedStyles(instance); } public static function getStyle(_arg1:String):Object{ return (getInstance().globalStyles[_arg1]); } private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{ var _local3:Class; var _local4:StyleManager; var _local5:Object; _local3 = getClassDef(_arg1); _local4 = getInstance(); _local5 = _local4.classToStylesDict[_local3][_arg2]; if (_local5 != null){ return (_local5); }; _local5 = _local4.globalStyles[_arg2]; if (_local5 != null){ return (_local5); }; return (_local4.classToDefaultStylesDict[_local3][_arg2]); } public static function setStyle(_arg1:String, _arg2:Object):void{ var _local3:Object; _local3 = getInstance().globalStyles; if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; _local3[_arg1] = _arg2; invalidateStyle(_arg1); } } }//package fl.managers
Section 97
//BGbart_44 (JetSkiMario_fla.BGbart_44) package JetSkiMario_fla { import flash.display.*; public dynamic class BGbart_44 extends MovieClip { public function BGbart_44(){ addFrameScript(63, frame64); } function frame64(){ stop(); } } }//package JetSkiMario_fla
Section 98
//BGspider_7 (JetSkiMario_fla.BGspider_7) package JetSkiMario_fla { import flash.display.*; public dynamic class BGspider_7 extends MovieClip { public function BGspider_7(){ addFrameScript(63, frame64); } function frame64(){ stop(); } } }//package JetSkiMario_fla
Section 99
//BGsuperman_53 (JetSkiMario_fla.BGsuperman_53) package JetSkiMario_fla { import flash.display.*; public dynamic class BGsuperman_53 extends MovieClip { public function BGsuperman_53(){ addFrameScript(101, frame102); } function frame102(){ stop(); } } }//package JetSkiMario_fla
Section 100
//explosion_228 (JetSkiMario_fla.explosion_228) package JetSkiMario_fla { import flash.display.*; public dynamic class explosion_228 extends MovieClip { public function explosion_228(){ addFrameScript(24, frame25); } function frame25(){ stop(); } } }//package JetSkiMario_fla
Section 101
//gembok_384 (JetSkiMario_fla.gembok_384) package JetSkiMario_fla { import flash.display.*; public dynamic class gembok_384 extends MovieClip { public function gembok_384(){ addFrameScript(59, frame60); } function frame60(){ stop(); } } }//package JetSkiMario_fla
Section 102
//gledek_191 (JetSkiMario_fla.gledek_191) package JetSkiMario_fla { import flash.display.*; public dynamic class gledek_191 extends MovieClip { public function gledek_191(){ addFrameScript(34, frame35); } function frame35(){ stop(); } } }//package JetSkiMario_fla
Section 103
//iconlevel1_382 (JetSkiMario_fla.iconlevel1_382) package JetSkiMario_fla { import flash.display.*; public dynamic class iconlevel1_382 extends MovieClip { public function iconlevel1_382(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package JetSkiMario_fla
Section 104
//iconlevel10_409 (JetSkiMario_fla.iconlevel10_409) package JetSkiMario_fla { import flash.display.*; public dynamic class iconlevel10_409 extends MovieClip { public function iconlevel10_409(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package JetSkiMario_fla
Section 105
//iconlevel2_387 (JetSkiMario_fla.iconlevel2_387) package JetSkiMario_fla { import flash.display.*; public dynamic class iconlevel2_387 extends MovieClip { public function iconlevel2_387(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package JetSkiMario_fla
Section 106
//iconlevel3_389 (JetSkiMario_fla.iconlevel3_389) package JetSkiMario_fla { import flash.display.*; public dynamic class iconlevel3_389 extends MovieClip { public function iconlevel3_389(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package JetSkiMario_fla
Section 107
//iconlevel4_403 (JetSkiMario_fla.iconlevel4_403) package JetSkiMario_fla { import flash.display.*; public dynamic class iconlevel4_403 extends MovieClip { public function iconlevel4_403(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package JetSkiMario_fla
Section 108
//iconlevel5_391 (JetSkiMario_fla.iconlevel5_391) package JetSkiMario_fla { import flash.display.*; public dynamic class iconlevel5_391 extends MovieClip { public function iconlevel5_391(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package JetSkiMario_fla
Section 109
//iconlevel6_405 (JetSkiMario_fla.iconlevel6_405) package JetSkiMario_fla { import flash.display.*; public dynamic class iconlevel6_405 extends MovieClip { public function iconlevel6_405(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package JetSkiMario_fla
Section 110
//iconlevel7_393 (JetSkiMario_fla.iconlevel7_393) package JetSkiMario_fla { import flash.display.*; public dynamic class iconlevel7_393 extends MovieClip { public function iconlevel7_393(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package JetSkiMario_fla
Section 111
//iconlevel8_395 (JetSkiMario_fla.iconlevel8_395) package JetSkiMario_fla { import flash.display.*; public dynamic class iconlevel8_395 extends MovieClip { public function iconlevel8_395(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package JetSkiMario_fla
Section 112
//iconlevel9_407 (JetSkiMario_fla.iconlevel9_407) package JetSkiMario_fla { import flash.display.*; public dynamic class iconlevel9_407 extends MovieClip { public function iconlevel9_407(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package JetSkiMario_fla
Section 113
//LOGODUCKARCADE_18 (JetSkiMario_fla.LOGODUCKARCADE_18) package JetSkiMario_fla { import flash.display.*; import flash.events.*; import flash.net.*; public dynamic class LOGODUCKARCADE_18 extends MovieClip { public function LOGODUCKARCADE_18(){ addFrameScript(0, frame1); } function frame1(){ useHandCursor = true; buttonMode = true; addEventListener(MouseEvent.MOUSE_DOWN, navigateURL, false, 0, true); } public function navigateURL(_arg1:Event){ navigateToURL(new URLRequest("http://www.duckarcade.com/category/mario-games/1/top-rated.html?utm_medium=brandedgames_external&utm_campaign=mario-jet-ski&utm_source=ingame&utm_content=ingame")); } } }//package JetSkiMario_fla
Section 114
//MainTimeline (JetSkiMario_fla.MainTimeline) package JetSkiMario_fla { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.events.*; import caurina.transitions.*; import Playtomic.*; import flash.text.*; import flash.media.*; import flash.utils.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.filters.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.geom.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.xml.*; public dynamic class MainTimeline extends MovieClip { public var gui_overlay_textField_frontflip_text:TextField; public var NITRO_ID:int; public var checkPoints:Array; public var floor:b2Body; public var logShapeDef:b2PolygonDef; public var waterObjs:MovieClip; public var SHIP_LIGHT_BLUE_ID:int; public var respawnTime:Number; public var LOG_ID:int; public var SHIP_BLUE_ID:int; public var checkpointGoldStarCounter:int; public var gui_overlay_textField_levelComplete_textFormat:TextFormat; public var sound_skull:Sound; public var rampFloatShapeDef:b2PolygonDef; public var gui_bluestar; public var SHAPE_NON_COLLIDABLE:int; public var fastPlaying:Boolean; public var allObjects:Array; public var startY:int; public var SAIL_BOAT_RED_ID:int; public var ISLAND3_ID:int; public var gui_levelSelectionButton; public var superJumpPower:Number; public var COOLER_ID:int; public var redStarShapeDef:b2CircleDef; public var SAIL_BOAT_GREEN_ID:int; public var SHAPE_PELICAN_ID:int; public var SHAPE_HIPPO_ID:int; public var crocShapeDef:b2PolygonDef; public var CROC_ID:int; public var SHAPE_SKULL_ID:int; public var pauseText:TextField; public var aabb:b2AABB; public var RAMP_ID:int; public var sound_overlaySlide:Sound; public var SHAPE_STAR_GOLD_ID:int; public var SEA_MINE_ID:int; public var nitroSpeedMultiplier; public var coolerShapeDef:b2PolygonDef; public var map10:String; public var lastFrame:Number; public var logSideShapeDef:b2PolygonDef; public var canRampAccelerate:Boolean; public var gui_overlayPlaceholder:MovieClip; public var waterOffset:Number; public var SHAPE_DIVE_ID:int; public var LOOP_ID:int; public var REDSTAR_ID:int; public var icePlatform2ShapeDef:b2PolygonDef; public var hippoShapeDef:b2PolygonDef; public var ISLAND4_ID:int; public var BLUESTAR_ID:int; public var musicSoundTransform:SoundTransform; public var lastCheckPoint:b2Vec2; public var SHAPE_PLATFORM_ID:int; public var nitroLength:Number; public var darkenOverlay:Sprite; public var diveBoyancy:Number; public var spawnTimer:Number; public var PELICAN_ID:int; public var canLoopAccelerate:Boolean; public var gui_startGameButton; public var continues:int; public var isDead:Boolean; public var finishPos:Number; public var canSuperJump:Boolean; public var flipCounter:int; public var playerHotSpot:b2CircleDef; public var flipTorque:Number; public var nitroShapeDef:b2CircleDef; public var titleScreen:MovieClip; public var platform1ShapeDef:b2PolygonDef; public var gui_overlay_textField_powerups_text:TextField; public var hud:MovieClip; public var ISLAND5_ID:int; public var gui_overlay_textField_bluestar_text:TextField; public var toDestroy:Array; public var sound_jetskiIdle:Sound; public var lives:int; public var gui_placeholderContinueButton; public var map3s:Array; public var ICEBERG1_ID:int; public var gui_overlay_textField_redstar_text:TextField; public var sound_gameOver:Sound; public var mapWater:Array; public var SHAPE_BARREL_ID:int; public var BELL_BOUY_ID:int; public var sound_pelican:Sound; public var gui_goldstar; public var minSpeed:Number; public var contactListener:ContactListener; public var LIFE_ID:int; public var backgroundSoundChannel:SoundChannel; public var maxSpeed:Number; public var HIPPO_ID:int; public var riderShapeDef:b2PolygonDef; public var LEVEL_OVERLAY_MODE:int; public var sound_jetskiJump:Sound; public var timeThunder:int; public var totalSkullCounter:int; public var map:MovieClip; public var SKULL_ID:int; public var gui_overlay_textField_levelBonus_textFormat:TextFormat; public var cnt:int; public var ICEBERG2_ID:int; public var backFlipCounter:int; public var levelsUnlocked:Array; public var jumpPower:Number; public var map7s:Array; public var sound_jetskiFast:Sound; public var pauseFormat:TextFormat; public var nitroAccelerate:Boolean; public var gui_overlay_textField_skull_text:TextField; public var gui_tipsContinueButton; public var LOG_NO_PHYSICS_ID:int; public var map8s:Array; public var SHAPE_CROC_ID:int; public var INDIANS_NO_PHYSICS_ID:int; public var sound_walrus:Sound; public var checkpointSkullCounter:int; public var checkpointRedStarCounter:int; public var physDisplayObjects:Array; public var icePlatform1ShapeDef:b2PolygonDef; public var SHAPE_RAMP_ID:int; public var waterLine:Number; public var sound_levelComplete:Sound; public var goldStarShapeDef:b2CircleDef; public var MOTOR_BOAT_YELLOW_ID:int; public var sound_titleScreen:Sound; public var map9s:Array; public var diveMode:Boolean; public var ICE_PLATFORM_1:int; public var idlePlaying:Boolean; public var sound_thunder:Sound; public var ICE_PLATFORM_4:int; public var totalBackFlipCounter:int; public var guyonaraftShapeDef:b2PolygonDef; public var ICE_PLATFORM_2:int; public var ICE_PLATFORM_3:int; public var SHAPE_MINE_ID:int; public var ICEBERG3_ID:int; public var GOLDSTAR_ID:int; public var gui_overlay_textField_backflip_text:TextField; public var SHAPE_LOOP_ID:int; public var diveTimer:Number; public var GAME_MODE:int; public var SHAPE_COLLIDE_FRAME_2:int; public var platform4ShapeDef:b2PolygonDef; public var sound_jetskiNitro:Sound; public var gui_placeholderRestartButton; public var keys:Array; public var SHAPE_PLAYER_BODY_ID:int; public var waterBGCamera:MovieClip; public var redStarCounter:int; public var numberOfBGObjects:int; public var mineShapeDef:b2PolygonDef; public var sfxSoundChannel:SoundChannel; public var gui_overlay_textField_levelComplete:TextField; public var qq:int; public var GAME_OVER_MODE:int; public var mapSky:Array; public var ICEBERG4_ID:int; public var checkpointFlipCounter:int; public var SHAPE_STAR_BLUE_ID:int; public var sound_map:Sound; public var maxRotSpeed:Number; public var levelSel:MovieClip; public var debugDraw:b2DebugDraw; public var SHAPE_RAMP_HOTSPOT_ID:int; public var rampHotSpotShapeDef:b2CircleDef; public var diveObtained:Boolean; public var gui_overlay_textField_levelTotal_text:TextField; public var musicPlaying:Boolean; public var FLOOR_ID:int; public var gui_placeholderMoreGamesButton; public var sound_tntBarrel:Sound; public var map1:String; public var map3:String; public var map4:String; public var gui_placeholderMainMenuButton; public var map6:String; public var map7:String; public var map9:String; public var GUI_MODE:int; public var map5:String; public var map8:String; public var sound_marineMine:Sound; public var gravity:b2Vec2; public var totalTimer:Number; public var barrelShapeDef:b2CircleDef; public var map2:String; public var normalBoyancy:Number; public var SHAPE_STAR_RED_ID:int; public var rider:MovieClip; public var PAUSE_MODE:int; public var sound_inGameMusic:Sound; public var totalRedStarCounter:int; public var SHAPE_LIFE_ID:int; public var resumeFormat:TextFormat; public var blueStarShapeDef:b2CircleDef; public var GUY_ON_RAFT_ID:int; public var score:int; public var WALRUS_ID:int; public var gui_overlay_textField_levelTime_textFormat:TextFormat; public var camDifference:Number; public var icePlatform4ShapeDef:b2PolygonDef; public var sound_hippo:Sound; public var blueStarCounter:int; public var HIPPO_NO_PHYSICS_ID:int; public var mapBG:Array; public var iceStartY:Number; public var MOTOR_BOAT_RED_ID:int; public var floorPos:Number; public var gui_overlay_textField_continue:TextField; public var sound_checkpoint:Sound; public var SHAPE_PENGUIN_ID:int; public var currentMode:int; public var checkpointBackFlipCounter:int; public var gui_instructionsButton; public var totalBlueStarCounter:int; public var winrar:Boolean; public var goldStarCounter:int; public var SHAPE_GUY_ON_RAFT:int; public var MAP_MODE:int; public var nitroTimer:Number; public var diveShapeDef:b2CircleDef; public var canAccelerate:Boolean; public var PLATFORM1_ID:int; public var rampShapeDef:b2PolygonDef; public var diveTime:Number; public var LOG_SIDE_ID:int; public var platform3ShapeDef:b2PolygonDef; public var backCamera:MovieClip; public var slowPlaying:Boolean; public var totalFlipCounter:int; public var moveSpeed:Number; public var debugSprite:Sprite; public var resumeText:TextField; public var sfxSoundTransform:SoundTransform; public var gameOverTimer:Number; public var SHAPE_NITRO_ID:int; public var gui_overlay_textField_levelTime:TextField; public var SHIP_RED_ID:int; public var personShapeDef:b2PolygonDef; public var skyObjs:MovieClip; public var totalGoldStarCounter:int; public var skullShapeDef:b2PolygonDef; public var pelicanShapeDef:b2CircleDef; public var sound_dive:Sound; public var camera:MovieClip; public var sound_jetskiSlow:Sound; public var PENGUIN_ID:int; public var CHECKPOINT_ID:int; public var PLAYER_ID:int; public var PLATFORM2_ID:int; public var waterCamera:MovieClip; public var physicsScale:Number; public var timer:Number; public var DIVE_ID:int; public var RAMP_FLOATING_ID:int; public var SHAPE_WALRUS_ID:int; public var BG_ID:int; public var map10s:Array; public var gui_skull; public var gui_redstar; public var walrusShapeDef:b2PolygonDef; public var superJumpCounter:int; public var sound_guyonraft:Sound; public var powerupCounter:int; public var ISLAND1_ID:int; public var sound_jetskiCrash:Sound; public var sound_star:Sound; public var LOG_SIDE_NO_PHYSICS_ID:int; public var SHAPE_PLAYER_HOTSPOT_ID:int; public var midCamera:MovieClip; public var riderStartPos:b2Vec2; public var firstStart:Boolean; public var level:Number; public var checkpointPowerupCounter:int; public var BARREL_EXPLODE_ID:int; public var PLATFORM3_ID:int; public var waterBG:MovieClip; public var icePlatform3ShapeDef:b2PolygonDef; public var like_overlay:MovieClip; public var CROCS_NO_PHYSICS_ID:int; public var world:b2World; public var rotateSpeed:Number; public var canPlatformAccelerate:Boolean; public var sound_croc:Sound; public var Rain:MovieClip; public var gui_overlay_textField_goldstar_text:TextField; public var musicSoundChannel:SoundChannel; public var gui_tips:MovieClip; public var lifeShapeDef:b2CircleDef; public var gui_moreGamesButton; public var ISLAND2_ID:int; public var skullCounter:int; public var instructionOverlay:instructions; public var platform2ShapeDef:b2PolygonDef; public var totalPowerupCounter:int; public var FINISHPOINT_ID:int; public var checkpointBlueStarCounter:int; public var PLATFORM4_ID:int; public var SHAPE_PLAYER_ID:int; public var sound_penguin:Sound; public var penguinShapeDef:b2PolygonDef; public function MainTimeline(){ addFrameScript(0, frame1, 1, frame2, 3, frame4, 4, frame5, 5, frame6); } public function StopSounds():void{ StopPlaying(); } public function BodyCollisionCallback(_arg1:MovieClip, _arg2:MovieClip):void{ var _local3:MovieClip; var _local4:MovieClip; if (_arg1.type == PLAYER_ID){ _local3 = _arg1; _local4 = _arg2; } else { if (_arg2.type == PLAYER_ID){ _local3 = _arg2; _local4 = _arg1; } else { return; }; }; if ((((_local4.type == RAMP_ID)) || ((_local4.type == RAMP_FLOATING_ID)))){ canRampAccelerate = true; _local4.contactPoints++; }; if ((((((((((((((((_local4.type == PLATFORM1_ID)) || ((_local4.type == PLATFORM2_ID)))) || ((_local4.type == PLATFORM3_ID)))) || ((_local4.type == PLATFORM4_ID)))) || ((_local4.type == ICE_PLATFORM_1)))) || ((_local4.type == ICE_PLATFORM_2)))) || ((_local4.type == ICE_PLATFORM_3)))) || ((_local4.type == ICE_PLATFORM_4)))){ canPlatformAccelerate = true; _local4.contactPoints++; }; if (_local4.type == LOOP_ID){ }; } public function UpdateIsDead():void{ if (isDead){ return; }; var _local1:b2Vec2 = rider.physicsObject.GetWorldPoint(new b2Vec2(1, 0.4)); var _local2:b2Vec2 = rider.physicsObject.GetWorldPoint(new b2Vec2(-1, 0.4)); var _local3:Number = (rider.physicsObject.GetAngle() % (Math.PI * 2)); if (_local3 > Math.PI){ _local3 = (_local3 - (Math.PI * 2)); }; if (_local3 < -(Math.PI)){ _local3 = (_local3 + (Math.PI * 2)); }; if ((((_local1.y >= (waterLine - 0.2))) || ((_local2.y >= (waterLine - 0.2))))){ if ((((_local3 >= (Math.PI / 1.8))) || ((_local3 <= -((Math.PI / 2)))))){ SetDead(); }; }; } public function ShapeCollisionCallback(_arg1:b2ContactPoint):void{ var _local4:MovieClip; var _local5:b2Shape; var _local7:b2Vec2; var _local8:b2Vec2; if (isDead){ return; }; var _local2:b2Shape = _arg1.shape1; var _local3:b2Shape = _arg1.shape2; if ((((((_local2.GetUserData() == SHAPE_PLAYER_HOTSPOT_ID)) && ((_local3.GetUserData() == SHAPE_RAMP_HOTSPOT_ID)))) || ((((_local2.GetUserData() == SHAPE_RAMP_HOTSPOT_ID)) && ((_local3.GetUserData() == SHAPE_PLAYER_HOTSPOT_ID)))))){ canSuperJump = true; superJumpCounter++; }; if ((((_local2.GetBody().GetUserData() == null)) || ((_local3.GetBody().GetUserData() == null)))){ return; }; if (_local2.GetBody().GetUserData().type == PLAYER_ID){ _local4 = _local2.GetBody().GetUserData(); _local5 = _local3; } else { if (_local3.GetBody().GetUserData().type == PLAYER_ID){ _local4 = _local3.GetBody().GetUserData(); _local5 = _local2; } else { return; }; }; if (int(_local5.GetUserData()) == SHAPE_RAMP_HOTSPOT_ID){ }; if (int(_local5.GetUserData()) == SHAPE_RAMP_ID){ if (_local4.currentFrame == 1){ _local4.gotoAndPlay(2); }; }; if (int(_local5.GetUserData()) == SHAPE_SKULL_ID){ if (_local5.GetBody().GetUserData().visible){ _local5.GetBody().GetUserData().visible = false; skullCounter++; PlaySFX(sound_skull); AddText("-100", FadingText.FADE_BAD_FORMAT, 500, 80, (100 - (Math.random() * 110))); }; }; if (int(_local5.GetUserData()) == SHAPE_NITRO_ID){ if (_local5.GetBody().GetUserData().visible){ _local5.GetBody().GetUserData().visible = false; toDestroy.push(_local5.GetBody()); nitroTimer = nitroLength; nitroAccelerate = true; PlaySFX(sound_jetskiNitro); powerupCounter++; AddText("+25", FadingText.FADE_GOOD_FORMAT); AddText("NITRO!", FadingText.FADE_NEUTRAL_FORMAT, 800, 650, 0); }; }; if (int(_local5.GetUserData()) == SHAPE_DIVE_ID){ if (_local5.GetBody().GetUserData().visible){ _local5.GetBody().GetUserData().visible = false; toDestroy.push(_local5.GetBody()); nitroTimer = 0.4; diveTimer = diveTime; diveObtained = true; powerupCounter++; AddText("+25", FadingText.FADE_GOOD_FORMAT, 800, 80, (100 - (Math.random() * 110))); AddText("DIVE!", FadingText.FADE_NEUTRAL_FORMAT, 500, 650, 0); }; }; if (int(_local5.GetUserData()) == SHAPE_LIFE_ID){ if (_local5.GetBody().GetUserData().visible){ _local5.GetBody().GetUserData().visible = false; toDestroy.push(_local5.GetBody()); lives++; powerupCounter++; AddText("+25", FadingText.FADE_GOOD_FORMAT, 500, 80, (100 - (Math.random() * 110))); AddText("EXTRA LIFE!", FadingText.FADE_NEUTRAL_FORMAT, 800, 650, 0); }; }; if (int(_local5.GetUserData()) == SHAPE_STAR_RED_ID){ if (_local5.GetBody().GetUserData().visible){ _local5.GetBody().GetUserData().visible = false; toDestroy.push(_local5.GetBody()); redStarCounter++; PlaySFX(sound_star); AddText("+25", FadingText.FADE_GOOD_FORMAT, 500, 80, (100 - (Math.random() * 110))); }; }; if (int(_local5.GetUserData()) == SHAPE_STAR_BLUE_ID){ if (_local5.GetBody().GetUserData().visible){ _local5.GetBody().GetUserData().visible = false; toDestroy.push(_local5.GetBody()); blueStarCounter++; PlaySFX(sound_star); AddText("+50", FadingText.FADE_GOOD_FORMAT, 500, 80, (100 - (Math.random() * 110))); }; }; if (int(_local5.GetUserData()) == SHAPE_STAR_GOLD_ID){ if (_local5.GetBody().GetUserData().visible){ _local5.GetBody().GetUserData().visible = false; toDestroy.push(_local5.GetBody()); goldStarCounter++; PlaySFX(sound_star); AddText("+75", FadingText.FADE_GOOD_FORMAT, 500, 80, (100 - (Math.random() * 110))); }; }; if (int(_local5.GetUserData()) == SHAPE_BARREL_ID){ if (_local5.GetBody().GetUserData().currentFrame == 1){ _local5.GetBody().GetUserData().gotoAndPlay(1); _local7 = _arg1.normal; if (_local2.GetBody().GetUserData().type == PLAYER_ID){ _local7.Multiply(-1); }; _local7.Normalize(); _local7.Multiply(140); _local4.physicsObject.ApplyImpulse(_local7, _arg1.position); SetDead(); toDestroy.push(_local5.GetBody()); PlaySFX(sound_tntBarrel); }; }; if (int(_local5.GetUserData()) == SHAPE_MINE_ID){ if (_local5.GetBody().GetUserData().currentFrame == 1){ _local5.GetBody().GetUserData().gotoAndPlay(1); _local8 = _arg1.normal; if (_local2.GetBody().GetUserData().type == PLAYER_ID){ _local8.Multiply(-1); }; _local8.Normalize(); _local8.Multiply(140); _local4.physicsObject.ApplyImpulse(_local8, _arg1.position); SetDead(); toDestroy.push(_local5.GetBody()); PlaySFX(sound_marineMine); }; }; if (int(_local5.GetUserData()) == SHAPE_NON_COLLIDABLE){ SetDead(); PlaySFX(sound_croc); }; if (int(_local5.GetUserData()) == SHAPE_CROC_ID){ SetDead(); _local5.GetBody().GetUserData().gotoAndPlay(2); PlaySFX(sound_croc); }; if (int(_local5.GetUserData()) == SHAPE_HIPPO_ID){ SetDead(); _local5.GetBody().GetUserData().gotoAndPlay(2); PlaySFX(sound_hippo); }; if (int(_local5.GetUserData()) == SHAPE_PELICAN_ID){ SetDead(); _local5.GetBody().GetUserData().gotoAndPlay(2); PlaySFX(sound_pelican); }; if (int(_local5.GetUserData()) == SHAPE_PENGUIN_ID){ SetDead(); _local5.GetBody().GetUserData().gotoAndPlay(2); PlaySFX(sound_penguin); }; if (int(_local5.GetUserData()) == SHAPE_WALRUS_ID){ SetDead(); _local5.GetBody().GetUserData().gotoAndPlay(2); PlaySFX(sound_walrus); }; if (int(_local5.GetUserData()) == SHAPE_GUY_ON_RAFT){ SetDead(); _local5.GetBody().GetUserData().gotoAndPlay(41); PlaySFX(sound_guyonraft); }; if (int(_local5.GetUserData()) == SHAPE_SKULL_ID){ if (_local5.GetBody().GetUserData().visible){ _local5.GetBody().GetUserData().visible = false; toDestroy.push(_local5.GetBody()); }; }; if (int(_local5.GetUserData()) == SHAPE_LOOP_ID){ canLoopAccelerate = true; }; var _local6:b2Shape; if (_local2.GetUserData() == SHAPE_PLAYER_BODY_ID){ _local6 = _local3; }; if (_local3.GetUserData() == SHAPE_PLAYER_BODY_ID){ _local6 = _local2; }; if (_local6 != null){ switch (_local6.GetUserData()){ case SHAPE_PLATFORM_ID: case SHAPE_RAMP_ID: case SHAPE_LOOP_ID: SetDead(); break; }; }; } public function MoreGames(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.duckarcade.com/category/mario-games/1/top-rated.html?utm_medium=brandedgames_external&utm_campaign=mario-jet-ski&utm_source=ingame&utm_content=ingame")); } public function nextLevel(_arg1:Event){ HideOverlay(); if (darkenOverlay.parent){ removeChild(darkenOverlay); }; if (level == 10){ ShowEndOverlay(timer, powerupCounter, redStarCounter, blueStarCounter, goldStarCounter, skullCounter, backFlipCounter, flipCounter); return; }; level++; showMap(null); ResetScores(); } public function CheckAndAddLevel():void{ var _local1:int; for each (_local1 in levelsUnlocked) { if (_local1 == level){ return; }; }; levelsUnlocked.push(level); map[("mLevel" + level)].gotoAndStop(2); } public function QuitGUI():void{ currentMode = -1; gui_startGameButton.removeEventListener(MouseEvent.CLICK, showMap); gui_instructionsButton.removeEventListener(MouseEvent.CLICK, Instructions); gui_moreGamesButton.removeEventListener(MouseEvent.CLICK, MoreGames); removeChild(gui_startGameButton); removeChild(gui_instructionsButton); removeChild(gui_moreGamesButton); removeChild(titleScreen); StopSounds(); PlayBackground(); } public function Jump():void{ if (isDead){ return; }; var _local1:b2Vec2 = rider.physicsObject.GetLinearVelocity(); if (canSuperJump){ rider.physicsObject.SetLinearVelocity(new b2Vec2(_local1.x, superJumpPower)); rider.gotoAndPlay(2); sound_jetskiJump.play(0, 0, sfxSoundTransform); } else { if (((((canAccelerate) || (canRampAccelerate))) || (canPlatformAccelerate))){ rider.physicsObject.SetLinearVelocity(new b2Vec2(_local1.x, jumpPower)); rider.gotoAndPlay(2); sound_jetskiJump.play(0, 0, sfxSoundTransform); }; }; } public function MainMenuBtn(_arg1:MouseEvent):void{ HideOverlay(); RemoveBackgroundGraphics(); InitGUI(); } function frame6(){ musicSoundTransform = new SoundTransform(); sfxSoundTransform = new SoundTransform(); musicSoundChannel = new SoundChannel(); backgroundSoundChannel = new SoundChannel(); sfxSoundChannel = new SoundChannel(); musicPlaying = false; idlePlaying = false; slowPlaying = false; fastPlaying = false; hud.sfxgui.addEventListener(MouseEvent.CLICK, SFXEv); hud.soundgui.addEventListener(MouseEvent.CLICK, SoundEv); sound_titleScreen = new titlescreen_sound(); sound_jetskiCrash = new jetskicrash_sound(); sound_jetskiFast = new jetskifast_sound(); sound_jetskiJump = new jetskijump_sound(); sound_jetskiSlow = new jetskislow_sound(); sound_jetskiIdle = new jetskiidle_sound(); sound_inGameMusic = new ingamemusic_sound(); sound_jetskiNitro = new jetskinitro_sound(); sound_gameOver = new gameover_sound(); sound_marineMine = new marinemine_sound(); sound_overlaySlide = new overlayslide_sound(); sound_star = new star_sound(); sound_skull = new skull_sound(); sound_tntBarrel = new marinemine_sound(); sound_levelComplete = new levelcomplete_sound(); sound_dive = new dive_sound(); sound_checkpoint = new checkpoint_sound(); sound_croc = new hit_sound(); sound_hippo = new hit_sound(); sound_pelican = new hit_sound(); sound_penguin = new hit_sound(); sound_walrus = new hit_sound(); sound_guyonraft = new hit_sound(); sound_thunder = new thunder_sound(); sound_map = new map_sound(); instructionOverlay = new instructions(); instructionOverlay.x = 325; instructionOverlay.y = 212.5; instructionOverlay.backBtn.addEventListener(MouseEvent.MOUSE_DOWN, removeInstructionOverlay); firstStart = false; winrar = false; levelsUnlocked = new Array(); levelsUnlocked.push(1); levelSel = new levelSelection(); levelSel.x = 465; levelSel.y = 275; qq = 1; while (qq <= 10) { levelSel[("l" + qq)].buttonMode = true; qq++; }; gui_tips = new hint(); gui_tips.x = 200; gui_tips.y = 110; gui_tipsContinueButton = new overlay_continueButton(); gui_tipsContinueButton.x = 28; gui_tipsContinueButton.y = 165; gui_tips.addChild(gui_tipsContinueButton); titleScreen = new titlescreen(); titleScreen.cacheAsBitmap = true; gui_startGameButton = new startGameButton(); gui_startGameButton.x = 150; gui_startGameButton.y = 270; gui_instructionsButton = new instructionsButton(); gui_instructionsButton.x = 150; gui_instructionsButton.y = 320; gui_levelSelectionButton = new levelSelectionButton(); gui_levelSelectionButton.x = 150; gui_levelSelectionButton.y = 314; gui_moreGamesButton = new moreGamesButton(); gui_moreGamesButton.x = 150; gui_moreGamesButton.y = 370; gui_placeholderMoreGamesButton = new overlay_moreGamesButton(); gui_placeholderContinueButton = new overlay_nextLevelButton(); gui_placeholderMainMenuButton = new overlay_mainMenuButton(); gui_placeholderRestartButton = new overlay_continueButton(); gui_overlayPlaceholder = new placeholder(); gui_overlayPlaceholder.x = 45; gui_overlayPlaceholder.y = 30; gui_overlay_textField_levelComplete_textFormat = new TextFormat("Showcard Gothic", 30, 0xFFFFFF, true, null, null, null, null, TextFormatAlign.CENTER); gui_overlay_textField_levelComplete = new TextField(); gui_overlay_textField_levelComplete.width = 340; gui_overlay_textField_levelComplete.defaultTextFormat = gui_overlay_textField_levelComplete_textFormat; gui_overlay_textField_levelComplete.text = "Level Complete!"; gui_overlayPlaceholder.addChild(gui_overlay_textField_levelComplete); gui_overlay_textField_levelBonus_textFormat = new TextFormat("Showcard Gothic", 20, 0xFFFFFF); gui_overlay_textField_levelTime_textFormat = new TextFormat("Showcard Gothic", 25, 0xFFFFFF, true, null, null, null, null, TextFormatAlign.CENTER); gui_overlay_textField_levelTime = new TextField(); gui_overlay_textField_levelTime.width = 340; gui_overlay_textField_levelTime.y = 30; gui_overlay_textField_levelTime.defaultTextFormat = gui_overlay_textField_levelTime_textFormat; gui_overlayPlaceholder.addChild(gui_overlay_textField_levelTime); cnt = 0; startY = 90; gui_overlay_textField_powerups_text = new TextField(); gui_overlay_textField_powerups_text.y = (startY + (cnt * 30)); gui_overlay_textField_powerups_text.width = 340; gui_overlay_textField_powerups_text.defaultTextFormat = gui_overlay_textField_levelBonus_textFormat; gui_overlayPlaceholder.addChild(gui_overlay_textField_powerups_text); cnt++; gui_redstar = new redstar(); gui_redstar.scaleX = 0.4; gui_redstar.scaleY = 0.4; gui_redstar.y = ((startY + 13) + (cnt * 30)); gui_overlayPlaceholder.addChild(gui_redstar); gui_overlay_textField_redstar_text = new TextField(); gui_overlay_textField_redstar_text.y = (startY + (cnt * 30)); gui_overlay_textField_redstar_text.width = 340; gui_overlay_textField_redstar_text.defaultTextFormat = gui_overlay_textField_levelBonus_textFormat; gui_overlayPlaceholder.addChild(gui_overlay_textField_redstar_text); cnt++; gui_bluestar = new bluestar(); gui_bluestar.scaleX = 0.4; gui_bluestar.scaleY = 0.4; gui_bluestar.y = ((startY + 13) + (cnt * 30)); gui_overlayPlaceholder.addChild(gui_bluestar); gui_overlay_textField_bluestar_text = new TextField(); gui_overlay_textField_bluestar_text.y = (startY + (cnt * 30)); gui_overlay_textField_bluestar_text.width = 340; gui_overlay_textField_bluestar_text.defaultTextFormat = gui_overlay_textField_levelBonus_textFormat; gui_overlayPlaceholder.addChild(gui_overlay_textField_bluestar_text); cnt++; gui_goldstar = new goldstar(); gui_goldstar.scaleX = 0.4; gui_goldstar.scaleY = 0.4; gui_goldstar.y = ((startY + 13) + (cnt * 30)); gui_overlayPlaceholder.addChild(gui_goldstar); gui_overlay_textField_goldstar_text = new TextField(); gui_overlay_textField_goldstar_text.y = (startY + (cnt * 30)); gui_overlay_textField_goldstar_text.width = 340; gui_overlay_textField_goldstar_text.defaultTextFormat = gui_overlay_textField_levelBonus_textFormat; gui_overlayPlaceholder.addChild(gui_overlay_textField_goldstar_text); cnt++; gui_skull = new skull(); gui_skull.scaleX = 0.25; gui_skull.scaleY = 0.25; gui_skull.y = ((startY + 16) + (cnt * 30)); gui_overlayPlaceholder.addChild(gui_skull); gui_overlay_textField_skull_text = new TextField(); gui_overlay_textField_skull_text.y = (startY + (cnt * 30)); gui_overlay_textField_skull_text.width = 340; gui_overlay_textField_skull_text.defaultTextFormat = gui_overlay_textField_levelBonus_textFormat; gui_overlayPlaceholder.addChild(gui_overlay_textField_skull_text); cnt++; gui_overlay_textField_backflip_text = new TextField(); gui_overlay_textField_backflip_text.y = (startY + (cnt * 30)); gui_overlay_textField_backflip_text.width = 340; gui_overlay_textField_backflip_text.defaultTextFormat = gui_overlay_textField_levelBonus_textFormat; gui_overlayPlaceholder.addChild(gui_overlay_textField_backflip_text); cnt++; gui_overlay_textField_frontflip_text = new TextField(); gui_overlay_textField_frontflip_text.y = (startY + (cnt * 30)); gui_overlay_textField_frontflip_text.width = 340; gui_overlay_textField_frontflip_text.defaultTextFormat = gui_overlay_textField_levelBonus_textFormat; gui_overlayPlaceholder.addChild(gui_overlay_textField_frontflip_text); cnt++; gui_overlay_textField_levelTotal_text = new TextField(); gui_overlay_textField_levelTotal_text.y = (startY + (cnt * 30)); gui_overlay_textField_levelTotal_text.width = 340; gui_overlay_textField_levelTotal_text.defaultTextFormat = gui_overlay_textField_levelBonus_textFormat; gui_overlayPlaceholder.addChild(gui_overlay_textField_levelTotal_text); cnt++; gui_overlay_textField_continue = new TextField(); gui_overlay_textField_continue.width = 340; gui_overlay_textField_continue.y = (startY + (cnt * 30)); gui_overlay_textField_continue.defaultTextFormat = gui_overlay_textField_levelBonus_textFormat; gui_overlayPlaceholder.addChild(gui_overlay_textField_continue); gui_placeholderMoreGamesButton.x = 365; gui_placeholderMoreGamesButton.y = 330; gui_overlayPlaceholder.addChild(gui_placeholderMoreGamesButton); gui_placeholderMoreGamesButton.addEventListener(MouseEvent.CLICK, MoreGames); gui_placeholderMainMenuButton.x = 365; gui_placeholderMainMenuButton.y = 230; gui_overlayPlaceholder.addChild(gui_placeholderMainMenuButton); gui_placeholderMainMenuButton.addEventListener(MouseEvent.CLICK, MainMenuBtn); gui_placeholderContinueButton.x = 365; gui_placeholderContinueButton.y = 280; gui_placeholderRestartButton.x = 365; gui_placeholderRestartButton.y = 280; like_overlay = new likeOverlay(); like_overlay.yes.addEventListener(MouseEvent.CLICK, YesButton); like_overlay.no.addEventListener(MouseEvent.CLICK, NoButton); like_overlay.x = ((650 - like_overlay.width) / 2); like_overlay.y = ((425 - like_overlay.height) / 2); map = new Map(); map.playBtn.addEventListener(MouseEvent.CLICK, ChooseLevelSelect, false, 0, true); map1 = "0, 395.8, 9.6|0, 8.66, 9.6|6, 288.26, 9.6|3, 409.93, 4.46|3, 413.2, 4.4|0, 940.46, 9.6|1, 960.13, 9.6|1, 968.86, 9.6|1, 977.26, 9.6|0, 627.6, 9.6|3, 23.4, -3.73|3, 27.33, -3.86|2, 27.33, 2.52|2, 23.66, 2.52|0, 78.2, 9.6|1, 90.6, 9.6|1, 97.93, 9.6|0, 206.6, 9.6|4, 221.4, -2.65|4, 226.6, -3.11|4, 231.73, -3.06|3, 218.6, 1.6|3, 223.6, 1.4|3, 228.8, 1.26|4, 288.2, 5.8|9, 423.2, 0.33|11, 500.46, 9.6|4, 645.73, -2.93|2, 645.73, 0.8|2, 650.2, 0.86|2, 654.73, 0.93|4, 654.66, -2.86|4, 650.13, -2.93|1, 331.85, 9.6|3, 343, 7.8|3, 346.8, 7.8|1, 362.33, 9.6|4, 91.06, -2.33|4, 97.6, -2.6|4, 104.4, -2.6|4, 246.2, 1.66|8, 442.73, 1.93|4, 444.66, 0.13|4, 450.6, 0.06|4, 447.8, 0.06|4, 461.73, 2|4, 464.6, 1.86|5, 536.66, 9.6|5, 561.52, 9.6|5, 587.52, 9.6|3, 573.86, 7.73|3, 548.13, 7.73|1, 696.52, 9.6|1, 726.92, 9.6|4, 696.33, 6.73|4, 726.86, 6.66|3, 711, 7.73|3, 740.4, 7.8|1, 754.92, 9.6|4, 754.73, 6.33|30, 380.44, 9.6|30, 772.73, 9.6|14, -1.51, 4.55|15, 148.78, 7.66|0, 157.63, 9.6|13, 168.23, -2.25|4, 173.3, 1.04|4, 173.85, -1.9|4, 173.09, -4.85|3, 165, -6.5|20, 167.75, -7.32|4, 826.32, 7.67|4, 832.37, 7.86|0, 867.65, 9.6|13, 878.43, -2.33|2, 883.44, 0.21|2, 882.4, -6.21|2, 875.02, -5.83|2, 874.17, 0.97|3, 883.72, -3|3, 878.71, -7.25|3, 873.51, -2.42|12, 910.39, 9.6|2, 910.29, 6.5566|1, 793.13, 9.6|3, 792.94, 6.5033|15, 854.88, 7.27|3, 163.87, 1.7|3, 162.7333, -1.1266|3, 163.4899, -3.87|4, 171.0533, -6.33|09, 968.4333, -1.8|04, 969.4266, -3.5933|04, 975.5033, -3.4066|04, 981.27, -3.4066|09, 1000.12, -2.0333|04, 1000.8066, -3.45|04, 1003.8466, -3.45|04, 1007.4433, -3.45|04, 1010.73, -3.45|04, 1013.6433, -3.5166|07, 1022.8833, 1.4433|03, 1025.18, -0.79|31, 1051.1033, 9.6|"; map2 = "1, 22.4, 9.6|0, 121.2, 9.6|9, 151.8, -2.25|9, 182.73, -2.33|9, 215.66, -2.13|1, 176.92, 9.6|1, 211.25, 9.6|2, 151.53, 7.86|2, 194.73, 7.86|3, 155.32, -4.33|3, 160.25, -4.33|3, 164.86, -4.26|4, 185.73, -4.4|4, 190.4, -4.6|4, 194.6, -4.66|4, 219.06, -4.53|4, 223.53, -4.66|4, 227.6, -4.73|0, 314.93, 9.6|10, 342.93, -0.26|3, 346.4, -2.4|3, 350.2, -2.46|10, 387.85, -0.86|4, 390.6, -3.33|4, 394.33, -3.33|4, 398.06, -3.33|0, 496.86, 9.6|9, 527.4, -1.93|9, 551.6, -5.2|9, 575.2, -8.46|1, 609.4, 9.6|1, 645.33, 9.6|1, 678.8, 9.6|1, 581.4, 9.6|2, 597.66, 7.86|2, 630, 7.86|2, 664.33, 7.8|3, 609.86, 5.66|3, 645.2, 5.33|3, 678.86, 5.2|8, 597.33, -6.86|8, 624.6, -7|8, 650.05, -6.93|8, 675.33, -7.6|8, 689.4, -5|7, 717.4, -4.6|5, 710, 9.6|6, 771.6, 9.6|4, 771.45, 5.4|0, 865.13, 9.6|1, 908.53, 9.6|1, 937.4, 9.6|1, 963.73, 9.6|2, 923.73, 7.13|2, 952.46, 7.2|3, 908.53, 5.25|0, 1000.06, 9.6|1, 1014.53, 9.6|1, 1020.46, 9.6|1, 1026.26, 9.6|4, 1015.13, -1.6|4, 1021.93, -1.46|4, 1028, -1.53|0, 1077.59, 9.6|8, 1107.6, -3|8, 1137.93, -3|7, 1153.53, -1.2|3, 1114.73, -5.33|3, 1110.6, -5.33|3, 1141, -5.46|3, 1145.05, -5.6|4, 1155.8, -3.8|3, 937.46, 5.2|3, 963.8, 5.25|4, 803.13, 4.86|11, 803.26, 9.6|4, 692.45, -7.66|4, 696.4, -7.73|4, 678.45, -10.66|4, 682.66, -10.93|3, 653.4, -9.53|3, 657.33, -9.8|3, 627.6, -9.46|3, 631.13, -9.6|2, 600.13, -9.26|2, 604, -9.6|4, 577.52, -10.8|4, 582.45, -11|4, 587.86, -11.12|3, 554.6, -7.73|3, 559.6, -7.86|3, 564.33, -8.13|3, 530.86, -4.86|3, 535.4, -5.13|3, 539.86, -5.13|9, 396.52, -10.93|0, 361.6, -1.06|3, 22.52, 6|15, 450.73, 7.8|15, 856.86, 7.8|0, 459.73, 9.6|13, 875.8, -2.52|4, 870.92, -1.53|4, 875.66, -7.6|4, 880.93, -1.12|3, 880.13, -5.33|3, 872.26, -5.66|14, 0, 5.6|13, 470.4, -2.6|3, 474.73, -1.06|3, 474.93, -5.53|3, 471.6, -7.86|3, 467.13, -6.0533|3, 466.6, -1.93|4, 475.13, -3.2|4, 473.26, -7.13|4, 469.26, -7.13|4, 466.93, -3.93|30, 260.14, 9.6|30, 419.92, 9.6|30, 744.42, 9.6|31, 1187.57, 9.6|4, 398.5166, -12.95|4, 404.32, -13.03|20, 409.2, -13.03|20, 719.58, -6.48|15, 53.8, 8.41|0, 65.15, 9.6|13, 75.8333, -2.36|4, 80.94, 0.28|4, 81.7, -2.55|4, 81.2233, -5.1|4, 79.24, -6.99|3, 71.11, 1.7|3, 72.34, -6.52|3, 70.4433, -4.25|3, 70.2533, -0.94|20, 75.6433, -7.4633|12, 283.3366, 9.6|"; map3 = "18, 121.53, 9.6|18, 146.46, 9.6|18, 171.46, 9.6|2, 121.4, 6.46|2, 146.3133, 6.53|2, 171.25, 6.25|0, 216.46, 9.6|0, 238.13, -2.4|10, 260.2, -2.13|3, 261.13, -3.8|3, 276.65, -4.13|3, 271.52, -4|3, 266, -3.93|4, 261.33, -15.8|4, 271.26, -16|4, 266.33, -15.86|9, 260.33, -13.46|8, 298.8, -1.66|10, 318.2, -13.26|4, 319.93, -15|4, 324.8, -14.93|0, 331.26, -12.85|8, 294.06, -13.13|4, 295, -15|4, 298.4, -15.2|8, 325.93, -1.66|7, 355.65, -1.2|4, 357.4, -3.06|16, 286.72, 9.6|16, 315.8, 9.6|16, 346.5133, 9.6|2, 346.4, 5.5|2, 315.72, 5.5|2, 286.65, 5.5|20, 353.72, -28.33|4, 353.8, -26|4, 356.65, -26.13|4, 350.85, -26.06|3, 329.06, -3.25|3, 332.4, -3.25|3, 306.46, -3.66|3, 302.6, -3.66|17, 574.73, 9.6|4, 574.52, 5.93|15, 604.6, 7.73|0, 623.6, 9.6|3, 674.2, 5.66|3, 677.86, 5.46|0, 716.05, 9.6|1, 729.52, 9.6|1, 736.2, 9.6|4, 735.33, -3.86|4, 739.52, -4|19, 93.2, 9.6|3, 93.06, 6.8|19, 676.45, 9.6|0, 784.33, 9.6|0, 807.33, -2.86|10, 838.86, -12.2|15, 841.2, -14.2|0, 851.66, -12.1133|13, 868, -28.8|4, 872.92, -26.86|4, 871.46, -33.2|4, 864.52, -32.93|4, 863.6, -27.06|3, 863.06, -30.4|3, 867.8, -33.46|3, 873.06, -30|17, 946.53, 9.6|2, 875.4, -7.53|2, 888.13, -8|3, 885.13, -7.93|3, 878.6, -7.86|2, 882, -7.93|4, 805.4, 3.66|4, 808.66, 3.53|1, 842.46, 9.6|1, 846.33, 9.6|4, 844.46, 7|5, 869.46, 9.6|3, 869.26, 6.66|1, 898.33, 9.6|1, 894, 9.6|3, 896.13, 6.46|16, 1002.26, 9.6|14, 0.33, 3.86|19, 413.99, 9.6|2, 413.83, 6.4266|1, 439.75, 9.35|3, 439.75, 5.95|5, 459.1, 9.6|1, 481.95, 9.44|3, 481.95, 6.61|5, 504.55, 9.6|19, 532.04, 9.51|3, 531.79, 6.53|30, 191.52, 9.6|30, 397.32, 9.6|30, 585.36, 9.6|31, 1024.1066, 9.6|4, 640.0233, -0.45|4, 640.51, -4.46|4, 637.67, -7.51|4, 633.19, -7.69|4, 630.27, -5.5|4, 629.49, -1.1|19, 48.51, 9.6|3, 49.9, 6.63|3, 47.35, 6.63|16, 23.73, 9.6|3, 23.73, 5.5|13, 635.53, -2.6|10, 870.95, -5.3233|"; map4 = "14, 0.6, 7.73|19, 31.86, 9.6|3, 31.8, 5.6|0, 70.2, 9.6|1, 82.6, 9.6|1, 87.8, 9.6|4, 82.8, -2.6|4, 88.26, -2.6|5, 161.3133, 9.6|19, 198.73, 9.6|2, 212.86, 7.93|19, 229.26, 9.6|19, 258.72, 9.6|2, 246.06, 7.8|0, 302.85, 9.6|9, 331.26, -2|21, 344.72, -2.25|10, 359.65, -2.46|9, 371.8, -11.66|8, 404.06, -11.6|1, 350.8, 9.6|1, 385.06, 9.6|1, 417, 9.6|2, 350.93, 6.25|2, 384.85, 6.33|2, 416.85, 6.33|2, 315.65, 4.05|2, 319.06, 4|4, 335.65, -3.86|3, 375.8, -5.6|3, 369.93, -5.66|3, 363.46, -5.53|4, 376.13, -14.33|4, 382.72, -14.4|20, 409.2, -14.46|7, 432.26, -11.6|18, 532.2, 9.6|3, 532.26, 5.86|0, 573, 9.6|9, 601.66, -1.2|5, 617.33, 7.8|4, 604.52, -3.66|4, 608.66, -3.8|4, 613, -3.8|0, 682, 9.6|8, 709.86, -1.4|4, 711.6, -3.8|4, 715, -3.8|4, 752.45, 14.06|4, 752.45, 11.93|4, 755.26, 11.85|4, 755.52, 14.33|4, 758.45, 14.4|4, 758.2, 12.2|4, 749.73, 11.93|4, 749.92, 14.2|4, 750, 16.46|4, 752.45, 16.52|4, 755.73, 16.8|4, 758.52, 16.73|4, 761.8, 16.93|4, 764.4, 17.2|4, 764.45, 14.93|4, 761.8, 14.73|4, 764.52, 12.1133|4, 761.8, 12.26|18, 816.86, 9.6|19, 844.73, 9.6|18, 869.52, 9.6|4, 816.86, 6.2|4, 844.6, 6.4|4, 869.52, 6.53|0, 920.86, 9.6|8, 949.13, -1.4|8, 973.46, -1.32|8, 996.2, -1.46|4, 977.86, -3.93|4, 1000.66, -3.73|4, 953.46, -3.46|1, 958.73, 9.6|1, 984, 9.6|1, 1003, 9.6|3, 970.06, 7.66|3, 994.13, 7.73|5, 1105.13, 9.6|0, 1144.6, 9.6|5, 1081.4, 9.6|5, 1057.26, 9.6|21, 1164.8, -2.13|21, 1184.53, -13.8|10, 1218.05, -24.73|4, 1221.4, -27.4|4, 1225, -27.53|4, 1228.6, -27.66|4, 1232.66, -27.53|22, 1236.53, -27.53|2, 1155.6, 4.13|2, 1158.85, 4.13|3, 1176.53, -7.6|3, 1179.8, -7.6|3, 1196.85, -19.13|3, 1199.93, -19.25|4, 1275.13, 13.33|4, 1278.73, 13.33|4, 1281.93, 13.4|4, 1285.46, 13.46|4, 1289.32, 13.46|4, 1274.85, 15.93|4, 1278.8, 16|4, 1282.13, 15.86|4, 1285.6, 16.13|4, 1289.66, 16.13|19, 1351.85, 9.6|3, 1351.8, 5.92|0, 1422.05, 9.6|15, 1416, 7.73|30, 272.97, 9.6|30, 654.89, 9.6|30, 897.73, 9.6|30, 1126.3, 9.6|31, 1478.73, 9.6|13, 1433.72, -2.4|3, 1438.6, -4.49|3, 1438.15, -1.1|3, 1437.43, -7.05|4, 1430.7, -7.17|4, 1429.63, -4.22|4, 1429.8533, -1.21|4, 1275.2, 11.46|4, 1278.93, 11.66|4, 1282.26, 11.6|4, 1285.66, 11.93|4, 1289.2, 11.66|22, 718.3, -3.76|20, 1433.8533, -8.43|"; map5 = "23, 26.93, 9.6|3, 29.6, 7.26|3, 57.93, 6.13|24, 98.12, 9.6|3, 101.06, 6.8|3, 105.06, 6.73|1, 151.73, 9.6|1, 158.73, 9.6|4, 155.32, 5.73|25, 211.66, 9.6|1, 57.8, 9.6|0, 268.39, 9.6|1, 279.65, 9.6|1, 284.65, 9.6|1, 289.8, 9.6|4, 280.46, -2|4, 285.13, -2.06|4, 289.06, -2.06|26, 343.6, 9.6|28, 379, 7.6|4, 379, 4.25|24, 414.13, 9.6|24, 436, 9.6|24, 454.26, 9.6|2, 421.86, 6.93|3, 442.26, 7.13|4, 462, 7.46|27, 502.93, 9.6|4, 502.8, 6.05|26, 547.66, 9.6|9, 610.73, -3|24, 600.8, 9.6|1, 603.52, 7.73|1, 606.8, 7.73|1, 609.86, 7.66|10, 638.2, -3.2|21, 583.05, 9|2, 641.33, -5.53|3, 647, -5.66|20, 617.66, -5.8|9, 683.6, -15.53|4, 690.45, -18.06|22, 697.66, -18.13|4, 737.33, 12.12|4, 740.8, 12.06|4, 744.2, 12.26|4, 737.4, 14.53|4, 740.73, 14.46|4, 744.2, 14.73|4, 737.6, 17.32|4, 740.92, 17.6|4, 744.6, 17.4|29, 750.8, 8.4|3, 750.8, 4.46|1, 670.52, 9.6|3, 670.66, 6.2|26, 903.4, 9.6|21, 937.66, 8.66|15, 911.66, 7.06|2, 918.66, 6.8|2, 924.93, 6.73|13, 948.4, -2.8|2, 953.06, -4.2|2, 951, -7.33|2, 947.2, -7.8|2, 943.93, -5.8|2, 952.66, -0.33|3, 953.06, -2.4|3, 952.46, -5.92|3, 949.53, -8|3, 945.33, -7.33|3, 943.26, -3.8|3, 944.33, 0.46|22, 943.2, -1.46|24, 956.46, 9.6|28, 962.6, 7.46|4, 960.13, 12.12|4, 963.86, 12|4, 967.46, 12.06|4, 960.26, 14.33|4, 960.2, 16.73|4, 964, 14.33|4, 964, 17.13|4, 967.4, 17.13|4, 967.33, 14.66|23, 1041.59, 9.6|29, 1046.26, 7.93|4, 1046.33, 3.92|25, 1060.53, 9.6|29, 1076.66, 8.72|2, 1063.13, 4.8|2, 1076.53, 5.2|27, 1141.66, 9.6|23, 1091.06, 9.6|2, 1093.6, 7.33|14, 0.26, 7.53|23, 228.33, 9.6|29, 232.53, 8.72|4, 232.53, 4.6|2, 1022.66, 5.33|25, 1022.93, 9.6|30, 316.16, 9.6|30, 558.14, 9.6|30, 992.21, 9.6|31, 1156.49, 9.6|25, 737.98, 9.6|21, 655.7633, -3.24|27, 820.8666, 9.6|02, 820.7666, 6.9066|27, 858.8133, 9.6|02, 858.8133, 6.7433|"; map6 = "0, 26.2366, 9.6|9, 54.35, -1.54|2, 55.27, -3.66|2, 61.25, -3.66|2, 67.61, -3.66|2, 40.46, 3.56|2, 44.4733, 3.56|7, 86.9, -1.71|9, 107.83, -1.04|3, 109.42, -2.72|3, 115.32, -2.72|3, 120.93, -2.72|6, 123.13, 9.6|3, 122.85, 5.91|0, 301.13, 9.6|9, 329.18, -1.78|1, 311.96, 9.6|1, 315.7, 9.6|3, 336.31, -3.24|21, 342.86, -2.02|10, 370.72, -12.9|3, 373.26, -14.41|3, 380.8333, -14.51|21, 388.6, -12.63|11, 378.47, 9.6|3, 378.28, 5.53|10, 434.3, -12.91|3, 447.65, -15.03|4, 411.33, -27|4, 415.07, -27.19|21, 518.65, -2.14|9, 546.66, -13.18|3, 547.87, -15.28|5, 562.77, 9.6|0, 592.7833, 9.6|4, 603.6, 0.15|3, 603.5, 3.24|1, 719.96, 9.6|4, 719.87, 6.52|0, 758.5333, 9.6|9, 786.94, -1.47|9, 776.09, 6.7533|2, 778.26, 4.89|2, 783.6766, 4.89|2, 789.57, 4.98|4, 788.87, -3.01|4, 794.39, -3.2|4, 800.37, -3.2|0, 842.73, 9.6|0, 496.86, 9.6|3, 561.5, -14.93|3, 554.2, -15.02|1, 653.2, 9.6|4, 653.12, 6.7|27, 680.19, 9.6|2, 680.1, 7.16|10, 567.17, -11.93|4, 585.49, -13.31|4, 577.16, -13.31|4, 569.12, -13.22|3, 853.75, 3.98|3, 857.0233, 3.79|10, 870.87, -2.2766|1, 890.78, 9.6|0, 1013.91, 9.6|4, 1025.5966, 3.95|10, 1041.5966, -2.68|4, 1044.32, -4.62|4, 1050.77, -4.91|21, 1058.82, -2.47|10, 1086.6033, -14.24|4, 1088.2, -16.17|4, 1093.25, -16.31|4, 1098.21, -16.31|21, 1103.9133, -14.16|9, 1131.97, -25.66|20, 1139.02, -27.49|1, 1064.25, 9.6|2, 1064.25, 5.71|4, 889.47, -4.81|4, 881.61, -4.72|4, 873.09, -4.72|1, 508.59, 9.6|11, 982.77, 9.6|4, 890.62, 6.51|0, 1243.97, 9.6|8, 1272.45, -2.32|8, 1296.34, -2|8, 1319.71, -2.1|2, 1275.35, -3.5|2, 1301.18, -3.5|2, 1324.2, -3.22|1, 1308.43, 9.6|1, 1333.3, 9.6|6, 1388.4, 9.6|31, 1403.36, 9.6|4, 1388.21, 6.38|30, 817.65, 9.6|14, -5.67, 5.08|15, 175.84, 7.73|13, 200.32, -2.2599|0, 189.64, 9.6|4, 203.38, -6.15|4, 205.29, 0.46|4, 205.37, -2.8366|4, 196.2566, 1.04|4, 195.1, -2.43|4, 196.92, -5.82|20, 199.99, -6.98|12, 251.9, 9.6|3, 251.74, 6.45|0, 418.75, 9.6|22, 429.19, 5.19|15, 930.83, 7.7|0, 944.25, 9.6|13, 954.27, -2.31|2, 958.98, 0.17|2, 957.16, -6.11|2, 950.79, -5.62|2, 949.79, 0.75|3, 958.9, -3.3|3, 953.77, -6.94|3, 949.71, -2.88|1, 1104.44, 9.6|2, 1104.3066, 6.1533|27, 1131.86, 9.6|27, 1157.77, 9.6|27, 1181.13, 9.6|4, 1131.8433, 6.59|4, 1157.6199, 6.46|4, 1180.6, 6.08|02, 452.8066, 11.17|02, 457.1433, 14.02|02, 461.6566, 15.03|02, 466.11, 14.2566|01, 462.7266, 9.6|01, 458.9833, 9.6|02, 468.84, 11.2|30, 478.9966, 9.6|"; map7 = "0, 33, 9.6|9, 60.86, -2.13|9, 116.86, -1.93|3, 64.13, -4.0566|3, 72.26, -4.2|3, 119.8, -4.6|1, 130.46, -4.4|1, 93.53, 9.6|2, 93.4, 5.73|1, 262.6, 9.6|4, 262.5233, 5.73|0, 303.33, 9.6|9, 331.06, -2|10, 361.2, -1.86|3, 334.33, -4.26|3, 341.8, -4.53|4, 364.26, -4.26|4, 373.06, -4.26|21, 377.8, -2.5233|0, 333.2, 9.6|2, 318.26, 7.8|2, 326.4, 7.73|1, 346.33, 9.6|2, 351.93, 7.73|2, 357.6, 7.8|2, 362.46, 7.73|10, 405.7233, -13.86|10, 402.6, -5.9233|27, 148.73, 9.6|3, 148.66, 6.2|4, 408.8, -17|4, 413.5233, -17.13|4, 418, -17.13|4, 422.13, -17.13|3, 405.33, -8.66|3, 409.8, -8.8|3, 413.86, -8.8|3, 418.2, -8.7233|0, 420.8, 9.6|10, 478.06, -2|4, 494.53, -4.4|4, 497, -4.4|2, 443.93, 7.6|2, 449.66, 7.53|2, 456.33, 7.66|5, 495.73, 9.6|10, 442.33, -1.8|5, 487.93, -3.53|20, 491.86, -3.93|0, 556.66, 9.6|9, 584.26, -2.2566|8, 612.66, -2.66|7, 638.26, -3.06|2, 587.73, -4.9233|2, 591.5233, -4.9233|2, 596.33, -5|3, 615.33, -5.33|3, 619.0566, -5.53|4, 640.6, -5.8|1, 618, 9.6|1, 566.66, 9.6|3, 584.2, 7.6|3, 641.2, 7.8|27, 735.8, 9.6|27, 703.86, 9.6|4, 703.86, 5.73|4, 735.8, 6.0566|5, 766.5233, 9.6|5, 792.33, 9.6|5, 817.73, 9.6|0, 845.2, 9.6|21, 867.13, -2.2566|21, 888.93, -14|9, 916.86, -25.46|1, 860, 9.6|27, 889.4, 9.6|1, 917.33, 9.6|27, 948.46, 9.6|22, 929.93, -27.8|15, 1006.6, 7.8|22, 997.4, 7.73|20, 1002, 0.46|4, 1006.73, 5.13|4, 1006.26, 2.93|4, 1004.6, 1.2|4, 999.53, 1.06|4, 997.53, 2.33|4, 996.4, 4.13|4, 996.4, 6.2566|4, 999, 11.1233|4, 1002.2, 11.1233|4, 1004.73, 11.1233|4, 995.86, 13.4|4, 998.86, 13.53|4, 1002.33, 13.53|4, 1004.86, 13.46|4, 1007.73, 13.8|13, 1001.93, 5.6|5, 1042.33, 9.6|1, 1066.8, 9.6|2, 1042.33, 6|3, 1066.8, 6.4|4, 1093.4, 6.33|27, 1093.4, 9.6|1, 1118.13, 9.6|5, 1143.3233, 9.6|3, 1118.0566, 6.2566|2, 1143.26, 6.53|0, 1182.8566, 9.6|10, 1210.73, -2.2566|2, 1196.8, 7.53|2, 1204.2, 7.53|27, 1223.4, 9.6|8, 1246.26, -2.5233|4, 1215.4, -4.66|4, 1219.13, -4.6|4, 1222.66, -4.6|10, 1275.8, -2.33|2, 1251.3233, -5.46|15, 1284.13, -5.2566|27, 1267.53, 9.6|21, 1292, -2.66|13, 1303.13, -14.46|22, 1298.8566, -10.66|3, 1297.66, -12.8566|3, 1297.26, -15.2|3, 1298.2, -17.93|3, 1300.26, -19.3233|3, 1302.93, -20.06|3, 1305.13, -19.13|3, 1306.66, -17.73|3, 1308.0566, -15.73|3, 1308.0566, -13.6|3, 1307.26, -11.4|2, 1311.6, 7.66|2, 1313.4, 9.53|2, 1316.66, 9.4|2, 1320.93, 9.7233|2, 1325.3233, 9.7233|2, 1313.3233, 11.8|2, 1316.93, 12.2|2, 1320.93, 12.4|2, 1313.8, 15.26|2, 1317.13, 15.8|2, 1320.73, 15.53|2, 1325.93, 15.86|2, 1326.0566, 12.93|2, 1329.26, 9.8566|2, 1333.8, 9.8566|2, 1329.66, 13.06|2, 1329.8566, 15.73|2, 1334, 16.13|2, 1334.13, 12.8566|14, -1.6, 8.06|31, 1354.48, 9.6|30, 1026.34, 9.6|30, 670.9266, 9.6|30, 280, 9.6|0, 190.06, 9.6|4, 205.2133, 0.35|4, 203.39, -6.6|4, 205.13, -2.96|3, 196.02, 1.09|3, 194.9433, -2.0466|3, 196.6, -5.5233|13, 200.4, -2.21|15, 178.8633, 7.97|20, 199.4833, -7.0133|1, 48.9333, 9.6|08, 93.05, -2|"; map8 = "17, 28.26, 9.6|0, 67, 9.6|9, 95.46, -2.2|8, 128.66, -2|7, 154.46, -1.66|2, 99.26, -4.66|2, 105.33, -4.8|3, 133.33, -4.8|4, 157.06, -4.33|16, 130.4, 9.6|4, 130.33, 5.5|16, 287.13, 9.6|3, 287.33, 5.5|0, 349.66, 9.6|15, 343.53, 7.8|13, 360.53, -2.06|2, 365, -0.13|2, 365.53, -3.06|2, 365.06, -5.73|2, 362.6, -7.33|20, 360.26, -7.8|3, 357.8, -7|3, 356.33, -5.33|3, 355.73, -3.2|3, 355.73, -0.8|3, 357.26, 1.46|16, 489.6, 9.6|17, 453.6, 9.6|16, 412.86, 9.6|2, 412.86, 5.6|3, 453.53, 5.73|4, 489.46, 5.8|0, 526.13, 9.6|21, 613.6, -2.2599|21, 635.86, -13.33|10, 635.8, -2.2599|3, 540.9266, 7.8|19, 562.4, 9.6|19, 602.86, 9.6|3, 583.2, 7.73|3, 629.0599, 7.86|5, 656.06, 9.6|1, 833.5266, 9.6|1, 839.9266, 9.6|3, 836.66, 5.73|16, 877.06, 9.6|4, 877, 5.5|1, 911.93, 9.6|1, 918, 9.6|3, 915.06, 5.66|16, 950.86, 9.6|0, 986.93, 9.6|4, 950.93, 5.5|2, 1032.06, 7.93|10, 595.66, -2|10, 555.66, -1.86|3, 558.26, -4.73|3, 572.8, -4.53|4, 604, -4.73|2, 647, -4.86|2, 653.4, -4.86|3, 667.66, -27.73|3, 674.13, -27.8|3, 680.73, -28.06|4, 706.46, -28.4|4, 712.2, -28.53|4, 718.4, -28.33|22, 992.93, 4.86|4, 1039.06, 9.6|4, 1042.2, 12.93|4, 1046, 14|4, 1051.02, 14.64|4, 1057.55, 14.38|4, 1063.49, 12.86|13, 1160.91, -27.11|1, 1050.55, 9.48|0, 1142.6166, 9.6|21, 1187.24, -13.97|10, 1184.52, -1.68|2, 1188.22, -4.38|2, 1194.95, -4.45|2, 1200.8233, -4.12|10, 1206.3633, -16.98|13, 1200.15, -29.49|15, 1204.57, -27.38|21, 1222.52, -17.12|15, 1213.21, -19.62|13, 1233.6633, -29.26|21, 1164.4166, -1.71|3, 1162.43, 7.45|17, 1196.49, 9.6|4, 1196.3533, 5.87|3, 1217.35, 7.8|4, 1204.8566, -30.54|4, 1200.57, -34.63|4, 1195.35, -31.26|2, 1195.68, -27.44|2, 1197.93, -33.9|2, 1203.74, -32.91|4, 1238.13, -27.0366|4, 1238.3233, -30.6|4, 1229.02, -27.23|4, 1228.89, -30.41|3, 1230.54, -32.9766|3, 1236.55, -33.38|20, 1233.71, -34.17|5, 1340.29, 9.6|0, 1372.37, 9.6|22, 1378.51, 4.72|17, 1440.49, 9.6|16, 1430.32, 9.6|4, 1424.45, 9.83|4, 1428.6033, 13.26|4, 1435.34, 16.03|4, 1440.42, 16.56|4, 1446.8233, 15.9|4, 1452.63, 12.6|31, 1496.59, 9.6|10, 701, -25.14|10, 664.69, -24.85|14, -3.3, 7.66|30, 503.91, 9.6|30, 961, 9.6|15, 199.4233, 7.73|0, 213.3333, 9.6|4, 228.74, 0.44|4, 229.2333, -2.62|4, 227.1633, -5.7633|3, 219.5433, 1.35|3, 218.6333, -1.9533|3, 220.62, -5.1|13, 224.1833, -2.37|20, 223.4333, -6.4233|3, 29.4066, 5.46|3, 26.26, 5.5433|"; map9 = "22, 158.4, -5.2333|19, 160.13, 9.6|0, 128.71, 9.6|18, 101.77, 9.6|2, 101.53, 6.83|2, 183, 12.4833|2, 186.6, 14.8833|2, 191, 16.2633|2, 195.4, 16.18|0, 265.74, 9.81|10, 294.2333, -1.7333|3, 297.93, -3.53|1, 312.3366, -4.05|4, 312.3, -5.24|10, 324.56, -1.96|3, 328.4033, -3.84|1, 342.3833, -4.4366|4, 342.3, -5.3033|1, 319.26, 9.6|3, 319, 6.89|3, 350.38, 6.8133|4, 353.92, 6.47|5, 396.8533, 9.6|19, 427.6366, 9.6|3, 427.4633, 6.99|1, 187.77, 9.6|1, 195.7933, 9.6|1, 191.65, 9.6|2, 199.7633, 14|2, 203.56, 11.33|0, 461.5733, 9.6|10, 489.5333, -2.12|3, 491.95, -3.92|3, 499.37, -3.92|21, 506.7933, -2.35|10, 534.5, -13.88|10, 530.27, -2.14|4, 537.8533, -15.92|15, 543.9833, -15.92|21, 550.54, -14.2|2, 533.02, -4.4|2, 540.1, -4.48|2, 548.1233, -4.5699|19, 507.05, 9.6|18, 548.04, 9.6|3, 506.88, 7.17|3, 547.9533, 6.9033|10, 559.4266, -4.88|10, 578.87, -4.8199|15, 588.52, -7.15|21, 596.2, -5.5066|4, 581.2733, -7.1133|13, 560.8099, -26.0833|13, 606.9333, -17.4333|27, 596.19, 9.6|3, 596.0133, 6.8033|27, 693.94, 9.6|4, 693.68, 6.6533|0, 724.83, 9.6|10, 752.74, -1.9333|22, 770.94, -3.57|2, 753.48, 7.9433|2, 770.26, 7.7833|2, 762.2333, 7.7833|1, 666.0733, 9.6|1, 662.62, 9.6|3, 664.09, 6.7633|19, 807.36, 9.6|4, 796.2233, 11.62|4, 799.5, 14.3|4, 804.3333, 16.11|4, 809.6, 16.54|4, 813.5733, 15.42|15, 860.87, 7.58|0, 877.75, 9.6|4, 816.9633, 12.9533|4, 819.9833, 10.02|13, 887.81, -2.2433|4, 893.44, 0.3833|4, 893.61, -2.8833|4, 883.5133, 1.6|4, 882.5633, -2.45|4, 888.09, -7.1133|4, 601.76, -13.54|4, 610.65, -20.9633|4, 612.4566, -17.4233|4, 600.98, -16.82|4, 602.45, -20.0133|20, 606.59, -22.2566|20, 560.67, -30.91|4, 564.0366, -29.7833|4, 566.11, -26.9333|4, 566.11, -23.2233|4, 556.1833, -22.7066|4, 555.41, -26.2433|4, 556.8733, -29.3533|18, 946.28, 9.6|18, 943.26, 9.6|2, 944.47, 6.68|0, 982.86, 9.6|9, 1010.7333, -2.0033|9, 1031.19, -4.1533|9, 1051.47, -6.6333|9, 1071.77, -8.9533|8, 1094.57, -11.75|2, 1013.17, -3.86|2, 1022.1933, -4.0233|3, 1043.2233, -5.87|3, 1033.07, -6.01|2, 1053.7733, -8.1|2, 1062.3933, -8.18|3, 1073.84, -10.8233|3, 1082.46, -10.6633|4, 1099.1333, -13.39|9, 1109.77, -8.87|9, 1130.53, -5.96|9, 1155.1666, -2.4033|3, 1110.77, -10.7433|3, 1122.6166, -10.82|3, 1155.8933, -4.1233|3, 1167.9, -4.1233|2, 1132.52, -8.1433|2, 1143.56, -7.82|9, 1176.3866, 0.5633|2, 1178.07, -1.28|2, 1189.35, -1.12|1, 1033.45, 9.6|1, 1071.56, 9.6|1, 1105.1533, 9.6|1, 1150.18, 9.6|2, 1150.1, 7.27|2, 1128.07, 8.41|2, 1105.1733, 6.88|2, 1088.5, 8.5|2, 1071.5, 6.3233|2, 1033.3933, 6.82|2, 1053.21, 8.51|19, 1232.18, 9.6|19, 1283.25, 9.6|18, 1258.1133, 9.6|2, 1231.93, 6.98|2, 1257.8733, 6.8233|2, 1283.1699, 6.7433|0, 1319.0533, 9.6|10, 1346.97, -1.91|21, 1364.3233, -1.96|10, 1392.24, -13.55|1, 1395.6033, -4.2|1, 1390.05, -4.12|8, 1388.3533, -2.5833|4, 1394.2, -15.71|4, 1402.26, -15.7833|4, 1410.6366, -15.71|8, 1417.0133, -12.3933|4, 1419.72, -14.2333|4, 1424.23, -14.3933|31, 1456.9166, 9.6|30, 956.27, 9.6|30, 625.8166, 9.6|14, -18.79, 9.6|15, 11.76, 7.87|00, 27.4933, 9.6|13, 38.34, -2.3166|20, 38.1766, -7.2033|04, 42.8966, 0.0833|04, 40.9933, -5.6266|04, 43.0633, -2.65|03, 33.9533, 1.0766|03, 33.04, -2.15|03, 34.8633, -5.3833|02, 63.68, 7.7866|02, 67.49, 7.7033|"; map10 = "3, 31.26, 7.06|3, 41.53, 7.06|24, 75.6, 9.6|26, 106.65, 9.6|2, 77.65, 7.13|2, 80.93, 7|2, 84.12, 6.86|29, 64, 6.2|4, 64, 3.26|27, 192.86, 9.6|4, 192.8, 5.8|0, 241.6, 9.6|10, 270.13, -2.06|3, 274.86, -4.6|15, 283.06, -4.92|3, 114.4, 6.8|4, 144.6, 4.92|26, 27.4, 9.6|28, 142.13, 7.66|2, 258.93, 7.66|2, 267.8, 7.73|26, 298.93, 9.6|3, 304.93, 6.4|3, 312.8, 6.33|21, 332.26, 8.6|10, 360.86, -3.33|2, 364.8, -6.2|2, 370.33, -6.13|2, 351.46, 7.66|2, 363.06, 7.86|27, 379.53, 9.6|1, 379.6, -5.33|26, 467.06, 9.6|15, 484.53, 6.86|21, 500, 8.8|4, 514.6, -0.46|4, 515.66, -3.86|4, 512.73, -7.2|4, 509.66, -7.6|4, 506.26, -5.53|4, 505.46, -2.13|4, 507.06, 1.2|13, 510.73, -2.73|1, 539, 9.6|1, 544.4, 9.6|2, 541.79, 6.2|0, 578.92, 9.6|10, 607.6, -1.66|10, 642.05, -1.66|26, 598.45, 9.6|3, 607.52, 6.25|3, 619.33, 6.4|3, 630.13, 6.25|3, 611.05, -4.26|2, 617.73, -4.4|4, 624.2, -4.33|2, 646.8, -4.66|2, 654, -4.6|21, 658.26, -1.86|10, 686.8, -13|15, 695.26, -15.93|14, 690.33, -15.73|1, 717.6, 7.06|21, 702.6, -13.2|13, 712.73, -24.86|3, 717.46, -23|3, 717.6, -25.93|3, 715.92, -28.73|3, 709.6, -28.2|3, 708, -25.13|20, 713.06, -29.2|3, 731.33, 9.6|3, 735.13, 12.53|3, 741.6, 14.66|3, 748.2, 15.2|3, 753.86, 13.93|3, 758.73, 11.4|4, 731.2, 13.06|4, 737.66, 16.26|4, 745.66, 17.52|4, 752.2, 17.13|4, 758.46, 14.8|4, 762.8, 11.26|22, 709.33, -21.53|23, 1013.13, 9.6|24, 1023, 9.6|24, 1038.84, 9.6|5, 1021.33, 9.6|4, 1028.46, 6.93|5, 1036.8, 9.6|28, 1044.2, 7.6|4, 1044.2, 4.25|1, 1088.33, 9.6|0, 1118.85, 9.6|13, 1129.4, -1.93|2, 1133.66, -0.13|2, 1132.8, -4.8|3, 1125.32, 0.46|3, 1125.66, -5.33|3, 1130.93, -6.73|3, 1134.13, -2.52|2, 1125, -2.46|2, 1128, -6.4|2, 1138.13, 7.8|2, 1147.2, 7.8|0, 1162.13, 9.6|10, 1190.4, -2.25|21, 1206, -2.52|15, 1197.53, -4.6|13, 1217.8, -14.6|4, 1221.93, -11.85|4, 1221.66, -17.26|4, 1214.53, -18.06|4, 1213.8, -11.93|3, 1212.6, -15.2|3, 1218.6, -18.93|3, 1222.46, -14.4|27, 1216.32, 9.6|2, 1189.93, 7.66|5, 1245.73, 9.6|0, 1290.32, 9.6|10, 1319, -2.13|3, 1323.6, -4.53|3, 1329.53, -4.8|4, 1306.2, 7.73|3, 1314.8, 7.86|2, 1322.05, 7.73|25, 1360.66, 9.6|4, 1364.8, 7.26|4, 1370.66, 7|22, 1376, 7.06|25, 1384.26, 6.33|13, 1447.05, 6|15, 1451.73, 8.73|2, 1452.05, 5.4|2, 1450.6, 2.33|2, 1446.05, 1.4|2, 1443.13, 3.73|5, 1490.46, 9.6|0, 1546.46, 9.6|15, 1541.26, 7.8|13, 1557.2, -2.4|4, 1561.66, -0.13|4, 1561.6, -4.86|4, 1557.26, -7|4, 1553.13, -5.46|0, 1647.85, 9.6|15, 1640, 7.6|13, 1658.8, -2.06|2, 1663.93, -0.46|2, 1663.6, -3.46|2, 1661.4, -6.53|2, 1656.2, -6.66|4, 1664.6, 10.06|4, 1668.73, 13.8|31, 1734.05, 9.6|14, -0.73, 7.4|30, 799.2, 9.6|30, 1257.66, 9.6|21, 286.32, -2.57|24, 736.05, 9.6|26, 680.75, 9.6|2, 699.9, 7.17|2, 688.73, 7.17|13, 298.33, -14.33|2, 301.86, -17.93|2, 303.15, -11.84|2, 293.57, -16.63|2, 293.57, -10.76|4, 292.69, -13.5|4, 303.44, -14.97|20, 297.29, -18.88|22, 1442.13, 8.24|22, 1553.3, 0.64|22, 1655.55, 0.63|2, 1654.55, -3.07|4, 1552.5, -2.25|3, 468.68, 6.74|2, 1567.1033, 16.37|2, 1576.7, 16.93|2, 1584.5, 14.78|2, 1590.15, 11.89|2, 1561.15, 11.35|4, 1675.19, 16.39|4, 1684.1, 16.63|4, 1691.1, 14.11|4, 1694.92, 10.51|26, 836.52, 9.6|3, 840.3933, 6.3533|28, 871.2633, 7.74|4, 871.1833, 4.25|0, 901.73, 9.6|4, 912.56, 0.88|4, 915.55, -2.8333|22, 936.3133, -0.8033|4, 952.56, 10.8433|23, 964.3533, 9.6|29, 966.78, 7.28|4, 971.55, 15.62|4, 981.25, 11.02|4, 977.29, 13.3633|4, 957.57, 14.43|4, 964.04, 16.21|15, 1105.5333, 8.67|21, 1337.94, -2.24|10, 1365.7333, -13.0533|22, 1384.16, -15.3133|"; FLOOR_ID = -2; RAMP_ID = 0; BARREL_EXPLODE_ID = 1; REDSTAR_ID = 2; BLUESTAR_ID = 3; GOLDSTAR_ID = 4; SKULL_ID = 5; PELICAN_ID = 6; PLATFORM1_ID = 7; PLATFORM2_ID = 8; PLATFORM3_ID = 9; PLATFORM4_ID = 10; GUY_ON_RAFT_ID = 11; COOLER_ID = 12; LOOP_ID = 13; PLAYER_ID = 14; NITRO_ID = 15; HIPPO_ID = 16; CROC_ID = 17; LOG_ID = 18; LOG_SIDE_ID = 19; LIFE_ID = 20; RAMP_FLOATING_ID = 21; DIVE_ID = 22; ICE_PLATFORM_1 = 23; ICE_PLATFORM_2 = 24; ICE_PLATFORM_3 = 25; ICE_PLATFORM_4 = 26; SEA_MINE_ID = 27; WALRUS_ID = 28; PENGUIN_ID = 29; CHECKPOINT_ID = 30; FINISHPOINT_ID = 31; ISLAND1_ID = 104; ISLAND2_ID = 105; ISLAND3_ID = 106; ISLAND4_ID = 107; ISLAND5_ID = 108; SAIL_BOAT_RED_ID = 109; SAIL_BOAT_GREEN_ID = 110; SHIP_BLUE_ID = 111; SHIP_LIGHT_BLUE_ID = 112; SHIP_RED_ID = 113; BELL_BOUY_ID = 114; BG_ID = 115; CROCS_NO_PHYSICS_ID = 116; HIPPO_NO_PHYSICS_ID = 117; LOG_NO_PHYSICS_ID = 118; INDIANS_NO_PHYSICS_ID = 119; LOG_SIDE_NO_PHYSICS_ID = 120; MOTOR_BOAT_RED_ID = 122; MOTOR_BOAT_YELLOW_ID = 123; ICEBERG1_ID = 124; ICEBERG2_ID = 125; ICEBERG3_ID = 126; ICEBERG4_ID = 127; SHAPE_RAMP_HOTSPOT_ID = 1; SHAPE_RAMP_ID = 2; SHAPE_PLAYER_HOTSPOT_ID = 3; SHAPE_STAR_RED_ID = 4; SHAPE_STAR_BLUE_ID = 5; SHAPE_STAR_GOLD_ID = 6; SHAPE_SKULL_ID = 7; SHAPE_PLAYER_ID = 8; SHAPE_BARREL_ID = 99; SHAPE_PLATFORM_ID = 10; SHAPE_NON_COLLIDABLE = 11; SHAPE_NITRO_ID = 12; SHAPE_PLAYER_BODY_ID = 13; SHAPE_LOOP_ID = 14; SHAPE_LIFE_ID = 15; SHAPE_DIVE_ID = 16; SHAPE_MINE_ID = 17; SHAPE_COLLIDE_FRAME_2 = 18; SHAPE_GUY_ON_RAFT = 19; SHAPE_CROC_ID = 20; SHAPE_HIPPO_ID = 21; SHAPE_PELICAN_ID = 22; SHAPE_PENGUIN_ID = 23; SHAPE_WALRUS_ID = 24; map3s = new Array(MOTOR_BOAT_RED_ID, MOTOR_BOAT_YELLOW_ID, SAIL_BOAT_GREEN_ID, INDIANS_NO_PHYSICS_ID, SAIL_BOAT_RED_ID, SHIP_BLUE_ID, SHIP_LIGHT_BLUE_ID, SHIP_RED_ID); map7s = new Array(ISLAND1_ID, ISLAND2_ID, ISLAND3_ID); map8s = new Array(ISLAND1_ID, ISLAND2_ID, ISLAND3_ID); map9s = new Array(ISLAND1_ID, ISLAND2_ID, ISLAND3_ID); map10s = new Array(ISLAND1_ID, ISLAND2_ID, ISLAND3_ID); mapBG = [1, 2, 5, 3, 4, 1, 6, 5, 6, 7]; mapWater = [1, 1, 2, 1, 1, 3, 4, 5, 6, 7]; mapSky = [1, 1, 1, 1, 2, 3, 3, 4, 5, 6]; riderShapeDef = new b2PolygonDef(); riderShapeDef.vertexCount = 5; riderShapeDef.vertices[0].Set(-1.8, -0.45); riderShapeDef.vertices[1].Set(2.05, -0.45); riderShapeDef.vertices[2].Set(2.05, 0); riderShapeDef.vertices[3].Set(1.6, 0.6); riderShapeDef.vertices[4].Set(-1.8, 0.7); riderShapeDef.density = 0.75; riderShapeDef.friction = 0.4; playerHotSpot = new b2CircleDef(); playerHotSpot.localPosition.x = 0; playerHotSpot.localPosition.y = 0.4; playerHotSpot.radius = 0.85; playerHotSpot.density = 0; playerHotSpot.isSensor = true; playerHotSpot.userData = SHAPE_PLAYER_HOTSPOT_ID; personShapeDef = new b2PolygonDef(); personShapeDef.vertexCount = 4; personShapeDef.vertices[0].Set(1, -0.45); personShapeDef.vertices[1].Set(-1.8, -0.45); personShapeDef.vertices[2].Set(-1.8, -2); personShapeDef.vertices[3].Set(-0.6, -2); personShapeDef.density = 1; personShapeDef.friction = 0.5; personShapeDef.userData = SHAPE_PLAYER_BODY_ID; barrelShapeDef = new b2CircleDef(); barrelShapeDef.radius = 0.95; barrelShapeDef.density = 0.93; barrelShapeDef.userData = SHAPE_BARREL_ID; redStarShapeDef = new b2CircleDef(); redStarShapeDef.radius = 0.9; redStarShapeDef.isSensor = true; redStarShapeDef.userData = SHAPE_STAR_RED_ID; blueStarShapeDef = new b2CircleDef(); blueStarShapeDef.radius = 0.9; blueStarShapeDef.isSensor = true; blueStarShapeDef.userData = SHAPE_STAR_BLUE_ID; goldStarShapeDef = new b2CircleDef(); goldStarShapeDef.radius = 0.9; goldStarShapeDef.isSensor = true; goldStarShapeDef.userData = SHAPE_STAR_GOLD_ID; nitroShapeDef = new b2CircleDef(); nitroShapeDef.radius = 0.9; nitroShapeDef.isSensor = true; nitroShapeDef.userData = SHAPE_NITRO_ID; lifeShapeDef = new b2CircleDef(); lifeShapeDef.radius = 0.9; lifeShapeDef.isSensor = true; lifeShapeDef.userData = SHAPE_LIFE_ID; diveShapeDef = new b2CircleDef(); diveShapeDef.radius = 0.9; diveShapeDef.isSensor = true; diveShapeDef.userData = SHAPE_DIVE_ID; pelicanShapeDef = new b2CircleDef(); pelicanShapeDef.radius = 0.95; pelicanShapeDef.density = 1; pelicanShapeDef.userData = SHAPE_PELICAN_ID; rampShapeDef = new b2PolygonDef(); rampShapeDef.vertexCount = 4; rampShapeDef.vertices[0].Set(-3.5504, 1.5); rampShapeDef.vertices[1].Set(6.3, -3); rampShapeDef.vertices[2].Set(7.1, -3); rampShapeDef.vertices[3].Set(7.1, 1.5); rampShapeDef.friction = 0.2; rampShapeDef.density = 0; rampShapeDef.userData = SHAPE_RAMP_ID; rampFloatShapeDef = new b2PolygonDef(); rampFloatShapeDef.vertexCount = 4; rampFloatShapeDef.vertices[0].Set(0, 0); rampFloatShapeDef.vertices[1].Set(6.3, -3); rampFloatShapeDef.vertices[2].Set(7.1, -3); rampFloatShapeDef.vertices[3].Set(7.1, 0); rampFloatShapeDef.friction = 0.2; rampFloatShapeDef.density = 0; rampFloatShapeDef.userData = SHAPE_RAMP_ID; rampHotSpotShapeDef = new b2CircleDef(); rampHotSpotShapeDef.localPosition.x = 6.3; rampHotSpotShapeDef.localPosition.y = -3; rampHotSpotShapeDef.radius = 1.1; rampHotSpotShapeDef.isSensor = true; rampHotSpotShapeDef.density = 0; rampHotSpotShapeDef.userData = SHAPE_RAMP_HOTSPOT_ID; skullShapeDef = new b2PolygonDef(); skullShapeDef.SetAsBox(0.7, 1.1); skullShapeDef.isSensor = true; skullShapeDef.userData = SHAPE_SKULL_ID; skullShapeDef.isSensor = true; platform1ShapeDef = new b2PolygonDef(); platform1ShapeDef.vertexCount = 4; platform1ShapeDef.vertices[0].Set(5.5, 0.7); platform1ShapeDef.vertices[1].Set(0, 0.7); platform1ShapeDef.vertices[2].Set(0, -0.7); platform1ShapeDef.vertices[3].Set(5.5, -0.7); platform1ShapeDef.friction = 0.4; platform1ShapeDef.density = 0; platform1ShapeDef.userData = SHAPE_PLATFORM_ID; platform2ShapeDef = new b2PolygonDef(); platform2ShapeDef.vertexCount = 4; platform2ShapeDef.vertices[0].Set(10.2, 0.7); platform2ShapeDef.vertices[1].Set(0, 0.7); platform2ShapeDef.vertices[2].Set(0, -0.7); platform2ShapeDef.vertices[3].Set(10.2, -0.7); platform2ShapeDef.friction = 0.4; platform2ShapeDef.density = 0; platform2ShapeDef.userData = SHAPE_PLATFORM_ID; platform3ShapeDef = new b2PolygonDef(); platform3ShapeDef.vertexCount = 4; platform3ShapeDef.vertices[0].Set(14.8, 0.7); platform3ShapeDef.vertices[1].Set(0, 0.7); platform3ShapeDef.vertices[2].Set(0, -0.7); platform3ShapeDef.vertices[3].Set(14.8, -0.7); platform3ShapeDef.friction = 0.4; platform3ShapeDef.density = 0; platform3ShapeDef.userData = SHAPE_PLATFORM_ID; platform4ShapeDef = new b2PolygonDef(); platform4ShapeDef.vertexCount = 4; platform4ShapeDef.vertices[0].Set(19.7, 0.7); platform4ShapeDef.vertices[1].Set(0, 0.7); platform4ShapeDef.vertices[2].Set(0, -0.7); platform4ShapeDef.vertices[3].Set(19.7, -0.7); platform4ShapeDef.friction = 0.4; platform4ShapeDef.density = 0; platform4ShapeDef.userData = SHAPE_PLATFORM_ID; iceStartY = -1; icePlatform1ShapeDef = new b2PolygonDef(); icePlatform1ShapeDef.vertexCount = 4; icePlatform1ShapeDef.vertices[0].Set(5.5, 0.4); icePlatform1ShapeDef.vertices[1].Set(0, 0.4); icePlatform1ShapeDef.vertices[2].Set(0, iceStartY); icePlatform1ShapeDef.vertices[3].Set(5.5, iceStartY); icePlatform1ShapeDef.friction = 0; icePlatform1ShapeDef.density = 0; icePlatform1ShapeDef.userData = SHAPE_PLATFORM_ID; icePlatform2ShapeDef = new b2PolygonDef(); icePlatform2ShapeDef.vertexCount = 4; icePlatform2ShapeDef.vertices[0].Set(11, 0.4); icePlatform2ShapeDef.vertices[1].Set(0, 0.4); icePlatform2ShapeDef.vertices[2].Set(0, iceStartY); icePlatform2ShapeDef.vertices[3].Set(11, iceStartY); icePlatform2ShapeDef.friction = 0; icePlatform2ShapeDef.density = 0; icePlatform2ShapeDef.userData = SHAPE_PLATFORM_ID; icePlatform3ShapeDef = new b2PolygonDef(); icePlatform3ShapeDef.vertexCount = 4; icePlatform3ShapeDef.vertices[0].Set(17, 0.4); icePlatform3ShapeDef.vertices[1].Set(0, 0.4); icePlatform3ShapeDef.vertices[2].Set(0, iceStartY); icePlatform3ShapeDef.vertices[3].Set(17, iceStartY); icePlatform3ShapeDef.friction = 0; icePlatform3ShapeDef.density = 0; icePlatform3ShapeDef.userData = SHAPE_PLATFORM_ID; icePlatform4ShapeDef = new b2PolygonDef(); icePlatform4ShapeDef.vertexCount = 4; icePlatform4ShapeDef.vertices[0].Set(39, 0.4); icePlatform4ShapeDef.vertices[1].Set(0, 0.4); icePlatform4ShapeDef.vertices[2].Set(0, iceStartY); icePlatform4ShapeDef.vertices[3].Set(39, iceStartY); icePlatform4ShapeDef.friction = 0; icePlatform4ShapeDef.density = 0; icePlatform4ShapeDef.userData = SHAPE_PLATFORM_ID; guyonaraftShapeDef = new b2PolygonDef(); guyonaraftShapeDef.SetAsBox(2.3, 2); guyonaraftShapeDef.density = 0.96; guyonaraftShapeDef.userData = SHAPE_GUY_ON_RAFT; coolerShapeDef = new b2PolygonDef(); coolerShapeDef.SetAsBox(1.1, 2.2); coolerShapeDef.density = 0.96; coolerShapeDef.userData = SHAPE_NON_COLLIDABLE; logShapeDef = new b2PolygonDef(); logShapeDef.vertexCount = 4; logShapeDef.vertices[0].Set(-1.6, -3.2); logShapeDef.vertices[1].Set(1.6, -3.2); logShapeDef.vertices[2].Set(1.6, 0); logShapeDef.vertices[3].Set(-1.6, 0); logShapeDef.density = 0.93; logShapeDef.userData = SHAPE_NON_COLLIDABLE; logSideShapeDef = new b2PolygonDef(); logSideShapeDef.vertexCount = 4; logSideShapeDef.vertices[0].Set(-2.5, -3.2); logSideShapeDef.vertices[1].Set(2.5, -3.2); logSideShapeDef.vertices[2].Set(2.5, 0); logSideShapeDef.vertices[3].Set(-2.5, 0); logSideShapeDef.density = 0.95; logSideShapeDef.userData = SHAPE_NON_COLLIDABLE; crocShapeDef = new b2PolygonDef(); crocShapeDef.vertexCount = 4; crocShapeDef.vertices[0].Set(-1, -2); crocShapeDef.vertices[1].Set(1, -2); crocShapeDef.vertices[2].Set(1, 0); crocShapeDef.vertices[3].Set(-1, 0); crocShapeDef.density = 0; crocShapeDef.userData = SHAPE_CROC_ID; hippoShapeDef = new b2PolygonDef(); hippoShapeDef.vertexCount = 4; hippoShapeDef.vertices[0].Set(-1, -2); hippoShapeDef.vertices[1].Set(1, -2); hippoShapeDef.vertices[2].Set(1, 0); hippoShapeDef.vertices[3].Set(-1, 0); hippoShapeDef.density = 0; hippoShapeDef.userData = SHAPE_HIPPO_ID; walrusShapeDef = new b2PolygonDef(); walrusShapeDef.vertexCount = 4; walrusShapeDef.vertices[0].Set(-1, -1.8); walrusShapeDef.vertices[1].Set(1, -1.8); walrusShapeDef.vertices[2].Set(1, 0); walrusShapeDef.vertices[3].Set(-1, 0); walrusShapeDef.density = 0; walrusShapeDef.userData = SHAPE_WALRUS_ID; penguinShapeDef = new b2PolygonDef(); penguinShapeDef.vertexCount = 4; penguinShapeDef.vertices[0].Set(-1, -2); penguinShapeDef.vertices[1].Set(1, -2); penguinShapeDef.vertices[2].Set(1, 0); penguinShapeDef.vertices[3].Set(-1, 0); penguinShapeDef.density = 0.96; penguinShapeDef.userData = SHAPE_PENGUIN_ID; mineShapeDef = new b2PolygonDef(); mineShapeDef.vertexCount = 4; mineShapeDef.vertices[0].Set(-1, -2); mineShapeDef.vertices[1].Set(1, -2); mineShapeDef.vertices[2].Set(1, 0); mineShapeDef.vertices[3].Set(-1, 0); mineShapeDef.density = 0; mineShapeDef.userData = SHAPE_MINE_ID; GUI_MODE = 0; GAME_MODE = 1; LEVEL_OVERLAY_MODE = 2; PAUSE_MODE = 3; GAME_OVER_MODE = 4; MAP_MODE = 5; currentMode = GUI_MODE; waterLine = 9.5; floorPos = (waterLine + 2.8); physicsScale = 30; moveSpeed = 3.5; maxSpeed = 19; minSpeed = 0.75; maxRotSpeed = 3.5; rotateSpeed = 15; normalBoyancy = -7; diveBoyancy = -4; jumpPower = -12.5; superJumpPower = -21; flipTorque = -70; numberOfBGObjects = 45; canAccelerate = false; canRampAccelerate = false; canPlatformAccelerate = false; canLoopAccelerate = false; nitroAccelerate = false; nitroSpeedMultiplier = 1.5; nitroTimer = 0; nitroLength = 2.7; canSuperJump = false; superJumpCounter = 0; physDisplayObjects = new Array(); allObjects = new Array(); score = 0; lives = 1; camDifference = 0; waterOffset = -500; spawnTimer = -1; respawnTime = 1.3; diveTimer = -1; diveTime = 2; diveObtained = false; diveMode = false; lastFrame = new Date().getTime(); level = 1; riderStartPos = new b2Vec2(0, 5); toDestroy = new Array(); redStarCounter = 0; blueStarCounter = 0; goldStarCounter = 0; skullCounter = 0; powerupCounter = 0; flipCounter = 0; backFlipCounter = 0; checkpointRedStarCounter = 0; checkpointBlueStarCounter = 0; checkpointGoldStarCounter = 0; checkpointSkullCounter = 0; checkpointPowerupCounter = 0; checkpointFlipCounter = 0; checkpointBackFlipCounter = 0; totalRedStarCounter = 0; totalBlueStarCounter = 0; totalGoldStarCounter = 0; totalSkullCounter = 0; totalPowerupCounter = 0; totalFlipCounter = 0; totalBackFlipCounter = 0; timer = 0; totalTimer = 0; gameOverTimer = 0; pauseText = new TextField(); pauseFormat = new TextFormat("Super Mario Brother", 40, 0, true, null, null, null, null, TextFormatAlign.CENTER); pauseText.width = 650; pauseText.y = 180; pauseText.selectable = false; pauseText.defaultTextFormat = pauseFormat; pauseText.text = "GAME PAUSED"; resumeText = new TextField(); resumeFormat = new TextFormat("Super Mario Brother", 25, 0, true, null, null, null, null, TextFormatAlign.CENTER); resumeText.width = 650; resumeText.y = 230; resumeText.selectable = false; resumeText.defaultTextFormat = resumeFormat; resumeText.text = "Press 'p' to resume or 'q' to quit"; darkenOverlay = new Sprite(); darkenOverlay.graphics.beginFill(0, 0.2); darkenOverlay.graphics.drawRect(0, 0, 650, 425); darkenOverlay.graphics.endFill(); InitKeys(); InitGUI(); stop(); } public function NoButton(_arg1:MouseEvent):void{ InitGUI(); } function frame4(){ nextScene(); } function frame2(){ nextScene(); } function frame5(){ } public function InitCamera():void{ backCamera = new MovieClip(); addChild(backCamera); waterBGCamera = new MovieClip(); addChild(waterBGCamera); midCamera = new MovieClip(); addChild(midCamera); camera = new MovieClip(); addChild(camera); waterCamera = new MovieClip(); addChild(waterCamera); } public function HideOverlay(){ try { gui_placeholderContinueButton.removeEventListener(MouseEvent.CLICK, showMap); gui_placeholderRestartButton.removeEventListener(MouseEvent.CLICK, showMap); removeChild(gui_overlayPlaceholder); } catch(_error) { trace(_error); }; } public function PlaySFX(_arg1:Sound, _arg2:int=0):void{ sfxSoundChannel = _arg1.play(0, _arg2, sfxSoundTransform); } public function ShowGameOverOverlay(_arg1:Number, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):void{ var _local9 = 75; gui_overlay_textField_powerups_text.x = (_local9 - 20); gui_redstar.x = (_local9 - 15); gui_overlay_textField_redstar_text.x = _local9; gui_bluestar.x = (_local9 - 15); gui_overlay_textField_bluestar_text.x = _local9; gui_goldstar.x = (_local9 - 15); gui_overlay_textField_goldstar_text.x = _local9; gui_skull.x = (_local9 - 15); gui_overlay_textField_skull_text.x = _local9; gui_overlay_textField_backflip_text.x = (_local9 - 20); gui_overlay_textField_frontflip_text.x = (_local9 - 20); gui_overlay_textField_levelTotal_text.x = (_local9 - 20); gui_overlay_textField_continue.x = (_local9 - 20); totalRedStarCounter = (totalRedStarCounter + _arg3); totalBlueStarCounter = (totalBlueStarCounter + _arg4); totalGoldStarCounter = (totalGoldStarCounter + _arg5); totalSkullCounter = (totalSkullCounter + _arg6); totalPowerupCounter = (totalPowerupCounter + _arg2); totalFlipCounter = (totalFlipCounter + _arg8); totalBackFlipCounter = (totalBackFlipCounter + _arg7); totalTimer = (totalTimer + _arg1); gui_overlayPlaceholder.addChild(gui_placeholderRestartButton); gui_placeholderMainMenuButton.visible = false; gui_placeholderRestartButton.visible = false; gui_placeholderMoreGamesButton.visible = false; PlaySFX(sound_overlaySlide); gui_overlayPlaceholder.x = -340; gui_overlay_textField_levelComplete.text = "Game Over!"; gui_overlay_textField_continue.text = (String(continues) + " Continues Remaining"); gui_overlay_textField_levelTime.text = ((("Total Time = " + int((totalTimer / 60))) + ":") + FixNumber(int((totalTimer - (int((totalTimer / 60)) * 60))))); gui_overlay_textField_powerups_text.text = ((("Total Power Ups x " + totalPowerupCounter) + " = ") + String((totalPowerupCounter * 25))); gui_overlay_textField_redstar_text.text = ((("Total x " + totalRedStarCounter) + " = ") + String((totalRedStarCounter * 25))); gui_overlay_textField_bluestar_text.text = ((("Total x " + totalBlueStarCounter) + " = ") + String((totalBlueStarCounter * 50))); gui_overlay_textField_goldstar_text.text = ((("Total x " + totalGoldStarCounter) + " = ") + String((totalGoldStarCounter * 75))); gui_overlay_textField_skull_text.text = ((("Total x " + totalSkullCounter) + " = ") + String((-(totalSkullCounter) * 100))); gui_overlay_textField_backflip_text.text = ((("Total Back Flips x " + totalBackFlipCounter) + " = ") + String((totalBackFlipCounter * 100))); gui_overlay_textField_frontflip_text.text = ((("Total Front Flips x " + totalFlipCounter) + " = ") + String((totalFlipCounter * 100))); var _local10:int = (((((((_arg2 * 25) + (totalRedStarCounter * 25)) + (totalBlueStarCounter * 50)) + (totalGoldStarCounter * 75)) + (totalBackFlipCounter * 100)) + (totalFlipCounter * 100)) - (totalSkullCounter * 100)); gui_overlay_textField_levelTotal_text.text = ("Total Score = " + String(_local10)); if (((!((continues == 0))) && (!(winrar)))){ gui_placeholderRestartButton.enabled = true; gui_placeholderRestartButton.addEventListener(MouseEvent.CLICK, Continue); } else { if (gui_placeholderContinueButton.parent){ gui_overlayPlaceholder.removeChild(gui_placeholderContinueButton); }; gui_overlay_textField_continue.text = ""; gui_placeholderRestartButton.enabled = false; gui_placeholderRestartButton.visible = false; }; addChild(gui_overlayPlaceholder); gui_overlayPlaceholder.addEventListener(Event.ENTER_FRAME, TweenGameOver); currentMode = GAME_OVER_MODE; } public function GameOver():void{ currentMode = GAME_OVER_MODE; addChild(darkenOverlay); ShowGameOverOverlay(timer, powerupCounter, redStarCounter, blueStarCounter, goldStarCounter, skullCounter, backFlipCounter, flipCounter); Reset(); gameOverTimer = 5; } public function UpdateCameras():void{ camera.setChildIndex(debugSprite, (camera.numChildren - 1)); if (rider.parent != null){ camera.setChildIndex(rider, (camera.numChildren - 1)); }; camera.x = (-(rider.x) + 100); camera.y = (-(rider.y) + 300); waterCamera.y = camera.y; waterCamera.x = (-(rider.x) % 60); if (waterOffset < -420){ waterObjs.x = (waterObjs.x - (waterOffset + 120)); waterOffset = -120; }; midCamera.x = (camera.x * 0.4); midCamera.y = (camera.y * 0.4); backCamera.x = (midCamera.x * 0.4); backCamera.y = (midCamera.y * 0.4); waterBGCamera.x = (midCamera.x * 0.4); waterBGCamera.y = (midCamera.y * 0.4); waterBG.x = ((-(camera.x) * 0.4) * 0.4); skyObjs.x = ((-(camera.x) * 0.4) * 0.4); } public function Continue(_arg1:MouseEvent):void{ continues--; Reset(); RemoveBackgroundGraphics(); showMap(null); } public function YesButton(_arg1:MouseEvent):void{ InitGUI(); } public function ReloadMap(_arg1:String, _arg2:Boolean):void{ camDifference = 0; LoadMap(_arg1); if ((((lastCheckPoint == null)) || (_arg2))){ lastCheckPoint = new b2Vec2(riderStartPos.x, riderStartPos.y); }; rider.physicsObject.SetXForm(new b2Vec2((lastCheckPoint.x + 1), lastCheckPoint.y), 0); isDead = false; spawnTimer = -1; score = 0; diveMode = false; hud.currentLevelText.text = level; currentMode = GAME_MODE; } public function UpdateCanAccelerate():void{ var _local1:b2Vec2 = rider.physicsObject.GetWorldPoint(new b2Vec2(0, 0.45)); if (_local1.y > waterLine){ canAccelerate = true; } else { canAccelerate = false; }; } public function Update(_arg1:Event):void{ var _local4:b2Body; var _local5:MovieClip; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:int; var _local2:* = ((new Date().getTime() - lastFrame) / 1000); lastFrame = new Date().getTime(); stage.focus = stage; if (currentMode == GAME_OVER_MODE){ }; if (currentMode != GAME_MODE){ return; }; CheckFlips(); world.Step((1 / 32), 15); HandleDeath(_local2); if (!isDead){ timer = (timer + _local2); }; if (nitroTimer < 0){ nitroAccelerate = false; canLoopAccelerate = false; } else { nitroTimer = (nitroTimer - _local2); }; if ((((diveTimer >= 0)) && (diveMode))){ diveTimer = (diveTimer - _local2); }; var _local3:b2Vec2 = rider.physicsObject.GetPosition(); if (diveObtained){ if (_local3.y > waterLine){ if (nitroTimer > 0){ nitroTimer = 0.01; }; PlaySFX(sound_dive); floor.SetXForm(new b2Vec2(0, 30), 0); diveObtained = false; diveMode = true; rider.boyancy = diveBoyancy; _local6 = rider.physicsObject.GetLinearVelocity(); rider.physicsObject.SetLinearVelocity(new b2Vec2(_local6.x, ((_local6.y)>25) ? 25 : _local6.y)); }; }; if ((((_local3.y > waterLine)) && (!(diveMode)))){ floor.SetXForm(new b2Vec2(0, floorPos), 0); }; if ((((diveTimer <= 0)) && (diveMode))){ diveMode = false; }; if (diveMode){ _local7 = rider.physicsObject.GetLinearVelocity(); if (Math.abs((rider.physicsObject.GetAngle() - Math.atan2(_local7.y, _local7.x))) > (Math.PI / 128)){ rider.physicsObject.SetXForm(rider.physicsObject.GetPosition(), (rider.physicsObject.GetAngle() + ((((rider.physicsObject.GetAngle() - Math.atan2(_local7.y, _local7.x)))>0) ? -1 : 1 * (Math.PI / 128)))); }; } else { rider.boyancy = normalBoyancy; }; for each (_local4 in toDestroy) { _local8 = (allObjects.length - 1); while (_local8 >= 0) { if (allObjects[_local8].physicsObject == _local4){ allObjects.splice(_local8, 1); break; }; _local8--; }; world.DestroyBody(_local4); }; toDestroy = []; UpdateCameras(); for each (_local5 in physDisplayObjects) { UpdatePosition(_local5); SimulateFloat(_local5.physicsObject, _local5.boyancy); }; UpdateIsDead(); UpdateCanAccelerate(); FixPlayerFrame(); UpdateGraphics(); HandleInput(); HandleSound(); CheckCheckpointsAndWin(); CalculateScore(); camDifference = camera.x; } function frame1(){ Log.View(2498, "6a65f4fb83d742b1", root.loaderInfo.loaderURL); stop(); } public function HandleDeath(_arg1:Number){ var _local2:b2Vec2; var _local3:b2Vec2; if (isDead){ spawnTimer = (spawnTimer - _arg1); _local2 = rider.physicsObject.GetLinearVelocity(); _local2.Multiply(0.97); rider.physicsObject.SetLinearVelocity(_local2); rider.alpha = (spawnTimer % (respawnTime / 3)); }; if (((isDead) && ((spawnTimer < 0)))){ lives--; if (lives > 0){ _local3 = rider.physicsObject.GetPosition(); ReloadMap(this[("map" + level)], false); } else { GameOver(); spawnTimer = 100; isDead = false; }; redStarCounter = checkpointRedStarCounter; blueStarCounter = checkpointBlueStarCounter; goldStarCounter = checkpointGoldStarCounter; skullCounter = checkpointSkullCounter; powerupCounter = checkpointPowerupCounter; flipCounter = checkpointFlipCounter; backFlipCounter = checkpointBackFlipCounter; }; } public function showMap(_arg1:MouseEvent):void{ currentMode = MAP_MODE; addChild(map); CheckAndAddLevel(); map["tLevel"].text = level; map["mMario"].x = map[("mPoint" + level)].x; map["mMario"].y = map[("mPoint" + level)].y; var _local2 = 1; while (_local2 <= levelsUnlocked.length) { map[("mLevel" + _local2)].gotoAndStop(3); _local2++; }; var _local3:MovieClip = new FPS(); stage.addChild(_local3); _local3.visible = false; PlayMap(); } public function Reset():void{ var _local1:MovieClip; for each (_local1 in allObjects) { if (_local1.parent){ _local1.parent.removeChild(_local1); }; if (_local1.physicsObject){ world.DestroyBody(_local1.physicsObject); }; }; allObjects = []; physDisplayObjects = []; toDestroy = []; checkPoints = []; waterCamera.addChild(waterObjs); allObjects.push(waterObjs); superJumpCounter = 0; canSuperJump = false; canAccelerate = false; canLoopAccelerate = false; canRampAccelerate = false; canPlatformAccelerate = false; } public function UpdatePosition(_arg1:MovieClip):void{ var _local2:b2Vec2 = _arg1.physicsObject.GetPosition(); _arg1.x = ((_local2.x * physicsScale) + _arg1.xOff); _arg1.y = ((_local2.y * physicsScale) + _arg1.yOff); _arg1.rotation = ((_arg1.physicsObject.GetAngle() / 3.141592) * 180); } public function KeyUp(_arg1:KeyboardEvent):void{ keys[_arg1.keyCode] = false; } public function AddText(_arg1:String, _arg2:TextFormat, _arg3:Number=500, _arg4:Number=80, _arg5:Number=100, _arg6:Number=200):void{ addChild(new FadingText(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6)); } public function RemoveFirstChunk(_arg1:String, _arg2:String):String{ var _local3:int = _arg1.indexOf(_arg2); if (_local3 > 0){ _arg1 = _arg1.substring((_local3 + 1), _arg1.length); return (_arg1); }; return (""); } public function PlayMap():void{ SoundMixer.stopAll(); backgroundSoundChannel.stop(); backgroundSoundChannel = sound_map.play(0, int.MAX_VALUE, musicSoundTransform); } public function GetFirstChunk(_arg1:String, _arg2:String):String{ var _local3:int = _arg1.indexOf(_arg2); if (_local3 > 0){ return (_arg1.substring(0, _local3)); }; return (_arg1); } public function StopPlaying():void{ musicSoundChannel.stop(); musicPlaying = false; } public function CreateBodyAndGraphicsFromDef(_arg1:int, _arg2:Number, _arg3:Number, _arg4:b2ShapeDef, _arg5:MovieClip, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0):MovieClip{ var _local9:b2BodyDef = new b2BodyDef(); _local9.userData = _arg5; _local9.position.Set(_arg2, _arg3); var _local10:b2Body = world.CreateBody(_local9); _local10.CreateShape(_arg4); _local10.SetMassFromShapes(); _arg5.type = _arg1; _arg5.physicsObject = _local10; _arg5.xOff = _arg6; _arg5.yOff = _arg7; var _local11:b2Vec2 = _arg5.physicsObject.GetPosition(); _arg5.x = ((_local11.x * physicsScale) + _arg6); _arg5.y = ((_local11.y * physicsScale) + _arg7); _arg5.cacheAsBitmap = true; _arg5.camera = camera; _arg5.boyancy = _arg8; physDisplayObjects.push(_arg5); allObjects.push(_arg5); return (_arg5); } public function Instructions(_arg1:MouseEvent):void{ addChild(instructionOverlay); } public function AddPlayerHotSpot(_arg1:b2Body):void{ _arg1.CreateShape(playerHotSpot); } public function CreateLoop(_arg1:MovieClip, _arg2:Number, _arg3:Number):MovieClip{ var _local11:Number; var _local12:Number; var _local13:Point; var _local14:Point; var _local15:Number; var _local16:Point; var _local17:Point; var _local18:b2PolygonDef; var _local4:b2BodyDef = new b2BodyDef(); _local4.position.Set(_arg2, _arg3); _local4.userData = _arg1; var _local5:b2Body = world.CreateBody(_local4); var _local6 = 50; var _local7:Number = 7.2; var _local8:Number = 0.7; var _local9:int; while (_local9 < _local6) { _local11 = (((_local9 / _local6) * 2) * Math.PI); _local12 = ((_local11 / Math.PI) * 180); if ((((_local12 >= 220)) && ((_local12 <= 315)))){ } else { _local13 = new Point((Math.cos(_local11) * _local7), (Math.sin(_local11) * _local7)); _local14 = new Point((Math.cos(_local11) * (_local7 + _local8)), (Math.sin(_local11) * (_local7 + _local8))); _local15 = ((((_local9 + 1) / _local6) * 2) * Math.PI); _local16 = new Point((Math.cos(_local15) * _local7), (Math.sin(_local15) * _local7)); _local17 = new Point((Math.cos(_local15) * (_local7 + _local8)), (Math.sin(_local15) * (_local7 + _local8))); _local18 = new b2PolygonDef(); _local18.vertexCount = 4; _local18.vertices[0].Set(_local13.x, -(_local13.y)); _local18.vertices[1].Set(_local16.x, -(_local16.y)); _local18.vertices[2].Set(_local17.x, -(_local17.y)); _local18.vertices[3].Set(_local14.x, -(_local14.y)); _local18.friction = 0; _local18.density = 0; _local18.userData = SHAPE_LOOP_ID; _local5.CreateShape(_local18); }; _local9++; }; _local5.SetMassFromShapes(); _arg1.type = LOOP_ID; _arg1.physicsObject = _local5; _arg1.xOff = 0; _arg1.yOff = 0; var _local10:b2Vec2 = _arg1.physicsObject.GetPosition(); _arg1.x = ((_local10.x * physicsScale) + _arg1.xOff); _arg1.y = ((_local10.y * physicsScale) + _arg1.yOff); _arg1.cacheAsBitmap = true; _arg1.camera = camera; _arg1.boyancy = 0; physDisplayObjects.push(_arg1); allObjects.push(_arg1); return (_arg1); } public function RemoveBackgroundGraphics(){ skyObjs.parent.removeChild(skyObjs); waterBG.parent.removeChild(waterBG); waterObjs.parent.removeChild(waterObjs); if (level == 10){ Rain.parent.removeChild(Rain); clearInterval(timeThunder); }; } public function CheckFlips():void{ if (isDead){ return; }; if (rider.physicsObject.GetAngle() < -((Math.PI * 1.2))){ backFlipCounter++; AddText("Back Flip! +100", FadingText.FADE_NEUTRAL_FORMAT, 800, 650, 0); rider.physicsObject.SetXForm(rider.physicsObject.GetPosition(), (rider.physicsObject.GetAngle() + (Math.PI * 2))); }; if (rider.physicsObject.GetAngle() > (Math.PI * 1.2)){ AddText("Front Flip! +100", FadingText.FADE_NEUTRAL_FORMAT, 800, 650, 0); flipCounter++; rider.physicsObject.SetXForm(rider.physicsObject.GetPosition(), (rider.physicsObject.GetAngle() - (Math.PI * 2))); }; } public function InitGUI():void{ ResetScores(); continues = 3; gui_startGameButton.addEventListener(MouseEvent.CLICK, showMap); gui_instructionsButton.addEventListener(MouseEvent.CLICK, Instructions); gui_moreGamesButton.addEventListener(MouseEvent.CLICK, MoreGames); try { if (darkenOverlay.parent){ removeChild(darkenOverlay); }; } catch(_e) { trace(_e); }; addChild(titleScreen); addChild(gui_startGameButton); addChild(gui_instructionsButton); addChild(gui_moreGamesButton); PlayTitle(); currentMode = GUI_MODE; } public function RestartBtn(_arg1:MouseEvent):void{ continues--; if (continues != -1){ SoundMixer.stopAll(); isDead = false; lives = 5; HideOverlay(); removeChild(darkenOverlay); PlayBackground(); ReloadMap(this[("map" + level)], false); } else { level = 1; ResetScores(); ResetTotalScores(); HideOverlay(); timer = 0; totalTimer = 0; lives = 5; continues = 3; isDead = false; hud.currentLevelText.text = level; removeChild(darkenOverlay); sfxSoundChannel.stop(); PlayBackground(); ReloadMap(this[("map" + level)], true); }; } public function ShowEndOverlay(_arg1:Number, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):void{ winrar = true; ShowGameOverOverlay(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); gui_overlay_textField_levelComplete.text = "You Win!"; winrar = false; } public function SoundEv(_arg1:MouseEvent):void{ if (hud.soundgui.soundText.text == "MUSIC OFF"){ UnmuteSound(); } else { MuteSound(); }; } public function PlaySound(_arg1:Sound, _arg2:Number=0):void{ StopSounds(); musicSoundChannel = _arg1.play(0, _arg2, sfxSoundTransform); musicPlaying = true; } public function TweenPlaceholder(_arg1:Event):void{ if (_arg1.target.x < 45){ _arg1.target.x = (_arg1.target.x + 20); } else { SoundMixer.stopAll(); PlaySFX(sound_levelComplete); gui_placeholderMainMenuButton.visible = true; gui_placeholderContinueButton.visible = true; gui_placeholderMoreGamesButton.visible = true; _arg1.target.x = 45; _arg1.target.removeEventListener(Event.ENTER_FRAME, TweenPlaceholder); }; } public function ResetScores():void{ redStarCounter = 0; blueStarCounter = 0; goldStarCounter = 0; skullCounter = 0; powerupCounter = 0; flipCounter = 0; backFlipCounter = 0; checkpointRedStarCounter = 0; checkpointBlueStarCounter = 0; checkpointGoldStarCounter = 0; checkpointSkullCounter = 0; checkpointPowerupCounter = 0; checkpointFlipCounter = 0; checkpointBackFlipCounter = 0; timer = 0; } public function MuteSound():void{ musicSoundTransform.volume = 0; backgroundSoundChannel.soundTransform = musicSoundTransform; hud.soundgui.soundText.text = "MUSIC OFF"; } public function HandleInput():void{ var _local1:b2Vec2 = rider.physicsObject.GetLinearVelocity(); var _local2:Number = (nitroAccelerate) ? (maxSpeed * nitroSpeedMultiplier) : maxSpeed; if (_local1.x > _local2){ rider.physicsObject.SetLinearVelocity(new b2Vec2(_local2, _local1.y)); }; var _local3:Number = rider.physicsObject.GetAngularVelocity(); if (Math.abs(_local3) > maxRotSpeed){ rider.physicsObject.SetAngularVelocity(((_local3)>0) ? maxRotSpeed : -(maxRotSpeed)); }; if (isDead){ return; }; if (((((keys[38]) && (((((canAccelerate) || (canRampAccelerate))) || (canPlatformAccelerate))))) && (!(canLoopAccelerate)))){ rider.physicsObject.ApplyImpulse(new b2Vec2((nitroAccelerate) ? (moveSpeed * nitroSpeedMultiplier) : moveSpeed, 0), rider.physicsObject.GetWorldPoint(new b2Vec2())); }; if (((nitroAccelerate) && (canLoopAccelerate))){ rider.physicsObject.ApplyImpulse(new b2Vec2(((Math.cos(((rider.rotation / 180) * Math.PI)) * moveSpeed) * 0.7), ((Math.sin(((rider.rotation / 180) * Math.PI)) * moveSpeed) * 0.7)), rider.physicsObject.GetWorldPoint(new b2Vec2())); }; if (((keys[37]) && (!(canAccelerate)))){ rider.physicsObject.ApplyTorque(-(rotateSpeed)); }; if (((keys[39]) && (!(canAccelerate)))){ rider.physicsObject.ApplyTorque(rotateSpeed); }; } public function RandomBackground(_arg1:Array):void{ var _local2:MovieClip; var _local4:int; if (_arg1){ _local4 = 0; while (_local4 < numberOfBGObjects) { _local2 = AddMapItem(_arg1[int((Math.random() * _arg1.length))], ((_local4 / numberOfBGObjects) * ((1000 - 5) + (Math.random() * 10))), (8.5 + (Math.random() * 0.2))); if (int((Math.random() * 2)) == 0){ _local2.scaleX = -(_local2.scaleX); }; _local4++; }; }; var _local3:int; while (_local3 < 15) { _local2 = AddMapItem(BG_ID, (_local3 * 64.9), 8, backCamera); _local3++; }; } public function ShowOverlay(_arg1:Number, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):void{ gui_placeholderRestartButton.enabled = true; gui_placeholderRestartButton.visible = true; var _local9 = 100; gui_overlay_textField_powerups_text.x = (_local9 - 20); gui_redstar.x = (_local9 - 15); gui_overlay_textField_redstar_text.x = _local9; gui_bluestar.x = (_local9 - 15); gui_overlay_textField_bluestar_text.x = _local9; gui_goldstar.x = (_local9 - 15); gui_overlay_textField_goldstar_text.x = _local9; gui_skull.x = (_local9 - 15); gui_overlay_textField_skull_text.x = _local9; gui_overlay_textField_backflip_text.x = (_local9 - 20); gui_overlay_textField_frontflip_text.x = (_local9 - 20); gui_overlay_textField_levelTotal_text.x = (_local9 - 20); gui_overlay_textField_continue.x = (_local9 - 20); totalRedStarCounter = (totalRedStarCounter + _arg3); totalBlueStarCounter = (totalBlueStarCounter + _arg4); totalGoldStarCounter = (totalGoldStarCounter + _arg5); totalSkullCounter = (totalSkullCounter + _arg6); totalPowerupCounter = (totalPowerupCounter + _arg2); totalFlipCounter = (totalFlipCounter + _arg8); totalBackFlipCounter = (totalBackFlipCounter + _arg7); totalTimer = (totalTimer + _arg1); if (gui_placeholderRestartButton.parent){ gui_overlayPlaceholder.removeChild(gui_placeholderRestartButton); }; gui_overlayPlaceholder.addChild(gui_placeholderContinueButton); gui_placeholderMainMenuButton.visible = false; gui_placeholderContinueButton.visible = false; gui_placeholderMoreGamesButton.visible = false; PlaySFX(sound_overlaySlide); gui_overlayPlaceholder.x = -340; gui_overlay_textField_levelComplete.text = (("Level " + level) + " Complete!"); gui_overlay_textField_continue.text = (String(continues) + " Continues Remaining"); gui_overlay_textField_levelTime.text = ((("Time = " + int((_arg1 / 60))) + ":") + FixNumber(int((_arg1 - (int((_arg1 / 60)) * 60))))); gui_overlay_textField_powerups_text.text = ((("Power Ups x " + _arg2) + " = ") + String((_arg2 * 25))); gui_overlay_textField_redstar_text.text = ((("x " + _arg3) + " = ") + String((_arg3 * 25))); gui_overlay_textField_bluestar_text.text = ((("x " + _arg4) + " = ") + String((_arg4 * 50))); gui_overlay_textField_goldstar_text.text = ((("x " + _arg5) + " = ") + String((_arg5 * 75))); gui_overlay_textField_skull_text.text = ((("x " + _arg6) + " = ") + String((-(_arg6) * 100))); gui_overlay_textField_backflip_text.text = ((("Back Flips x " + _arg7) + " = ") + String((_arg7 * 100))); gui_overlay_textField_frontflip_text.text = ((("Front Flips x " + _arg8) + " = ") + String((_arg8 * 100))); var _local10:int = (((((((_arg2 * 25) + (_arg3 * 25)) + (_arg4 * 50)) + (_arg5 * 75)) + (_arg7 * 100)) + (_arg8 * 100)) - (_arg6 * 100)); gui_overlay_textField_levelTotal_text.text = ("Level Total = " + String(_local10)); gui_placeholderContinueButton.addEventListener(MouseEvent.CLICK, nextLevel); addChild(gui_overlayPlaceholder); gui_overlayPlaceholder.addEventListener(Event.ENTER_FRAME, TweenPlaceholder); currentMode = LEVEL_OVERLAY_MODE; } public function LoadMap(_arg1:String):void{ var _local2:String; var _local3:int; var _local4:Number; var _local5:Number; Reset(); while ((_local2 = GetFirstChunk(_arg1, "|")) != "") { _arg1 = RemoveFirstChunk(_arg1, "|"); _local3 = int(GetFirstChunk(_local2, ",")); _local2 = RemoveFirstChunk(_local2, ","); _local4 = Number(GetFirstChunk(_local2, ",")); _local2 = RemoveFirstChunk(_local2, ","); _local5 = Number(GetFirstChunk(_local2, ",")); _local2 = RemoveFirstChunk(_local2, ","); if (_local3 == PLAYER_ID){ riderStartPos.x = _local4; riderStartPos.y = _local5; } else { AddMapItem(_local3, _local4, _local5); }; }; InitRider(); RandomBackground(this[(("map" + level) + "s")]); } public function SimulateFloat(_arg1:b2Body, _arg2:Number=-7, _arg3:int=5):void{ var _local7:b2Vec2; var _local8:b2Vec2; if (_arg2 >= 0){ return; }; var _local4:Number = 0.6; var _local5:Number = -0.6; var _local6:int; while (_local6 < _arg3) { _local7 = _arg1.GetWorldPoint(new b2Vec2(((((_local5 - _local4) / _arg3) * _local6) + _local4), 0)); if (_local7.y > waterLine){ _arg1.ApplyImpulse(new b2Vec2(0, (_arg2 / _arg3)), _local7); }; _local6++; }; if (_arg1.GetPosition().y > waterLine){ _local8 = _arg1.GetLinearVelocity(); if (_arg1.GetUserData().type == rider.type){ if (!diveMode){ _local8.x = (_local8.x * 0.97); _local8.y = (_local8.y * 0.7); } else { _local8.y = (_local8.y * 0.95); }; } else { _local8.x = (_local8.x * 0.97); _local8.y = (_local8.y * 0.77); }; _arg1.SetLinearVelocity(_local8); _arg1.SetAngularVelocity((_arg1.GetAngularVelocity() * 0.7)); }; } public function UpdateGraphics(){ var _local1:MovieClip; for each (_local1 in allObjects) { if (!_local1.camera){ } else { if (_local1.displaying){ if (((!((_local1.x > -((_local1.camera.x + _local1.width))))) && ((_local1.x < -(((_local1.camera.x - 650) - _local1.width)))))){ _local1.camera.removeChild(_local1); _local1.displaying = false; }; }; if (!_local1.displaying){ if ((((_local1.x > -((_local1.camera.x + _local1.width)))) && ((_local1.x < -(((_local1.camera.x - 650) - _local1.width)))))){ _local1.camera.addChild(_local1); _local1.displaying = true; }; }; }; }; } public function CheckCheckpointsAndWin():void{ if (rider.physicsObject.GetPosition().x >= finishPos){ addChild(darkenOverlay); ShowOverlay(timer, powerupCounter, redStarCounter, blueStarCounter, goldStarCounter, skullCounter, backFlipCounter, flipCounter); }; var _local1 = -1; var _local2:int; while (_local2 < checkPoints.length) { if (rider.physicsObject.GetPosition().x >= checkPoints[_local2].x){ if (_local1 == -1){ _local1 = _local2; } else { if (checkPoints[_local2].x > checkPoints[_local1].x){ _local1 = _local2; }; }; }; _local2++; }; if (_local1 != -1){ if (lastCheckPoint.x != checkPoints[_local1].x){ checkpointRedStarCounter = redStarCounter; checkpointBlueStarCounter = blueStarCounter; checkpointGoldStarCounter = goldStarCounter; checkpointSkullCounter = skullCounter; checkpointPowerupCounter = powerupCounter; checkpointFlipCounter = flipCounter; checkpointBackFlipCounter = backFlipCounter; PlaySFX(sound_checkpoint); AddText("Checkpoint!", FadingText.FADE_NEUTRAL_FORMAT, 800, 650, 0); }; lastCheckPoint = checkPoints[_local1]; }; } public function AddMapItem(_arg1:int, _arg2:Number, _arg3:Number, _arg4:MovieClip=null):MovieClip{ var _local5:MovieClip; switch (_arg1){ case PENGUIN_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, penguinShapeDef, new penguin(), 0, -25); break; case WALRUS_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, walrusShapeDef, new walrus()); break; case SEA_MINE_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, mineShapeDef, new seamine(), 0, 70); break; case NITRO_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, nitroShapeDef, new iconnitro()); break; case PLAYER_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, riderShapeDef, new riderstand(), 0, 0, -10); _local5.physicsObject.CreateShape(personShapeDef); AddPlayerHotSpot(_local5.physicsObject); break; case RAMP_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, rampShapeDef, new ramp()); AddRampHotspot(_local5.physicsObject); _local5.contactPoints = 0; break; case RAMP_FLOATING_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, rampFloatShapeDef, new rampfloating()); AddRampHotspot(_local5.physicsObject); _local5.contactPoints = 0; break; case BARREL_EXPLODE_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, barrelShapeDef, new barrelexplode(), 8, 0, -5); break; case REDSTAR_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, redStarShapeDef, new redstar()); break; case BLUESTAR_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, blueStarShapeDef, new bluestar()); break; case GOLDSTAR_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, goldStarShapeDef, new goldstar()); break; case SKULL_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, skullShapeDef, new skull(), -2.7, -18); break; case PELICAN_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, pelicanShapeDef, new pelican(), 0, -15, -3); break; case DIVE_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, diveShapeDef, new icondive()); break; case PLATFORM1_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, platform1ShapeDef, new platform1()); _local5.contactPoints = 0; break; case PLATFORM2_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, platform2ShapeDef, new platform2()); _local5.contactPoints = 0; break; case PLATFORM3_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, platform3ShapeDef, new platform3()); _local5.contactPoints = 0; break; case PLATFORM4_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, platform4ShapeDef, new platform4()); _local5.contactPoints = 0; break; case GUY_ON_RAFT_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, guyonaraftShapeDef, new guyonraft(), 0, -15, -5); break; case COOLER_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, coolerShapeDef, new cooler(), 0, 0, -5); break; case LOOP_ID: _local5 = CreateLoop(new loop(), _arg2, _arg3); break; case HIPPO_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, hippoShapeDef, new hippo(), 0, -12); break; case CROC_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, crocShapeDef, new croc(), 0, -12); break; case LOG_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, logShapeDef, new log(), 0, 0); break; case LOG_SIDE_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, logSideShapeDef, new logside(), 0, 0); break; case LIFE_ID: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, lifeShapeDef, new iconlife()); break; case ICE_PLATFORM_1: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, icePlatform1ShapeDef, new iceplatform1(), 0, -15); _local5.contactPoints = 0; break; case ICE_PLATFORM_2: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, icePlatform2ShapeDef, new iceplatform2(), 0, -15); _local5.contactPoints = 0; break; case ICE_PLATFORM_3: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, icePlatform3ShapeDef, new iceplatform3(), 0, -15); _local5.contactPoints = 0; break; case ICE_PLATFORM_4: _local5 = CreateBodyAndGraphicsFromDef(_arg1, _arg2, _arg3, icePlatform4ShapeDef, new iceplatform4(), 0, -15); _local5.contactPoints = 0; break; case CROCS_NO_PHYSICS_ID: _local5 = CreateGraphicsFromDisplay(new croc(), ((_arg4)==null) ? midCamera : _arg4, _arg2, (_arg3 + 1.2)); break; case HIPPO_NO_PHYSICS_ID: _local5 = CreateGraphicsFromDisplay(new hippo(), ((_arg4)==null) ? midCamera : _arg4, _arg2, (_arg3 + 1.2)); break; case LOG_NO_PHYSICS_ID: _local5 = CreateGraphicsFromDisplay(new log(), ((_arg4)==null) ? midCamera : _arg4, _arg2, (_arg3 + 1.2)); break; case INDIANS_NO_PHYSICS_ID: _local5 = CreateGraphicsFromDisplay(new indians(), ((_arg4)==null) ? midCamera : _arg4, _arg2, (_arg3 + 1.2)); break; case LOG_SIDE_NO_PHYSICS_ID: _local5 = CreateGraphicsFromDisplay(new logside(), ((_arg4)==null) ? midCamera : _arg4, _arg2, (_arg3 + 1)); break; case ISLAND1_ID: _local5 = CreateGraphicsFromDisplay(new island1(), ((_arg4)==null) ? midCamera : _arg4, _arg2, ((_arg4)==null) ? (_arg3 + 0.6) : _arg3); break; case ISLAND2_ID: _local5 = CreateGraphicsFromDisplay(new island2(), ((_arg4)==null) ? midCamera : _arg4, _arg2, ((_arg4)==null) ? (_arg3 + 0.6) : _arg3); break; case ISLAND3_ID: _local5 = CreateGraphicsFromDisplay(new island3(), ((_arg4)==null) ? midCamera : _arg4, _arg2, ((_arg4)==null) ? (_arg3 + 0.6) : _arg3); break; case BG_ID: _local5 = CreateGraphicsFromDisplay(new BG(), ((_arg4)==null) ? midCamera : _arg4, _arg2, _arg3); _local5.gotoAndStop(mapBG[(level - 1)]); break; case SAIL_BOAT_RED_ID: _local5 = CreateGraphicsFromDisplay(new sailboatred(), ((_arg4)==null) ? midCamera : _arg4, _arg2, _arg3); break; case SAIL_BOAT_GREEN_ID: _local5 = CreateGraphicsFromDisplay(new sailboatgreen(), ((_arg4)==null) ? midCamera : _arg4, _arg2, _arg3); break; case SHIP_BLUE_ID: _local5 = CreateGraphicsFromDisplay(new shipblue(), ((_arg4)==null) ? midCamera : _arg4, _arg2, _arg3); break; case SHIP_LIGHT_BLUE_ID: _local5 = CreateGraphicsFromDisplay(new shiplightblue(), ((_arg4)==null) ? midCamera : _arg4, _arg2, _arg3); break; case SHIP_RED_ID: _local5 = CreateGraphicsFromDisplay(new shipred(), ((_arg4)==null) ? midCamera : _arg4, _arg2, _arg3); break; case BELL_BOUY_ID: _local5 = CreateGraphicsFromDisplay(new bellbouy(), ((_arg4)==null) ? midCamera : _arg4, _arg2, _arg3); break; case MOTOR_BOAT_RED_ID: _local5 = CreateGraphicsFromDisplay(new motorboatred(), ((_arg4)==null) ? midCamera : _arg4, _arg2, _arg3); break; case MOTOR_BOAT_YELLOW_ID: _local5 = CreateGraphicsFromDisplay(new motorboatyellow(), ((_arg4)==null) ? midCamera : _arg4, _arg2, _arg3); break; case CHECKPOINT_ID: _local5 = CreateGraphicsFromDisplay(new checkpoint(), camera, _arg2, _arg3); checkPoints.push(new b2Vec2(_arg2, (_arg3 - 3))); break; case FINISHPOINT_ID: _local5 = CreateGraphicsFromDisplay(new finishpoint(), camera, _arg2, _arg3); finishPos = _arg2; break; }; return (_local5); } public function UnmuteSFX():void{ sfxSoundTransform.volume = 1; sfxSoundChannel.soundTransform = sfxSoundTransform; musicSoundChannel.soundTransform = sfxSoundTransform; hud.sfxgui.sfxText.text = "SOUND FX ON"; } public function ChooseLevelSelect(_arg1:MouseEvent):void{ var _e = _arg1; if (map.parent){ removeChild(map); }; if (titleScreen.parent){ QuitGUI(); }; if (gui_overlayPlaceholder.parent){ HideOverlay(); }; if (!firstStart){ InitGamePlay(); } else { InitBackgroundGraphics(); PlayBackground(); }; ResetScores(); ResetTotalScores(); timer = 0; totalTimer = 0; lives = 5; isDead = false; hud.currentLevelText.text = level; ReloadMap(this[("map" + level)], true); ShowTips(null); try { if (darkenOverlay.parent){ removeChild(darkenOverlay); }; } catch(_e) { trace(_e); }; } public function CalculateScore():void{ score = (((((((redStarCounter * 25) + (blueStarCounter * 50)) + (goldStarCounter * 75)) + (skullCounter * -100)) + (flipCounter * 100)) + (backFlipCounter * 100)) + (powerupCounter * 25)); hud.points.text.text = String(score); hud.lives.text.text = String(lives); hud.time.seconds.text = String((int(timer) % 60)); hud.time.minutes.text = String(int((int(timer) / 60))); if (hud.time.seconds.text.length == 1){ hud.time.seconds.text = ("0" + hud.time.seconds.text); }; if (hud.time.minutes.text.length == 1){ hud.time.minutes.text = ("0" + hud.time.minutes.text); }; hud.progress.gotoAndStop(int((((rider.physicsObject.GetPosition().x - riderStartPos.x) / (finishPos - riderStartPos.x)) * 500))); } public function InitPhysics():void{ aabb = new b2AABB(); aabb.lowerBound.Set(-100, -100); aabb.upperBound.Set(2000, 50); gravity = new b2Vec2(0, 20); world = new b2World(aabb, gravity, true); contactListener = new ContactListener(); world.SetContactListener(contactListener); contactListener.AddBodyCollisionEvent(BodyCollisionCallback); contactListener.AddBodySeparationEvent(BodySeparationCallback); contactListener.AddShapeCollisionEvent(ShapeCollisionCallback); contactListener.AddShapeSeparationEvent(ShapeSeparationCallback); debugDraw = new b2DebugDraw(); debugSprite = new Sprite(); camera.addChild(debugSprite); debugDraw.m_sprite = debugSprite; debugDraw.m_drawScale = physicsScale; debugDraw.m_fillAlpha = 0.5; debugDraw.m_lineThickness = 1; debugDraw.m_drawFlags = b2DebugDraw.e_shapeBit; var _local1:b2PolygonDef = new b2PolygonDef(); _local1.SetAsBox(4000, 0.1); _local1.density = 0; _local1.friction = 0; var _local2:b2BodyDef = new b2BodyDef(); _local2.position.y = floorPos; floor = world.CreateBody(_local2); floor.CreateShape(_local1); addEventListener(Event.ENTER_FRAME, Update); } public function ApplyTorque():void{ rider.physicsObject.ApplyTorque(flipTorque); } public function BodySeparationCallback(_arg1:MovieClip, _arg2:MovieClip):void{ var _local3:MovieClip; var _local4:MovieClip; if (_arg1.type == PLAYER_ID){ _local3 = _arg1; _local4 = _arg2; } else { if (_arg2.type == PLAYER_ID){ _local3 = _arg2; _local4 = _arg1; } else { return; }; }; if ((((_local4.type == RAMP_ID)) || ((_local4.type == RAMP_FLOATING_ID)))){ _local4.contactPoints--; if (_local4.contactPoints == 0){ canRampAccelerate = false; ApplyTorque(); }; }; if ((((((((((((((((_local4.type == PLATFORM1_ID)) || ((_local4.type == PLATFORM2_ID)))) || ((_local4.type == PLATFORM3_ID)))) || ((_local4.type == PLATFORM4_ID)))) || ((_local4.type == ICE_PLATFORM_1)))) || ((_local4.type == ICE_PLATFORM_2)))) || ((_local4.type == ICE_PLATFORM_3)))) || ((_local4.type == ICE_PLATFORM_4)))){ _local4.contactPoints--; if (_local4.contactPoints == 0){ canPlatformAccelerate = false; }; }; if (_local4.type == LOOP_ID){ }; } public function playThunder(){ Rain.thunder.play(); PlaySFX(sound_thunder); } public function ShapeSeparationCallback(_arg1:b2ContactPoint):void{ var _local4:MovieClip; var _local5:b2Shape; var _local2:b2Shape = _arg1.shape1; var _local3:b2Shape = _arg1.shape2; if ((((_local2.GetBody().GetUserData() == null)) || ((_local3.GetBody().GetUserData() == null)))){ return; }; if (_local2.GetBody().GetUserData().type == PLAYER_ID){ _local4 = _local2.GetBody().GetUserData(); _local5 = _local3; } else { if (_local3.GetBody().GetUserData().type == PLAYER_ID){ _local4 = _local3.GetBody().GetUserData(); _local5 = _local2; } else { return; }; }; if ((((((_local2.GetUserData() == SHAPE_PLAYER_HOTSPOT_ID)) && ((_local3.GetUserData() == SHAPE_RAMP_HOTSPOT_ID)))) || ((((_local2.GetUserData() == SHAPE_RAMP_HOTSPOT_ID)) && ((_local3.GetUserData() == SHAPE_PLAYER_HOTSPOT_ID)))))){ superJumpCounter--; if (superJumpCounter == 0){ canSuperJump = false; }; }; if (_local5.GetBody().GetUserData() == SHAPE_LOOP_ID){ canLoopAccelerate = false; }; } public function AddRampHotspot(_arg1:b2Body):void{ _arg1.CreateShape(rampHotSpotShapeDef); } public function InitBackgroundGraphics():void{ var _local3:MovieClip; skyObjs = new MovieClip(); waterObjs = new MovieClip(); var _local1:skybg = new skybg(); _local1.y = -450; _local1.gotoAndStop(mapSky[(level - 1)]); _local1.cacheAsBitmap = true; skyObjs.addChild(_local1); waterBG = new waterbg(); waterBG.y = 240; waterBG.gotoAndStop(mapWater[(level - 1)]); waterBG.cacheAsBitmap = true; if (level == 10){ Rain = new rain(); timeThunder = setInterval(playThunder, 10000); addChild(Rain); }; var _local2:int; while (_local2 < 25) { _local3 = new water(); _local3.x = (-500 + (_local2 * 60)); _local3.y = 400; waterObjs.addChild(_local3); _local2++; }; backCamera.addChildAt(skyObjs, 0); waterBGCamera.addChild(waterBG); waterCamera.addChild(waterObjs); } public function InitRider():void{ rider = AddMapItem(PLAYER_ID, riderStartPos.x, riderStartPos.y); } public function InitKeys():void{ keys = new Array(); stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDown); stage.addEventListener(KeyboardEvent.KEY_UP, KeyUp); } public function TweenGameOver(_arg1:Event):void{ if (_arg1.target.x < 45){ _arg1.target.x = (_arg1.target.x + 20); } else { SoundMixer.stopAll(); PlaySFX(sound_gameOver); gui_placeholderMainMenuButton.visible = true; gui_placeholderRestartButton.visible = true; gui_placeholderMoreGamesButton.visible = true; _arg1.target.x = 45; _arg1.target.removeEventListener(Event.ENTER_FRAME, TweenGameOver); }; } public function StartGame(_arg1:MouseEvent):void{ ResetScores(); ResetTotalScores(); QuitGUI(); level = 1; if (!firstStart){ InitGamePlay(); } else { Reset(); }; ReloadMap(this[("map" + level)], true); } public function PlayTitle():void{ SoundMixer.stopAll(); backgroundSoundChannel.stop(); backgroundSoundChannel = sound_titleScreen.play(0, int.MAX_VALUE, musicSoundTransform); } public function CreateGraphicsFromDisplay(_arg1:MovieClip, _arg2:MovieClip, _arg3:Number, _arg4:Number):MovieClip{ _arg1.x = (_arg3 * physicsScale); _arg1.y = (_arg4 * physicsScale); _arg1.cacheAsBitmap = true; _arg1.boyancy = 0; _arg1.camera = _arg2; allObjects.push(_arg1); return (_arg1); } public function KeyDown(_arg1:KeyboardEvent):void{ keys[_arg1.keyCode] = true; if (currentMode == GAME_MODE){ if (_arg1.keyCode == 32){ Jump(); }; if (_arg1.keyCode == 80){ addChild(darkenOverlay); addChild(pauseText); addChild(resumeText); currentMode = PAUSE_MODE; return; }; }; if (currentMode == PAUSE_MODE){ if (_arg1.keyCode == 80){ currentMode = GAME_MODE; removeChild(darkenOverlay); removeChild(pauseText); removeChild(resumeText); return; }; if (_arg1.keyCode == 81){ removeChild(darkenOverlay); removeChild(pauseText); removeChild(resumeText); InitGUI(); return; }; }; if ((((currentMode == MAP_MODE)) && (!(Tweener.isTweening(map["mMario"]))))){ if ((((_arg1.keyCode == 32)) || ((_arg1.keyCode == 13)))){ ChooseLevelSelect(null); } else { if (_arg1.keyCode == 37){ if (level == 1){ return; }; level--; map["tLevel"].text = level; if (map["mMario"].x > map[("mPoint" + level)].x){ map["mMario"].scaleX = -1; } else { if (map["mMario"].x < map[("mPoint" + level)].x){ map["mMario"].scaleX = 1; }; }; Tweener.addTween(map["mMario"], {time:1, x:map[("mPoint" + level)].x, y:map[("mPoint" + level)].y, transition:"linear"}); } else { if (_arg1.keyCode == 39){ if (level == 10){ return; }; if (level < levelsUnlocked.length){ level++; map["tLevel"].text = level; }; if (map["mMario"].x > map[("mPoint" + level)].x){ map["mMario"].scaleX = -1; } else { if (map["mMario"].x < map[("mPoint" + level)].x){ map["mMario"].scaleX = 1; }; }; Tweener.addTween(map["mMario"], {time:1, x:map[("mPoint" + level)].x, y:map[("mPoint" + level)].y, transition:"linear"}); }; }; }; }; } public function removeInstructionOverlay(_arg1:MouseEvent):void{ removeChild(instructionOverlay); } public function MuteSFX():void{ sfxSoundTransform.volume = 0; sfxSoundChannel.soundTransform = sfxSoundTransform; musicSoundChannel.soundTransform = sfxSoundTransform; hud.sfxgui.sfxText.text = "SOUND FX OFF"; } public function InitGamePlay():void{ firstStart = true; InitCamera(); InitPhysics(); InitBackgroundGraphics(); this.setChildIndex(hud, (this.numChildren - 1)); LoadMap(this[("map" + level)]); currentMode = GAME_MODE; timer = 0; totalTimer = 0; isDead = false; hud.currentLevelText.text = level; lastFrame = new Date().getTime(); } public function FixNumber(_arg1:int, _arg2:int=2):String{ var _local3:String = _arg1.toString(); while (_local3.length < _arg2) { _local3 = ("0" + _local3); }; return (_local3); } public function PlayBackground():void{ SoundMixer.stopAll(); backgroundSoundChannel.stop(); backgroundSoundChannel = sound_inGameMusic.play(0, int.MAX_VALUE, musicSoundTransform); } public function HandleSound():void{ var _local1:b2Vec2 = rider.physicsObject.GetLinearVelocity(); var _local2:Number = (nitroAccelerate) ? (maxSpeed * nitroSpeedMultiplier) : maxSpeed; if (((!(keys[38])) && (((((!(musicPlaying)) || (fastPlaying))) || (slowPlaying))))){ PlaySound(sound_jetskiIdle, int.MAX_VALUE); slowPlaying = false; idlePlaying = true; fastPlaying = false; }; if (((((((idlePlaying) || (fastPlaying))) || (!(musicPlaying)))) && (keys[38]))){ if (_local1.x < (_local2 * 0.8)){ PlaySound(sound_jetskiSlow, int.MAX_VALUE); slowPlaying = true; idlePlaying = false; fastPlaying = false; }; }; if (((((((idlePlaying) || (slowPlaying))) || (!(musicPlaying)))) && (keys[38]))){ if ((((_local1.x >= (_local2 * 0.8))) && (_local1.x))){ PlaySound(sound_jetskiFast, int.MAX_VALUE); idlePlaying = false; slowPlaying = false; fastPlaying = true; }; }; } public function HideTips(_arg1:MouseEvent){ removeChild(gui_tips); } public function SetDead():void{ isDead = true; spawnTimer = respawnTime; PlaySound(sound_jetskiCrash); } public function ResetTotalScores():void{ totalRedStarCounter = 0; totalBlueStarCounter = 0; totalGoldStarCounter = 0; totalSkullCounter = 0; totalPowerupCounter = 0; totalFlipCounter = 0; totalBackFlipCounter = 0; totalTimer = 0; } public function FixPlayerFrame():void{ if (rider.isPlaying){ return; }; var _local1:b2Vec2 = rider.physicsObject.GetPosition(); var _local2:b2Vec2 = rider.physicsObject.GetLinearVelocity(); var _local3:Number = rider.physicsObject.GetAngle(); while (_local3 < 0) { _local3 = (_local3 + (3.14159265 * 2)); }; while (_local3 > (3.14159265 * 2)) { _local3 = (_local3 - (3.14159265 * 2)); }; if ((((((_local2.y > 9)) && ((_local1.y >= (waterLine - 1))))) && (!((rider.currentFrame == 12))))){ if (rider.currentFrame == 6){ rider.gotoAndPlay(9); } else { rider.gotoAndPlay(6); }; } else { if ((((((_local2.y < 3)) && ((_local1.y <= waterLine)))) && ((rider.currentFrame >= 6)))){ rider.gotoAndStop(1); } else { if ((((_local3 > 0)) && ((_local3 < (3.1415926 * 0.5))))){ rider.gotoAndStop(1); }; }; }; } public function UnmuteSound():void{ musicSoundTransform.volume = 1; backgroundSoundChannel.soundTransform = musicSoundTransform; hud.soundgui.soundText.text = "MUSIC ON"; } public function ShowTips(_arg1:MouseEvent):void{ addChild(gui_tips); if (level != 11){ gui_tips.gotoAndStop(level); gui_tipsContinueButton.addEventListener(MouseEvent.CLICK, HideTips); }; } public function SFXEv(_arg1:MouseEvent):void{ if (hud.sfxgui.sfxText.text == "SOUND FX OFF"){ UnmuteSFX(); } else { MuteSFX(); }; } } }//package JetSkiMario_fla
Section 115
//mariowalk_101 (JetSkiMario_fla.mariowalk_101) package JetSkiMario_fla { import flash.display.*; public dynamic class mariowalk_101 extends MovieClip { public function mariowalk_101(){ addFrameScript(99, frame100); } function frame100(){ stop(); } } }//package JetSkiMario_fla
Section 116
//mariowalkB_117 (JetSkiMario_fla.mariowalkB_117) package JetSkiMario_fla { import flash.display.*; public dynamic class mariowalkB_117 extends MovieClip { public function mariowalkB_117(){ addFrameScript(69, frame70); } function frame70(){ stop(); } } }//package JetSkiMario_fla
Section 117
//play_103 (JetSkiMario_fla.play_103) package JetSkiMario_fla { import flash.display.*; public dynamic class play_103 extends MovieClip { public function play_103(){ addFrameScript(0, frame1, 40, frame41); } function frame41(){ stop(); mouseEnabled = true; } function frame1(){ stop(); mouseEnabled = false; } } }//package JetSkiMario_fla
Section 118
//PreloaderA_2 (JetSkiMario_fla.PreloaderA_2) package JetSkiMario_fla { import flash.display.*; public dynamic class PreloaderA_2 extends MovieClip { public function PreloaderA_2(){ addFrameScript(199, frame200); } function frame200(){ stop(); } } }//package JetSkiMario_fla
Section 119
//PreloaderB_115 (JetSkiMario_fla.PreloaderB_115) package JetSkiMario_fla { import flash.display.*; import flash.events.*; import flash.net.*; public dynamic class PreloaderB_115 extends MovieClip { public function PreloaderB_115(){ addFrameScript(0, frame1, 99, frame100); } function frame100(){ stop(); } function frame1(){ useHandCursor = true; buttonMode = true; addEventListener(MouseEvent.MOUSE_DOWN, navigateURL, false, 0, true); } public function navigateURL(_arg1:Event){ navigateToURL(new URLRequest("http://www.duckarcade.com/category/mario-games/1/top-rated.html?utm_medium=brandedgames_external&utm_campaign=mario-jet-ski&utm_source=ingame&utm_content=ingame")); } } }//package JetSkiMario_fla
Section 120
//PRELOADERDUCKARCADE_1 (JetSkiMario_fla.PRELOADERDUCKARCADE_1) package JetSkiMario_fla { import flash.display.*; import flash.events.*; import flash.text.*; import flash.media.*; import flash.net.*; public dynamic class PRELOADERDUCKARCADE_1 extends MovieClip { public var mLoader:MovieClip; public var mPlay:MovieClip; public var preloader_sound:Sound; public var tLoader:TextField; public var mBG:MovieClip; public var musicTransform:SoundTransform; public var mMario:MovieClip; public var musicChannel:SoundChannel; public function PRELOADERDUCKARCADE_1(){ addFrameScript(0, frame1, 100, frame101); } public function loading(_arg1:Event){ var _local2:* = stage.loaderInfo.bytesTotal; var _local3:* = stage.loaderInfo.bytesLoaded; var _local4:* = Math.round(((_local3 / _local2) * 100)); var _local5:Number = (_local3 / _local2); mMario.x = (-168 + ((362 / 100) * _local4)); mLoader.gotoAndStop(_local4); tLoader.text = (_local4 + "%"); if (_local3 >= _local2){ tLoader.visible = false; mPlay.gotoAndPlay(2); removeEventListener(Event.ENTER_FRAME, loading); }; } public function navigateURL(_arg1:Event){ navigateToURL(new URLRequest("http://www.duckarcade.com/category/mario-games/1/top-rated.html?utm_medium=brandedgames_external&utm_campaign=mario-jet-ski&utm_source=ingame&utm_content=ingame")); } function frame1(){ useHandCursor = true; buttonMode = true; addEventListener(Event.ENTER_FRAME, loading); mPlay.addEventListener(MouseEvent.MOUSE_DOWN, goNextFrame, false, 0, true); mBG.addEventListener(MouseEvent.MOUSE_DOWN, navigateURL, false, 0, true); mMario.addEventListener(MouseEvent.MOUSE_DOWN, navigateURL, false, 0, true); mLoader.addEventListener(MouseEvent.MOUSE_DOWN, navigateURL, false, 0, true); musicChannel = new SoundChannel(); musicTransform = new SoundTransform(); preloader_sound = new preloadersound(); musicChannel = preloader_sound.play(0, int.MAX_VALUE, musicTransform); stop(); } function frame101(){ stop(); (parent as MovieClip).nextFrame(); } public function goNextFrame(_arg1:MouseEvent){ gotoAndPlay(2); musicChannel.stop(); } } }//package JetSkiMario_fla
Section 121
//Log (Playtomic.Log) package Playtomic { import flash.events.*; import flash.utils.*; import flash.net.*; import flash.system.*; import flash.external.*; public final class Log { private static const PingR:Timer = new Timer(30000); private static const PingF:Timer = new Timer(60000); private static var LevelAverages:Array = new Array(); private static var Customs:Array = new Array(); public static var Cookie:SharedObject; public static var GUID:String = ""; private static var LevelRangeds:Array = new Array(); private static var Plays:int = 0; public static var Enabled:Boolean = false; private static var Pings:int = 0; private static var FrozenQueue:Array = new Array(); public static var SourceUrl:String; private static var HighestGoal:int = 0; private static var FirstPing:Boolean = true; private static var Frozen:Boolean = false; public static var BaseUrl:String; public static var Request:LogRequest; public static var Queue:Boolean = true; private static var LevelCounters:Array = new Array(); public static var SWFID:int = 0; public static function Link(_arg1:String, _arg2:String, _arg3:String, _arg4:int, _arg5:int, _arg6:int):void{ if (!Enabled){ return; }; Send(((((((((((("l/" + Clean(_arg2)) + "/") + Clean(_arg3)) + "/") + Clean(_arg1)) + "/") + _arg4) + "/") + _arg5) + "/") + _arg6)); } public static function LevelAverageMetric(_arg1:String, _arg2, _arg3:int, _arg4:Boolean=false):void{ if (!Enabled){ return; }; if (_arg4){ if (LevelAverages.indexOf(_arg1) > -1){ return; }; LevelAverages.push(_arg1); }; Send(((((("la/" + Clean(_arg1)) + "/") + Clean(_arg2)) + "/") + _arg3)); } private static function Send(_arg1:String, _arg2:Boolean=false):void{ if (Frozen){ FrozenQueue.push(_arg1); return; }; Request.Queue(_arg1); if (((((Request.Ready) || (_arg2))) || (!(Queue)))){ Request.Send(); Request = LogRequest.Create(); }; } public static function CustomMetric(_arg1:String, _arg2:String=null, _arg3:Boolean=false):void{ if (!Enabled){ return; }; if (_arg2 == null){ _arg2 = ""; }; if (_arg3){ if (Customs.indexOf(_arg1) > -1){ return; }; Customs.push(_arg1); }; Send(((("c/" + Clean(_arg1)) + "/") + Clean(_arg2))); } private static function Clean(_arg1:String):String{ while (_arg1.indexOf("/") > -1) { _arg1 = _arg1.replace("/", "\\"); }; while (_arg1.indexOf("~") > -1) { _arg1 = _arg1.replace("~", "-"); }; return (escape(_arg1)); } public static function UnFreeze():void{ Frozen = false; Request.MassQueue(FrozenQueue); } private static function GetCookie(_arg1:String):int{ if (Cookie.data[_arg1] == undefined){ return (0); }; return (int(Cookie.data[_arg1])); } public static function View(_arg1:int=0, _arg2:String="", _arg3:String=""):void{ if (SWFID > 0){ return; }; SWFID = _arg1; GUID = _arg2; Enabled = true; if ((((SWFID == 0)) || ((GUID == "")))){ Enabled = false; return; }; if (((((!((_arg3.indexOf("http://") == 0))) && (!((Security.sandboxType == "localWithNetwork"))))) && (!((Security.sandboxType == "localTrusted"))))){ Enabled = false; return; }; SourceUrl = GetUrl(_arg3); if ((((((SourceUrl == null)) || ((SourceUrl == "")))) || ((SourceUrl.indexOf("https://") == 0)))){ Enabled = false; return; }; Security.allowDomain((("http://g" + Log.GUID) + ".api.playtomic.com/")); Security.allowInsecureDomain((("http://g" + Log.GUID) + ".api.playtomic.com/")); Security.loadPolicyFile((("http://g" + Log.GUID) + ".api.playtomic.com/crossdomain.xml")); Request = LogRequest.Create(); Cookie = SharedObject.getLocal("playtomic"); var _local4:int = GetCookie("views"); _local4++; SaveCookie("views", _local4); Send(("v/" + _local4), true); PingF.addEventListener(TimerEvent.TIMER, PingServer); PingF.start(); } public static function Freeze():void{ Frozen = true; } public static function LevelCounterMetric(_arg1:String, _arg2, _arg3:Boolean=false):void{ if (!Enabled){ return; }; if (_arg3){ if (LevelCounters.indexOf(_arg1) > -1){ return; }; LevelCounters.push(_arg1); }; Send(((("lc/" + Clean(_arg1)) + "/") + Clean(_arg2))); } public static function Play():void{ if (!Enabled){ return; }; LevelCounters = new Array(); LevelAverages = new Array(); LevelRangeds = new Array(); Plays++; Send(("p/" + Plays)); } private static function GetUrl(_arg1:String):String{ var url:String; var defaulturl = _arg1; if (ExternalInterface.available){ try { url = String(ExternalInterface.call("window.location.href.toString")); } catch(s:Error) { url = defaulturl; }; } else { if ((((defaulturl.indexOf("http://") == 0)) || ((defaulturl.indexOf("https://") == 0)))){ url = defaulturl; }; }; if ((((((url == null)) || ((url == "")))) || ((url == "null")))){ if ((((Security.sandboxType == "localWithNetwork")) || ((Security.sandboxType == "localTrusted")))){ url = "http://local-testing/"; } else { url = null; }; }; return (escape(url)); } public static function LevelRangedMetric(_arg1:String, _arg2, _arg3:int, _arg4:Boolean=false):void{ if (!Enabled){ return; }; if (_arg4){ if (LevelRangeds.indexOf(_arg1) > -1){ return; }; LevelRangeds.push(_arg1); }; Send(((((("lr/" + Clean(_arg1)) + "/") + Clean(_arg2)) + "/") + _arg3)); } private static function SaveCookie(_arg1:String, _arg2:int):void{ var _local3:SharedObject = SharedObject.getLocal("swfstats"); _local3.data[_arg1] = _arg2.toString(); _local3.flush(); } public static function ForceSend():void{ if (!Enabled){ return; }; Request.Send(); Request = LogRequest.Create(); if (FrozenQueue.length > 0){ Request.MassQueue(FrozenQueue); }; } private static function PingServer(... _args):void{ if (!Enabled){ return; }; Pings++; Send(((("t/" + (FirstPing) ? "y" : "n") + "/") + Pings), true); if (FirstPing){ PingF.stop(); PingR.addEventListener(TimerEvent.TIMER, PingServer); PingR.start(); FirstPing = false; }; } } }//package Playtomic
Section 122
//LogRequest (Playtomic.LogRequest) package Playtomic { import flash.events.*; import flash.net.*; public final class LogRequest { public var Ready:Boolean;// = false private var Data:String;// = "" private var Target:URLRequest; private var Sender:URLLoader; private var BaseUrl:String; private static var Pool:Array = new Array(); private static var Failed:int = 0; public function LogRequest(){ this.Sender = new URLLoader(); this.Sender.addEventListener(Event.COMPLETE, this.Dispose, false, 0, true); this.Sender.addEventListener(IOErrorEvent.IO_ERROR, this.IOErrorHandler, false, 0, true); this.Sender.addEventListener(HTTPStatusEvent.HTTP_STATUS, this.StatusChange, false, 0, true); this.Sender.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.SecurityErrorHandler, false, 0, true); this.Target = new URLRequest(); this.BaseUrl = ((("http://g" + Log.GUID) + ".api.playtomic.com/tracker/q.aspx?swfid=") + Log.SWFID); } public function Send():void{ this.Target.url = (((((((this.BaseUrl + "&q=") + this.Data) + "&url=") + Log.SourceUrl) + "&") + Math.random()) + "z"); this.Sender.load(this.Target); } private function SecurityErrorHandler(_arg1:SecurityErrorEvent):void{ } private function IOErrorHandler(_arg1:IOErrorEvent):void{ Failed++; } public function Queue(_arg1:String):void{ if (Failed > 3){ return; }; this.Data = (this.Data + (((this.Data == "")) ? "" : "~" + _arg1)); if (this.Data.length > 300){ this.Ready = true; }; } private function StatusChange(_arg1:HTTPStatusEvent):void{ } public function MassQueue(_arg1:Array):void{ var _local3:LogRequest; if (Failed > 3){ return; }; var _local2:int = (_arg1.length - 1); while (_local2 > -1) { this.Data = (this.Data + (((this.Data == "")) ? "" : "~" + _arg1[_local2])); _arg1.splice(_local2, 1); if (this.Data.length > 300){ _local3 = Create(); _local3.MassQueue(_arg1); this.Ready = true; this.Send(); return; }; _local2--; }; Log.Request = this; } public function Dispose(_arg1:Event=null):void{ Pool.push(this); } public static function Create():LogRequest{ var _local1:LogRequest = ((Pool.length > 0)) ? (Pool.pop() as LogRequest) : new (LogRequest); _local1.Data = ""; _local1.Ready = false; return (_local1); } } }//package Playtomic
Section 123
//barrel (barrel) package { import flash.display.*; public dynamic class barrel extends MovieClip { } }//package
Section 124
//barrelexplode (barrelexplode) package { import flash.display.*; public dynamic class barrelexplode extends MovieClip { public function barrelexplode(){ addFrameScript(0, frame1, 26, frame27); } function frame27(){ stop(); this.visible = false; } function frame1(){ stop(); } } }//package
Section 125
//bellbouy (bellbouy) package { import flash.display.*; public dynamic class bellbouy extends MovieClip { } }//package
Section 126
//BG (BG) package { import flash.display.*; public dynamic class BG extends MovieClip { public function BG(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 127
//bluestar (bluestar) package { import flash.display.*; public dynamic class bluestar extends MovieClip { } }//package
Section 128
//checkpoint (checkpoint) package { import flash.display.*; public dynamic class checkpoint extends MovieClip { } }//package
Section 129
//checkpoint_sound (checkpoint_sound) package { import flash.media.*; public dynamic class checkpoint_sound extends Sound { } }//package
Section 130
//ContactListener (ContactListener) package { import flash.display.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class ContactListener extends b2ContactListener { protected var shapeSeparationEvents:Array; protected var events:Array; protected var shapeEvents:Array; protected var separationEvents:Array; public function ContactListener():void{ events = new Array(); shapeEvents = new Array(); separationEvents = new Array(); shapeSeparationEvents = new Array(); } override public function Add(_arg1:b2ContactPoint):void{ var _local2:Function; var _local3:MovieClip; var _local4:MovieClip; var _local5:Function; for each (_local2 in shapeEvents) { _local2(_arg1); }; _local3 = (_arg1.shape1.GetBody().GetUserData() as MovieClip); _local4 = (_arg1.shape2.GetBody().GetUserData() as MovieClip); if ((((_local3 == null)) || ((_local4 == null)))){ return; }; for each (_local5 in events) { _local5(_local3, _local4); }; } override public function Remove(_arg1:b2ContactPoint):void{ var _local2:Function; var _local3:MovieClip; var _local4:MovieClip; var _local5:Function; for each (_local2 in shapeSeparationEvents) { _local2(_arg1); }; _local3 = (_arg1.shape1.GetBody().GetUserData() as MovieClip); _local4 = (_arg1.shape2.GetBody().GetUserData() as MovieClip); if ((((_local3 == null)) || ((_local4 == null)))){ return; }; for each (_local5 in separationEvents) { _local5(_local3, _local4); }; } public function AddShapeCollisionEvent(_arg1:Function):void{ shapeEvents.push(_arg1); } public function AddBodyCollisionEvent(_arg1:Function):void{ events.push(_arg1); } public function AddBodySeparationEvent(_arg1:Function):void{ separationEvents.push(_arg1); } public function AddShapeSeparationEvent(_arg1:Function):void{ shapeSeparationEvents.push(_arg1); } } }//package
Section 131
//cooler (cooler) package { import flash.display.*; public dynamic class cooler extends MovieClip { } }//package
Section 132
//croc (croc) package { import flash.display.*; public dynamic class croc extends MovieClip { public function croc(){ addFrameScript(0, frame1, 40, frame41); } function frame41(){ gotoAndStop(1); } function frame1(){ stop(); } } }//package
Section 133
//croc_sound (croc_sound) package { import flash.media.*; public dynamic class croc_sound extends Sound { } }//package
Section 134
//dive_sound (dive_sound) package { import flash.media.*; public dynamic class dive_sound extends Sound { } }//package
Section 135
//FadingText (FadingText) package { import flash.display.*; import flash.events.*; import flash.text.*; import flash.filters.*; public class FadingText extends Sprite { private var t_TextField:TextField; private var t_maxLife:Number; private var t_life:Number; public static var FADE_NEUTRAL_FORMAT:TextFormat = new TextFormat("Showcard Gothic", 32, 0xFFFFFF, true, null, null, null, null, TextFormatAlign.CENTER); public static var FADE_BAD_FORMAT:TextFormat = new TextFormat("Showcard Gothic", 26, 14882573, false, null, null, null, null, TextFormatAlign.CENTER); public static var FADE_GOOD_FORMAT:TextFormat = new TextFormat("Showcard Gothic", 26, 0x76EE00, false, null, null, null, null, TextFormatAlign.CENTER); public function FadingText(_arg1:String, _arg2:TextFormat, _arg3:Number=500, _arg4:Number=650, _arg5:Number=0, _arg6:Number=180):void{ this.x = _arg5; this.y = _arg6; t_maxLife = _arg3; t_life = _arg3; t_TextField = new TextField(); t_TextField.embedFonts = true; t_TextField.width = _arg4; t_TextField.selectable = false; t_TextField.antiAliasType = AntiAliasType.ADVANCED; this.addChild(t_TextField); this.filters = [new GlowFilter(0, 1, 5, 5, 5)]; RenderText(_arg1, _arg2); this.addEventListener(Event.ENTER_FRAME, KillTheText); } private function KillTheText(_arg1:Event):void{ t_life = (t_life - stage.frameRate); this.y = (this.y - (7 * (t_life / t_maxLife))); if (t_life <= 0){ this.removeEventListener(Event.ENTER_FRAME, KillTheText); this.parent.removeChild(this); }; } public function RenderText(_arg1:String, _arg2:TextFormat):void{ t_TextField.defaultTextFormat = _arg2; t_TextField.text = _arg1; } } }//package
Section 136
//finishpoint (finishpoint) package { import flash.display.*; public dynamic class finishpoint extends MovieClip { } }//package
Section 137
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { } }//package
Section 138
//FPS (FPS) package { import flash.display.*; import flash.events.*; import flash.text.*; import flash.utils.*; import flash.system.*; public dynamic class FPS extends MovieClip { public var secondTime:Number; public var prevSecondTime:Number; public var frames:Number; public var prevFrameTime:Number; public var frameTime:Number; public var iBar:MovieClip; public var time:Number; public var fps:String; public var tf:TextField; public function FPS(){ addFrameScript(1, frame2); } function frame2(){ stop(); prevFrameTime = getTimer(); prevSecondTime = getTimer(); frames = 0; fps = "..."; this.addEventListener(Event.ENTER_FRAME, onEnterFrame); } public function onEnterFrame(_arg1:Event):void{ time = getTimer(); frameTime = (time - prevFrameTime); secondTime = (time - prevSecondTime); if (secondTime >= 1000){ fps = frames.toString(); frames = 0; prevSecondTime = time; } else { frames++; }; prevFrameTime = time; tf.text = (((((fps + " FPS / ") + frameTime) + " MS") + " - Memory : ") + System.totalMemory); iBar.scaleX = (iBar.scaleX - ((iBar.scaleX - (frameTime / 10)) / 5)); } } }//package
Section 139
//gameover_sound (gameover_sound) package { import flash.media.*; public dynamic class gameover_sound extends Sound { } }//package
Section 140
//goldstar (goldstar) package { import flash.display.*; public dynamic class goldstar extends MovieClip { } }//package
Section 141
//guyonraft (guyonraft) package { import flash.display.*; public dynamic class guyonraft extends MovieClip { public function guyonraft(){ addFrameScript(0, frame1, 40, frame41); } function frame41(){ gotoAndStop(1); } function frame1(){ stop(); } } }//package
Section 142
//guyonraft_sound (guyonraft_sound) package { import flash.media.*; public dynamic class guyonraft_sound extends Sound { } }//package
Section 143
//hint (hint) package { import flash.display.*; public dynamic class hint extends MovieClip { } }//package
Section 144
//hippo (hippo) package { import flash.display.*; public dynamic class hippo extends MovieClip { public function hippo(){ addFrameScript(0, frame1, 40, frame41); } function frame41(){ gotoAndStop(1); } function frame1(){ stop(); } } }//package
Section 145
//hippo_sound (hippo_sound) package { import flash.media.*; public dynamic class hippo_sound extends Sound { } }//package
Section 146
//hit_sound (hit_sound) package { import flash.media.*; public dynamic class hit_sound extends Sound { } }//package
Section 147
//iceplatform1 (iceplatform1) package { import flash.display.*; public dynamic class iceplatform1 extends MovieClip { } }//package
Section 148
//iceplatform2 (iceplatform2) package { import flash.display.*; public dynamic class iceplatform2 extends MovieClip { } }//package
Section 149
//iceplatform3 (iceplatform3) package { import flash.display.*; public dynamic class iceplatform3 extends MovieClip { } }//package
Section 150
//iceplatform4 (iceplatform4) package { import flash.display.*; public dynamic class iceplatform4 extends MovieClip { } }//package
Section 151
//icondive (icondive) package { import flash.display.*; public dynamic class icondive extends MovieClip { } }//package
Section 152
//iconlife (iconlife) package { import flash.display.*; public dynamic class iconlife extends MovieClip { } }//package
Section 153
//iconnitro (iconnitro) package { import flash.display.*; public dynamic class iconnitro extends MovieClip { } }//package
Section 154
//indians (indians) package { import flash.display.*; public dynamic class indians extends MovieClip { } }//package
Section 155
//ingamemusic_sound (ingamemusic_sound) package { import flash.media.*; public dynamic class ingamemusic_sound extends Sound { } }//package
Section 156
//instructions (instructions) package { import flash.display.*; public dynamic class instructions extends MovieClip { public var backBtn:SimpleButton; } }//package
Section 157
//instructionsButton (instructionsButton) package { import flash.display.*; public dynamic class instructionsButton extends SimpleButton { } }//package
Section 158
//island1 (island1) package { import flash.display.*; public dynamic class island1 extends MovieClip { } }//package
Section 159
//island2 (island2) package { import flash.display.*; public dynamic class island2 extends MovieClip { } }//package
Section 160
//island3 (island3) package { import flash.display.*; public dynamic class island3 extends MovieClip { } }//package
Section 161
//jetskicrash_sound (jetskicrash_sound) package { import flash.media.*; public dynamic class jetskicrash_sound extends Sound { } }//package
Section 162
//jetskifast_sound (jetskifast_sound) package { import flash.media.*; public dynamic class jetskifast_sound extends Sound { } }//package
Section 163
//jetskiidle_sound (jetskiidle_sound) package { import flash.media.*; public dynamic class jetskiidle_sound extends Sound { } }//package
Section 164
//jetskijump_sound (jetskijump_sound) package { import flash.media.*; public dynamic class jetskijump_sound extends Sound { } }//package
Section 165
//jetskinitro_sound (jetskinitro_sound) package { import flash.media.*; public dynamic class jetskinitro_sound extends Sound { } }//package
Section 166
//jetskislow_sound (jetskislow_sound) package { import flash.media.*; public dynamic class jetskislow_sound extends Sound { } }//package
Section 167
//levelcomplete_sound (levelcomplete_sound) package { import flash.media.*; public dynamic class levelcomplete_sound extends Sound { } }//package
Section 168
//levelSelection (levelSelection) package { import flash.display.*; public dynamic class levelSelection extends MovieClip { public var l7:MovieClip; public var l1:MovieClip; public var l2:MovieClip; public var l3:MovieClip; public var l4:MovieClip; public var l5:MovieClip; public var l10:MovieClip; public var l9:MovieClip; public var l6:MovieClip; public var l8:MovieClip; } }//package
Section 169
//levelSelectionButton (levelSelectionButton) package { import flash.display.*; public dynamic class levelSelectionButton extends SimpleButton { } }//package
Section 170
//likeOverlay (likeOverlay) package { import flash.display.*; public dynamic class likeOverlay extends MovieClip { public var no:noButton; public var yes:yesButton; } }//package
Section 171
//log (log) package { import flash.display.*; public dynamic class log extends MovieClip { } }//package
Section 172
//logside (logside) package { import flash.display.*; public dynamic class logside extends MovieClip { } }//package
Section 173
//loop (loop) package { import flash.display.*; public dynamic class loop extends MovieClip { } }//package
Section 174
//Map (Map) package { import flash.display.*; import flash.text.*; public dynamic class Map extends MovieClip { public var mLevel7:MovieClip; public var mLevel1:MovieClip; public var mPoint10:MovieClip; public var mLevel3:MovieClip; public var mPoint1:MovieClip; public var mLevel8:MovieClip; public var mPoint7:MovieClip; public var mLevel5:MovieClip; public var mLevel10:MovieClip; public var playBtn:SimpleButton; public var mLevel9:MovieClip; public var mPoint3:MovieClip; public var mPoint6:MovieClip; public var mMario:MovieClip; public var currentLevelText:TextField; public var mPoint2:MovieClip; public var tLevel:TextField; public var mPoint4:MovieClip; public var mPoint5:MovieClip; public var mPoint8:MovieClip; public var mPoint9:MovieClip; public var mLevel2:MovieClip; public var mLevel4:MovieClip; public var mLevel6:MovieClip; } }//package
Section 175
//map_sound (map_sound) package { import flash.media.*; public dynamic class map_sound extends Sound { } }//package
Section 176
//marinemine_sound (marinemine_sound) package { import flash.media.*; public dynamic class marinemine_sound extends Sound { } }//package
Section 177
//moreGamesButton (moreGamesButton) package { import flash.display.*; public dynamic class moreGamesButton extends SimpleButton { } }//package
Section 178
//motorboatred (motorboatred) package { import flash.display.*; public dynamic class motorboatred extends MovieClip { } }//package
Section 179
//motorboatyellow (motorboatyellow) package { import flash.display.*; public dynamic class motorboatyellow extends MovieClip { } }//package
Section 180
//noButton (noButton) package { import flash.display.*; public dynamic class noButton extends SimpleButton { } }//package
Section 181
//overlay_continueButton (overlay_continueButton) package { import flash.display.*; public dynamic class overlay_continueButton extends SimpleButton { } }//package
Section 182
//overlay_mainMenuButton (overlay_mainMenuButton) package { import flash.display.*; public dynamic class overlay_mainMenuButton extends SimpleButton { } }//package
Section 183
//overlay_moreGamesButton (overlay_moreGamesButton) package { import flash.display.*; public dynamic class overlay_moreGamesButton extends SimpleButton { } }//package
Section 184
//overlay_nextLevelButton (overlay_nextLevelButton) package { import flash.display.*; public dynamic class overlay_nextLevelButton extends SimpleButton { } }//package
Section 185
//overlayslide_sound (overlayslide_sound) package { import flash.media.*; public dynamic class overlayslide_sound extends Sound { } }//package
Section 186
//pelican (pelican) package { import flash.display.*; public dynamic class pelican extends MovieClip { public function pelican(){ addFrameScript(0, frame1, 40, frame41); } function frame41(){ gotoAndStop(1); } function frame1(){ stop(); } } }//package
Section 187
//pelican_sound (pelican_sound) package { import flash.media.*; public dynamic class pelican_sound extends Sound { } }//package
Section 188
//penguin (penguin) package { import flash.display.*; public dynamic class penguin extends MovieClip { public function penguin(){ addFrameScript(0, frame1, 39, frame40); } function frame40(){ gotoAndStop(1); } function frame1(){ stop(); } } }//package
Section 189
//penguin_sound (penguin_sound) package { import flash.media.*; public dynamic class penguin_sound extends Sound { } }//package
Section 190
//placeholder (placeholder) package { import flash.display.*; public dynamic class placeholder extends MovieClip { } }//package
Section 191
//platform1 (platform1) package { import flash.display.*; public dynamic class platform1 extends MovieClip { } }//package
Section 192
//platform2 (platform2) package { import flash.display.*; public dynamic class platform2 extends MovieClip { } }//package
Section 193
//platform3 (platform3) package { import flash.display.*; public dynamic class platform3 extends MovieClip { } }//package
Section 194
//platform4 (platform4) package { import flash.display.*; public dynamic class platform4 extends MovieClip { } }//package
Section 195
//preloadersound (preloadersound) package { import flash.media.*; public dynamic class preloadersound extends Sound { } }//package
Section 196
//rain (rain) package { import flash.display.*; public dynamic class rain extends MovieClip { public var thunder:MovieClip; } }//package
Section 197
//ramp (ramp) package { import flash.display.*; public dynamic class ramp extends MovieClip { } }//package
Section 198
//rampfloating (rampfloating) package { import flash.display.*; public dynamic class rampfloating extends MovieClip { } }//package
Section 199
//rampflying (rampflying) package { import flash.display.*; public dynamic class rampflying extends MovieClip { } }//package
Section 200
//redstar (redstar) package { import flash.display.*; public dynamic class redstar extends MovieClip { } }//package
Section 201
//riderstand (riderstand) package { import flash.display.*; import flash.events.*; import flash.text.*; import flash.media.*; import flash.utils.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.filters.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.geom.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.xml.*; public dynamic class riderstand extends MovieClip { public function riderstand(){ addFrameScript(0, frame1, 1, frame2, 4, frame5, 5, frame6, 11, frame12); } function frame1(){ stop(); this.isPlaying = false; } function frame2(){ this.isPlaying = true; } function frame5(){ stop(); this.isPlaying = false; } function frame6(){ this.isPlaying = true; } function frame12(){ stop(); this.isPlaying = false; } } }//package
Section 202
//sailboatgreen (sailboatgreen) package { import flash.display.*; public dynamic class sailboatgreen extends MovieClip { } }//package
Section 203
//sailboatred (sailboatred) package { import flash.display.*; public dynamic class sailboatred extends MovieClip { } }//package
Section 204
//seamine (seamine) package { import flash.display.*; public dynamic class seamine extends MovieClip { public function seamine(){ addFrameScript(0, frame1, 25, frame26); } function frame26(){ stop(); } function frame1(){ stop(); } } }//package
Section 205
//shipblue (shipblue) package { import flash.display.*; public dynamic class shipblue extends MovieClip { } }//package
Section 206
//shiplightblue (shiplightblue) package { import flash.display.*; public dynamic class shiplightblue extends MovieClip { } }//package
Section 207
//shipred (shipred) package { import flash.display.*; public dynamic class shipred extends MovieClip { } }//package
Section 208
//skull (skull) package { import flash.display.*; public dynamic class skull extends MovieClip { } }//package
Section 209
//skull_sound (skull_sound) package { import flash.media.*; public dynamic class skull_sound extends Sound { } }//package
Section 210
//skybg (skybg) package { import flash.display.*; public dynamic class skybg extends MovieClip { public function skybg(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 211
//star_sound (star_sound) package { import flash.media.*; public dynamic class star_sound extends Sound { } }//package
Section 212
//startGameButton (startGameButton) package { import flash.display.*; public dynamic class startGameButton extends SimpleButton { } }//package
Section 213
//TextInput_disabledSkin (TextInput_disabledSkin) package { import flash.display.*; public dynamic class TextInput_disabledSkin extends MovieClip { } }//package
Section 214
//TextInput_upSkin (TextInput_upSkin) package { import flash.display.*; public dynamic class TextInput_upSkin extends MovieClip { } }//package
Section 215
//thunder_sound (thunder_sound) package { import flash.media.*; public dynamic class thunder_sound extends Sound { } }//package
Section 216
//titlescreen (titlescreen) package { import flash.display.*; public dynamic class titlescreen extends MovieClip { } }//package
Section 217
//titlescreen_sound (titlescreen_sound) package { import flash.media.*; public dynamic class titlescreen_sound extends Sound { } }//package
Section 218
//tntbarrel_sound (tntbarrel_sound) package { import flash.media.*; public dynamic class tntbarrel_sound extends Sound { } }//package
Section 219
//walrus (walrus) package { import flash.display.*; public dynamic class walrus extends MovieClip { } }//package
Section 220
//walrus_sound (walrus_sound) package { import flash.media.*; public dynamic class walrus_sound extends Sound { } }//package
Section 221
//water (water) package { import flash.display.*; public dynamic class water extends MovieClip { } }//package
Section 222
//waterbg (waterbg) package { import flash.display.*; public dynamic class waterbg extends MovieClip { public function waterbg(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 223
//yesButton (yesButton) package { import flash.display.*; public dynamic class yesButton extends SimpleButton { } }//package

Library Items

Symbol 1 Sound {preloadersound}
Symbol 2 Sound {jetskifast_sound}
Symbol 3 Sound {jetskicrash_sound}Used by:Timeline
Symbol 4 GraphicUsed by:26
Symbol 5 GraphicUsed by:26
Symbol 6 GraphicUsed by:26
Symbol 7 GraphicUsed by:26
Symbol 8 GraphicUsed by:26
Symbol 9 FontUsed by:10 11 17 18 24 25 32 33 39 40 46 47 54 55 61 62 68 69 76 77 83 84 90 91 104 105 457 458 459 460 590 594 599 602 603 605 733 929 930 986 988 989 990 992 993 994 995 996 997 998 1001 1002 1007 1008 1012 1013 1263 1264 1275 1276 1281 1282 1283 1284 1288 1289 1292 1293 1296 1297 1300 1301 1304 1305 1306 1307
Symbol 10 TextUses:9Used by:26
Symbol 11 TextUses:9Used by:26
Symbol 12 GraphicUsed by:26
Symbol 13 GraphicUsed by:26
Symbol 14 GraphicUsed by:26
Symbol 15 GraphicUsed by:26
Symbol 16 GraphicUsed by:26
Symbol 17 TextUses:9Used by:26
Symbol 18 TextUses:9Used by:26
Symbol 19 GraphicUsed by:26
Symbol 20 GraphicUsed by:26
Symbol 21 GraphicUsed by:26
Symbol 22 GraphicUsed by:26
Symbol 23 GraphicUsed by:26
Symbol 24 TextUses:9Used by:26
Symbol 25 TextUses:9Used by:26
Symbol 26 Button {startGameButton}Uses:4 5 6 7 8 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Symbol 27 GraphicUsed by:48
Symbol 28 GraphicUsed by:48
Symbol 29 GraphicUsed by:48
Symbol 30 GraphicUsed by:48
Symbol 31 GraphicUsed by:48
Symbol 32 TextUses:9Used by:48
Symbol 33 TextUses:9Used by:48
Symbol 34 GraphicUsed by:48
Symbol 35 GraphicUsed by:48
Symbol 36 GraphicUsed by:48
Symbol 37 GraphicUsed by:48
Symbol 38 GraphicUsed by:48
Symbol 39 TextUses:9Used by:48
Symbol 40 TextUses:9Used by:48
Symbol 41 GraphicUsed by:48
Symbol 42 GraphicUsed by:48
Symbol 43 GraphicUsed by:48
Symbol 44 GraphicUsed by:48
Symbol 45 GraphicUsed by:48
Symbol 46 TextUses:9Used by:48
Symbol 47 TextUses:9Used by:48
Symbol 48 Button {instructionsButton}Uses:27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
Symbol 49 GraphicUsed by:70
Symbol 50 GraphicUsed by:70
Symbol 51 GraphicUsed by:70
Symbol 52 GraphicUsed by:70
Symbol 53 GraphicUsed by:70
Symbol 54 TextUses:9Used by:70
Symbol 55 TextUses:9Used by:70
Symbol 56 GraphicUsed by:70
Symbol 57 GraphicUsed by:70
Symbol 58 GraphicUsed by:70
Symbol 59 GraphicUsed by:70
Symbol 60 GraphicUsed by:70
Symbol 61 TextUses:9Used by:70
Symbol 62 TextUses:9Used by:70
Symbol 63 GraphicUsed by:70
Symbol 64 GraphicUsed by:70
Symbol 65 GraphicUsed by:70
Symbol 66 GraphicUsed by:70
Symbol 67 GraphicUsed by:70
Symbol 68 TextUses:9Used by:70
Symbol 69 TextUses:9Used by:70
Symbol 70 Button {moreGamesButton}Uses:49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
Symbol 71 GraphicUsed by:92
Symbol 72 GraphicUsed by:92
Symbol 73 GraphicUsed by:92
Symbol 74 GraphicUsed by:92
Symbol 75 GraphicUsed by:92
Symbol 76 TextUses:9Used by:92
Symbol 77 TextUses:9Used by:92
Symbol 78 GraphicUsed by:92
Symbol 79 GraphicUsed by:92
Symbol 80 GraphicUsed by:92
Symbol 81 GraphicUsed by:92
Symbol 82 GraphicUsed by:92
Symbol 83 TextUses:9Used by:92
Symbol 84 TextUses:9Used by:92
Symbol 85 GraphicUsed by:92
Symbol 86 GraphicUsed by:92
Symbol 87 GraphicUsed by:92
Symbol 88 GraphicUsed by:92
Symbol 89 GraphicUsed by:92
Symbol 90 TextUses:9Used by:92
Symbol 91 TextUses:9Used by:92
Symbol 92 Button {levelSelectionButton}Uses:71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
Symbol 93 GraphicUsed by:94
Symbol 94 MovieClipUses:93Used by:102
Symbol 95 MovieClip {fl.core.ComponentShim}Used by:102
Symbol 96 GraphicUsed by:97
Symbol 97 MovieClip {TextInput_disabledSkin}Uses:96Used by:102
Symbol 98 GraphicUsed by:99
Symbol 99 MovieClip {TextInput_upSkin}Uses:98Used by:102
Symbol 100 GraphicUsed by:101
Symbol 101 MovieClip {focusRectSkin}Uses:100Used by:102
Symbol 102 MovieClip {fl.controls.TextInput}Uses:94 95 97 99 101
Symbol 103 GraphicUsed by:108 461
Symbol 104 TextUses:9Used by:108
Symbol 105 TextUses:9Used by:108
Symbol 106 GraphicUsed by:108 461
Symbol 107 GraphicUsed by:108 461
Symbol 108 Button {noButton}Uses:103 104 105 106 107Used by:462
Symbol 109 GraphicUsed by:116 449
Symbol 110 GraphicUsed by:111 163
Symbol 111 MovieClipUses:110Used by:116 163
Symbol 112 GraphicUsed by:113 399
Symbol 113 MovieClipUses:112Used by:116 399
Symbol 114 GraphicUsed by:115 279
Symbol 115 MovieClipUses:114Used by:116 279
Symbol 116 MovieClipUses:109 111 113 115Used by:400
Symbol 117 GraphicUsed by:400 407
Symbol 118 GraphicUsed by:160
Symbol 119 GraphicUsed by:123
Symbol 120 GraphicUsed by:123
Symbol 121 GraphicUsed by:123
Symbol 122 GraphicUsed by:123
Symbol 123 MovieClipUses:119 120 121 122Used by:160
Symbol 124 GraphicUsed by:128
Symbol 125 GraphicUsed by:128
Symbol 126 GraphicUsed by:128
Symbol 127 GraphicUsed by:128
Symbol 128 MovieClipUses:124 125 126 127Used by:160
Symbol 129 GraphicUsed by:133
Symbol 130 GraphicUsed by:133
Symbol 131 GraphicUsed by:133 148
Symbol 132 GraphicUsed by:133
Symbol 133 MovieClipUses:129 130 131 132Used by:160
Symbol 134 GraphicUsed by:138
Symbol 135 GraphicUsed by:138
Symbol 136 GraphicUsed by:138
Symbol 137 GraphicUsed by:138
Symbol 138 MovieClipUses:134 135 136 137Used by:160
Symbol 139 GraphicUsed by:143
Symbol 140 GraphicUsed by:143
Symbol 141 GraphicUsed by:143
Symbol 142 GraphicUsed by:143
Symbol 143 MovieClipUses:139 140 141 142Used by:160
Symbol 144 GraphicUsed by:160
Symbol 145 GraphicUsed by:148
Symbol 146 GraphicUsed by:148
Symbol 147 GraphicUsed by:148
Symbol 148 MovieClipUses:145 146 131 147Used by:160
Symbol 149 GraphicUsed by:153
Symbol 150 GraphicUsed by:153
Symbol 151 GraphicUsed by:153
Symbol 152 GraphicUsed by:153
Symbol 153 MovieClipUses:149 150 151 152Used by:160
Symbol 154 GraphicUsed by:158
Symbol 155 GraphicUsed by:158
Symbol 156 GraphicUsed by:158
Symbol 157 GraphicUsed by:158
Symbol 158 MovieClipUses:154 155 156 157Used by:160
Symbol 159 GraphicUsed by:160
Symbol 160 MovieClipUses:118 123 128 133 138 143 144 148 153 158 159Used by:163
Symbol 161 GraphicUsed by:162
Symbol 162 MovieClipUses:161Used by:163
Symbol 163 MovieClip {JetSkiMario_fla.BGspider_7}Uses:111 110 160 162Used by:400
Symbol 164 GraphicUsed by:248 416
Symbol 165 GraphicUsed by:244 570 573 687 693 695 1269
Symbol 166 GraphicUsed by:171
Symbol 167 GraphicUsed by:171
Symbol 168 GraphicUsed by:169
Symbol 169 MovieClipUses:168Used by:171
Symbol 170 GraphicUsed by:171
Symbol 171 MovieClipUses:166 167 169 170Used by:244
Symbol 172 GraphicUsed by:179
Symbol 173 GraphicUsed by:179
Symbol 174 BitmapUsed by:175
Symbol 175 GraphicUses:174Used by:176
Symbol 176 MovieClipUses:175Used by:179
Symbol 177 GraphicUsed by:179
Symbol 178 GraphicUsed by:179
Symbol 179 MovieClipUses:172 173 176 177 178Used by:244
Symbol 180 GraphicUsed by:244
Symbol 181 GraphicUsed by:185
Symbol 182 GraphicUsed by:185
Symbol 183 GraphicUsed by:184
Symbol 184 MovieClipUses:183Used by:185
Symbol 185 MovieClipUses:181 182 184Used by:244
Symbol 186 GraphicUsed by:244
Symbol 187 GraphicUsed by:192
Symbol 188 GraphicUsed by:192
Symbol 189 GraphicUsed by:190
Symbol 190 MovieClipUses:189Used by:192
Symbol 191 GraphicUsed by:192
Symbol 192 MovieClipUses:187 188 190 191Used by:244
Symbol 193 GraphicUsed by:244
Symbol 194 GraphicUsed by:200
Symbol 195 GraphicUsed by:200
Symbol 196 GraphicUsed by:197 217
Symbol 197 MovieClipUses:196Used by:200
Symbol 198 GraphicUsed by:200
Symbol 199 GraphicUsed by:200
Symbol 200 MovieClipUses:194 195 197 198 199Used by:244
Symbol 201 GraphicUsed by:205
Symbol 202 GraphicUsed by:205
Symbol 203 GraphicUsed by:205
Symbol 204 GraphicUsed by:205
Symbol 205 MovieClipUses:201 202 203 204Used by:244
Symbol 206 GraphicUsed by:244
Symbol 207 GraphicUsed by:214
Symbol 208 GraphicUsed by:214
Symbol 209 BitmapUsed by:210
Symbol 210 GraphicUses:209Used by:211
Symbol 211 MovieClipUses:210Used by:214
Symbol 212 GraphicUsed by:214
Symbol 213 GraphicUsed by:214
Symbol 214 MovieClipUses:207 208 211 212 213Used by:244
Symbol 215 GraphicUsed by:218
Symbol 216 GraphicUsed by:218
Symbol 217 MovieClipUses:196Used by:218
Symbol 218 MovieClipUses:215 216 217Used by:244
Symbol 219 GraphicUsed by:244
Symbol 220 GraphicUsed by:224
Symbol 221 GraphicUsed by:224
Symbol 222 GraphicUsed by:224
Symbol 223 GraphicUsed by:224
Symbol 224 MovieClipUses:220 221 222 223Used by:244
Symbol 225 GraphicUsed by:233
Symbol 226 GraphicUsed by:233
Symbol 227 GraphicUsed by:228
Symbol 228 MovieClipUses:227Used by:233
Symbol 229 GraphicUsed by:233
Symbol 230 GraphicUsed by:231
Symbol 231 MovieClipUses:230Used by:233
Symbol 232 GraphicUsed by:233
Symbol 233 MovieClipUses:225 226 228 229 231 232Used by:244
Symbol 234 GraphicUsed by:244
Symbol 235 GraphicUsed by:242
Symbol 236 GraphicUsed by:242
Symbol 237 GraphicUsed by:238
Symbol 238 MovieClipUses:237Used by:242
Symbol 239 GraphicUsed by:240
Symbol 240 MovieClipUses:239Used by:242
Symbol 241 GraphicUsed by:242
Symbol 242 MovieClipUses:235 236 238 240 241Used by:244
Symbol 243 GraphicUsed by:244
Symbol 244 MovieClipUses:165 171 179 180 185 186 192 193 200 205 206 214 218 219 224 233 234 242 243Used by:245
Symbol 245 MovieClipUses:244Used by:248
Symbol 246 GraphicUsed by:247
Symbol 247 MovieClipUses:246Used by:248
Symbol 248 MovieClip {JetSkiMario_fla.LOGODUCKARCADE_18}Uses:164 245 247Used by:400 452 608 1268
Symbol 249 GraphicUsed by:262 277
Symbol 250 GraphicUsed by:254
Symbol 251 GraphicUsed by:254
Symbol 252 GraphicUsed by:254
Symbol 253 GraphicUsed by:254
Symbol 254 MovieClipUses:250 251 252 253Used by:262
Symbol 255 GraphicUsed by:262
Symbol 256 GraphicUsed by:260
Symbol 257 GraphicUsed by:260
Symbol 258 GraphicUsed by:260
Symbol 259 GraphicUsed by:260
Symbol 260 MovieClipUses:256 257 258 259Used by:262
Symbol 261 GraphicUsed by:262
Symbol 262 MovieClipUses:249 254 255 260 261Used by:278 279
Symbol 263 GraphicUsed by:264
Symbol 264 MovieClipUses:263Used by:279
Symbol 265 GraphicUsed by:269
Symbol 266 GraphicUsed by:269
Symbol 267 GraphicUsed by:269
Symbol 268 GraphicUsed by:269
Symbol 269 MovieClipUses:265 266 267 268Used by:277
Symbol 270 GraphicUsed by:277
Symbol 271 GraphicUsed by:275
Symbol 272 GraphicUsed by:275
Symbol 273 GraphicUsed by:275
Symbol 274 GraphicUsed by:275
Symbol 275 MovieClipUses:271 272 273 274Used by:277
Symbol 276 GraphicUsed by:277
Symbol 277 MovieClipUses:249 269 270 275 276Used by:278
Symbol 278 MovieClipUses:262 277Used by:279
Symbol 279 MovieClip {JetSkiMario_fla.BGbart_44}Uses:115 114 262 264 278Used by:400
Symbol 280 GraphicUsed by:284
Symbol 281 GraphicUsed by:284
Symbol 282 GraphicUsed by:284
Symbol 283 GraphicUsed by:284
Symbol 284 MovieClipUses:280 281 282 283Used by:331
Symbol 285 GraphicUsed by:289 340 359 383
Symbol 286 GraphicUsed by:289 340 359 383
Symbol 287 GraphicUsed by:289 359 383
Symbol 288 GraphicUsed by:289 340 359 383
Symbol 289 MovieClipUses:285 286 287 288Used by:331
Symbol 290 GraphicUsed by:294 341 360
Symbol 291 GraphicUsed by:294 341 360
Symbol 292 GraphicUsed by:294 341 360 387
Symbol 293 GraphicUsed by:294 341 360
Symbol 294 MovieClipUses:290 291 292 293Used by:331
Symbol 295 GraphicUsed by:299 342 361 388
Symbol 296 GraphicUsed by:299 342 361 388
Symbol 297 GraphicUsed by:299 342 361 388
Symbol 298 GraphicUsed by:299 342 361 388
Symbol 299 MovieClipUses:295 296 297 298Used by:331
Symbol 300 GraphicUsed by:304 343 362 389
Symbol 301 GraphicUsed by:304 343 362 389
Symbol 302 GraphicUsed by:304 343 362 389
Symbol 303 GraphicUsed by:304 343 362 389
Symbol 304 MovieClipUses:300 301 302 303Used by:331
Symbol 305 GraphicUsed by:309 344 364 390
Symbol 306 GraphicUsed by:309 344 364 390
Symbol 307 GraphicUsed by:309 344
Symbol 308 GraphicUsed by:309 344 364 390
Symbol 309 MovieClipUses:305 306 307 308Used by:331
Symbol 310 GraphicUsed by:314 345
Symbol 311 GraphicUsed by:314 345
Symbol 312 GraphicUsed by:314 345 368 391
Symbol 313 GraphicUsed by:314 345
Symbol 314 MovieClipUses:310 311 312 313Used by:331
Symbol 315 GraphicUsed by:319 346 369 392
Symbol 316 GraphicUsed by:319 346 369 392
Symbol 317 GraphicUsed by:319 346 369 392
Symbol 318 GraphicUsed by:319 346 369 392
Symbol 319 MovieClipUses:315 316 317 318Used by:331
Symbol 320 GraphicUsed by:324
Symbol 321 GraphicUsed by:324
Symbol 322 GraphicUsed by:324 350 373 393
Symbol 323 GraphicUsed by:324
Symbol 324 MovieClipUses:320 321 322 323Used by:331
Symbol 325 GraphicUsed by:329 351 375 394
Symbol 326 GraphicUsed by:329 351 375 394
Symbol 327 GraphicUsed by:329 351 375 394
Symbol 328 GraphicUsed by:329 351
Symbol 329 MovieClipUses:325 326 327 328Used by:331
Symbol 330 GraphicUsed by:331
Symbol 331 MovieClipUses:284 289 294 299 304 309 314 319 324 329 330Used by:397 399
Symbol 332 GraphicUsed by:333
Symbol 333 MovieClipUses:332Used by:399
Symbol 334 GraphicUsed by:338
Symbol 335 GraphicUsed by:338
Symbol 336 GraphicUsed by:338
Symbol 337 GraphicUsed by:338
Symbol 338 MovieClipUses:334 335 336 337Used by:353
Symbol 339 GraphicUsed by:340
Symbol 340 MovieClipUses:285 286 339 288Used by:353
Symbol 341 MovieClipUses:290 291 292 293Used by:353
Symbol 342 MovieClipUses:295 296 297 298Used by:353
Symbol 343 MovieClipUses:300 301 302 303Used by:353
Symbol 344 MovieClipUses:305 306 307 308Used by:353
Symbol 345 MovieClipUses:310 311 312 313Used by:353
Symbol 346 MovieClipUses:315 316 317 318Used by:353
Symbol 347 GraphicUsed by:350 393
Symbol 348 GraphicUsed by:350 393
Symbol 349 GraphicUsed by:350 393
Symbol 350 MovieClipUses:347 348 322 349Used by:353
Symbol 351 MovieClipUses:325 326 327 328Used by:353
Symbol 352 GraphicUsed by:353
Symbol 353 MovieClipUses:338 340 341 342 343 344 345 346 350 351 352Used by:397
Symbol 354 GraphicUsed by:358
Symbol 355 GraphicUsed by:358
Symbol 356 GraphicUsed by:358
Symbol 357 GraphicUsed by:358
Symbol 358 MovieClipUses:354 355 356 357Used by:377
Symbol 359 MovieClipUses:285 286 287 288Used by:377
Symbol 360 MovieClipUses:290 291 292 293Used by:377
Symbol 361 MovieClipUses:295 296 297 298Used by:377
Symbol 362 MovieClipUses:300 301 302 303Used by:377
Symbol 363 GraphicUsed by:364 390
Symbol 364 MovieClipUses:305 306 363 308Used by:377
Symbol 365 GraphicUsed by:368 391
Symbol 366 GraphicUsed by:368 391
Symbol 367 GraphicUsed by:368 391
Symbol 368 MovieClipUses:365 366 312 367Used by:377
Symbol 369 MovieClipUses:315 316 317 318Used by:377
Symbol 370 GraphicUsed by:373
Symbol 371 GraphicUsed by:373
Symbol 372 GraphicUsed by:373
Symbol 373 MovieClipUses:370 371 322 372Used by:377
Symbol 374 GraphicUsed by:375 394
Symbol 375 MovieClipUses:325 326 327 374Used by:377
Symbol 376 GraphicUsed by:377
Symbol 377 MovieClipUses:358 359 360 361 362 364 368 369 373 375 376Used by:397
Symbol 378 GraphicUsed by:382
Symbol 379 GraphicUsed by:382
Symbol 380 GraphicUsed by:382
Symbol 381 GraphicUsed by:382
Symbol 382 MovieClipUses:378 379 380 381Used by:396
Symbol 383 MovieClipUses:285 286 287 288Used by:396
Symbol 384 GraphicUsed by:387
Symbol 385 GraphicUsed by:387
Symbol 386 GraphicUsed by:387
Symbol 387 MovieClipUses:384 385 292 386Used by:396
Symbol 388 MovieClipUses:295 296 297 298Used by:396
Symbol 389 MovieClipUses:300 301 302 303Used by:396
Symbol 390 MovieClipUses:305 306 363 308Used by:396
Symbol 391 MovieClipUses:365 366 312 367Used by:396
Symbol 392 MovieClipUses:315 316 317 318Used by:396
Symbol 393 MovieClipUses:347 348 322 349Used by:396
Symbol 394 MovieClipUses:325 326 327 374Used by:396
Symbol 395 GraphicUsed by:396
Symbol 396 MovieClipUses:382 383 387 388 389 390 391 392 393 394 395Used by:397
Symbol 397 MovieClipUses:331 353 377 396Used by:398
Symbol 398 MovieClipUses:397Used by:399
Symbol 399 MovieClip {JetSkiMario_fla.BGsuperman_53}Uses:113 112 331 333 398Used by:400
Symbol 400 MovieClip {JetSkiMario_fla.PreloaderA_2}Uses:116 117 163 248 279 399Used by:453
Symbol 401 FontUsed by:402
Symbol 402 EditableTextUses:401Used by:453
Symbol 403 GraphicUsed by:406
Symbol 404 GraphicUsed by:405
Symbol 405 MovieClipUses:404Used by:406
Symbol 406 MovieClip {JetSkiMario_fla.mariowalk_101}Uses:403 405Used by:453
Symbol 407 MovieClipUses:117Used by:416 451
Symbol 408 GraphicUsed by:415
Symbol 409 FontUsed by:410 412
Symbol 410 TextUses:409Used by:415 451
Symbol 411 GraphicUsed by:415
Symbol 412 TextUses:409Used by:415
Symbol 413 GraphicUsed by:415
Symbol 414 SoundUsed by:415
Symbol 415 ButtonUses:408 410 411 412 413 414Used by:416
Symbol 416 MovieClip {JetSkiMario_fla.play_103}Uses:164 407 415Used by:453
Symbol 417 GraphicUsed by:448
Symbol 418 GraphicUsed by:448
Symbol 419 GraphicUsed by:423 426 430 434 437 440 443 446
Symbol 420 GraphicUsed by:423 426 430 434 437 440 443 446
Symbol 421 GraphicUsed by:423 426
Symbol 422 GraphicUsed by:423 426 430 434 437 440 443 446
Symbol 423 MovieClipUses:419 420 421 422Used by:448
Symbol 424 GraphicUsed by:448
Symbol 425 GraphicUsed by:448
Symbol 426 MovieClipUses:419 420 421 422Used by:448
Symbol 427 GraphicUsed by:448
Symbol 428 GraphicUsed by:448
Symbol 429 GraphicUsed by:430 437 443
Symbol 430 MovieClipUses:419 420 429 422Used by:448
Symbol 431 GraphicUsed by:448
Symbol 432 GraphicUsed by:448
Symbol 433 GraphicUsed by:434 440 446
Symbol 434 MovieClipUses:419 420 433 422Used by:448
Symbol 435 GraphicUsed by:448
Symbol 436 GraphicUsed by:448
Symbol 437 MovieClipUses:419 420 429 422Used by:448
Symbol 438 GraphicUsed by:448
Symbol 439 GraphicUsed by:448
Symbol 440 MovieClipUses:419 420 433 422Used by:448
Symbol 441 GraphicUsed by:448
Symbol 442 GraphicUsed by:448
Symbol 443 MovieClipUses:419 420 429 422Used by:448
Symbol 444 GraphicUsed by:448
Symbol 445 GraphicUsed by:448
Symbol 446 MovieClipUses:419 420 433 422Used by:448
Symbol 447 GraphicUsed by:448
Symbol 448 MovieClipUses:417 418 423 424 425 426 427 428 430 431 432 434 435 436 437 438 439 440 441 442 443 444 445 446 447Used by:451 453
Symbol 449 MovieClipUses:109Used by:452
Symbol 450 GraphicUsed by:451
Symbol 451 MovieClip {JetSkiMario_fla.mariowalkB_117}Uses:407 450 410 448Used by:452
Symbol 452 MovieClip {JetSkiMario_fla.PreloaderB_115}Uses:449 248 451Used by:453
Symbol 453 MovieClip {JetSkiMario_fla.PRELOADERDUCKARCADE_1}Uses:400 402 406 416 448 452Used by:Timeline
Symbol 454 MovieClip {fl.controls.Button}
Symbol 455 GraphicUsed by:462
Symbol 456 FontUsed by:457 458 1305
Symbol 457 TextUses:9 456Used by:462
Symbol 458 TextUses:9 456Used by:462
Symbol 459 TextUses:9Used by:461
Symbol 460 TextUses:9Used by:461
Symbol 461 Button {yesButton}Uses:103 459 460 106 107Used by:462
Symbol 462 MovieClip {likeOverlay}Uses:455 457 458 461 108Used by:Timeline
Symbol 463 GraphicUsed by:466
Symbol 464 GraphicUsed by:465
Symbol 465 MovieClipUses:464Used by:466
Symbol 466 MovieClip {island1}Uses:463 465Used by:Timeline
Symbol 467 GraphicUsed by:470
Symbol 468 GraphicUsed by:469
Symbol 469 MovieClipUses:468Used by:470
Symbol 470 MovieClip {island2}Uses:467 469Used by:Timeline
Symbol 471 GraphicUsed by:474
Symbol 472 GraphicUsed by:473
Symbol 473 MovieClipUses:472Used by:474
Symbol 474 MovieClip {island3}Uses:471 473Used by:Timeline
Symbol 475 GraphicUsed by:476
Symbol 476 MovieClipUses:475Used by:589  Timeline
Symbol 477 GraphicUsed by:478
Symbol 478 MovieClipUses:477Used by:496
Symbol 479 GraphicUsed by:480
Symbol 480 MovieClipUses:479Used by:496
Symbol 481 GraphicUsed by:482
Symbol 482 MovieClipUses:481Used by:496
Symbol 483 GraphicUsed by:484
Symbol 484 MovieClipUses:483Used by:496
Symbol 485 GraphicUsed by:486
Symbol 486 MovieClipUses:485Used by:496 561
Symbol 487 GraphicUsed by:488
Symbol 488 MovieClipUses:487Used by:496
Symbol 489 GraphicUsed by:493
Symbol 490 GraphicUsed by:491
Symbol 491 MovieClipUses:490Used by:493 495
Symbol 492 GraphicUsed by:493
Symbol 493 MovieClipUses:489 491 492Used by:496
Symbol 494 GraphicUsed by:495
Symbol 495 MovieClipUses:494 491Used by:496
Symbol 496 MovieClip {skybg}Uses:478 480 482 484 486 488 493 495Used by:Timeline
Symbol 497 GraphicUsed by:498
Symbol 498 MovieClipUses:497Used by:561
Symbol 499 GraphicUsed by:500
Symbol 500 MovieClipUses:499Used by:561
Symbol 501 GraphicUsed by:502
Symbol 502 MovieClipUses:501Used by:561
Symbol 503 GraphicUsed by:504
Symbol 504 MovieClipUses:503Used by:561
Symbol 505 GraphicUsed by:506
Symbol 506 MovieClipUses:505Used by:561
Symbol 507 GraphicUsed by:528
Symbol 508 GraphicUsed by:509 511 530 532
Symbol 509 MovieClipUses:508Used by:528
Symbol 510 GraphicUsed by:528
Symbol 511 MovieClipUses:508Used by:528
Symbol 512 GraphicUsed by:528
Symbol 513 GraphicUsed by:514 534
Symbol 514 MovieClipUses:513Used by:528
Symbol 515 GraphicUsed by:528
Symbol 516 GraphicUsed by:517 536
Symbol 517 MovieClipUses:516Used by:528
Symbol 518 GraphicUsed by:528
Symbol 519 GraphicUsed by:520 522 524 538 540 542
Symbol 520 MovieClipUses:519Used by:528
Symbol 521 GraphicUsed by:528
Symbol 522 MovieClipUses:519Used by:528
Symbol 523 GraphicUsed by:528
Symbol 524 MovieClipUses:519Used by:528
Symbol 525 GraphicUsed by:526 543
Symbol 526 MovieClipUses:525Used by:528
Symbol 527 GraphicUsed by:528
Symbol 528 MovieClipUses:507 509 510 511 512 514 515 517 518 520 521 522 523 524 526 527Used by:561
Symbol 529 GraphicUsed by:548
Symbol 530 MovieClipUses:508Used by:548
Symbol 531 GraphicUsed by:548
Symbol 532 MovieClipUses:508Used by:548
Symbol 533 GraphicUsed by:548
Symbol 534 MovieClipUses:513Used by:548
Symbol 535 GraphicUsed by:548
Symbol 536 MovieClipUses:516Used by:548
Symbol 537 GraphicUsed by:548
Symbol 538 MovieClipUses:519Used by:548
Symbol 539 GraphicUsed by:548
Symbol 540 MovieClipUses:519Used by:548
Symbol 541 GraphicUsed by:548
Symbol 542 MovieClipUses:519Used by:548
Symbol 543 MovieClipUses:525Used by:548
Symbol 544 GraphicUsed by:548
Symbol 545 GraphicUsed by:546
Symbol 546 MovieClipUses:545Used by:548
Symbol 547 GraphicUsed by:548
Symbol 548 MovieClipUses:529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 546 547Used by:561
Symbol 549 GraphicUsed by:550
Symbol 550 MovieClipUses:549Used by:561
Symbol 551 GraphicUsed by:552
Symbol 552 MovieClipUses:551Used by:561
Symbol 553 GraphicUsed by:554
Symbol 554 MovieClipUses:553Used by:560
Symbol 555 GraphicUsed by:556
Symbol 556 MovieClipUses:555Used by:560
Symbol 557 GraphicUsed by:558
Symbol 558 MovieClipUses:557Used by:560
Symbol 559 GraphicUsed by:560
Symbol 560 MovieClipUses:554 556 558 559Used by:561
Symbol 561 MovieClip {BG}Uses:498 500 486 502 504 506 528 548 550 552 560Used by:Timeline
Symbol 562 GraphicUsed by:563
Symbol 563 MovieClipUses:562Used by:568
Symbol 564 GraphicUsed by:565
Symbol 565 MovieClipUses:564Used by:568
Symbol 566 GraphicUsed by:567
Symbol 567 MovieClipUses:566Used by:568
Symbol 568 MovieClip {water}Uses:563 565 567Used by:Timeline
Symbol 569 GraphicUsed by:570 571
Symbol 570 MovieClipUses:165 569Used by:585
Symbol 571 MovieClipUses:569Used by:585
Symbol 572 GraphicUsed by:573 574
Symbol 573 MovieClipUses:165 572Used by:585
Symbol 574 MovieClipUses:572Used by:585
Symbol 575 GraphicUsed by:580
Symbol 576 GraphicUsed by:580
Symbol 577 GraphicUsed by:580
Symbol 578 GraphicUsed by:580
Symbol 579 GraphicUsed by:580
Symbol 580 MovieClipUses:575 576 577 578 579Used by:585
Symbol 581 GraphicUsed by:582
Symbol 582 MovieClipUses:581Used by:585
Symbol 583 GraphicUsed by:584
Symbol 584 MovieClipUses:583Used by:585
Symbol 585 MovieClip {waterbg}Uses:570 571 573 574 580 582 584Used by:Timeline
Symbol 586 GraphicUsed by:589
Symbol 587 GraphicUsed by:589
Symbol 588 GraphicUsed by:589
Symbol 589 MovieClipUses:586 476 587 588Used by:608
Symbol 590 TextUses:9Used by:593
Symbol 591 FontUsed by:592 595 596 597 600 607 932 991 1261
Symbol 592 EditableTextUses:591Used by:593
Symbol 593 MovieClipUses:590 592Used by:608
Symbol 594 TextUses:9Used by:598
Symbol 595 EditableTextUses:591Used by:598
Symbol 596 EditableTextUses:591Used by:598
Symbol 597 TextUses:591Used by:598
Symbol 598 MovieClipUses:594 595 596 597Used by:608
Symbol 599 TextUses:9Used by:601
Symbol 600 EditableTextUses:591Used by:601
Symbol 601 MovieClipUses:599 600Used by:608
Symbol 602 TextUses:9Used by:608 1268
Symbol 603 EditableTextUses:9Used by:604
Symbol 604 MovieClipUses:603Used by:608
Symbol 605 EditableTextUses:9Used by:606
Symbol 606 MovieClipUses:605Used by:608
Symbol 607 EditableTextUses:591Used by:608
Symbol 608 MovieClipUses:589 593 598 601 602 604 606 607 248Used by:Timeline
Symbol 609 GraphicUsed by:610
Symbol 610 MovieClipUses:609Used by:611
Symbol 611 MovieClipUses:610Used by:623
Symbol 612 GraphicUsed by:622
Symbol 613 GraphicUsed by:622
Symbol 614 GraphicUsed by:622
Symbol 615 GraphicUsed by:622
Symbol 616 GraphicUsed by:622
Symbol 617 GraphicUsed by:622
Symbol 618 GraphicUsed by:622
Symbol 619 GraphicUsed by:622
Symbol 620 GraphicUsed by:622
Symbol 621 GraphicUsed by:622
Symbol 622 MovieClip {JetSkiMario_fla.gledek_191}Uses:612 613 614 615 616 617 618 619 620 621Used by:623
Symbol 623 MovieClip {rain}Uses:611 622Used by:Timeline
Symbol 624 GraphicUsed by:633
Symbol 625 GraphicUsed by:631
Symbol 626 GraphicUsed by:631
Symbol 627 GraphicUsed by:631
Symbol 628 GraphicUsed by:629
Symbol 629 MovieClipUses:628Used by:631
Symbol 630 GraphicUsed by:631
Symbol 631 MovieClipUses:625 626 627 629 630Used by:633
Symbol 632 GraphicUsed by:633
Symbol 633 MovieClipUses:624 631 632Used by:634 635
Symbol 634 MovieClipUses:633Used by:635
Symbol 635 MovieClip {hippo}Uses:633 634Used by:Timeline
Symbol 636 GraphicUsed by:637
Symbol 637 MovieClipUses:636Used by:638 639
Symbol 638 MovieClipUses:637Used by:639
Symbol 639 MovieClip {croc}Uses:637 638Used by:Timeline
Symbol 640 GraphicUsed by:650
Symbol 641 GraphicUsed by:645
Symbol 642 GraphicUsed by:645
Symbol 643 GraphicUsed by:645
Symbol 644 GraphicUsed by:645
Symbol 645 MovieClipUses:641 642 643 644Used by:650
Symbol 646 GraphicUsed by:650
Symbol 647 GraphicUsed by:648
Symbol 648 MovieClipUses:647Used by:650
Symbol 649 GraphicUsed by:650
Symbol 650 MovieClipUses:640 645 646 648 649Used by:651 652
Symbol 651 MovieClipUses:650Used by:652
Symbol 652 MovieClip {pelican}Uses:650 651Used by:Timeline
Symbol 653 GraphicUsed by:659
Symbol 654 GraphicUsed by:655
Symbol 655 MovieClipUses:654Used by:659
Symbol 656 GraphicUsed by:657
Symbol 657 MovieClipUses:656Used by:659
Symbol 658 GraphicUsed by:659
Symbol 659 MovieClipUses:653 655 657 658Used by:660
Symbol 660 MovieClip {penguin}Uses:659Used by:Timeline
Symbol 661 GraphicUsed by:670
Symbol 662 GraphicUsed by:663
Symbol 663 MovieClipUses:662Used by:670
Symbol 664 GraphicUsed by:665
Symbol 665 MovieClipUses:664Used by:670
Symbol 666 GraphicUsed by:670
Symbol 667 GraphicUsed by:670
Symbol 668 GraphicUsed by:670
Symbol 669 GraphicUsed by:670
Symbol 670 MovieClipUses:661 663 665 666 667 668 669Used by:671
Symbol 671 MovieClip {guyonraft}Uses:670Used by:Timeline
Symbol 672 GraphicUsed by:673
Symbol 673 MovieClipUses:672Used by:674
Symbol 674 MovieClip {skull}Uses:673Used by:Timeline
Symbol 675 GraphicUsed by:679
Symbol 676 GraphicUsed by:679
Symbol 677 GraphicUsed by:679
Symbol 678 GraphicUsed by:679
Symbol 679 MovieClipUses:675 676 677 678Used by:681
Symbol 680 GraphicUsed by:681
Symbol 681 MovieClipUses:679 680Used by:682
Symbol 682 MovieClip {cooler}Uses:681Used by:Timeline
Symbol 683 GraphicUsed by:689
Symbol 684 GraphicUsed by:687
Symbol 685 GraphicUsed by:687
Symbol 686 GraphicUsed by:687
Symbol 687 MovieClipUses:684 165 685 686Used by:689
Symbol 688 GraphicUsed by:689
Symbol 689 MovieClip {log}Uses:683 687 688Used by:Timeline
Symbol 690 GraphicUsed by:693 695
Symbol 691 GraphicUsed by:693
Symbol 692 GraphicUsed by:693 695
Symbol 693 MovieClipUses:690 165 691 692Used by:697
Symbol 694 GraphicUsed by:695
Symbol 695 MovieClipUses:690 165 694 692Used by:697
Symbol 696 GraphicUsed by:697
Symbol 697 MovieClip {logside}Uses:693 695 696Used by:Timeline
Symbol 698 GraphicUsed by:704
Symbol 699 GraphicUsed by:704
Symbol 700 GraphicUsed by:704
Symbol 701 GraphicUsed by:702
Symbol 702 MovieClipUses:701Used by:704
Symbol 703 GraphicUsed by:704
Symbol 704 MovieClipUses:698 699 700 702 703Used by:706
Symbol 705 GraphicUsed by:706
Symbol 706 MovieClipUses:704 705Used by:707
Symbol 707 MovieClipUses:706Used by:719
Symbol 708 GraphicUsed by:718
Symbol 709 GraphicUsed by:718
Symbol 710 GraphicUsed by:718
Symbol 711 GraphicUsed by:718
Symbol 712 GraphicUsed by:718
Symbol 713 GraphicUsed by:718
Symbol 714 GraphicUsed by:718
Symbol 715 GraphicUsed by:718
Symbol 716 GraphicUsed by:718
Symbol 717 GraphicUsed by:718
Symbol 718 MovieClip {JetSkiMario_fla.explosion_228}Uses:708 709 710 711 712 713 714 715 716 717Used by:719 723
Symbol 719 MovieClip {seamine}Uses:707 718Used by:Timeline
Symbol 720 GraphicUsed by:721
Symbol 721 MovieClipUses:720Used by:722
Symbol 722 MovieClipUses:721Used by:723
Symbol 723 MovieClip {barrelexplode}Uses:722 718Used by:Timeline
Symbol 724 GraphicUsed by:725
Symbol 725 MovieClipUses:724Used by:726
Symbol 726 MovieClip {barrel}Uses:725Used by:Timeline
Symbol 727 GraphicUsed by:728
Symbol 728 MovieClipUses:727Used by:729
Symbol 729 MovieClip {walrus}Uses:728Used by:Timeline
Symbol 730 GraphicUsed by:731
Symbol 731 MovieClip {bellbouy}Uses:730Used by:Timeline
Symbol 732 GraphicUsed by:735
Symbol 733 TextUses:9Used by:735
Symbol 734 GraphicUsed by:735
Symbol 735 MovieClip {checkpoint}Uses:732 733 734Used by:Timeline
Symbol 736 GraphicUsed by:744
Symbol 737 GraphicUsed by:744
Symbol 738 GraphicUsed by:744
Symbol 739 GraphicUsed by:740
Symbol 740 MovieClipUses:739Used by:744
Symbol 741 GraphicUsed by:742
Symbol 742 MovieClipUses:741Used by:744
Symbol 743 GraphicUsed by:744
Symbol 744 MovieClipUses:736 737 738 740 742 743Used by:746
Symbol 745 GraphicUsed by:746
Symbol 746 MovieClip {finishpoint}Uses:744 745Used by:Timeline
Symbol 747 GraphicUsed by:752
Symbol 748 GraphicUsed by:749
Symbol 749 MovieClipUses:748Used by:752 754 756
Symbol 750 GraphicUsed by:751
Symbol 751 MovieClipUses:750Used by:752 754 756
Symbol 752 MovieClip {bluestar}Uses:747 749 751Used by:Timeline
Symbol 753 GraphicUsed by:754
Symbol 754 MovieClip {goldstar}Uses:753 749 751Used by:Timeline
Symbol 755 GraphicUsed by:756
Symbol 756 MovieClip {redstar}Uses:755 749 751Used by:Timeline
Symbol 757 GraphicUsed by:758
Symbol 758 MovieClipUses:757Used by:761 764 767
Symbol 759 GraphicUsed by:760
Symbol 760 MovieClipUses:759Used by:761
Symbol 761 MovieClip {iconlife}Uses:758 760Used by:Timeline
Symbol 762 GraphicUsed by:763
Symbol 763 MovieClipUses:762Used by:764
Symbol 764 MovieClip {icondive}Uses:758 763Used by:Timeline
Symbol 765 GraphicUsed by:766
Symbol 766 MovieClipUses:765Used by:767
Symbol 767 MovieClip {iconnitro}Uses:758 766Used by:Timeline
Symbol 768 GraphicUsed by:780
Symbol 769 GraphicUsed by:770 782
Symbol 770 MovieClipUses:769Used by:780
Symbol 771 GraphicUsed by:780
Symbol 772 GraphicUsed by:776
Symbol 773 GraphicUsed by:776 786
Symbol 774 GraphicUsed by:776
Symbol 775 GraphicUsed by:776 786
Symbol 776 MovieClipUses:772 773 774 775Used by:780
Symbol 777 GraphicUsed by:780
Symbol 778 GraphicUsed by:779
Symbol 779 MovieClipUses:778Used by:780 788
Symbol 780 MovieClip {motorboatyellow}Uses:768 770 771 776 777 779Used by:Timeline
Symbol 781 GraphicUsed by:788
Symbol 782 MovieClipUses:769Used by:788
Symbol 783 GraphicUsed by:788
Symbol 784 GraphicUsed by:786
Symbol 785 GraphicUsed by:786
Symbol 786 MovieClipUses:784 773 785 775Used by:788
Symbol 787 GraphicUsed by:788
Symbol 788 MovieClip {sailboatgreen}Uses:781 782 783 786 787 779Used by:Timeline
Symbol 789 GraphicUsed by:795
Symbol 790 GraphicUsed by:791
Symbol 791 MovieClipUses:790Used by:795
Symbol 792 GraphicUsed by:794
Symbol 793 GraphicUsed by:794
Symbol 794 MovieClipUses:792 793Used by:795 799
Symbol 795 MovieClip {indians}Uses:789 791 794Used by:Timeline
Symbol 796 GraphicUsed by:799
Symbol 797 GraphicUsed by:798
Symbol 798 MovieClipUses:797Used by:799
Symbol 799 MovieClip {motorboatred}Uses:796 798 794Used by:Timeline
Symbol 800 GraphicUsed by:809 814
Symbol 801 GraphicUsed by:805 813
Symbol 802 GraphicUsed by:805
Symbol 803 GraphicUsed by:804 812
Symbol 804 MovieClipUses:803Used by:805
Symbol 805 MovieClipUses:801 802 804Used by:809
Symbol 806 GraphicUsed by:809 814
Symbol 807 GraphicUsed by:808
Symbol 808 MovieClipUses:807Used by:809 814
Symbol 809 MovieClip {sailboatred}Uses:800 805 806 808Used by:Timeline
Symbol 810 GraphicUsed by:813
Symbol 811 GraphicUsed by:813
Symbol 812 MovieClipUses:803Used by:813
Symbol 813 MovieClipUses:810 801 811 812Used by:814
Symbol 814 MovieClip {shipblue}Uses:800 813 806 808Used by:Timeline
Symbol 815 GraphicUsed by:819
Symbol 816 GraphicUsed by:819 1072 1135
Symbol 817 GraphicUsed by:819
Symbol 818 GraphicUsed by:819
Symbol 819 MovieClipUses:815 816 817 818Used by:824
Symbol 820 BitmapUsed by:821
Symbol 821 GraphicUses:820Used by:824
Symbol 822 GraphicUsed by:823
Symbol 823 MovieClipUses:822Used by:824 829
Symbol 824 MovieClip {shiplightblue}Uses:819 821 823Used by:Timeline
Symbol 825 GraphicUsed by:829
Symbol 826 GraphicUsed by:827
Symbol 827 MovieClipUses:826Used by:829
Symbol 828 GraphicUsed by:829
Symbol 829 MovieClip {shipred}Uses:825 827 828 823Used by:Timeline
Symbol 830 GraphicUsed by:838
Symbol 831 GraphicUsed by:838
Symbol 832 GraphicUsed by:836
Symbol 833 GraphicUsed by:836
Symbol 834 GraphicUsed by:836
Symbol 835 GraphicUsed by:836
Symbol 836 MovieClipUses:832 833 834 835Used by:838
Symbol 837 GraphicUsed by:838
Symbol 838 MovieClip {loop}Uses:830 831 836 837Used by:Timeline
Symbol 839 GraphicUsed by:846
Symbol 840 GraphicUsed by:844 876
Symbol 841 GraphicUsed by:844 876
Symbol 842 GraphicUsed by:844 876
Symbol 843 GraphicUsed by:844 876
Symbol 844 MovieClipUses:840 841 842 843Used by:846 881
Symbol 845 GraphicUsed by:846
Symbol 846 MovieClip {rampflying}Uses:839 844 845Used by:Timeline
Symbol 847 GraphicUsed by:851
Symbol 848 GraphicUsed by:851
Symbol 849 GraphicUsed by:851
Symbol 850 GraphicUsed by:851
Symbol 851 MovieClipUses:847 848 849 850Used by:853
Symbol 852 GraphicUsed by:853
Symbol 853 MovieClip {platform1}Uses:851 852Used by:Timeline
Symbol 854 GraphicUsed by:858
Symbol 855 GraphicUsed by:858
Symbol 856 GraphicUsed by:858
Symbol 857 GraphicUsed by:858
Symbol 858 MovieClipUses:854 855 856 857Used by:860
Symbol 859 GraphicUsed by:860
Symbol 860 MovieClip {platform2}Uses:858 859Used by:Timeline
Symbol 861 GraphicUsed by:865
Symbol 862 GraphicUsed by:865
Symbol 863 GraphicUsed by:865
Symbol 864 GraphicUsed by:865
Symbol 865 MovieClipUses:861 862 863 864Used by:867
Symbol 866 GraphicUsed by:867
Symbol 867 MovieClip {platform4}Uses:865 866Used by:Timeline
Symbol 868 GraphicUsed by:872
Symbol 869 GraphicUsed by:872
Symbol 870 GraphicUsed by:872
Symbol 871 GraphicUsed by:872
Symbol 872 MovieClipUses:868 869 870 871Used by:874
Symbol 873 GraphicUsed by:874
Symbol 874 MovieClip {platform3}Uses:872 873Used by:Timeline
Symbol 875 GraphicUsed by:878
Symbol 876 MovieClipUses:840 841 842 843Used by:878
Symbol 877 GraphicUsed by:878
Symbol 878 MovieClip {ramp}Uses:875 876 877Used by:1309  Timeline
Symbol 879 GraphicUsed by:881
Symbol 880 GraphicUsed by:881
Symbol 881 MovieClip {rampfloating}Uses:879 844 880Used by:Timeline
Symbol 882 GraphicUsed by:883
Symbol 883 MovieClipUses:882Used by:919
Symbol 884 GraphicUsed by:891
Symbol 885 GraphicUsed by:889
Symbol 886 GraphicUsed by:889
Symbol 887 GraphicUsed by:889
Symbol 888 GraphicUsed by:889
Symbol 889 MovieClipUses:885 886 887 888Used by:891
Symbol 890 GraphicUsed by:891
Symbol 891 MovieClipUses:884 889 890Used by:919
Symbol 892 GraphicUsed by:893
Symbol 893 MovieClipUses:892Used by:919
Symbol 894 GraphicUsed by:895
Symbol 895 MovieClipUses:894Used by:919
Symbol 896 GraphicUsed by:897
Symbol 897 MovieClipUses:896Used by:919
Symbol 898 GraphicUsed by:899
Symbol 899 MovieClipUses:898Used by:919
Symbol 900 GraphicUsed by:906
Symbol 901 GraphicUsed by:905
Symbol 902 GraphicUsed by:905
Symbol 903 GraphicUsed by:905
Symbol 904 GraphicUsed by:905
Symbol 905 MovieClipUses:901 902 903 904Used by:906
Symbol 906 MovieClipUses:900 905Used by:919
Symbol 907 GraphicUsed by:918
Symbol 908 GraphicUsed by:912
Symbol 909 GraphicUsed by:912
Symbol 910 GraphicUsed by:912
Symbol 911 GraphicUsed by:912
Symbol 912 MovieClipUses:908 909 910 911Used by:918
Symbol 913 GraphicUsed by:916
Symbol 914 GraphicUsed by:916
Symbol 915 GraphicUsed by:916
Symbol 916 MovieClipUses:913 914 915Used by:918
Symbol 917 GraphicUsed by:918
Symbol 918 MovieClipUses:907 912 916 917Used by:919
Symbol 919 MovieClip {riderstand}Uses:883 891 893 895 897 899 906 918Used by:Timeline
Symbol 920 GraphicUsed by:921
Symbol 921 MovieClip {iceplatform3}Uses:920Used by:Timeline
Symbol 922 GraphicUsed by:923
Symbol 923 MovieClip {iceplatform4}Uses:922Used by:Timeline
Symbol 924 GraphicUsed by:925
Symbol 925 MovieClip {iceplatform1}Uses:924Used by:Timeline
Symbol 926 GraphicUsed by:927
Symbol 927 MovieClip {iceplatform2}Uses:926Used by:Timeline
Symbol 928 GraphicUsed by:934
Symbol 929 TextUses:9Used by:934
Symbol 930 TextUses:9Used by:934
Symbol 931 GraphicUsed by:933
Symbol 932 EditableTextUses:591Used by:933
Symbol 933 MovieClipUses:931 932Used by:934
Symbol 934 MovieClip {levelSelection}Uses:928 929 930 933Used by:Timeline
Symbol 935 GraphicUsed by:982
Symbol 936 GraphicUsed by:939
Symbol 937 GraphicUsed by:939
Symbol 938 GraphicUsed by:939
Symbol 939 MovieClipUses:936 937 938Used by:982
Symbol 940 GraphicUsed by:982
Symbol 941 GraphicUsed by:946
Symbol 942 GraphicUsed by:946
Symbol 943 GraphicUsed by:944
Symbol 944 MovieClipUses:943Used by:946
Symbol 945 GraphicUsed by:946
Symbol 946 MovieClipUses:941 942 944 945Used by:982
Symbol 947 GraphicUsed by:982
Symbol 948 GraphicUsed by:949
Symbol 949 MovieClipUses:948Used by:982
Symbol 950 GraphicUsed by:982
Symbol 951 GraphicUsed by:956
Symbol 952 GraphicUsed by:956
Symbol 953 GraphicUsed by:954
Symbol 954 MovieClipUses:953Used by:956
Symbol 955 GraphicUsed by:956
Symbol 956 MovieClipUses:951 952 954 955Used by:982
Symbol 957 GraphicUsed by:982
Symbol 958 GraphicUsed by:961
Symbol 959 GraphicUsed by:961
Symbol 960 GraphicUsed by:961
Symbol 961 MovieClipUses:958 959 960Used by:982
Symbol 962 BitmapUsed by:963
Symbol 963 GraphicUses:962Used by:982
Symbol 964 GraphicUsed by:968
Symbol 965 GraphicUsed by:968
Symbol 966 GraphicUsed by:968
Symbol 967 GraphicUsed by:968
Symbol 968 MovieClipUses:964 965 966 967Used by:982
Symbol 969 GraphicUsed by:982
Symbol 970 GraphicUsed by:974
Symbol 971 GraphicUsed by:974
Symbol 972 GraphicUsed by:974
Symbol 973 GraphicUsed by:974
Symbol 974 MovieClipUses:970 971 972 973Used by:982
Symbol 975 GraphicUsed by:982
Symbol 976 GraphicUsed by:980
Symbol 977 GraphicUsed by:980
Symbol 978 GraphicUsed by:980
Symbol 979 GraphicUsed by:980
Symbol 980 MovieClipUses:976 977 978 979Used by:982
Symbol 981 GraphicUsed by:982
Symbol 982 MovieClip {titlescreen}Uses:935 939 940 946 947 949 950 956 957 961 963 968 969 974 975 980 981Used by:Timeline
Symbol 983 GraphicUsed by:984
Symbol 984 MovieClip {placeholder}Uses:983Used by:Timeline
Symbol 985 GraphicUsed by:999
Symbol 986 TextUses:9Used by:999
Symbol 987 FontUsed by:988 993 998
Symbol 988 TextUses:9 987Used by:999
Symbol 989 TextUses:9Used by:999
Symbol 990 TextUses:9Used by:999
Symbol 991 TextUses:591Used by:999
Symbol 992 TextUses:9Used by:999
Symbol 993 TextUses:9 987Used by:999
Symbol 994 TextUses:9Used by:999
Symbol 995 TextUses:9Used by:999
Symbol 996 TextUses:9Used by:999
Symbol 997 TextUses:9Used by:999
Symbol 998 TextUses:9 987Used by:999
Symbol 999 MovieClip {hint}Uses:985 986 988 989 990 991 992 993 994 995 996 997 998Used by:Timeline
Symbol 1000 GraphicUsed by:1005 1015
Symbol 1001 TextUses:9Used by:1005
Symbol 1002 TextUses:9Used by:1005
Symbol 1003 GraphicUsed by:1005 1015
Symbol 1004 GraphicUsed by:1005
Symbol 1005 Button {overlay_mainMenuButton}Uses:1000 1001 1002 1003 1004Used by:Timeline
Symbol 1006 GraphicUsed by:1011
Symbol 1007 TextUses:9Used by:1011
Symbol 1008 TextUses:9Used by:1011
Symbol 1009 GraphicUsed by:1011
Symbol 1010 GraphicUsed by:1011
Symbol 1011 Button {overlay_moreGamesButton}Uses:1006 1007 1008 1009 1010Used by:Timeline
Symbol 1012 TextUses:9Used by:1015
Symbol 1013 TextUses:9Used by:1015
Symbol 1014 GraphicUsed by:1015
Symbol 1015 Button {overlay_nextLevelButton}Uses:1000 1012 1013 1003 1014Used by:Timeline
Symbol 1016 GraphicUsed by:1022
Symbol 1017 GraphicUsed by:1018
Symbol 1018 MovieClipUses:1017Used by:1022
Symbol 1019 GraphicUsed by:1020
Symbol 1020 MovieClipUses:1019Used by:1022
Symbol 1021 GraphicUsed by:1022
Symbol 1022 MovieClipUses:1016 1018 1020 1021Used by:1268
Symbol 1023 GraphicUsed by:1024
Symbol 1024 MovieClipUses:1023Used by:1029
Symbol 1025 GraphicUsed by:1026
Symbol 1026 MovieClipUses:1025Used by:1029
Symbol 1027 GraphicUsed by:1028
Symbol 1028 MovieClipUses:1027Used by:1029
Symbol 1029 MovieClipUses:1024 1026 1028Used by:1030
Symbol 1030 MovieClipUses:1029Used by:1268
Symbol 1031 GraphicUsed by:1032
Symbol 1032 MovieClipUses:1031Used by:1268
Symbol 1033 GraphicUsed by:1268
Symbol 1034 GraphicUsed by:1035
Symbol 1035 MovieClipUses:1034Used by:1268
Symbol 1036 GraphicUsed by:1268
Symbol 1037 GraphicUsed by:1038 1043 1094 1100 1104 1165 1176 1181 1186 1191 1196 1201 1226 1231 1236 1241
Symbol 1038 MovieClipUses:1037Used by:1268
Symbol 1039 GraphicUsed by:1268
Symbol 1040 GraphicUsed by:1041 1102 1106
Symbol 1041 MovieClipUses:1040Used by:1268
Symbol 1042 GraphicUsed by:1268
Symbol 1043 MovieClipUses:1037Used by:1268
Symbol 1044 GraphicUsed by:1268
Symbol 1045 GraphicUsed by:1046
Symbol 1046 MovieClipUses:1045Used by:1268
Symbol 1047 GraphicUsed by:1268
Symbol 1048 GraphicUsed by:1049 1096
Symbol 1049 MovieClipUses:1048Used by:1268
Symbol 1050 GraphicUsed by:1268
Symbol 1051 GraphicUsed by:1052 1098
Symbol 1052 MovieClipUses:1051Used by:1268
Symbol 1053 GraphicUsed by:1268
Symbol 1054 GraphicUsed by:1055
Symbol 1055 MovieClipUses:1054Used by:1268
Symbol 1056 GraphicUsed by:1268
Symbol 1057 GraphicUsed by:1061
Symbol 1058 GraphicUsed by:1061
Symbol 1059 GraphicUsed by:1061
Symbol 1060 GraphicUsed by:1061
Symbol 1061 MovieClipUses:1057 1058 1059 1060Used by:1268
Symbol 1062 GraphicUsed by:1268
Symbol 1063 GraphicUsed by:1067 1120
Symbol 1064 GraphicUsed by:1067
Symbol 1065 GraphicUsed by:1066 1119
Symbol 1066 MovieClipUses:1065Used by:1067
Symbol 1067 MovieClipUses:1063 1064 1066Used by:1268
Symbol 1068 GraphicUsed by:1268
Symbol 1069 GraphicUsed by:1072
Symbol 1070 GraphicUsed by:1072
Symbol 1071 GraphicUsed by:1072 1135
Symbol 1072 MovieClipUses:1069 816 1070 1071Used by:1268
Symbol 1073 BitmapUsed by:1074
Symbol 1074 GraphicUses:1073Used by:1268
Symbol 1075 GraphicUsed by:1080
Symbol 1076 GraphicUsed by:1080
Symbol 1077 GraphicUsed by:1080
Symbol 1078 GraphicUsed by:1079
Symbol 1079 MovieClipUses:1078Used by:1080
Symbol 1080 MovieClipUses:1075 1076 1077 1079Used by:1268
Symbol 1081 GraphicUsed by:1268
Symbol 1082 GraphicUsed by:1083
Symbol 1083 MovieClipUses:1082Used by:1268
Symbol 1084 GraphicUsed by:1268
Symbol 1085 GraphicUsed by:1086
Symbol 1086 MovieClipUses:1085Used by:1268
Symbol 1087 GraphicUsed by:1268
Symbol 1088 GraphicUsed by:1092
Symbol 1089 GraphicUsed by:1092
Symbol 1090 GraphicUsed by:1092
Symbol 1091 GraphicUsed by:1092
Symbol 1092 MovieClipUses:1088 1089 1090 1091Used by:1268
Symbol 1093 GraphicUsed by:1268
Symbol 1094 MovieClipUses:1037Used by:1268
Symbol 1095 GraphicUsed by:1268
Symbol 1096 MovieClipUses:1048Used by:1268
Symbol 1097 GraphicUsed by:1268
Symbol 1098 MovieClipUses:1051Used by:1268
Symbol 1099 GraphicUsed by:1268
Symbol 1100 MovieClipUses:1037Used by:1268
Symbol 1101 GraphicUsed by:1268
Symbol 1102 MovieClipUses:1040Used by:1268
Symbol 1103 GraphicUsed by:1268
Symbol 1104 MovieClipUses:1037Used by:1268
Symbol 1105 GraphicUsed by:1268
Symbol 1106 MovieClipUses:1040Used by:1268
Symbol 1107 GraphicUsed by:1268
Symbol 1108 GraphicUsed by:1109
Symbol 1109 MovieClipUses:1108Used by:1268
Symbol 1110 GraphicUsed by:1268
Symbol 1111 GraphicUsed by:1115
Symbol 1112 GraphicUsed by:1115
Symbol 1113 GraphicUsed by:1115
Symbol 1114 GraphicUsed by:1115
Symbol 1115 MovieClipUses:1111 1112 1113 1114Used by:1268
Symbol 1116 GraphicUsed by:1268
Symbol 1117 GraphicUsed by:1120
Symbol 1118 GraphicUsed by:1120
Symbol 1119 MovieClipUses:1065Used by:1120
Symbol 1120 MovieClipUses:1117 1063 1118 1119Used by:1268
Symbol 1121 GraphicUsed by:1268
Symbol 1122 GraphicUsed by:1123 1150
Symbol 1123 MovieClipUses:1122Used by:1268
Symbol 1124 GraphicUsed by:1268
Symbol 1125 GraphicUsed by:1126
Symbol 1126 MovieClipUses:1125Used by:1268
Symbol 1127 GraphicUsed by:1268
Symbol 1128 GraphicUsed by:1129
Symbol 1129 MovieClipUses:1128Used by:1268
Symbol 1130 GraphicUsed by:1268
Symbol 1131 GraphicUsed by:1132
Symbol 1132 MovieClipUses:1131Used by:1268
Symbol 1133 GraphicUsed by:1135
Symbol 1134 GraphicUsed by:1135
Symbol 1135 MovieClipUses:1133 816 1134 1071Used by:1268
Symbol 1136 BitmapUsed by:1137
Symbol 1137 GraphicUses:1136Used by:1268
Symbol 1138 GraphicUsed by:1139
Symbol 1139 MovieClipUses:1138Used by:1268
Symbol 1140 GraphicUsed by:1260 1268
Symbol 1141 GraphicUsed by:1142 1249
Symbol 1142 MovieClipUses:1141Used by:1268
Symbol 1143 GraphicUsed by:1260 1268
Symbol 1144 GraphicUsed by:1145
Symbol 1145 MovieClipUses:1144Used by:1268
Symbol 1146 GraphicUsed by:1260 1268
Symbol 1147 GraphicUsed by:1148
Symbol 1148 MovieClipUses:1147Used by:1268
Symbol 1149 GraphicUsed by:1268
Symbol 1150 MovieClipUses:1122Used by:1268
Symbol 1151 GraphicUsed by:1152 1250
Symbol 1152 MovieClipUses:1151Used by:1268
Symbol 1153 GraphicUsed by:1154
Symbol 1154 MovieClipUses:1153Used by:1268
Symbol 1155 GraphicUsed by:1156
Symbol 1156 MovieClipUses:1155Used by:1268
Symbol 1157 GraphicUsed by:1268
Symbol 1158 GraphicUsed by:1159
Symbol 1159 MovieClipUses:1158Used by:1268
Symbol 1160 GraphicUsed by:1268
Symbol 1161 GraphicUsed by:1162
Symbol 1162 MovieClipUses:1161Used by:1268
Symbol 1163 GraphicUsed by:1164
Symbol 1164 MovieClipUses:1163Used by:1268
Symbol 1165 MovieClipUses:1037Used by:1175
Symbol 1166 GraphicUsed by:1175
Symbol 1167 GraphicUsed by:1175
Symbol 1168 GraphicUsed by:1173
Symbol 1169 GraphicUsed by:1170
Symbol 1170 MovieClipUses:1169Used by:1173
Symbol 1171 GraphicUsed by:1172
Symbol 1172 MovieClipUses:1171Used by:1173
Symbol 1173 MovieClip {JetSkiMario_fla.gembok_384}Uses:1168 1170 1172Used by:1175 1180 1185 1190 1195 1200 1230 1235 1240 1245
Symbol 1174 GraphicUsed by:1175
Symbol 1175 MovieClip {JetSkiMario_fla.iconlevel1_382}Uses:1165 1166 1167 1173 1174Used by:1268
Symbol 1176 MovieClipUses:1037Used by:1180
Symbol 1177 GraphicUsed by:1180
Symbol 1178 GraphicUsed by:1180
Symbol 1179 GraphicUsed by:1180
Symbol 1180 MovieClip {JetSkiMario_fla.iconlevel2_387}Uses:1176 1177 1178 1173 1179Used by:1268
Symbol 1181 MovieClipUses:1037Used by:1185
Symbol 1182 GraphicUsed by:1185
Symbol 1183 GraphicUsed by:1185
Symbol 1184 GraphicUsed by:1185
Symbol 1185 MovieClip {JetSkiMario_fla.iconlevel3_389}Uses:1181 1182 1183 1173 1184Used by:1268
Symbol 1186 MovieClipUses:1037Used by:1190
Symbol 1187 GraphicUsed by:1190
Symbol 1188 GraphicUsed by:1190
Symbol 1189 GraphicUsed by:1190
Symbol 1190 MovieClip {JetSkiMario_fla.iconlevel5_391}Uses:1186 1187 1188 1173 1189Used by:1268
Symbol 1191 MovieClipUses:1037Used by:1195
Symbol 1192 GraphicUsed by:1195
Symbol 1193 GraphicUsed by:1195
Symbol 1194 GraphicUsed by:1195
Symbol 1195 MovieClip {JetSkiMario_fla.iconlevel7_393}Uses:1191 1192 1193 1173 1194Used by:1268
Symbol 1196 MovieClipUses:1037Used by:1200
Symbol 1197 GraphicUsed by:1200
Symbol 1198 GraphicUsed by:1200
Symbol 1199 GraphicUsed by:1200
Symbol 1200 MovieClip {JetSkiMario_fla.iconlevel8_395}Uses:1196 1197 1198 1173 1199Used by:1268
Symbol 1201 MovieClipUses:1037Used by:1225
Symbol 1202 GraphicUsed by:1225
Symbol 1203 GraphicUsed by:1207
Symbol 1204 GraphicUsed by:1207
Symbol 1205 GraphicUsed by:1207
Symbol 1206 GraphicUsed by:1207
Symbol 1207 MovieClipUses:1203 1204 1205 1206Used by:1225
Symbol 1208 GraphicUsed by:1225
Symbol 1209 GraphicUsed by:1213
Symbol 1210 GraphicUsed by:1213
Symbol 1211 GraphicUsed by:1213
Symbol 1212 GraphicUsed by:1213
Symbol 1213 MovieClipUses:1209 1210 1211 1212Used by:1225
Symbol 1214 GraphicUsed by:1225
Symbol 1215 GraphicUsed by:1219
Symbol 1216 GraphicUsed by:1219
Symbol 1217 GraphicUsed by:1219
Symbol 1218 GraphicUsed by:1219
Symbol 1219 MovieClipUses:1215 1216 1217 1218Used by:1225
Symbol 1220 GraphicUsed by:1223
Symbol 1221 GraphicUsed by:1223
Symbol 1222 GraphicUsed by:1223
Symbol 1223 MovieClipUses:1220 1221 1222Used by:1225
Symbol 1224 GraphicUsed by:1225
Symbol 1225 MovieClipUses:1201 1202 1207 1208 1213 1214 1219 1223 1224Used by:1268
Symbol 1226 MovieClipUses:1037Used by:1230
Symbol 1227 GraphicUsed by:1230
Symbol 1228 GraphicUsed by:1230
Symbol 1229 GraphicUsed by:1230
Symbol 1230 MovieClip {JetSkiMario_fla.iconlevel4_403}Uses:1226 1227 1228 1173 1229Used by:1268
Symbol 1231 MovieClipUses:1037Used by:1235
Symbol 1232 GraphicUsed by:1235
Symbol 1233 GraphicUsed by:1235
Symbol 1234 GraphicUsed by:1235
Symbol 1235 MovieClip {JetSkiMario_fla.iconlevel6_405}Uses:1231 1232 1233 1173 1234Used by:1268
Symbol 1236 MovieClipUses:1037Used by:1240
Symbol 1237 GraphicUsed by:1240
Symbol 1238 GraphicUsed by:1240
Symbol 1239 GraphicUsed by:1240
Symbol 1240 MovieClip {JetSkiMario_fla.iconlevel9_407}Uses:1236 1237 1238 1173 1239Used by:1268
Symbol 1241 MovieClipUses:1037Used by:1245
Symbol 1242 GraphicUsed by:1245
Symbol 1243 GraphicUsed by:1245
Symbol 1244 GraphicUsed by:1245
Symbol 1245 MovieClip {JetSkiMario_fla.iconlevel10_409}Uses:1241 1242 1243 1173 1244Used by:1268
Symbol 1246 GraphicUsed by:1260
Symbol 1247 GraphicUsed by:1248
Symbol 1248 MovieClipUses:1247Used by:1260
Symbol 1249 MovieClipUses:1141Used by:1260
Symbol 1250 MovieClipUses:1151Used by:1260
Symbol 1251 GraphicUsed by:1252
Symbol 1252 MovieClipUses:1251Used by:1260
Symbol 1253 GraphicUsed by:1260
Symbol 1254 GraphicUsed by:1255
Symbol 1255 MovieClipUses:1254Used by:1260
Symbol 1256 GraphicUsed by:1260
Symbol 1257 GraphicUsed by:1258
Symbol 1258 MovieClipUses:1257Used by:1260
Symbol 1259 GraphicUsed by:1260
Symbol 1260 MovieClipUses:1246 1248 1140 1249 1146 1250 1143 1252 1253 1255 1256 1258 1259Used by:1268
Symbol 1261 EditableTextUses:591Used by:1268
Symbol 1262 GraphicUsed by:1267 1308
Symbol 1263 TextUses:9Used by:1267
Symbol 1264 TextUses:9Used by:1267
Symbol 1265 GraphicUsed by:1267 1308
Symbol 1266 GraphicUsed by:1267 1308
Symbol 1267 ButtonUses:1262 1263 1264 1265 1266Used by:1268
Symbol 1268 MovieClip {Map}Uses:1022 1030 1032 1033 1035 1036 1038 1039 1041 1042 1043 1044 1046 1047 1049 1050 1052 1053 1055 1056 1061 1062 1067 1068 1072 1074 1080 1081 1083 1084 1086 1087 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1109 1110 1115 1116 1120 1121 1123 1124 1126 1127 1129 1130 1132 1135 1137 1139 1140 1142 1143 1145 1146 1148 1149 1150 1152 1154 1156 1157 1159 1160 1162 1164 1175 1180 1185 1190 1195 1200 1225 1230 1235 1240 1245 1260 602 1261 248 1267Used by:Timeline
Symbol 1269 MovieClipUses:165Used by:1273
Symbol 1270 GraphicUsed by:1273
Symbol 1271 FontUsed by:1272
Symbol 1272 EditableTextUses:1271Used by:1273
Symbol 1273 MovieClip {FPS}Uses:1269 1270 1272Used by:Timeline
Symbol 1274 GraphicUsed by:1279
Symbol 1275 TextUses:9Used by:1279
Symbol 1276 TextUses:9Used by:1279
Symbol 1277 GraphicUsed by:1279
Symbol 1278 GraphicUsed by:1279
Symbol 1279 Button {overlay_continueButton}Uses:1274 1275 1276 1277 1278Used by:Timeline
Symbol 1280 GraphicUsed by:1309
Symbol 1281 TextUses:9Used by:1309
Symbol 1282 TextUses:9Used by:1309
Symbol 1283 TextUses:9Used by:1309
Symbol 1284 TextUses:9Used by:1309
Symbol 1285 GraphicUsed by:1286 1290 1294 1298 1302
Symbol 1286 MovieClipUses:1285Used by:1309
Symbol 1287 GraphicUsed by:1309
Symbol 1288 TextUses:9Used by:1309
Symbol 1289 TextUses:9Used by:1309
Symbol 1290 MovieClipUses:1285Used by:1309
Symbol 1291 GraphicUsed by:1309
Symbol 1292 TextUses:9Used by:1309
Symbol 1293 TextUses:9Used by:1309
Symbol 1294 MovieClipUses:1285Used by:1309
Symbol 1295 GraphicUsed by:1309
Symbol 1296 TextUses:9Used by:1309
Symbol 1297 TextUses:9Used by:1309
Symbol 1298 MovieClipUses:1285Used by:1309
Symbol 1299 GraphicUsed by:1309
Symbol 1300 TextUses:9Used by:1309
Symbol 1301 TextUses:9Used by:1309
Symbol 1302 MovieClipUses:1285Used by:1309
Symbol 1303 GraphicUsed by:1309
Symbol 1304 TextUses:9Used by:1309
Symbol 1305 TextUses:9 456Used by:1309
Symbol 1306 TextUses:9Used by:1308
Symbol 1307 TextUses:9Used by:1308
Symbol 1308 ButtonUses:1262 1306 1307 1265 1266Used by:1309
Symbol 1309 MovieClip {instructions}Uses:1280 1281 1282 1283 1284 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1308 878Used by:Timeline
Symbol 1310 Sound {croc_sound}Used by:Timeline
Symbol 1311 Sound {marinemine_sound}Used by:Timeline
Symbol 1312 Sound {checkpoint_sound}Used by:Timeline
Symbol 1313 Sound {gameover_sound}Used by:Timeline
Symbol 1314 Sound {dive_sound}Used by:Timeline
Symbol 1315 Sound {hippo_sound}Used by:Timeline
Symbol 1316 Sound {ingamemusic_sound}Used by:Timeline
Symbol 1317 Sound {jetskiidle_sound}Used by:Timeline
Symbol 1318 Sound {jetskijump_sound}Used by:Timeline
Symbol 1319 Sound {jetskislow_sound}Used by:Timeline
Symbol 1320 Sound {overlayslide_sound}Used by:Timeline
Symbol 1321 Sound {levelcomplete_sound}Used by:Timeline
Symbol 1322 Sound {jetskinitro_sound}Used by:Timeline
Symbol 1323 Sound {pelican_sound}Used by:Timeline
Symbol 1324 Sound {penguin_sound}Used by:Timeline
Symbol 1325 Sound {star_sound}Used by:Timeline
Symbol 1326 Sound {titlescreen_sound}Used by:Timeline
Symbol 1327 Sound {tntbarrel_sound}Used by:Timeline
Symbol 1328 Sound {walrus_sound}Used by:Timeline
Symbol 1329 Sound {guyonraft_sound}Used by:Timeline
Symbol 1330 Sound {skull_sound}Used by:Timeline
Symbol 1331 Sound {hit_sound}Used by:Timeline
Symbol 1332 Sound {thunder_sound}Used by:Timeline
Symbol 1333 Sound {map_sound}Used by:Timeline

Instance Names

"hud"Frame 6Symbol 608 MovieClip
"mBG"Symbol 453 MovieClip {JetSkiMario_fla.PRELOADERDUCKARCADE_1} Frame 1Symbol 400 MovieClip {JetSkiMario_fla.PreloaderA_2}
"tLoader"Symbol 453 MovieClip {JetSkiMario_fla.PRELOADERDUCKARCADE_1} Frame 1Symbol 402 EditableText
"mLoader"Symbol 453 MovieClip {JetSkiMario_fla.PRELOADERDUCKARCADE_1} Frame 1Symbol 406 MovieClip {JetSkiMario_fla.mariowalk_101}
"mPlay"Symbol 453 MovieClip {JetSkiMario_fla.PRELOADERDUCKARCADE_1} Frame 1Symbol 416 MovieClip {JetSkiMario_fla.play_103}
"mMario"Symbol 453 MovieClip {JetSkiMario_fla.PRELOADERDUCKARCADE_1} Frame 1Symbol 448 MovieClip
"yes"Symbol 462 MovieClip {likeOverlay} Frame 1Symbol 461 Button {yesButton}
"no"Symbol 462 MovieClip {likeOverlay} Frame 1Symbol 108 Button {noButton}
"text"Symbol 593 MovieClip Frame 1Symbol 592 EditableText
"minutes"Symbol 598 MovieClip Frame 1Symbol 595 EditableText
"seconds"Symbol 598 MovieClip Frame 1Symbol 596 EditableText
"text"Symbol 601 MovieClip Frame 1Symbol 600 EditableText
"soundText"Symbol 604 MovieClip Frame 1Symbol 603 EditableText
"sfxText"Symbol 606 MovieClip Frame 1Symbol 605 EditableText
"progress"Symbol 608 MovieClip Frame 1Symbol 589 MovieClip
"lives"Symbol 608 MovieClip Frame 1Symbol 593 MovieClip
"time"Symbol 608 MovieClip Frame 1Symbol 598 MovieClip
"points"Symbol 608 MovieClip Frame 1Symbol 601 MovieClip
"soundgui"Symbol 608 MovieClip Frame 1Symbol 604 MovieClip
"sfxgui"Symbol 608 MovieClip Frame 1Symbol 606 MovieClip
"currentLevelText"Symbol 608 MovieClip Frame 1Symbol 607 EditableText
"moregamesgui"Symbol 608 MovieClip Frame 1Symbol 248 MovieClip {JetSkiMario_fla.LOGODUCKARCADE_18}
"thunder"Symbol 623 MovieClip {rain} Frame 1Symbol 622 MovieClip {JetSkiMario_fla.gledek_191}
"levelText"Symbol 933 MovieClip Frame 1Symbol 932 EditableText
"l1"Symbol 934 MovieClip {levelSelection} Frame 1Symbol 933 MovieClip
"l2"Symbol 934 MovieClip {levelSelection} Frame 1Symbol 933 MovieClip
"l3"Symbol 934 MovieClip {levelSelection} Frame 1Symbol 933 MovieClip
"l4"Symbol 934 MovieClip {levelSelection} Frame 1Symbol 933 MovieClip
"l5"Symbol 934 MovieClip {levelSelection} Frame 1Symbol 933 MovieClip
"l6"Symbol 934 MovieClip {levelSelection} Frame 1Symbol 933 MovieClip
"l7"Symbol 934 MovieClip {levelSelection} Frame 1Symbol 933 MovieClip
"l8"Symbol 934 MovieClip {levelSelection} Frame 1Symbol 933 MovieClip
"l9"Symbol 934 MovieClip {levelSelection} Frame 1Symbol 933 MovieClip
"l10"Symbol 934 MovieClip {levelSelection} Frame 1Symbol 933 MovieClip
"mPoint1"Symbol 1268 MovieClip {Map} Frame 1Symbol 1035 MovieClip
"mPoint2"Symbol 1268 MovieClip {Map} Frame 1Symbol 1035 MovieClip
"mPoint3"Symbol 1268 MovieClip {Map} Frame 1Symbol 1035 MovieClip
"mPoint4"Symbol 1268 MovieClip {Map} Frame 1Symbol 1035 MovieClip
"mPoint5"Symbol 1268 MovieClip {Map} Frame 1Symbol 1035 MovieClip
"mPoint6"Symbol 1268 MovieClip {Map} Frame 1Symbol 1035 MovieClip
"mPoint7"Symbol 1268 MovieClip {Map} Frame 1Symbol 1035 MovieClip
"mPoint8"Symbol 1268 MovieClip {Map} Frame 1Symbol 1035 MovieClip
"mPoint9"Symbol 1268 MovieClip {Map} Frame 1Symbol 1035 MovieClip
"mPoint10"Symbol 1268 MovieClip {Map} Frame 1Symbol 1035 MovieClip
"mLevel1"Symbol 1268 MovieClip {Map} Frame 1Symbol 1175 MovieClip {JetSkiMario_fla.iconlevel1_382}
"mLevel2"Symbol 1268 MovieClip {Map} Frame 1Symbol 1180 MovieClip {JetSkiMario_fla.iconlevel2_387}
"mLevel3"Symbol 1268 MovieClip {Map} Frame 1Symbol 1185 MovieClip {JetSkiMario_fla.iconlevel3_389}
"mLevel5"Symbol 1268 MovieClip {Map} Frame 1Symbol 1190 MovieClip {JetSkiMario_fla.iconlevel5_391}
"mLevel7"Symbol 1268 MovieClip {Map} Frame 1Symbol 1195 MovieClip {JetSkiMario_fla.iconlevel7_393}
"mLevel8"Symbol 1268 MovieClip {Map} Frame 1Symbol 1200 MovieClip {JetSkiMario_fla.iconlevel8_395}
"mMario"Symbol 1268 MovieClip {Map} Frame 1Symbol 1225 MovieClip
"mLevel4"Symbol 1268 MovieClip {Map} Frame 1Symbol 1230 MovieClip {JetSkiMario_fla.iconlevel4_403}
"mLevel6"Symbol 1268 MovieClip {Map} Frame 1Symbol 1235 MovieClip {JetSkiMario_fla.iconlevel6_405}
"mLevel9"Symbol 1268 MovieClip {Map} Frame 1Symbol 1240 MovieClip {JetSkiMario_fla.iconlevel9_407}
"mLevel10"Symbol 1268 MovieClip {Map} Frame 1Symbol 1245 MovieClip {JetSkiMario_fla.iconlevel10_409}
"tLevel"Symbol 1268 MovieClip {Map} Frame 1Symbol 1261 EditableText
"playBtn"Symbol 1268 MovieClip {Map} Frame 1Symbol 1267 Button
"iBar"Symbol 1273 MovieClip {FPS} Frame 1Symbol 1269 MovieClip
"tf"Symbol 1273 MovieClip {FPS} Frame 2Symbol 1272 EditableText
"backBtn"Symbol 1309 MovieClip {instructions} Frame 1Symbol 1308 Button

Special Tags

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




http://swfchan.com/24/117407/info.shtml
Created: 7/3 -2019 19:10:43 Last modified: 7/3 -2019 19:10:43 Server time: 19/04 -2024 00:48:40