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

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

Bury My Bones.swf

This is the info page for
Flash #207753

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


Text
JUEGOS

Gratis

Loading...

PLAY

MORE GAMES

<p align="center"><font face="Comics" size="18" color="#3f3d32" letterSpacing="0.000000" kerning="1">SOUND</font></p><p align="center"><font face="Comics" size="18" color="#3f3d32" letterSpacing="0.000000" kerning="1">OFF</font></p>

<p align="center"><font face="Comics" size="18" color="#3f3d32" letterSpacing="0.000000" kerning="1">SOUND</font></p><p align="center"><font face="Comics" size="18" color="#3f3d32" letterSpacing="0.000000" kerning="1">OFF</font></p>

<p align="center"><font face="Comics" size="18" color="#3f3d32" letterSpacing="0.000000" kerning="1">SOUND</font></p><p align="center"><font face="Comics" size="18" color="#3f3d32" letterSpacing="0.000000" kerning="1">ON</font></p>

<p align="center"><font face="Comics" size="18" color="#3f3d32" letterSpacing="0.000000" kerning="1">SOUND</font></p><p align="center"><font face="Comics" size="18" color="#3f3d32" letterSpacing="0.000000" kerning="1">ON</font></p>

More games

More games

<p align="center"><font face="Comics" size="18" color="#3f3d32" letterSpacing="0.000000" kerning="1">MUSIC</font></p><p align="center"><font face="Comics" size="18" color="#3f3d32" letterSpacing="0.000000" kerning="1">OFF</font></p>

<p align="center"><font face="Comics" size="18" color="#3f3d32" letterSpacing="0.000000" kerning="1">MUSIC</font></p><p align="center"><font face="Comics" size="18" color="#3f3d32" letterSpacing="0.000000" kerning="1">OFF</font></p>

<p align="center"><font face="Comics" size="18" color="#3f3d32" letterSpacing="0.000000" kerning="1">MUSIC</font></p><p align="center"><font face="Comics" size="18" color="#3f3d32" letterSpacing="0.000000" kerning="1">ON</font></p>

<p align="center"><font face="Comics" size="18" color="#3f3d32" letterSpacing="0.000000" kerning="1">MUSIC</font></p><p align="center"><font face="Comics" size="18" color="#3f3d32" letterSpacing="0.000000" kerning="1">ON</font></p>

<p align="center"><font face="Century751 No2 BT" size="27" color="#e7d5b1" letterSpacing="0.000000" kerning="1"><b>22</b></font></p>

<p align="center"><font face="Century751 No2 BT" size="27" color="#e7d5b1" letterSpacing="0.000000" kerning="1"><b>1000</b></font></p>

Score:

Lvl:

levels

W

help

walkthrough

retry

(space)

<p align="center"><font face="Century751 No2 BT" size="27" color="#e7d5b1" letterSpacing="0.000000" kerning="1"><b>1000</b></font></p>

Highscore:

Retry

Retry

(Space)

(Space)

W

<p align="center"><font face="Charlemagne Std" size="12" color="#2e3535" letterSpacing="0.000000" kerning="1"><b>19500</b></font></p>

Next

Next

Main menu

Main menu

Main menu

Highscore:

<p align="center"><font face="Adobe Devanagari" size="18" color="#e7d5b1" letterSpacing="0.000000" kerning="1"><b>19536</b></font></p>

1

1

2

3

3

4

4

5

5

6

7

7

8

8

9

9

10

10

11

11

12

12

13

13

14

14

15

15

16

16

17

17

18

18

19

19

20

20

21

21

22

22

23

23

24

24

25

25

26

26

27

27

28

28

Click to
turn on.

Click to
turn off.

Be fast!

Click to
go up.

Click to
go down.

Avoid
it.

Press
space to
retry

Click on
car
to stop

Click on
car
to move

Click on
car
to stop

Click
on it.

Click to
shoot

Click to
move

Click to
blow

Bouncing

You can't
destroy
it by clicking.

Click on
wooden
wheel.

Click on
wood.

Avoid
flame.

Click on
baloon.

ActionScript [AS3]

Section 1
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { b2internal var m_p:b2Vec2; public function b2CircleShape(_arg1:Number=0){ m_p = new b2Vec2(); super(); m_type = e_circleShape; m_radius = _arg1; } override public function Copy():b2Shape{ var _local1:b2Shape = new b2CircleShape(); _local1.Set(this); return (_local1); } override public function Set(_arg1:b2Shape):void{ var _local2:b2CircleShape; super.Set(_arg1); if ((_arg1 is b2CircleShape)){ _local2 = (_arg1 as b2CircleShape); m_p.SetV(_local2.m_p); }; } override public function TestPoint(_arg1:b2Transform, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22 = _arg1.R; var _local4:Number = (_arg1.position.x + ((_local3.col1.x * m_p.x) + (_local3.col2.x * m_p.y))); var _local5:Number = (_arg1.position.y + ((_local3.col1.y * m_p.x) + (_local3.col2.y * m_p.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } override public function RayCast(_arg1:b2RayCastOutput, _arg2:b2RayCastInput, _arg3:b2Transform):Boolean{ var _local8:Number; var _local4:b2Mat22 = _arg3.R; var _local5:Number = (_arg3.position.x + ((_local4.col1.x * m_p.x) + (_local4.col2.x * m_p.y))); var _local6:Number = (_arg3.position.y + ((_local4.col1.y * m_p.x) + (_local4.col2.y * m_p.y))); var _local7:Number = (_arg2.p1.x - _local5); _local8 = (_arg2.p1.y - _local6); var _local9:Number = (((_local7 * _local7) + (_local8 * _local8)) - (m_radius * m_radius)); var _local10:Number = (_arg2.p2.x - _arg2.p1.x); var _local11:Number = (_arg2.p2.y - _arg2.p1.y); var _local12:Number = ((_local7 * _local10) + (_local8 * _local11)); var _local13:Number = ((_local10 * _local10) + (_local11 * _local11)); var _local14:Number = ((_local12 * _local12) - (_local13 * _local9)); if ((((_local14 < 0)) || ((_local13 < Number.MIN_VALUE)))){ return (false); }; var _local15:Number = -((_local12 + Math.sqrt(_local14))); if ((((0 <= _local15)) && ((_local15 <= (_arg2.maxFraction * _local13))))){ _local15 = (_local15 / _local13); _arg1.fraction = _local15; _arg1.normal.x = (_local7 + (_local15 * _local10)); _arg1.normal.y = (_local8 + (_local15 * _local11)); _arg1.normal.Normalize(); return (true); }; return (false); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2Transform):void{ var _local3:b2Mat22 = _arg2.R; var _local4:Number = (_arg2.position.x + ((_local3.col1.x * m_p.x) + (_local3.col2.x * m_p.y))); var _local5:Number = (_arg2.position.y + ((_local3.col1.y * m_p.x) + (_local3.col2.y * m_p.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } override public function ComputeMass(_arg1:b2MassData, _arg2:Number):void{ _arg1.mass = (((_arg2 * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_p); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_p.x * m_p.x) + (m_p.y * m_p.y)))); } override public function ComputeSubmergedArea(_arg1:b2Vec2, _arg2:Number, _arg3:b2Transform, _arg4:b2Vec2):Number{ var _local9:Number; var _local5:b2Vec2 = b2Math.MulX(_arg3, m_p); var _local6:Number = -((b2Math.Dot(_arg1, _local5) - _arg2)); if (_local6 < (-(m_radius) + Number.MIN_VALUE)){ return (0); }; if (_local6 > m_radius){ _arg4.SetV(_local5); return (((Math.PI * m_radius) * m_radius)); }; var _local7:Number = (m_radius * m_radius); var _local8:Number = (_local6 * _local6); _local9 = ((_local7 * (Math.asin((_local6 / m_radius)) + (Math.PI / 2))) + (_local6 * Math.sqrt((_local7 - _local8)))); var _local10:Number = (((-2 / 3) * Math.pow((_local7 - _local8), 1.5)) / _local9); _arg4.x = (_local5.x + (_arg1.x * _local10)); _arg4.y = (_local5.y + (_arg1.y * _local10)); return (_local9); } public function GetLocalPosition():b2Vec2{ return (m_p); } public function SetLocalPosition(_arg1:b2Vec2):void{ m_p.SetV(_arg1); } public function GetRadius():Number{ return (m_radius); } public function SetRadius(_arg1:Number):void{ m_radius = _arg1; } } }//package Box2D.Collision.Shapes
Section 2
//b2EdgeShape (Box2D.Collision.Shapes.b2EdgeShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2EdgeShape extends b2Shape { private var s_supportVec:b2Vec2; b2internal var m_v1:b2Vec2; b2internal var m_v2:b2Vec2; b2internal var m_coreV1:b2Vec2; b2internal var m_coreV2:b2Vec2; b2internal var m_length:Number; b2internal var m_normal:b2Vec2; b2internal var m_direction:b2Vec2; b2internal var m_cornerDir1:b2Vec2; b2internal var m_cornerDir2:b2Vec2; b2internal var m_cornerConvex1:Boolean; b2internal var m_cornerConvex2:Boolean; b2internal var m_nextEdge:b2EdgeShape; b2internal var m_prevEdge:b2EdgeShape; public function b2EdgeShape(_arg1:b2Vec2, _arg2:b2Vec2){ s_supportVec = new b2Vec2(); m_v1 = new b2Vec2(); m_v2 = new b2Vec2(); m_coreV1 = new b2Vec2(); m_coreV2 = new b2Vec2(); m_normal = new b2Vec2(); m_direction = new b2Vec2(); m_cornerDir1 = new b2Vec2(); m_cornerDir2 = new b2Vec2(); super(); m_type = e_edgeShape; m_prevEdge = null; m_nextEdge = null; m_v1 = _arg1; m_v2 = _arg2; m_direction.Set((m_v2.x - m_v1.x), (m_v2.y - m_v1.y)); m_length = m_direction.Normalize(); m_normal.Set(m_direction.y, -(m_direction.x)); m_coreV1.Set(((-(b2Settings.b2_toiSlop) * (m_normal.x - m_direction.x)) + m_v1.x), ((-(b2Settings.b2_toiSlop) * (m_normal.y - m_direction.y)) + m_v1.y)); m_coreV2.Set(((-(b2Settings.b2_toiSlop) * (m_normal.x + m_direction.x)) + m_v2.x), ((-(b2Settings.b2_toiSlop) * (m_normal.y + m_direction.y)) + m_v2.y)); m_cornerDir1 = m_normal; m_cornerDir2.Set(-(m_normal.x), -(m_normal.y)); } override public function TestPoint(_arg1:b2Transform, _arg2:b2Vec2):Boolean{ return (false); } override public function RayCast(_arg1:b2RayCastOutput, _arg2:b2RayCastInput, _arg3:b2Transform):Boolean{ var _local4:b2Mat22; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local5:Number = (_arg2.p2.x - _arg2.p1.x); var _local6:Number = (_arg2.p2.y - _arg2.p1.y); _local4 = _arg3.R; var _local7:Number = (_arg3.position.x + ((_local4.col1.x * m_v1.x) + (_local4.col2.x * m_v1.y))); var _local8:Number = (_arg3.position.y + ((_local4.col1.y * m_v1.x) + (_local4.col2.y * m_v1.y))); var _local9:Number = ((_arg3.position.y + ((_local4.col1.y * m_v2.x) + (_local4.col2.y * m_v2.y))) - _local8); var _local10:Number = -(((_arg3.position.x + ((_local4.col1.x * m_v2.x) + (_local4.col2.x * m_v2.y))) - _local7)); var _local11:Number = (100 * Number.MIN_VALUE); var _local12:Number = -(((_local5 * _local9) + (_local6 * _local10))); if (_local12 > _local11){ _local13 = (_arg2.p1.x - _local7); _local14 = (_arg2.p1.y - _local8); _local15 = ((_local13 * _local9) + (_local14 * _local10)); if ((((0 <= _local15)) && ((_local15 <= (_arg2.maxFraction * _local12))))){ _local16 = ((-(_local5) * _local14) + (_local6 * _local13)); if (((((-(_local11) * _local12) <= _local16)) && ((_local16 <= (_local12 * (1 + _local11)))))){ _local15 = (_local15 / _local12); _arg1.fraction = _local15; _local17 = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _arg1.normal.x = (_local9 / _local17); _arg1.normal.y = (_local10 / _local17); return (true); }; }; }; return (false); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2Transform):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local3:b2Mat22 = _arg2.R; _local4 = (_arg2.position.x + ((_local3.col1.x * m_v1.x) + (_local3.col2.x * m_v1.y))); _local5 = (_arg2.position.y + ((_local3.col1.y * m_v1.x) + (_local3.col2.y * m_v1.y))); _local6 = (_arg2.position.x + ((_local3.col1.x * m_v2.x) + (_local3.col2.x * m_v2.y))); _local7 = (_arg2.position.y + ((_local3.col1.y * m_v2.x) + (_local3.col2.y * m_v2.y))); if (_local4 < _local6){ _arg1.lowerBound.x = _local4; _arg1.upperBound.x = _local6; } else { _arg1.lowerBound.x = _local6; _arg1.upperBound.x = _local4; }; if (_local5 < _local7){ _arg1.lowerBound.y = _local5; _arg1.upperBound.y = _local7; } else { _arg1.lowerBound.y = _local7; _arg1.upperBound.y = _local5; }; } override public function ComputeMass(_arg1:b2MassData, _arg2:Number):void{ _arg1.mass = 0; _arg1.center.SetV(m_v1); _arg1.I = 0; } override public function ComputeSubmergedArea(_arg1:b2Vec2, _arg2:Number, _arg3:b2Transform, _arg4:b2Vec2):Number{ var _local5:b2Vec2 = new b2Vec2((_arg1.x * _arg2), (_arg1.y * _arg2)); var _local6:b2Vec2 = b2Math.MulX(_arg3, m_v1); var _local7:b2Vec2 = b2Math.MulX(_arg3, m_v2); var _local8:Number = (b2Math.Dot(_arg1, _local6) - _arg2); var _local9:Number = (b2Math.Dot(_arg1, _local7) - _arg2); if (_local8 > 0){ if (_local9 > 0){ return (0); }; _local6.x = (((-(_local9) / (_local8 - _local9)) * _local6.x) + ((_local8 / (_local8 - _local9)) * _local7.x)); _local6.y = (((-(_local9) / (_local8 - _local9)) * _local6.y) + ((_local8 / (_local8 - _local9)) * _local7.y)); } else { if (_local9 > 0){ _local7.x = (((-(_local9) / (_local8 - _local9)) * _local6.x) + ((_local8 / (_local8 - _local9)) * _local7.x)); _local7.y = (((-(_local9) / (_local8 - _local9)) * _local6.y) + ((_local8 / (_local8 - _local9)) * _local7.y)); }; }; _arg4.x = (((_local5.x + _local6.x) + _local7.x) / 3); _arg4.y = (((_local5.y + _local6.y) + _local7.y) / 3); return ((0.5 * (((_local6.x - _local5.x) * (_local7.y - _local5.y)) - ((_local6.y - _local5.y) * (_local7.x - _local5.x))))); } public function GetLength():Number{ return (m_length); } public function GetVertex1():b2Vec2{ return (m_v1); } public function GetVertex2():b2Vec2{ return (m_v2); } public function GetCoreVertex1():b2Vec2{ return (m_coreV1); } public function GetCoreVertex2():b2Vec2{ return (m_coreV2); } public function GetNormalVector():b2Vec2{ return (m_normal); } public function GetDirectionVector():b2Vec2{ return (m_direction); } public function GetCorner1Vector():b2Vec2{ return (m_cornerDir1); } public function GetCorner2Vector():b2Vec2{ return (m_cornerDir2); } public function Corner1IsConvex():Boolean{ return (m_cornerConvex1); } public function Corner2IsConvex():Boolean{ return (m_cornerConvex2); } public function GetFirstVertex(_arg1:b2Transform):b2Vec2{ var _local2:b2Mat22 = _arg1.R; return (new b2Vec2((_arg1.position.x + ((_local2.col1.x * m_coreV1.x) + (_local2.col2.x * m_coreV1.y))), (_arg1.position.y + ((_local2.col1.y * m_coreV1.x) + (_local2.col2.y * m_coreV1.y))))); } public function GetNextEdge():b2EdgeShape{ return (m_nextEdge); } public function GetPrevEdge():b2EdgeShape{ return (m_prevEdge); } public function Support(_arg1:b2Transform, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Mat22 = _arg1.R; var _local5:Number = (_arg1.position.x + ((_local4.col1.x * m_coreV1.x) + (_local4.col2.x * m_coreV1.y))); var _local6:Number = (_arg1.position.y + ((_local4.col1.y * m_coreV1.x) + (_local4.col2.y * m_coreV1.y))); var _local7:Number = (_arg1.position.x + ((_local4.col1.x * m_coreV2.x) + (_local4.col2.x * m_coreV2.y))); var _local8:Number = (_arg1.position.y + ((_local4.col1.y * m_coreV2.x) + (_local4.col2.y * m_coreV2.y))); if (((_local5 * _arg2) + (_local6 * _arg3)) > ((_local7 * _arg2) + (_local8 * _arg3))){ s_supportVec.x = _local5; s_supportVec.y = _local6; } else { s_supportVec.x = _local7; s_supportVec.y = _local8; }; return (s_supportVec); } b2internal function SetPrevEdge(_arg1:b2EdgeShape, _arg2:b2Vec2, _arg3:b2Vec2, _arg4:Boolean):void{ m_prevEdge = _arg1; m_coreV1 = _arg2; m_cornerDir1 = _arg3; m_cornerConvex1 = _arg4; } b2internal function SetNextEdge(_arg1:b2EdgeShape, _arg2:b2Vec2, _arg3:b2Vec2, _arg4:Boolean):void{ m_nextEdge = _arg1; m_coreV2 = _arg2; m_cornerDir2 = _arg3; m_cornerConvex2 = _arg4; } } }//package Box2D.Collision.Shapes
Section 3
//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 4
//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 { b2internal var m_centroid:b2Vec2; b2internal var m_vertices:Array; b2internal var m_normals:Array; b2internal var m_vertexCount:int; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonShape(){ m_type = e_polygonShape; m_centroid = new b2Vec2(); m_vertices = new Array(); m_normals = new Array(); } override public function Copy():b2Shape{ var _local1:b2PolygonShape = new b2PolygonShape(); _local1.Set(this); return (_local1); } override public function Set(_arg1:b2Shape):void{ var _local2:b2PolygonShape; var _local3:int; super.Set(_arg1); if ((_arg1 is b2PolygonShape)){ _local2 = (_arg1 as b2PolygonShape); m_centroid.SetV(_local2.m_centroid); m_vertexCount = _local2.m_vertexCount; Reserve(m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3].SetV(_local2.m_vertices[_local3]); m_normals[_local3].SetV(_local2.m_normals[_local3]); _local3++; }; }; } public function SetAsArray(_arg1:Array, _arg2:Number=0):void{ var _local4:b2Vec2; var _local3:Array = new Array(); for each (_local4 in _arg1) { _local3.push(_local4); }; SetAsVector(_local3, _arg2); } public function SetAsVector(_arg1:Array, _arg2:Number=0):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:b2Vec2; if (_arg2 == 0){ _arg2 = _arg1.length; }; b2Settings.b2Assert((2 <= _arg2)); m_vertexCount = _arg2; Reserve(_arg2); _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3].SetV(_arg1[_local3]); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = b2Math.SubtractVV(m_vertices[_local5], m_vertices[_local4]); b2Settings.b2Assert((_local6.LengthSquared() > Number.MIN_VALUE)); m_normals[_local3].SetV(b2Math.CrossVF(_local6, 1)); m_normals[_local3].Normalize(); _local3++; }; m_centroid = ComputeCentroid(m_vertices, m_vertexCount); } public function SetAsBox(_arg1:Number, _arg2:Number):void{ m_vertexCount = 4; Reserve(4); m_vertices[0].Set(-(_arg1), -(_arg2)); m_vertices[1].Set(_arg1, -(_arg2)); m_vertices[2].Set(_arg1, _arg2); m_vertices[3].Set(-(_arg1), _arg2); m_normals[0].Set(0, -1); m_normals[1].Set(1, 0); m_normals[2].Set(0, 1); m_normals[3].Set(-1, 0); m_centroid.SetZero(); } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ m_vertexCount = 4; Reserve(4); m_vertices[0].Set(-(_arg1), -(_arg2)); m_vertices[1].Set(_arg1, -(_arg2)); m_vertices[2].Set(_arg1, _arg2); m_vertices[3].Set(-(_arg1), _arg2); m_normals[0].Set(0, -1); m_normals[1].Set(1, 0); m_normals[2].Set(0, 1); m_normals[3].Set(-1, 0); m_centroid = _arg3; var _local5:b2Transform = new b2Transform(); _local5.position = _arg3; _local5.R.Set(_arg4); var _local6:int; while (_local6 < m_vertexCount) { m_vertices[_local6] = b2Math.MulX(_local5, m_vertices[_local6]); m_normals[_local6] = b2Math.MulMV(_local5.R, m_normals[_local6]); _local6++; }; } public function SetAsEdge(_arg1:b2Vec2, _arg2:b2Vec2):void{ m_vertexCount = 2; Reserve(2); m_vertices[0].SetV(_arg1); m_vertices[1].SetV(_arg2); m_centroid.x = (0.5 * (_arg1.x + _arg2.x)); m_centroid.y = (0.5 * (_arg1.y + _arg2.y)); m_normals[0] = b2Math.CrossVF(b2Math.SubtractVV(_arg2, _arg1), 1); m_normals[0].Normalize(); m_normals[1].x = -(m_normals[0].x); m_normals[1].y = -(m_normals[0].y); } override public function TestPoint(_arg1:b2Transform, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local10:Number; var _local4:b2Mat22 = _arg1.R; var _local5:Number = (_arg2.x - _arg1.position.x); var _local6:Number = (_arg2.y - _arg1.position.y); var _local7:Number = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); var _local8:Number = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); var _local9:int; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } override public function RayCast(_arg1:b2RayCastOutput, _arg2:b2RayCastInput, _arg3:b2Transform):Boolean{ var _local6:Number; var _local7:Number; var _local8:b2Mat22; var _local9:b2Vec2; var _local18:Number; var _local19:Number; var _local4:Number = 0; var _local5:Number = _arg2.maxFraction; _local6 = (_arg2.p1.x - _arg3.position.x); _local7 = (_arg2.p1.y - _arg3.position.y); _local8 = _arg3.R; var _local10:Number = ((_local6 * _local8.col1.x) + (_local7 * _local8.col1.y)); var _local11:Number = ((_local6 * _local8.col2.x) + (_local7 * _local8.col2.y)); _local6 = (_arg2.p2.x - _arg3.position.x); _local7 = (_arg2.p2.y - _arg3.position.y); _local8 = _arg3.R; var _local12:Number = ((_local6 * _local8.col1.x) + (_local7 * _local8.col1.y)); var _local13:Number = ((_local6 * _local8.col2.x) + (_local7 * _local8.col2.y)); var _local14:Number = (_local12 - _local10); var _local15:Number = (_local13 - _local11); var _local16 = -1; var _local17:int; while (_local17 < m_vertexCount) { _local9 = m_vertices[_local17]; _local6 = (_local9.x - _local10); _local7 = (_local9.y - _local11); _local9 = m_normals[_local17]; _local18 = ((_local9.x * _local6) + (_local9.y * _local7)); _local19 = ((_local9.x * _local14) + (_local9.y * _local15)); if (_local19 == 0){ if (_local18 < 0){ return (false); }; } else { if ((((_local19 < 0)) && ((_local18 < (_local4 * _local19))))){ _local4 = (_local18 / _local19); _local16 = _local17; } else { if ((((_local19 > 0)) && ((_local18 < (_local5 * _local19))))){ _local5 = (_local18 / _local19); }; }; }; if (_local5 < (_local4 - Number.MIN_VALUE)){ return (false); }; _local17++; }; if (_local16 >= 0){ _arg1.fraction = _local4; _local8 = _arg3.R; _local9 = m_normals[_local16]; _arg1.normal.x = ((_local8.col1.x * _local9.x) + (_local8.col2.x * _local9.y)); _arg1.normal.y = ((_local8.col1.y * _local9.x) + (_local8.col2.y * _local9.y)); return (true); }; return (false); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2Transform):void{ var _local10:Number; var _local11:Number; var _local3:b2Mat22 = _arg2.R; var _local4:b2Vec2 = m_vertices[0]; var _local5:Number = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); var _local6:Number = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); var _local7:Number = _local5; var _local8:Number = _local6; var _local9 = 1; while (_local9 < m_vertexCount) { _local4 = m_vertices[_local9]; _local10 = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); _local11 = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _local5 = ((_local5 < _local10)) ? _local5 : _local10; _local6 = ((_local6 < _local11)) ? _local6 : _local11; _local7 = ((_local7 > _local10)) ? _local7 : _local10; _local8 = ((_local8 > _local11)) ? _local8 : _local11; _local9++; }; _arg1.lowerBound.x = (_local5 - m_radius); _arg1.lowerBound.y = (_local6 - m_radius); _arg1.upperBound.x = (_local7 + m_radius); _arg1.upperBound.y = (_local8 + m_radius); } override public function ComputeMass(_arg1:b2MassData, _arg2:Number):void{ var _local11:b2Vec2; var _local12:b2Vec2; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; if (m_vertexCount == 2){ _arg1.center.x = (0.5 * (m_vertices[0].x + m_vertices[1].x)); _arg1.center.y = (0.5 * (m_vertices[0].y + m_vertices[1].y)); _arg1.mass = 0; _arg1.I = 0; return; }; var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; var _local7:Number = 0; var _local8:Number = 0; var _local9:Number = (1 / 3); var _local10:int; while (_local10 < m_vertexCount) { _local11 = m_vertices[_local10]; _local12 = (((_local10 + 1) < m_vertexCount)) ? m_vertices[int((_local10 + 1))] : m_vertices[0]; _local13 = (_local11.x - _local7); _local14 = (_local11.y - _local8); _local15 = (_local12.x - _local7); _local16 = (_local12.y - _local8); _local17 = ((_local13 * _local16) - (_local14 * _local15)); _local18 = (0.5 * _local17); _local5 = (_local5 + _local18); _local3 = (_local3 + ((_local18 * _local9) * ((_local7 + _local11.x) + _local12.x))); _local4 = (_local4 + ((_local18 * _local9) * ((_local8 + _local11.y) + _local12.y))); _local19 = _local7; _local20 = _local8; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = _local16; _local25 = ((_local9 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local26 = ((_local9 * ((0.25 * (((_local22 * _local22) + (_local24 * _local22)) + (_local24 * _local24))) + ((_local20 * _local22) + (_local20 * _local24)))) + ((0.5 * _local20) * _local20)); _local6 = (_local6 + (_local17 * (_local25 + _local26))); _local10++; }; _arg1.mass = (_arg2 * _local5); _local3 = (_local3 * (1 / _local5)); _local4 = (_local4 * (1 / _local5)); _arg1.center.Set(_local3, _local4); _arg1.I = (_arg2 * _local6); } override public function ComputeSubmergedArea(_arg1:b2Vec2, _arg2:Number, _arg3:b2Transform, _arg4:b2Vec2):Number{ var _local12:int; var _local22:b2Vec2; var _local23:Boolean; var _local24:b2MassData; var _local25:Number; var _local5:b2Vec2 = b2Math.MulTMV(_arg3.R, _arg1); var _local6:Number = (_arg2 - b2Math.Dot(_arg1, _arg3.position)); var _local7:Array = new Array(); var _local8:int; var _local9 = -1; var _local10 = -1; var _local11:Boolean; _local12 = 0; while (_local12 < m_vertexCount) { _local7[_local12] = (b2Math.Dot(_local5, m_vertices[_local12]) - _local6); _local23 = (_local7[_local12] < -(Number.MIN_VALUE)); if (_local12 > 0){ if (_local23){ if (!_local11){ _local9 = (_local12 - 1); _local8++; }; } else { if (_local11){ _local10 = (_local12 - 1); _local8++; }; }; }; _local11 = _local23; _local12++; }; switch (_local8){ case 0: if (_local11){ _local24 = new b2MassData(); ComputeMass(_local24, 1); _arg4.SetV(b2Math.MulX(_arg3, _local24.center)); return (_local24.mass); }; return (0); case 1: if (_local9 == -1){ _local9 = (m_vertexCount - 1); } else { _local10 = (m_vertexCount - 1); }; break; }; var _local13:int = ((_local9 + 1) % m_vertexCount); var _local14:int = ((_local10 + 1) % m_vertexCount); var _local15:Number = ((0 - _local7[_local9]) / (_local7[_local13] - _local7[_local9])); var _local16:Number = ((0 - _local7[_local10]) / (_local7[_local14] - _local7[_local10])); var _local17:b2Vec2 = new b2Vec2(((m_vertices[_local9].x * (1 - _local15)) + (m_vertices[_local13].x * _local15)), ((m_vertices[_local9].y * (1 - _local15)) + (m_vertices[_local13].y * _local15))); var _local18:b2Vec2 = new b2Vec2(((m_vertices[_local10].x * (1 - _local16)) + (m_vertices[_local14].x * _local16)), ((m_vertices[_local10].y * (1 - _local16)) + (m_vertices[_local14].y * _local16))); var _local19:Number = 0; var _local20:b2Vec2 = new b2Vec2(); var _local21:b2Vec2 = m_vertices[_local13]; _local12 = _local13; while (_local12 != _local14) { _local12 = ((_local12 + 1) % m_vertexCount); if (_local12 == _local14){ _local22 = _local18; } else { _local22 = m_vertices[_local12]; }; _local25 = (0.5 * (((_local21.x - _local17.x) * (_local22.y - _local17.y)) - ((_local21.y - _local17.y) * (_local22.x - _local17.x)))); _local19 = (_local19 + _local25); _local20.x = (_local20.x + ((_local25 * ((_local17.x + _local21.x) + _local22.x)) / 3)); _local20.y = (_local20.y + ((_local25 * ((_local17.y + _local21.y) + _local22.y)) / 3)); _local21 = _local22; }; _local20.Multiply((1 / _local19)); _arg4.SetV(b2Math.MulX(_arg3, _local20)); return (_local19); } public function GetVertexCount():int{ return (m_vertexCount); } public function GetVertices():Array{ return (m_vertices); } public function GetNormals():Array{ return (m_normals); } public function GetSupport(_arg1:b2Vec2):int{ var _local5:Number; var _local2:int; var _local3:Number = ((m_vertices[0].x * _arg1.x) + (m_vertices[0].y * _arg1.y)); var _local4 = 1; while (_local4 < m_vertexCount) { _local5 = ((m_vertices[_local4].x * _arg1.x) + (m_vertices[_local4].y * _arg1.y)); if (_local5 > _local3){ _local2 = _local4; _local3 = _local5; }; _local4++; }; return (_local2); } public function GetSupportVertex(_arg1:b2Vec2):b2Vec2{ var _local5:Number; var _local2:int; var _local3:Number = ((m_vertices[0].x * _arg1.x) + (m_vertices[0].y * _arg1.y)); var _local4 = 1; while (_local4 < m_vertexCount) { _local5 = ((m_vertices[_local4].x * _arg1.x) + (m_vertices[_local4].y * _arg1.y)); if (_local5 > _local3){ _local2 = _local4; _local3 = _local5; }; _local4++; }; return (m_vertices[_local2]); } private function Validate():Boolean{ return (false); } private function Reserve(_arg1:int):void{ var _local2:int = m_vertices.length; while (_local2 < _arg1) { m_vertices[_local2] = new b2Vec2(); m_normals[_local2] = new b2Vec2(); _local2++; }; } public static function AsArray(_arg1:Array, _arg2:Number):b2PolygonShape{ var _local3:b2PolygonShape = new (b2PolygonShape); _local3.SetAsArray(_arg1, _arg2); return (_local3); } public static function AsVector(_arg1:Array, _arg2:Number):b2PolygonShape{ var _local3:b2PolygonShape = new (b2PolygonShape); _local3.SetAsVector(_arg1, _arg2); return (_local3); } public static function AsBox(_arg1:Number, _arg2:Number):b2PolygonShape{ var _local3:b2PolygonShape = new (b2PolygonShape); _local3.SetAsBox(_arg1, _arg2); return (_local3); } public static function AsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):b2PolygonShape{ var _local5:b2PolygonShape = new (b2PolygonShape); _local5.SetAsOrientedBox(_arg1, _arg2, _arg3, _arg4); return (_local5); } public static function AsEdge(_arg1:b2Vec2, _arg2:b2Vec2):b2PolygonShape{ var _local3:b2PolygonShape = new (b2PolygonShape); _local3.SetAsEdge(_arg1, _arg2); return (_local3); } public static function ComputeCentroid(_arg1:Array, _arg2:uint):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); } b2internal 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((_arg3 + 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 5
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Shape { b2internal var m_type:int; b2internal var m_radius:Number; b2internal static const e_unknownShape:int = -1; b2internal static const e_circleShape:int = 0; b2internal static const e_polygonShape:int = 1; b2internal static const e_edgeShape:int = 2; b2internal static const e_shapeTypeCount:int = 3; public static const e_hitCollide:int = 1; public static const e_missCollide:int = 0; public static const e_startsInsideCollide:int = -1; public function b2Shape(){ m_type = e_unknownShape; m_radius = b2Settings.b2_linearSlop; } public function Copy():b2Shape{ return (null); } public function Set(_arg1:b2Shape):void{ m_radius = _arg1.m_radius; } public function GetType():int{ return (m_type); } public function TestPoint(_arg1:b2Transform, _arg2:b2Vec2):Boolean{ return (false); } public function RayCast(_arg1:b2RayCastOutput, _arg2:b2RayCastInput, _arg3:b2Transform):Boolean{ return (false); } public function ComputeAABB(_arg1:b2AABB, _arg2:b2Transform):void{ } public function ComputeMass(_arg1:b2MassData, _arg2:Number):void{ } public function ComputeSubmergedArea(_arg1:b2Vec2, _arg2:Number, _arg3:b2Transform, _arg4:b2Vec2):Number{ return (0); } public static function TestOverlap(_arg1:b2Shape, _arg2:b2Transform, _arg3:b2Shape, _arg4:b2Transform):Boolean{ var _local5:b2DistanceInput = new b2DistanceInput(); _local5.proxyA = new b2DistanceProxy(); _local5.proxyA.Set(_arg1); _local5.proxyB = new b2DistanceProxy(); _local5.proxyB.Set(_arg3); _local5.transformA = _arg2; _local5.transformB = _arg4; _local5.useRadii = true; var _local6:b2SimplexCache = new b2SimplexCache(); _local6.count = 0; var _local7:b2DistanceOutput = new b2DistanceOutput(); b2Distance.Distance(_local7, _local6, _local5); return ((_local7.distance < (10 * Number.MIN_VALUE))); } } }//package Box2D.Collision.Shapes
Section 6
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var lowerBound:b2Vec2; public var upperBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number = (upperBound.x - lowerBound.x); var _local2:Number = (upperBound.y - lowerBound.y); var _local3:Boolean = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } public function GetCenter():b2Vec2{ return (new b2Vec2(((lowerBound.x + upperBound.x) / 2), ((lowerBound.y + upperBound.y) / 2))); } public function GetExtents():b2Vec2{ return (new b2Vec2(((upperBound.x - lowerBound.x) / 2), ((upperBound.y - lowerBound.y) / 2))); } public function Contains(_arg1:b2AABB):Boolean{ var _local2:Boolean; _local2 = ((_local2) && ((lowerBound.x <= _arg1.lowerBound.x))); _local2 = ((_local2) && ((lowerBound.y <= _arg1.lowerBound.y))); _local2 = ((_local2) && ((_arg1.upperBound.x <= upperBound.x))); _local2 = ((_local2) && ((_arg1.upperBound.y <= upperBound.y))); return (_local2); } public function RayCast(_arg1:b2RayCastOutput, _arg2:b2RayCastInput):Boolean{ var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local3:Number = -(Number.MAX_VALUE); var _local4:Number = Number.MAX_VALUE; var _local5:Number = _arg2.p1.x; var _local6:Number = _arg2.p1.y; var _local7:Number = (_arg2.p2.x - _arg2.p1.x); var _local8:Number = (_arg2.p2.y - _arg2.p1.y); var _local9:Number = Math.abs(_local7); var _local10:Number = Math.abs(_local8); _local11 = _arg1.normal; if (_local9 < Number.MIN_VALUE){ if ((((_local5 < lowerBound.x)) || ((upperBound.x < _local5)))){ return (false); }; } else { _local12 = (1 / _local7); _local13 = ((lowerBound.x - _local5) * _local12); _local14 = ((upperBound.x - _local5) * _local12); _local16 = -1; if (_local13 > _local14){ _local15 = _local13; _local13 = _local14; _local14 = _local15; _local16 = 1; }; if (_local13 > _local3){ _local11.x = _local16; _local11.y = 0; _local3 = _local13; }; _local4 = Math.min(_local4, _local14); if (_local3 > _local4){ return (false); }; }; if (_local10 < Number.MIN_VALUE){ if ((((_local6 < lowerBound.y)) || ((upperBound.y < _local6)))){ return (false); }; } else { _local12 = (1 / _local8); _local13 = ((lowerBound.y - _local6) * _local12); _local14 = ((upperBound.y - _local6) * _local12); _local16 = -1; if (_local13 > _local14){ _local15 = _local13; _local13 = _local14; _local14 = _local15; _local16 = 1; }; if (_local13 > _local3){ _local11.y = _local16; _local11.x = 0; _local3 = _local13; }; _local4 = Math.min(_local4, _local14); if (_local3 > _local4){ return (false); }; }; _arg1.fraction = _local3; return (true); } public function TestOverlap(_arg1:b2AABB):Boolean{ var _local2:Number = (_arg1.lowerBound.x - upperBound.x); var _local3:Number = (_arg1.lowerBound.y - upperBound.y); var _local4:Number = (lowerBound.x - _arg1.upperBound.x); var _local5:Number = (lowerBound.y - _arg1.upperBound.y); if ((((_local2 > 0)) || ((_local3 > 0)))){ return (false); }; if ((((_local4 > 0)) || ((_local5 > 0)))){ return (false); }; return (true); } public function Combine(_arg1:b2AABB, _arg2:b2AABB):void{ lowerBound.x = Math.min(_arg1.lowerBound.x, _arg2.lowerBound.x); lowerBound.y = Math.min(_arg1.lowerBound.y, _arg2.lowerBound.y); upperBound.x = Math.max(_arg1.upperBound.x, _arg2.upperBound.x); upperBound.y = Math.max(_arg1.upperBound.y, _arg2.upperBound.y); } public static function Combine(_arg1:b2AABB, _arg2:b2AABB):b2AABB{ var _local3:b2AABB = new (b2AABB); _local3.Combine(_arg1, _arg2); return (_local3); } } }//package Box2D.Collision
Section 7
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var s_incidentEdge:Array = MakeClipPointVector(); private static var s_clipPoints1:Array = MakeClipPointVector(); private static var s_clipPoints2:Array = MakeClipPointVector(); private static var s_edgeAO:Array = new Array(1); private static var s_edgeBO:Array = new Array(1); private static var s_localTangent:b2Vec2 = new b2Vec2(); private static var s_localNormal:b2Vec2 = new b2Vec2(); private static var s_planePoint:b2Vec2 = new b2Vec2(); private static var s_normal:b2Vec2 = new b2Vec2(); private static var s_tangent:b2Vec2 = new b2Vec2(); private static var s_tangent2:b2Vec2 = new b2Vec2(); private static var s_v11:b2Vec2 = new b2Vec2(); private static var s_v12:b2Vec2 = new b2Vec2(); private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local9:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; var _local8:b2Vec2 = _local5.v; _local9 = (((_arg3.x * _local7.x) + (_arg3.y * _local7.y)) - _arg4); var _local10:Number = (((_arg3.x * _local8.x) + (_arg3.y * _local8.y)) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); _arg1[_temp1].Set(_arg2[0]); }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _arg1[_temp2].Set(_arg2[1]); }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2Transform, _arg3:int, _arg4:b2PolygonShape, _arg5:b2Transform):Number{ var _local11:b2Mat22; var _local12:b2Vec2; var _local25:Number; var _local6:int = _arg1.m_vertexCount; var _local7:Array = _arg1.m_vertices; var _local8:Array = _arg1.m_normals; var _local9:int = _arg4.m_vertexCount; var _local10:Array = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; var _local13:Number = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); var _local14:Number = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; var _local15:Number = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); var _local16:Number = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; var _local20:Number = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local21:Number = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; var _local22:Number = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local23:Number = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); var _local24:Number = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2Transform, _arg4:b2PolygonShape, _arg5:b2Transform):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); var _local18:int = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); var _local19:Number = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); var _local20:int = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; var _local21:Number = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); 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 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2Transform, _arg4:int, _arg5:b2PolygonShape, _arg6:b2Transform):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; } private static function MakeClipPointVector():Array{ var _local1:Array = new Array(2); _local1[0] = new ClipVertex(); _local1[1] = new ClipVertex(); return (_local1); } public static function CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2Transform, _arg4:b2PolygonShape, _arg5:b2Transform):void{ var _local6:ClipVertex; var _local12:b2PolygonShape; var _local13:b2PolygonShape; var _local14:b2Transform; var _local15:b2Transform; var _local16:int; var _local17:uint; var _local20:b2Mat22; var _local25:b2Vec2; var _local39:int; var _local42:Number; var _local43:b2ManifoldPoint; var _local44:Number; var _local45:Number; _arg1.m_pointCount = 0; var _local7:Number = (_arg2.m_radius + _arg4.m_radius); var _local8:int; s_edgeAO[0] = _local8; var _local9:Number = FindMaxSeparation(s_edgeAO, _arg2, _arg3, _arg4, _arg5); _local8 = s_edgeAO[0]; if (_local9 > _local7){ return; }; var _local10:int; s_edgeBO[0] = _local10; var _local11:Number = FindMaxSeparation(s_edgeBO, _arg4, _arg5, _arg2, _arg3); _local10 = s_edgeBO[0]; if (_local11 > _local7){ return; }; var _local18:Number = 0.98; var _local19:Number = 0.001; if (_local11 > ((_local18 * _local9) + _local19)){ _local12 = _arg4; _local13 = _arg2; _local14 = _arg5; _local15 = _arg3; _local16 = _local10; _arg1.m_type = b2Manifold.e_faceB; _local17 = 1; } else { _local12 = _arg2; _local13 = _arg4; _local14 = _arg3; _local15 = _arg5; _local16 = _local8; _arg1.m_type = b2Manifold.e_faceA; _local17 = 0; }; var _local21:Array = s_incidentEdge; FindIncidentEdge(_local21, _local12, _local14, _local16, _local13, _local15); var _local22:int = _local12.m_vertexCount; var _local23:Array = _local12.m_vertices; var _local24:b2Vec2 = _local23[_local16]; if ((_local16 + 1) < _local22){ _local25 = _local23[int((_local16 + 1))]; } else { _local25 = _local23[0]; }; var _local26:b2Vec2 = s_localTangent; _local26.Set((_local25.x - _local24.x), (_local25.y - _local24.y)); _local26.Normalize(); var _local27:b2Vec2 = s_localNormal; _local27.x = _local26.y; _local27.y = -(_local26.x); var _local28:b2Vec2 = s_planePoint; _local28.Set((0.5 * (_local24.x + _local25.x)), (0.5 * (_local24.y + _local25.y))); var _local29:b2Vec2 = s_tangent; _local20 = _local14.R; _local29.x = ((_local20.col1.x * _local26.x) + (_local20.col2.x * _local26.y)); _local29.y = ((_local20.col1.y * _local26.x) + (_local20.col2.y * _local26.y)); var _local30:b2Vec2 = s_tangent2; _local30.x = -(_local29.x); _local30.y = -(_local29.y); var _local31:b2Vec2 = s_normal; _local31.x = _local29.y; _local31.y = -(_local29.x); var _local32:b2Vec2 = s_v11; var _local33:b2Vec2 = s_v12; _local32.x = (_local14.position.x + ((_local20.col1.x * _local24.x) + (_local20.col2.x * _local24.y))); _local32.y = (_local14.position.y + ((_local20.col1.y * _local24.x) + (_local20.col2.y * _local24.y))); _local33.x = (_local14.position.x + ((_local20.col1.x * _local25.x) + (_local20.col2.x * _local25.y))); _local33.y = (_local14.position.y + ((_local20.col1.y * _local25.x) + (_local20.col2.y * _local25.y))); var _local34:Number = ((_local31.x * _local32.x) + (_local31.y * _local32.y)); var _local35:Number = (((-(_local29.x) * _local32.x) - (_local29.y * _local32.y)) + _local7); var _local36:Number = (((_local29.x * _local33.x) + (_local29.y * _local33.y)) + _local7); var _local37:Array = s_clipPoints1; var _local38:Array = s_clipPoints2; _local39 = ClipSegmentToLine(_local37, _local21, _local30, _local35); if (_local39 < 2){ return; }; _local39 = ClipSegmentToLine(_local38, _local37, _local29, _local36); if (_local39 < 2){ return; }; _arg1.m_localPlaneNormal.SetV(_local27); _arg1.m_localPoint.SetV(_local28); var _local40:int; var _local41:int; while (_local41 < b2Settings.b2_maxManifoldPoints) { _local6 = _local38[_local41]; _local42 = (((_local31.x * _local6.v.x) + (_local31.y * _local6.v.y)) - _local34); if (_local42 <= _local7){ _local43 = _arg1.m_points[_local40]; _local20 = _local15.R; _local44 = (_local6.v.x - _local15.position.x); _local45 = (_local6.v.y - _local15.position.y); _local43.m_localPoint.x = ((_local44 * _local20.col1.x) + (_local45 * _local20.col1.y)); _local43.m_localPoint.y = ((_local44 * _local20.col2.x) + (_local45 * _local20.col2.y)); _local43.m_id.Set(_local6.id); _local43.m_id.features.flip = _local17; _local40++; }; _local41++; }; _arg1.m_pointCount = _local40; } public static function CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2Transform, _arg4:b2CircleShape, _arg5:b2Transform):void{ var _local6:b2Mat22; var _local7:b2Vec2; _arg1.m_pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_p; 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_p; 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 + _arg4.m_radius); if (_local14 > (_local15 * _local15)){ return; }; _arg1.m_type = b2Manifold.e_circles; _arg1.m_localPoint.SetV(_arg2.m_p); _arg1.m_localPlaneNormal.SetZero(); _arg1.m_pointCount = 1; _arg1.m_points[0].m_localPoint.SetV(_arg4.m_p); _arg1.m_points[0].m_id.key = 0; } public static function CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2Transform, _arg4:b2CircleShape, _arg5:b2Transform):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 _local31:Number; var _local32:Number; var _local33:Number; _arg1.m_pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_p; 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 = (_arg2.m_radius + _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]; _local31 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local31 > _local20){ return; }; if (_local31 > _local19){ _local19 = _local31; _local18 = _local24; }; _local24++; }; var _local25:int = _local18; var _local26:int = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; var _local27:b2Vec2 = _local22[_local25]; var _local28:b2Vec2 = _local22[_local26]; if (_local19 < Number.MIN_VALUE){ _arg1.m_pointCount = 1; _arg1.m_type = b2Manifold.e_faceA; _arg1.m_localPlaneNormal.SetV(_local23[_local18]); _arg1.m_localPoint.x = (0.5 * (_local27.x + _local28.x)); _arg1.m_localPoint.y = (0.5 * (_local27.y + _local28.y)); _arg1.m_points[0].m_localPoint.SetV(_arg4.m_p); _arg1.m_points[0].m_id.key = 0; return; }; var _local29:Number = (((_local15 - _local27.x) * (_local28.x - _local27.x)) + ((_local16 - _local27.y) * (_local28.y - _local27.y))); var _local30:Number = (((_local15 - _local28.x) * (_local27.x - _local28.x)) + ((_local16 - _local28.y) * (_local27.y - _local28.y))); if (_local29 <= 0){ if ((((_local15 - _local27.x) * (_local15 - _local27.x)) + ((_local16 - _local27.y) * (_local16 - _local27.y))) > (_local20 * _local20)){ return; }; _arg1.m_pointCount = 1; _arg1.m_type = b2Manifold.e_faceA; _arg1.m_localPlaneNormal.x = (_local15 - _local27.x); _arg1.m_localPlaneNormal.y = (_local16 - _local27.y); _arg1.m_localPlaneNormal.Normalize(); _arg1.m_localPoint.SetV(_local27); _arg1.m_points[0].m_localPoint.SetV(_arg4.m_p); _arg1.m_points[0].m_id.key = 0; } else { if (_local30 <= 0){ if ((((_local15 - _local28.x) * (_local15 - _local28.x)) + ((_local16 - _local28.y) * (_local16 - _local28.y))) > (_local20 * _local20)){ return; }; _arg1.m_pointCount = 1; _arg1.m_type = b2Manifold.e_faceA; _arg1.m_localPlaneNormal.x = (_local15 - _local28.x); _arg1.m_localPlaneNormal.y = (_local16 - _local28.y); _arg1.m_localPlaneNormal.Normalize(); _arg1.m_localPoint.SetV(_local28); _arg1.m_points[0].m_localPoint.SetV(_arg4.m_p); _arg1.m_points[0].m_id.key = 0; } else { _local32 = (0.5 * (_local27.x + _local28.x)); _local33 = (0.5 * (_local27.y + _local28.y)); _local19 = (((_local15 - _local32) * _local23[_local25].x) + ((_local16 - _local33) * _local23[_local25].y)); if (_local19 > _local20){ return; }; _arg1.m_pointCount = 1; _arg1.m_type = b2Manifold.e_faceA; _arg1.m_localPlaneNormal.x = _local23[_local25].x; _arg1.m_localPlaneNormal.y = _local23[_local25].y; _arg1.m_localPlaneNormal.Normalize(); _arg1.m_localPoint.Set(_local32, _local33); _arg1.m_points[0].m_localPoint.SetV(_arg4.m_p); _arg1.m_points[0].m_id.key = 0; }; }; } public static function TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2 = _arg2.lowerBound; var _local4:b2Vec2 = _arg1.upperBound; var _local5:Number = (_local3.x - _local4.x); var _local6:Number = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; var _local7:Number = (_local3.x - _local4.x); var _local8:Number = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } } }//package Box2D.Collision
Section 8
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { import Box2D.Common.*; public class b2ContactID { public var features:Features; b2internal var _key:uint; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID = new b2ContactID(); _local1.key = key; return (_local1); } public function get key():uint{ return (_key); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } } }//package Box2D.Collision
Section 9
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2ContactPoint { public var shape1:b2Shape; public var shape2:b2Shape; public var position:b2Vec2; public var velocity:b2Vec2; public var normal:b2Vec2; public var separation:Number; public var friction:Number; public var restitution:Number; public var id:b2ContactID; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 10
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Distance { private static var b2_gjkCalls:int; private static var b2_gjkIters:int; private static var b2_gjkMaxIters:int; private static var s_simplex:b2Simplex = new b2Simplex(); private static var s_saveA:Array = new Array(3); private static var s_saveB:Array = new Array(3); public static function Distance(_arg1:b2DistanceOutput, _arg2:b2SimplexCache, _arg3:b2DistanceInput):void{ var _local17:int; var _local18:b2Vec2; var _local20:b2Vec2; var _local21:b2SimplexVertex; var _local22:Boolean; var _local23:Number; var _local24:Number; var _local25:b2Vec2; b2_gjkCalls++; var _local4:b2DistanceProxy = _arg3.proxyA; var _local5:b2DistanceProxy = _arg3.proxyB; var _local6:b2Transform = _arg3.transformA; var _local7:b2Transform = _arg3.transformB; var _local8:b2Simplex = s_simplex; _local8.ReadCache(_arg2, _local4, _local6, _local5, _local7); var _local9:Array = _local8.m_vertices; var _local10 = 20; var _local11:Array = s_saveA; var _local12:Array = s_saveB; var _local13:int; var _local14:b2Vec2 = _local8.GetClosestPoint(); var _local15:Number = _local14.LengthSquared(); var _local16:Number = _local15; var _local19:int; while (_local19 < _local10) { _local13 = _local8.m_count; _local17 = 0; while (_local17 < _local13) { _local11[_local17] = _local9[_local17].indexA; _local12[_local17] = _local9[_local17].indexB; _local17++; }; switch (_local8.m_count){ case 1: break; case 2: _local8.Solve2(); break; case 3: _local8.Solve3(); break; default: b2Settings.b2Assert(false); }; if (_local8.m_count == 3){ break; }; _local18 = _local8.GetClosestPoint(); _local16 = _local18.LengthSquared(); if (_local16 > _local15){ }; _local15 = _local16; _local20 = _local8.GetSearchDirection(); if (_local20.LengthSquared() < (Number.MIN_VALUE * Number.MIN_VALUE)){ break; }; _local21 = _local9[_local8.m_count]; _local21.indexA = _local4.GetSupport(b2Math.MulTMV(_local6.R, _local20.GetNegative())); _local21.wA = b2Math.MulX(_local6, _local4.GetVertex(_local21.indexA)); _local21.indexB = _local5.GetSupport(b2Math.MulTMV(_local7.R, _local20)); _local21.wB = b2Math.MulX(_local7, _local5.GetVertex(_local21.indexB)); _local21.w = b2Math.SubtractVV(_local21.wB, _local21.wA); _local19++; b2_gjkIters++; _local22 = false; _local17 = 0; while (_local17 < _local13) { if ((((_local21.indexA == _local11[_local17])) && ((_local21.indexB == _local12[_local17])))){ _local22 = true; break; }; _local17++; }; if (_local22){ break; }; _local8.m_count++; }; b2_gjkMaxIters = b2Math.Max(b2_gjkMaxIters, _local19); _local8.GetWitnessPoints(_arg1.pointA, _arg1.pointB); _arg1.distance = b2Math.SubtractVV(_arg1.pointA, _arg1.pointB).Length(); _arg1.iterations = _local19; _local8.WriteCache(_arg2); if (_arg3.useRadii){ _local23 = _local4.m_radius; _local24 = _local5.m_radius; if ((((_arg1.distance > (_local23 + _local24))) && ((_arg1.distance > Number.MIN_VALUE)))){ _arg1.distance = (_arg1.distance - (_local23 + _local24)); _local25 = b2Math.SubtractVV(_arg1.pointB, _arg1.pointA); _local25.Normalize(); _arg1.pointA.x = (_arg1.pointA.x + (_local23 * _local25.x)); _arg1.pointA.y = (_arg1.pointA.y + (_local23 * _local25.y)); _arg1.pointB.x = (_arg1.pointB.x - (_local24 * _local25.x)); _arg1.pointB.y = (_arg1.pointB.y - (_local24 * _local25.y)); } else { _local18 = new b2Vec2(); _local18.x = (0.5 * (_arg1.pointA.x + _arg1.pointB.x)); _local18.y = (0.5 * (_arg1.pointA.y + _arg1.pointB.y)); _arg1.pointA.x = (_arg1.pointB.x = _local18.x); _arg1.pointA.y = (_arg1.pointB.y = _local18.y); _arg1.distance = 0; }; }; } } }//package Box2D.Collision
Section 11
//b2DistanceInput (Box2D.Collision.b2DistanceInput) package Box2D.Collision { import Box2D.Common.Math.*; public class b2DistanceInput { public var proxyA:b2DistanceProxy; public var proxyB:b2DistanceProxy; public var transformA:b2Transform; public var transformB:b2Transform; public var useRadii:Boolean; } }//package Box2D.Collision
Section 12
//b2DistanceOutput (Box2D.Collision.b2DistanceOutput) package Box2D.Collision { import Box2D.Common.Math.*; public class b2DistanceOutput { public var pointA:b2Vec2; public var pointB:b2Vec2; public var distance:Number; public var iterations:int; public function b2DistanceOutput(){ pointA = new b2Vec2(); pointB = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 13
//b2DistanceProxy (Box2D.Collision.b2DistanceProxy) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2DistanceProxy { public var m_vertices:Array; public var m_count:int; public var m_radius:Number; public function Set(_arg1:b2Shape):void{ var _local2:b2CircleShape; var _local3:b2PolygonShape; switch (_arg1.GetType()){ case b2Shape.e_circleShape: _local2 = (_arg1 as b2CircleShape); m_vertices = new Array(1, true); m_vertices[0] = _local2.m_p; m_count = 1; m_radius = _local2.m_radius; break; case b2Shape.e_polygonShape: _local3 = (_arg1 as b2PolygonShape); m_vertices = _local3.m_vertices; m_count = _local3.m_vertexCount; m_radius = _local3.m_radius; break; default: b2Settings.b2Assert(false); }; } public function GetSupport(_arg1:b2Vec2):Number{ var _local5:Number; var _local2:int; var _local3:Number = ((m_vertices[0].x * _arg1.x) + (m_vertices[0].y * _arg1.y)); var _local4 = 1; while (_local4 < m_count) { _local5 = ((m_vertices[_local4].x * _arg1.x) + (m_vertices[_local4].y * _arg1.y)); if (_local5 > _local3){ _local2 = _local4; _local3 = _local5; }; _local4++; }; return (_local2); } public function GetSupportVertex(_arg1:b2Vec2):b2Vec2{ var _local5:Number; var _local2:int; var _local3:Number = ((m_vertices[0].x * _arg1.x) + (m_vertices[0].y * _arg1.y)); var _local4 = 1; while (_local4 < m_count) { _local5 = ((m_vertices[_local4].x * _arg1.x) + (m_vertices[_local4].y * _arg1.y)); if (_local5 > _local3){ _local2 = _local4; _local3 = _local5; }; _local4++; }; return (m_vertices[_local2]); } public function GetVertexCount():int{ return (m_count); } public function GetVertex(_arg1:int):b2Vec2{ b2Settings.b2Assert((((0 <= _arg1)) && ((_arg1 < m_count)))); return (m_vertices[_arg1]); } } }//package Box2D.Collision
Section 14
//b2DynamicTree (Box2D.Collision.b2DynamicTree) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2DynamicTree { private var m_root:b2DynamicTreeNode; private var m_freeList:b2DynamicTreeNode; private var m_path:uint; private var m_insertionCount:int; public function b2DynamicTree(){ m_root = null; m_freeList = null; m_path = 0; m_insertionCount = 0; } public function CreateProxy(_arg1:b2AABB, _arg2):b2DynamicTreeNode{ var _local3:b2DynamicTreeNode; var _local4:Number; var _local5:Number; _local3 = AllocateNode(); _local4 = b2Settings.b2_aabbExtension; _local5 = b2Settings.b2_aabbExtension; _local3.aabb.lowerBound.x = (_arg1.lowerBound.x - _local4); _local3.aabb.lowerBound.y = (_arg1.lowerBound.y - _local5); _local3.aabb.upperBound.x = (_arg1.upperBound.x + _local4); _local3.aabb.upperBound.y = (_arg1.upperBound.y + _local5); _local3.userData = _arg2; InsertLeaf(_local3); return (_local3); } public function DestroyProxy(_arg1:b2DynamicTreeNode):void{ RemoveLeaf(_arg1); FreeNode(_arg1); } public function MoveProxy(_arg1:b2DynamicTreeNode, _arg2:b2AABB, _arg3:b2Vec2):Boolean{ var _local4:Number; var _local5:Number; b2Settings.b2Assert(_arg1.IsLeaf()); if (_arg1.aabb.Contains(_arg2)){ return (false); }; RemoveLeaf(_arg1); _local4 = (b2Settings.b2_aabbExtension + (b2Settings.b2_aabbMultiplier * ((_arg3.x > 0)) ? _arg3.x : -(_arg3.x))); _local5 = (b2Settings.b2_aabbExtension + (b2Settings.b2_aabbMultiplier * ((_arg3.y > 0)) ? _arg3.y : -(_arg3.y))); _arg1.aabb.lowerBound.x = (_arg2.lowerBound.x - _local4); _arg1.aabb.lowerBound.y = (_arg2.lowerBound.y - _local5); _arg1.aabb.upperBound.x = (_arg2.upperBound.x + _local4); _arg1.aabb.upperBound.y = (_arg2.upperBound.y + _local5); InsertLeaf(_arg1); return (true); } public function Rebalance(_arg1:int):void{ var _local3:b2DynamicTreeNode; var _local4:uint; if (m_root == null){ return; }; var _local2:int; while (_local2 < _arg1) { _local3 = m_root; _local4 = 0; while (_local3.IsLeaf() == false) { _local3 = (((m_path >> _local4) & 1)) ? _local3.child2 : _local3.child1; _local4 = ((_local4 + 1) & 31); }; m_path++; RemoveLeaf(_local3); InsertLeaf(_local3); _local2++; }; } public function GetFatAABB(_arg1:b2DynamicTreeNode):b2AABB{ return (_arg1.aabb); } public function GetUserData(_arg1:b2DynamicTreeNode){ return (_arg1.userData); } public function Query(_arg1:Function, _arg2:b2AABB):void{ var _local5:b2DynamicTreeNode; var _local6:Boolean; if (m_root == null){ return; }; var _local3:Array = new Array(); var _local4:int; var _temp1 = _local4; _local4 = (_local4 + 1); var _local7 = _temp1; _local3[_local7] = m_root; while (_local4 > 0) { --_local4; _local5 = _local3[_local4]; if (_local5.aabb.TestOverlap(_arg2)){ if (_local5.IsLeaf()){ _local6 = _arg1(_local5); if (!_local6){ return; }; } else { var _temp2 = _local4; _local4 = (_local4 + 1); var _local8 = _temp2; _local3[_local8] = _local5.child1; var _temp3 = _local4; _local4 = (_local4 + 1); var _local9 = _temp3; _local3[_local9] = _local5.child2; }; }; }; } public function RayCast(_arg1:Function, _arg2:b2RayCastInput):void{ var _local3:b2Vec2; var _local9:b2AABB; var _local10:Number; var _local11:Number; var _local14:b2DynamicTreeNode; var _local15:b2Vec2; var _local16:b2Vec2; var _local17:Number; var _local18:b2RayCastInput; if (m_root == null){ return; }; _local3 = _arg2.p1; var _local4:b2Vec2 = _arg2.p2; var _local5:b2Vec2 = b2Math.SubtractVV(_local3, _local4); _local5.Normalize(); var _local6:b2Vec2 = b2Math.CrossFV(1, _local5); var _local7:b2Vec2 = b2Math.AbsV(_local6); var _local8:Number = _arg2.maxFraction; _local9 = new b2AABB(); _local10 = (_local3.x + (_local8 * (_local4.x - _local3.x))); _local11 = (_local3.y + (_local8 * (_local4.y - _local3.y))); _local9.lowerBound.x = Math.min(_local3.x, _local10); _local9.lowerBound.y = Math.min(_local3.y, _local11); _local9.upperBound.x = Math.max(_local3.x, _local10); _local9.upperBound.y = Math.max(_local3.y, _local11); var _local12:Array = new Array(); var _local13:int; var _temp1 = _local13; _local13 = (_local13 + 1); var _local19 = _temp1; _local12[_local19] = m_root; while (_local13 > 0) { --_local13; _local14 = _local12[_local13]; if (_local14.aabb.TestOverlap(_local9) == false){ } else { _local15 = _local14.aabb.GetCenter(); _local16 = _local14.aabb.GetExtents(); _local17 = ((Math.abs(((_local6.x * (_local3.x - _local15.x)) + (_local6.y * (_local3.y - _local15.y)))) - (_local7.x * _local16.x)) - (_local7.y * _local16.y)); if (_local17 > 0){ } else { if (_local14.IsLeaf()){ _local18 = new b2RayCastInput(); _local18.p1 = _arg2.p1; _local18.p2 = _arg2.p2; _local18.maxFraction = _arg2.maxFraction; _local8 = _arg1(_local18, _local14); if (_local8 == 0){ return; }; _local10 = (_local3.x + (_local8 * (_local4.x - _local3.x))); _local11 = (_local3.y + (_local8 * (_local4.y - _local3.y))); _local9.lowerBound.x = Math.min(_local3.x, _local10); _local9.lowerBound.y = Math.min(_local3.y, _local11); _local9.upperBound.x = Math.max(_local3.x, _local10); _local9.upperBound.y = Math.max(_local3.y, _local11); } else { var _temp2 = _local13; _local13 = (_local13 + 1); var _local20 = _temp2; _local12[_local20] = _local14.child1; var _temp3 = _local13; _local13 = (_local13 + 1); var _local21 = _temp3; _local12[_local21] = _local14.child2; }; }; }; }; } private function AllocateNode():b2DynamicTreeNode{ var _local1:b2DynamicTreeNode; if (m_freeList){ _local1 = m_freeList; m_freeList = _local1.parent; _local1.parent = null; _local1.child1 = null; _local1.child2 = null; return (_local1); }; return (new b2DynamicTreeNode()); } private function FreeNode(_arg1:b2DynamicTreeNode):void{ _arg1.parent = m_freeList; m_freeList = _arg1; } private function InsertLeaf(_arg1:b2DynamicTreeNode):void{ var _local6:b2DynamicTreeNode; var _local7:b2DynamicTreeNode; var _local8:Number; var _local9:Number; m_insertionCount++; if (m_root == null){ m_root = _arg1; m_root.parent = null; return; }; var _local2:b2Vec2 = _arg1.aabb.GetCenter(); var _local3:b2DynamicTreeNode = m_root; if (_local3.IsLeaf() == false){ do { _local6 = _local3.child1; _local7 = _local3.child2; _local8 = (Math.abs((((_local6.aabb.lowerBound.x + _local6.aabb.upperBound.x) / 2) - _local2.x)) + Math.abs((((_local6.aabb.lowerBound.y + _local6.aabb.upperBound.y) / 2) - _local2.y))); _local9 = (Math.abs((((_local7.aabb.lowerBound.x + _local7.aabb.upperBound.x) / 2) - _local2.x)) + Math.abs((((_local7.aabb.lowerBound.y + _local7.aabb.upperBound.y) / 2) - _local2.y))); if (_local8 < _local9){ _local3 = _local6; } else { _local3 = _local7; }; } while (_local3.IsLeaf() == false); }; var _local4:b2DynamicTreeNode = _local3.parent; var _local5:b2DynamicTreeNode = AllocateNode(); _local5.parent = _local4; _local5.userData = null; _local5.aabb.Combine(_arg1.aabb, _local3.aabb); if (_local4){ if (_local3.parent.child1 == _local3){ _local4.child1 = _local5; } else { _local4.child2 = _local5; }; _local5.child1 = _local3; _local5.child2 = _arg1; _local3.parent = _local5; _arg1.parent = _local5; do { } while (!(_local4.aabb.Contains(_local5.aabb))); } else { _local5.child1 = _local3; _local5.child2 = _arg1; _local3.parent = _local5; _arg1.parent = _local5; m_root = _local5; }; } private function RemoveLeaf(_arg1:b2DynamicTreeNode):void{ var _local4:b2DynamicTreeNode; var _local5:b2AABB; if (_arg1 == m_root){ m_root = null; return; }; var _local2:b2DynamicTreeNode = _arg1.parent; var _local3:b2DynamicTreeNode = _local2.parent; if (_local2.child1 == _arg1){ _local4 = _local2.child2; } else { _local4 = _local2.child1; }; if (_local3){ if (_local3.child1 == _local2){ _local3.child1 = _local4; } else { _local3.child2 = _local4; }; _local4.parent = _local3; FreeNode(_local2); while (_local3) { _local5 = _local3.aabb; _local3.aabb = b2AABB.Combine(_local3.child1.aabb, _local3.child2.aabb); if (_local5.Contains(_local3.aabb)){ break; }; _local3 = _local3.parent; }; } else { m_root = _local4; _local4.parent = null; FreeNode(_local2); }; } } }//package Box2D.Collision
Section 15
//b2DynamicTreeBroadPhase (Box2D.Collision.b2DynamicTreeBroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; public class b2DynamicTreeBroadPhase implements IBroadPhase { private var m_tree:b2DynamicTree; private var m_proxyCount:int; private var m_moveBuffer:Array; private var m_pairBuffer:Array; private var m_pairCount:int;// = 0 public function b2DynamicTreeBroadPhase(){ m_tree = new b2DynamicTree(); m_moveBuffer = new Array(); m_pairBuffer = new Array(); super(); } public function CreateProxy(_arg1:b2AABB, _arg2){ var _local3:b2DynamicTreeNode = m_tree.CreateProxy(_arg1, _arg2); m_proxyCount++; BufferMove(_local3); return (_local3); } public function DestroyProxy(_arg1):void{ UnBufferMove(_arg1); m_proxyCount--; m_tree.DestroyProxy(_arg1); } public function MoveProxy(_arg1, _arg2:b2AABB, _arg3:b2Vec2):void{ var _local4:Boolean = m_tree.MoveProxy(_arg1, _arg2, _arg3); if (_local4){ BufferMove(_arg1); }; } public function TestOverlap(_arg1, _arg2):Boolean{ var _local3:b2AABB = m_tree.GetFatAABB(_arg1); var _local4:b2AABB = m_tree.GetFatAABB(_arg2); return (_local3.TestOverlap(_local4)); } public function GetUserData(_arg1){ return (m_tree.GetUserData(_arg1)); } public function GetFatAABB(_arg1):b2AABB{ return (m_tree.GetFatAABB(_arg1)); } public function GetProxyCount():int{ return (m_proxyCount); } public function UpdatePairs(_arg1:Function):void{ var queryProxy:b2DynamicTreeNode; var i:int; var fatAABB:b2AABB; var primaryPair:b2DynamicTreePair; var userDataA:*; var userDataB:*; var pair:b2DynamicTreePair; var callback = _arg1; m_pairCount = 0; for each (queryProxy in m_moveBuffer) { var QueryCallback:Function = function (_arg1:b2DynamicTreeNode):Boolean{ if (_arg1 == queryProxy){ return (true); }; if (m_pairCount == m_pairBuffer.length){ m_pairBuffer[m_pairCount] = new b2DynamicTreePair(); }; var _local2:b2DynamicTreePair = m_pairBuffer[m_pairCount]; _local2.proxyA = ((_arg1 < queryProxy)) ? _arg1 : queryProxy; _local2.proxyB = ((_arg1 >= queryProxy)) ? _arg1 : queryProxy; m_pairCount++; return (true); }; fatAABB = m_tree.GetFatAABB(queryProxy); m_tree.Query(QueryCallback, fatAABB); }; m_moveBuffer.length = 0; i = 0; while (i < m_pairCount) { primaryPair = m_pairBuffer[i]; userDataA = m_tree.GetUserData(primaryPair.proxyA); userDataB = m_tree.GetUserData(primaryPair.proxyB); callback(userDataA, userDataB); i = (i + 1); while (i < m_pairCount) { pair = m_pairBuffer[i]; if (((!((pair.proxyA == primaryPair.proxyA))) || (!((pair.proxyB == primaryPair.proxyB))))){ break; }; i = (i + 1); }; }; } public function Query(_arg1:Function, _arg2:b2AABB):void{ m_tree.Query(_arg1, _arg2); } public function RayCast(_arg1:Function, _arg2:b2RayCastInput):void{ m_tree.RayCast(_arg1, _arg2); } public function Validate():void{ } public function Rebalance(_arg1:int):void{ m_tree.Rebalance(_arg1); } private function BufferMove(_arg1:b2DynamicTreeNode):void{ m_moveBuffer[m_moveBuffer.length] = _arg1; } private function UnBufferMove(_arg1:b2DynamicTreeNode):void{ var _local2:int = m_moveBuffer.indexOf(_arg1); m_moveBuffer.splice(_local2, 1); } private function ComparePairs(_arg1:b2DynamicTreePair, _arg2:b2DynamicTreePair):int{ return (0); } } }//package Box2D.Collision
Section 16
//b2DynamicTreeNode (Box2D.Collision.b2DynamicTreeNode) package Box2D.Collision { public class b2DynamicTreeNode { public var userData; public var aabb:b2AABB; public var parent:b2DynamicTreeNode; public var child1:b2DynamicTreeNode; public var child2:b2DynamicTreeNode; public function b2DynamicTreeNode(){ aabb = new b2AABB(); super(); } public function IsLeaf():Boolean{ return ((child1 == null)); } } }//package Box2D.Collision
Section 17
//b2DynamicTreePair (Box2D.Collision.b2DynamicTreePair) package Box2D.Collision { public class b2DynamicTreePair { public var proxyA:b2DynamicTreeNode; public var proxyB:b2DynamicTreeNode; } }//package Box2D.Collision
Section 18
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var m_points:Array; public var m_localPlaneNormal:b2Vec2; public var m_localPoint:b2Vec2; public var m_type:int; public var m_pointCount:int;// = 0 public static const e_circles:int = 1; public static const e_faceA:int = 2; public static const e_faceB:int = 4; public function b2Manifold(){ m_points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { m_points[_local1] = new b2ManifoldPoint(); _local1++; }; m_localPlaneNormal = new b2Vec2(); m_localPoint = new b2Vec2(); } public function Reset():void{ var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { (m_points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; m_localPlaneNormal.SetZero(); m_localPoint.SetZero(); m_type = 0; m_pointCount = 0; } public function Set(_arg1:b2Manifold):void{ m_pointCount = _arg1.m_pointCount; var _local2:int; while (_local2 < b2Settings.b2_maxManifoldPoints) { (m_points[_local2] as b2ManifoldPoint).Set(_arg1.m_points[_local2]); _local2++; }; m_localPlaneNormal.SetV(_arg1.m_localPlaneNormal); m_localPoint.SetV(_arg1.m_localPoint); m_type = _arg1.m_type; } public function Copy():b2Manifold{ var _local1:b2Manifold = new b2Manifold(); _local1.Set(this); return (_local1); } } }//package Box2D.Collision
Section 19
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var m_localPoint:b2Vec2; public var m_normalImpulse:Number; public var m_tangentImpulse:Number; public var m_id:b2ContactID; public function b2ManifoldPoint(){ m_localPoint = new b2Vec2(); m_id = new b2ContactID(); super(); Reset(); } public function Reset():void{ m_localPoint.SetZero(); m_normalImpulse = 0; m_tangentImpulse = 0; m_id.key = 0; } public function Set(_arg1:b2ManifoldPoint):void{ m_localPoint.SetV(_arg1.m_localPoint); m_normalImpulse = _arg1.m_normalImpulse; m_tangentImpulse = _arg1.m_tangentImpulse; m_id.Set(_arg1.m_id); } } }//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
//b2RayCastInput (Box2D.Collision.b2RayCastInput) package Box2D.Collision { import Box2D.Common.Math.*; public class b2RayCastInput { public var p1:b2Vec2; public var p2:b2Vec2; public var maxFraction:Number; public function b2RayCastInput(_arg1:b2Vec2=null, _arg2:b2Vec2=null, _arg3:Number=1){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); if (_arg1){ this.p1.SetV(_arg1); }; if (_arg2){ this.p2.SetV(_arg2); }; this.maxFraction = _arg3; } } }//package Box2D.Collision
Section 22
//b2RayCastOutput (Box2D.Collision.b2RayCastOutput) package Box2D.Collision { import Box2D.Common.Math.*; public class b2RayCastOutput { public var normal:b2Vec2; public var fraction:Number; public function b2RayCastOutput(){ normal = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 23
//b2SeparationFunction (Box2D.Collision.b2SeparationFunction) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; class b2SeparationFunction { public var m_proxyA:b2DistanceProxy; public var m_proxyB:b2DistanceProxy; public var m_type:int; public var m_localPoint:b2Vec2; public var m_axis:b2Vec2; public static const e_points:int = 1; public static const e_faceA:int = 2; public static const e_faceB:int = 4; function b2SeparationFunction(){ m_localPoint = new b2Vec2(); m_axis = new b2Vec2(); super(); } public function Initialize(_arg1:b2SimplexCache, _arg2:b2DistanceProxy, _arg3:b2Transform, _arg4:b2DistanceProxy, _arg5:b2Transform):void{ var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:b2Mat22; var _local20:b2Vec2; var _local21:Number; var _local22:Number; var _local23:b2Vec2; var _local24:b2Vec2; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:b2Vec2; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; m_proxyA = _arg2; m_proxyB = _arg4; var _local6:int = _arg1.count; b2Settings.b2Assert((((0 < _local6)) && ((_local6 < 3)))); if (_local6 == 1){ m_type = e_points; _local7 = m_proxyA.GetVertex(_arg1.indexA[0]); _local10 = m_proxyB.GetVertex(_arg1.indexB[0]); _local20 = _local7; _local19 = _arg3.R; _local13 = (_arg3.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local14 = (_arg3.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local20 = _local10; _local19 = _arg5.R; _local15 = (_arg5.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local16 = (_arg5.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); m_axis.x = (_local15 - _local13); m_axis.y = (_local16 - _local14); m_axis.Normalize(); } else { if (_arg1.indexB[0] == _arg1.indexB[1]){ m_type = e_faceA; _local8 = m_proxyA.GetVertex(_arg1.indexA[0]); _local9 = m_proxyA.GetVertex(_arg1.indexA[1]); _local10 = m_proxyB.GetVertex(_arg1.indexB[0]); m_localPoint.x = (0.5 * (_local8.x + _local9.x)); m_localPoint.y = (0.5 * (_local8.y + _local9.y)); m_axis = b2Math.CrossVF(b2Math.SubtractVV(_local9, _local8), 1); m_axis.Normalize(); _local20 = m_axis; _local19 = _arg3.R; _local17 = ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y)); _local18 = ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y)); _local20 = m_localPoint; _local19 = _arg3.R; _local13 = (_arg3.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local14 = (_arg3.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local20 = _local10; _local19 = _arg5.R; _local15 = (_arg5.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local16 = (_arg5.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local21 = (((_local15 - _local13) * _local17) + ((_local16 - _local14) * _local18)); if (_local21 < 0){ m_axis.NegativeSelf(); }; } else { if (_arg1.indexA[0] == _arg1.indexA[0]){ m_type = e_faceB; _local11 = m_proxyB.GetVertex(_arg1.indexB[0]); _local12 = m_proxyB.GetVertex(_arg1.indexB[1]); _local7 = m_proxyA.GetVertex(_arg1.indexA[0]); m_localPoint.x = (0.5 * (_local11.x + _local12.x)); m_localPoint.y = (0.5 * (_local11.y + _local12.y)); m_axis = b2Math.CrossVF(b2Math.SubtractVV(_local12, _local11), 1); m_axis.Normalize(); _local20 = m_axis; _local19 = _arg5.R; _local17 = ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y)); _local18 = ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y)); _local20 = m_localPoint; _local19 = _arg5.R; _local15 = (_arg5.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local16 = (_arg5.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local20 = _local7; _local19 = _arg3.R; _local13 = (_arg3.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local14 = (_arg3.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local21 = (((_local13 - _local15) * _local17) + ((_local14 - _local16) * _local18)); if (_local21 < 0){ m_axis.NegativeSelf(); }; } else { _local8 = m_proxyA.GetVertex(_arg1.indexA[0]); _local9 = m_proxyA.GetVertex(_arg1.indexA[1]); _local11 = m_proxyB.GetVertex(_arg1.indexB[0]); _local12 = m_proxyB.GetVertex(_arg1.indexB[1]); _local23 = b2Math.MulX(_arg3, _local7); _local24 = b2Math.MulMV(_arg3.R, b2Math.SubtractVV(_local9, _local8)); _local25 = b2Math.MulX(_arg5, _local10); _local26 = b2Math.MulMV(_arg5.R, b2Math.SubtractVV(_local12, _local11)); _local27 = ((_local24.x * _local24.x) + (_local24.y * _local24.y)); _local28 = ((_local26.x * _local26.x) + (_local26.y * _local26.y)); _local29 = b2Math.SubtractVV(_local26, _local24); _local30 = ((_local24.x * _local29.x) + (_local24.y * _local29.y)); _local31 = ((_local26.x * _local29.x) + (_local26.y * _local29.y)); _local32 = ((_local24.x * _local26.x) + (_local24.y * _local26.y)); _local33 = ((_local27 * _local28) - (_local32 * _local32)); _local21 = 0; if (_local33 != 0){ _local21 = b2Math.Clamp((((_local32 * _local31) - (_local30 * _local28)) / _local33), 0, 1); }; _local34 = (((_local32 * _local21) + _local31) / _local28); if (_local34 < 0){ _local34 = 0; _local21 = b2Math.Clamp(((_local32 - _local30) / _local27), 0, 1); }; _local7 = new b2Vec2(); _local7.x = (_local8.x + (_local21 * (_local9.x - _local8.x))); _local7.y = (_local8.y + (_local21 * (_local9.y - _local8.y))); _local10 = new b2Vec2(); _local10.x = (_local11.x + (_local21 * (_local12.x - _local11.x))); _local10.y = (_local11.y + (_local21 * (_local12.y - _local11.y))); if ((((_local21 == 0)) || ((_local21 == 1)))){ m_type = e_faceB; m_axis = b2Math.CrossVF(b2Math.SubtractVV(_local12, _local11), 1); m_axis.Normalize(); m_localPoint = _local10; _local20 = m_axis; _local19 = _arg5.R; _local17 = ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y)); _local18 = ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y)); _local20 = m_localPoint; _local19 = _arg5.R; _local15 = (_arg5.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local16 = (_arg5.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local20 = _local7; _local19 = _arg3.R; _local13 = (_arg3.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local14 = (_arg3.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local22 = (((_local13 - _local15) * _local17) + ((_local14 - _local16) * _local18)); if (_local21 < 0){ m_axis.NegativeSelf(); }; } else { m_type = e_faceA; m_axis = b2Math.CrossVF(b2Math.SubtractVV(_local9, _local8), 1); m_localPoint = _local7; _local20 = m_axis; _local19 = _arg3.R; _local17 = ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y)); _local18 = ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y)); _local20 = m_localPoint; _local19 = _arg3.R; _local13 = (_arg3.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local14 = (_arg3.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local20 = _local10; _local19 = _arg5.R; _local15 = (_arg5.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local16 = (_arg5.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local22 = (((_local15 - _local13) * _local17) + ((_local16 - _local14) * _local18)); if (_local21 < 0){ m_axis.NegativeSelf(); }; }; }; }; }; } public function Evaluate(_arg1:b2Transform, _arg2:b2Transform):Number{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2Vec2; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local10:b2Vec2; switch (m_type){ case e_points: _local3 = b2Math.MulTMV(_arg1.R, m_axis); _local4 = b2Math.MulTMV(_arg2.R, m_axis.GetNegative()); _local5 = m_proxyA.GetSupportVertex(_local3); _local6 = m_proxyB.GetSupportVertex(_local4); _local7 = b2Math.MulX(_arg1, _local5); _local8 = b2Math.MulX(_arg2, _local6); _local9 = (((_local8.x - _local7.x) * m_axis.x) + ((_local8.y - _local7.y) * m_axis.y)); return (_local9); case e_faceA: _local10 = b2Math.MulMV(_arg1.R, m_axis); _local7 = b2Math.MulX(_arg1, m_localPoint); _local4 = b2Math.MulTMV(_arg2.R, _local10.GetNegative()); _local6 = m_proxyB.GetSupportVertex(_local4); _local8 = b2Math.MulX(_arg2, _local6); _local9 = (((_local8.x - _local7.x) * _local10.x) + ((_local8.y - _local7.y) * _local10.y)); return (_local9); case e_faceB: _local10 = b2Math.MulMV(_arg2.R, m_axis); _local8 = b2Math.MulX(_arg2, m_localPoint); _local3 = b2Math.MulTMV(_arg1.R, _local10.GetNegative()); _local5 = m_proxyA.GetSupportVertex(_local3); _local7 = b2Math.MulX(_arg1, _local5); _local9 = (((_local7.x - _local8.x) * _local10.x) + ((_local7.y - _local8.y) * _local10.y)); return (_local9); default: b2Settings.b2Assert(false); return (0); }; } } }//package Box2D.Collision
Section 24
//b2Simplex (Box2D.Collision.b2Simplex) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; class b2Simplex { public var m_v1:b2SimplexVertex; public var m_v2:b2SimplexVertex; public var m_v3:b2SimplexVertex; public var m_vertices:Array; public var m_count:int; function b2Simplex(){ m_v1 = new b2SimplexVertex(); m_v2 = new b2SimplexVertex(); m_v3 = new b2SimplexVertex(); m_vertices = new Array(3); super(); m_vertices[0] = m_v1; m_vertices[1] = m_v2; m_vertices[2] = m_v3; } public function ReadCache(_arg1:b2SimplexCache, _arg2:b2DistanceProxy, _arg3:b2Transform, _arg4:b2DistanceProxy, _arg5:b2Transform):void{ var _local6:b2Vec2; var _local7:b2Vec2; var _local10:b2SimplexVertex; var _local11:Number; var _local12:Number; b2Settings.b2Assert((((0 <= _arg1.count)) && ((_arg1.count <= 3)))); m_count = _arg1.count; var _local8:Array = m_vertices; var _local9:int; while (_local9 < m_count) { _local10 = _local8[_local9]; _local10.indexA = _arg1.indexA[_local9]; _local10.indexB = _arg1.indexB[_local9]; _local6 = _arg2.GetVertex(_local10.indexA); _local7 = _arg4.GetVertex(_local10.indexB); _local10.wA = b2Math.MulX(_arg3, _local6); _local10.wB = b2Math.MulX(_arg5, _local7); _local10.w = b2Math.SubtractVV(_local10.wB, _local10.wA); _local10.a = 0; _local9++; }; if (m_count > 1){ _local11 = _arg1.metric; _local12 = GetMetric(); if ((((((_local12 < (0.5 * _local11))) || (((2 * _local11) < _local12)))) || ((_local12 < Number.MIN_VALUE)))){ m_count = 0; }; }; if (m_count == 0){ _local10 = _local8[0]; _local10.indexA = 0; _local10.indexB = 0; _local6 = _arg2.GetVertex(0); _local7 = _arg4.GetVertex(0); _local10.wA = b2Math.MulX(_arg3, _local6); _local10.wB = b2Math.MulX(_arg5, _local7); _local10.w = b2Math.SubtractVV(_local10.wB, _local10.wA); m_count = 1; }; } public function WriteCache(_arg1:b2SimplexCache):void{ _arg1.metric = GetMetric(); _arg1.count = uint(m_count); var _local2:Array = m_vertices; var _local3:int; while (_local3 < m_count) { _arg1.indexA[_local3] = uint(_local2[_local3].indexA); _arg1.indexB[_local3] = uint(_local2[_local3].indexB); _local3++; }; } public function GetSearchDirection():b2Vec2{ var _local1:b2Vec2; var _local2:Number; switch (m_count){ case 1: return (m_v1.w.GetNegative()); case 2: _local1 = b2Math.SubtractVV(m_v2.w, m_v1.w); _local2 = b2Math.CrossVV(_local1, m_v1.w.GetNegative()); if (_local2 > 0){ return (b2Math.CrossFV(1, _local1)); }; return (b2Math.CrossVF(_local1, 1)); default: b2Settings.b2Assert(false); return (new b2Vec2()); }; } public function GetClosestPoint():b2Vec2{ switch (m_count){ case 0: b2Settings.b2Assert(false); return (new b2Vec2()); case 1: return (m_v1.w); case 2: return (new b2Vec2(((m_v1.a * m_v1.w.x) + (m_v2.a * m_v2.w.x)), ((m_v1.a * m_v1.w.y) + (m_v2.a * m_v2.w.y)))); default: b2Settings.b2Assert(false); return (new b2Vec2()); }; } public function GetWitnessPoints(_arg1:b2Vec2, _arg2:b2Vec2):void{ switch (m_count){ case 0: b2Settings.b2Assert(false); break; case 1: _arg1.SetV(m_v1.wA); _arg2.SetV(m_v1.wB); break; case 2: _arg1.x = ((m_v1.a * m_v1.wA.x) + (m_v2.a * m_v2.wA.x)); _arg1.y = ((m_v1.a * m_v1.wA.y) + (m_v2.a * m_v2.wA.y)); _arg2.x = ((m_v1.a * m_v1.wB.x) + (m_v2.a * m_v2.wB.x)); _arg2.y = ((m_v1.a * m_v1.wB.y) + (m_v2.a * m_v2.wB.y)); break; case 3: _arg2.x = (_arg1.x = (((m_v1.a * m_v1.wA.x) + (m_v2.a * m_v2.wA.x)) + (m_v3.a * m_v3.wA.x))); _arg2.y = (_arg1.y = (((m_v1.a * m_v1.wA.y) + (m_v2.a * m_v2.wA.y)) + (m_v3.a * m_v3.wA.y))); break; default: b2Settings.b2Assert(false); break; }; } public function GetMetric():Number{ switch (m_count){ case 0: b2Settings.b2Assert(false); return (0); case 1: return (0); case 2: return (b2Math.SubtractVV(m_v1.w, m_v2.w).Length()); case 3: return (b2Math.CrossVV(b2Math.SubtractVV(m_v2.w, m_v1.w), b2Math.SubtractVV(m_v3.w, m_v1.w))); default: b2Settings.b2Assert(false); return (0); }; } public function Solve2():void{ var _local1:b2Vec2 = m_v1.w; var _local2:b2Vec2 = m_v2.w; var _local3:b2Vec2 = b2Math.SubtractVV(_local2, _local1); var _local4:Number = -(((_local1.x * _local3.x) + (_local1.y * _local3.y))); if (_local4 <= 0){ m_v1.a = 1; m_count = 1; return; }; var _local5:Number = ((_local2.x * _local3.x) + (_local2.y * _local3.y)); if (_local5 <= 0){ m_v2.a = 1; m_count = 1; m_v1.Set(m_v2); return; }; var _local6:Number = (1 / (_local5 + _local4)); m_v1.a = (_local5 * _local6); m_v2.a = (_local4 * _local6); m_count = 2; } public function Solve3():void{ var _local24:Number; var _local25:Number; var _local26:Number; var _local1:b2Vec2 = m_v1.w; var _local2:b2Vec2 = m_v2.w; var _local3:b2Vec2 = m_v3.w; var _local4:b2Vec2 = b2Math.SubtractVV(_local2, _local1); var _local5:Number = b2Math.Dot(_local1, _local4); var _local6:Number = b2Math.Dot(_local2, _local4); var _local7:Number = _local6; var _local8:Number = -(_local5); var _local9:b2Vec2 = b2Math.SubtractVV(_local3, _local1); var _local10:Number = b2Math.Dot(_local1, _local9); var _local11:Number = b2Math.Dot(_local3, _local9); var _local12:Number = _local11; var _local13:Number = -(_local10); var _local14:b2Vec2 = b2Math.SubtractVV(_local3, _local2); var _local15:Number = b2Math.Dot(_local2, _local14); var _local16:Number = b2Math.Dot(_local3, _local14); var _local17:Number = _local16; var _local18:Number = -(_local15); var _local19:Number = b2Math.CrossVV(_local4, _local9); var _local20:Number = (_local19 * b2Math.CrossVV(_local2, _local3)); var _local21:Number = (_local19 * b2Math.CrossVV(_local3, _local1)); var _local22:Number = (_local19 * b2Math.CrossVV(_local1, _local2)); if ((((_local8 <= 0)) && ((_local13 <= 0)))){ m_v1.a = 1; m_count = 1; return; }; if ((((((_local7 > 0)) && ((_local8 > 0)))) && ((_local22 <= 0)))){ _local24 = (1 / (_local7 + _local8)); m_v1.a = (_local7 * _local24); m_v2.a = (_local8 * _local24); m_count = 2; return; }; if ((((((_local12 > 0)) && ((_local13 > 0)))) && ((_local21 <= 0)))){ _local25 = (1 / (_local12 + _local13)); m_v1.a = (_local12 * _local25); m_v3.a = (_local13 * _local25); m_count = 2; m_v2.Set(m_v3); return; }; if ((((_local7 <= 0)) && ((_local18 <= 0)))){ m_v2.a = 1; m_count = 1; m_v1.Set(m_v2); return; }; if ((((_local12 <= 0)) && ((_local17 <= 0)))){ m_v3.a = 1; m_count = 1; m_v1.Set(m_v3); return; }; if ((((((_local17 > 0)) && ((_local18 > 0)))) && ((_local20 <= 0)))){ _local26 = (1 / (_local17 + _local18)); m_v2.a = (_local17 * _local26); m_v3.a = (_local18 * _local26); m_count = 2; m_v1.Set(m_v3); return; }; var _local23:Number = (1 / ((_local20 + _local21) + _local22)); m_v1.a = (_local20 * _local23); m_v2.a = (_local21 * _local23); m_v3.a = (_local22 * _local23); m_count = 3; } } }//package Box2D.Collision
Section 25
//b2SimplexCache (Box2D.Collision.b2SimplexCache) package Box2D.Collision { public class b2SimplexCache { public var metric:Number; public var count:uint; public var indexA:Array; public var indexB:Array; public function b2SimplexCache(){ indexA = new Array(3); indexB = new Array(3); super(); } } }//package Box2D.Collision
Section 26
//b2SimplexVertex (Box2D.Collision.b2SimplexVertex) package Box2D.Collision { import Box2D.Common.Math.*; class b2SimplexVertex { public var wA:b2Vec2; public var wB:b2Vec2; public var w:b2Vec2; public var a:Number; public var indexA:int; public var indexB:int; public function Set(_arg1:b2SimplexVertex):void{ wA.SetV(_arg1.wA); wB.SetV(_arg1.wB); w.SetV(_arg1.w); a = _arg1.a; indexA = _arg1.indexA; indexB = _arg1.indexB; } } }//package Box2D.Collision
Section 27
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2TimeOfImpact { private static var b2_toiCalls:int = 0; private static var b2_toiIters:int = 0; private static var b2_toiMaxIters:int = 0; private static var b2_toiRootIters:int = 0; private static var b2_toiMaxRootIters:int = 0; private static var s_cache:b2SimplexCache = new b2SimplexCache(); private static var s_distanceInput:b2DistanceInput = new b2DistanceInput(); private static var s_xfA:b2Transform = new b2Transform(); private static var s_xfB:b2Transform = new b2Transform(); private static var s_fcn:b2SeparationFunction = new b2SeparationFunction(); private static var s_distanceOutput:b2DistanceOutput = new b2DistanceOutput(); public static function TimeOfImpact(_arg1:b2TOIInput):Number{ var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:Number; var _local20:Number; b2_toiCalls++; var _local2:b2DistanceProxy = _arg1.proxyA; var _local3:b2DistanceProxy = _arg1.proxyB; var _local4:b2Sweep = _arg1.sweepA; var _local5:b2Sweep = _arg1.sweepB; b2Settings.b2Assert((_local4.t0 == _local5.t0)); b2Settings.b2Assert(((1 - _local4.t0) > Number.MIN_VALUE)); var _local6:Number = (_local2.m_radius + _local3.m_radius); var _local7:Number = _arg1.tolerance; var _local8:Number = 0; var _local9 = 1000; var _local10:int; var _local11:Number = 0; s_cache.count = 0; s_distanceInput.useRadii = false; while (true) { _local4.GetTransform(s_xfA, _local8); _local5.GetTransform(s_xfB, _local8); s_distanceInput.proxyA = _local2; s_distanceInput.proxyB = _local3; s_distanceInput.transformA = s_xfA; s_distanceInput.transformB = s_xfB; b2Distance.Distance(s_distanceOutput, s_cache, s_distanceInput); if (s_distanceOutput.distance <= 0){ _local8 = 1; break; }; s_fcn.Initialize(s_cache, _local2, s_xfA, _local3, s_xfB); _local12 = s_fcn.Evaluate(s_xfA, s_xfB); if (_local12 <= 0){ _local8 = 1; break; }; if (_local10 == 0){ if (_local12 > _local6){ _local11 = b2Math.Max((_local6 - _local7), (0.75 * _local6)); } else { _local11 = b2Math.Max((_local12 - _local7), (0.02 * _local6)); }; }; if ((_local12 - _local11) < (0.5 * _local7)){ if (_local10 == 0){ _local8 = 1; break; }; break; }; _local13 = _local8; _local14 = _local8; _local15 = 1; _local16 = _local12; _local4.GetTransform(s_xfA, _local15); _local5.GetTransform(s_xfB, _local15); _local17 = s_fcn.Evaluate(s_xfA, s_xfB); if (_local17 >= _local11){ _local8 = 1; break; }; _local18 = 0; while (true) { if ((_local18 & 1)){ _local19 = (_local14 + (((_local11 - _local16) * (_local15 - _local14)) / (_local17 - _local16))); } else { _local19 = (0.5 * (_local14 + _local15)); }; _local4.GetTransform(s_xfA, _local19); _local5.GetTransform(s_xfB, _local19); _local20 = s_fcn.Evaluate(s_xfA, s_xfB); if (b2Math.Abs((_local20 - _local11)) < (0.025 * _local7)){ _local13 = _local19; break; }; if (_local20 > _local11){ _local14 = _local19; _local16 = _local20; } else { _local15 = _local19; _local17 = _local20; }; _local18++; b2_toiRootIters++; if (_local18 == 50){ break; }; }; b2_toiMaxRootIters = b2Math.Max(b2_toiMaxRootIters, _local18); if (_local13 < ((1 + (100 * Number.MIN_VALUE)) * _local8)){ break; }; _local8 = _local13; _local10++; b2_toiIters++; if (_local10 == _local9){ break; }; }; b2_toiMaxIters = b2Math.Max(b2_toiMaxIters, _local10); return (_local8); } } }//package Box2D.Collision
Section 28
//b2TOIInput (Box2D.Collision.b2TOIInput) package Box2D.Collision { import Box2D.Common.Math.*; public class b2TOIInput { public var proxyA:b2DistanceProxy; public var proxyB:b2DistanceProxy; public var sweepA:b2Sweep; public var sweepB:b2Sweep; public var tolerance:Number; public function b2TOIInput(){ proxyA = new b2DistanceProxy(); proxyB = new b2DistanceProxy(); sweepA = new b2Sweep(); sweepB = new b2Sweep(); super(); } } }//package Box2D.Collision
Section 29
//b2WorldManifold (Box2D.Collision.b2WorldManifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2WorldManifold { public var m_normal:b2Vec2; public var m_points:Array; public function b2WorldManifold(){ m_normal = new b2Vec2(); super(); m_points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { m_points[_local1] = new b2Vec2(); _local1++; }; } public function Initialize(_arg1:b2Manifold, _arg2:b2Transform, _arg3:Number, _arg4:b2Transform, _arg5:Number):void{ var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; if (_arg1.m_pointCount == 0){ return; }; switch (_arg1.m_type){ case b2Manifold.e_circles: _local8 = _arg2.R; _local7 = _arg1.m_localPoint; _local15 = ((_arg2.position.x + (_local8.col1.x * _local7.x)) + (_local8.col2.x * _local7.y)); _local16 = ((_arg2.position.y + (_local8.col1.y * _local7.x)) + (_local8.col2.y * _local7.y)); _local8 = _arg4.R; _local7 = _arg1.m_points[0].m_localPoint; _local17 = ((_arg4.position.x + (_local8.col1.x * _local7.x)) + (_local8.col2.x * _local7.y)); _local18 = ((_arg4.position.y + (_local8.col1.y * _local7.x)) + (_local8.col2.y * _local7.y)); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local21 = ((_local19 * _local19) + (_local20 * _local20)); if (_local21 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local26 = Math.sqrt(_local21); m_normal.x = (_local19 / _local26); m_normal.y = (_local20 / _local26); } else { m_normal.x = 1; m_normal.y = 0; }; _local22 = (_local15 + (_arg3 * m_normal.x)); _local23 = (_local16 + (_arg3 * m_normal.y)); _local24 = (_local17 - (_arg5 * m_normal.x)); _local25 = (_local18 - (_arg5 * m_normal.y)); m_points[0].x = (0.5 * (_local22 + _local24)); m_points[0].y = (0.5 * (_local23 + _local25)); break; case b2Manifold.e_faceA: _local8 = _arg2.R; _local7 = _arg1.m_localPlaneNormal; _local9 = ((_local8.col1.x * _local7.x) + (_local8.col2.x * _local7.y)); _local10 = ((_local8.col1.y * _local7.x) + (_local8.col2.y * _local7.y)); _local8 = _arg2.R; _local7 = _arg1.m_localPoint; _local11 = ((_arg2.position.x + (_local8.col1.x * _local7.x)) + (_local8.col2.x * _local7.y)); _local12 = ((_arg2.position.y + (_local8.col1.y * _local7.x)) + (_local8.col2.y * _local7.y)); m_normal.x = _local9; m_normal.y = _local10; _local6 = 0; while (_local6 < _arg1.m_pointCount) { _local8 = _arg4.R; _local7 = _arg1.m_points[_local6].m_localPoint; _local13 = ((_arg4.position.x + (_local8.col1.x * _local7.x)) + (_local8.col2.x * _local7.y)); _local14 = ((_arg4.position.y + (_local8.col1.y * _local7.x)) + (_local8.col2.y * _local7.y)); m_points[_local6].x = (_local13 + ((0.5 * (((_arg3 - ((_local13 - _local11) * _local9)) - ((_local14 - _local12) * _local10)) - _arg5)) * _local9)); m_points[_local6].y = (_local14 + ((0.5 * (((_arg3 - ((_local13 - _local11) * _local9)) - ((_local14 - _local12) * _local10)) - _arg5)) * _local10)); _local6++; }; break; case b2Manifold.e_faceB: _local8 = _arg4.R; _local7 = _arg1.m_localPlaneNormal; _local9 = ((_local8.col1.x * _local7.x) + (_local8.col2.x * _local7.y)); _local10 = ((_local8.col1.y * _local7.x) + (_local8.col2.y * _local7.y)); _local8 = _arg4.R; _local7 = _arg1.m_localPoint; _local11 = ((_arg4.position.x + (_local8.col1.x * _local7.x)) + (_local8.col2.x * _local7.y)); _local12 = ((_arg4.position.y + (_local8.col1.y * _local7.x)) + (_local8.col2.y * _local7.y)); m_normal.x = -(_local9); m_normal.y = -(_local10); _local6 = 0; while (_local6 < _arg1.m_pointCount) { _local8 = _arg2.R; _local7 = _arg1.m_points[_local6].m_localPoint; _local13 = ((_arg2.position.x + (_local8.col1.x * _local7.x)) + (_local8.col2.x * _local7.y)); _local14 = ((_arg2.position.y + (_local8.col1.y * _local7.x)) + (_local8.col2.y * _local7.y)); m_points[_local6].x = (_local13 + ((0.5 * (((_arg5 - ((_local13 - _local11) * _local9)) - ((_local14 - _local12) * _local10)) - _arg3)) * _local9)); m_points[_local6].y = (_local14 + ((0.5 * (((_arg5 - ((_local13 - _local11) * _local9)) - ((_local14 - _local12) * _local10)) - _arg3)) * _local10)); _local6++; }; break; }; } } }//package Box2D.Collision
Section 30
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var v:b2Vec2; public var id:b2ContactID; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } public function Set(_arg1:ClipVertex):void{ v.SetV(_arg1.v); id.Set(_arg1.id); } } }//package Box2D.Collision
Section 31
//Features (Box2D.Collision.Features) package Box2D.Collision { import Box2D.Common.*; public class Features { b2internal var _referenceEdge:int; b2internal var _incidentEdge:int; b2internal var _incidentVertex:int; b2internal var _flip:int; b2internal var _m_id:b2ContactID; public function get referenceEdge():int{ return (_referenceEdge); } public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function get incidentEdge():int{ return (_incidentEdge); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } public function get incidentVertex():int{ return (_incidentVertex); } 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 set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } } }//package Box2D.Collision
Section 32
//IBroadPhase (Box2D.Collision.IBroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; public interface IBroadPhase { function CreateProxy(_arg1:b2AABB, _arg2); function DestroyProxy(_arg1):void; function MoveProxy(_arg1, _arg2:b2AABB, _arg3:b2Vec2):void; function TestOverlap(_arg1, _arg2):Boolean; function GetUserData(_arg1); function GetFatAABB(_arg1):b2AABB; function GetProxyCount():int; function UpdatePairs(_arg1:Function):void; function Query(_arg1:Function, _arg2:b2AABB):void; function RayCast(_arg1:Function, _arg2:b2RayCastInput):void; function Validate():void; function Rebalance(_arg1:int):void; } }//package Box2D.Collision
Section 33
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(){ col1 = new b2Vec2(); col2 = new b2Vec2(); super(); col1.x = (col2.y = 1); } public function Set(_arg1:Number):void{ var _local2:Number; _local2 = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function Copy():b2Mat22{ var _local1:b2Mat22 = new b2Mat22(); _local1.SetM(this); return (_local1); } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function GetInverse(_arg1:b2Mat22):b2Mat22{ var _local3:Number; var _local6:Number; var _local2:Number = col1.x; _local3 = col2.x; var _local4:Number = col1.y; var _local5:Number = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); if (_local6 != 0){ _local6 = (1 / _local6); }; _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number = col1.x; var _local5:Number = col2.x; var _local6:Number = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); if (_local8 != 0){ _local8 = (1 / _local8); }; _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } public function Abs():void{ col1.Abs(); col2.Abs(); } public static function FromAngle(_arg1:Number):b2Mat22{ var _local2:b2Mat22 = new (b2Mat22); _local2.Set(_arg1); return (_local2); } public static function FromVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Mat22{ var _local3:b2Mat22 = new (b2Mat22); _local3.SetVV(_arg1, _arg2); return (_local3); } } }//package Box2D.Common.Math
Section 34
//b2Mat33 (Box2D.Common.Math.b2Mat33) package Box2D.Common.Math { public class b2Mat33 { public var col1:b2Vec3; public var col2:b2Vec3; public var col3:b2Vec3; public function b2Mat33(_arg1:b2Vec3=null, _arg2:b2Vec3=null, _arg3:b2Vec3=null){ col1 = new b2Vec3(); col2 = new b2Vec3(); col3 = new b2Vec3(); super(); if (((((!(_arg1)) && (!(_arg2)))) && (!(_arg3)))){ col1.SetZero(); col2.SetZero(); col3.SetZero(); } else { col1.SetV(_arg1); col2.SetV(_arg2); col3.SetV(_arg3); }; } public function SetVVV(_arg1:b2Vec3, _arg2:b2Vec3, _arg3:b2Vec3):void{ col1.SetV(_arg1); col2.SetV(_arg2); col3.SetV(_arg3); } public function Copy():b2Mat33{ return (new b2Mat33(col1, col2, col3)); } public function SetM(_arg1:b2Mat33):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); col3.SetV(_arg1.col3); } public function AddM(_arg1:b2Mat33):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col1.z = (col1.z + _arg1.col1.z); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); col2.z = (col2.z + _arg1.col2.z); col3.x = (col3.x + _arg1.col3.x); col3.y = (col3.y + _arg1.col3.y); col3.z = (col3.z + _arg1.col3.z); } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col3.x = 0; col1.y = 0; col2.y = 1; col3.y = 0; col1.z = 0; col2.z = 0; col3.z = 1; } public function SetZero():void{ col1.x = 0; col2.x = 0; col3.x = 0; col1.y = 0; col2.y = 0; col3.y = 0; col1.z = 0; col2.z = 0; col3.z = 0; } public function Solve22(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number; var _local6:Number; _local4 = col1.x; var _local5:Number = col2.x; _local6 = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); if (_local8 != 0){ _local8 = (1 / _local8); }; _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } public function Solve33(_arg1:b2Vec3, _arg2:Number, _arg3:Number, _arg4:Number):b2Vec3{ var _local5:Number = col1.x; var _local6:Number = col1.y; var _local7:Number = col1.z; var _local8:Number = col2.x; var _local9:Number = col2.y; var _local10:Number = col2.z; var _local11:Number = col3.x; var _local12:Number = col3.y; var _local13:Number = col3.z; var _local14:Number = (((_local5 * ((_local9 * _local13) - (_local10 * _local12))) + (_local6 * ((_local10 * _local11) - (_local8 * _local13)))) + (_local7 * ((_local8 * _local12) - (_local9 * _local11)))); if (_local14 != 0){ _local14 = (1 / _local14); }; _arg1.x = (_local14 * (((_arg2 * ((_local9 * _local13) - (_local10 * _local12))) + (_arg3 * ((_local10 * _local11) - (_local8 * _local13)))) + (_arg4 * ((_local8 * _local12) - (_local9 * _local11))))); _arg1.y = (_local14 * (((_local5 * ((_arg3 * _local13) - (_arg4 * _local12))) + (_local6 * ((_arg4 * _local11) - (_arg2 * _local13)))) + (_local7 * ((_arg2 * _local12) - (_arg3 * _local11))))); _arg1.z = (_local14 * (((_local5 * ((_local9 * _arg4) - (_local10 * _arg3))) + (_local6 * ((_local10 * _arg2) - (_local8 * _arg4)))) + (_local7 * ((_local8 * _arg3) - (_local9 * _arg2))))); return (_arg1); } } }//package Box2D.Common.Math
Section 35
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static const b2Mat22_identity:b2Mat22 = b2Mat22.FromVV(new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2Transform_identity:b2Transform = new b2Transform(b2Vec2_zero, b2Mat22_identity); public static function IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } public static function MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(Dot(_arg2, _arg1.col1), Dot(_arg2, _arg1.col2)); return (_local3); } public static function MulX(_arg1:b2Transform, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function MulXT(_arg1:b2Transform, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function Distance(_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 DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = b2Mat22.FromVV(AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = b2Mat22.FromVV(MulMV(_arg1, _arg2.col1), MulMV(_arg1, _arg2.col2)); return (_local3); } public static function MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2 = new b2Vec2(Dot(_arg1.col1, _arg2.col1), Dot(_arg1.col2, _arg2.col1)); var _local4:b2Vec2 = new b2Vec2(Dot(_arg1.col1, _arg2.col2), Dot(_arg1.col2, _arg2.col2)); var _local5:b2Mat22 = b2Mat22.FromVV(_local3, _local4); return (_local5); } public static function Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2 = new b2Vec2(Abs(_arg1.x), Abs(_arg1.y)); return (_local2); } public static function AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22 = b2Mat22.FromVV(AbsV(_arg1.col1), AbsV(_arg1.col2)); return (_local2); } public static function Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(Min(_arg1.x, _arg2.x), Min(_arg1.y, _arg2.y)); return (_local3); } public static function Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(Max(_arg1.x, _arg2.x), Max(_arg1.y, _arg2.y)); return (_local3); } public static function Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (((_arg1 < _arg2)) ? _arg2 : ((_arg1 > _arg3)) ? _arg3 : _arg1); } public static function ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (MaxV(_arg2, MinV(_arg1, _arg3))); } public static function Swap(_arg1:Array, _arg2:Array):void{ var _local3:* = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function Random():Number{ return (((Math.random() * 2) - 1)); } public static function RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function NextPowerOfTwo(_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 IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } } }//package Box2D.Common.Math
Section 36
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var c0:b2Vec2; public var c:b2Vec2; public var a0:Number; public var a:Number; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function Set(_arg1:b2Sweep):void{ localCenter.SetV(_arg1.localCenter); c0.SetV(_arg1.c0); c.SetV(_arg1.c); a0 = _arg1.a0; a = _arg1.a; t0 = _arg1.t0; } public function Copy():b2Sweep{ var _local1:b2Sweep = new b2Sweep(); _local1.localCenter.SetV(localCenter); _local1.c0.SetV(c0); _local1.c.SetV(c); _local1.a0 = a0; _local1.a = a; _local1.t0 = t0; return (_local1); } public function GetTransform(_arg1:b2Transform, _arg2:Number):void{ _arg1.position.x = (((1 - _arg2) * c0.x) + (_arg2 * c.x)); _arg1.position.y = (((1 - _arg2) * c0.y) + (_arg2 * c.y)); var _local3:Number = (((1 - _arg2) * a0) + (_arg2 * a)); _arg1.R.Set(_local3); var _local4:b2Mat22 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local4.col1.x * localCenter.x) + (_local4.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local4.col1.y * localCenter.x) + (_local4.col2.y * localCenter.y))); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } } }//package Box2D.Common.Math
Section 37
//b2Transform (Box2D.Common.Math.b2Transform) package Box2D.Common.Math { public class b2Transform { public var position:b2Vec2; public var R:b2Mat22; public function b2Transform(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } public function Set(_arg1:b2Transform):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function GetAngle():Number{ return (Math.atan2(R.col1.y, R.col1.x)); } } }//package Box2D.Common.Math
Section 38
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var x:Number; public var y:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function SetZero():void{ x = 0; y = 0; } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function GetNegative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function NegativeSelf():void{ x = -(x); y = -(y); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function MulM(_arg1:b2Mat22):void{ var _local2:Number = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number = b2Math.Dot(this, _arg1.col1); y = b2Math.Dot(this, _arg1.col2); x = _local2; } public function CrossVF(_arg1:Number):void{ var _local2:Number = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function CrossFV(_arg1:Number):void{ var _local2:Number = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function Normalize():Number{ var _local1:Number = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; var _local2:Number = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function IsValid():Boolean{ return (((b2Math.IsValid(x)) && (b2Math.IsValid(y)))); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 39
//b2Vec3 (Box2D.Common.Math.b2Vec3) package Box2D.Common.Math { public class b2Vec3 { public var x:Number; public var y:Number; public var z:Number; public function b2Vec3(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; } public function SetZero():void{ x = (y = (z = 0)); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ this.x = _arg1; this.y = _arg2; this.z = _arg3; } public function SetV(_arg1:b2Vec3):void{ x = _arg1.x; y = _arg1.y; z = _arg1.z; } public function GetNegative():b2Vec3{ return (new b2Vec3(-(x), -(y), -(z))); } public function NegativeSelf():void{ x = -(x); y = -(y); z = -(z); } public function Copy():b2Vec3{ return (new b2Vec3(x, y, z)); } public function Add(_arg1:b2Vec3):void{ x = (x + _arg1.x); y = (y + _arg1.y); z = (z + _arg1.z); } public function Subtract(_arg1:b2Vec3):void{ x = (x - _arg1.x); y = (y - _arg1.y); z = (z - _arg1.z); } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); z = (z * _arg1); } } }//package Box2D.Common.Math
Section 40
//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.Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.Clamp(_arg3, 0, 1))); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.Clamp(_arg1, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.Clamp(_arg1, 0, 1))); } public function get color():uint{ return ((((_r << 16) | (_g << 8)) | _b)); } } }//package Box2D.Common
Section 41
//b2internal (Box2D.Common.b2internal) package Box2D.Common { public namespace b2internal = "http://www.box2d.org/ns/b2internal"; }//package Box2D.Common
Section 42
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { public class b2Settings { public static const VERSION:String = "2.1alpha"; public static const USHRT_MAX:int = 0xFFFF; public static const b2_pi:Number = 3.14159265358979; public static const b2_maxManifoldPoints:int = 2; public static const b2_aabbExtension:Number = 0.1; public static const b2_aabbMultiplier:Number = 2; public static const b2_polygonRadius:Number = (2 * b2_linearSlop); public static const b2_linearSlop:Number = 0.005; public static const b2_angularSlop:Number = 0.0349065850398866; public static const b2_toiSlop:Number = 0.04; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_maxTOIJointsPerIsland:int = 32; public static const b2_velocityThreshold:Number = 1; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const b2_maxTranslation:Number = 2; public static const b2_maxTranslationSquared:Number = 4; public static const b2_maxRotation:Number = 1.5707963267949; public static const b2_maxRotationSquared:Number = 2.46740110027234; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_timeToSleep:Number = 0.5; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_angularSleepTolerance:Number = 0.0349065850398866; public static function b2MixFriction(_arg1:Number, _arg2:Number):Number{ return (Math.sqrt((_arg1 * _arg2))); } public static function b2MixRestitution(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2Assert(_arg1:Boolean):void{ if (!_arg1){ throw ("Assertion Failed"); }; } } }//package Box2D.Common
Section 43
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { public function Reset(_arg1:b2Fixture, _arg2:b2Fixture):void{ super.Reset(_arg1, _arg2); } override b2internal function Evaluate():void{ var _local1:b2Body = m_fixtureA.GetBody(); var _local2:b2Body = m_fixtureB.GetBody(); b2Collision.CollideCircles(m_manifold, (m_fixtureA.GetShape() as b2CircleShape), _local1.m_xf, (m_fixtureB.GetShape() as b2CircleShape), _local2.m_xf); } public static function Create(_arg1):b2Contact{ return (new (b2CircleContact)); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } } }//package Box2D.Dynamics.Contacts
Section 44
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Contact { b2internal var m_flags:uint; b2internal var m_prev:b2Contact; b2internal var m_next:b2Contact; b2internal var m_nodeA:b2ContactEdge; b2internal var m_nodeB:b2ContactEdge; b2internal var m_fixtureA:b2Fixture; b2internal var m_fixtureB:b2Fixture; b2internal var m_manifold:b2Manifold; b2internal var m_oldManifold:b2Manifold; b2internal var m_toi:Number; b2internal static var e_sensorFlag:uint = 1; b2internal static var e_continuousFlag:uint = 2; b2internal static var e_islandFlag:uint = 4; b2internal static var e_toiFlag:uint = 8; b2internal static var e_touchingFlag:uint = 16; b2internal static var e_enabledFlag:uint = 32; b2internal static var e_filterFlag:uint = 64; private static var s_input:b2TOIInput = new b2TOIInput(); public function b2Contact(){ m_nodeA = new b2ContactEdge(); m_nodeB = new b2ContactEdge(); m_manifold = new b2Manifold(); m_oldManifold = new b2Manifold(); super(); } public function GetManifold():b2Manifold{ return (m_manifold); } public function GetWorldManifold(_arg1:b2WorldManifold):void{ var _local2:b2Body = m_fixtureA.GetBody(); var _local3:b2Body = m_fixtureB.GetBody(); var _local4:b2Shape = m_fixtureA.GetShape(); var _local5:b2Shape = m_fixtureB.GetShape(); _arg1.Initialize(m_manifold, _local2.GetTransform(), _local4.m_radius, _local3.GetTransform(), _local5.m_radius); } public function IsTouching():Boolean{ return (((m_flags & e_touchingFlag) == e_touchingFlag)); } public function IsContinuous():Boolean{ return (((m_flags & e_continuousFlag) == e_continuousFlag)); } public function SetSensor(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_sensorFlag); } else { m_flags = (m_flags & ~(e_sensorFlag)); }; } public function IsSensor():Boolean{ return (((m_flags & e_sensorFlag) == e_sensorFlag)); } public function SetEnabled(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_enabledFlag); } else { m_flags = (m_flags & ~(e_enabledFlag)); }; } public function IsEnabled():Boolean{ return (((m_flags & e_enabledFlag) == e_enabledFlag)); } public function GetNext():b2Contact{ return (m_next); } public function GetFixtureA():b2Fixture{ return (m_fixtureA); } public function GetFixtureB():b2Fixture{ return (m_fixtureB); } public function FlagForFiltering():void{ m_flags = (m_flags | e_filterFlag); } b2internal function Reset(_arg1:b2Fixture=null, _arg2:b2Fixture=null):void{ m_flags = e_enabledFlag; if (((!(_arg1)) || (!(_arg2)))){ m_fixtureA = null; m_fixtureB = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_sensorFlag); }; var _local3:b2Body = _arg1.GetBody(); var _local4:b2Body = _arg2.GetBody(); if (((((((!((_local3.GetType() == b2Body.b2_dynamicBody))) || (_local3.IsBullet()))) || (!((_local4.GetType() == b2Body.b2_dynamicBody))))) || (_local4.IsBullet()))){ m_flags = (m_flags | e_continuousFlag); }; m_fixtureA = _arg1; m_fixtureB = _arg2; m_manifold.m_pointCount = 0; m_prev = null; m_next = null; m_nodeA.contact = null; m_nodeA.prev = null; m_nodeA.next = null; m_nodeA.other = null; m_nodeB.contact = null; m_nodeB.prev = null; m_nodeB.next = null; m_nodeB.other = null; } b2internal function Update(_arg1:b2ContactListener):void{ var _local8:b2Shape; var _local9:b2Shape; var _local10:b2Transform; var _local11:b2Transform; var _local12:int; var _local13:b2ManifoldPoint; var _local14:b2ContactID; var _local15:int; var _local16:b2ManifoldPoint; var _local2:b2Manifold = m_oldManifold; m_oldManifold = m_manifold; m_manifold = _local2; m_flags = (m_flags | e_enabledFlag); var _local3:Boolean; var _local4 = ((m_flags & e_touchingFlag) == e_touchingFlag); var _local5:b2Body = m_fixtureA.m_body; var _local6:b2Body = m_fixtureB.m_body; var _local7:Boolean = m_fixtureA.m_aabb.TestOverlap(m_fixtureB.m_aabb); if ((m_flags & e_sensorFlag)){ if (_local7){ _local8 = m_fixtureA.GetShape(); _local9 = m_fixtureB.GetShape(); _local10 = _local5.GetTransform(); _local11 = _local6.GetTransform(); _local3 = b2Shape.TestOverlap(_local8, _local10, _local9, _local11); }; m_manifold.m_pointCount = 0; } else { if (((((((!((_local5.GetType() == b2Body.b2_dynamicBody))) || (_local5.IsBullet()))) || (!((_local6.GetType() == b2Body.b2_dynamicBody))))) || (_local6.IsBullet()))){ m_flags = (m_flags | e_continuousFlag); } else { m_flags = (m_flags & ~(e_continuousFlag)); }; if (_local7){ Evaluate(); _local3 = (m_manifold.m_pointCount > 0); _local12 = 0; while (_local12 < m_manifold.m_pointCount) { _local13 = m_manifold.m_points[_local12]; _local13.m_normalImpulse = 0; _local13.m_tangentImpulse = 0; _local14 = _local13.m_id; _local15 = 0; while (_local15 < m_oldManifold.m_pointCount) { _local16 = m_oldManifold.m_points[_local15]; if (_local16.m_id.key == _local14.key){ _local13.m_normalImpulse = _local16.m_normalImpulse; _local13.m_tangentImpulse = _local16.m_tangentImpulse; break; }; _local15++; }; _local12++; }; } else { m_manifold.m_pointCount = 0; }; if (_local3 != _local4){ _local5.SetAwake(true); _local6.SetAwake(true); }; }; if (_local3){ m_flags = (m_flags | e_touchingFlag); } else { m_flags = (m_flags & ~(e_touchingFlag)); }; if ((((_local4 == false)) && ((_local3 == true)))){ _arg1.BeginContact(this); }; if ((((_local4 == true)) && ((_local3 == false)))){ _arg1.EndContact(this); }; if ((m_flags & e_sensorFlag) == 0){ _arg1.PreSolve(this, m_oldManifold); }; } b2internal function Evaluate():void{ } b2internal function ComputeTOI(_arg1:b2Sweep, _arg2:b2Sweep):Number{ s_input.proxyA.Set(m_fixtureA.GetShape()); s_input.proxyB.Set(m_fixtureB.GetShape()); s_input.sweepA = _arg1; s_input.sweepB = _arg2; s_input.tolerance = b2Settings.b2_linearSlop; return (b2TimeOfImpact.TimeOfImpact(s_input)); } } }//package Box2D.Dynamics.Contacts
Section 45
//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 localPlaneNormal:b2Vec2; public var localPoint:b2Vec2; public var normal:b2Vec2; public var normalMass:b2Mat22; public var K:b2Mat22; public var bodyA:b2Body; public var bodyB:b2Body; public var type:int; public var radius:Number; public var friction:Number; public var restitution:Number; public var pointCount:int; public var manifold:b2Manifold; public function b2ContactConstraint(){ localPlaneNormal = new b2Vec2(); localPoint = new b2Vec2(); normal = new b2Vec2(); normalMass = new b2Mat22(); K = new b2Mat22(); 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 46
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var localPoint:b2Vec2; public var rA:b2Vec2; public var rB:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var normalMass:Number; public var tangentMass:Number; public var equalizedMass:Number; public var velocityBias:Number; public function b2ContactConstraintPoint(){ localPoint = new b2Vec2(); rA = new b2Vec2(); rB = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 47
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var other:b2Body; public var contact:b2Contact; public var prev:b2ContactEdge; public var next:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 48
//b2ContactFactory (Box2D.Dynamics.Contacts.b2ContactFactory) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2ContactFactory { private var m_registers:Array; private var m_allocator; public function b2ContactFactory(_arg1){ m_allocator = _arg1; InitializeRegisters(); } b2internal function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ m_registers[_arg3][_arg4].createFcn = _arg1; m_registers[_arg3][_arg4].destroyFcn = _arg2; m_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ m_registers[_arg4][_arg3].createFcn = _arg1; m_registers[_arg4][_arg3].destroyFcn = _arg2; m_registers[_arg4][_arg3].primary = false; }; } b2internal function InitializeRegisters():void{ var _local2:int; m_registers = new Array(b2Shape.e_shapeTypeCount); var _local1:int; while (_local1 < b2Shape.e_shapeTypeCount) { m_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { m_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); AddType(b2EdgeAndCircleContact.Create, b2EdgeAndCircleContact.Destroy, b2Shape.e_edgeShape, b2Shape.e_circleShape); AddType(b2PolyAndEdgeContact.Create, b2PolyAndEdgeContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_edgeShape); } public function Create(_arg1:b2Fixture, _arg2:b2Fixture):b2Contact{ var _local6:b2Contact; var _local3:int = _arg1.GetType(); var _local4:int = _arg2.GetType(); var _local5:b2ContactRegister = m_registers[_local3][_local4]; if (_local5.pool){ _local6 = _local5.pool; _local5.pool = _local6.m_next; _local5.poolCount--; _local6.Reset(_arg1, _arg2); return (_local6); }; var _local7:Function = _local5.createFcn; if (_local7 != null){ if (_local5.primary){ _local6 = _local7(m_allocator); _local6.Reset(_arg1, _arg2); return (_local6); }; _local6 = _local7(m_allocator); _local6.Reset(_arg2, _arg1); return (_local6); //unresolved jump }; return (null); } public function Destroy(_arg1:b2Contact):void{ if (_arg1.m_manifold.m_pointCount > 0){ _arg1.m_fixtureA.m_body.SetAwake(true); _arg1.m_fixtureB.m_body.SetAwake(true); }; var _local2:int = _arg1.m_fixtureA.GetType(); var _local3:int = _arg1.m_fixtureB.GetType(); var _local4:b2ContactRegister = m_registers[_local2][_local3]; _local4.poolCount++; _arg1.m_next = _local4.pool; _local4.pool = _arg1; var _local5:Function = _local4.destroyFcn; _local5(_arg1, m_allocator); } } }//package Box2D.Dynamics.Contacts
Section 49
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var createFcn:Function; public var destroyFcn:Function; public var primary:Boolean; public var pool:b2Contact; public var poolCount:int; } }//package Box2D.Dynamics.Contacts
Section 50
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2ContactSolver { private var m_step:b2TimeStep; private var m_allocator; b2internal var m_constraints:Array; private var m_constraintCount:int; private static var s_worldManifold:b2WorldManifold = new b2WorldManifold(); private static var s_psm:b2PositionSolverManifold = new b2PositionSolverManifold(); public function b2ContactSolver(){ m_step = new b2TimeStep(); m_constraints = new Array(); super(); } public function Initialize(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4):void{ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local9:b2Fixture; var _local10:b2Fixture; var _local11:b2Shape; var _local12:b2Shape; var _local13:Number; var _local14:Number; var _local15:b2Body; var _local16:b2Body; var _local17:b2Manifold; 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:b2ContactConstraint; var _local29:uint; var _local30:b2ManifoldPoint; var _local31:b2ContactConstraintPoint; 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; var _local48:b2ContactConstraintPoint; var _local49:b2ContactConstraintPoint; var _local50:Number; var _local51:Number; var _local52:Number; var _local53:Number; var _local54:Number; var _local55:Number; var _local56:Number; var _local57:Number; var _local58:Number; var _local59:Number; var _local60:Number; var _local61:Number; m_step.Set(_arg1); m_allocator = _arg4; m_constraintCount = _arg3; while (m_constraints.length < m_constraintCount) { m_constraints[m_constraints.length] = new b2ContactConstraint(); }; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local9 = _local5.m_fixtureA; _local10 = _local5.m_fixtureB; _local11 = _local9.m_shape; _local12 = _local10.m_shape; _local13 = _local11.m_radius; _local14 = _local12.m_radius; _local15 = _local9.m_body; _local16 = _local10.m_body; _local17 = _local5.GetManifold(); _local18 = b2Settings.b2MixFriction(_local9.GetFriction(), _local10.GetFriction()); _local19 = b2Settings.b2MixRestitution(_local9.GetRestitution(), _local10.GetRestitution()); _local20 = _local15.m_linearVelocity.x; _local21 = _local15.m_linearVelocity.y; _local22 = _local16.m_linearVelocity.x; _local23 = _local16.m_linearVelocity.y; _local24 = _local15.m_angularVelocity; _local25 = _local16.m_angularVelocity; b2Settings.b2Assert((_local17.m_pointCount > 0)); s_worldManifold.Initialize(_local17, _local15.m_xf, _local13, _local16.m_xf, _local14); _local26 = s_worldManifold.m_normal.x; _local27 = s_worldManifold.m_normal.y; _local28 = m_constraints[_local6]; _local28.bodyA = _local15; _local28.bodyB = _local16; _local28.manifold = _local17; _local28.normal.x = _local26; _local28.normal.y = _local27; _local28.pointCount = _local17.m_pointCount; _local28.friction = _local18; _local28.restitution = _local19; _local28.localPlaneNormal.x = _local17.m_localPlaneNormal.x; _local28.localPlaneNormal.y = _local17.m_localPlaneNormal.y; _local28.localPoint.x = _local17.m_localPoint.x; _local28.localPoint.y = _local17.m_localPoint.y; _local28.radius = (_local13 + _local14); _local28.type = _local17.m_type; _local29 = 0; while (_local29 < _local28.pointCount) { _local30 = _local17.m_points[_local29]; _local31 = _local28.points[_local29]; _local31.normalImpulse = _local30.m_normalImpulse; _local31.tangentImpulse = _local30.m_tangentImpulse; _local31.localPoint.SetV(_local30.m_localPoint); _local32 = (_local31.rA.x = (s_worldManifold.m_points[_local29].x - _local15.m_sweep.c.x)); _local33 = (_local31.rA.y = (s_worldManifold.m_points[_local29].y - _local15.m_sweep.c.y)); _local34 = (_local31.rB.x = (s_worldManifold.m_points[_local29].x - _local16.m_sweep.c.x)); _local35 = (_local31.rB.y = (s_worldManifold.m_points[_local29].y - _local16.m_sweep.c.y)); _local36 = ((_local32 * _local27) - (_local33 * _local26)); _local37 = ((_local34 * _local27) - (_local35 * _local26)); _local36 = (_local36 * _local36); _local37 = (_local37 * _local37); _local38 = (((_local15.m_invMass + _local16.m_invMass) + (_local15.m_invI * _local36)) + (_local16.m_invI * _local37)); _local31.normalMass = (1 / _local38); _local39 = ((_local15.m_mass * _local15.m_invMass) + (_local16.m_mass * _local16.m_invMass)); _local39 = (_local39 + (((_local15.m_mass * _local15.m_invI) * _local36) + ((_local16.m_mass * _local16.m_invI) * _local37))); _local31.equalizedMass = (1 / _local39); _local40 = _local27; _local41 = -(_local26); _local42 = ((_local32 * _local41) - (_local33 * _local40)); _local43 = ((_local34 * _local41) - (_local35 * _local40)); _local42 = (_local42 * _local42); _local43 = (_local43 * _local43); _local44 = (((_local15.m_invMass + _local16.m_invMass) + (_local15.m_invI * _local42)) + (_local16.m_invI * _local43)); _local31.tangentMass = (1 / _local44); _local31.velocityBias = 0; _local45 = (((_local22 + (-(_local25) * _local35)) - _local20) - (-(_local24) * _local33)); _local46 = (((_local23 + (_local25 * _local34)) - _local21) - (_local24 * _local32)); _local47 = ((_local28.normal.x * _local45) + (_local28.normal.y * _local46)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local31.velocityBias = (_local31.velocityBias + (-(_local28.restitution) * _local47)); }; _local29++; }; if (_local28.pointCount == 2){ _local48 = _local28.points[0]; _local49 = _local28.points[1]; _local50 = _local15.m_invMass; _local51 = _local15.m_invI; _local52 = _local16.m_invMass; _local53 = _local16.m_invI; _local54 = ((_local48.rA.x * _local27) - (_local48.rA.y * _local26)); _local55 = ((_local48.rB.x * _local27) - (_local48.rB.y * _local26)); _local56 = ((_local49.rA.x * _local27) - (_local49.rA.y * _local26)); _local57 = ((_local49.rB.x * _local27) - (_local49.rB.y * _local26)); _local58 = (((_local50 + _local52) + ((_local51 * _local54) * _local54)) + ((_local53 * _local55) * _local55)); _local59 = (((_local50 + _local52) + ((_local51 * _local56) * _local56)) + ((_local53 * _local57) * _local57)); _local60 = (((_local50 + _local52) + ((_local51 * _local54) * _local56)) + ((_local53 * _local55) * _local57)); _local61 = 100; if ((_local58 * _local58) < (_local61 * ((_local58 * _local59) - (_local60 * _local60)))){ _local28.K.col1.Set(_local58, _local60); _local28.K.col2.Set(_local60, _local59); _local28.K.GetInverse(_local28.normalMass); } else { _local28.pointCount = 1; }; }; _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.bodyA; _local8 = _local6.bodyB; _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.rA.x * _local22) - (_local20.rA.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.rB.x * _local22) - (_local20.rB.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:b2Mat22; var _local23:b2Vec2; var _local25:b2ContactConstraint; var _local26:b2Body; var _local27:b2Body; var _local28:Number; var _local29:Number; var _local30:b2Vec2; var _local31:b2Vec2; 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:int; var _local43:b2ContactConstraintPoint; var _local44:b2ContactConstraintPoint; var _local45:Number; var _local46:Number; var _local47:Number; var _local48:Number; var _local49:Number; var _local50:Number; var _local51:Number; var _local52:Number; var _local53:Number; var _local54:Number; var _local55:Number; var _local56:Number; var _local57:Number; var _local24:int; while (_local24 < m_constraintCount) { _local25 = m_constraints[_local24]; _local26 = _local25.bodyA; _local27 = _local25.bodyB; _local28 = _local26.m_angularVelocity; _local29 = _local27.m_angularVelocity; _local30 = _local26.m_linearVelocity; _local31 = _local27.m_linearVelocity; _local32 = _local26.m_invMass; _local33 = _local26.m_invI; _local34 = _local27.m_invMass; _local35 = _local27.m_invI; _local36 = _local25.normal.x; _local37 = _local25.normal.y; _local38 = _local37; _local39 = -(_local36); _local40 = _local25.friction; _local1 = 0; while (_local1 < _local25.pointCount) { _local2 = _local25.points[_local1]; _local7 = (((_local31.x - (_local29 * _local2.rB.y)) - _local30.x) + (_local28 * _local2.rA.y)); _local8 = (((_local31.y + (_local29 * _local2.rB.x)) - _local30.y) - (_local28 * _local2.rA.x)); _local10 = ((_local7 * _local38) + (_local8 * _local39)); _local11 = (_local2.tangentMass * -(_local10)); _local12 = (_local40 * _local2.normalImpulse); _local13 = b2Math.Clamp((_local2.tangentImpulse + _local11), -(_local12), _local12); _local11 = (_local13 - _local2.tangentImpulse); _local14 = (_local11 * _local38); _local15 = (_local11 * _local39); _local30.x = (_local30.x - (_local32 * _local14)); _local30.y = (_local30.y - (_local32 * _local15)); _local28 = (_local28 - (_local33 * ((_local2.rA.x * _local15) - (_local2.rA.y * _local14)))); _local31.x = (_local31.x + (_local34 * _local14)); _local31.y = (_local31.y + (_local34 * _local15)); _local29 = (_local29 + (_local35 * ((_local2.rB.x * _local15) - (_local2.rB.y * _local14)))); _local2.tangentImpulse = _local13; _local1++; }; _local42 = _local25.pointCount; if (_local25.pointCount == 1){ _local2 = _local25.points[0]; _local7 = (((_local31.x + (-(_local29) * _local2.rB.y)) - _local30.x) - (-(_local28) * _local2.rA.y)); _local8 = (((_local31.y + (_local29 * _local2.rB.x)) - _local30.y) - (_local28 * _local2.rA.x)); _local9 = ((_local7 * _local36) + (_local8 * _local37)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local13 = (_local2.normalImpulse + _local11); _local13 = ((_local13 > 0)) ? _local13 : 0; _local11 = (_local13 - _local2.normalImpulse); _local14 = (_local11 * _local36); _local15 = (_local11 * _local37); _local30.x = (_local30.x - (_local32 * _local14)); _local30.y = (_local30.y - (_local32 * _local15)); _local28 = (_local28 - (_local33 * ((_local2.rA.x * _local15) - (_local2.rA.y * _local14)))); _local31.x = (_local31.x + (_local34 * _local14)); _local31.y = (_local31.y + (_local34 * _local15)); _local29 = (_local29 + (_local35 * ((_local2.rB.x * _local15) - (_local2.rB.y * _local14)))); _local2.normalImpulse = _local13; } else { _local43 = _local25.points[0]; _local44 = _local25.points[1]; _local45 = _local43.normalImpulse; _local46 = _local44.normalImpulse; _local47 = (((_local31.x - (_local29 * _local43.rB.y)) - _local30.x) + (_local28 * _local43.rA.y)); _local48 = (((_local31.y + (_local29 * _local43.rB.x)) - _local30.y) - (_local28 * _local43.rA.x)); _local49 = (((_local31.x - (_local29 * _local44.rB.y)) - _local30.x) + (_local28 * _local44.rA.y)); _local50 = (((_local31.y + (_local29 * _local44.rB.x)) - _local30.y) - (_local28 * _local44.rA.x)); _local51 = ((_local47 * _local36) + (_local48 * _local37)); _local52 = ((_local49 * _local36) + (_local50 * _local37)); _local53 = (_local51 - _local43.velocityBias); _local54 = (_local52 - _local44.velocityBias); _local22 = _local25.K; _local53 = (_local53 - ((_local22.col1.x * _local45) + (_local22.col2.x * _local46))); _local54 = (_local54 - ((_local22.col1.y * _local45) + (_local22.col2.y * _local46))); _local55 = 0.001; while (true) { _local22 = _local25.normalMass; _local56 = -(((_local22.col1.x * _local53) + (_local22.col2.x * _local54))); _local57 = -(((_local22.col1.y * _local53) + (_local22.col2.y * _local54))); if ((((_local56 >= 0)) && ((_local57 >= 0)))){ _local16 = (_local56 - _local45); _local17 = (_local57 - _local46); _local18 = (_local16 * _local36); _local19 = (_local16 * _local37); _local20 = (_local17 * _local36); _local21 = (_local17 * _local37); _local30.x = (_local30.x - (_local32 * (_local18 + _local20))); _local30.y = (_local30.y - (_local32 * (_local19 + _local21))); _local28 = (_local28 - (_local33 * ((((_local43.rA.x * _local19) - (_local43.rA.y * _local18)) + (_local44.rA.x * _local21)) - (_local44.rA.y * _local20)))); _local31.x = (_local31.x + (_local34 * (_local18 + _local20))); _local31.y = (_local31.y + (_local34 * (_local19 + _local21))); _local29 = (_local29 + (_local35 * ((((_local43.rB.x * _local19) - (_local43.rB.y * _local18)) + (_local44.rB.x * _local21)) - (_local44.rB.y * _local20)))); _local43.normalImpulse = _local56; _local44.normalImpulse = _local57; break; }; _local56 = (-(_local43.normalMass) * _local53); _local57 = 0; _local51 = 0; _local52 = ((_local25.K.col1.y * _local56) + _local54); if ((((_local56 >= 0)) && ((_local52 >= 0)))){ _local16 = (_local56 - _local45); _local17 = (_local57 - _local46); _local18 = (_local16 * _local36); _local19 = (_local16 * _local37); _local20 = (_local17 * _local36); _local21 = (_local17 * _local37); _local30.x = (_local30.x - (_local32 * (_local18 + _local20))); _local30.y = (_local30.y - (_local32 * (_local19 + _local21))); _local28 = (_local28 - (_local33 * ((((_local43.rA.x * _local19) - (_local43.rA.y * _local18)) + (_local44.rA.x * _local21)) - (_local44.rA.y * _local20)))); _local31.x = (_local31.x + (_local34 * (_local18 + _local20))); _local31.y = (_local31.y + (_local34 * (_local19 + _local21))); _local29 = (_local29 + (_local35 * ((((_local43.rB.x * _local19) - (_local43.rB.y * _local18)) + (_local44.rB.x * _local21)) - (_local44.rB.y * _local20)))); _local43.normalImpulse = _local56; _local44.normalImpulse = _local57; break; }; _local56 = 0; _local57 = (-(_local44.normalMass) * _local54); _local51 = ((_local25.K.col2.x * _local57) + _local53); _local52 = 0; if ((((_local57 >= 0)) && ((_local51 >= 0)))){ _local16 = (_local56 - _local45); _local17 = (_local57 - _local46); _local18 = (_local16 * _local36); _local19 = (_local16 * _local37); _local20 = (_local17 * _local36); _local21 = (_local17 * _local37); _local30.x = (_local30.x - (_local32 * (_local18 + _local20))); _local30.y = (_local30.y - (_local32 * (_local19 + _local21))); _local28 = (_local28 - (_local33 * ((((_local43.rA.x * _local19) - (_local43.rA.y * _local18)) + (_local44.rA.x * _local21)) - (_local44.rA.y * _local20)))); _local31.x = (_local31.x + (_local34 * (_local18 + _local20))); _local31.y = (_local31.y + (_local34 * (_local19 + _local21))); _local29 = (_local29 + (_local35 * ((((_local43.rB.x * _local19) - (_local43.rB.y * _local18)) + (_local44.rB.x * _local21)) - (_local44.rB.y * _local20)))); _local43.normalImpulse = _local56; _local44.normalImpulse = _local57; break; }; _local56 = 0; _local57 = 0; _local51 = _local53; _local52 = _local54; if ((((_local51 >= 0)) && ((_local52 >= 0)))){ _local16 = (_local56 - _local45); _local17 = (_local57 - _local46); _local18 = (_local16 * _local36); _local19 = (_local16 * _local37); _local20 = (_local17 * _local36); _local21 = (_local17 * _local37); _local30.x = (_local30.x - (_local32 * (_local18 + _local20))); _local30.y = (_local30.y - (_local32 * (_local19 + _local21))); _local28 = (_local28 - (_local33 * ((((_local43.rA.x * _local19) - (_local43.rA.y * _local18)) + (_local44.rA.x * _local21)) - (_local44.rA.y * _local20)))); _local31.x = (_local31.x + (_local34 * (_local18 + _local20))); _local31.y = (_local31.y + (_local34 * (_local19 + _local21))); _local29 = (_local29 + (_local35 * ((((_local43.rB.x * _local19) - (_local43.rB.y * _local18)) + (_local44.rB.x * _local21)) - (_local44.rB.y * _local20)))); _local43.normalImpulse = _local56; _local44.normalImpulse = _local57; break; }; break; }; }; _local26.m_angularVelocity = _local28; _local27.m_angularVelocity = _local29; _local24++; }; } 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.m_points[_local4]; _local6 = _local2.points[_local4]; _local5.m_normalImpulse = _local6.normalImpulse; _local5.m_tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local4:b2ContactConstraint; var _local5:b2Body; var _local6:b2Body; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:int; var _local13:b2ContactConstraintPoint; var _local14:b2Vec2; 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 _local2:Number = 0; var _local3:int; while (_local3 < m_constraintCount) { _local4 = m_constraints[_local3]; _local5 = _local4.bodyA; _local6 = _local4.bodyB; _local7 = (_local5.m_mass * _local5.m_invMass); _local8 = (_local5.m_mass * _local5.m_invI); _local9 = (_local6.m_mass * _local6.m_invMass); _local10 = (_local6.m_mass * _local6.m_invI); s_psm.Initialize(_local4); _local11 = s_psm.m_normal; _local12 = 0; while (_local12 < _local4.pointCount) { _local13 = _local4.points[_local12]; _local14 = s_psm.m_points[_local12]; _local15 = s_psm.m_separations[_local12]; _local16 = (_local14.x - _local5.m_sweep.c.x); _local17 = (_local14.y - _local5.m_sweep.c.y); _local18 = (_local14.x - _local6.m_sweep.c.x); _local19 = (_local14.y - _local6.m_sweep.c.y); _local2 = ((_local2 < _local15)) ? _local2 : _local15; _local20 = b2Math.Clamp((_arg1 * (_local15 + b2Settings.b2_linearSlop)), -(b2Settings.b2_maxLinearCorrection), 0); _local21 = (-(_local13.equalizedMass) * _local20); _local22 = (_local21 * _local11.x); _local23 = (_local21 * _local11.y); _local5.m_sweep.c.x = (_local5.m_sweep.c.x - (_local7 * _local22)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y - (_local7 * _local23)); _local5.m_sweep.a = (_local5.m_sweep.a - (_local8 * ((_local16 * _local23) - (_local17 * _local22)))); _local5.SynchronizeTransform(); _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_local9 * _local22)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_local9 * _local23)); _local6.m_sweep.a = (_local6.m_sweep.a + (_local10 * ((_local18 * _local23) - (_local19 * _local22)))); _local6.SynchronizeTransform(); _local12++; }; _local3++; }; return ((_local2 > (-1.5 * b2Settings.b2_linearSlop))); } } }//package Box2D.Dynamics.Contacts
Section 51
//b2EdgeAndCircleContact (Box2D.Dynamics.Contacts.b2EdgeAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2EdgeAndCircleContact extends b2Contact { public function Reset(_arg1:b2Fixture, _arg2:b2Fixture):void{ super.Reset(_arg1, _arg2); } override b2internal function Evaluate():void{ var _local1:b2Body = m_fixtureA.GetBody(); var _local2:b2Body = m_fixtureB.GetBody(); b2CollideEdgeAndCircle(m_manifold, (m_fixtureA.GetShape() as b2EdgeShape), _local1.m_xf, (m_fixtureB.GetShape() as b2CircleShape), _local2.m_xf); } private function b2CollideEdgeAndCircle(_arg1:b2Manifold, _arg2:b2EdgeShape, _arg3:b2Transform, _arg4:b2CircleShape, _arg5:b2Transform):void{ } public static function Create(_arg1):b2Contact{ return (new (b2EdgeAndCircleContact)); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } } }//package Box2D.Dynamics.Contacts
Section 52
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { public function Reset(_arg1:b2Fixture, _arg2:b2Fixture):void{ super.Reset(_arg1, _arg2); b2Settings.b2Assert((_arg1.GetType() == b2Shape.e_polygonShape)); b2Settings.b2Assert((_arg2.GetType() == b2Shape.e_circleShape)); } override b2internal function Evaluate():void{ var _local1:b2Body = m_fixtureA.m_body; var _local2:b2Body = m_fixtureB.m_body; b2Collision.CollidePolygonAndCircle(m_manifold, (m_fixtureA.GetShape() as b2PolygonShape), _local1.m_xf, (m_fixtureB.GetShape() as b2CircleShape), _local2.m_xf); } public static function Create(_arg1):b2Contact{ return (new (b2PolyAndCircleContact)); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } } }//package Box2D.Dynamics.Contacts
Section 53
//b2PolyAndEdgeContact (Box2D.Dynamics.Contacts.b2PolyAndEdgeContact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2PolyAndEdgeContact extends b2Contact { public function Reset(_arg1:b2Fixture, _arg2:b2Fixture):void{ super.Reset(_arg1, _arg2); b2Settings.b2Assert((_arg1.GetType() == b2Shape.e_polygonShape)); b2Settings.b2Assert((_arg2.GetType() == b2Shape.e_edgeShape)); } override b2internal function Evaluate():void{ var _local1:b2Body = m_fixtureA.GetBody(); var _local2:b2Body = m_fixtureB.GetBody(); b2CollidePolyAndEdge(m_manifold, (m_fixtureA.GetShape() as b2PolygonShape), _local1.m_xf, (m_fixtureB.GetShape() as b2EdgeShape), _local2.m_xf); } private function b2CollidePolyAndEdge(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2Transform, _arg4:b2EdgeShape, _arg5:b2Transform):void{ } public static function Create(_arg1):b2Contact{ return (new (b2PolyAndEdgeContact)); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } } }//package Box2D.Dynamics.Contacts
Section 54
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2PolygonContact extends b2Contact { public function Reset(_arg1:b2Fixture, _arg2:b2Fixture):void{ super.Reset(_arg1, _arg2); } override b2internal function Evaluate():void{ var _local1:b2Body = m_fixtureA.GetBody(); var _local2:b2Body = m_fixtureB.GetBody(); b2Collision.CollidePolygons(m_manifold, (m_fixtureA.GetShape() as b2PolygonShape), _local1.m_xf, (m_fixtureB.GetShape() as b2PolygonShape), _local2.m_xf); } public static function Create(_arg1):b2Contact{ return (new (b2PolygonContact)); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } } }//package Box2D.Dynamics.Contacts
Section 55
//b2PositionSolverManifold (Box2D.Dynamics.Contacts.b2PositionSolverManifold) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; class b2PositionSolverManifold { public var m_normal:b2Vec2; public var m_points:Array; public var m_separations:Array; private static var circlePointA:b2Vec2 = new b2Vec2(); private static var circlePointB:b2Vec2 = new b2Vec2(); function b2PositionSolverManifold(){ m_normal = new b2Vec2(); m_separations = new Array(b2Settings.b2_maxManifoldPoints); m_points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { m_points[_local1] = new b2Vec2(); _local1++; }; } public function Initialize(_arg1:b2ContactConstraint):void{ var _local2:int; var _local3:Number; var _local4:Number; var _local5:b2Mat22; var _local6:b2Vec2; 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; b2Settings.b2Assert((_arg1.pointCount > 0)); switch (_arg1.type){ case b2Manifold.e_circles: _local5 = _arg1.bodyA.m_xf.R; _local6 = _arg1.localPoint; _local9 = (_arg1.bodyA.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local10 = (_arg1.bodyA.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); _local5 = _arg1.bodyB.m_xf.R; _local6 = _arg1.points[0].localPoint; _local11 = (_arg1.bodyB.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local12 = (_arg1.bodyB.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = ((_local13 * _local13) + (_local14 * _local14)); if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local16 = Math.sqrt(_local15); m_normal.x = (_local13 / _local16); m_normal.y = (_local14 / _local16); } else { m_normal.x = 1; m_normal.y = 0; }; m_points[0].x = (0.5 * (_local9 + _local11)); m_points[0].y = (0.5 * (_local10 + _local12)); m_separations[0] = (((_local13 * m_normal.x) + (_local14 * m_normal.y)) - _arg1.radius); break; case b2Manifold.e_faceA: _local5 = _arg1.bodyA.m_xf.R; _local6 = _arg1.localPlaneNormal; m_normal.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_normal.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); _local5 = _arg1.bodyA.m_xf.R; _local6 = _arg1.localPoint; _local7 = (_arg1.bodyA.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local8 = (_arg1.bodyA.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); _local5 = _arg1.bodyB.m_xf.R; _local2 = 0; while (_local2 < _arg1.pointCount) { _local6 = _arg1.points[_local2].localPoint; _local3 = (_arg1.bodyB.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local4 = (_arg1.bodyB.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); m_separations[_local2] = ((((_local3 - _local7) * m_normal.x) + ((_local4 - _local8) * m_normal.y)) - _arg1.radius); m_points[_local2].x = _local3; m_points[_local2].y = _local4; _local2++; }; break; case b2Manifold.e_faceB: _local5 = _arg1.bodyB.m_xf.R; _local6 = _arg1.localPlaneNormal; m_normal.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_normal.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); _local5 = _arg1.bodyB.m_xf.R; _local6 = _arg1.localPoint; _local7 = (_arg1.bodyB.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local8 = (_arg1.bodyB.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); _local5 = _arg1.bodyA.m_xf.R; _local2 = 0; while (_local2 < _arg1.pointCount) { _local6 = _arg1.points[_local2].localPoint; _local3 = (_arg1.bodyA.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local4 = (_arg1.bodyA.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); m_separations[_local2] = ((((_local3 - _local7) * m_normal.x) + ((_local4 - _local8) * m_normal.y)) - _arg1.radius); m_points[_local2].Set(_local3, _local4); _local2++; }; m_normal.x = (m_normal.x * -1); m_normal.y = (m_normal.y * -1); break; }; } } }//package Box2D.Dynamics.Contacts
Section 56
//b2BuoyancyController (Box2D.Dynamics.Controllers.b2BuoyancyController) package Box2D.Dynamics.Controllers { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2BuoyancyController extends b2Controller { public var normal:b2Vec2; public var offset:Number;// = 0 public var density:Number;// = 0 public var velocity:b2Vec2; public var linearDrag:Number;// = 2 public var angularDrag:Number;// = 1 public var useDensity:Boolean;// = false public var useWorldGravity:Boolean;// = true public var gravity:b2Vec2;// = null public function b2BuoyancyController(){ normal = new b2Vec2(0, -1); velocity = new b2Vec2(0, 0); super(); } override public function Step(_arg1:b2TimeStep):void{ var _local3:b2Body; var _local4:b2Vec2; var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:b2Fixture; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; if (!m_bodyList){ return; }; if (useWorldGravity){ gravity = GetWorld().GetGravity().Copy(); }; var _local2:b2ControllerEdge = m_bodyList; while (_local2) { _local3 = _local2.body; if (_local3.IsAwake() == false){ } else { _local4 = new b2Vec2(); _local5 = new b2Vec2(); _local6 = 0; _local7 = 0; _local8 = _local3.GetFixtureList(); while (_local8) { _local11 = new b2Vec2(); _local12 = _local8.GetShape().ComputeSubmergedArea(normal, offset, _local3.GetTransform(), _local11); _local6 = (_local6 + _local12); _local4.x = (_local4.x + (_local12 * _local11.x)); _local4.y = (_local4.y + (_local12 * _local11.y)); if (useDensity){ _local13 = 1; } else { _local13 = 1; }; _local7 = (_local7 + (_local12 * _local13)); _local5.x = (_local5.x + ((_local12 * _local11.x) * _local13)); _local5.y = (_local5.y + ((_local12 * _local11.y) * _local13)); _local8 = _local8.GetNext(); }; _local4.x = (_local4.x / _local6); _local4.y = (_local4.y / _local6); _local5.x = (_local5.x / _local7); _local5.y = (_local5.y / _local7); if (_local6 < Number.MIN_VALUE){ } else { _local9 = gravity.GetNegative(); _local9.Multiply((density * _local6)); _local3.ApplyForce(_local9, _local5); _local10 = _local3.GetLinearVelocityFromWorldPoint(_local4); _local10.Subtract(velocity); _local10.Multiply((-(linearDrag) * _local6)); _local3.ApplyForce(_local10, _local4); _local3.ApplyTorque(((((-(_local3.GetInertia()) / _local3.GetMass()) * _local6) * _local3.GetAngularVelocity()) * angularDrag)); }; }; _local2 = _local2.nextBody; }; } override public function Draw(_arg1:b2DebugDraw):void{ var _local3:b2Vec2; var _local4:b2Vec2; var _local2:Number = 1000; _local3 = new b2Vec2(); _local4 = new b2Vec2(); _local3.x = ((normal.x * offset) + (normal.y * _local2)); _local3.y = ((normal.y * offset) - (normal.x * _local2)); _local4.x = ((normal.x * offset) - (normal.y * _local2)); _local4.y = ((normal.y * offset) + (normal.x * _local2)); var _local5:b2Color = new b2Color(0, 0, 1); _arg1.DrawSegment(_local3, _local4, _local5); } } }//package Box2D.Dynamics.Controllers
Section 57
//b2ConstantAccelController (Box2D.Dynamics.Controllers.b2ConstantAccelController) package Box2D.Dynamics.Controllers { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2ConstantAccelController extends b2Controller { public var A:b2Vec2; public function b2ConstantAccelController(){ A = new b2Vec2(0, 0); super(); } override public function Step(_arg1:b2TimeStep):void{ var _local4:b2Body; var _local2:b2Vec2 = new b2Vec2((A.x * _arg1.dt), (A.y * _arg1.dt)); var _local3:b2ControllerEdge = m_bodyList; while (_local3) { _local4 = _local3.body; if (!_local4.IsAwake()){ } else { _local4.SetLinearVelocity(new b2Vec2((_local4.GetLinearVelocity().x + _local2.x), (_local4.GetLinearVelocity().y + _local2.y))); }; _local3 = _local3.nextBody; }; } } }//package Box2D.Dynamics.Controllers
Section 58
//b2Controller (Box2D.Dynamics.Controllers.b2Controller) package Box2D.Dynamics.Controllers { import Box2D.Dynamics.*; import Box2D.Common.*; public class b2Controller { b2internal var m_next:b2Controller; b2internal var m_prev:b2Controller; protected var m_bodyList:b2ControllerEdge; protected var m_bodyCount:int; b2internal var m_world:b2World; public function Step(_arg1:b2TimeStep):void{ } public function Draw(_arg1:b2DebugDraw):void{ } public function AddBody(_arg1:b2Body):void{ var _local2:b2ControllerEdge = new b2ControllerEdge(); _local2.controller = this; _local2.body = _arg1; _local2.nextBody = m_bodyList; _local2.prevBody = null; m_bodyList = _local2; if (_local2.nextBody){ _local2.nextBody.prevBody = _local2; }; m_bodyCount++; _local2.nextController = _arg1.m_controllerList; _local2.prevController = null; _arg1.m_controllerList = _local2; if (_local2.nextController){ _local2.nextController.prevController = _local2; }; _arg1.m_controllerCount++; } public function RemoveBody(_arg1:b2Body):void{ var _local2:b2ControllerEdge = _arg1.m_controllerList; while (((_local2) && (!((_local2.controller == this))))) { _local2 = _local2.nextController; }; if (_local2.prevBody){ _local2.prevBody.nextBody = _local2.nextBody; }; if (_local2.nextBody){ _local2.nextBody.prevBody = _local2.prevBody; }; if (_local2.nextController){ _local2.nextController.prevController = _local2.prevController; }; if (_local2.prevController){ _local2.prevController.nextController = _local2.nextController; }; if (m_bodyList == _local2){ m_bodyList = _local2.nextBody; }; if (_arg1.m_controllerList == _local2){ _arg1.m_controllerList = _local2.nextController; }; _arg1.m_controllerCount--; m_bodyCount--; } public function Clear():void{ while (m_bodyList) { RemoveBody(m_bodyList.body); }; } public function GetNext():b2Controller{ return (m_next); } public function GetWorld():b2World{ return (m_world); } public function GetBodyList():b2ControllerEdge{ return (m_bodyList); } } }//package Box2D.Dynamics.Controllers
Section 59
//b2ControllerEdge (Box2D.Dynamics.Controllers.b2ControllerEdge) package Box2D.Dynamics.Controllers { import Box2D.Dynamics.*; public class b2ControllerEdge { public var controller:b2Controller; public var body:b2Body; public var prevBody:b2ControllerEdge; public var nextBody:b2ControllerEdge; public var prevController:b2ControllerEdge; public var nextController:b2ControllerEdge; } }//package Box2D.Dynamics.Controllers
Section 60
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { private var m_localAnchor1:b2Vec2; private var m_localAnchor2:b2Vec2; private var m_u:b2Vec2; private var m_frequencyHz:Number; private var m_dampingRatio:Number; private var m_gamma:Number; private var m_bias:Number; private var m_impulse:Number; private var m_mass:Number; private 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.localAnchorA); m_localAnchor2.SetV(_arg1.localAnchorB); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchor1)); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2(((_arg1 * m_impulse) * m_u.x), ((_arg1 * m_impulse) * m_u.y))); } override public function GetReactionTorque(_arg1:Number):Number{ return (0); } public function GetLength():Number{ return (m_length); } public function SetLength(_arg1:Number):void{ m_length = _arg1; } public function GetFrequency():Number{ return (m_frequencyHz); } public function SetFrequency(_arg1:Number):void{ m_frequencyHz = _arg1; } public function GetDampingRatio():Number{ return (m_dampingRatio); } public function SetDampingRatio(_arg1:Number):void{ m_dampingRatio = _arg1; } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local7:Number; var _local9:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; _local4 = m_bodyA; _local5 = m_bodyB; _local2 = _local4.m_xf.R; var _local6:Number = (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; var _local8:Number = (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 = ((_local13)!=0) ? (1 / _local13) : 0; 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 = (_arg1.dt * (_local16 + (_arg1.dt * _local17))); m_gamma = ((m_gamma)!=0) ? (1 / m_gamma) : 0; m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (_local13 + m_gamma); m_mass = ((m_mass)!=0) ? (1 / m_mass) : 0; }; 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 b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body = m_bodyA; var _local4:b2Body = m_bodyB; _local2 = _local3.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local7:Number = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); var _local11:Number = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); var _local12:Number = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); var _local13:Number = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); var _local14:Number = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); var _local15:Number = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); var _local16:Number = (_local15 * m_u.x); var _local17:Number = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:b2Mat22; if (m_frequencyHz > 0){ return (true); }; var _local3:b2Body = m_bodyA; var _local4:b2Body = m_bodyB; _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 = (((_local4.m_sweep.c.x + _local8) - _local3.m_sweep.c.x) - _local5); var _local11:Number = (((_local4.m_sweep.c.y + _local9) - _local3.m_sweep.c.y) - _local6); var _local12:Number = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local12); _local11 = (_local11 / _local12); var _local13:Number = (_local12 - m_length); _local13 = b2Math.Clamp(_local13, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local14:Number = (-(m_mass) * _local13); m_u.Set(_local10, _local11); var _local15:Number = (_local14 * m_u.x); var _local16:Number = (_local14 * m_u.y); _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local15)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local16)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local5 * _local16) - (_local6 * _local15)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local15)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local16)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); return ((b2Math.Abs(_local13) < b2Settings.b2_linearSlop)); } } }//package Box2D.Dynamics.Joints
Section 61
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2DistanceJointDef extends b2JointDef { public var localAnchorA:b2Vec2; public var localAnchorB:b2Vec2; public var length:Number; public var frequencyHz:Number; public var dampingRatio:Number; public function b2DistanceJointDef(){ localAnchorA = new b2Vec2(); localAnchorB = 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{ bodyA = _arg1; bodyB = _arg2; localAnchorA.SetV(bodyA.GetLocalPoint(_arg3)); localAnchorB.SetV(bodyB.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 62
//b2FrictionJoint (Box2D.Dynamics.Joints.b2FrictionJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2FrictionJoint extends b2Joint { private var m_localAnchorA:b2Vec2; private var m_localAnchorB:b2Vec2; public var m_linearMass:b2Mat22; public var m_angularMass:Number; private var m_linearImpulse:b2Vec2; private var m_angularImpulse:Number; private var m_maxForce:Number; private var m_maxTorque:Number; public function b2FrictionJoint(_arg1:b2FrictionJointDef){ m_localAnchorA = new b2Vec2(); m_localAnchorB = new b2Vec2(); m_linearMass = new b2Mat22(); m_linearImpulse = new b2Vec2(); super(_arg1); m_localAnchorA.SetV(_arg1.localAnchorA); m_localAnchorB.SetV(_arg1.localAnchorB); m_linearMass.SetZero(); m_angularMass = 0; m_linearImpulse.SetZero(); m_angularImpulse = 0; m_maxForce = _arg1.maxForce; m_maxTorque = _arg1.maxTorque; } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchorA)); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchorB)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2((_arg1 * m_linearImpulse.x), (_arg1 * m_linearImpulse.y))); } override public function GetReactionTorque(_arg1:Number):Number{ return ((_arg1 * m_angularImpulse)); } public function SetMaxForce(_arg1:Number):void{ m_maxForce = _arg1; } public function GetMaxForce():Number{ return (m_maxForce); } public function SetMaxTorque(_arg1:Number):void{ m_maxTorque = _arg1; } public function GetMaxTorque():Number{ return (m_maxTorque); } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local8:Number; var _local10:Number; var _local12:Number; var _local13:Number; var _local14:b2Mat22; var _local15:b2Vec2; _local4 = m_bodyA; _local5 = m_bodyB; _local2 = _local4.m_xf.R; _local6 = (m_localAnchorA.x - _local4.m_sweep.localCenter.x); var _local7:Number = (m_localAnchorA.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_localAnchorB.x - _local5.m_sweep.localCenter.x); var _local9:Number = (m_localAnchorB.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; _local10 = _local4.m_invMass; var _local11:Number = _local5.m_invMass; _local12 = _local4.m_invI; _local13 = _local5.m_invI; _local14 = new b2Mat22(); _local14.col1.x = (_local10 + _local11); _local14.col2.x = 0; _local14.col1.y = 0; _local14.col2.y = (_local10 + _local11); _local14.col1.x = (_local14.col1.x + ((_local12 * _local7) * _local7)); _local14.col2.x = (_local14.col2.x + ((-(_local12) * _local6) * _local7)); _local14.col1.y = (_local14.col1.y + ((-(_local12) * _local6) * _local7)); _local14.col2.y = (_local14.col2.y + ((_local12 * _local6) * _local6)); _local14.col1.x = (_local14.col1.x + ((_local13 * _local9) * _local9)); _local14.col2.x = (_local14.col2.x + ((-(_local13) * _local8) * _local9)); _local14.col1.y = (_local14.col1.y + ((-(_local13) * _local8) * _local9)); _local14.col2.y = (_local14.col2.y + ((_local13 * _local8) * _local8)); _local14.GetInverse(m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > 0){ m_angularMass = (1 / m_angularMass); }; if (_arg1.warmStarting){ m_linearImpulse.x = (m_linearImpulse.x * _arg1.dtRatio); m_linearImpulse.y = (m_linearImpulse.y * _arg1.dtRatio); m_angularImpulse = (m_angularImpulse * _arg1.dtRatio); _local15 = m_linearImpulse; _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local10 * _local15.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local10 * _local15.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local12 * (((_local6 * _local15.y) - (_local7 * _local15.x)) + m_angularImpulse))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local11 * _local15.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local11 * _local15.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local13 * (((_local8 * _local15.y) - (_local9 * _local15.x)) + m_angularImpulse))); } else { m_linearImpulse.SetZero(); m_angularImpulse = 0; }; } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local18:Number; var _local4:b2Body = m_bodyA; var _local5:b2Body = m_bodyB; var _local6:b2Vec2 = _local4.m_linearVelocity; var _local7:Number = _local4.m_angularVelocity; var _local8:b2Vec2 = _local5.m_linearVelocity; var _local9:Number = _local5.m_angularVelocity; var _local10:Number = _local4.m_invMass; var _local11:Number = _local5.m_invMass; var _local12:Number = _local4.m_invI; var _local13:Number = _local5.m_invI; _local2 = _local4.m_xf.R; var _local14:Number = (m_localAnchorA.x - _local4.m_sweep.localCenter.x); var _local15:Number = (m_localAnchorA.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local14) + (_local2.col2.x * _local15)); _local15 = ((_local2.col1.y * _local14) + (_local2.col2.y * _local15)); _local14 = _local3; _local2 = _local5.m_xf.R; var _local16:Number = (m_localAnchorB.x - _local5.m_sweep.localCenter.x); var _local17:Number = (m_localAnchorB.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local16) + (_local2.col2.x * _local17)); _local17 = ((_local2.col1.y * _local16) + (_local2.col2.y * _local17)); _local16 = _local3; var _local19:Number = (_local9 - _local7); var _local20:Number = (-(m_angularMass) * _local19); var _local21:Number = m_angularImpulse; _local18 = (_arg1.dt * m_maxTorque); m_angularImpulse = b2Math.Clamp((m_angularImpulse + _local20), -(_local18), _local18); _local20 = (m_angularImpulse - _local21); _local7 = (_local7 - (_local12 * _local20)); _local9 = (_local9 + (_local13 * _local20)); var _local22:Number = (((_local8.x - (_local9 * _local17)) - _local6.x) + (_local7 * _local15)); var _local23:Number = (((_local8.y + (_local9 * _local16)) - _local6.y) - (_local7 * _local14)); var _local24:b2Vec2 = b2Math.MulMV(m_linearMass, new b2Vec2(-(_local22), -(_local23))); var _local25:b2Vec2 = m_linearImpulse.Copy(); m_linearImpulse.Add(_local24); _local18 = (_arg1.dt * m_maxForce); if (m_linearImpulse.LengthSquared() > (_local18 * _local18)){ m_linearImpulse.Normalize(); m_linearImpulse.Multiply(_local18); }; _local24 = b2Math.SubtractVV(m_linearImpulse, _local25); _local6.x = (_local6.x - (_local10 * _local24.x)); _local6.y = (_local6.y - (_local10 * _local24.y)); _local7 = (_local7 - (_local12 * ((_local14 * _local24.y) - (_local15 * _local24.x)))); _local8.x = (_local8.x + (_local11 * _local24.x)); _local8.y = (_local8.y + (_local11 * _local24.y)); _local9 = (_local9 + (_local13 * ((_local16 * _local24.y) - (_local17 * _local24.x)))); _local4.m_angularVelocity = _local7; _local5.m_angularVelocity = _local9; } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ return (true); } } }//package Box2D.Dynamics.Joints
Section 63
//b2FrictionJointDef (Box2D.Dynamics.Joints.b2FrictionJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2FrictionJointDef extends b2JointDef { public var localAnchorA:b2Vec2; public var localAnchorB:b2Vec2; public var maxForce:Number; public var maxTorque:Number; public function b2FrictionJointDef(){ localAnchorA = new b2Vec2(); localAnchorB = new b2Vec2(); super(); type = b2Joint.e_frictionJoint; maxForce = 0; maxTorque = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ bodyA = _arg1; bodyB = _arg2; localAnchorA.SetV(bodyA.GetLocalPoint(_arg3)); localAnchorB.SetV(bodyB.GetLocalPoint(_arg3)); } } }//package Box2D.Dynamics.Joints
Section 64
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { private var m_ground1:b2Body; private var m_ground2:b2Body; private var m_revolute1:b2RevoluteJoint; private var m_prismatic1:b2PrismaticJoint; private var m_revolute2:b2RevoluteJoint; private var m_prismatic2:b2PrismaticJoint; private var m_groundAnchor1:b2Vec2; private var m_groundAnchor2:b2Vec2; private var m_localAnchor1:b2Vec2; private var m_localAnchor2:b2Vec2; private var m_J:b2Jacobian; private var m_constant:Number; private var m_ratio:Number; private var m_mass:Number; private var m_impulse:Number; public function b2GearJoint(_arg1:b2GearJointDef){ var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); var _local2:int = _arg1.joint1.m_type; var _local3:int = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.GetBodyA(); m_bodyA = _arg1.joint1.GetBodyB(); 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.GetBodyA(); m_bodyB = _arg1.joint2.GetBodyB(); 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_impulse = 0; } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchor1)); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2(((_arg1 * m_impulse) * m_J.linearB.x), ((_arg1 * m_impulse) * m_J.linearB.y))); } override public function GetReactionTorque(_arg1:Number):Number{ var _local2:b2Mat22 = m_bodyB.m_xf.R; var _local3:Number = (m_localAnchor1.x - m_bodyB.m_sweep.localCenter.x); var _local4:Number = (m_localAnchor1.y - m_bodyB.m_sweep.localCenter.y); var _local5:Number = ((_local2.col1.x * _local3) + (_local2.col2.x * _local4)); _local4 = ((_local2.col1.y * _local3) + (_local2.col2.y * _local4)); _local3 = _local5; var _local6:Number = (m_impulse * m_J.linearB.x); var _local7:Number = (m_impulse * m_J.linearB.y); return ((_arg1 * (((m_impulse * m_J.angularB) - (_local3 * _local7)) + (_local4 * _local6)))); } public function GetRatio():Number{ return (m_ratio); } public function SetRatio(_arg1:Number):void{ m_ratio = _arg1; } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4: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 _local2:b2Body = m_ground1; var _local3:b2Body = m_ground2; _local4 = m_bodyA; var _local5:b2Body = m_bodyB; var _local14:Number = 0; m_J.SetZero(); if (m_revolute1){ m_J.angularA = -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.linearA.Set(-(_local6), -(_local7)); m_J.angularA = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angularB = -(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.linearB.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angularB = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = ((_local14 > 0)) ? (1 / _local14) : 0; if (_arg1.warmStarting){ _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * m_impulse) * m_J.linearA.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * m_impulse) * m_J.linearA.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * m_impulse) * m_J.angularA)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * m_impulse) * m_J.linearB.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * m_impulse) * m_J.linearB.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * m_impulse) * m_J.angularB)); } else { m_impulse = 0; }; } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; var _local4:Number = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local5:Number = (-(m_mass) * _local4); m_impulse = (m_impulse + _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local5) * m_J.linearA.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local5) * m_J.linearA.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local5) * m_J.angularA)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local5) * m_J.linearB.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local5) * m_J.linearB.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local5) * m_J.angularB)); } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local5:Number; var _local6:Number; var _local2:Number = 0; var _local3:b2Body = m_bodyA; var _local4:b2Body = m_bodyB; if (m_revolute1){ _local5 = m_revolute1.GetJointAngle(); } else { _local5 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local6 = m_revolute2.GetJointAngle(); } else { _local6 = m_prismatic2.GetJointTranslation(); }; var _local7:Number = (m_constant - (_local5 + (m_ratio * _local6))); var _local8:Number = (-(m_mass) * _local7); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local8) * m_J.linearA.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local8) * m_J.linearA.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local8) * m_J.angularA)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local4.m_invMass * _local8) * m_J.linearB.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local4.m_invMass * _local8) * m_J.linearB.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local4.m_invI * _local8) * m_J.angularB)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); return ((_local2 < b2Settings.b2_linearSlop)); } } }//package Box2D.Dynamics.Joints
Section 65
//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 66
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linearA:b2Vec2; public var angularA:Number; public var linearB:b2Vec2; public var angularB:Number; public function b2Jacobian(){ linearA = new b2Vec2(); linearB = new b2Vec2(); super(); } public function SetZero():void{ linearA.SetZero(); angularA = 0; linearB.SetZero(); angularB = 0; } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linearA.SetV(_arg1); angularA = _arg2; linearB.SetV(_arg3); angularB = _arg4; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linearA.x * _arg1.x) + (linearA.y * _arg1.y)) + (angularA * _arg2)) + ((linearB.x * _arg3.x) + (linearB.y * _arg3.y))) + (angularB * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 67
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2Joint { b2internal var m_type:int; b2internal var m_prev:b2Joint; b2internal var m_next:b2Joint; b2internal var m_edgeA:b2JointEdge; b2internal var m_edgeB:b2JointEdge; b2internal var m_bodyA:b2Body; b2internal var m_bodyB:b2Body; b2internal var m_islandFlag:Boolean; b2internal var m_collideConnected:Boolean; private var m_userData; b2internal var m_localCenterA:b2Vec2; b2internal var m_localCenterB:b2Vec2; b2internal var m_invMassA:Number; b2internal var m_invMassB:Number; b2internal var m_invIA:Number; b2internal var m_invIB:Number; b2internal static const e_unknownJoint:int = 0; b2internal static const e_revoluteJoint:int = 1; b2internal static const e_prismaticJoint:int = 2; b2internal static const e_distanceJoint:int = 3; b2internal static const e_pulleyJoint:int = 4; b2internal static const e_mouseJoint:int = 5; b2internal static const e_gearJoint:int = 6; b2internal static const e_lineJoint:int = 7; b2internal static const e_weldJoint:int = 8; b2internal static const e_frictionJoint:int = 9; b2internal static const e_inactiveLimit:int = 0; b2internal static const e_atLowerLimit:int = 1; b2internal static const e_atUpperLimit:int = 2; b2internal static const e_equalLimits:int = 3; public function b2Joint(_arg1:b2JointDef){ m_edgeA = new b2JointEdge(); m_edgeB = new b2JointEdge(); m_localCenterA = new b2Vec2(); m_localCenterB = new b2Vec2(); super(); b2Settings.b2Assert(!((_arg1.bodyA == _arg1.bodyB))); m_type = _arg1.type; m_prev = null; m_next = null; m_bodyA = _arg1.bodyA; m_bodyB = _arg1.bodyB; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetType():int{ return (m_type); } public function GetAnchorA():b2Vec2{ return (null); } public function GetAnchorB():b2Vec2{ return (null); } public function GetReactionForce(_arg1:Number):b2Vec2{ return (null); } public function GetReactionTorque(_arg1:Number):Number{ return (0); } public function GetBodyA():b2Body{ return (m_bodyA); } public function GetBodyB():b2Body{ return (m_bodyB); } public function GetNext():b2Joint{ return (m_next); } public function GetUserData(){ return (m_userData); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function IsActive():Boolean{ return (((m_bodyA.IsActive()) && (m_bodyB.IsActive()))); } b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ } b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } b2internal function FinalizeVelocityConstraints():void{ } b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ return (false); } b2internal 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; case e_lineJoint: _local3 = new b2LineJoint((_arg1 as b2LineJointDef)); break; case e_weldJoint: _local3 = new b2WeldJoint((_arg1 as b2WeldJointDef)); break; case e_frictionJoint: _local3 = new b2FrictionJoint((_arg1 as b2FrictionJointDef)); break; default: break; }; return (_local3); } b2internal static function Destroy(_arg1:b2Joint, _arg2):void{ } } }//package Box2D.Dynamics.Joints
Section 68
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var type:int; public var userData; public var bodyA:b2Body; public var bodyB:b2Body; public var collideConnected:Boolean; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; bodyA = null; bodyB = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 69
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var other:b2Body; public var joint:b2Joint; public var prev:b2JointEdge; public var next:b2JointEdge; } }//package Box2D.Dynamics.Joints
Section 70
//b2LineJoint (Box2D.Dynamics.Joints.b2LineJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2LineJoint extends b2Joint { b2internal var m_localAnchor1:b2Vec2; b2internal var m_localAnchor2:b2Vec2; b2internal var m_localXAxis1:b2Vec2; private var m_localYAxis1:b2Vec2; private var m_axis:b2Vec2; private var m_perp:b2Vec2; private var m_s1:Number; private var m_s2:Number; private var m_a1:Number; private var m_a2:Number; private var m_K:b2Mat22; private var m_impulse:b2Vec2; private var m_motorMass:Number; private var m_motorImpulse:Number; private var m_lowerTranslation:Number; private var m_upperTranslation:Number; private var m_maxMotorForce:Number; private var m_motorSpeed:Number; private var m_enableLimit:Boolean; private var m_enableMotor:Boolean; private var m_limitState:int; public function b2LineJoint(_arg1:b2LineJointDef){ 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_axis = new b2Vec2(); m_perp = new b2Vec2(); m_K = new b2Mat22(); m_impulse = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchorA); m_localAnchor2.SetV(_arg1.localAnchorB); m_localXAxis1.SetV(_arg1.localAxisA); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_impulse.SetZero(); m_motorMass = 0; m_motorImpulse = 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; m_limitState = e_inactiveLimit; m_axis.SetZero(); m_perp.SetZero(); } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchor1)); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2((_arg1 * ((m_impulse.x * m_perp.x) + ((m_motorImpulse + m_impulse.y) * m_axis.x))), (_arg1 * ((m_impulse.x * m_perp.y) + ((m_motorImpulse + m_impulse.y) * m_axis.y))))); } override public function GetReactionTorque(_arg1:Number):Number{ return ((_arg1 * m_impulse.y)); } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_bodyA; var _local2:b2Body = m_bodyB; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_bodyA; var _local2:b2Body = m_bodyB; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function EnableLimit(_arg1:Boolean):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_enableLimit = _arg1; } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function EnableMotor(_arg1:Boolean):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_enableMotor = _arg1; } public function SetMotorSpeed(_arg1:Number):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_motorSpeed = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } public function SetMaxMotorForce(_arg1:Number):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_maxMotorForce = _arg1; } public function GetMaxMotorForce():Number{ return (m_maxMotorForce); } public function GetMotorForce():Number{ return (m_motorImpulse); } override b2internal 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 _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; m_localCenterA.SetV(_local2.GetLocalCenter()); m_localCenterB.SetV(_local3.GetLocalCenter()); var _local6:b2Transform = _local2.GetTransform(); var _local7:b2Transform = _local3.GetTransform(); _local4 = _local2.m_xf.R; var _local8:Number = (m_localAnchor1.x - m_localCenterA.x); var _local9:Number = (m_localAnchor1.y - m_localCenterA.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local4 = _local3.m_xf.R; var _local10:Number = (m_localAnchor2.x - m_localCenterB.x); var _local11:Number = (m_localAnchor2.y - m_localCenterB.y); _local5 = ((_local4.col1.x * _local10) + (_local4.col2.x * _local11)); _local11 = ((_local4.col1.y * _local10) + (_local4.col2.y * _local11)); _local10 = _local5; var _local12:Number = (((_local3.m_sweep.c.x + _local10) - _local2.m_sweep.c.x) - _local8); var _local13:Number = (((_local3.m_sweep.c.y + _local11) - _local2.m_sweep.c.y) - _local9); m_invMassA = _local2.m_invMass; m_invMassB = _local3.m_invMass; m_invIA = _local2.m_invI; m_invIB = _local3.m_invI; m_axis.SetV(b2Math.MulMV(_local6.R, m_localXAxis1)); m_a1 = (((_local12 + _local8) * m_axis.y) - ((_local13 + _local9) * m_axis.x)); m_a2 = ((_local10 * m_axis.y) - (_local11 * m_axis.x)); m_motorMass = (((m_invMassA + m_invMassB) + ((m_invIA * m_a1) * m_a1)) + ((m_invIB * m_a2) * m_a2)); m_motorMass = ((m_motorMass > Number.MIN_VALUE)) ? (1 / m_motorMass) : 0; m_perp.SetV(b2Math.MulMV(_local6.R, m_localYAxis1)); m_s1 = (((_local12 + _local8) * m_perp.y) - ((_local13 + _local9) * m_perp.x)); m_s2 = ((_local10 * m_perp.y) - (_local11 * m_perp.x)); var _local14:Number = m_invMassA; var _local15:Number = m_invMassB; var _local16:Number = m_invIA; var _local17:Number = m_invIB; m_K.col1.x = (((_local14 + _local15) + ((_local16 * m_s1) * m_s1)) + ((_local17 * m_s2) * m_s2)); m_K.col1.y = (((_local16 * m_s1) * m_a1) + ((_local17 * m_s2) * m_a2)); m_K.col2.x = m_K.col1.y; m_K.col2.y = (((_local14 + _local15) + ((_local16 * m_a1) * m_a1)) + ((_local17 * m_a2) * m_a2)); if (m_enableLimit){ _local18 = ((m_axis.x * _local12) + (m_axis.y * _local13)); if (b2Math.Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local18 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitState = e_atLowerLimit; m_impulse.y = 0; }; } else { if (_local18 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitState = e_atUpperLimit; m_impulse.y = 0; }; } else { m_limitState = e_inactiveLimit; m_impulse.y = 0; }; }; }; } else { m_limitState = e_inactiveLimit; }; if (m_enableMotor == false){ m_motorImpulse = 0; }; if (_arg1.warmStarting){ m_impulse.x = (m_impulse.x * _arg1.dtRatio); m_impulse.y = (m_impulse.y * _arg1.dtRatio); m_motorImpulse = (m_motorImpulse * _arg1.dtRatio); _local19 = ((m_impulse.x * m_perp.x) + ((m_motorImpulse + m_impulse.y) * m_axis.x)); _local20 = ((m_impulse.x * m_perp.y) + ((m_motorImpulse + m_impulse.y) * m_axis.y)); _local21 = ((m_impulse.x * m_s1) + ((m_motorImpulse + m_impulse.y) * m_a1)); _local22 = ((m_impulse.x * m_s2) + ((m_motorImpulse + m_impulse.y) * m_a2)); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (m_invMassA * _local19)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (m_invMassA * _local20)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (m_invIA * _local21)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (m_invMassB * _local19)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (m_invMassB * _local20)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (m_invIB * _local22)); } else { m_impulse.SetZero(); m_motorImpulse = 0; }; } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:b2Vec2; var _local19:b2Vec2; var _local20:Number; var _local21:Number; var _local22:Number; var _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; var _local4:b2Vec2 = _local2.m_linearVelocity; var _local5:Number = _local2.m_angularVelocity; var _local6:b2Vec2 = _local3.m_linearVelocity; var _local7:Number = _local3.m_angularVelocity; if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local13 = ((((m_axis.x * (_local6.x - _local4.x)) + (m_axis.y * (_local6.y - _local4.y))) + (m_a2 * _local7)) - (m_a1 * _local5)); _local14 = (m_motorMass * (m_motorSpeed - _local13)); _local15 = m_motorImpulse; _local16 = (_arg1.dt * m_maxMotorForce); m_motorImpulse = b2Math.Clamp((m_motorImpulse + _local14), -(_local16), _local16); _local14 = (m_motorImpulse - _local15); _local8 = (_local14 * m_axis.x); _local9 = (_local14 * m_axis.y); _local10 = (_local14 * m_a1); _local11 = (_local14 * m_a2); _local4.x = (_local4.x - (m_invMassA * _local8)); _local4.y = (_local4.y - (m_invMassA * _local9)); _local5 = (_local5 - (m_invIA * _local10)); _local6.x = (_local6.x + (m_invMassB * _local8)); _local6.y = (_local6.y + (m_invMassB * _local9)); _local7 = (_local7 + (m_invIB * _local11)); }; var _local12:Number = ((((m_perp.x * (_local6.x - _local4.x)) + (m_perp.y * (_local6.y - _local4.y))) + (m_s2 * _local7)) - (m_s1 * _local5)); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local17 = ((((m_axis.x * (_local6.x - _local4.x)) + (m_axis.y * (_local6.y - _local4.y))) + (m_a2 * _local7)) - (m_a1 * _local5)); _local18 = m_impulse.Copy(); _local19 = m_K.Solve(new b2Vec2(), -(_local12), -(_local17)); m_impulse.Add(_local19); if (m_limitState == e_atLowerLimit){ m_impulse.y = b2Math.Max(m_impulse.y, 0); } else { if (m_limitState == e_atUpperLimit){ m_impulse.y = b2Math.Min(m_impulse.y, 0); }; }; _local20 = (-(_local12) - ((m_impulse.y - _local18.y) * m_K.col2.x)); if (m_K.col1.x != 0){ _local21 = ((_local20 / m_K.col1.x) + _local18.x); } else { _local21 = _local18.x; }; m_impulse.x = _local21; _local19.x = (m_impulse.x - _local18.x); _local19.y = (m_impulse.y - _local18.y); _local8 = ((_local19.x * m_perp.x) + (_local19.y * m_axis.x)); _local9 = ((_local19.x * m_perp.y) + (_local19.y * m_axis.y)); _local10 = ((_local19.x * m_s1) + (_local19.y * m_a1)); _local11 = ((_local19.x * m_s2) + (_local19.y * m_a2)); _local4.x = (_local4.x - (m_invMassA * _local8)); _local4.y = (_local4.y - (m_invMassA * _local9)); _local5 = (_local5 - (m_invIA * _local10)); _local6.x = (_local6.x + (m_invMassB * _local8)); _local6.y = (_local6.y + (m_invMassB * _local9)); _local7 = (_local7 + (m_invIB * _local11)); } else { if (m_K.col1.x != 0){ _local22 = (-(_local12) / m_K.col1.x); } else { _local22 = 0; }; m_impulse.x = (m_impulse.x + _local22); _local8 = (_local22 * m_perp.x); _local9 = (_local22 * m_perp.y); _local10 = (_local22 * m_s1); _local11 = (_local22 * m_s2); _local4.x = (_local4.x - (m_invMassA * _local8)); _local4.y = (_local4.y - (m_invMassA * _local9)); _local5 = (_local5 - (m_invIA * _local10)); _local6.x = (_local6.x + (m_invMassB * _local8)); _local6.y = (_local6.y + (m_invMassB * _local9)); _local7 = (_local7 + (m_invIB * _local11)); }; _local2.m_linearVelocity.SetV(_local4); _local2.m_angularVelocity = _local5; _local3.m_linearVelocity.SetV(_local6); _local3.m_angularVelocity = _local7; } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:Number; var _local10:b2Mat22; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local4:b2Body = m_bodyA; var _local5:b2Body = m_bodyB; var _local6:b2Vec2 = _local4.m_sweep.c; var _local7:Number = _local4.m_sweep.a; var _local8:b2Vec2 = _local5.m_sweep.c; var _local9:Number = _local5.m_sweep.a; var _local16:Number = 0; var _local17:Number = 0; var _local18:Boolean; var _local19:Number = 0; var _local20:b2Mat22 = b2Mat22.FromAngle(_local7); var _local21:b2Mat22 = b2Mat22.FromAngle(_local9); _local10 = _local20; var _local22:Number = (m_localAnchor1.x - m_localCenterA.x); var _local23:Number = (m_localAnchor1.y - m_localCenterA.y); _local11 = ((_local10.col1.x * _local22) + (_local10.col2.x * _local23)); _local23 = ((_local10.col1.y * _local22) + (_local10.col2.y * _local23)); _local22 = _local11; _local10 = _local21; var _local24:Number = (m_localAnchor2.x - m_localCenterB.x); var _local25:Number = (m_localAnchor2.y - m_localCenterB.y); _local11 = ((_local10.col1.x * _local24) + (_local10.col2.x * _local25)); _local25 = ((_local10.col1.y * _local24) + (_local10.col2.y * _local25)); _local24 = _local11; var _local26:Number = (((_local8.x + _local24) - _local6.x) - _local22); var _local27:Number = (((_local8.y + _local25) - _local6.y) - _local23); if (m_enableLimit){ m_axis = b2Math.MulMV(_local20, m_localXAxis1); m_a1 = (((_local26 + _local22) * m_axis.y) - ((_local27 + _local23) * m_axis.x)); m_a2 = ((_local24 * m_axis.y) - (_local25 * m_axis.x)); _local34 = ((m_axis.x * _local26) + (m_axis.y * _local27)); if (b2Math.Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ _local19 = b2Math.Clamp(_local34, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local16 = b2Math.Abs(_local34); _local18 = true; } else { if (_local34 <= m_lowerTranslation){ _local19 = b2Math.Clamp(((_local34 - m_lowerTranslation) + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local16 = (m_lowerTranslation - _local34); _local18 = true; } else { if (_local34 >= m_upperTranslation){ _local19 = b2Math.Clamp(((_local34 - m_upperTranslation) + b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local16 = (_local34 - m_upperTranslation); _local18 = true; }; }; }; }; m_perp = b2Math.MulMV(_local20, m_localYAxis1); m_s1 = (((_local26 + _local22) * m_perp.y) - ((_local27 + _local23) * m_perp.x)); m_s2 = ((_local24 * m_perp.y) - (_local25 * m_perp.x)); var _local28:b2Vec2 = new b2Vec2(); var _local29:Number = ((m_perp.x * _local26) + (m_perp.y * _local27)); _local16 = b2Math.Max(_local16, b2Math.Abs(_local29)); _local17 = 0; if (_local18){ _local12 = m_invMassA; _local13 = m_invMassB; _local14 = m_invIA; _local15 = m_invIB; m_K.col1.x = (((_local12 + _local13) + ((_local14 * m_s1) * m_s1)) + ((_local15 * m_s2) * m_s2)); m_K.col1.y = (((_local14 * m_s1) * m_a1) + ((_local15 * m_s2) * m_a2)); m_K.col2.x = m_K.col1.y; m_K.col2.y = (((_local12 + _local13) + ((_local14 * m_a1) * m_a1)) + ((_local15 * m_a2) * m_a2)); m_K.Solve(_local28, -(_local29), -(_local19)); } else { _local12 = m_invMassA; _local13 = m_invMassB; _local14 = m_invIA; _local15 = m_invIB; _local35 = (((_local12 + _local13) + ((_local14 * m_s1) * m_s1)) + ((_local15 * m_s2) * m_s2)); if (_local35 != 0){ _local36 = (-(_local29) / _local35); } else { _local36 = 0; }; _local28.x = _local36; _local28.y = 0; }; var _local30:Number = ((_local28.x * m_perp.x) + (_local28.y * m_axis.x)); var _local31:Number = ((_local28.x * m_perp.y) + (_local28.y * m_axis.y)); var _local32:Number = ((_local28.x * m_s1) + (_local28.y * m_a1)); var _local33:Number = ((_local28.x * m_s2) + (_local28.y * m_a2)); _local6.x = (_local6.x - (m_invMassA * _local30)); _local6.y = (_local6.y - (m_invMassA * _local31)); _local7 = (_local7 - (m_invIA * _local32)); _local8.x = (_local8.x + (m_invMassB * _local30)); _local8.y = (_local8.y + (m_invMassB * _local31)); _local9 = (_local9 + (m_invIB * _local33)); _local4.m_sweep.a = _local7; _local5.m_sweep.a = _local9; _local4.SynchronizeTransform(); _local5.SynchronizeTransform(); return ((((_local16 <= b2Settings.b2_linearSlop)) && ((_local17 <= b2Settings.b2_angularSlop)))); } } }//package Box2D.Dynamics.Joints
Section 71
//b2LineJointDef (Box2D.Dynamics.Joints.b2LineJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2LineJointDef extends b2JointDef { public var localAnchorA:b2Vec2; public var localAnchorB:b2Vec2; public var localAxisA:b2Vec2; public var enableLimit:Boolean; public var lowerTranslation:Number; public var upperTranslation:Number; public var enableMotor:Boolean; public var maxMotorForce:Number; public var motorSpeed:Number; public function b2LineJointDef(){ localAnchorA = new b2Vec2(); localAnchorB = new b2Vec2(); localAxisA = new b2Vec2(); super(); type = b2Joint.e_lineJoint; localAxisA.Set(1, 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{ bodyA = _arg1; bodyB = _arg2; localAnchorA = bodyA.GetLocalPoint(_arg3); localAnchorB = bodyB.GetLocalPoint(_arg3); localAxisA = bodyA.GetLocalVector(_arg4); } } }//package Box2D.Dynamics.Joints
Section 72
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { private var K:b2Mat22; private var K1:b2Mat22; private var K2:b2Mat22; private var m_localAnchor:b2Vec2; private var m_target:b2Vec2; private var m_impulse:b2Vec2; private var m_mass:b2Mat22; private var m_C:b2Vec2; private var m_maxForce:Number; private var m_frequencyHz:Number; private var m_dampingRatio:Number; private var m_beta:Number; private var m_gamma:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local2:Number; var _local4:b2Mat22; 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); _local2 = (m_target.x - m_bodyB.m_xf.position.x); var _local3:Number = (m_target.y - m_bodyB.m_xf.position.y); _local4 = m_bodyB.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(); m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_beta = 0; m_gamma = 0; } override public function GetAnchorA():b2Vec2{ return (m_target); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchor)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2((_arg1 * m_impulse.x), (_arg1 * m_impulse.y))); } override public function GetReactionTorque(_arg1:Number):Number{ return (0); } public function GetTarget():b2Vec2{ return (m_target); } public function SetTarget(_arg1:b2Vec2):void{ if (m_bodyB.IsAwake() == false){ m_bodyB.SetAwake(true); }; m_target = _arg1; } public function GetMaxForce():Number{ return (m_maxForce); } public function SetMaxForce(_arg1:Number):void{ m_maxForce = _arg1; } public function GetFrequency():Number{ return (m_frequencyHz); } public function SetFrequency(_arg1:Number):void{ m_frequencyHz = _arg1; } public function GetDampingRatio():Number{ return (m_dampingRatio); } public function SetDampingRatio(_arg1:Number):void{ m_dampingRatio = _arg1; } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local7:b2Mat22; var _local11:Number; var _local12:Number; var _local2:b2Body = m_bodyB; var _local3:Number = _local2.GetMass(); var _local4:Number = ((2 * Math.PI) * m_frequencyHz); var _local5:Number = (((2 * _local3) * m_dampingRatio) * _local4); var _local6:Number = ((_local3 * _local4) * _local4); m_gamma = (_arg1.dt * (_local5 + (_arg1.dt * _local6))); m_gamma = ((m_gamma)!=0) ? (1 / m_gamma) : 0; m_beta = ((_arg1.dt * _local6) * m_gamma); _local7 = _local2.m_xf.R; var _local8:Number = (m_localAnchor.x - _local2.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor.y - _local2.m_sweep.localCenter.y); var _local10:Number = ((_local7.col1.x * _local8) + (_local7.col2.x * _local9)); _local9 = ((_local7.col1.y * _local8) + (_local7.col2.y * _local9)); _local8 = _local10; _local11 = _local2.m_invMass; _local12 = _local2.m_invI; K1.col1.x = _local11; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local11; K2.col1.x = ((_local12 * _local9) * _local9); K2.col2.x = ((-(_local12) * _local8) * _local9); K2.col1.y = ((-(_local12) * _local8) * _local9); K2.col2.y = ((_local12 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.GetInverse(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local8) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local9) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); m_impulse.x = (m_impulse.x * _arg1.dtRatio); m_impulse.y = (m_impulse.y * _arg1.dtRatio); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local11 * m_impulse.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local11 * m_impulse.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * ((_local8 * m_impulse.y) - (_local9 * m_impulse.x)))); } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local2:b2Body = m_bodyB; _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 * m_C.x)) + (m_gamma * m_impulse.x)); _local5 = ((_local9 + (m_beta * m_C.y)) + (m_gamma * m_impulse.y)); var _local10:Number = -(((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); var _local11:Number = -(((_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 = (_arg1.dt * m_maxForce); if (m_impulse.LengthSquared() > (_local14 * _local14)){ m_impulse.Multiply((_local14 / m_impulse.Length())); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local10)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local11)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local11) - (_local7 * _local10)))); } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ return (true); } } }//package Box2D.Dynamics.Joints
Section 73
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var target:b2Vec2; public var maxForce:Number; public var frequencyHz:Number; public var dampingRatio:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; } } }//package Box2D.Dynamics.Joints
Section 74
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { b2internal var m_localAnchor1:b2Vec2; b2internal var m_localAnchor2:b2Vec2; b2internal var m_localXAxis1:b2Vec2; private var m_localYAxis1:b2Vec2; private var m_refAngle:Number; private var m_axis:b2Vec2; private var m_perp:b2Vec2; private var m_s1:Number; private var m_s2:Number; private var m_a1:Number; private var m_a2:Number; private var m_K:b2Mat33; private var m_impulse:b2Vec3; private var m_motorMass:Number; private var m_motorImpulse:Number; private var m_lowerTranslation:Number; private var m_upperTranslation:Number; private var m_maxMotorForce:Number; private var m_motorSpeed:Number; private var m_enableLimit:Boolean; private var m_enableMotor:Boolean; private var m_limitState:int; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_axis = new b2Vec2(); m_perp = new b2Vec2(); m_K = new b2Mat33(); m_impulse = new b2Vec3(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchorA); m_localAnchor2.SetV(_arg1.localAnchorB); m_localXAxis1.SetV(_arg1.localAxisA); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_impulse.SetZero(); m_motorMass = 0; m_motorImpulse = 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; m_limitState = e_inactiveLimit; m_axis.SetZero(); m_perp.SetZero(); } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchor1)); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2((_arg1 * ((m_impulse.x * m_perp.x) + ((m_motorImpulse + m_impulse.z) * m_axis.x))), (_arg1 * ((m_impulse.x * m_perp.y) + ((m_motorImpulse + m_impulse.z) * m_axis.y))))); } override public function GetReactionTorque(_arg1:Number):Number{ return ((_arg1 * m_impulse.y)); } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_bodyA; var _local2:b2Body = m_bodyB; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_bodyA; var _local2:b2Body = m_bodyB; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function EnableLimit(_arg1:Boolean):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_enableLimit = _arg1; } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function EnableMotor(_arg1:Boolean):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_enableMotor = _arg1; } public function SetMotorSpeed(_arg1:Number):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_motorSpeed = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } public function SetMaxMotorForce(_arg1:Number):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_maxMotorForce = _arg1; } public function GetMotorForce():Number{ return (m_motorImpulse); } override b2internal 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 _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; m_localCenterA.SetV(_local2.GetLocalCenter()); m_localCenterB.SetV(_local3.GetLocalCenter()); var _local6:b2Transform = _local2.GetTransform(); var _local7:b2Transform = _local3.GetTransform(); _local4 = _local2.m_xf.R; var _local8:Number = (m_localAnchor1.x - m_localCenterA.x); var _local9:Number = (m_localAnchor1.y - m_localCenterA.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local4 = _local3.m_xf.R; var _local10:Number = (m_localAnchor2.x - m_localCenterB.x); var _local11:Number = (m_localAnchor2.y - m_localCenterB.y); _local5 = ((_local4.col1.x * _local10) + (_local4.col2.x * _local11)); _local11 = ((_local4.col1.y * _local10) + (_local4.col2.y * _local11)); _local10 = _local5; var _local12:Number = (((_local3.m_sweep.c.x + _local10) - _local2.m_sweep.c.x) - _local8); var _local13:Number = (((_local3.m_sweep.c.y + _local11) - _local2.m_sweep.c.y) - _local9); m_invMassA = _local2.m_invMass; m_invMassB = _local3.m_invMass; m_invIA = _local2.m_invI; m_invIB = _local3.m_invI; m_axis.SetV(b2Math.MulMV(_local6.R, m_localXAxis1)); m_a1 = (((_local12 + _local8) * m_axis.y) - ((_local13 + _local9) * m_axis.x)); m_a2 = ((_local10 * m_axis.y) - (_local11 * m_axis.x)); m_motorMass = (((m_invMassA + m_invMassB) + ((m_invIA * m_a1) * m_a1)) + ((m_invIB * m_a2) * m_a2)); if (m_motorMass > Number.MIN_VALUE){ m_motorMass = (1 / m_motorMass); }; m_perp.SetV(b2Math.MulMV(_local6.R, m_localYAxis1)); m_s1 = (((_local12 + _local8) * m_perp.y) - ((_local13 + _local9) * m_perp.x)); m_s2 = ((_local10 * m_perp.y) - (_local11 * m_perp.x)); var _local14:Number = m_invMassA; var _local15:Number = m_invMassB; var _local16:Number = m_invIA; var _local17:Number = m_invIB; m_K.col1.x = (((_local14 + _local15) + ((_local16 * m_s1) * m_s1)) + ((_local17 * m_s2) * m_s2)); m_K.col1.y = ((_local16 * m_s1) + (_local17 * m_s2)); m_K.col1.z = (((_local16 * m_s1) * m_a1) + ((_local17 * m_s2) * m_a2)); m_K.col2.x = m_K.col1.y; m_K.col2.y = (_local16 + _local17); m_K.col2.z = ((_local16 * m_a1) + (_local17 * m_a2)); m_K.col3.x = m_K.col1.z; m_K.col3.y = m_K.col2.z; m_K.col3.z = (((_local14 + _local15) + ((_local16 * m_a1) * m_a1)) + ((_local17 * m_a2) * m_a2)); if (m_enableLimit){ _local18 = ((m_axis.x * _local12) + (m_axis.y * _local13)); if (b2Math.Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local18 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitState = e_atLowerLimit; m_impulse.z = 0; }; } else { if (_local18 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitState = e_atUpperLimit; m_impulse.z = 0; }; } else { m_limitState = e_inactiveLimit; m_impulse.z = 0; }; }; }; } else { m_limitState = e_inactiveLimit; }; if (m_enableMotor == false){ m_motorImpulse = 0; }; if (_arg1.warmStarting){ m_impulse.x = (m_impulse.x * _arg1.dtRatio); m_impulse.y = (m_impulse.y * _arg1.dtRatio); m_motorImpulse = (m_motorImpulse * _arg1.dtRatio); _local19 = ((m_impulse.x * m_perp.x) + ((m_motorImpulse + m_impulse.z) * m_axis.x)); _local20 = ((m_impulse.x * m_perp.y) + ((m_motorImpulse + m_impulse.z) * m_axis.y)); _local21 = (((m_impulse.x * m_s1) + m_impulse.y) + ((m_motorImpulse + m_impulse.z) * m_a1)); _local22 = (((m_impulse.x * m_s2) + m_impulse.y) + ((m_motorImpulse + m_impulse.z) * m_a2)); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (m_invMassA * _local19)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (m_invMassA * _local20)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (m_invIA * _local21)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (m_invMassB * _local19)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (m_invMassB * _local20)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (m_invIB * _local22)); } else { m_impulse.SetZero(); m_motorImpulse = 0; }; } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:b2Vec3; var _local20:b2Vec3; var _local21:Number; var _local22:Number; var _local23:b2Vec2; var _local24:b2Vec2; var _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; var _local4:b2Vec2 = _local2.m_linearVelocity; var _local5:Number = _local2.m_angularVelocity; var _local6:b2Vec2 = _local3.m_linearVelocity; var _local7:Number = _local3.m_angularVelocity; if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local14 = ((((m_axis.x * (_local6.x - _local4.x)) + (m_axis.y * (_local6.y - _local4.y))) + (m_a2 * _local7)) - (m_a1 * _local5)); _local15 = (m_motorMass * (m_motorSpeed - _local14)); _local16 = m_motorImpulse; _local17 = (_arg1.dt * m_maxMotorForce); m_motorImpulse = b2Math.Clamp((m_motorImpulse + _local15), -(_local17), _local17); _local15 = (m_motorImpulse - _local16); _local8 = (_local15 * m_axis.x); _local9 = (_local15 * m_axis.y); _local10 = (_local15 * m_a1); _local11 = (_local15 * m_a2); _local4.x = (_local4.x - (m_invMassA * _local8)); _local4.y = (_local4.y - (m_invMassA * _local9)); _local5 = (_local5 - (m_invIA * _local10)); _local6.x = (_local6.x + (m_invMassB * _local8)); _local6.y = (_local6.y + (m_invMassB * _local9)); _local7 = (_local7 + (m_invIB * _local11)); }; var _local12:Number = ((((m_perp.x * (_local6.x - _local4.x)) + (m_perp.y * (_local6.y - _local4.y))) + (m_s2 * _local7)) - (m_s1 * _local5)); var _local13:Number = (_local7 - _local5); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = ((((m_axis.x * (_local6.x - _local4.x)) + (m_axis.y * (_local6.y - _local4.y))) + (m_a2 * _local7)) - (m_a1 * _local5)); _local19 = m_impulse.Copy(); _local20 = m_K.Solve33(new b2Vec3(), -(_local12), -(_local13), -(_local18)); m_impulse.Add(_local20); if (m_limitState == e_atLowerLimit){ m_impulse.z = b2Math.Max(m_impulse.z, 0); } else { if (m_limitState == e_atUpperLimit){ m_impulse.z = b2Math.Min(m_impulse.z, 0); }; }; _local21 = (-(_local12) - ((m_impulse.z - _local19.z) * m_K.col3.x)); _local22 = (-(_local13) - ((m_impulse.z - _local19.z) * m_K.col3.y)); _local23 = m_K.Solve22(new b2Vec2(), _local21, _local22); m_K.Solve22(new b2Vec2(), _local21, _local22).x = (_local23.x + _local19.x); _local23.y = (_local23.y + _local19.y); m_impulse.x = _local23.x; m_impulse.y = _local23.y; _local20.x = (m_impulse.x - _local19.x); _local20.y = (m_impulse.y - _local19.y); _local20.z = (m_impulse.z - _local19.z); _local8 = ((_local20.x * m_perp.x) + (_local20.z * m_axis.x)); _local9 = ((_local20.x * m_perp.y) + (_local20.z * m_axis.y)); _local10 = (((_local20.x * m_s1) + _local20.y) + (_local20.z * m_a1)); _local11 = (((_local20.x * m_s2) + _local20.y) + (_local20.z * m_a2)); _local4.x = (_local4.x - (m_invMassA * _local8)); _local4.y = (_local4.y - (m_invMassA * _local9)); _local5 = (_local5 - (m_invIA * _local10)); _local6.x = (_local6.x + (m_invMassB * _local8)); _local6.y = (_local6.y + (m_invMassB * _local9)); _local7 = (_local7 + (m_invIB * _local11)); } else { _local24 = m_K.Solve22(new b2Vec2(), -(_local12), -(_local13)); m_impulse.x = (m_impulse.x + _local24.x); m_impulse.y = (m_impulse.y + _local24.y); _local8 = (_local24.x * m_perp.x); _local9 = (_local24.x * m_perp.y); _local10 = ((_local24.x * m_s1) + _local24.y); _local11 = ((_local24.x * m_s2) + _local24.y); _local4.x = (_local4.x - (m_invMassA * _local8)); _local4.y = (_local4.y - (m_invMassA * _local9)); _local5 = (_local5 - (m_invIA * _local10)); _local6.x = (_local6.x + (m_invMassB * _local8)); _local6.y = (_local6.y + (m_invMassB * _local9)); _local7 = (_local7 + (m_invIB * _local11)); }; _local2.m_linearVelocity.SetV(_local4); _local2.m_angularVelocity = _local5; _local3.m_linearVelocity.SetV(_local6); _local3.m_angularVelocity = _local7; } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:Number; var _local10:b2Mat22; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:b2Vec2; var _local4:b2Body = m_bodyA; var _local5:b2Body = m_bodyB; var _local6:b2Vec2 = _local4.m_sweep.c; var _local7:Number = _local4.m_sweep.a; var _local8:b2Vec2 = _local5.m_sweep.c; var _local9:Number = _local5.m_sweep.a; var _local16:Number = 0; var _local17:Number = 0; var _local18:Boolean; var _local19:Number = 0; var _local20:b2Mat22 = b2Mat22.FromAngle(_local7); var _local21:b2Mat22 = b2Mat22.FromAngle(_local9); _local10 = _local20; var _local22:Number = (m_localAnchor1.x - m_localCenterA.x); var _local23:Number = (m_localAnchor1.y - m_localCenterA.y); _local11 = ((_local10.col1.x * _local22) + (_local10.col2.x * _local23)); _local23 = ((_local10.col1.y * _local22) + (_local10.col2.y * _local23)); _local22 = _local11; _local10 = _local21; var _local24:Number = (m_localAnchor2.x - m_localCenterB.x); var _local25:Number = (m_localAnchor2.y - m_localCenterB.y); _local11 = ((_local10.col1.x * _local24) + (_local10.col2.x * _local25)); _local25 = ((_local10.col1.y * _local24) + (_local10.col2.y * _local25)); _local24 = _local11; var _local26:Number = (((_local8.x + _local24) - _local6.x) - _local22); var _local27:Number = (((_local8.y + _local25) - _local6.y) - _local23); if (m_enableLimit){ m_axis = b2Math.MulMV(_local20, m_localXAxis1); m_a1 = (((_local26 + _local22) * m_axis.y) - ((_local27 + _local23) * m_axis.x)); m_a2 = ((_local24 * m_axis.y) - (_local25 * m_axis.x)); _local35 = ((m_axis.x * _local26) + (m_axis.y * _local27)); if (b2Math.Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ _local19 = b2Math.Clamp(_local35, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local16 = b2Math.Abs(_local35); _local18 = true; } else { if (_local35 <= m_lowerTranslation){ _local19 = b2Math.Clamp(((_local35 - m_lowerTranslation) + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local16 = (m_lowerTranslation - _local35); _local18 = true; } else { if (_local35 >= m_upperTranslation){ _local19 = b2Math.Clamp(((_local35 - m_upperTranslation) + b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local16 = (_local35 - m_upperTranslation); _local18 = true; }; }; }; }; m_perp = b2Math.MulMV(_local20, m_localYAxis1); m_s1 = (((_local26 + _local22) * m_perp.y) - ((_local27 + _local23) * m_perp.x)); m_s2 = ((_local24 * m_perp.y) - (_local25 * m_perp.x)); var _local28:b2Vec3 = new b2Vec3(); var _local29:Number = ((m_perp.x * _local26) + (m_perp.y * _local27)); var _local30:Number = ((_local9 - _local7) - m_refAngle); _local16 = b2Math.Max(_local16, b2Math.Abs(_local29)); _local17 = b2Math.Abs(_local30); if (_local18){ _local12 = m_invMassA; _local13 = m_invMassB; _local14 = m_invIA; _local15 = m_invIB; m_K.col1.x = (((_local12 + _local13) + ((_local14 * m_s1) * m_s1)) + ((_local15 * m_s2) * m_s2)); m_K.col1.y = ((_local14 * m_s1) + (_local15 * m_s2)); m_K.col1.z = (((_local14 * m_s1) * m_a1) + ((_local15 * m_s2) * m_a2)); m_K.col2.x = m_K.col1.y; m_K.col2.y = (_local14 + _local15); m_K.col2.z = ((_local14 * m_a1) + (_local15 * m_a2)); m_K.col3.x = m_K.col1.z; m_K.col3.y = m_K.col2.z; m_K.col3.z = (((_local12 + _local13) + ((_local14 * m_a1) * m_a1)) + ((_local15 * m_a2) * m_a2)); m_K.Solve33(_local28, -(_local29), -(_local30), -(_local19)); } else { _local12 = m_invMassA; _local13 = m_invMassB; _local14 = m_invIA; _local15 = m_invIB; _local36 = (((_local12 + _local13) + ((_local14 * m_s1) * m_s1)) + ((_local15 * m_s2) * m_s2)); _local37 = ((_local14 * m_s1) + (_local15 * m_s2)); _local38 = (_local14 + _local15); m_K.col1.Set(_local36, _local37, 0); m_K.col2.Set(_local37, _local38, 0); _local39 = m_K.Solve22(new b2Vec2(), -(_local29), -(_local30)); _local28.x = _local39.x; _local28.y = _local39.y; _local28.z = 0; }; var _local31:Number = ((_local28.x * m_perp.x) + (_local28.z * m_axis.x)); var _local32:Number = ((_local28.x * m_perp.y) + (_local28.z * m_axis.y)); var _local33:Number = (((_local28.x * m_s1) + _local28.y) + (_local28.z * m_a1)); var _local34:Number = (((_local28.x * m_s2) + _local28.y) + (_local28.z * m_a2)); _local6.x = (_local6.x - (m_invMassA * _local31)); _local6.y = (_local6.y - (m_invMassA * _local32)); _local7 = (_local7 - (m_invIA * _local33)); _local8.x = (_local8.x + (m_invMassB * _local31)); _local8.y = (_local8.y + (m_invMassB * _local32)); _local9 = (_local9 + (m_invIB * _local34)); _local4.m_sweep.a = _local7; _local5.m_sweep.a = _local9; _local4.SynchronizeTransform(); _local5.SynchronizeTransform(); return ((((_local16 <= b2Settings.b2_linearSlop)) && ((_local17 <= b2Settings.b2_angularSlop)))); } } }//package Box2D.Dynamics.Joints
Section 75
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PrismaticJointDef extends b2JointDef { public var localAnchorA:b2Vec2; public var localAnchorB:b2Vec2; public var localAxisA:b2Vec2; public var referenceAngle:Number; public var enableLimit:Boolean; public var lowerTranslation:Number; public var upperTranslation:Number; public var enableMotor:Boolean; public var maxMotorForce:Number; public var motorSpeed:Number; public function b2PrismaticJointDef(){ localAnchorA = new b2Vec2(); localAnchorB = new b2Vec2(); localAxisA = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxisA.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{ bodyA = _arg1; bodyB = _arg2; localAnchorA = bodyA.GetLocalPoint(_arg3); localAnchorB = bodyB.GetLocalPoint(_arg3); localAxisA = bodyA.GetLocalVector(_arg4); referenceAngle = (bodyB.GetAngle() - bodyA.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 76
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { private var m_ground:b2Body; private var m_groundAnchor1:b2Vec2; private var m_groundAnchor2:b2Vec2; private var m_localAnchor1:b2Vec2; private var m_localAnchor2:b2Vec2; private var m_u1:b2Vec2; private var m_u2:b2Vec2; private var m_constant:Number; private var m_ratio:Number; private var m_maxLength1:Number; private var m_maxLength2:Number; private var m_pulleyMass:Number; private var m_limitMass1:Number; private var m_limitMass2:Number; private var m_impulse:Number; private var m_limitImpulse1:Number; private var m_limitImpulse2:Number; private var m_state:int; private var m_limitState1:int; private var m_limitState2:int; b2internal 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_bodyA.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchorA.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchorA.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchorB.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchorB.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchorA); m_localAnchor2.SetV(_arg1.localAnchorB); m_ratio = _arg1.ratio; m_constant = (_arg1.lengthA + (m_ratio * _arg1.lengthB)); m_maxLength1 = b2Math.Min(_arg1.maxLengthA, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.Min(_arg1.maxLengthB, ((m_constant - b2_minPulleyLength) / m_ratio)); m_impulse = 0; m_limitImpulse1 = 0; m_limitImpulse2 = 0; } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchor1)); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2(((_arg1 * m_impulse) * m_u2.x), ((_arg1 * m_impulse) * m_u2.y))); } override public function GetReactionTorque(_arg1:Number):Number{ return (0); } public function GetGroundAnchorA():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } public function GetGroundAnchorB():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } public function GetLength1():Number{ var _local1:b2Vec2 = m_bodyA.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_bodyB.GetWorldPoint(m_localAnchor2); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetRatio():Number{ return (m_ratio); } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local6:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local2 = m_bodyA; _local3 = m_bodyB; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local6 = (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_impulse = 0; } else { m_state = e_atUpperLimit; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitImpulse1 = 0; } else { m_limitState1 = e_atUpperLimit; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitImpulse2 = 0; } else { m_limitState2 = e_atUpperLimit; }; 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){ m_impulse = (m_impulse * _arg1.dtRatio); m_limitImpulse1 = (m_limitImpulse1 * _arg1.dtRatio); m_limitImpulse2 = (m_limitImpulse2 * _arg1.dtRatio); _local23 = ((-(m_impulse) - m_limitImpulse1) * m_u1.x); _local24 = ((-(m_impulse) - m_limitImpulse1) * m_u1.y); _local25 = (((-(m_ratio) * m_impulse) - m_limitImpulse2) * m_u2.x); _local26 = (((-(m_ratio) * m_impulse) - m_limitImpulse2) * 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_impulse = 0; m_limitImpulse1 = 0; m_limitImpulse2 = 0; }; } override b2internal 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_bodyA; var _local3:b2Body = m_bodyB; _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 = (m_pulleyMass * -(_local18)); _local20 = m_impulse; m_impulse = b2Math.Max(0, (m_impulse + _local19)); _local19 = (m_impulse - _local20); _local14 = (-(_local19) * m_u1.x); _local15 = (-(_local19) * m_u1.y); _local16 = ((-(m_ratio) * _local19) * m_u2.x); _local17 = ((-(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 = (-(m_limitMass1) * _local18); _local20 = m_limitImpulse1; m_limitImpulse1 = b2Math.Max(0, (m_limitImpulse1 + _local19)); _local19 = (m_limitImpulse1 - _local20); _local14 = (-(_local19) * m_u1.x); _local15 = (-(_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 = (-(m_limitMass2) * _local18); _local20 = m_limitImpulse2; m_limitImpulse2 = b2Math.Max(0, (m_limitImpulse2 + _local19)); _local19 = (m_limitImpulse2 - _local20); _local16 = (-(_local19) * m_u2.x); _local17 = (-(_local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local4:b2Mat22; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; var _local5:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local6:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local7:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local8:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local24:Number = 0; if (m_state == e_atUpperLimit){ _local4 = _local2.m_xf.R; _local9 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local10 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local23 = ((_local4.col1.x * _local9) + (_local4.col2.x * _local10)); _local10 = ((_local4.col1.y * _local9) + (_local4.col2.y * _local10)); _local9 = _local23; _local4 = _local3.m_xf.R; _local11 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local23 = ((_local4.col1.x * _local11) + (_local4.col2.x * _local12)); _local12 = ((_local4.col1.y * _local11) + (_local4.col2.y * _local12)); _local11 = _local23; _local13 = (_local2.m_sweep.c.x + _local9); _local14 = (_local2.m_sweep.c.y + _local10); _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); m_u1.Set((_local13 - _local5), (_local14 - _local6)); m_u2.Set((_local15 - _local7), (_local16 - _local8)); _local17 = m_u1.Length(); _local18 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local17)); } else { m_u1.SetZero(); }; if (_local18 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local18)); } else { m_u2.SetZero(); }; _local19 = ((m_constant - _local17) - (m_ratio * _local18)); _local24 = b2Math.Max(_local24, -(_local19)); _local19 = b2Math.Clamp((_local19 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local20 = (-(m_pulleyMass) * _local19); _local13 = (-(_local20) * m_u1.x); _local14 = (-(_local20) * m_u1.y); _local15 = ((-(m_ratio) * _local20) * m_u2.x); _local16 = ((-(m_ratio) * _local20) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local13)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local14)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local9 * _local14) - (_local10 * _local13)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local15)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local16)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local11 * _local16) - (_local12 * _local15)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local4 = _local2.m_xf.R; _local9 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local10 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local23 = ((_local4.col1.x * _local9) + (_local4.col2.x * _local10)); _local10 = ((_local4.col1.y * _local9) + (_local4.col2.y * _local10)); _local9 = _local23; _local13 = (_local2.m_sweep.c.x + _local9); _local14 = (_local2.m_sweep.c.y + _local10); m_u1.Set((_local13 - _local5), (_local14 - _local6)); _local17 = m_u1.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local17)); m_u1.y = (m_u1.y * (1 / _local17)); } else { m_u1.SetZero(); }; _local19 = (m_maxLength1 - _local17); _local24 = b2Math.Max(_local24, -(_local19)); _local19 = b2Math.Clamp((_local19 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local20 = (-(m_limitMass1) * _local19); _local13 = (-(_local20) * m_u1.x); _local14 = (-(_local20) * m_u1.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local13)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local14)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local9 * _local14) - (_local10 * _local13)))); _local2.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local4 = _local3.m_xf.R; _local11 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local23 = ((_local4.col1.x * _local11) + (_local4.col2.x * _local12)); _local12 = ((_local4.col1.y * _local11) + (_local4.col2.y * _local12)); _local11 = _local23; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); m_u2.Set((_local15 - _local7), (_local16 - _local8)); _local18 = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local18)); m_u2.y = (m_u2.y * (1 / _local18)); } else { m_u2.SetZero(); }; _local19 = (m_maxLength2 - _local18); _local24 = b2Math.Max(_local24, -(_local19)); _local19 = b2Math.Clamp((_local19 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local20 = (-(m_limitMass2) * _local19); _local15 = (-(_local20) * m_u2.x); _local16 = (-(_local20) * m_u2.y); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local15)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local16)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local11 * _local16) - (_local12 * _local15)))); _local3.SynchronizeTransform(); }; return ((_local24 < b2Settings.b2_linearSlop)); } } }//package Box2D.Dynamics.Joints
Section 77
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PulleyJointDef extends b2JointDef { public var groundAnchorA:b2Vec2; public var groundAnchorB:b2Vec2; public var localAnchorA:b2Vec2; public var localAnchorB:b2Vec2; public var lengthA:Number; public var maxLengthA:Number; public var lengthB:Number; public var maxLengthB:Number; public var ratio:Number; public function b2PulleyJointDef(){ groundAnchorA = new b2Vec2(); groundAnchorB = new b2Vec2(); localAnchorA = new b2Vec2(); localAnchorB = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchorA.Set(-1, 1); groundAnchorB.Set(1, 1); localAnchorA.Set(-1, 0); localAnchorB.Set(1, 0); lengthA = 0; maxLengthA = 0; lengthB = 0; maxLengthB = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ bodyA = _arg1; bodyB = _arg2; groundAnchorA.SetV(_arg3); groundAnchorB.SetV(_arg4); localAnchorA = bodyA.GetLocalPoint(_arg5); localAnchorB = bodyB.GetLocalPoint(_arg6); var _local8:Number = (_arg5.x - _arg3.x); var _local9:Number = (_arg5.y - _arg3.y); lengthA = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); var _local10:Number = (_arg6.x - _arg4.x); var _local11:Number = (_arg6.y - _arg4.y); lengthB = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; var _local12:Number = (lengthA + (ratio * lengthB)); maxLengthA = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLengthB = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 78
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { private var K:b2Mat22; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var impulse3:b2Vec3; private var impulse2:b2Vec2; private var reduced:b2Vec2; b2internal var m_localAnchor1:b2Vec2; b2internal var m_localAnchor2:b2Vec2; private var m_impulse:b2Vec3; private var m_motorImpulse:Number; private var m_mass:b2Mat33; private var m_motorMass:Number; private var m_enableMotor:Boolean; private var m_maxMotorTorque:Number; private var m_motorSpeed:Number; private var m_enableLimit:Boolean; private var m_referenceAngle:Number; private var m_lowerAngle:Number; private var m_upperAngle:Number; private var m_limitState:int; private static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); impulse3 = new b2Vec3(); impulse2 = new b2Vec2(); reduced = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_impulse = new b2Vec3(); m_mass = new b2Mat33(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchorA); m_localAnchor2.SetV(_arg1.localAnchorB); m_referenceAngle = _arg1.referenceAngle; m_impulse.SetZero(); m_motorImpulse = 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; m_limitState = e_inactiveLimit; } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchor1)); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2((_arg1 * m_impulse.x), (_arg1 * m_impulse.y))); } override public function GetReactionTorque(_arg1:Number):Number{ return ((_arg1 * m_impulse.z)); } public function GetJointAngle():Number{ return (((m_bodyB.m_sweep.a - m_bodyA.m_sweep.a) - m_referenceAngle)); } public function GetJointSpeed():Number{ return ((m_bodyB.m_angularVelocity - m_bodyA.m_angularVelocity)); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function GetUpperLimit():Number{ return (m_upperAngle); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } public function IsMotorEnabled():Boolean{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); return (m_enableMotor); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function SetMotorSpeed(_arg1:Number):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_motorSpeed = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetMotorTorque():Number{ return (m_maxMotorTorque); } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local7:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local2 = m_bodyA; _local3 = m_bodyB; if (((m_enableMotor) || (m_enableLimit))){ }; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; m_mass.col1.x = (((_local10 + _local11) + ((_local7 * _local7) * _local12)) + ((_local9 * _local9) * _local13)); m_mass.col2.x = (((-(_local7) * _local6) * _local12) - ((_local9 * _local8) * _local13)); m_mass.col3.x = ((-(_local7) * _local12) - (_local9 * _local13)); m_mass.col1.y = m_mass.col2.x; m_mass.col2.y = (((_local10 + _local11) + ((_local6 * _local6) * _local12)) + ((_local8 * _local8) * _local13)); m_mass.col3.y = ((_local6 * _local12) + (_local8 * _local13)); m_mass.col1.z = m_mass.col3.x; m_mass.col2.z = m_mass.col3.y; m_mass.col3.z = (_local12 + _local13); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorImpulse = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_impulse.z = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_impulse.z = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_impulse.z = 0; }; }; }; } else { m_limitState = e_inactiveLimit; }; if (_arg1.warmStarting){ m_impulse.x = (m_impulse.x * _arg1.dtRatio); m_impulse.y = (m_impulse.y * _arg1.dtRatio); m_motorImpulse = (m_motorImpulse * _arg1.dtRatio); _local15 = m_impulse.x; _local16 = m_impulse.y; _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local10 * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local10 * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local12 * ((((_local6 * _local16) - (_local7 * _local15)) + m_motorImpulse) + m_impulse.z))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * ((((_local8 * _local16) - (_local9 * _local15)) + m_motorImpulse) + m_impulse.z))); } else { m_impulse.SetZero(); m_motorImpulse = 0; }; } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10: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 _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; var _local11:b2Vec2 = _local2.m_linearVelocity; var _local12:Number = _local2.m_angularVelocity; var _local13:b2Vec2 = _local3.m_linearVelocity; var _local14:Number = _local3.m_angularVelocity; var _local15:Number = _local2.m_invMass; var _local16:Number = _local3.m_invMass; var _local17:Number = _local2.m_invI; var _local18:Number = _local3.m_invI; if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local19 = ((_local14 - _local12) - m_motorSpeed); _local20 = (m_motorMass * -(_local19)); _local21 = m_motorImpulse; _local22 = (_arg1.dt * m_maxMotorTorque); m_motorImpulse = b2Math.Clamp((m_motorImpulse + _local20), -(_local22), _local22); _local20 = (m_motorImpulse - _local21); _local12 = (_local12 - (_local17 * _local20)); _local14 = (_local14 + (_local18 * _local20)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local4 = _local2.m_xf.R; _local7 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local8 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local7) + (_local4.col2.x * _local8)); _local8 = ((_local4.col1.y * _local7) + (_local4.col2.y * _local8)); _local7 = _local5; _local4 = _local3.m_xf.R; _local9 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local10 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local9) + (_local4.col2.x * _local10)); _local10 = ((_local4.col1.y * _local9) + (_local4.col2.y * _local10)); _local9 = _local5; _local23 = (((_local13.x + (-(_local14) * _local10)) - _local11.x) - (-(_local12) * _local8)); _local24 = (((_local13.y + (_local14 * _local9)) - _local11.y) - (_local12 * _local7)); _local25 = (_local14 - _local12); m_mass.Solve33(impulse3, -(_local23), -(_local24), -(_local25)); if (m_limitState == e_equalLimits){ m_impulse.Add(impulse3); } else { if (m_limitState == e_atLowerLimit){ _local6 = (m_impulse.z + impulse3.z); if (_local6 < 0){ m_mass.Solve22(reduced, -(_local23), -(_local24)); impulse3.x = reduced.x; impulse3.y = reduced.y; impulse3.z = -(m_impulse.z); m_impulse.x = (m_impulse.x + reduced.x); m_impulse.y = (m_impulse.y + reduced.y); m_impulse.z = 0; }; } else { if (m_limitState == e_atUpperLimit){ _local6 = (m_impulse.z + impulse3.z); if (_local6 > 0){ m_mass.Solve22(reduced, -(_local23), -(_local24)); impulse3.x = reduced.x; impulse3.y = reduced.y; impulse3.z = -(m_impulse.z); m_impulse.x = (m_impulse.x + reduced.x); m_impulse.y = (m_impulse.y + reduced.y); m_impulse.z = 0; }; }; }; }; _local11.x = (_local11.x - (_local15 * impulse3.x)); _local11.y = (_local11.y - (_local15 * impulse3.y)); _local12 = (_local12 - (_local17 * (((_local7 * impulse3.y) - (_local8 * impulse3.x)) + impulse3.z))); _local13.x = (_local13.x + (_local16 * impulse3.x)); _local13.y = (_local13.y + (_local16 * impulse3.y)); _local14 = (_local14 + (_local18 * (((_local9 * impulse3.y) - (_local10 * impulse3.x)) + impulse3.z))); } else { _local4 = _local2.m_xf.R; _local7 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local8 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local7) + (_local4.col2.x * _local8)); _local8 = ((_local4.col1.y * _local7) + (_local4.col2.y * _local8)); _local7 = _local5; _local4 = _local3.m_xf.R; _local9 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local10 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local9) + (_local4.col2.x * _local10)); _local10 = ((_local4.col1.y * _local9) + (_local4.col2.y * _local10)); _local9 = _local5; _local26 = (((_local13.x + (-(_local14) * _local10)) - _local11.x) - (-(_local12) * _local8)); _local27 = (((_local13.y + (_local14 * _local9)) - _local11.y) - (_local12 * _local7)); m_mass.Solve22(impulse2, -(_local26), -(_local27)); m_impulse.x = (m_impulse.x + impulse2.x); m_impulse.y = (m_impulse.y + impulse2.y); _local11.x = (_local11.x - (_local15 * impulse2.x)); _local11.y = (_local11.y - (_local15 * impulse2.y)); _local12 = (_local12 - (_local17 * ((_local7 * impulse2.y) - (_local8 * impulse2.x)))); _local13.x = (_local13.x + (_local16 * impulse2.x)); _local13.y = (_local13.y + (_local16 * impulse2.y)); _local14 = (_local14 + (_local18 * ((_local9 * impulse2.y) - (_local10 * impulse2.x)))); }; _local2.m_linearVelocity.SetV(_local11); _local2.m_angularVelocity = _local12; _local3.m_linearVelocity.SetV(_local13); _local3.m_angularVelocity = _local14; } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:Number; var _local4:b2Mat22; var _local9:Number; var _local10:Number; var _local11:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local5:b2Body = m_bodyA; var _local6:b2Body = m_bodyB; var _local7:Number = 0; var _local8:Number = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local6.m_sweep.a - _local5.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local3 = b2Math.Clamp((_local25 - m_lowerAngle), -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local3); _local7 = b2Math.Abs(_local3); } else { if (m_limitState == e_atLowerLimit){ _local3 = (_local25 - m_lowerAngle); _local7 = -(_local3); _local3 = b2Math.Clamp((_local3 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local3); } else { if (m_limitState == e_atUpperLimit){ _local3 = (_local25 - m_upperAngle); _local7 = _local3; _local3 = b2Math.Clamp((_local3 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local3); }; }; }; _local5.m_sweep.a = (_local5.m_sweep.a - (_local5.m_invI * _local26)); _local6.m_sweep.a = (_local6.m_sweep.a + (_local6.m_invI * _local26)); _local5.SynchronizeTransform(); _local6.SynchronizeTransform(); }; _local4 = _local5.m_xf.R; var _local12:Number = (m_localAnchor1.x - _local5.m_sweep.localCenter.x); var _local13:Number = (m_localAnchor1.y - _local5.m_sweep.localCenter.y); _local9 = ((_local4.col1.x * _local12) + (_local4.col2.x * _local13)); _local13 = ((_local4.col1.y * _local12) + (_local4.col2.y * _local13)); _local12 = _local9; _local4 = _local6.m_xf.R; var _local14:Number = (m_localAnchor2.x - _local6.m_sweep.localCenter.x); var _local15:Number = (m_localAnchor2.y - _local6.m_sweep.localCenter.y); _local9 = ((_local4.col1.x * _local14) + (_local4.col2.x * _local15)); _local15 = ((_local4.col1.y * _local14) + (_local4.col2.y * _local15)); _local14 = _local9; var _local16:Number = (((_local6.m_sweep.c.x + _local14) - _local5.m_sweep.c.x) - _local12); var _local17:Number = (((_local6.m_sweep.c.y + _local15) - _local5.m_sweep.c.y) - _local13); var _local18:Number = ((_local16 * _local16) + (_local17 * _local17)); var _local19:Number = Math.sqrt(_local18); _local8 = _local19; var _local20:Number = _local5.m_invMass; var _local21:Number = _local6.m_invMass; var _local22:Number = _local5.m_invI; var _local23:Number = _local6.m_invI; var _local24:Number = (10 * b2Settings.b2_linearSlop); if (_local18 > (_local24 * _local24)){ _local27 = (_local16 / _local19); _local28 = (_local17 / _local19); _local29 = (_local20 + _local21); _local30 = (1 / _local29); _local10 = (_local30 * -(_local16)); _local11 = (_local30 * -(_local17)); _local31 = 0.5; _local5.m_sweep.c.x = (_local5.m_sweep.c.x - ((_local31 * _local20) * _local10)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y - ((_local31 * _local20) * _local11)); _local6.m_sweep.c.x = (_local6.m_sweep.c.x + ((_local31 * _local21) * _local10)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + ((_local31 * _local21) * _local11)); _local16 = (((_local6.m_sweep.c.x + _local14) - _local5.m_sweep.c.x) - _local12); _local17 = (((_local6.m_sweep.c.y + _local15) - _local5.m_sweep.c.y) - _local13); }; K1.col1.x = (_local20 + _local21); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local20 + _local21); K2.col1.x = ((_local22 * _local13) * _local13); K2.col2.x = ((-(_local22) * _local12) * _local13); K2.col1.y = ((-(_local22) * _local12) * _local13); K2.col2.y = ((_local22 * _local12) * _local12); K3.col1.x = ((_local23 * _local15) * _local15); K3.col2.x = ((-(_local23) * _local14) * _local15); K3.col1.y = ((-(_local23) * _local14) * _local15); K3.col2.y = ((_local23 * _local14) * _local14); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); _local10 = tImpulse.x; _local11 = tImpulse.y; _local5.m_sweep.c.x = (_local5.m_sweep.c.x - (_local5.m_invMass * _local10)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y - (_local5.m_invMass * _local11)); _local5.m_sweep.a = (_local5.m_sweep.a - (_local5.m_invI * ((_local12 * _local11) - (_local13 * _local10)))); _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_local6.m_invMass * _local10)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_local6.m_invMass * _local11)); _local6.m_sweep.a = (_local6.m_sweep.a + (_local6.m_invI * ((_local14 * _local11) - (_local15 * _local10)))); _local5.SynchronizeTransform(); _local6.SynchronizeTransform(); return ((((_local8 <= b2Settings.b2_linearSlop)) && ((_local7 <= b2Settings.b2_angularSlop)))); } } }//package Box2D.Dynamics.Joints
Section 79
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2RevoluteJointDef extends b2JointDef { public var localAnchorA:b2Vec2; public var localAnchorB:b2Vec2; public var referenceAngle:Number; public var enableLimit:Boolean; public var lowerAngle:Number; public var upperAngle:Number; public var enableMotor:Boolean; public var motorSpeed:Number; public var maxMotorTorque:Number; public function b2RevoluteJointDef(){ localAnchorA = new b2Vec2(); localAnchorB = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchorA.Set(0, 0); localAnchorB.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{ bodyA = _arg1; bodyB = _arg2; localAnchorA = bodyA.GetLocalPoint(_arg3); localAnchorB = bodyB.GetLocalPoint(_arg3); referenceAngle = (bodyB.GetAngle() - bodyA.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 80
//b2WeldJoint (Box2D.Dynamics.Joints.b2WeldJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2WeldJoint extends b2Joint { private var m_localAnchorA:b2Vec2; private var m_localAnchorB:b2Vec2; private var m_referenceAngle:Number; private var m_impulse:b2Vec3; private var m_mass:b2Mat33; public function b2WeldJoint(_arg1:b2WeldJointDef){ m_localAnchorA = new b2Vec2(); m_localAnchorB = new b2Vec2(); m_impulse = new b2Vec3(); m_mass = new b2Mat33(); super(_arg1); m_localAnchorA.SetV(_arg1.localAnchorA); m_localAnchorB.SetV(_arg1.localAnchorB); m_referenceAngle = _arg1.referenceAngle; m_impulse.SetZero(); m_mass = new b2Mat33(); } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchorA)); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchorB)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2((_arg1 * m_impulse.x), (_arg1 * m_impulse.y))); } override public function GetReactionTorque(_arg1:Number):Number{ return ((_arg1 * m_impulse.z)); } override b2internal 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 _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; _local4 = m_bodyA; _local5 = m_bodyB; _local2 = _local4.m_xf.R; _local6 = (m_localAnchorA.x - _local4.m_sweep.localCenter.x); _local7 = (m_localAnchorA.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_localAnchorB.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchorB.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; _local10 = _local4.m_invMass; _local11 = _local5.m_invMass; _local12 = _local4.m_invI; _local13 = _local5.m_invI; m_mass.col1.x = (((_local10 + _local11) + ((_local7 * _local7) * _local12)) + ((_local9 * _local9) * _local13)); m_mass.col2.x = (((-(_local7) * _local6) * _local12) - ((_local9 * _local8) * _local13)); m_mass.col3.x = ((-(_local7) * _local12) - (_local9 * _local13)); m_mass.col1.y = m_mass.col2.x; m_mass.col2.y = (((_local10 + _local11) + ((_local6 * _local6) * _local12)) + ((_local8 * _local8) * _local13)); m_mass.col3.y = ((_local6 * _local12) + (_local8 * _local13)); m_mass.col1.z = m_mass.col3.x; m_mass.col2.z = m_mass.col3.y; m_mass.col3.z = (_local12 + _local13); if (_arg1.warmStarting){ m_impulse.x = (m_impulse.x * _arg1.dtRatio); m_impulse.y = (m_impulse.y * _arg1.dtRatio); m_impulse.z = (m_impulse.z * _arg1.dtRatio); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local10 * m_impulse.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local10 * m_impulse.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local12 * (((_local6 * m_impulse.y) - (_local7 * m_impulse.x)) + m_impulse.z))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local11 * m_impulse.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local11 * m_impulse.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local13 * (((_local8 * m_impulse.y) - (_local9 * m_impulse.x)) + m_impulse.z))); } else { m_impulse.SetZero(); }; } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body = m_bodyA; var _local5:b2Body = m_bodyB; var _local6:b2Vec2 = _local4.m_linearVelocity; var _local7:Number = _local4.m_angularVelocity; var _local8:b2Vec2 = _local5.m_linearVelocity; var _local9:Number = _local5.m_angularVelocity; var _local10:Number = _local4.m_invMass; var _local11:Number = _local5.m_invMass; var _local12:Number = _local4.m_invI; var _local13:Number = _local5.m_invI; _local2 = _local4.m_xf.R; var _local14:Number = (m_localAnchorA.x - _local4.m_sweep.localCenter.x); var _local15:Number = (m_localAnchorA.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local14) + (_local2.col2.x * _local15)); _local15 = ((_local2.col1.y * _local14) + (_local2.col2.y * _local15)); _local14 = _local3; _local2 = _local5.m_xf.R; var _local16:Number = (m_localAnchorB.x - _local5.m_sweep.localCenter.x); var _local17:Number = (m_localAnchorB.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local16) + (_local2.col2.x * _local17)); _local17 = ((_local2.col1.y * _local16) + (_local2.col2.y * _local17)); _local16 = _local3; var _local18:Number = (((_local8.x - (_local9 * _local17)) - _local6.x) + (_local7 * _local15)); var _local19:Number = (((_local8.y + (_local9 * _local16)) - _local6.y) - (_local7 * _local14)); var _local20:Number = (_local9 - _local7); var _local21:b2Vec3 = new b2Vec3(); m_mass.Solve33(_local21, -(_local18), -(_local19), -(_local20)); m_impulse.Add(_local21); _local6.x = (_local6.x - (_local10 * _local21.x)); _local6.y = (_local6.y - (_local10 * _local21.y)); _local7 = (_local7 - (_local12 * (((_local14 * _local21.y) - (_local15 * _local21.x)) + _local21.z))); _local8.x = (_local8.x + (_local11 * _local21.x)); _local8.y = (_local8.y + (_local11 * _local21.y)); _local9 = (_local9 + (_local13 * (((_local16 * _local21.y) - (_local17 * _local21.x)) + _local21.z))); _local4.m_angularVelocity = _local7; _local5.m_angularVelocity = _local9; } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body = m_bodyA; var _local5:b2Body = m_bodyB; _local2 = _local4.m_xf.R; var _local6:Number = (m_localAnchorA.x - _local4.m_sweep.localCenter.x); var _local7:Number = (m_localAnchorA.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; var _local8:Number = (m_localAnchorB.x - _local5.m_sweep.localCenter.x); var _local9:Number = (m_localAnchorB.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; var _local10:Number = _local4.m_invMass; var _local11:Number = _local5.m_invMass; var _local12:Number = _local4.m_invI; var _local13:Number = _local5.m_invI; var _local14:Number = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); var _local15:Number = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); var _local16:Number = ((_local5.m_sweep.a - _local4.m_sweep.a) - m_referenceAngle); var _local17:Number = (10 * b2Settings.b2_linearSlop); var _local18:Number = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); var _local19:Number = b2Math.Abs(_local16); if (_local18 > _local17){ _local12 = (_local12 * 1); _local13 = (_local13 * 1); }; m_mass.col1.x = (((_local10 + _local11) + ((_local7 * _local7) * _local12)) + ((_local9 * _local9) * _local13)); m_mass.col2.x = (((-(_local7) * _local6) * _local12) - ((_local9 * _local8) * _local13)); m_mass.col3.x = ((-(_local7) * _local12) - (_local9 * _local13)); m_mass.col1.y = m_mass.col2.x; m_mass.col2.y = (((_local10 + _local11) + ((_local6 * _local6) * _local12)) + ((_local8 * _local8) * _local13)); m_mass.col3.y = ((_local6 * _local12) + (_local8 * _local13)); m_mass.col1.z = m_mass.col3.x; m_mass.col2.z = m_mass.col3.y; m_mass.col3.z = (_local12 + _local13); var _local20:b2Vec3 = new b2Vec3(); m_mass.Solve33(_local20, -(_local14), -(_local15), -(_local16)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x - (_local10 * _local20.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y - (_local10 * _local20.y)); _local4.m_sweep.a = (_local4.m_sweep.a - (_local12 * (((_local6 * _local20.y) - (_local7 * _local20.x)) + _local20.z))); _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_local11 * _local20.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_local11 * _local20.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_local13 * (((_local8 * _local20.y) - (_local9 * _local20.x)) + _local20.z))); _local4.SynchronizeTransform(); _local5.SynchronizeTransform(); return ((((_local18 <= b2Settings.b2_linearSlop)) && ((_local19 <= b2Settings.b2_angularSlop)))); } } }//package Box2D.Dynamics.Joints
Section 81
//b2WeldJointDef (Box2D.Dynamics.Joints.b2WeldJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2WeldJointDef extends b2JointDef { public var localAnchorA:b2Vec2; public var localAnchorB:b2Vec2; public var referenceAngle:Number; public function b2WeldJointDef(){ localAnchorA = new b2Vec2(); localAnchorB = new b2Vec2(); super(); type = b2Joint.e_weldJoint; referenceAngle = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ bodyA = _arg1; bodyB = _arg2; localAnchorA.SetV(bodyA.GetLocalPoint(_arg3)); localAnchorB.SetV(bodyB.GetLocalPoint(_arg3)); referenceAngle = (bodyB.GetAngle() - bodyA.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 82
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Controllers.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2Body { b2internal var m_flags:uint; b2internal var m_type:int; b2internal var m_islandIndex:int; b2internal var m_xf:b2Transform; b2internal var m_sweep:b2Sweep; b2internal var m_linearVelocity:b2Vec2; b2internal var m_angularVelocity:Number; b2internal var m_force:b2Vec2; b2internal var m_torque:Number; b2internal var m_world:b2World; b2internal var m_prev:b2Body; b2internal var m_next:b2Body; b2internal var m_fixtureList:b2Fixture; b2internal var m_fixtureCount:int; b2internal var m_controllerList:b2ControllerEdge; b2internal var m_controllerCount:int; b2internal var m_jointList:b2JointEdge; b2internal var m_contactList:b2ContactEdge; b2internal var m_mass:Number; b2internal var m_invMass:Number; b2internal var m_I:Number; b2internal var m_invI:Number; b2internal var m_inertiaScale:Number; b2internal var m_linearDamping:Number; b2internal var m_angularDamping:Number; b2internal var m_sleepTime:Number; private var m_userData; private static var s_xf1:b2Transform = new b2Transform(); b2internal static var e_islandFlag:uint = 1; b2internal static var e_awakeFlag:uint = 2; b2internal static var e_allowSleepFlag:uint = 4; b2internal static var e_bulletFlag:uint = 8; b2internal static var e_fixedRotationFlag:uint = 16; b2internal static var e_activeFlag:uint = 32; public static var b2_staticBody:uint = 0; public static var b2_kinematicBody:uint = 1; public static var b2_dynamicBody:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ m_xf = new b2Transform(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.bullet){ 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.awake){ m_flags = (m_flags | e_awakeFlag); }; if (_arg1.active){ m_flags = (m_flags | e_activeFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetZero(); 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_controllerList = null; m_contactList = null; m_controllerCount = 0; m_prev = null; m_next = null; m_linearVelocity.SetV(_arg1.linearVelocity); m_angularVelocity = _arg1.angularVelocity; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_sleepTime = 0; m_type = _arg1.type; if (m_type == b2_dynamicBody){ m_mass = 1; m_invMass = 1; } else { m_mass = 0; m_invMass = 0; }; m_I = 0; m_invI = 0; m_inertiaScale = _arg1.inertiaScale; m_userData = _arg1.userData; m_fixtureList = null; m_fixtureCount = 0; } private function connectEdges(_arg1:b2EdgeShape, _arg2:b2EdgeShape, _arg3:Number):Number{ var _local4:Number = Math.atan2(_arg2.GetDirectionVector().y, _arg2.GetDirectionVector().x); var _local5:Number = Math.tan(((_local4 - _arg3) * 0.5)); var _local6:b2Vec2 = b2Math.MulFV(_local5, _arg2.GetDirectionVector()); _local6 = b2Math.SubtractVV(_local6, _arg2.GetNormalVector()); _local6 = b2Math.MulFV(b2Settings.b2_toiSlop, _local6); _local6 = b2Math.AddVV(_local6, _arg2.GetVertex1()); var _local7:b2Vec2 = b2Math.AddVV(_arg1.GetDirectionVector(), _arg2.GetDirectionVector()); _local7.Normalize(); var _local8 = (b2Math.Dot(_arg1.GetDirectionVector(), _arg2.GetNormalVector()) > 0); _arg1.SetNextEdge(_arg2, _local6, _local7, _local8); _arg2.SetPrevEdge(_arg1, _local6, _local7, _local8); return (_local4); } public function CreateFixture(_arg1:b2FixtureDef):b2Fixture{ var _local3:IBroadPhase; if (m_world.IsLocked() == true){ return (null); }; var _local2:b2Fixture = new b2Fixture(); _local2.Create(this, m_xf, _arg1); if ((m_flags & e_activeFlag)){ _local3 = m_world.m_contactManager.m_broadPhase; _local2.CreateProxy(_local3, m_xf); }; _local2.m_next = m_fixtureList; m_fixtureList = _local2; m_fixtureCount++; _local2.m_body = this; if (_local2.m_density > 0){ ResetMassData(); }; m_world.m_flags = (m_world.m_flags | b2World.e_newFixture); return (_local2); } public function CreateFixture2(_arg1:b2Shape, _arg2:Number=0):b2Fixture{ var _local3:b2FixtureDef = new b2FixtureDef(); _local3.shape = _arg1; _local3.density = _arg2; return (CreateFixture(_local3)); } public function DestroyFixture(_arg1:b2Fixture):void{ var _local6:b2Contact; var _local7:b2Fixture; var _local8:b2Fixture; var _local9:IBroadPhase; if (m_world.IsLocked() == true){ return; }; var _local2:b2Fixture = m_fixtureList; var _local3:b2Fixture; var _local4:Boolean; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_fixtureList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; var _local5:b2ContactEdge = m_contactList; while (_local5) { _local6 = _local5.contact; _local5 = _local5.next; _local7 = _local6.GetFixtureA(); _local8 = _local6.GetFixtureB(); if ((((_arg1 == _local7)) || ((_arg1 == _local8)))){ m_world.m_contactManager.Destroy(_local6); }; }; if ((m_flags & e_activeFlag)){ _local9 = m_world.m_contactManager.m_broadPhase; _arg1.DestroyProxy(_local9); }; _arg1.Destroy(); _arg1.m_body = null; _arg1.m_next = null; m_fixtureCount--; ResetMassData(); } public function SetPositionAndAngle(_arg1:b2Vec2, _arg2:Number):void{ var _local3:b2Fixture; if (m_world.IsLocked() == true){ return; }; 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:IBroadPhase = m_world.m_contactManager.m_broadPhase; _local3 = m_fixtureList; while (_local3) { _local3.Synchronize(_local6, m_xf, m_xf); _local3 = _local3.m_next; }; m_world.m_contactManager.FindNewContacts(); } public function SetTransform(_arg1:b2Transform):void{ SetPositionAndAngle(_arg1.position, _arg1.GetAngle()); } public function GetTransform():b2Transform{ return (m_xf); } public function GetPosition():b2Vec2{ return (m_xf.position); } public function SetPosition(_arg1:b2Vec2):void{ SetPositionAndAngle(_arg1, GetAngle()); } public function GetAngle():Number{ return (m_sweep.a); } public function SetAngle(_arg1:Number):void{ SetPositionAndAngle(GetPosition(), _arg1); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function SetLinearVelocity(_arg1:b2Vec2):void{ if (m_type == b2_staticBody){ return; }; m_linearVelocity.SetV(_arg1); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function SetAngularVelocity(_arg1:Number):void{ if (m_type == b2_staticBody){ return; }; m_angularVelocity = _arg1; } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function GetDefinition():b2BodyDef{ var _local1:b2BodyDef = new b2BodyDef(); _local1.type = GetType(); _local1.allowSleep = ((m_flags & e_allowSleepFlag) == e_allowSleepFlag); _local1.angle = GetAngle(); _local1.angularDamping = m_angularDamping; _local1.angularVelocity = m_angularVelocity; _local1.fixedRotation = ((m_flags & e_fixedRotationFlag) == e_fixedRotationFlag); _local1.bullet = ((m_flags & e_bulletFlag) == e_bulletFlag); _local1.awake = ((m_flags & e_awakeFlag) == e_awakeFlag); _local1.linearDamping = m_linearDamping; _local1.linearVelocity.SetV(GetLinearVelocity()); _local1.position = GetPosition(); _local1.userData = GetUserData(); return (_local1); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (m_type != b2_dynamicBody){ return; }; if (IsAwake() == false){ SetAwake(true); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function ApplyTorque(_arg1:Number):void{ if (m_type != b2_dynamicBody){ return; }; if (IsAwake() == false){ SetAwake(true); }; m_torque = (m_torque + _arg1); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (m_type != b2_dynamicBody){ return; }; if (IsAwake() == false){ SetAwake(true); }; 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 Split(_arg1:Function):b2Body{ var _local7:b2Fixture; var _local13:b2Fixture; var _local2:b2Vec2 = GetLinearVelocity().Copy(); var _local3:Number = GetAngularVelocity(); var _local4:b2Vec2 = GetWorldCenter(); var _local5:b2Body = this; var _local6:b2Body = m_world.CreateBody(GetDefinition()); var _local8:b2Fixture = _local5.m_fixtureList; while (_local8) { if (_arg1(_local8)){ _local13 = _local8.m_next; if (_local7){ _local7.m_next = _local13; } else { _local5.m_fixtureList = _local13; }; _local5.m_fixtureCount--; _local8.m_next = _local6.m_fixtureList; _local6.m_fixtureList = _local8; _local6.m_fixtureCount++; _local8.m_body = _local6; _local8 = _local13; } else { _local7 = _local8; _local8 = _local8.m_next; }; }; _local5.ResetMassData(); _local6.ResetMassData(); var _local9:b2Vec2 = _local5.GetWorldCenter(); var _local10:b2Vec2 = _local6.GetWorldCenter(); var _local11:b2Vec2 = b2Math.AddVV(_local2, b2Math.CrossFV(_local3, b2Math.SubtractVV(_local9, _local4))); var _local12:b2Vec2 = b2Math.AddVV(_local2, b2Math.CrossFV(_local3, b2Math.SubtractVV(_local10, _local4))); _local5.SetLinearVelocity(_local11); _local6.SetLinearVelocity(_local12); _local5.SetAngularVelocity(_local3); _local6.SetAngularVelocity(_local3); _local5.SynchronizeFixtures(); _local6.SynchronizeFixtures(); return (_local6); } public function Merge(_arg1:b2Body):void{ var _local2:b2Fixture; var _local3:b2Body; var _local4:b2Body; var _local11:b2Fixture; _local2 = _arg1.m_fixtureList; while (_local2) { _local11 = _local2.m_next; _arg1.m_fixtureCount--; _local2.m_next = m_fixtureList; m_fixtureList = _local2; m_fixtureCount++; _local2.m_body = _local4; _local2 = _local11; }; _local3.m_fixtureCount = 0; _local3 = this; _local4 = _arg1; var _local5:b2Vec2 = _local3.GetWorldCenter(); var _local6:b2Vec2 = _local4.GetWorldCenter(); var _local7:b2Vec2 = _local3.GetLinearVelocity().Copy(); var _local8:b2Vec2 = _local4.GetLinearVelocity().Copy(); var _local9:Number = _local3.GetAngularVelocity(); var _local10:Number = _local4.GetAngularVelocity(); _local3.ResetMassData(); SynchronizeFixtures(); } public function GetMass():Number{ return (m_mass); } public function GetInertia():Number{ return (m_I); } public function GetMassData(_arg1:b2MassData):void{ _arg1.mass = m_mass; _arg1.I = m_I; _arg1.center.SetV(m_sweep.localCenter); } public function SetMassData(_arg1:b2MassData):void{ b2Settings.b2Assert((m_world.IsLocked() == false)); if (m_world.IsLocked() == true){ return; }; if (m_type != b2_dynamicBody){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass <= 0){ m_mass = 1; }; m_invMass = (1 / m_mass); if ((((_arg1.I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (_arg1.I - (m_mass * ((_arg1.center.x * _arg1.center.x) + (_arg1.center.y * _arg1.center.y)))); m_invI = (1 / m_I); }; var _local2:b2Vec2 = m_sweep.c.Copy(); m_sweep.localCenter.SetV(_arg1.center); m_sweep.c0.SetV(b2Math.MulX(m_xf, m_sweep.localCenter)); m_sweep.c.SetV(m_sweep.c0); m_linearVelocity.x = (m_linearVelocity.x + (m_angularVelocity * -((m_sweep.c.y - _local2.y)))); m_linearVelocity.y = (m_linearVelocity.y + (m_angularVelocity * (m_sweep.c.x - _local2.x))); } public function ResetMassData():void{ var _local4:b2MassData; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_sweep.localCenter.SetZero(); if ((((m_type == b2_staticBody)) || ((m_type == b2_kinematicBody)))){ return; }; var _local1:b2Vec2 = b2Vec2.Make(0, 0); var _local2:b2Fixture = m_fixtureList; while (_local2) { if (_local2.m_density == 0){ } else { _local4 = _local2.GetMassData(); m_mass = (m_mass + _local4.mass); _local1.x = (_local1.x + (_local4.center.x * _local4.mass)); _local1.y = (_local1.y + (_local4.center.y * _local4.mass)); m_I = (m_I + _local4.I); }; _local2 = _local2.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local1.x = (_local1.x * m_invMass); _local1.y = (_local1.y * m_invMass); } else { m_mass = 1; m_invMass = 1; }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local1.x * _local1.x) + (_local1.y * _local1.y)))); m_I = (m_I * m_inertiaScale); b2Settings.b2Assert((m_I > 0)); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; var _local3:b2Vec2 = m_sweep.c.Copy(); m_sweep.localCenter.SetV(_local1); m_sweep.c0.SetV(b2Math.MulX(m_xf, m_sweep.localCenter)); m_sweep.c.SetV(m_sweep.c0); m_linearVelocity.x = (m_linearVelocity.x + (m_angularVelocity * -((m_sweep.c.y - _local3.y)))); m_linearVelocity.y = (m_linearVelocity.y + (m_angularVelocity * (m_sweep.c.x - _local3.x))); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.MulMV(m_xf.R, _arg1)); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.MulXT(m_xf, _arg1)); } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.MulTMV(m_xf.R, _arg1)); } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x - (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.y + (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x - (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.y + (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetLinearDamping():Number{ return (m_linearDamping); } public function SetLinearDamping(_arg1:Number):void{ m_linearDamping = _arg1; } public function GetAngularDamping():Number{ return (m_angularDamping); } public function SetAngularDamping(_arg1:Number):void{ m_angularDamping = _arg1; } public function SetType(_arg1:uint):void{ if (m_type == _arg1){ return; }; m_type = _arg1; ResetMassData(); if (m_type == b2_staticBody){ m_linearVelocity.SetZero(); m_angularVelocity = 0; }; SetAwake(true); m_force.SetZero(); m_torque = 0; var _local2:b2ContactEdge = m_contactList; while (_local2) { _local2.contact.FlagForFiltering(); _local2 = _local2.next; }; } public function GetType():uint{ return (m_type); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function SetSleepingAllowed(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); SetAwake(true); }; } public function SetAwake(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_awakeFlag); m_sleepTime = 0; } else { m_flags = (m_flags & ~(e_awakeFlag)); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; }; } public function IsAwake():Boolean{ return (((m_flags & e_awakeFlag) == e_awakeFlag)); } public function SetFixedRotation(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_fixedRotationFlag); } else { m_flags = (m_flags & ~(e_fixedRotationFlag)); }; ResetMassData(); } public function IsFixedRotation():Boolean{ return (((m_flags & e_fixedRotationFlag) == e_fixedRotationFlag)); } public function SetActive(_arg1:Boolean):void{ var _local2:IBroadPhase; var _local3:b2Fixture; var _local4:b2ContactEdge; var _local5:b2ContactEdge; if (_arg1 == IsActive()){ return; }; if (_arg1){ m_flags = (m_flags | e_activeFlag); _local2 = m_world.m_contactManager.m_broadPhase; _local3 = m_fixtureList; while (_local3) { _local3.CreateProxy(_local2, m_xf); _local3 = _local3.m_next; }; } else { m_flags = (m_flags & ~(e_activeFlag)); _local2 = m_world.m_contactManager.m_broadPhase; _local3 = m_fixtureList; while (_local3) { _local3.DestroyProxy(_local2); _local3 = _local3.m_next; }; _local4 = m_contactList; while (_local4) { _local5 = _local4; _local4 = _local4.next; m_world.m_contactManager.Destroy(_local5.contact); }; m_contactList = null; }; } public function IsActive():Boolean{ return (((m_flags & e_activeFlag) == e_activeFlag)); } public function IsSleepingAllowed():Boolean{ return (((m_flags & e_allowSleepFlag) == e_allowSleepFlag)); } public function GetFixtureList():b2Fixture{ return (m_fixtureList); } public function GetJointList():b2JointEdge{ return (m_jointList); } public function GetControllerList():b2ControllerEdge{ return (m_controllerList); } public function GetContactList():b2ContactEdge{ return (m_contactList); } public function GetNext():b2Body{ return (m_next); } public function GetUserData(){ return (m_userData); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetWorld():b2World{ return (m_world); } b2internal function SynchronizeFixtures():void{ var _local4:b2Fixture; var _local1:b2Transform = 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:IBroadPhase = m_world.m_contactManager.m_broadPhase; _local4 = m_fixtureList; while (_local4) { _local4.Synchronize(_local5, _local1, m_xf); _local4 = _local4.m_next; }; } b2internal 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))); } b2internal function ShouldCollide(_arg1:b2Body):Boolean{ if (((!((m_type == b2_dynamicBody))) && (!((_arg1.m_type == b2_dynamicBody))))){ return (false); }; var _local2:b2JointEdge = m_jointList; while (_local2) { if (_local2.other == _arg1){ if (_local2.joint.m_collideConnected == false){ return (false); }; }; _local2 = _local2.next; }; return (true); } b2internal function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } } }//package Box2D.Dynamics
Section 83
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Common.Math.*; public class b2BodyDef { public var type:uint; public var position:b2Vec2; public var angle:Number; public var linearVelocity:b2Vec2; public var angularVelocity:Number; public var linearDamping:Number; public var angularDamping:Number; public var allowSleep:Boolean; public var awake:Boolean; public var fixedRotation:Boolean; public var bullet:Boolean; public var active:Boolean; public var userData; public var inertiaScale:Number; public function b2BodyDef(){ position = new b2Vec2(); linearVelocity = new b2Vec2(); super(); userData = null; position.Set(0, 0); angle = 0; linearVelocity.Set(0, 0); angularVelocity = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; awake = true; fixedRotation = false; bullet = false; type = b2Body.b2_staticBody; active = true; inertiaScale = 1; } } }//package Box2D.Dynamics
Section 84
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Common.*; public class b2ContactFilter { b2internal static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Fixture, _arg2:b2Fixture):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); } public function RayCollide(_arg1, _arg2:b2Fixture):Boolean{ if (!_arg1){ return (true); }; return (ShouldCollide((_arg1 as b2Fixture), _arg2)); } } }//package Box2D.Dynamics
Section 85
//b2ContactImpulse (Box2D.Dynamics.b2ContactImpulse) package Box2D.Dynamics { import Box2D.Common.*; public class b2ContactImpulse { public var normalImpulses:Array; public var tangentImpulses:Array; public function b2ContactImpulse(){ normalImpulses = new Array(b2Settings.b2_maxManifoldPoints); tangentImpulses = new Array(b2Settings.b2_maxManifoldPoints); super(); } } }//package Box2D.Dynamics
Section 86
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2ContactListener { b2internal static var b2_defaultListener:b2ContactListener = new (b2ContactListener); ; public function BeginContact(_arg1:b2Contact):void{ } public function EndContact(_arg1:b2Contact):void{ } public function PreSolve(_arg1:b2Contact, _arg2:b2Manifold):void{ } public function PostSolve(_arg1:b2Contact, _arg2:b2ContactImpulse):void{ } } }//package Box2D.Dynamics
Section 87
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2ContactManager { b2internal var m_world:b2World; b2internal var m_broadPhase:IBroadPhase; b2internal var m_contactList:b2Contact; b2internal var m_contactCount:int; b2internal var m_contactFilter:b2ContactFilter; b2internal var m_contactListener:b2ContactListener; b2internal var m_contactFactory:b2ContactFactory; b2internal var m_allocator; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_world = null; m_contactCount = 0; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = b2ContactListener.b2_defaultListener; m_contactFactory = new b2ContactFactory(m_allocator); m_broadPhase = new b2DynamicTreeBroadPhase(); } public function AddPair(_arg1, _arg2):void{ var _local9:b2Fixture; var _local10:b2Fixture; var _local3:b2Fixture = (_arg1 as b2Fixture); var _local4:b2Fixture = (_arg2 as b2Fixture); var _local5:b2Body = _local3.GetBody(); var _local6:b2Body = _local4.GetBody(); if (_local5 == _local6){ return; }; var _local7:b2ContactEdge = _local6.GetContactList(); while (_local7) { if (_local7.other == _local5){ _local9 = _local7.contact.GetFixtureA(); _local10 = _local7.contact.GetFixtureB(); if ((((_local9 == _local3)) && ((_local10 == _local4)))){ return; }; if ((((_local9 == _local4)) && ((_local10 == _local3)))){ return; }; }; _local7 = _local7.next; }; if (_local6.ShouldCollide(_local5) == false){ return; }; if (m_contactFilter.ShouldCollide(_local3, _local4) == false){ return; }; var _local8:b2Contact = m_contactFactory.Create(_local3, _local4); _local3 = _local8.GetFixtureA(); _local4 = _local8.GetFixtureB(); _local5 = _local3.m_body; _local6 = _local4.m_body; _local8.m_prev = null; _local8.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local8; }; m_world.m_contactList = _local8; _local8.m_nodeA.contact = _local8; _local8.m_nodeA.other = _local6; _local8.m_nodeA.prev = null; _local8.m_nodeA.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local8.m_nodeA; }; _local5.m_contactList = _local8.m_nodeA; _local8.m_nodeB.contact = _local8; _local8.m_nodeB.other = _local5; _local8.m_nodeB.prev = null; _local8.m_nodeB.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local8.m_nodeB; }; _local6.m_contactList = _local8.m_nodeB; m_world.m_contactCount++; } public function FindNewContacts():void{ m_broadPhase.UpdatePairs(AddPair); } public function Destroy(_arg1:b2Contact):void{ var _local2:b2Fixture = _arg1.GetFixtureA(); var _local3:b2Fixture = _arg1.GetFixtureB(); var _local4:b2Body = _local2.GetBody(); var _local5:b2Body = _local3.GetBody(); if (_arg1.IsTouching()){ m_contactListener.EndContact(_arg1); }; 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; }; if (_arg1.m_nodeA.prev){ _arg1.m_nodeA.prev.next = _arg1.m_nodeA.next; }; if (_arg1.m_nodeA.next){ _arg1.m_nodeA.next.prev = _arg1.m_nodeA.prev; }; if (_arg1.m_nodeA == _local4.m_contactList){ _local4.m_contactList = _arg1.m_nodeA.next; }; if (_arg1.m_nodeB.prev){ _arg1.m_nodeB.prev.next = _arg1.m_nodeB.next; }; if (_arg1.m_nodeB.next){ _arg1.m_nodeB.next.prev = _arg1.m_nodeB.prev; }; if (_arg1.m_nodeB == _local5.m_contactList){ _local5.m_contactList = _arg1.m_nodeB.next; }; m_contactFactory.Destroy(_arg1); m_contactCount--; } public function Collide():void{ var _local2:b2Fixture; var _local3:b2Fixture; var _local4:b2Body; var _local5:b2Body; var _local6:*; var _local7:*; var _local8:Boolean; var _local9:b2Contact; var _local1:b2Contact = m_world.m_contactList; while (_local1) { _local2 = _local1.GetFixtureA(); _local3 = _local1.GetFixtureB(); _local4 = _local2.GetBody(); _local5 = _local3.GetBody(); if ((((_local4.IsAwake() == false)) && ((_local5.IsAwake() == false)))){ _local1 = _local1.GetNext(); } else { if ((_local1.m_flags & b2Contact.e_filterFlag)){ if (_local5.ShouldCollide(_local4) == false){ _local9 = _local1; _local1 = _local9.GetNext(); Destroy(_local9); continue; }; if (m_contactFilter.ShouldCollide(_local2, _local3) == false){ _local9 = _local1; _local1 = _local9.GetNext(); Destroy(_local9); continue; }; _local1.m_flags = (_local1.m_flags & ~(b2Contact.e_filterFlag)); }; _local6 = _local2.m_proxy; _local7 = _local3.m_proxy; _local8 = m_broadPhase.TestOverlap(_local6, _local7); if (_local8 == false){ _local9 = _local1; _local1 = _local9.GetNext(); Destroy(_local9); } else { _local1.Update(m_contactListener); _local1 = _local1.GetNext(); }; }; }; } } }//package Box2D.Dynamics
Section 88
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; import flash.display.*; public class b2DebugDraw { private var m_drawFlags:uint; b2internal var m_sprite:Sprite; private var m_drawScale:Number;// = 1 private var m_lineThickness:Number;// = 1 private var m_alpha:Number;// = 1 private var m_fillAlpha:Number;// = 1 private var m_xformScale:Number;// = 1 public static var e_shapeBit:uint = 1; public static var e_jointBit:uint = 2; public static var e_aabbBit:uint = 4; public static var e_pairBit:uint = 8; public static var e_centerOfMassBit:uint = 16; public static var e_controllerBit:uint = 32; public function b2DebugDraw(){ m_drawFlags = 0; } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function GetFlags():uint{ return (m_drawFlags); } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function SetSprite(_arg1:Sprite):void{ m_sprite = _arg1; } public function GetSprite():Sprite{ return (m_sprite); } public function SetDrawScale(_arg1:Number):void{ m_drawScale = _arg1; } public function GetDrawScale():Number{ return (m_drawScale); } public function SetLineThickness(_arg1:Number):void{ m_lineThickness = _arg1; } public function GetLineThickness():Number{ return (m_lineThickness); } public function SetAlpha(_arg1:Number):void{ m_alpha = _arg1; } public function GetAlpha():Number{ return (m_alpha); } public function SetFillAlpha(_arg1:Number):void{ m_fillAlpha = _arg1; } public function GetFillAlpha():Number{ return (m_fillAlpha); } public function SetXFormScale(_arg1:Number):void{ m_xformScale = _arg1; } public function GetXFormScale():Number{ return (m_xformScale); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function DrawTransform(_arg1:b2Transform):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 89
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeJoint(_arg1:b2Joint):void{ } public function SayGoodbyeFixture(_arg1:b2Fixture):void{ } } }//package Box2D.Dynamics
Section 90
//b2FilterData (Box2D.Dynamics.b2FilterData) package Box2D.Dynamics { public class b2FilterData { public var categoryBits:uint;// = 1 public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public function Copy():b2FilterData{ var _local1:b2FilterData = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Dynamics
Section 91
//b2Fixture (Box2D.Dynamics.b2Fixture) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2Fixture { private var m_massData:b2MassData; b2internal var m_aabb:b2AABB; b2internal var m_density:Number; b2internal var m_next:b2Fixture; b2internal var m_body:b2Body; b2internal var m_shape:b2Shape; b2internal var m_friction:Number; b2internal var m_restitution:Number; b2internal var m_proxy; b2internal var m_filter:b2FilterData; b2internal var m_isSensor:Boolean; b2internal var m_userData; public function b2Fixture(){ m_filter = new b2FilterData(); super(); m_aabb = new b2AABB(); m_userData = null; m_body = null; m_next = null; m_shape = null; m_density = 0; m_friction = 0; m_restitution = 0; } public function GetType():int{ return (m_shape.GetType()); } public function GetShape():b2Shape{ return (m_shape); } public function SetSensor(_arg1:Boolean):void{ var _local3:b2Contact; var _local4:b2Fixture; var _local5:b2Fixture; if (m_isSensor == _arg1){ return; }; m_isSensor = _arg1; if (m_body == null){ return; }; var _local2:b2ContactEdge = m_body.GetContactList(); while (_local2) { _local3 = _local2.contact; _local4 = _local3.GetFixtureA(); _local5 = _local3.GetFixtureB(); if ((((_local4 == this)) || ((_local5 == this)))){ _local3.SetSensor(((_local4.IsSensor()) || (_local5.IsSensor()))); }; _local2 = _local2.next; }; } public function IsSensor():Boolean{ return (m_isSensor); } public function SetFilterData(_arg1:b2FilterData):void{ var _local3:b2Contact; var _local4:b2Fixture; var _local5:b2Fixture; m_filter = _arg1.Copy(); if (m_body){ return; }; var _local2:b2ContactEdge = m_body.GetContactList(); while (_local2) { _local3 = _local2.contact; _local4 = _local3.GetFixtureA(); _local5 = _local3.GetFixtureB(); if ((((_local4 == this)) || ((_local5 == this)))){ _local3.FlagForFiltering(); }; _local2 = _local2.next; }; } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function GetBody():b2Body{ return (m_body); } public function GetNext():b2Fixture{ return (m_next); } public function GetUserData(){ return (m_userData); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function TestPoint(_arg1:b2Vec2):Boolean{ return (m_shape.TestPoint(m_body.GetTransform(), _arg1)); } public function RayCast(_arg1:b2RayCastOutput, _arg2:b2RayCastInput):Boolean{ return (m_shape.RayCast(_arg1, _arg2, m_body.GetTransform())); } public function GetMassData(_arg1:b2MassData=null):b2MassData{ if (_arg1 == null){ _arg1 = new b2MassData(); }; m_shape.ComputeMass(_arg1, m_density); return (_arg1); } public function SetDensity(_arg1:Number):void{ m_density = _arg1; } public function GetDensity():Number{ return (m_density); } public function GetFriction():Number{ return (m_friction); } public function SetFriction(_arg1:Number):void{ m_friction = _arg1; } public function GetRestitution():Number{ return (m_restitution); } public function SetRestitution(_arg1:Number):void{ m_restitution = _arg1; } public function GetAABB():b2AABB{ return (m_aabb); } b2internal function Create(_arg1:b2Body, _arg2:b2Transform, _arg3:b2FixtureDef):void{ m_userData = _arg3.userData; m_friction = _arg3.friction; m_restitution = _arg3.restitution; m_body = _arg1; m_next = null; m_filter = _arg3.filter.Copy(); m_isSensor = _arg3.isSensor; m_shape = _arg3.shape.Copy(); m_density = _arg3.density; } b2internal function Destroy():void{ m_shape = null; } b2internal function CreateProxy(_arg1:IBroadPhase, _arg2:b2Transform):void{ m_shape.ComputeAABB(m_aabb, _arg2); m_proxy = _arg1.CreateProxy(m_aabb, this); } b2internal function DestroyProxy(_arg1:IBroadPhase):void{ if (m_proxy == null){ return; }; _arg1.DestroyProxy(m_proxy); m_proxy = null; } b2internal function Synchronize(_arg1:IBroadPhase, _arg2:b2Transform, _arg3:b2Transform):void{ if (!m_proxy){ return; }; var _local4:b2AABB = new b2AABB(); var _local5:b2AABB = new b2AABB(); m_shape.ComputeAABB(_local4, _arg2); m_shape.ComputeAABB(_local5, _arg3); m_aabb.Combine(_local4, _local5); var _local6:b2Vec2 = b2Math.SubtractVV(_arg3.position, _arg2.position); _arg1.MoveProxy(m_proxy, m_aabb, _local6); } } }//package Box2D.Dynamics
Section 92
//b2FixtureDef (Box2D.Dynamics.b2FixtureDef) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; public class b2FixtureDef { public var shape:b2Shape; public var userData; public var friction:Number; public var restitution:Number; public var density:Number; public var isSensor:Boolean; public var filter:b2FilterData; public function b2FixtureDef(){ filter = new b2FilterData(); super(); shape = null; userData = null; friction = 0.2; restitution = 0; density = 0; filter.categoryBits = 1; filter.maskBits = 0xFFFF; filter.groupIndex = 0; isSensor = false; } } }//package Box2D.Dynamics
Section 93
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2Island { private var m_allocator; private var m_listener:b2ContactListener; private var m_contactSolver:b2ContactSolver; b2internal var m_bodies:Array; b2internal var m_contacts:Array; b2internal var m_joints:Array; b2internal var m_bodyCount:int; b2internal var m_jointCount:int; b2internal var m_contactCount:int; private var m_bodyCapacity:int; b2internal var m_contactCapacity:int; b2internal var m_jointCapacity:int; private static var s_impulse:b2ContactImpulse = new b2ContactImpulse(); public function b2Island(){ m_bodies = new Array(); m_contacts = new Array(); m_joints = new Array(); } public function Initialize(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener, _arg6:b2ContactSolver):void{ var _local7:int; 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_contactSolver = _arg6; _local7 = m_bodies.length; while (_local7 < _arg1) { m_bodies[_local7] = null; _local7++; }; _local7 = m_contacts.length; while (_local7 < _arg2) { m_contacts[_local7] = null; _local7++; }; _local7 = m_joints.length; while (_local7 < _arg3) { m_joints[_local7] = null; _local7++; }; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean):void{ var _local4:int; var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Boolean; var _local13:Boolean; var _local14:Boolean; var _local15:Number; var _local16:Number; var _local17:Number; _local4 = 0; while (_local4 < m_bodyCount) { _local6 = m_bodies[_local4]; if (_local6.GetType() != b2Body.b2_dynamicBody){ } 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_linearVelocity.Multiply(b2Math.Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); }; _local4++; }; m_contactSolver.Initialize(_arg1, m_contacts, m_contactCount, m_allocator); var _local8:b2ContactSolver = m_contactSolver; _local8.InitVelocityConstraints(_arg1); _local4 = 0; while (_local4 < m_jointCount) { _local7 = m_joints[_local4]; _local7.InitVelocityConstraints(_arg1); _local4++; }; _local4 = 0; while (_local4 < _arg1.velocityIterations) { _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.SolveVelocityConstraints(_arg1); _local5++; }; _local8.SolveVelocityConstraints(); _local4++; }; _local4 = 0; while (_local4 < m_jointCount) { _local7 = m_joints[_local4]; _local7.FinalizeVelocityConstraints(); _local4++; }; _local8.FinalizeVelocityConstraints(); _local4 = 0; while (_local4 < m_bodyCount) { _local6 = m_bodies[_local4]; if (_local6.GetType() == b2Body.b2_staticBody){ } else { _local9 = (_arg1.dt * _local6.m_linearVelocity.x); _local10 = (_arg1.dt * _local6.m_linearVelocity.y); if (((_local9 * _local9) + (_local10 * _local10)) > b2Settings.b2_maxTranslationSquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * (b2Settings.b2_maxTranslation * _arg1.inv_dt)); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * (b2Settings.b2_maxTranslation * _arg1.inv_dt)); }; _local11 = (_arg1.dt * _local6.m_angularVelocity); if (((_arg1.dt * _local6.m_angularVelocity) * _local11) > b2Settings.b2_maxRotationSquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = (-(b2Settings.b2_maxRotation) * _arg1.inv_dt); } else { _local6.m_angularVelocity = (b2Settings.b2_maxRotation * _arg1.inv_dt); }; }; _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(); }; _local4++; }; _local4 = 0; while (_local4 < _arg1.positionIterations) { _local12 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local13 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local14 = _local7.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local13 = ((_local13) && (_local14)); _local5++; }; if (((_local12) && (_local13))){ break; }; _local4++; }; Report(_local8.m_constraints); if (_arg3){ _local15 = Number.MAX_VALUE; _local16 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local17 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local4 = 0; while (_local4 < m_bodyCount) { _local6 = m_bodies[_local4]; if (_local6.GetType() == b2Body.b2_staticBody){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local15 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local17)))) || ((b2Math.Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local16)))){ _local6.m_sleepTime = 0; _local15 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local15 = b2Math.Min(_local15, _local6.m_sleepTime); }; }; _local4++; }; if (_local15 >= b2Settings.b2_timeToSleep){ _local4 = 0; while (_local4 < m_bodyCount) { _local6 = m_bodies[_local4]; _local6.SetAwake(false); _local4++; }; }; }; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local3:int; var _local6:b2Body; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; m_contactSolver.Initialize(_arg1, m_contacts, m_contactCount, m_allocator); var _local4:b2ContactSolver = m_contactSolver; _local2 = 0; while (_local2 < m_jointCount) { m_joints[_local2].InitVelocityConstraints(_arg1); _local2++; }; _local2 = 0; while (_local2 < _arg1.velocityIterations) { _local4.SolveVelocityConstraints(); _local3 = 0; while (_local3 < m_jointCount) { m_joints[_local3].SolveVelocityConstraints(_arg1); _local3++; }; _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local6 = m_bodies[_local2]; if (_local6.GetType() == b2Body.b2_staticBody){ } else { _local7 = (_arg1.dt * _local6.m_linearVelocity.x); _local8 = (_arg1.dt * _local6.m_linearVelocity.y); if (((_local7 * _local7) + (_local8 * _local8)) > b2Settings.b2_maxTranslationSquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * (b2Settings.b2_maxTranslation * _arg1.inv_dt)); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * (b2Settings.b2_maxTranslation * _arg1.inv_dt)); }; _local9 = (_arg1.dt * _local6.m_angularVelocity); if (((_arg1.dt * _local6.m_angularVelocity) * _local9) > b2Settings.b2_maxRotationSquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = (-(b2Settings.b2_maxRotation) * _arg1.inv_dt); } else { _local6.m_angularVelocity = (b2Settings.b2_maxRotation * _arg1.inv_dt); }; }; _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(); }; _local2++; }; var _local5:Number = 0.75; _local2 = 0; while (_local2 < _arg1.positionIterations) { _local10 = _local4.SolvePositionConstraints(_local5); _local11 = true; _local3 = 0; while (_local3 < m_jointCount) { _local12 = m_joints[_local3].SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = ((_local11) && (_local12)); _local3++; }; if (((_local10) && (_local11))){ break; }; _local2++; }; Report(_local4.m_constraints); } public function Report(_arg1:Array):void{ var _local3:b2Contact; var _local4:b2ContactConstraint; var _local5:int; if (m_listener == null){ return; }; var _local2:int; while (_local2 < m_contactCount) { _local3 = m_contacts[_local2]; _local4 = _arg1[_local2]; _local5 = 0; while (_local5 < _local4.pointCount) { s_impulse.normalImpulses[_local5] = _local4.points[_local5].normalImpulse; s_impulse.tangentImpulses[_local5] = _local4.points[_local5].tangentImpulse; _local5++; }; m_listener.PostSolve(_local3, s_impulse); _local2++; }; } public function AddBody(_arg1:b2Body):void{ _arg1.m_islandIndex = m_bodyCount; var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } } }//package Box2D.Dynamics
Section 94
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var dt:Number; public var inv_dt:Number; public var dtRatio:Number; public var velocityIterations:int; public var positionIterations:int; public var warmStarting:Boolean; public function Set(_arg1:b2TimeStep):void{ dt = _arg1.dt; inv_dt = _arg1.inv_dt; positionIterations = _arg1.positionIterations; velocityIterations = _arg1.velocityIterations; warmStarting = _arg1.warmStarting; } } }//package Box2D.Dynamics
Section 95
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Controllers.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2World { private var s_stack:Array; b2internal var m_flags:int; b2internal var m_contactManager:b2ContactManager; private var m_contactSolver:b2ContactSolver; private var m_island:b2Island; b2internal var m_bodyList:b2Body; private var m_jointList:b2Joint; b2internal var m_contactList:b2Contact; private var m_bodyCount:int; b2internal var m_contactCount:int; private var m_jointCount:int; private var m_controllerList:b2Controller; private var m_controllerCount:int; private var m_gravity:b2Vec2; private var m_allowSleep:Boolean; b2internal var m_groundBody:b2Body; private var m_destructionListener:b2DestructionListener; private var m_debugDraw:b2DebugDraw; private var m_inv_dt0:Number; public static const e_newFixture:int = 1; public static const e_locked:int = 2; private static var s_timestep2:b2TimeStep = new b2TimeStep(); private static var s_xf:b2Transform = new b2Transform(); private static var s_backupA:b2Sweep = new b2Sweep(); private static var s_backupB:b2Sweep = new b2Sweep(); private static var s_timestep:b2TimeStep = new b2TimeStep(); private static var s_queue:Array = new Array(); private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); private static var m_warmStarting:Boolean; private static var m_continuousPhysics:Boolean; public function b2World(_arg1:b2Vec2, _arg2:Boolean){ s_stack = new Array(); m_contactManager = new b2ContactManager(); m_contactSolver = new b2ContactSolver(); m_island = new b2Island(); super(); m_destructionListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_controllerList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_controllerCount = 0; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg2; m_gravity = _arg1; m_inv_dt0 = 0; m_contactManager.m_world = this; var _local3:b2BodyDef = new b2BodyDef(); m_groundBody = CreateBody(_local3); } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactManager.m_contactFilter = _arg1; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactManager.m_contactListener = _arg1; } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetBroadPhase(_arg1:IBroadPhase):void{ var _local4:b2Fixture; var _local2:IBroadPhase = m_contactManager.m_broadPhase; m_contactManager.m_broadPhase = _arg1; var _local3:b2Body = m_bodyList; while (_local3) { _local4 = _local3.m_fixtureList; while (_local4) { _local4.m_proxy = _arg1.CreateProxy(_local2.GetFatAABB(_local4.m_proxy), _local4); _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; } public function Validate():void{ m_contactManager.m_broadPhase.Validate(); } public function GetProxyCount():int{ return (m_contactManager.m_broadPhase.GetProxyCount()); } public function CreateBody(_arg1:b2BodyDef):b2Body{ if (IsLocked() == true){ return (null); }; var _local2:b2Body = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function DestroyBody(_arg1:b2Body):void{ var _local6:b2JointEdge; var _local7:b2ControllerEdge; var _local8:b2ContactEdge; var _local9:b2Fixture; if (IsLocked() == true){ return; }; var _local2:b2JointEdge = _arg1.m_jointList; while (_local2) { _local6 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local6.joint); }; DestroyJoint(_local6.joint); }; var _local3:b2ControllerEdge = _arg1.m_controllerList; while (_local3) { _local7 = _local3; _local3 = _local3.nextController; _local7.controller.RemoveBody(_arg1); }; var _local4:b2ContactEdge = _arg1.m_contactList; while (_local4) { _local8 = _local4; _local4 = _local4.next; m_contactManager.Destroy(_local8.contact); }; _arg1.m_contactList = null; var _local5:b2Fixture = _arg1.m_fixtureList; while (_local5) { _local9 = _local5; _local5 = _local5.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeFixture(_local9); }; _local9.DestroyProxy(m_contactManager.m_broadPhase); _local9.Destroy(); }; _arg1.m_fixtureList = null; _arg1.m_fixtureCount = 0; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local5:b2ContactEdge; var _local2:b2Joint = b2Joint.Create(_arg1, null); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_edgeA.joint = _local2; _local2.m_edgeA.other = _local2.m_bodyB; _local2.m_edgeA.prev = null; _local2.m_edgeA.next = _local2.m_bodyA.m_jointList; if (_local2.m_bodyA.m_jointList){ _local2.m_bodyA.m_jointList.prev = _local2.m_edgeA; }; _local2.m_bodyA.m_jointList = _local2.m_edgeA; _local2.m_edgeB.joint = _local2; _local2.m_edgeB.other = _local2.m_bodyA; _local2.m_edgeB.prev = null; _local2.m_edgeB.next = _local2.m_bodyB.m_jointList; if (_local2.m_bodyB.m_jointList){ _local2.m_bodyB.m_jointList.prev = _local2.m_edgeB; }; _local2.m_bodyB.m_jointList = _local2.m_edgeB; var _local3:b2Body = _arg1.bodyA; var _local4:b2Body = _arg1.bodyB; if (_arg1.collideConnected == false){ _local5 = _local4.GetContactList(); while (_local5) { if (_local5.other == _local3){ _local5.contact.FlagForFiltering(); }; _local5 = _local5.next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local5:b2ContactEdge; 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_bodyA; var _local4:b2Body = _arg1.m_bodyB; _local3.SetAwake(true); _local4.SetAwake(true); if (_arg1.m_edgeA.prev){ _arg1.m_edgeA.prev.next = _arg1.m_edgeA.next; }; if (_arg1.m_edgeA.next){ _arg1.m_edgeA.next.prev = _arg1.m_edgeA.prev; }; if (_arg1.m_edgeA == _local3.m_jointList){ _local3.m_jointList = _arg1.m_edgeA.next; }; _arg1.m_edgeA.prev = null; _arg1.m_edgeA.next = null; if (_arg1.m_edgeB.prev){ _arg1.m_edgeB.prev.next = _arg1.m_edgeB.next; }; if (_arg1.m_edgeB.next){ _arg1.m_edgeB.next.prev = _arg1.m_edgeB.prev; }; if (_arg1.m_edgeB == _local4.m_jointList){ _local4.m_jointList = _arg1.m_edgeB.next; }; _arg1.m_edgeB.prev = null; _arg1.m_edgeB.next = null; b2Joint.Destroy(_arg1, null); m_jointCount--; if (_local2 == false){ _local5 = _local4.GetContactList(); while (_local5) { if (_local5.other == _local3){ _local5.contact.FlagForFiltering(); }; _local5 = _local5.next; }; }; } public function AddController(_arg1:b2Controller):b2Controller{ _arg1.m_next = m_controllerList; _arg1.m_prev = null; m_controllerList = _arg1; _arg1.m_world = this; m_controllerCount++; return (_arg1); } public function RemoveController(_arg1:b2Controller):void{ 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 (m_controllerList == _arg1){ m_controllerList = _arg1.m_next; }; m_controllerCount--; } public function CreateController(_arg1:b2Controller):b2Controller{ if (_arg1.m_world != this){ throw (new Error("Controller can only be a member of one world")); }; _arg1.m_next = m_controllerList; _arg1.m_prev = null; if (m_controllerList){ m_controllerList.m_prev = _arg1; }; m_controllerList = _arg1; m_controllerCount++; _arg1.m_world = this; return (_arg1); } public function DestroyController(_arg1:b2Controller):void{ _arg1.Clear(); if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1 == m_controllerList){ m_controllerList = _arg1.m_next; }; m_controllerCount--; } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } public function GetContactCount():int{ return (m_contactCount); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function GetGravity():b2Vec2{ return (m_gravity); } public function GetGroundBody():b2Body{ return (m_groundBody); } public function Step(_arg1:Number, _arg2:int, _arg3:int):void{ if ((m_flags & e_newFixture)){ m_contactManager.FindNewContacts(); m_flags = (m_flags & ~(e_newFixture)); }; m_flags = (m_flags | e_locked); var _local4:b2TimeStep = s_timestep2; _local4.dt = _arg1; _local4.velocityIterations = _arg2; _local4.positionIterations = _arg3; if (_arg1 > 0){ _local4.inv_dt = (1 / _arg1); } else { _local4.inv_dt = 0; }; _local4.dtRatio = (m_inv_dt0 * _arg1); _local4.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local4.dt > 0){ Solve(_local4); }; if (((m_continuousPhysics) && ((_local4.dt > 0)))){ SolveTOI(_local4); }; if (_local4.dt > 0){ m_inv_dt0 = _local4.inv_dt; }; m_flags = (m_flags & ~(e_locked)); } public function ClearForces():void{ var _local1:b2Body = m_bodyList; while (_local1) { _local1.m_force.SetZero(); _local1.m_torque = 0; _local1 = _local1.m_next; }; } public function DrawDebugData():void{ var _local2:int; var _local3:b2Body; var _local4:b2Fixture; var _local5:b2Shape; var _local6:b2Joint; var _local7:IBroadPhase; var _local11:b2Transform; var _local16:b2Controller; var _local17:b2Contact; var _local18:b2Fixture; var _local19:b2Fixture; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2AABB; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); var _local1:uint = m_debugDraw.GetFlags(); var _local8:b2Vec2 = new b2Vec2(); var _local9:b2Vec2 = new b2Vec2(); var _local10:b2Vec2 = new b2Vec2(); var _local12:b2AABB = new b2AABB(); var _local13:b2AABB = new b2AABB(); var _local14:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; var _local15:b2Color = new b2Color(0, 0, 0); if ((_local1 & b2DebugDraw.e_shapeBit)){ _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetFixtureList(); while (_local4) { _local5 = _local4.GetShape(); if (_local3.IsActive() == false){ _local15.Set(0.5, 0.5, 0.3); DrawShape(_local5, _local11, _local15); } else { if (_local3.GetType() == b2Body.b2_staticBody){ _local15.Set(0.5, 0.9, 0.5); DrawShape(_local5, _local11, _local15); } else { if (_local3.GetType() == b2Body.b2_kinematicBody){ _local15.Set(0.5, 0.5, 0.9); DrawShape(_local5, _local11, _local15); } else { if (_local3.IsAwake() == false){ _local15.Set(0.6, 0.6, 0.6); DrawShape(_local5, _local11, _local15); } else { _local15.Set(0.9, 0.7, 0.7); DrawShape(_local5, _local11, _local15); }; }; }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local6 = m_jointList; while (_local6) { DrawJoint(_local6); _local6 = _local6.m_next; }; }; if ((_local1 & b2DebugDraw.e_controllerBit)){ _local16 = m_controllerList; while (_local16) { _local16.Draw(m_debugDraw); _local16 = _local16.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local15.Set(0.3, 0.9, 0.9); _local17 = m_contactManager.m_contactList; while (_local17) { _local18 = _local17.GetFixtureA(); _local19 = _local17.GetFixtureB(); _local20 = _local18.GetAABB().GetCenter(); _local21 = _local19.GetAABB().GetCenter(); m_debugDraw.DrawSegment(_local20, _local21, _local15); _local17 = _local17.GetNext(); }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local7 = m_contactManager.m_broadPhase; _local14 = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; _local3 = m_bodyList; while (_local3) { if (_local3.IsActive() == false){ } else { _local4 = _local3.GetFixtureList(); while (_local4) { _local22 = _local7.GetFatAABB(_local4.m_proxy); _local14[0].Set(_local22.lowerBound.x, _local22.lowerBound.y); _local14[1].Set(_local22.upperBound.x, _local22.lowerBound.y); _local14[2].Set(_local22.upperBound.x, _local22.upperBound.y); _local14[3].Set(_local22.lowerBound.x, _local22.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local15); _local4 = _local4.GetNext(); }; }; _local3 = _local3.GetNext(); }; }; 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.DrawTransform(_local11); _local3 = _local3.m_next; }; }; } public function QueryAABB(_arg1:Function, _arg2:b2AABB):void{ var broadPhase:IBroadPhase; var WorldQueryWrapper:Function; var callback = _arg1; var aabb = _arg2; WorldQueryWrapper = function (_arg1):Boolean{ return (callback(broadPhase.GetUserData(_arg1))); }; broadPhase = m_contactManager.m_broadPhase; broadPhase.Query(WorldQueryWrapper, aabb); } public function QueryShape(_arg1:Function, _arg2:b2Shape, _arg3:b2Transform=null):void{ var broadPhase:IBroadPhase; var WorldQueryWrapper:Function; var callback = _arg1; var shape = _arg2; var transform = _arg3; WorldQueryWrapper = function (_arg1):Boolean{ var _local2:b2Fixture = (broadPhase.GetUserData(_arg1) as b2Fixture); if (b2Shape.TestOverlap(shape, transform, _local2.GetShape(), _local2.GetBody().GetTransform())){ return (callback(_local2)); }; return (true); }; if (transform == null){ transform = new b2Transform(); transform.SetIdentity(); }; broadPhase = m_contactManager.m_broadPhase; var aabb:b2AABB = new b2AABB(); shape.ComputeAABB(aabb, transform); broadPhase.Query(WorldQueryWrapper, aabb); } public function QueryPoint(_arg1:Function, _arg2:b2Vec2):void{ var broadPhase:IBroadPhase; var WorldQueryWrapper:Function; var callback = _arg1; var p = _arg2; WorldQueryWrapper = function (_arg1):Boolean{ var _local2:b2Fixture = (broadPhase.GetUserData(_arg1) as b2Fixture); if (_local2.TestPoint(p)){ return (callback(_local2)); }; return (true); }; broadPhase = m_contactManager.m_broadPhase; var aabb:b2AABB = new b2AABB(); aabb.lowerBound.Set((p.x - b2Settings.b2_linearSlop), (p.y - b2Settings.b2_linearSlop)); aabb.upperBound.Set((p.x + b2Settings.b2_linearSlop), (p.y + b2Settings.b2_linearSlop)); broadPhase.Query(WorldQueryWrapper, aabb); } public function RayCast(_arg1:Function, _arg2:b2Vec2, _arg3:b2Vec2):void{ var broadPhase:IBroadPhase; var output:b2RayCastOutput; var RayCastWrapper:Function; var callback = _arg1; var point1 = _arg2; var point2 = _arg3; RayCastWrapper = function (_arg1:b2RayCastInput, _arg2):Number{ var _local6:Number; var _local7:b2Vec2; var _local3:* = broadPhase.GetUserData(_arg2); var _local4:b2Fixture = (_local3 as b2Fixture); var _local5:Boolean = _local4.RayCast(output, _arg1); if (_local5){ _local6 = output.fraction; _local7 = new b2Vec2((((1 - _local6) * point1.x) + (_local6 * point2.x)), (((1 - _local6) * point1.y) + (_local6 * point2.y))); return (callback(_local4, _local7, output.normal, _local6)); }; return (_arg1.maxFraction); }; broadPhase = m_contactManager.m_broadPhase; output = new b2RayCastOutput(); var input:b2RayCastInput = new b2RayCastInput(point1, point2); broadPhase.RayCast(RayCastWrapper, input); } public function RayCastOne(_arg1:b2Vec2, _arg2:b2Vec2):b2Fixture{ var result:b2Fixture; var RayCastOneWrapper:Function; var point1 = _arg1; var point2 = _arg2; RayCastOneWrapper = function (_arg1:b2Fixture, _arg2:b2Vec2, _arg3:b2Vec2, _arg4:Number):Number{ result = _arg1; return (_arg4); }; RayCast(RayCastOneWrapper, point1, point2); return (result); } public function RayCastAll(_arg1:b2Vec2, _arg2:b2Vec2):Array{ var result:Array; var RayCastAllWrapper:Function; var point1 = _arg1; var point2 = _arg2; RayCastAllWrapper = function (_arg1:b2Fixture, _arg2:b2Vec2, _arg3:b2Vec2, _arg4:Number):Number{ result[result.length] = _arg1; return (1); }; result = new Array(); RayCast(RayCastAllWrapper, point1, point2); return (result); } public function GetBodyList():b2Body{ return (m_bodyList); } public function GetJointList():b2Joint{ return (m_jointList); } public function GetContactList():b2Contact{ return (m_contactList); } public function IsLocked():Boolean{ return (((m_flags & e_locked) > 0)); } b2internal function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local10:int; var _local11:int; var _local12:b2Body; var _local13:b2ContactEdge; var _local14:b2JointEdge; var _local3:b2Controller = m_controllerList; while (_local3) { _local3.Step(_arg1); _local3 = _local3.m_next; }; var _local4:b2Island = m_island; _local4.Initialize(m_bodyCount, m_contactCount, m_jointCount, null, m_contactManager.m_contactListener, m_contactSolver); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; var _local5:b2Contact = m_contactList; while (_local5) { _local5.m_flags = (_local5.m_flags & ~(b2Contact.e_islandFlag)); _local5 = _local5.m_next; }; var _local6:b2Joint = m_jointList; while (_local6) { _local6.m_islandFlag = false; _local6 = _local6.m_next; }; var _local7:int = m_bodyCount; var _local8:Array = s_stack; var _local9:b2Body = m_bodyList; while (_local9) { if ((_local9.m_flags & b2Body.e_islandFlag)){ } else { if ((((_local9.IsAwake() == false)) || ((_local9.IsActive() == false)))){ } else { if (_local9.GetType() == b2Body.b2_staticBody){ } else { _local4.Clear(); _local10 = 0; var _temp1 = _local10; _local10 = (_local10 + 1); var _local15 = _temp1; _local8[_local15] = _local9; _local9.m_flags = (_local9.m_flags | b2Body.e_islandFlag); while (_local10 > 0) { --_local10; _local2 = _local8[_local10]; _local4.AddBody(_local2); if (_local2.IsAwake() == false){ _local2.SetAwake(true); }; if (_local2.GetType() == b2Body.b2_staticBody){ } else { _local13 = _local2.m_contactList; while (_local13) { if ((_local13.contact.m_flags & b2Contact.e_islandFlag)){ } else { if ((((((_local13.contact.IsSensor() == true)) || ((_local13.contact.IsEnabled() == false)))) || ((_local13.contact.IsTouching() == false)))){ } else { _local4.AddContact(_local13.contact); _local13.contact.m_flags = (_local13.contact.m_flags | b2Contact.e_islandFlag); _local12 = _local13.other; if ((_local12.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local10; _local10 = (_local10 + 1); var _local16 = _temp2; _local8[_local16] = _local12; _local12.m_flags = (_local12.m_flags | b2Body.e_islandFlag); }; }; }; _local13 = _local13.next; }; _local14 = _local2.m_jointList; while (_local14) { if (_local14.joint.m_islandFlag == true){ } else { _local12 = _local14.other; if (_local12.IsActive() == false){ } else { _local4.AddJoint(_local14.joint); _local14.joint.m_islandFlag = true; if ((_local12.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local10; _local10 = (_local10 + 1); _local16 = _temp3; _local8[_local16] = _local12; _local12.m_flags = (_local12.m_flags | b2Body.e_islandFlag); }; }; }; _local14 = _local14.next; }; }; }; _local4.Solve(_arg1, m_gravity, m_allowSleep); _local11 = 0; while (_local11 < _local4.m_bodyCount) { _local2 = _local4.m_bodies[_local11]; if (_local2.GetType() == b2Body.b2_staticBody){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local11++; }; }; }; }; _local9 = _local9.m_next; }; _local11 = 0; while (_local11 < _local8.length) { if (!_local8[_local11]){ break; }; _local8[_local11] = null; _local11++; }; _local2 = m_bodyList; while (_local2) { if ((((_local2.IsAwake() == false)) || ((_local2.IsActive() == false)))){ } else { if (_local2.GetType() == b2Body.b2_staticBody){ } else { _local2.SynchronizeFixtures(); }; }; _local2 = _local2.m_next; }; m_contactManager.FindNewContacts(); } b2internal function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Fixture; var _local4:b2Fixture; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local8:b2Joint; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:int; var _local17:b2TimeStep; var _local18:int; var _local19:Number; var _local20:Number; var _local21:b2JointEdge; var _local22:b2Body; var _local9:b2Island = m_island; _local9.Initialize(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, b2Settings.b2_maxTOIJointsPerIsland, null, m_contactManager.m_contactListener, m_contactSolver); var _local10:Array = s_queue; _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; }; _local8 = m_jointList; while (_local8) { _local8.m_islandFlag = false; _local8 = _local8.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((((((_local11.IsSensor() == true)) || ((_local11.IsEnabled() == false)))) || ((_local11.IsContinuous() == false)))){ } else { _local19 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local19 = _local11.m_toi; } else { _local3 = _local11.m_fixtureA; _local4 = _local11.m_fixtureB; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((!((_local5.GetType() == b2Body.b2_dynamicBody))) || ((_local5.IsAwake() == false)))) && (((!((_local6.GetType() == b2Body.b2_dynamicBody))) || ((_local6.IsAwake() == false)))))){ continue; }; _local20 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local20 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local20); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local20 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local20); }; }; _local19 = _local11.ComputeTOI(_local5.m_sweep, _local6.m_sweep); b2Settings.b2Assert((((0 <= _local19)) && ((_local19 <= 1)))); if ((((_local19 > 0)) && ((_local19 < 1)))){ _local19 = (((1 - _local19) * _local20) + _local19); if (_local19 > 1){ _local19 = 1; }; }; _local11.m_toi = _local19; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local19)) && ((_local19 < _local13)))){ _local12 = _local11; _local13 = _local19; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_fixtureA; _local4 = _local12.m_fixtureB; _local5 = _local3.m_body; _local6 = _local4.m_body; s_backupA.Set(_local5.m_sweep); s_backupB.Set(_local6.m_sweep); _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactManager.m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if ((((_local12.IsSensor() == true)) || ((_local12.IsEnabled() == false)))){ _local5.m_sweep.Set(s_backupA); _local6.m_sweep.Set(s_backupB); _local5.SynchronizeTransform(); _local6.SynchronizeTransform(); } else { if (_local12.IsTouching() == false){ } else { _local14 = _local5; if (_local14.GetType() != b2Body.b2_dynamicBody){ _local14 = _local6; }; _local9.Clear(); _local15 = 0; _local16 = 0; var _temp1 = _local16; _local16 = (_local16 + 1); _local10[(_local15 + _temp1)] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local16 > 0) { var _temp2 = _local15; _local15 = (_local15 + 1); _local2 = _local10[_temp2]; _local16--; _local9.AddBody(_local2); if (_local2.IsAwake() == false){ _local2.SetAwake(true); }; if (_local2.GetType() != b2Body.b2_dynamicBody){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local9.m_contactCount == _local9.m_contactCapacity){ break; }; if ((_local7.contact.m_flags & b2Contact.e_islandFlag)){ } else { if ((((((_local7.contact.IsSensor() == true)) || ((_local7.contact.IsEnabled() == false)))) || ((_local7.contact.IsTouching() == false)))){ } else { _local9.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local22 = _local7.other; if ((_local22.m_flags & b2Body.e_islandFlag)){ } else { if (_local22.GetType() != b2Body.b2_staticBody){ _local22.Advance(_local13); _local22.SetAwake(true); }; _local10[(_local15 + _local16)] = _local22; _local16++; _local22.m_flags = (_local22.m_flags | b2Body.e_islandFlag); }; }; }; _local7 = _local7.next; }; _local21 = _local2.m_jointList; while (_local21) { if (_local9.m_jointCount == _local9.m_jointCapacity){ } else { if (_local21.joint.m_islandFlag == true){ } else { _local22 = _local21.other; if (_local22.IsActive() == false){ } else { _local9.AddJoint(_local21.joint); _local21.joint.m_islandFlag = true; if ((_local22.m_flags & b2Body.e_islandFlag)){ } else { if (_local22.GetType() != b2Body.b2_staticBody){ _local22.Advance(_local13); _local22.SetAwake(true); }; _local10[(_local15 + _local16)] = _local22; _local16++; _local22.m_flags = (_local22.m_flags | b2Body.e_islandFlag); }; }; }; }; _local21 = _local21.next; }; }; }; _local17 = s_timestep; _local17.warmStarting = false; _local17.dt = ((1 - _local13) * _arg1.dt); _local17.inv_dt = (1 / _local17.dt); _local17.dtRatio = 0; _local17.velocityIterations = _arg1.velocityIterations; _local17.positionIterations = _arg1.positionIterations; _local9.SolveTOI(_local17); _local18 = 0; while (_local18 < _local9.m_bodyCount) { _local2 = _local9.m_bodies[_local18]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if (_local2.IsAwake() == false){ } else { if (_local2.GetType() != b2Body.b2_dynamicBody){ } else { _local2.SynchronizeFixtures(); _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local18++; }; _local18 = 0; while (_local18 < _local9.m_contactCount) { _local11 = _local9.m_contacts[_local18]; _local9.m_contacts[_local18].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local18++; }; _local18 = 0; while (_local18 < _local9.m_jointCount) { _local8 = _local9.m_joints[_local18]; _local8.m_islandFlag = false; _local18++; }; m_contactManager.FindNewContacts(); }; }; }; } b2internal function DrawJoint(_arg1:b2Joint):void{ var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; var _local2:b2Body = _arg1.GetBodyA(); var _local3:b2Body = _arg1.GetBodyB(); var _local4:b2Transform = _local2.m_xf; var _local5:b2Transform = _local3.m_xf; var _local6:b2Vec2 = _local4.position; var _local7:b2Vec2 = _local5.position; var _local8:b2Vec2 = _arg1.GetAnchorA(); var _local9:b2Vec2 = _arg1.GetAnchorB(); 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.GetGroundAnchorA(); _local13 = _local11.GetGroundAnchorB(); 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); }; }; } b2internal function DrawShape(_arg1:b2Shape, _arg2:b2Transform, _arg3:b2Color):void{ var _local4:b2CircleShape; var _local5:b2Vec2; var _local6:Number; var _local7:b2Vec2; var _local8:int; var _local9:b2PolygonShape; var _local10:int; var _local11:Array; var _local12:Array; var _local13:b2EdgeShape; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local4 = (_arg1 as b2CircleShape); _local5 = b2Math.MulX(_arg2, _local4.m_p); _local6 = _local4.m_radius; _local7 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local5, _local6, _local7, _arg3); break; case b2Shape.e_polygonShape: _local9 = (_arg1 as b2PolygonShape); _local10 = _local9.GetVertexCount(); _local11 = _local9.GetVertices(); _local12 = new Array(_local10); _local8 = 0; while (_local8 < _local10) { _local12[_local8] = b2Math.MulX(_arg2, _local11[_local8]); _local8++; }; m_debugDraw.DrawSolidPolygon(_local12, _local10, _arg3); break; case b2Shape.e_edgeShape: _local13 = (_arg1 as b2EdgeShape); m_debugDraw.DrawSegment(b2Math.MulX(_arg2, _local13.GetVertex1()), b2Math.MulX(_arg2, _local13.GetVertex2()), _arg3); break; }; } } }//package Box2D.Dynamics
Section 96
//eggbreak_67 (BuryMyBones_JuegosGratis_NoLock_fla.eggbreak_67) package BuryMyBones_JuegosGratis_NoLock_fla { import flash.display.*; public dynamic class eggbreak_67 extends MovieClip { public function eggbreak_67(){ addFrameScript(45, frame46); } function frame46(){ stop(); } } }//package BuryMyBones_JuegosGratis_NoLock_fla
Section 97
//loader_6 (BuryMyBones_JuegosGratis_NoLock_fla.loader_6) package BuryMyBones_JuegosGratis_NoLock_fla { import flash.display.*; public dynamic class loader_6 extends MovieClip { public function loader_6(){ addFrameScript(299, frame300); } function frame300(){ stop(); } } }//package BuryMyBones_JuegosGratis_NoLock_fla
Section 98
//shade_mc_71 (BuryMyBones_JuegosGratis_NoLock_fla.shade_mc_71) package BuryMyBones_JuegosGratis_NoLock_fla { import flash.display.*; public dynamic class shade_mc_71 extends MovieClip { public function shade_mc_71(){ addFrameScript(8, frame9); } function frame9(){ stop(); } } }//package BuryMyBones_JuegosGratis_NoLock_fla
Section 99
//star_mc_69 (BuryMyBones_JuegosGratis_NoLock_fla.star_mc_69) package BuryMyBones_JuegosGratis_NoLock_fla { import flash.display.*; public dynamic class star_mc_69 extends MovieClip { public function star_mc_69(){ addFrameScript(24, frame25); } function frame25(){ stop(); } } }//package BuryMyBones_JuegosGratis_NoLock_fla
Section 100
//star_s_mc_73 (BuryMyBones_JuegosGratis_NoLock_fla.star_s_mc_73) package BuryMyBones_JuegosGratis_NoLock_fla { import flash.display.*; public dynamic class star_s_mc_73 extends MovieClip { public function star_s_mc_73(){ addFrameScript(24, frame25); } function frame25(){ stop(); } } }//package BuryMyBones_JuegosGratis_NoLock_fla
Section 101
//stonesJUMP_66 (BuryMyBones_JuegosGratis_NoLock_fla.stonesJUMP_66) package BuryMyBones_JuegosGratis_NoLock_fla { import flash.display.*; public dynamic class stonesJUMP_66 extends MovieClip { public function stonesJUMP_66(){ addFrameScript(24, frame25); } function frame25(){ stop(); } } }//package BuryMyBones_JuegosGratis_NoLock_fla
Section 102
//PropTween (com.greensock.core.PropTween) package com.greensock.core { public final class PropTween { public var target:Object; public var property:String; public var start:Number; public var change:Number; public var name:String; public var priority:int; public var isPlugin:Boolean; public var nextNode:PropTween; public var prevNode:PropTween; public function PropTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:String, _arg6:Boolean, _arg7:PropTween=null, _arg8:int=0){ this.target = _arg1; this.property = _arg2; this.start = _arg3; this.change = _arg4; this.name = _arg5; this.isPlugin = _arg6; if (_arg7){ _arg7.prevNode = this; this.nextNode = _arg7; }; this.priority = _arg8; } } }//package com.greensock.core
Section 103
//SimpleTimeline (com.greensock.core.SimpleTimeline) package com.greensock.core { public class SimpleTimeline extends TweenCore { protected var _firstChild:TweenCore; protected var _lastChild:TweenCore; public var autoRemoveChildren:Boolean; public function SimpleTimeline(_arg1:Object=null){ super(0, _arg1); } public function insert(_arg1:TweenCore, _arg2=0):TweenCore{ var _local3:SimpleTimeline = _arg1.timeline; if (((!(_arg1.cachedOrphan)) && (_local3))){ _local3.remove(_arg1, true); }; _arg1.timeline = this; _arg1.cachedStartTime = (Number(_arg2) + _arg1.delay); if (_arg1.gc){ _arg1.setEnabled(true, true); }; if (((_arg1.cachedPaused) && (!((_local3 == this))))){ _arg1.cachedPauseTime = (_arg1.cachedStartTime + ((this.rawTime - _arg1.cachedStartTime) / _arg1.cachedTimeScale)); }; if (_lastChild){ _lastChild.nextNode = _arg1; } else { _firstChild = _arg1; }; _arg1.prevNode = _lastChild; _lastChild = _arg1; _arg1.nextNode = null; _arg1.cachedOrphan = false; return (_arg1); } public function remove(_arg1:TweenCore, _arg2:Boolean=false):void{ if (_arg1.cachedOrphan){ return; }; if (!_arg2){ _arg1.setEnabled(false, true); }; if (_arg1.nextNode){ _arg1.nextNode.prevNode = _arg1.prevNode; } else { if (_lastChild == _arg1){ _lastChild = _arg1.prevNode; }; }; if (_arg1.prevNode){ _arg1.prevNode.nextNode = _arg1.nextNode; } else { if (_firstChild == _arg1){ _firstChild = _arg1.nextNode; }; }; _arg1.cachedOrphan = true; } override public function renderTime(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{ var _local5:Number; var _local6:TweenCore; var _local4:TweenCore = _firstChild; this.cachedTotalTime = _arg1; this.cachedTime = _arg1; while (_local4) { _local6 = _local4.nextNode; if (((_local4.active) || ((((((_arg1 >= _local4.cachedStartTime)) && (!(_local4.cachedPaused)))) && (!(_local4.gc)))))){ if (!_local4.cachedReversed){ _local4.renderTime(((_arg1 - _local4.cachedStartTime) * _local4.cachedTimeScale), _arg2, false); } else { _local5 = (_local4.cacheIsDirty) ? _local4.totalDuration : _local4.cachedTotalDuration; _local4.renderTime((_local5 - ((_arg1 - _local4.cachedStartTime) * _local4.cachedTimeScale)), _arg2, false); }; }; _local4 = _local6; }; } public function get rawTime():Number{ return (this.cachedTotalTime); } } }//package com.greensock.core
Section 104
//TweenCore (com.greensock.core.TweenCore) package com.greensock.core { import com.greensock.*; public class TweenCore { protected var _delay:Number; protected var _hasUpdate:Boolean; protected var _rawPrevTime:Number;// = -1 public var vars:Object; public var active:Boolean; public var gc:Boolean; public var initted:Boolean; public var timeline:SimpleTimeline; public var cachedStartTime:Number; public var cachedTime:Number; public var cachedTotalTime:Number; public var cachedDuration:Number; public var cachedTotalDuration:Number; public var cachedTimeScale:Number; public var cachedPauseTime:Number; public var cachedReversed:Boolean; public var nextNode:TweenCore; public var prevNode:TweenCore; public var cachedOrphan:Boolean; public var cacheIsDirty:Boolean; public var cachedPaused:Boolean; public var data; public static const version:Number = 1.693; protected static var _classInitted:Boolean; public function TweenCore(_arg1:Number=0, _arg2:Object=null){ this.vars = ((_arg2)!=null) ? _arg2 : {}; if (this.vars.isGSVars){ this.vars = this.vars.vars; }; this.cachedDuration = (this.cachedTotalDuration = _arg1); _delay = (this.vars.delay) ? Number(this.vars.delay) : 0; this.cachedTimeScale = (this.vars.timeScale) ? Number(this.vars.timeScale) : 1; this.active = Boolean((((((_arg1 == 0)) && ((_delay == 0)))) && (!((this.vars.immediateRender == false))))); this.cachedTotalTime = (this.cachedTime = 0); this.data = this.vars.data; if (!_classInitted){ if (isNaN(TweenLite.rootFrame)){ TweenLite.initClass(); _classInitted = true; } else { return; }; }; var _local3:SimpleTimeline = ((this.vars.timeline is SimpleTimeline)) ? this.vars.timeline : (this.vars.useFrames) ? TweenLite.rootFramesTimeline : TweenLite.rootTimeline; _local3.insert(this, _local3.cachedTotalTime); if (this.vars.reversed){ this.cachedReversed = true; }; if (this.vars.paused){ this.paused = true; }; } public function play():void{ this.reversed = false; this.paused = false; } public function pause():void{ this.paused = true; } public function resume():void{ this.paused = false; } public function restart(_arg1:Boolean=false, _arg2:Boolean=true):void{ this.reversed = false; this.paused = false; this.setTotalTime((_arg1) ? -(_delay) : 0, _arg2); } public function reverse(_arg1:Boolean=true):void{ this.reversed = true; if (_arg1){ this.paused = false; } else { if (this.gc){ this.setEnabled(true, false); }; }; } public function renderTime(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{ } public function complete(_arg1:Boolean=false, _arg2:Boolean=false):void{ if (!_arg1){ renderTime(this.totalDuration, _arg2, false); return; }; if (this.timeline.autoRemoveChildren){ this.setEnabled(false, false); } else { this.active = false; }; if (!_arg2){ if (((((this.vars.onComplete) && ((this.cachedTotalTime >= this.cachedTotalDuration)))) && (!(this.cachedReversed)))){ this.vars.onComplete.apply(null, this.vars.onCompleteParams); } else { if (((((this.cachedReversed) && ((this.cachedTotalTime == 0)))) && (this.vars.onReverseComplete))){ this.vars.onReverseComplete.apply(null, this.vars.onReverseCompleteParams); }; }; }; } public function invalidate():void{ } public function setEnabled(_arg1:Boolean, _arg2:Boolean=false):Boolean{ this.gc = !(_arg1); if (_arg1){ this.active = Boolean(((((!(this.cachedPaused)) && ((this.cachedTotalTime > 0)))) && ((this.cachedTotalTime < this.cachedTotalDuration)))); if (((!(_arg2)) && (this.cachedOrphan))){ this.timeline.insert(this, (this.cachedStartTime - _delay)); }; } else { this.active = false; if (((!(_arg2)) && (!(this.cachedOrphan)))){ this.timeline.remove(this, true); }; }; return (false); } public function kill():void{ setEnabled(false, false); } protected function setDirtyCache(_arg1:Boolean=true):void{ var _local2:TweenCore = (_arg1) ? this : this.timeline; while (_local2) { _local2.cacheIsDirty = true; _local2 = _local2.timeline; }; } protected function setTotalTime(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; var _local4:Number; if (this.timeline){ _local3 = (this.cachedPaused) ? this.cachedPauseTime : this.timeline.cachedTotalTime; if (this.cachedReversed){ _local4 = (this.cacheIsDirty) ? this.totalDuration : this.cachedTotalDuration; this.cachedStartTime = (_local3 - ((_local4 - _arg1) / this.cachedTimeScale)); } else { this.cachedStartTime = (_local3 - (_arg1 / this.cachedTimeScale)); }; if (!this.timeline.cacheIsDirty){ setDirtyCache(false); }; if (this.cachedTotalTime != _arg1){ renderTime(_arg1, _arg2, false); }; }; } public function get delay():Number{ return (_delay); } public function set delay(_arg1:Number):void{ this.startTime = (this.startTime + (_arg1 - _delay)); _delay = _arg1; } public function get duration():Number{ return (this.cachedDuration); } public function set duration(_arg1:Number):void{ var _local2:Number = (_arg1 / this.cachedDuration); this.cachedDuration = (this.cachedTotalDuration = _arg1); setDirtyCache(true); if (((((this.active) && (!(this.cachedPaused)))) && (!((_arg1 == 0))))){ this.setTotalTime((this.cachedTotalTime * _local2), true); }; } public function get totalDuration():Number{ return (this.cachedTotalDuration); } public function set totalDuration(_arg1:Number):void{ this.duration = _arg1; } public function get currentTime():Number{ return (this.cachedTime); } public function set currentTime(_arg1:Number):void{ setTotalTime(_arg1, false); } public function get totalTime():Number{ return (this.cachedTotalTime); } public function set totalTime(_arg1:Number):void{ setTotalTime(_arg1, false); } public function get startTime():Number{ return (this.cachedStartTime); } public function set startTime(_arg1:Number):void{ if (((!((this.timeline == null))) && (((!((_arg1 == this.cachedStartTime))) || (this.gc))))){ this.timeline.insert(this, (_arg1 - _delay)); } else { this.cachedStartTime = _arg1; }; } public function get reversed():Boolean{ return (this.cachedReversed); } public function set reversed(_arg1:Boolean):void{ if (_arg1 != this.cachedReversed){ this.cachedReversed = _arg1; setTotalTime(this.cachedTotalTime, true); }; } public function get paused():Boolean{ return (this.cachedPaused); } public function set paused(_arg1:Boolean):void{ if (((!((_arg1 == this.cachedPaused))) && (this.timeline))){ if (_arg1){ this.cachedPauseTime = this.timeline.rawTime; } else { this.cachedStartTime = (this.cachedStartTime + (this.timeline.rawTime - this.cachedPauseTime)); this.cachedPauseTime = NaN; setDirtyCache(false); }; this.cachedPaused = _arg1; this.active = Boolean(((((!(this.cachedPaused)) && ((this.cachedTotalTime > 0)))) && ((this.cachedTotalTime < this.cachedTotalDuration)))); }; if (((!(_arg1)) && (this.gc))){ this.setEnabled(true, false); }; } } }//package com.greensock.core
Section 105
//TweenLite (com.greensock.TweenLite) package com.greensock { import flash.events.*; import flash.display.*; import com.greensock.core.*; import flash.utils.*; import com.greensock.plugins.*; public class TweenLite extends TweenCore { public var target:Object; public var propTweenLookup:Object; public var ratio:Number;// = 0 public var cachedPT1:PropTween; protected var _ease:Function; protected var _overwrite:int; protected var _overwrittenProps:Object; protected var _hasPlugins:Boolean; protected var _notifyPluginsOfEnabled:Boolean; public static const version:Number = 11.698; public static var plugins:Object = {}; public static var fastEaseLookup:Dictionary = new Dictionary(false); public static var onPluginEvent:Function; public static var killDelayedCallsTo:Function = TweenLite.killTweensOf; public static var defaultEase:Function = TweenLite.easeOut; public static var overwriteManager:Object; public static var rootFrame:Number; public static var rootTimeline:SimpleTimeline; public static var rootFramesTimeline:SimpleTimeline; public static var masterList:Dictionary = new Dictionary(false); private static var _shape:Shape = new Shape(); protected static var _reservedProps:Object = {ease:1, delay:1, overwrite:1, onComplete:1, onCompleteParams:1, useFrames:1, runBackwards:1, startAt:1, onUpdate:1, onUpdateParams:1, onStart:1, onStartParams:1, onInit:1, onInitParams:1, onReverseComplete:1, onReverseCompleteParams:1, onRepeat:1, onRepeatParams:1, proxiedEase:1, easeParams:1, yoyo:1, onCompleteListener:1, onUpdateListener:1, onStartListener:1, onReverseCompleteListener:1, onRepeatListener:1, orientToBezier:1, timeScale:1, immediateRender:1, repeat:1, repeatDelay:1, timeline:1, data:1, paused:1, reversed:1}; public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){ var _local5:TweenLite; super(_arg2, _arg3); if (_arg1 == null){ throw (new Error("Cannot tween a null object.")); }; this.target = _arg1; if ((((this.target is TweenCore)) && (this.vars.timeScale))){ this.cachedTimeScale = 1; }; propTweenLookup = {}; _ease = defaultEase; _overwrite = (((!((Number(_arg3.overwrite) > -1))) || (((!(overwriteManager.enabled)) && ((_arg3.overwrite > 1)))))) ? overwriteManager.mode : int(_arg3.overwrite); var _local4:Array = masterList[_arg1]; if (!_local4){ masterList[_arg1] = [this]; } else { if (_overwrite == 1){ for each (_local5 in _local4) { if (!_local5.gc){ _local5.setEnabled(false, false); }; }; masterList[_arg1] = [this]; } else { _local4[_local4.length] = this; }; }; if (((this.active) || (this.vars.immediateRender))){ renderTime(0, false, true); }; } protected function init():void{ var _local1:String; var _local2:int; var _local3:*; var _local4:Boolean; var _local5:Array; var _local6:PropTween; if (this.vars.onInit){ this.vars.onInit.apply(null, this.vars.onInitParams); }; if (typeof(this.vars.ease) == "function"){ _ease = this.vars.ease; }; if (this.vars.easeParams){ this.vars.proxiedEase = _ease; _ease = easeProxy; }; this.cachedPT1 = null; this.propTweenLookup = {}; for (_local1 in this.vars) { if ((((_local1 in _reservedProps)) && (!((((_local1 == "timeScale")) && ((this.target is TweenCore))))))){ } else { if ((((_local1 in plugins)) && (new ((plugins[_local1] as Class)).onInitTween(this.target, this.vars[_local1], this)))){ this.cachedPT1 = new PropTween(_local3, "changeFactor", 0, 1, ((_local3.overwriteProps.length)==1) ? _local3.overwriteProps[0] : "_MULTIPLE_", true, this.cachedPT1); if (this.cachedPT1.name == "_MULTIPLE_"){ _local2 = _local3.overwriteProps.length; while (--_local2 > -1) { this.propTweenLookup[_local3.overwriteProps[_local2]] = this.cachedPT1; }; } else { this.propTweenLookup[this.cachedPT1.name] = this.cachedPT1; }; if (_local3.priority){ this.cachedPT1.priority = _local3.priority; _local4 = true; }; if (((_local3.onDisable) || (_local3.onEnable))){ _notifyPluginsOfEnabled = true; }; _hasPlugins = true; } else { this.cachedPT1 = new PropTween(this.target, _local1, Number(this.target[_local1]), ((typeof(this.vars[_local1]))=="number") ? (Number(this.vars[_local1]) - this.target[_local1]) : Number(this.vars[_local1]), _local1, false, this.cachedPT1); this.propTweenLookup[_local1] = this.cachedPT1; }; }; }; if (_local4){ onPluginEvent("onInitAllProps", this); }; if (this.vars.runBackwards){ _local6 = this.cachedPT1; while (_local6) { _local6.start = (_local6.start + _local6.change); _local6.change = -(_local6.change); _local6 = _local6.nextNode; }; }; _hasUpdate = Boolean(!((this.vars.onUpdate == null))); if (_overwrittenProps){ killVars(_overwrittenProps); if (this.cachedPT1 == null){ this.setEnabled(false, false); }; }; if ((((((((_overwrite > 1)) && (this.cachedPT1))) && (masterList[this.target]))) && ((_local5.length > 1)))){ if (overwriteManager.manageOverwrites(this, this.propTweenLookup, _local5, _overwrite)){ init(); }; }; this.initted = true; } override public function renderTime(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{ var _local4:Boolean; var _local5:Number = this.cachedTime; if (_arg1 >= this.cachedDuration){ this.cachedTotalTime = (this.cachedTime = this.cachedDuration); this.ratio = 1; _local4 = !(this.cachedReversed); if (this.cachedDuration == 0){ if ((((((_arg1 == 0)) || ((_rawPrevTime < 0)))) && (!((_rawPrevTime == _arg1))))){ _arg3 = true; }; _rawPrevTime = _arg1; }; } else { if (_arg1 <= 0){ this.cachedTotalTime = (this.cachedTime = (this.ratio = 0)); if (_arg1 < 0){ this.active = false; if (this.cachedDuration == 0){ if (_rawPrevTime >= 0){ _arg3 = true; _local4 = (_rawPrevTime > 0); }; _rawPrevTime = _arg1; }; }; if (((this.cachedReversed) && (!((_local5 == 0))))){ _local4 = true; }; } else { this.cachedTotalTime = (this.cachedTime = _arg1); this.ratio = _ease(_arg1, 0, 1, this.cachedDuration); }; }; if ((((this.cachedTime == _local5)) && (!(_arg3)))){ return; }; if (!this.initted){ init(); if (((!(_local4)) && (this.cachedTime))){ this.ratio = _ease(this.cachedTime, 0, 1, this.cachedDuration); }; }; if (((!(this.active)) && (!(this.cachedPaused)))){ this.active = true; }; if ((((((((_local5 == 0)) && (this.vars.onStart))) && (((!((this.cachedTime == 0))) || ((this.cachedDuration == 0)))))) && (!(_arg2)))){ this.vars.onStart.apply(null, this.vars.onStartParams); }; var _local6:PropTween = this.cachedPT1; while (_local6) { _local6.target[_local6.property] = (_local6.start + (this.ratio * _local6.change)); _local6 = _local6.nextNode; }; if (((_hasUpdate) && (!(_arg2)))){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; if (((_local4) && (!(this.gc)))){ if (((_hasPlugins) && (this.cachedPT1))){ onPluginEvent("onComplete", this); }; complete(true, _arg2); }; } public function killVars(_arg1:Object, _arg2:Boolean=true):Boolean{ var _local3:String; var _local4:PropTween; var _local5:Boolean; if (_overwrittenProps == null){ _overwrittenProps = {}; }; for (_local3 in _arg1) { if ((_local3 in propTweenLookup)){ _local4 = propTweenLookup[_local3]; if (((_local4.isPlugin) && ((_local4.name == "_MULTIPLE_")))){ _local4.target.killProps(_arg1); if (_local4.target.overwriteProps.length == 0){ _local4.name = ""; }; if (((!((_local3 == _local4.target.propName))) || ((_local4.name == "")))){ delete propTweenLookup[_local3]; }; }; if (_local4.name != "_MULTIPLE_"){ if (_local4.nextNode){ _local4.nextNode.prevNode = _local4.prevNode; }; if (_local4.prevNode){ _local4.prevNode.nextNode = _local4.nextNode; } else { if (this.cachedPT1 == _local4){ this.cachedPT1 = _local4.nextNode; }; }; if (((_local4.isPlugin) && (_local4.target.onDisable))){ _local4.target.onDisable(); if (_local4.target.activeDisable){ _local5 = true; }; }; delete propTweenLookup[_local3]; }; }; if (((_arg2) && (!((_arg1 == _overwrittenProps))))){ _overwrittenProps[_local3] = 1; }; }; return (_local5); } override public function invalidate():void{ if (((_notifyPluginsOfEnabled) && (this.cachedPT1))){ onPluginEvent("onDisable", this); }; this.cachedPT1 = null; _overwrittenProps = null; _hasUpdate = (this.initted = (this.active = (_notifyPluginsOfEnabled = false))); this.propTweenLookup = {}; } override public function setEnabled(_arg1:Boolean, _arg2:Boolean=false):Boolean{ var _local3:Array; if (_arg1){ _local3 = TweenLite.masterList[this.target]; if (!_local3){ TweenLite.masterList[this.target] = [this]; } else { if (_local3.indexOf(this) == -1){ _local3[_local3.length] = this; }; }; }; super.setEnabled(_arg1, _arg2); if (((_notifyPluginsOfEnabled) && (this.cachedPT1))){ return (onPluginEvent((_arg1) ? "onEnable" : "onDisable", this)); }; return (false); } protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams))); } public static function initClass():void{ rootFrame = 0; rootTimeline = new SimpleTimeline(null); rootFramesTimeline = new SimpleTimeline(null); rootTimeline.cachedStartTime = (getTimer() * 0.001); rootFramesTimeline.cachedStartTime = rootFrame; rootTimeline.autoRemoveChildren = true; rootFramesTimeline.autoRemoveChildren = true; _shape.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true); if (overwriteManager == null){ overwriteManager = {mode:1, enabled:false}; }; } public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ return (new TweenLite(_arg1, _arg2, _arg3)); } public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ if (_arg3.isGSVars){ _arg3 = _arg3.vars; }; _arg3.runBackwards = true; if (!("immediateRender" in _arg3)){ _arg3.immediateRender = true; }; return (new TweenLite(_arg1, _arg2, _arg3)); } public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null, _arg4:Boolean=false):TweenLite{ return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, immediateRender:false, useFrames:_arg4, overwrite:0})); } protected static function updateAll(_arg1:Event=null):void{ var _local2:Dictionary; var _local3:Object; var _local4:Array; var _local5:int; rootTimeline.renderTime((((getTimer() * 0.001) - rootTimeline.cachedStartTime) * rootTimeline.cachedTimeScale), false, false); rootFrame = (rootFrame + 1); rootFramesTimeline.renderTime(((rootFrame - rootFramesTimeline.cachedStartTime) * rootFramesTimeline.cachedTimeScale), false, false); if (!(rootFrame % 60)){ _local2 = masterList; for (_local3 in _local2) { _local4 = _local2[_local3]; _local5 = _local4.length; while (--_local5 > -1) { if (TweenLite(_local4[_local5]).gc){ _local4.splice(_local5, 1); }; }; if (_local4.length == 0){ delete _local2[_local3]; }; }; }; } public static function killTweensOf(_arg1:Object, _arg2:Boolean=false, _arg3:Object=null):void{ var _local4:Array; var _local5:int; var _local6:TweenLite; if ((_arg1 in masterList)){ _local4 = masterList[_arg1]; _local5 = _local4.length; while (--_local5 > -1) { _local6 = _local4[_local5]; if (!_local6.gc){ if (_arg2){ _local6.complete(false, false); }; if (_arg3 != null){ _local6.killVars(_arg3); }; if ((((_arg3 == null)) || ((((_local6.cachedPT1 == null)) && (_local6.initted))))){ _local6.setEnabled(false, false); }; }; }; if (_arg3 == null){ delete masterList[_arg1]; }; }; } protected static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (1 - (_arg1 / _arg4)); return ((1 - (_arg1 * _arg1))); } } }//package com.greensock
Section 106
//AirBaloonCrashed (Fla.AirBaloonCrashed) package Fla { import flash.display.*; public class AirBaloonCrashed extends MovieClip { public function AirBaloonCrashed(){ addFrameScript(12, frame1); } private function frame1():void{ stop(); } } }//package Fla
Section 107
//AirShipMC (Fla.AirShipMC) package Fla { import flash.display.*; public class AirShipMC extends MovieClip { public function AirShipMC(){ this.buttonMode = true; addFrameScript(0, frame1, 8, frame1, 16, frame1); } private function frame1():void{ stop(); } } }//package Fla
Section 108
//AnimateCompleteMC (Fla.AnimateCompleteMC) package Fla { import flash.display.*; public dynamic class AnimateCompleteMC extends MovieClip { public var board:MovieClip; public function AnimateCompleteMC(){ addFrameScript(17, frame66); } private function frame66():void{ stop(); } } }//package Fla
Section 109
//BaloonCrashMC (Fla.BaloonCrashMC) package Fla { import flash.display.*; public class BaloonCrashMC extends MovieClip { public function BaloonCrashMC(){ addFrameScript(6, frame1); } private function frame1():void{ stop(); } } }//package Fla
Section 110
//BaloonMC (Fla.BaloonMC) package Fla { import flash.display.*; public class BaloonMC extends MovieClip { public function BaloonMC(){ this.buttonMode = true; addFrameScript(0, frame1, 13, frame1); } private function frame1():void{ stop(); } } }//package Fla
Section 111
//BaloonUnpopCrashMC (Fla.BaloonUnpopCrashMC) package Fla { import flash.display.*; public class BaloonUnpopCrashMC extends MovieClip { public function BaloonUnpopCrashMC(){ addFrameScript(6, frame1); } private function frame1():void{ stop(); } } }//package Fla
Section 112
//BaloonUnpopMC (Fla.BaloonUnpopMC) package Fla { import flash.display.*; public class BaloonUnpopMC extends MovieClip { public function BaloonUnpopMC(){ addFrameScript(0, frame1, 8, frame8); } private function frame1():void{ stop(); } private function frame8():void{ stop(); } } }//package Fla
Section 113
//BeamPirate1 (Fla.BeamPirate1) package Fla { import flash.display.*; public class BeamPirate1 extends MovieClip { public function BeamPirate1(){ addFrameScript(57, frame1); } private function frame1():void{ stop(); } private function frame8():void{ stop(); } } }//package Fla
Section 114
//BeamPirate2 (Fla.BeamPirate2) package Fla { import flash.display.*; public class BeamPirate2 extends MovieClip { public function BeamPirate2(){ addFrameScript(57, frame1); } private function frame1():void{ stop(); } private function frame8():void{ stop(); } } }//package Fla
Section 115
//BeamPirate3 (Fla.BeamPirate3) package Fla { import flash.display.*; public class BeamPirate3 extends MovieClip { public function BeamPirate3(){ addFrameScript(57, frame1); } private function frame1():void{ stop(); } private function frame8():void{ stop(); } } }//package Fla
Section 116
//BeamPirate4 (Fla.BeamPirate4) package Fla { import flash.display.*; public class BeamPirate4 extends MovieClip { public function BeamPirate4(){ addFrameScript(57, frame1); } private function frame1():void{ stop(); } private function frame8():void{ stop(); } } }//package Fla
Section 117
//BeamPirate5 (Fla.BeamPirate5) package Fla { import flash.display.*; public class BeamPirate5 extends MovieClip { public function BeamPirate5(){ addFrameScript(57, frame1); } private function frame1():void{ stop(); } private function frame8():void{ stop(); } } }//package Fla
Section 118
//BlowerMC (Fla.BlowerMC) package Fla { import flash.display.*; public class BlowerMC extends MovieClip { public function BlowerMC(){ this.buttonMode = true; addFrameScript((1 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 119
//BombaTleetMC (Fla.BombaTleetMC) package Fla { import flash.display.*; public class BombaTleetMC extends MovieClip { public function BombaTleetMC(){ addFrameScript(59, frame60); } private function frame60():void{ stop(); } } }//package Fla
Section 120
//BombaVzryvMC (Fla.BombaVzryvMC) package Fla { import flash.display.*; public class BombaVzryvMC extends MovieClip { public function BombaVzryvMC(){ addFrameScript(14, frame15); } private function frame15():void{ stop(); } } }//package Fla
Section 121
//BombMC (Fla.BombMC) package Fla { import flash.display.*; public class BombMC extends MovieClip { public var bombSizeMC:MovieClip; public function BombMC(){ addFrameScript(0, frame1, 1, frame2); } private function frame1():void{ stop(); } private function frame2():void{ stop(); } } }//package Fla
Section 122
//BrevnoMC (Fla.BrevnoMC) package Fla { import flash.display.*; public class BrevnoMC extends MovieClip { public function BrevnoMC(){ this.visible = false; } } }//package Fla
Section 123
//BulletMC (Fla.BulletMC) package Fla { import flash.display.*; public class BulletMC extends MovieClip { public function BulletMC(){ addFrameScript(0, frame1, 8, frame8); } private function frame1():void{ stop(); } private function frame8():void{ stop(); } } }//package Fla
Section 124
//CannonMC (Fla.CannonMC) package Fla { import flash.display.*; public class CannonMC extends MovieClip { public function CannonMC(){ this.buttonMode = true; addFrameScript(0, frame1); } private function frame1():void{ stop(); } } }//package Fla
Section 125
//CarBodyMC (Fla.CarBodyMC) package Fla { import flash.display.*; public class CarBodyMC extends MovieClip { public function CarBodyMC(){ addFrameScript((1 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 126
//CompleteOutOfAmmoMC (Fla.CompleteOutOfAmmoMC) package Fla { import flash.display.*; public dynamic class CompleteOutOfAmmoMC extends MovieClip { public var board:MovieClip; public function CompleteOutOfAmmoMC(){ addFrameScript(17, frame66); } private function frame66():void{ stop(); } } }//package Fla
Section 127
//CurrentInsideMC (Fla.CurrentInsideMC) package Fla { import flash.display.*; public class CurrentInsideMC extends MovieClip { public function CurrentInsideMC(){ this.visible = false; } } }//package Fla
Section 128
//CurrentMC (Fla.CurrentMC) package Fla { import flash.display.*; public class CurrentMC extends MovieClip { public function CurrentMC(){ addFrameScript((1 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 129
//CyfraAnimatedMC (Fla.CyfraAnimatedMC) package Fla { import flash.display.*; public class CyfraAnimatedMC extends MovieClip { public function CyfraAnimatedMC(){ addFrameScript(19, stopFunc); } private function stopFunc():void{ stop(); } } }//package Fla
Section 130
//DBRe_wood (Fla.DBRe_wood) package Fla { import flash.display.*; public class DBRe_wood extends MovieClip { public function DBRe_wood(){ this.buttonMode = true; addFrameScript((1 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 131
//DestroyRopeMC (Fla.DestroyRopeMC) package Fla { import flash.display.*; public class DestroyRopeMC extends MovieClip { public function DestroyRopeMC(){ addFrameScript((5 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 132
//DistanceJointMC (Fla.DistanceJointMC) package Fla { import flash.display.*; public class DistanceJointMC extends MovieClip { public function DistanceJointMC(){ addFrameScript(0, frame1); } private function frame1():void{ stop(); } } }//package Fla
Section 133
//DragonMC (Fla.DragonMC) package Fla { import flash.display.*; public class DragonMC extends MovieClip { public var _flameLength:MovieClip; public var _5:MovieClip; public function DragonMC(){ addFrameScript(0, this.frame1); this._flameLength.visible = false; } private function frame1():void{ stop(); } } }//package Fla
Section 134
//DRec_woodMC (Fla.DRec_woodMC) package Fla { import flash.display.*; public class DRec_woodMC extends MovieClip { public function DRec_woodMC(){ this.buttonMode = true; addFrameScript((1 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 135
//DynamicWoodCrush (Fla.DynamicWoodCrush) package Fla { import flash.display.*; public class DynamicWoodCrush extends MovieClip { public function DynamicWoodCrush(){ addFrameScript((24 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 136
//DynamicWoodWheelCrush (Fla.DynamicWoodWheelCrush) package Fla { import flash.display.*; public class DynamicWoodWheelCrush extends MovieClip { public function DynamicWoodWheelCrush(){ addFrameScript((24 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 137
//DynIcePlatformMC (Fla.DynIcePlatformMC) package Fla { import flash.display.*; public class DynIcePlatformMC extends MovieClip { public function DynIcePlatformMC(){ addFrameScript(0, frame1, 2, frame3); } private function frame1():void{ stop(); } private function frame3():void{ stop(); } } }//package Fla
Section 138
//ExplosionShort (Fla.ExplosionShort) package Fla { import flash.display.*; public class ExplosionShort extends MovieClip { public function ExplosionShort(){ addFrameScript(11, frame12); } private function frame12():void{ stop(); } } }//package Fla
Section 139
//FanMC (Fla.FanMC) package Fla { import flash.display.*; public class FanMC extends MovieClip { public function FanMC(){ this.buttonMode = true; addFrameScript(0, frame1); } private function frame1():void{ stop(); } } }//package Fla
Section 140
//GoalSensorMC (Fla.GoalSensorMC) package Fla { import flash.display.*; public class GoalSensorMC extends MovieClip { public function GoalSensorMC(){ this.visible = false; } } }//package Fla
Section 141
//GraveDigger (Fla.GraveDigger) package Fla { import flash.display.*; public class GraveDigger extends MovieClip { public function GraveDigger(){ addFrameScript(0, frame1, 84, frame1); } private function frame1():void{ stop(); } } }//package Fla
Section 142
//GraveSensorMC (Fla.GraveSensorMC) package Fla { import flash.display.*; public class GraveSensorMC extends MovieClip { public function GraveSensorMC(){ this.visible = false; } } }//package Fla
Section 143
//IntroAnimation (Fla.IntroAnimation) package Fla { import flash.events.*; import flash.display.*; import flash.net.*; public class IntroAnimation extends MovieClip { public var btn_PlayIntro:SimpleButton; public var btn_Sponsor99:SimpleButton; public var btn_Sponsor44:SimpleButton; public var introBtnoSponsor:SimpleButton; public function IntroAnimation(){ addFrameScript(0, frame1); addFrameScript(0, stopAnimation, 299, playGame); this.btn_Sponsor99.addEventListener(MouseEvent.MOUSE_DOWN, gotoSponsorPage); this.introBtnoSponsor.addEventListener(MouseEvent.MOUSE_DOWN, gotoSponsorPage); this.btn_PlayIntro.addEventListener(MouseEvent.MOUSE_DOWN, StartIntro); } private function playGame():void{ trace("strt game"); this.btn_Sponsor99.removeEventListener(MouseEvent.MOUSE_DOWN, gotoSponsorPage); this.introBtnoSponsor.removeEventListener(MouseEvent.MOUSE_DOWN, gotoSponsorPage); this.btn_PlayIntro.removeEventListener(MouseEvent.MOUSE_DOWN, StartIntro); GlobalStorage.main.StartGame(); } private function stopAnimation():void{ this.gotoAndStop(1); } private function gotoSponsorPage(_arg1:MouseEvent):void{ navigateToURL(new URLRequest(GlobalStorage.sponsorUrlAtGameStart), "_blank"); } private function StartIntro(_arg1:MouseEvent):void{ this.gotoAndPlay(2); this.btn_Sponsor99.visible = false; this.btn_PlayIntro.visible = false; } function frame1(){ } } }//package Fla
Section 144
//LDRe_cartSide (Fla.LDRe_cartSide) package Fla { import flash.display.*; public class LDRe_cartSide extends MovieClip { public function LDRe_cartSide(){ this.visible = false; } } }//package Fla
Section 145
//MaskLvlMC (Fla.MaskLvlMC) package Fla { import flash.display.*; public dynamic class MaskLvlMC extends MovieClip { public function MaskLvlMC(){ addFrameScript(0, this.frame1); } function frame1(){ stop(); } } }//package Fla
Section 146
//MedalsForLvlMC (Fla.MedalsForLvlMC) package Fla { import flash.display.*; public class MedalsForLvlMC extends MovieClip { public function MedalsForLvlMC(){ addFrameScript(0, stopFrame, 37, stopFrame, 71, stopFrame, 104, stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 147
//MedalsForLvlsBtn (Fla.MedalsForLvlsBtn) package Fla { import flash.display.*; public class MedalsForLvlsBtn extends MovieClip { public function MedalsForLvlsBtn(){ gotoAndStop(4); } private function stopFrame():void{ stop(); } } }//package Fla
Section 148
//MusicBtnMC (Fla.MusicBtnMC) package Fla { import flash.display.*; public class MusicBtnMC extends MovieClip { public function MusicBtnMC(){ addFrameScript(0, frame1); } private function frame1():void{ stop(); } } }//package Fla
Section 149
//MusicBtnMC2 (Fla.MusicBtnMC2) package Fla { import flash.display.*; public class MusicBtnMC2 extends MovieClip { public function MusicBtnMC2(){ addFrameScript(0, frame1); } private function frame1():void{ stop(); } } }//package Fla
Section 150
//platform_break (Fla.platform_break) package Fla { import flash.display.*; public dynamic class platform_break extends MovieClip { public function platform_break(){ addFrameScript(4, this.frame6); } private function frame6():void{ stop(); } } }//package Fla
Section 151
//PunchBoxMC (Fla.PunchBoxMC) package Fla { import flash.display.*; public class PunchBoxMC extends MovieClip { public function PunchBoxMC(){ this.buttonMode = true; addFrameScript(0, stopThatFrame, 51, stopThatFrame); } private function stopThatFrame():void{ stop(); } } }//package Fla
Section 152
//PunchBoxSensorMC (Fla.PunchBoxSensorMC) package Fla { import flash.display.*; public class PunchBoxSensorMC extends MovieClip { public function PunchBoxSensorMC(){ this.visible = false; } } }//package Fla
Section 153
//RevoluteJointReverseMotorMC (Fla.RevoluteJointReverseMotorMC) package Fla { import flash.display.*; public class RevoluteJointReverseMotorMC extends MovieClip { public function RevoluteJointReverseMotorMC(){ visible = false; } } }//package Fla
Section 154
//RopeMC (Fla.RopeMC) package Fla { import flash.display.*; public class RopeMC extends MovieClip { public function RopeMC(){ addFrameScript(0, frame1); } private function frame1():void{ stop(); } } }//package Fla
Section 155
//RopeShortMC (Fla.RopeShortMC) package Fla { import flash.display.*; public class RopeShortMC extends MovieClip { public function RopeShortMC(){ addFrameScript(0, frame1); } private function frame1():void{ stop(); } } }//package Fla
Section 156
//SawMC (Fla.SawMC) package Fla { import flash.display.*; public dynamic class SawMC extends MovieClip { } }//package Fla
Section 157
//SBRe_wood (Fla.SBRe_wood) package Fla { import flash.display.*; public class SBRe_wood extends MovieClip { public function SBRe_wood(){ this.buttonMode = true; addFrameScript((1 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 158
//sensorOfHandMC (Fla.sensorOfHandMC) package Fla { import flash.display.*; public class sensorOfHandMC extends MovieClip { public function sensorOfHandMC(){ visible = false; } } }//package Fla
Section 159
//ShipSensorMC (Fla.ShipSensorMC) package Fla { import flash.display.*; public class ShipSensorMC extends MovieClip { public function ShipSensorMC(){ this.visible = false; } } }//package Fla
Section 160
//SizeMeterMC (Fla.SizeMeterMC) package Fla { import flash.display.*; public class SizeMeterMC extends MovieClip { } }//package Fla
Section 161
//SkeletonHandElectricity (Fla.SkeletonHandElectricity) package Fla { import flash.display.*; public class SkeletonHandElectricity extends MovieClip { public function SkeletonHandElectricity(){ addFrameScript((17 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 162
//SkeletonLegElectricity (Fla.SkeletonLegElectricity) package Fla { import flash.display.*; public class SkeletonLegElectricity extends MovieClip { public function SkeletonLegElectricity(){ addFrameScript((17 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 163
//SkeletonsBodyElectricity (Fla.SkeletonsBodyElectricity) package Fla { import flash.display.*; public class SkeletonsBodyElectricity extends MovieClip { public function SkeletonsBodyElectricity(){ addFrameScript((17 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 164
//SkeletonsBodyMC (Fla.SkeletonsBodyMC) package Fla { import flash.display.*; public class SkeletonsBodyMC extends MovieClip { public function SkeletonsBodyMC(){ addFrameScript((1 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 165
//SkeletonsBurnBody (Fla.SkeletonsBurnBody) package Fla { import flash.display.*; public class SkeletonsBurnBody extends MovieClip { public function SkeletonsBurnBody(){ addFrameScript((24 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 166
//SkeletonsBurnHand (Fla.SkeletonsBurnHand) package Fla { import flash.display.*; public class SkeletonsBurnHand extends MovieClip { public function SkeletonsBurnHand(){ addFrameScript((24 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 167
//SkeletonsBurnHead (Fla.SkeletonsBurnHead) package Fla { import flash.display.*; public class SkeletonsBurnHead extends MovieClip { public function SkeletonsBurnHead(){ addFrameScript((24 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 168
//SkeletonsBurnLeg (Fla.SkeletonsBurnLeg) package Fla { import flash.display.*; public class SkeletonsBurnLeg extends MovieClip { public function SkeletonsBurnLeg(){ addFrameScript((24 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 169
//SkeletonsHandMC (Fla.SkeletonsHandMC) package Fla { import flash.display.*; public class SkeletonsHandMC extends MovieClip { public function SkeletonsHandMC(){ addFrameScript((1 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 170
//SkeletonsHeadElectricity (Fla.SkeletonsHeadElectricity) package Fla { import flash.display.*; public class SkeletonsHeadElectricity extends MovieClip { public function SkeletonsHeadElectricity(){ addFrameScript((17 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 171
//SkeletonsHeadMC (Fla.SkeletonsHeadMC) package Fla { import flash.display.*; public class SkeletonsHeadMC extends MovieClip { public function SkeletonsHeadMC(){ addFrameScript((1 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 172
//SkeletonsLegMC (Fla.SkeletonsLegMC) package Fla { import flash.display.*; public class SkeletonsLegMC extends MovieClip { public function SkeletonsLegMC(){ addFrameScript((1 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 173
//SkullBallMC (Fla.SkullBallMC) package Fla { import flash.display.*; public class SkullBallMC extends MovieClip { public function SkullBallMC(){ addFrameScript(30, frame31, 41, frame42); } private function frame31():void{ stop(); } private function frame42():void{ stop(); } } }//package Fla
Section 174
//SlowTimeSensorMC (Fla.SlowTimeSensorMC) package Fla { import flash.display.*; public class SlowTimeSensorMC extends MovieClip { public function SlowTimeSensorMC(){ this.visible = false; } } }//package Fla
Section 175
//SoundBtn (Fla.SoundBtn) package Fla { import flash.display.*; public dynamic class SoundBtn extends MovieClip { public function SoundBtn(){ addFrameScript(0, frame1); } private function frame1():void{ stop(); } } }//package Fla
Section 176
//SoundBtn2 (Fla.SoundBtn2) package Fla { import flash.display.*; public dynamic class SoundBtn2 extends MovieClip { public function SoundBtn2(){ addFrameScript(0, frame1); } private function frame1():void{ stop(); } } }//package Fla
Section 177
//SplashSoGood (Fla.SplashSoGood) package Fla { import flash.display.*; public class SplashSoGood extends MovieClip { public function SplashSoGood(){ addFrameScript(0, stopAnimation); } private function stopAnimation():void{ stop(); } } }//package Fla
Section 178
//SRou_WoodWheelMC (Fla.SRou_WoodWheelMC) package Fla { import flash.display.*; public class SRou_WoodWheelMC extends MovieClip { public function SRou_WoodWheelMC(){ this.buttonMode = true; addFrameScript((1 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 179
//StaticWoodCrush (Fla.StaticWoodCrush) package Fla { import flash.display.*; public class StaticWoodCrush extends MovieClip { public function StaticWoodCrush(){ addFrameScript((24 - 1), stopFrame); } private function stopFrame():void{ stop(); } } }//package Fla
Section 180
//TambourineMC (Fla.TambourineMC) package Fla { import flash.display.*; public class TambourineMC extends MovieClip { public function TambourineMC(){ addFrameScript(0, this.frame1); } private function frame1():void{ stop(); } } }//package Fla
Section 181
//WindSensorMC (Fla.WindSensorMC) package Fla { import flash.display.*; public class WindSensorMC extends MovieClip { public var windDirect:MovieClip; public function WindSensorMC(){ addFrameScript(0, frame1); this.windDirect.visible = false; } private function frame1():void{ stop(); } } }//package Fla
Section 182
//DistanceJoint (Joints.DistanceJoint) package Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import flash.display.*; public class DistanceJoint extends MovieClip { private var mechanism:String; private var _myMotorJoint:b2RevoluteJoint; private var speed:Number; private var _myRevoluteJoint:b2RevoluteJoint;// = null private var _myDistanceJoint:b2DistanceJoint;// = null private var _myRevoluteJointDef:b2RevoluteJointDef; private var _myDistanceJointDef:b2DistanceJointDef; private var myTimerStartJoint:int;// = 67 private var jointsName:String; private var movieX:Number; private var movieY:Number; private var movieWidth:Number; private var movieHeight:Number; public var objectMC:MovieClip; private var bodyA; private var bodyB; public function DistanceJoint(_arg1:MovieClip, _arg2:b2World, _arg3:String=" ", _arg4:String="0"){ var _local5:b2Body; var _local6:b2Body; var _local7:int; var _local8:b2Fixture; var _local9:b2RevoluteJoint; var _local10:b2RevoluteJoint; var _local11:Number = _arg1.x; var _local12:Number = _arg1.y; movieX = _local11; movieY = _local12; movieWidth = _arg1.width; movieHeight = _arg1.height; objectMC = _arg1; speed = Number(_arg4); var _local13 = 1; var _local14:Array = new Array(); var _local15:b2Body = _arg2.GetBodyList(); while (_local15) { if (_local15.GetFixtureList()){ if (_local15.GetFixtureList().TestPoint(new b2Vec2(((_local11 - (movieWidth / 2)) / GlobalStorage.physScale), ((_local12 - (movieHeight / 2)) / GlobalStorage.physScale)))){ _local14.push(_local15); }; }; _local15 = _local15.GetNext(); }; while (_local7 < _local14.length) { _local7++; }; var _local16:b2Body = _arg2.GetBodyList(); while (_local16) { if (_local16.GetFixtureList()){ _local8 = _local16.GetFixtureList(); while (_local8) { if (_local8.TestPoint(new b2Vec2(((_local11 + (movieWidth / 2)) / GlobalStorage.physScale), ((_local12 + (movieHeight / 2)) / GlobalStorage.physScale)))){ if (_local13 == 1){ _local5 = _local16; _local13++; break; } else { _local6 = _local16; break; }; }; _local8 = _local8.GetNext(); }; }; _local16 = _local16.GetNext(); }; if (!_local6){ _local6 = _arg2.GetGroundBody(); }; if (_local5){ }; if (!_local6){ trace("hm... no bodies..."); return; }; if (!_local6.GetUserData()){ _local6 = _local5; _local5 = _arg2.GetGroundBody(); }; bodyA = _local5; bodyB = _local6; trace((((" first body " + _local5.GetUserData()) + "secondBody ") + _local6.GetUserData())); _myDistanceJointDef = new b2DistanceJointDef(); trace((" point A " + (calculatePoints("A").x * GlobalStorage.physScale))); trace((" point B " + (calculatePoints("B").x * GlobalStorage.physScale))); _myDistanceJointDef.Initialize(_local5, _local6, calculatePoints("A"), calculatePoints("B")); _myDistanceJoint = (_arg2.CreateJoint(_myDistanceJointDef) as b2DistanceJoint); _myDistanceJoint.SetFrequency(1); _myDistanceJoint.SetDampingRatio(0); _myDistanceJoint.SetUserData(this); } private function calculatePoints(_arg1:String):b2Vec2{ var _local2:Number; var _local3:Number; var _local4:b2Vec2; if (_arg1 == "A"){ _local2 = ((movieX - (movieWidth / 2)) / GlobalStorage.physScale); _local3 = ((movieY - (movieHeight / 2)) / GlobalStorage.physScale); } else { _local2 = ((movieX + (movieWidth / 2)) / GlobalStorage.physScale); _local3 = ((movieY + (movieHeight / 2)) / GlobalStorage.physScale); }; _local4 = new b2Vec2(_local2, _local3); return (_local4); } public function GetUserData():MovieClip{ trace("I worked"); return (objectMC); } public function SetUserData(_arg1:MovieClip):void{ objectMC = _arg1; } public function getAngleOfDistanceJoint():Number{ var _local1:Number = ((movieX - (movieWidth / 2)) / GlobalStorage.physScale); var _local2:Number = ((movieY - (movieHeight / 2)) / GlobalStorage.physScale); var _local3:Number = MathUtils.getAngle(_local1, _local2, bodyB.GetPosition().x, bodyB.GetPosition().y); return (_local3); } public function getCoordinates():b2Vec2{ var _local1:Number = ((movieX - (movieWidth / 2)) / GlobalStorage.physScale); var _local2:Number = ((movieY - (movieHeight / 2)) / GlobalStorage.physScale); trace((((("startX " + (_local1 * GlobalStorage.physScale)) + " - ") + " body get position ") + (bodyB.GetPosition().x * GlobalStorage.physScale))); var _local3:b2Vec2 = new b2Vec2(bodyB.GetPosition().x, bodyB.GetPosition().y); return (_local3); } } }//package Joints
Section 183
//RevoluteJoint (Joints.RevoluteJoint) package Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import flash.display.*; public class RevoluteJoint extends MovieClip { private var mechanism:String; private var _myMotorJoint:b2RevoluteJoint; private var speed:Number; private var _myRevoluteJoint:b2RevoluteJoint;// = null private var _myDistanceJoint:b2DistanceJoint;// = null private var _myRevoluteJointDef:b2RevoluteJointDef; private var _myDistanceJointDef:b2DistanceJointDef; private var myTimerStartJoint:int;// = 67 private var jointsName:String; public function RevoluteJoint(_arg1:MovieClip, _arg2:b2World, _arg3:String, _arg4:String="0"){ var _local5:b2Body; var _local6:b2Body; var _local7:int; var _local8:b2Fixture; var _local9:b2RevoluteJoint; var _local10:b2RevoluteJoint; var _local11:Number = _arg1.x; var _local12:Number = _arg1.y; speed = Number(_arg4); var _local13 = 1; var _local14:Array = new Array(); var _local15:b2Body = _arg2.GetBodyList(); while (_local15) { if (_local15.GetFixtureList()){ if (_local15.GetFixtureList().TestPoint(new b2Vec2((_local11 / GlobalStorage.physScale), (_local12 / GlobalStorage.physScale)))){ _local14.push(_local15); }; }; _local15 = _local15.GetNext(); }; while (_local7 < _local14.length) { _local7++; }; var _local16:b2Body = _arg2.GetBodyList(); while (_local16) { if (_local16.GetFixtureList()){ _local8 = _local16.GetFixtureList(); while (_local8) { if (_local8.TestPoint(new b2Vec2((_local11 / GlobalStorage.physScale), (_local12 / GlobalStorage.physScale)))){ if (_local13 == 1){ _local5 = _local16; _local13++; break; } else { _local6 = _local16; break; }; }; _local8 = _local8.GetNext(); }; }; _local16 = _local16.GetNext(); }; if (!_local6){ _local6 = _arg2.GetGroundBody(); }; if (_local5){ }; if (!_local6){ trace("hm... no bodies..."); return; }; if (!_local6.GetUserData()){ _local6 = _local5; _local5 = _arg2.GetGroundBody(); }; _myRevoluteJointDef = new b2RevoluteJointDef(); _myRevoluteJointDef.Initialize(_local5, _local6, new b2Vec2((_local11 / GlobalStorage.physScale), (_local12 / GlobalStorage.physScale))); jointsName = _arg3; if (_arg3 == "static"){ _myRevoluteJointDef.enableLimit = true; _myRevoluteJointDef.lowerAngle = 0; _myRevoluteJointDef.upperAngle = 0; }; if (_arg3 == "motor"){ _myRevoluteJointDef.enableLimit = false; _myRevoluteJointDef.enableMotor = true; _myRevoluteJointDef.motorSpeed = speed; _myRevoluteJointDef.maxMotorTorque = 3000; _myMotorJoint = (_arg2.CreateJoint(_myRevoluteJointDef) as b2RevoluteJoint); }; if (this.mechanism != "catapult"){ _myRevoluteJointDef.enableMotor = true; _myRevoluteJointDef.enableMotor = false; _myRevoluteJointDef.motorSpeed = -1; _myRevoluteJointDef.maxMotorTorque = 10; _myRevoluteJoint = (_arg2.CreateJoint(_myRevoluteJointDef) as b2RevoluteJoint); }; if (_arg3 != "dynamic"){ }; if (_arg3 == "static"){ _local10 = (_arg2.CreateJoint(_myRevoluteJointDef) as b2RevoluteJoint); }; } public function startJointMotor(){ if (jointsName == "motor"){ trace("MOTOR!"); }; } } }//package Joints
Section 184
//AirShip (Objects.AirShip) package Objects { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class AirShip extends GameObject { public var objectInWater:Boolean;// = false public var fireOn:Boolean;// = false public var airShipForce:b2Vec2; public function AirShip(_arg1:MovieClip, _arg2:b2World){ super(_arg1, _arg2); airShipForce = GlobalStorage.airShipForce; var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = _arg2.CreateBody(_local3); var _local4:b2CircleShape = new b2CircleShape((objWidth / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 0.1; _local5.restitution = 0.05; _local5.friction = 0.1; body.CreateFixture(_local5); body.SetAngle(objRotation); body.SetUserData(this); this.mouseEnabled = false; this.mouseChildren = false; } public function changeForce():b2Vec2{ if (fireOn){ airShipForce = GlobalStorage.airShipForceUp; } else { airShipForce = GlobalStorage.airShipForce; }; return (airShipForce); } } }//package Objects
Section 185
//Arrow (Objects.Arrow) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class Arrow extends GameObject { public function Arrow(_arg1:MovieClip, _arg2:b2World){ super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_staticBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.shape = _local4; _local5.isSensor = true; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); } } }//package Objects
Section 186
//Baloon (Objects.Baloon) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class Baloon extends GameObject { public var objectInWater:Boolean;// = false public function Baloon(_arg1:MovieClip, _arg2:b2World){ var _local5:b2FixtureDef; super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = _arg2.CreateBody(_local3); var _local4:b2CircleShape = new b2CircleShape((objWidth / 2)); _local5 = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 0.5; _local5.restitution = 0.05; _local5.friction = 0.5; body.CreateFixture(_local5); body.SetAngle(objRotation); body.SetUserData(this); this.mouseEnabled = false; this.mouseChildren = false; } } }//package Objects
Section 187
//BaloonUnpop (Objects.BaloonUnpop) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class BaloonUnpop extends GameObject { public var objectInWater:Boolean;// = false public function BaloonUnpop(_arg1:MovieClip, _arg2:b2World){ var _local5:b2FixtureDef; super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = _arg2.CreateBody(_local3); var _local4:b2CircleShape = new b2CircleShape((objWidth / 2)); _local5 = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 0.5; _local5.restitution = 0.05; _local5.friction = 0.5; body.CreateFixture(_local5); body.SetAngle(objRotation); body.SetUserData(this); this.mouseEnabled = false; this.mouseChildren = false; } } }//package Objects
Section 188
//BigSpike (Objects.BigSpike) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class BigSpike extends GameObject { public function BigSpike(_arg1:MovieClip, _arg2:b2World){ var _local5:b2FixtureDef; super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_staticBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); _local5 = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 0.5; _local5.restitution = 0.6; _local5.filter.groupIndex = -3; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); } } }//package Objects
Section 189
//Blower (Objects.Blower) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class Blower extends GameObject { public function Blower(_arg1:MovieClip, _arg2:b2World){ super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_staticBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 0.5; _local5.isSensor = true; _local5.filter.groupIndex = -3; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); } } }//package Objects
Section 190
//Bomb (Objects.Bomb) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.events.*; import flash.display.*; public class Bomb extends GameObject { private var contdown:int;// = 60 private var destroyed:Boolean;// = false private var bombActivated:Boolean;// = false public var objectInWater:Boolean;// = false public function Bomb(_arg1:MovieClip, _arg2:b2World){ var _local3:MovieClip; super(_arg1, _arg2); _local3 = _arg1.bombSizeMC; var _local4:b2BodyDef = new b2BodyDef(); _local4.type = b2Body.b2_dynamicBody; _local4.position.Set(xPos, yPos); body = _arg2.CreateBody(_local4); var _local5:b2CircleShape = new b2CircleShape(((_local3.width / GlobalStorage.physScale) / 2)); var _local6:b2FixtureDef = new b2FixtureDef(); _local6.shape = _local5; _local6.density = 0.5; _local6.restitution = 0; _local6.friction = 0.8; body.CreateFixture(_local6); body.SetAngle(objRotation); body.SetUserData(this); } public function activate():void{ if (!bombActivated){ bombActivated = true; GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, bombTick); bombActivated = true; objectMC.gotoAndStop(2); Sounds.PlaySnd("FuseSnd"); trace("FUSE FIRE"); }; } private function bombTick(_arg1:Event):void{ contdown--; if (contdown == 0){ explosion(); } else { if (contdown == -1){ GlobalStorage.stageLink.removeEventListener(Event.ENTER_FRAME, bombTick); bombActivated = false; }; }; } public function removeBombTick():void{ if (bombActivated){ bombActivated = false; GlobalStorage.stageLink.removeEventListener(Event.ENTER_FRAME, bombTick); }; } private function explosion():void{ if (!destroyed){ GlobalStorage.createExplosionsList.push(body.GetPosition()); GlobalStorage.destroyBodiesList.push(body); destroyed = true; objectMC.gotoAndStop(3); Sounds.PlaySnd("BombExplosion"); }; } } }//package Objects
Section 191
//Bottle1 (Objects.Bottle1) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; import Fla.*; public class Bottle1 extends GameObject { public var destroyed:Boolean;// = false private var typeOfBottle:String; public function Bottle1(_arg1:MovieClip, _arg2:b2World, _arg3:String){ super(_arg1, _arg2); typeOfBottle = _arg3; var _local4:b2BodyDef = new b2BodyDef(); _local4.type = b2Body.b2_dynamicBody; _local4.position.Set(xPos, yPos); body = _arg2.CreateBody(_local4); var _local5:b2PolygonShape = new b2PolygonShape(); _local5.SetAsBox((objWidth / 2), (objHeight / 2)); var _local6:b2FixtureDef = new b2FixtureDef(); _local6.shape = _local5; _local6.density = 0.5; _local6.restitution = 0.1; _local6.friction = 0.5; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local6); body.SetBullet(true); } public function destroy():void{ var _local1:MovieClip; if (!destroyed){ switch (typeOfBottle){ case "Bottle1MC": _local1 = new BeamPirate1(); break; case "Bottle2MC": _local1 = new BeamPirate5(); break; case "Bottle3MC": _local1 = new BeamPirate3(); break; case "Bottle4MC": _local1 = new BeamPirate2(); break; case "Bottle5MC": _local1 = new BeamPirate4(); break; default: break; }; _local1.x = (body.GetPosition().x * GlobalStorage.physScale); _local1.y = (body.GetPosition().y * GlobalStorage.physScale); GlobalStorage.destroyBodiesList.push(body); destroyed = true; objectMC.gotoAndPlay(2); GlobalStorage._globalLvlvMC.addChild(_local1); GlobalStorage.bottleObjectRemaining--; trace(("bottle remain " + GlobalStorage.bottleObjectRemaining)); Sounds.PlaySnd("Beam3"); }; } } }//package Objects
Section 192
//BreakablePlatform (Objects.BreakablePlatform) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class BreakablePlatform extends GameObject { private var destroyed:Boolean;// = false public function BreakablePlatform(_arg1:MovieClip, _arg2:b2World):void{ super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_staticBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.shape = _local4; _local5.restitution = 1; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); } } }//package Objects
Section 193
//Brevno (Objects.Brevno) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class Brevno extends GameObject { public function Brevno(_arg1:MovieClip, _arg2:b2World, _arg3:b2World=null){ super(_arg1, _arg2); var _local4:b2BodyDef = new b2BodyDef(); _local4.type = b2Body.b2_staticBody; _local4.position.Set(xPos, yPos); body = world.CreateBody(_local4); var _local5:b2PolygonShape = new b2PolygonShape(); _local5.SetAsBox((objWidth / 2), (objHeight / 2)); var _local6:b2FixtureDef = new b2FixtureDef(); _local6.shape = _local5; _local6.density = 0.5; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local6); } } }//package Objects
Section 194
//Bullet (Objects.Bullet) package Objects { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.events.*; import flash.display.*; public class Bullet extends GameObject { var collisionsNum:Number;// = 0 public function Bullet(_arg1:MovieClip, _arg2:b2World, _arg3){ var _local6:b2FixtureDef; super(_arg1, _arg2); var _local4:b2BodyDef = new b2BodyDef(); _local4.type = b2Body.b2_dynamicBody; _local4.position.Set(xPos, yPos); body = GlobalStorage.world.CreateBody(_local4); var _local5:b2CircleShape = new b2CircleShape((objWidth / 2)); _local6 = new b2FixtureDef(); _local6.shape = _local5; _local6.density = 1; _local6.restitution = 0.2; _local6.friction = 0.1; body.SetBullet(true); body.CreateFixture(_local6); body.SetAngle(objRotation); body.SetUserData(this); shoot(_arg3); } public function shoot(_arg1):void{ this.GetBody().ApplyImpulse(new b2Vec2((Math.cos(_arg1) * GlobalStorage.bulletsPower), (Math.sin(_arg1) * GlobalStorage.bulletsPower)), body.GetWorldCenter()); } private function checkSpeed(_arg1:Event):void{ var _local4:Number; var _local5:b2Vec2; var _local2:Number = (Math.abs(this.GetBody().GetLinearVelocity().x) + Math.abs(this.GetBody().GetLinearVelocity().y)); var _local3:Number = 40; if (_local2 < _local3){ _local4 = (_local3 / _local2); _local5 = new b2Vec2((this.GetBody().GetLinearVelocity().x * _local4), (this.GetBody().GetLinearVelocity().y * _local4)); this.GetBody().SetLinearVelocity(_local5); }; } public function destroy():void{ GlobalStorage.destroyBodiesList.push(body); objectMC.gotoAndPlay(2); GlobalStorage.stageLink.removeEventListener(Event.ENTER_FRAME, checkSpeed); } public function calculateCollisions():void{ collisionsNum++; if (collisionsNum > GlobalStorage.maxNumOfCollisions){ destroy(); }; } } }//package Objects
Section 195
//Cannon (Objects.Cannon) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class Cannon extends GameObject { public function Cannon(_arg1:MovieClip, _arg2:b2World){ super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 1.2; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); } } }//package Objects
Section 196
//CarBody (Objects.CarBody) package Objects { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class CarBody extends GameObject { public var carOn:Boolean;// = false private var carsAngle:Number; private var bodyOfCar:b2Body; public var objectInWater:Boolean;// = false public function CarBody(_arg1:MovieClip, _arg2:b2World){ super(_arg1, _arg2); _arg1.buttonMode = true; var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); bodyOfCar = body; var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 0.5; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); } public function carMoveOnOff(_arg1:Number):void{ var _local2:Number; if (carOn){ moveTheCar(0); carOn = false; Sounds.PlaySnd("CarOff", 1); } else { _local2 = Math.cos(_arg1); carOn = true; Sounds.PlaySnd("CarOn", 1); if ((((_local2 >= 0)) && ((_local2 <= 1)))){ moveTheCar(-1); } else { moveTheCar(1); }; }; } public function moveTheCar(_arg1:Number):void{ var _local2:*; _local2 = bodyOfCar.GetJointList(); while (_local2) { if (_local2.other.GetUserData() != null){ trace(("Joints " + _local2.joint)); _local2.joint.SetMotorSpeed(((GlobalStorage.carSpeed * _arg1) * GlobalStorage.gravitationForBaloon)); }; _local2 = _local2.next; }; } } }//package Objects
Section 197
//ChainLink (Objects.ChainLink) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class ChainLink extends GameObject { public var markAsBreak:Boolean;// = false public var markAsLight:Boolean;// = false public function ChainLink(_arg1:MovieClip, _arg2:b2World){ super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 5; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); } public function destroy():void{ GlobalStorage.destroyBodiesList.push(body); objectMC.gotoAndStop(3); } } }//package Objects
Section 198
//Curretn (Objects.Curretn) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.events.*; import flash.display.*; public class Curretn extends GameObject { public var electricityOn:Boolean;// = true private var tempFrameDelay:int; public function Curretn(_arg1:MovieClip, _arg2:b2World){ super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_staticBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.isSensor = true; _local5.shape = _local4; _local5.restitution = 0.1; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); stratElectricity(); } private function stratElectricity():void{ objectMC.gotoAndPlay(2); startElectricityDelay(); } public function checkFrameName():String{ return (objectMC.currentLabel); } private function startElectricityDelay():void{ tempFrameDelay = (GlobalStorage.electricityDelay * 2); electricityOn = true; GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, countDelay); } private function countDelay(_arg1:Event):void{ tempFrameDelay--; if (tempFrameDelay <= 0){ GlobalStorage.stageLink.removeEventListener(Event.ENTER_FRAME, countDelay); stratElectricity(); }; if (tempFrameDelay <= (GlobalStorage.electricityDelay / 2)){ electricityOn = false; }; } } }//package Objects
Section 199
//Dragon (Objects.Dragon) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.events.*; import flash.display.*; public class Dragon extends GameObject { private var myWidth:Number;// = 121 private var myHeight:Number;// = 16 private var delayBeforeFlame:int;// = 11 private var countDelayBeforeFlame:int; private var flameDuration:int;// = 30 private var countFlamDuration:int; public var flameOn:Boolean;// = false public var contactDetected:Boolean;// = false private var frameDelay:int; private var tempFrameDelay:int; private var startDragonFrame:int;// = 10 private var startFlameFrame:int;// = 11 private var endFlameFrame:int;// = 41 private var frameCount:int;// = 0 private var endDragonFlame:int;// = 52 public function Dragon(_arg1:MovieClip, _arg2:b2World, _arg3:Number, _arg4:String="1"){ var _local5:b2BodyDef; super(_arg1, _arg2); _local5 = new b2BodyDef(); _local5.type = b2Body.b2_staticBody; _local5.position.Set(xPos, yPos); body = world.CreateBody(_local5); var _local6:b2PolygonShape = new b2PolygonShape(); _local6.SetAsBox((((myWidth / GlobalStorage.physScale) / 2) * _arg3), (((myHeight / GlobalStorage.physScale) / 2) * _arg3)); var _local7:b2FixtureDef = new b2FixtureDef(); _local7.shape = _local6; _local7.isSensor = true; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local7); body.SetBullet(true); frameDelay = Number(_arg4); trace(("_frameDelay " + _arg4)); objectMC.gotoAndStop(1); startFlame(); } private function startFlame():void{ tempFrameDelay = (GlobalStorage.dragonFireDelay * 2); objectMC.gotoAndPlay(2); GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, countDelay); } private function countDelay(_arg1:Event):void{ tempFrameDelay--; if (tempFrameDelay <= 0){ GlobalStorage.stageLink.removeEventListener(Event.ENTER_FRAME, countDelay); startFlame(); }; } private function startDragon():void{ objectMC.gotoAndPlay(2); } public function checkFrameName():String{ return (objectMC.currentLabel); } } }//package Objects
Section 200
//DynamicBrekableRecObject (Objects.DynamicBrekableRecObject) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class DynamicBrekableRecObject extends GameObject { public var objectInWater:Boolean;// = false public function DynamicBrekableRecObject(_arg1:MovieClip, _arg2:b2World){ super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.shape = _local4; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); } } }//package Objects
Section 201
//DynamicBrevno (Objects.DynamicBrevno) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class DynamicBrevno extends GameObject { public var objectInWater:Boolean;// = false public function DynamicBrevno(_arg1:MovieClip, _arg2:b2World){ var _local5:b2FixtureDef; super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); _local5 = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 0; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); } } }//package Objects
Section 202
//DynamicRectangle (Objects.DynamicRectangle) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class DynamicRectangle extends GameObject { public var objectInWater:Boolean;// = false public function DynamicRectangle(_arg1:MovieClip, _arg2:b2World, _arg3){ var _local6:b2FixtureDef; super(_arg1, _arg2); var _local4:b2BodyDef = new b2BodyDef(); _local4.type = b2Body.b2_dynamicBody; _local4.position.Set(xPos, yPos); body = world.CreateBody(_local4); var _local5:b2PolygonShape = new b2PolygonShape(); _local5.SetAsBox((objWidth / 2), (objHeight / 2)); _local6 = new b2FixtureDef(); _local6.shape = _local5; _local6.density = _arg3; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local6); body.SetBullet(true); } } }//package Objects
Section 203
//DynamicRoundObject (Objects.DynamicRoundObject) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class DynamicRoundObject extends GameObject { public var objectInWater:Boolean;// = false public function DynamicRoundObject(_arg1:MovieClip, _arg2:b2World, _arg3){ var _local6:b2FixtureDef; super(_arg1, _arg2); var _local4:b2BodyDef = new b2BodyDef(); _local4.type = b2Body.b2_dynamicBody; _local4.position.Set(xPos, yPos); body = _arg2.CreateBody(_local4); var _local5:b2CircleShape = new b2CircleShape((objWidth / 2)); _local6 = new b2FixtureDef(); _local6.shape = _local5; _local6.density = _arg3; _local6.restitution = 0.05; _local6.friction = 0.5; body.CreateFixture(_local6); body.SetAngle(objRotation); body.SetUserData(this); } } }//package Objects
Section 204
//ExplosionSensor (Objects.ExplosionSensor) package Objects { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import flash.events.*; import flash.geom.*; import flash.display.*; public class ExplosionSensor { private var mybody:b2Body; private var centerOfExplosion:b2Body; private var explosionRadius:int;// = 100 private var position:b2Vec2; private var bombForce:Number; private var countdown:int;// = 2 public function ExplosionSensor(_arg1:b2Vec2, _arg2:Number=1, _arg3:String="bomb"):void{ var _local5:b2CircleShape; var _local6:b2FixtureDef; var _local7:b2BodyDef; var _local8:b2CircleShape; var _local9:b2FixtureDef; super(); position = _arg1; bombForce = _arg2; var _local4:b2BodyDef = new b2BodyDef(); _local4.type = b2Body.b2_staticBody; _local4.position.Set(_arg1.x, _arg1.y); mybody = GlobalStorage.world.CreateBody(_local4); trace(("BODY = " + mybody)); _local5 = new b2CircleShape(((this.explosionRadius / GlobalStorage.physScale) / 2)); _local6 = new b2FixtureDef(); _local6.shape = _local5; _local6.isSensor = true; mybody.CreateFixture(_local6); mybody.SetUserData(this); _local7 = new b2BodyDef(); _local7.type = b2Body.b2_staticBody; _local7.position.Set(_arg1.x, _arg1.y); centerOfExplosion = GlobalStorage.world.CreateBody(_local7); _local8 = new b2CircleShape(((1 / GlobalStorage.physScale) / 2)); _local9 = new b2FixtureDef(); _local9.shape = _local8; _local9.isSensor = true; centerOfExplosion.CreateFixture(_local9); GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, activate); } private function activate(_arg1:Event):void{ countdown--; if (countdown == 1){ explosion(); }; if (countdown == -1){ GlobalStorage.stageLink.removeEventListener(Event.ENTER_FRAME, activate); GlobalStorage.destroyBodiesList.push(mybody); }; } private function explosion():void{ var _local1:*; var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; _local1 = null; _local2 = null; _local3 = null; _local4 = null; _local5 = null; _local6 = NaN; _local7 = NaN; _local8 = null; trace("start explosion"); _local9 = GlobalStorage.world.GetBodyList(); while (_local9) { if ((((_local9.GetUserData() as GameObject)) && ((_local9.GetType() == b2Body.b2_dynamicBody)))){ if (_local9.GetType() == b2Body.b2_dynamicBody){ if (MathUtils.distanceBetweenMC(new Point((this.position.x * GlobalStorage.physScale), (this.position.y * GlobalStorage.physScale)), new Point((_local9.GetPosition().x * GlobalStorage.physScale), (_local9.GetPosition().y * GlobalStorage.physScale))) < this.explosionRadius){ if ((_local9.GetUserData() is Bomb)){ Bomb(_local9.GetUserData()).activate(); }; if ((_local9.GetUserData() is TntBarrel)){ TntBarrel(_local9.GetUserData()).activate(); }; _local1 = new b2DistanceOutput(); _local2 = new b2DistanceInput(); _local3 = new b2SimplexCache(); _local3.count = 0; _local2.transformA = _local9.GetTransform(); _local2.transformB = this.mybody.GetTransform(); _local2.proxyA = new b2DistanceProxy(); _local2.proxyB = new b2DistanceProxy(); _local2.proxyA.Set(_local9.GetFixtureList().GetShape()); _local2.proxyB.Set(this.mybody.GetFixtureList().GetShape()); _local2.useRadii = true; b2Distance.Distance(_local1, _local3, _local2); _local4 = _local1.pointA; if (_local1.distance == 0){ trace("breaking"); }; trace("Explosion:", (_local1.pointA.x - this.mybody.GetPosition().x)); if (_local1.distance < (this.explosionRadius / GlobalStorage.physScale)){ _local5 = new b2Vec2((_local1.pointA.x - this.mybody.GetPosition().x), (_local1.pointA.y - this.mybody.GetPosition().y)); _local6 = _local5.Normalize(); _local7 = (((this.explosionRadius - _local6) / this.explosionRadius) * this.bombForce); _local8 = new b2Vec2((_local5.x * _local7), (_local5.y * _local7)); trace("impulse: ", _local8.x, ", ", _local8.y); _local9.ApplyImpulse(_local8, _local4); trace("object:", _local9.GetUserData()); }; }; }; }; _local9 = _local9.GetNext(); }; } } }//package Objects
Section 205
//Fan (Objects.Fan) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class Fan extends GameObject { public var punched:Boolean;// = false public function Fan(_arg1:MovieClip, _arg2:b2World){ var _local5:b2FixtureDef; super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_staticBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); _local5 = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 0.5; _local5.filter.groupIndex = -3; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); } } }//package Objects
Section 206
//GameObject (Objects.GameObject) package Objects { import Box2D.Dynamics.*; import flash.display.*; import Fla.*; public class GameObject extends Sprite { protected var world:b2World; public var objWidth:Number; public var objHeight:Number; protected var xPos:Number; protected var yPos:Number; protected var objRotation:Number; protected var body:b2Body; protected var fakeBody:b2Body; public var isBreakable:Boolean; public var objectMC:MovieClip; private var broken:Boolean;// = false private var fixture:b2Fixture; private var powerOfArrow:int;// = 50 public function GameObject(_arg1:MovieClip, _arg2:b2World){ objectMC = _arg1; world = _arg2; objWidth = (objectMC.width / GlobalStorage.physScale); objHeight = (objectMC.height / GlobalStorage.physScale); xPos = (objectMC.x / GlobalStorage.physScale); yPos = (objectMC.y / GlobalStorage.physScale); objRotation = (objectMC.rotation / (180 / Math.PI)); objectMC.rotation = 0; objWidth = (this.objectMC.width / GlobalStorage.physScale); objHeight = (this.objectMC.height / GlobalStorage.physScale); objectMC.rotation = (objRotation * (180 / Math.PI)); if ((((((((((((((objectMC is BreakablePlatformMC)) || ((objectMC is DRec_woodMC)))) || ((objectMC is DynIcePlatformMC)))) || ((objectMC is BaloonMC)))) || ((objectMC is SBRe_wood)))) || ((objectMC is DBRe_wood)))) || ((objectMC is SRou_WoodWheelMC)))){ isBreakable = true; }; if (isBreakable){ }; } public function mouseOver():void{ objectMC.gotoAndStop(2); } public function mouseOut():void{ objectMC.gotoAndStop(1); } public function GetUserData():MovieClip{ return (objectMC); } public function GetBody():b2Body{ return (body); } public function GetFixture():b2Fixture{ return (fixture); } public function SetUserData(_arg1:MovieClip):void{ objectMC = _arg1; } public function breakTheBody():void{ var _local1:*; if (!broken){ trace(("Object 2 destroy is " + body.GetUserData())); objectMC.gotoAndStop("crash"); _local1 = body.GetJointList(); while (_local1) { trace(_local1.other.GetUserData()); if (((!((_local1.other.GetUserData() == null))) && ((_local1.other.GetUserData().toString() == "[object Rope]")))){ trace(("ROPE " + _local1.joint)); GameObject(_local1.other.GetUserData()).breakTheBody(); }; _local1 = _local1.next; }; if ((((((body.GetUserData() is Baloon)) || ((body.GetUserData() is BaloonUnpop)))) || ((body.GetUserData() is AirShip)))){ Sounds.PlaySnd("BaloonPops", 0.5); } else { if ((((((((body.GetUserData() is StaticBrekableRecObject)) || ((body.GetUserData() is DynamicRectangle)))) || ((body.GetUserData() is DynamicRoundObject)))) || ((body.GetUserData() is DynamicBrekableRecObject)))){ Sounds.PlaySnd("WoodBoom", 0.2); }; }; GlobalStorage.destroyBodiesList.push(body); broken = true; }; } private function rollOverChain(_arg1):void{ var _local2:*; if (_arg1 != null){ if (_arg1.markAsBreak == false){ _arg1.markAsBreak = true; _local2 = _arg1.GetBody().GetJointList(); while (_local2) { trace(_local2.other.GetUserData()); if (((!((_local2.other.GetUserData() == null))) && ((_local2.other.GetUserData().toString() == "[object ChainLink]")))){ rollOverChain(_local2.other.GetUserData()); }; _local2 = _local2.next; }; }; }; } private function rollOutChain(_arg1):void{ var _local2:*; if (_arg1 != null){ if (_arg1.markAsBreak == false){ _arg1.markAsBreak = true; _local2 = _arg1.GetBody().GetJointList(); while (_local2) { trace(_local2.other.GetUserData()); if (((!((_local2.other.GetUserData() == null))) && ((_local2.other.GetUserData().toString() == "[object ChainLink]")))){ rollOutChain(_local2.other.GetUserData()); }; _local2 = _local2.next; }; }; }; } public function shootWithPunchBox(_arg1, _arg2):void{ trace("Push This!!!"); } } }//package Objects
Section 207
//GoalObject (Objects.GoalObject) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; import Fla.*; public class GoalObject extends GameObject { public var destroyed:Boolean;// = false private var scoreNotPlayed:Boolean;// = true public function GoalObject(_arg1:MovieClip, _arg2:b2World){ super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = _arg2.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 1; _local5.friction = 1; body.CreateFixture(_local5); body.SetAngle(objRotation); body.SetUserData(this); this.mouseEnabled = false; this.mouseChildren = false; GlobalStorage.goalsObjectRemaining++; } public function destroy():void{ objectMC.gotoAndPlay(2); destroyed = true; } public function addScore(_arg1:Number, _arg2:Number):void{ var _local3:MovieClip; if (scoreNotPlayed){ _local3 = new CyfraAnimatedMC(); _local3.x = _arg1; _local3.y = (_arg2 - 40); GlobalStorage._globalLvlvMC.addChild(_local3); scoreNotPlayed = false; }; } } }//package Objects
Section 208
//GoalSensor (Objects.GoalSensor) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class GoalSensor extends GameObject { public function GoalSensor(_arg1:MovieClip, _arg2:b2World){ var _local5:b2FixtureDef; super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_staticBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); _local5 = new b2FixtureDef(); _local5.isSensor = true; _local5.shape = _local4; _local5.restitution = 0.1; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); } } }//package Objects
Section 209
//GraveSensor (Objects.GraveSensor) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class GraveSensor extends GameObject { public var sensorNotTrigger:Boolean;// = true public function GraveSensor(_arg1:MovieClip, _arg2:b2World){ super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_staticBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.isSensor = true; _local5.shape = _local4; _local5.restitution = 0.1; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); } } }//package Objects
Section 210
//Ground (Objects.Ground) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class Ground extends GameObject { public function Ground(_arg1:MovieClip, _arg2:b2World){ var _local5:b2FixtureDef; super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_staticBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); _local5 = new b2FixtureDef(); _local5.isSensor = true; _local5.shape = _local4; _local5.restitution = 0.1; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); } } }//package Objects
Section 211
//HandsTurnAround (Objects.HandsTurnAround) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class HandsTurnAround extends GameObject { public var objectInWater:Boolean;// = false private var myObjectWidth:Number;// = 243 private var myObjectHeight:Number;// = 10 public function HandsTurnAround(_arg1:MovieClip, _arg2:b2World, _arg3:Number){ super(_arg1, _arg2); var _local4:b2BodyDef = new b2BodyDef(); _local4.type = b2Body.b2_dynamicBody; _local4.position.Set(xPos, yPos); body = world.CreateBody(_local4); var _local5:b2PolygonShape = new b2PolygonShape(); _local5.SetAsBox((((myObjectWidth / GlobalStorage.physScale) / 2) * _arg3), (((myObjectHeight / GlobalStorage.physScale) / 2) * _arg3)); var _local6:b2FixtureDef = new b2FixtureDef(); _local6.shape = _local5; _local6.density = 2; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local6); } } }//package Objects
Section 212
//HandUnderGround (Objects.HandUnderGround) package Objects { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class HandUnderGround extends GameObject { private var speed:Number;// = 7 private var movingDirection:Number;// = 1 public var widthMC:Number;// = 10 public var heightMC:Number;// = 107 public var topMargin:Number; public var bottomMargin:Number; private var movingDirectionNew:Number; public var movingDirectionOld:Number; public function HandUnderGround(_arg1:MovieClip, _arg2:b2World, _arg3:Number, _arg4:Number, _arg5:Number=1){ super(_arg1, _arg2); var _local6:b2BodyDef = new b2BodyDef(); _local6.type = b2Body.b2_kinematicBody; _local6.position.Set(xPos, yPos); body = world.CreateBody(_local6); var _local7:b2PolygonShape = new b2PolygonShape(); _local7.SetAsBox((((widthMC / GlobalStorage.physScale) / 2) * _arg4), (((heightMC / GlobalStorage.physScale) / 2) * _arg4)); var _local8:b2FixtureDef = new b2FixtureDef(); _local8.isSensor = false; _local8.shape = _local7; _local8.restitution = 0.1; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local8); if (_arg5 == 1){ topMargin = ((yPos * GlobalStorage.physScale) - 1); bottomMargin = ((yPos * GlobalStorage.physScale) + heightMC); } else { topMargin = ((yPos * GlobalStorage.physScale) - heightMC); bottomMargin = ((yPos * GlobalStorage.physScale) + 1); trace(("Else var TOP MARGIN " + topMargin)); }; trace(("HandSpeed " + _arg3)); speed = Number(_arg3); movingDirectionOld = _arg5; movingDirectionNew = _arg5; move(); movingDirectionNew = 1; } public function move():void{ movingDirection = (movingDirection * -1); movingDirection = (movingDirection * movingDirectionNew); body.SetLinearVelocity(new b2Vec2(0, (speed * movingDirection))); } } }//package Objects
Section 213
//HeadSpinZombie (Objects.HeadSpinZombie) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class HeadSpinZombie extends GameObject { var myDiameter:Number;// = 37 public function HeadSpinZombie(_arg1:MovieClip, _arg2:b2World, _arg3:Number, _arg4:b2World){ super(_arg1, _arg2); var _local5:b2BodyDef = new b2BodyDef(); _local5.type = b2Body.b2_staticBody; _local5.position.Set(xPos, yPos); body = _arg2.CreateBody(_local5); fakeBody = _arg4.CreateBody(_local5); var _local6:b2CircleShape = new b2CircleShape((((myDiameter / GlobalStorage.physScale) / 2) * _arg3)); var _local7:b2FixtureDef = new b2FixtureDef(); _local7.shape = _local6; _local7.density = 0.5; _local7.restitution = 0.05; _local7.friction = 0.5; body.CreateFixture(_local7); body.SetAngle(objRotation); body.SetUserData(this); fakeBody.SetAngle(objRotation); fakeBody.SetUserData(this); fakeBody.CreateFixture(_local7); fakeBody.SetBullet(true); } } }//package Objects
Section 214
//IceDynPlatform (Objects.IceDynPlatform) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class IceDynPlatform extends GameObject { public var markAsBreak:Boolean;// = false public var markAsLight:Boolean;// = false public function IceDynPlatform(_arg1:MovieClip, _arg2:b2World){ super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 1; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); } public function destroy():void{ GlobalStorage.destroyBodiesList.push(body); objectMC.gotoAndStop(3); } } }//package Objects
Section 215
//IcePlatform (Objects.IcePlatform) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class IcePlatform extends GameObject { public var markAsBreak:Boolean;// = false public var markAsLight:Boolean;// = false public function IcePlatform(_arg1:MovieClip, _arg2:b2World){ super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_staticBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 5; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); } public function destroy():void{ GlobalStorage.destroyBodiesList.push(body); objectMC.gotoAndStop(3); } } }//package Objects
Section 216
//JustBarrel (Objects.JustBarrel) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class JustBarrel extends GameObject { private var myObjHeight:Number;// = 58 public function JustBarrel(_arg1:MovieClip, _arg2:b2World, _arg3){ var _local6:b2FixtureDef; super(_arg1, _arg2); var _local4:b2BodyDef = new b2BodyDef(); _local4.type = b2Body.b2_dynamicBody; _local4.position.Set(xPos, yPos); body = _arg2.CreateBody(_local4); var _local5:b2PolygonShape = new b2PolygonShape(); _local5.SetAsBox((objWidth / 2), (((myObjHeight / GlobalStorage.physScale) / 2) * _arg3)); _local6 = new b2FixtureDef(); _local6.shape = _local5; _local6.density = 0.5; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local6); body.SetBullet(true); } } }//package Objects
Section 217
//MineCart (Objects.MineCart) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class MineCart extends GameObject { public var objectInWater:Boolean;// = false private var myObjectWidth:Number;// = 51 private var myObjectHeight:Number;// = 10 public function MineCart(_arg1:MovieClip, _arg2:b2World, _arg3:Number){ super(_arg1, _arg2); var _local4:b2BodyDef = new b2BodyDef(); _local4.type = b2Body.b2_dynamicBody; _local4.position.Set(xPos, yPos); body = world.CreateBody(_local4); var _local5:b2PolygonShape = new b2PolygonShape(); _local5.SetAsBox((((myObjectWidth / GlobalStorage.physScale) / 2) * _arg3), (((myObjectHeight / GlobalStorage.physScale) / 2) * _arg3)); var _local6:b2FixtureDef = new b2FixtureDef(); _local6.shape = _local5; _local6.density = 2; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local6); } } }//package Objects
Section 218
//Monster (Objects.Monster) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class Monster extends GameObject { public function Monster(_arg1:MovieClip, _arg2:b2World){ var _local5:b2FixtureDef; super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = _arg2.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox(((26 / GlobalStorage.physScale) / 2), ((33.7 / GlobalStorage.physScale) / 2)); _local5 = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 0.5; _local5.restitution = 0; _local5.friction = 0.8; body.CreateFixture(_local5); body.SetAngle(objRotation); body.SetUserData(this); } } }//package Objects
Section 219
//MovingPlatformSensor (Objects.MovingPlatformSensor) package Objects { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class MovingPlatformSensor extends GameObject { private var movingDirection:Number;// = 1 public function MovingPlatformSensor(_arg1:MovieClip, _arg2:b2World){ super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.isSensor = true; _local5.shape = _local4; _local5.restitution = 0.1; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); this.mouseEnabled = false; this.mouseChildren = false; } public function move():void{ movingDirection = (movingDirection * -1); body.SetLinearVelocity(new b2Vec2((1 * movingDirection), 0)); } } }//package Objects
Section 220
//MovingPlatformX (Objects.MovingPlatformX) package Objects { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class MovingPlatformX extends GameObject { private var movingDirection:Number;// = 1 public function MovingPlatformX(_arg1:MovieClip, _arg2:b2World){ super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_kinematicBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.isSensor = false; _local5.shape = _local4; _local5.restitution = 0.1; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); move(); } public function move():void{ movingDirection = (movingDirection * -1); body.SetLinearVelocity(new b2Vec2((GlobalStorage.platformXSpeed * movingDirection), 0)); } } }//package Objects
Section 221
//MovingPlatformY (Objects.MovingPlatformY) package Objects { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class MovingPlatformY extends GameObject { private var movingDirection:Number;// = 1 public function MovingPlatformY(_arg1:MovieClip, _arg2:b2World){ super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_kinematicBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.isSensor = false; _local5.shape = _local4; _local5.restitution = 0.1; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); move(); } public function move():void{ movingDirection = (movingDirection * -1); body.SetLinearVelocity(new b2Vec2(0, (GlobalStorage.platformXSpeed * movingDirection))); } } }//package Objects
Section 222
//OneHand (Objects.OneHand) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class OneHand extends GameObject { private var myObjectWidth:Number;// = 108 private var myObjectHeight:Number;// = 12 public function OneHand(_arg1:MovieClip, _arg2:b2World, _arg3:Number){ super(_arg1, _arg2); var _local4:b2BodyDef = new b2BodyDef(); _local4.type = b2Body.b2_dynamicBody; _local4.position.Set(xPos, yPos); body = world.CreateBody(_local4); var _local5:b2PolygonShape = new b2PolygonShape(); _local5.SetAsBox((((myObjectWidth / GlobalStorage.physScale) / 2) * _arg3), (((myObjectHeight / GlobalStorage.physScale) / 2) * _arg3)); var _local6:b2FixtureDef = new b2FixtureDef(); _local6.shape = _local5; _local6.density = 1; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local6); body.SetBullet(true); } } }//package Objects
Section 223
//PartOfTombStone (Objects.PartOfTombStone) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class PartOfTombStone extends GameObject { public var objectInWater:Boolean;// = false public function PartOfTombStone(_arg1:MovieClip, _arg2:b2World, _arg3:b2World=null){ super(_arg1, _arg2); var _local4:b2BodyDef = new b2BodyDef(); _local4.type = b2Body.b2_staticBody; _local4.position.Set(xPos, yPos); body = _arg2.CreateBody(_local4); fakeBody = _arg3.CreateBody(_local4); var _local5:b2CircleShape = new b2CircleShape((objWidth / 2)); var _local6:b2FixtureDef = new b2FixtureDef(); _local6.shape = _local5; _local6.density = 0.5; _local6.restitution = 0.05; _local6.friction = 0.5; body.CreateFixture(_local6); body.SetAngle(objRotation); body.SetUserData(this); body.SetBullet(true); fakeBody.SetAngle(objRotation); fakeBody.SetUserData(this); fakeBody.CreateFixture(_local6); fakeBody.SetBullet(true); } } }//package Objects
Section 224
//PunchBox (Objects.PunchBox) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class PunchBox extends GameObject { public var punched:Boolean;// = false public function PunchBox(_arg1:MovieClip, _arg2:b2World){ var _local5:b2FixtureDef; super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_staticBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); _local5 = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 0.5; _local5.filter.groupIndex = -3; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); } } }//package Objects
Section 225
//PunchBoxSensor (Objects.PunchBoxSensor) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class PunchBoxSensor extends GameObject { public var sensorOn:Boolean;// = false public function PunchBoxSensor(_arg1:MovieClip, _arg2:b2World){ super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_staticBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.isSensor = true; _local5.shape = _local4; _local5.restitution = 0.1; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); } } }//package Objects
Section 226
//Rope (Objects.Rope) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class Rope extends GameObject { public var objectInWater:Boolean;// = false public function Rope(_arg1:MovieClip, _arg2:b2World){ var _local5:b2FixtureDef; super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); _local5 = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 1; _local5.filter.groupIndex = -3; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); } } }//package Objects
Section 227
//Saw (Objects.Saw) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class Saw extends GameObject { public var objectInWater:Boolean;// = false public function Saw(_arg1:MovieClip, _arg2:b2World){ var _local5:b2FixtureDef; super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = _arg2.CreateBody(_local3); var _local4:b2CircleShape = new b2CircleShape((objWidth / 2)); _local5 = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 0.8; _local5.restitution = 1; _local5.friction = 0.01; _local5.filter.groupIndex = -1; body.CreateFixture(_local5); body.SetAngle(objRotation); body.SetUserData(this); } } }//package Objects
Section 228
//SensorHandUnderGround (Objects.SensorHandUnderGround) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class SensorHandUnderGround extends GameObject { public function SensorHandUnderGround(_arg1:MovieClip, _arg2:b2World){ var _local5:b2FixtureDef; super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); _local5 = new b2FixtureDef(); _local5.isSensor = true; _local5.shape = _local4; _local5.restitution = 0.1; body.SetBullet(true); body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); } } }//package Objects
Section 229
//SkeletonsBody (Objects.SkeletonsBody) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class SkeletonsBody extends GameObject { public var objectInWater:Boolean;// = false public function SkeletonsBody(_arg1:MovieClip, _arg2:b2World){ var _local5:b2FixtureDef; super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); _local5 = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 1; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); GlobalStorage.skeleonsPartsArray.push(this); } } }//package Objects
Section 230
//SkeletonsHand (Objects.SkeletonsHand) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class SkeletonsHand extends GameObject { public var objectInWater:Boolean;// = false public function SkeletonsHand(_arg1:MovieClip, _arg2:b2World){ var _local5:b2FixtureDef; super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); _local5 = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 1; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); GlobalStorage.skeleonsPartsArray.push(this); } } }//package Objects
Section 231
//SkeletonsHead (Objects.SkeletonsHead) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class SkeletonsHead extends GameObject { public var objectInWater:Boolean;// = false public function SkeletonsHead(_arg1:MovieClip, _arg2:b2World){ var _local5:b2FixtureDef; super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = _arg2.CreateBody(_local3); var _local4:b2CircleShape = new b2CircleShape((objWidth / 2)); _local5 = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 1; _local5.restitution = 0.05; _local5.friction = 0.5; body.CreateFixture(_local5); body.SetAngle(objRotation); body.SetUserData(this); GlobalStorage.skeleonsPartsArray.push(this); } } }//package Objects
Section 232
//SkeletonsLeg (Objects.SkeletonsLeg) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class SkeletonsLeg extends GameObject { public var objectInWater:Boolean;// = false public function SkeletonsLeg(_arg1:MovieClip, _arg2:b2World){ var _local5:b2FixtureDef; super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); _local5 = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 1; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); GlobalStorage.skeleonsPartsArray.push(this); } } }//package Objects
Section 233
//Skull (Objects.Skull) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class Skull extends GameObject { public var objectInWater:Boolean;// = false public function Skull(_arg1:MovieClip, _arg2:b2World){ var _local5:b2FixtureDef; super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = _arg2.CreateBody(_local3); var _local4:b2CircleShape = new b2CircleShape((objWidth / 2)); _local5 = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 0.5; _local5.restitution = 0.05; _local5.friction = 0.5; body.CreateFixture(_local5); body.SetAngle(objRotation); body.SetUserData(this); this.mouseEnabled = false; this.mouseChildren = false; } } }//package Objects
Section 234
//SkullForShoot (Objects.SkullForShoot) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; import Fla.*; public class SkullForShoot extends GameObject { public var destroyed:Boolean;// = false private var scoreNotPlayed:Boolean;// = true public function SkullForShoot(_arg1:MovieClip, _arg2:b2World){ super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = _arg2.CreateBody(_local3); var _local4:b2CircleShape = new b2CircleShape((objWidth / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 0.5; _local5.restitution = 0.05; _local5.friction = 0.5; body.CreateFixture(_local5); body.SetAngle(objRotation); body.SetUserData(this); this.mouseEnabled = false; this.mouseChildren = false; } public function destroy():void{ GlobalStorage.destroyBodiesList.push(body); objectMC.gotoAndPlay(2); destroyed = true; } public function addScore(_arg1:Number, _arg2:Number):void{ var _local3:MovieClip; if (scoreNotPlayed){ _local3 = new CyfraAnimatedMC(); _local3.x = _arg1; _local3.y = (_arg2 - 40); GlobalStorage._globalLvlvMC.addChild(_local3); scoreNotPlayed = false; }; } } }//package Objects
Section 235
//SlowTimeSensor (Objects.SlowTimeSensor) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class SlowTimeSensor extends GameObject { public function SlowTimeSensor(_arg1:MovieClip, _arg2:b2World){ var _local5:b2FixtureDef; super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_staticBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); _local5 = new b2FixtureDef(); _local5.isSensor = true; _local5.shape = _local4; _local5.restitution = 0.1; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); } } }//package Objects
Section 236
//SpikeBall (Objects.SpikeBall) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class SpikeBall extends GameObject { public var objectInWater:Boolean;// = false public function SpikeBall(_arg1:MovieClip, _arg2:b2World){ var _local5:b2FixtureDef; super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = _arg2.CreateBody(_local3); var _local4:b2CircleShape = new b2CircleShape((objWidth / 2)); _local5 = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 0.1; _local5.restitution = 0; _local5.friction = 0.1; body.CreateFixture(_local5); body.SetAngle(objRotation); body.SetUserData(this); } } }//package Objects
Section 237
//SpikePlant (Objects.SpikePlant) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.events.*; import flash.display.*; public class SpikePlant extends GameObject { private var myWidth:Number;// = 47 private var myHeight:Number;// = 85 private var delayFrame:int; private var spikeDelay:int;// = 20 private var tempSpikeDelay:int; public var turnOn:Boolean;// = false public var contactDetected:Boolean;// = false public function SpikePlant(_arg1:MovieClip, _arg2:b2World, _arg3:b2World, _arg4:Number, _arg5:String="1"){ var _local6:b2BodyDef; super(_arg1, _arg2); _local6 = new b2BodyDef(); _local6.type = b2Body.b2_staticBody; _local6.position.Set(xPos, yPos); body = world.CreateBody(_local6); fakeBody = _arg3.CreateBody(_local6); var _local7:b2PolygonShape = new b2PolygonShape(); _local7.SetAsBox((((myWidth / GlobalStorage.physScale) / 2) * _arg4), (((myHeight / GlobalStorage.physScale) / 2) * _arg4)); var _local8:b2FixtureDef = new b2FixtureDef(); _local8.shape = _local7; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local8); body.SetBullet(true); _local8.density = 0.5; fakeBody.SetAngle(objRotation); fakeBody.SetUserData(this); fakeBody.CreateFixture(_local8); fakeBody.SetBullet(true); delayFrame = Number(_arg5); startSpikeDelay(); } private function startSpikeDelay():void{ GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, delayBeforeSpike); } private function delayBeforeSpike(_arg1:Event):void{ if (delayFrame <= 0){ GlobalStorage.stageLink.removeEventListener(Event.ENTER_FRAME, delayBeforeSpike); startSpike(); }; delayFrame--; } private function startSpike():void{ turnOn = true; objectMC.gotoAndPlay(1); tempSpikeDelay = spikeDelay; GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, spikeOnDelay); } private function endSpike():void{ turnOn = false; objectMC.gotoAndPlay(5); tempSpikeDelay = spikeDelay; GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, spikeOnDelay); } private function spikeOnDelay(_arg1:Event):void{ if ((((tempSpikeDelay <= 0)) && (turnOn))){ GlobalStorage.stageLink.removeEventListener(Event.ENTER_FRAME, spikeOnDelay); endSpike(); } else { if ((((tempSpikeDelay <= 0)) && (!(turnOn)))){ GlobalStorage.stageLink.removeEventListener(Event.ENTER_FRAME, spikeOnDelay); startSpike(); }; }; tempSpikeDelay--; } } }//package Objects
Section 238
//StaticBrekableRecObject (Objects.StaticBrekableRecObject) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class StaticBrekableRecObject extends GameObject { public var markAsBreak:Boolean;// = false public var markAsLight:Boolean;// = false public function StaticBrekableRecObject(_arg1:MovieClip, _arg2:b2World){ super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_staticBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 5; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); } public function destroy():void{ GlobalStorage.destroyBodiesList.push(body); objectMC.gotoAndStop(3); } } }//package Objects
Section 239
//StaticBrevno (Objects.StaticBrevno) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class StaticBrevno extends GameObject { public function StaticBrevno(_arg1:MovieClip, _arg2:b2World){ super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_staticBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 0.5; _local5.filter.groupIndex = -3; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); } } }//package Objects
Section 240
//Tambourine (Objects.Tambourine) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class Tambourine extends GameObject { public var widthMC:Number;// = 81 public var heightMC:Number;// = 34 public function Tambourine(_arg1:MovieClip, _arg2:b2World, _arg3:Number, _arg4:b2World=null){ super(_arg1, _arg2); var _local5:b2BodyDef = new b2BodyDef(); _local5.type = b2Body.b2_dynamicBody; _local5.position.Set(xPos, yPos); body = world.CreateBody(_local5); var _local6:b2PolygonShape = new b2PolygonShape(); _local6.SetAsBox((((widthMC / GlobalStorage.physScale) / 2) * _arg3), (((heightMC / GlobalStorage.physScale) / 2) * _arg3)); var _local7:b2FixtureDef = new b2FixtureDef(); _local7.shape = _local6; _local7.density = 0.5; _local7.restitution = 3.5; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local7); body.SetBullet(true); } } }//package Objects
Section 241
//TntBarrel (Objects.TntBarrel) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class TntBarrel extends GameObject { private var destroyed:Boolean;// = false public var objectInWater:Boolean;// = false public function TntBarrel(_arg1:MovieClip, _arg2:b2World){ super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position.Set(xPos, yPos); body = _arg2.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.shape = _local4; _local5.density = 0.5; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); } public function activate():void{ destroy(); } public function destroy():void{ if (!destroyed){ GlobalStorage.destroyBodiesList.push(body); GlobalStorage.createExplosionsList.push(body.GetPosition()); destroyed = true; objectMC.gotoAndPlay(2); Sounds.PlaySnd("TNTExplosion"); }; } } }//package Objects
Section 242
//Viking (Objects.Viking) package Objects { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; import flash.events.*; import flash.display.*; public class Viking extends GameObject { private var direction:String;// = "right" private var hasGoal:Boolean;// = true private var stopMe:Boolean;// = false private var speedOfShip:Number;// = 0.13 private var playingSound:String; public function Viking(_arg1:MovieClip, _arg2:b2World){ var _local4:Number; var _local5:Number; super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local4 = (70 / GlobalStorage.physScale); _local5 = (170 / GlobalStorage.physScale); _local3.type = b2Body.b2_staticBody; _local3.position.Set(xPos, yPos); body = _arg2.CreateBody(_local3); var _local6:b2PolygonShape = new b2PolygonShape(); _local6.SetAsBox((_local4 / 2), (_local5 / 2)); var _local7:b2FixtureDef = new b2FixtureDef(); _local7.shape = _local6; _local7.isSensor = true; body.CreateFixture(_local7); body.SetBullet(true); body.SetAngle(objRotation); body.SetUserData(this); GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, moveViking); Sounds.PlaySnd("StartShip"); } private function moveViking(_arg1:Event):void{ var _local2:b2Body; var _local3:b2ContactEdge; var _local4:b2Body; if (!hasGoal){ _local2 = GlobalStorage.world.GetBodyList(); while (_local2) { if ((_local2.GetUserData() is GoalObject)){ if (!GoalObject(_local2.GetUserData()).destroyed){ if (_local2.GetContactList()){ _local3 = _local2.GetContactList(); while (_local3) { if (!(_local3.contact.GetFixtureA().GetBody().GetUserData() is Ground)){ }; if ((_local3.contact.GetFixtureB().GetBody().GetUserData() is Ground)){ _local4 = _local2; stopMe = false; }; _local3 = _local3.next; }; }; }; }; _local2 = _local2.GetNext(); }; if (_local4){ if (body.GetPosition().x > _local4.GetPosition().x){ if (direction == "right"){ objectMC.scaleX = (objectMC.scaleX * -1); }; direction = "left"; } else { if (direction == "left"){ objectMC.scaleX = (objectMC.scaleX * -1); }; direction = "right"; }; hasGoal = true; }; }; if (direction == "right"){ if (!stopMe){ body.SetPosition(new b2Vec2((body.GetPosition().x + speedOfShip), body.GetPosition().y)); }; } else { if (direction == "left"){ if (!stopMe){ body.SetPosition(new b2Vec2((body.GetPosition().x - speedOfShip), body.GetPosition().y)); }; }; }; if (body.GetPosition().x > (850 / GlobalStorage.physScale)){ stopMe = true; }; if (body.GetPosition().x < (-270 / GlobalStorage.physScale)){ stopMe = true; }; } public function getGift():void{ if (playingSound){ Sounds.StopSnd(playingSound); }; var _local1:int = (Math.random() * 3); switch (_local1){ case 0: playingSound = "YoHoHo2"; break; case 1: playingSound = "YoHoHo4"; break; case 2: playingSound = "YoHoHo4"; break; case 3: playingSound = "YoHoHo4"; break; default: break; }; if (GlobalStorage.alreadyHasGoals == 1){ objectMC.gotoAndPlay("firstChest"); } else { if (GlobalStorage.alreadyHasGoals == 2){ objectMC.gotoAndPlay("secondChest"); playingSound = ""; }; }; hasGoal = false; } } }//package Objects
Section 243
//WindSensor (Objects.WindSensor) package Objects { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; public class WindSensor extends GameObject { public var sensorOn:Boolean;// = false public function WindSensor(_arg1:MovieClip, _arg2:b2World){ super(_arg1, _arg2); var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_staticBody; _local3.position.Set(xPos, yPos); body = world.CreateBody(_local3); var _local4:b2PolygonShape = new b2PolygonShape(); _local4.SetAsBox((objWidth / 2), (objHeight / 2)); var _local5:b2FixtureDef = new b2FixtureDef(); _local5.isSensor = true; _local5.shape = _local4; _local5.restitution = 0.1; body.SetAngle(objRotation); body.SetUserData(this); body.CreateFixture(_local5); body.SetBullet(true); } } }//package Objects
Section 244
//AeroOff (AeroOff) package { import flash.media.*; public dynamic class AeroOff extends Sound { } }//package
Section 245
//AeroOn (AeroOn) package { import flash.media.*; public dynamic class AeroOn extends Sound { } }//package
Section 246
//BaloonPops (BaloonPops) package { import flash.media.*; public dynamic class BaloonPops extends Sound { } }//package
Section 247
//BaloonPops1 (BaloonPops1) package { import flash.media.*; public dynamic class BaloonPops1 extends Sound { } }//package
Section 248
//BigSpikeMC (BigSpikeMC) package { import flash.display.*; public dynamic class BigSpikeMC extends MovieClip { } }//package
Section 249
//BombaTleetMC (BombaTleetMC) package { import Fla.*; public dynamic class BombaTleetMC extends BombaTleetMC { } }//package
Section 250
//BombaVzryvMC (BombaVzryvMC) package { import Fla.*; public dynamic class BombaVzryvMC extends BombaVzryvMC { } }//package
Section 251
//BombExplosion (BombExplosion) package { import flash.media.*; public dynamic class BombExplosion extends Sound { } }//package
Section 252
//BrandingSettings (BrandingSettings) package { public class BrandingSettings { public static const GAME_NAME:String = "Pirates: Arctic Treasure"; public static const _GAME_CODE:String = "pirates-arctic-treasure"; public static const CPMSTAR_POOL_ID:String = "33359"; public static const CPMSTAR_SUBPOOL_ID:String = "13"; public static const MOCHIBOT_ID:String = "8c245f28"; public static const MOCHIMEDIA_GAME_ID:String = "70c0b621411efe8f"; public static const INTERGI_UNIQUE_GAME_ID:String = "pirates-arctic-treasure"; public static const INTERGI_AD_URL:String = "http://ads.intergi.com/adrawdata/3.0/5205/2407424/0/4057/ADTECH;referring_url=__WEB_URL__;number=__RANDOM__;time=__TIME__"; private static const _TDS_URL:String = "http://links-123.com/go.php?"; private static const _MAIN_URL:String = (((_TDS_URL + "sid=1&utm_source=our_game&utm_campaign=") + _GAME_CODE) + "&utm_medium="); public static const PRELOADER_LOGO_URL:String = (_MAIN_URL + "preloader_logo"); public static const PRELOADER_BACKGROUND_URL:String = (_MAIN_URL + "preloader_background"); public static const PRELOADER_GODVILGAMES = 0; public static const PRELOADER_Y8 = 1; public static const PRELOADER_CPMSTAR_ADVERTISE = 2; public static const PRELOADER_MOCHIMEDIA_ADVERTISE = 3; public static const PRELOADER_INTERGI_ADVERTISE = 4; public static const PRELOADER_CONFIGURATION = 0; public static const WIDTH:Number = 640; public static const HEIGHT:Number = 480; public static const MENU_MORE_GAMES_URL:String = (_MAIN_URL + "menu_more_games"); public static const MENU_LOGO_URL:String = (_MAIN_URL + "menu_logo"); public static const LEVELS_MORE_GAMES_URL:String = (_MAIN_URL + "levels_more_games"); public static const LEVELS_LOGO_URL:String = (_MAIN_URL + "levels_logo"); public static const RETRY_MORE_GAMES_URL:String = (_MAIN_URL + "retry_more_games"); public static const RETRY_LOGO_URL:String = (_MAIN_URL + "retry_logo"); public static const INTERLEVEL_MORE_GAMES_URL:String = (_MAIN_URL + "interlevel_more_games"); public static const INTERLEVEL_LOGO_URL:String = (_MAIN_URL + "interlevel_logo"); public static const GAMEPLAY_MORE_GAMES_URL:String = (_MAIN_URL + "gameplay_more_games"); public static const GAMEPLAY_LOGO_URL:String = (_MAIN_URL + "gameplay_logo"); public static const WALKTHROUGH_URL:String = (((((_TDS_URL + "sid=2&tds-cname=") + _GAME_CODE) + "&tds-gname=") + _GAME_CODE) + ".html"); public static const ANY_GAME_URL_START:String = (((_TDS_URL + "sid=3&tds-cname=") + _GAME_CODE) + "&tds-gname="); public static const AD_GAME_1_URL:String = (ANY_GAME_URL_START + "foxnroll-pro.html"); public static const AD_GAME_2_URL:String = (ANY_GAME_URL_START + "werebox.html"); public static const FACEBOOK_PAGE_URL:String = "http://www.facebook.com/GodvilGames"; public static const TWITTER_PAGE_URL:String = "http://www.twitter.com/GodvilGames"; public static const SHARING_URL_DESCRIPTION:String = "This is cool and stylish physical puzzle"; public static const DIRECT_GAME_URL:String = (("http://www.godvilgames.com/games/" + _GAME_CODE) + ".html"); public static const SHARING_URL:String = ((((("http://api.addthis.com/oexchange/0.8/offer?url=" + DIRECT_GAME_URL) + "&title=") + GAME_NAME) + "&pubid=godvilgames&description=") + SHARING_URL_DESCRIPTION); public static const LOCKED_DOMAINS:Array = []; public static const Y8:String = "y8"; public static const Y8_URL:String = "http://y8.com/"; public static var BLOCKED_DOMAINS:Array = ["N2s3ay5jb20sMzgzOS5jb20sam9xb28uY29tLDY1NDMuY29tLGRpZ3VhMTIzLmNvbSwyMTQ0LmNuLDMzNjYuY29tLDM1MjUuY29tLDM4MzkuY29tLDQxOTkuY24sNDM5OXBrLmNvbSw0OTlway5jb20sNTE0Mzk5LmNvbSw1MjUzLmNvbSw2NTQ1LmNuLDY5NDkuY29tLDdrOGs4LmNvbSw4ODYuY29tLDg4eXguY29tLDk1NTUubmV0LGJhb2ZlbmcuY29tLGRpZ3VhMTIzLmNvbSxkdW93YW4uY29tLGYxMzMuY29tLGdhbWVhbmdlbC5jb20saDQzOTkuY29tLGpvcW9vLmNvbSxqb3lnYW1lcy5jb20sa280Mzk5LmNvbSxrdTQzOTkuY29tLGx5b3V4aS5jb20scWsxMDAuY29tLHMzMzY2LmNvbSx0b202MS5jb20sdTE0OC5uZXQseDQzOTkuY29tLHh1aXRlLm5ldCx5eDAwNy5jb20sNTUyMy5jb20sOTQ3Ny5jb20sMjM5OWcuY29tLDUwNjguY29tLDM4MzkuY29tLDdrNzcubmV0LDUwNjguY29tLDR1c2t5LmNvbSwzODM5LmNvbSw0Mzk5OS5jb20sMzM2Ni5jb20sNDM5OS5jb20="]; public static var LITE_BRANDED_DOMAINS:Array = ["a29uZ3JlZ2F0ZS5jb20sbmV3Z3JvdW5kcy5jb20sdXBsb2Fkcy51bmdyb3VuZGVkLm5ldCxnb2R2aWxnYW1lcy5jb20sbG9jYWxob3N0LGZsYXNoZ2FtZWRpc3RyaWJ1dGlvbi5jb20sZmxhc2hnYW1lbGljZW5zZS5jb20sbW9jaGltZWRpYS5jb20sbm90ZG9wcGxlci5jb20sdGFsa2FyY2FkZXMuY29tLHBsYXlqdXRzdS5jb20sa2Fpc2VyZ2FtZXMuZGUsbW9mdW56b25lLmNvbSxmZXR0c3BpZWxlbi5kZSxqYXlpc2dhbWVzLmNvbSx5OA=="]; } }//package
Section 253
//BreakablePlatformMC (BreakablePlatformMC) package { import flash.display.*; public class BreakablePlatformMC extends MovieClip { public function BreakablePlatformMC():void{ addFrameScript(0, this.frame1, 1, this.frame2, 2, this.frame3); } function frame1():void{ stop(); } function frame2():void{ stop(); } function frame3():void{ stop(); } } }//package
Section 254
//CannonSound (CannonSound) package { import flash.media.*; public dynamic class CannonSound extends Sound { } }//package
Section 255
//CannonSound1 (CannonSound1) package { import flash.media.*; public dynamic class CannonSound1 extends Sound { } }//package
Section 256
//CannonSound8 (CannonSound8) package { import flash.media.*; public dynamic class CannonSound8 extends Sound { } }//package
Section 257
//CarOff (CarOff) package { import flash.media.*; public dynamic class CarOff extends Sound { } }//package
Section 258
//CarOn (CarOn) package { import flash.media.*; public dynamic class CarOn extends Sound { } }//package
Section 259
//CarOn1 (CarOn1) package { import flash.media.*; public dynamic class CarOn1 extends Sound { } }//package
Section 260
//CarsWheelMC (CarsWheelMC) package { import flash.display.*; public dynamic class CarsWheelMC extends MovieClip { } }//package
Section 261
//ContactManager (ContactManager) package { import Box2D.Dynamics.*; import Box2D.Dynamics.Contacts.*; import Objects.*; public class ContactManager extends b2ContactListener { private var MAX_IMPULSE:int;// = 1 private var MAX_IMPULSE_HIT:int;// = 6 override public function BeginContact(_arg1:b2Contact):void{ var _local4:*; var _local5:*; var _local2:* = _arg1.GetFixtureA().GetBody(); var _local3:* = _arg1.GetFixtureB().GetBody(); if ((_local2.GetUserData() is Bullet)){ _local2.GetUserData().calculateCollisions(); }; if ((_local3.GetUserData() is Bullet)){ _local3.GetUserData().calculateCollisions(); }; if ((((_local2.GetUserData() is Bullet)) && ((_local3.GetUserData() is AirShip)))){ _local3.GetUserData().breakTheBody(); }; if ((((_local3.GetUserData() is Bullet)) && ((_local2.GetUserData() is AirShip)))){ _local2.GetUserData().breakTheBody(); }; if ((((_local2.GetUserData() is Bullet)) && ((_local3.GetUserData() is Baloon)))){ _local3.GetUserData().breakTheBody(); _local2.GetUserData().destroy(); }; if ((((_local3.GetUserData() is Bullet)) && ((_local2.GetUserData() is Baloon)))){ _local2.GetUserData().breakTheBody(); _local3.GetUserData().destroy(); }; if ((((_local2.GetUserData() is Bullet)) && ((_local3.GetUserData() is BaloonUnpop)))){ _local3.GetUserData().breakTheBody(); _local2.GetUserData().destroy(); }; if ((((_local3.GetUserData() is Bullet)) && ((_local2.GetUserData() is BaloonUnpop)))){ _local2.GetUserData().breakTheBody(); _local3.GetUserData().destroy(); }; if ((((_local2.GetUserData() is MovingPlatformSensor)) && ((_local3.GetUserData() is MovingPlatformSensor)))){ _local4 = _local2.GetUserData().GetBody().GetJointList(); while (_local4) { if (_local4.other.GetUserData() != null){ _local4.other.GetUserData().move(); }; _local4 = _local4.next; }; }; if ((((_local3.GetUserData() is MovingPlatformSensor)) && ((_local2.GetUserData() is MovingPlatformSensor)))){ _local5 = _local3.GetUserData().GetBody().GetJointList(); while (_local5) { if (_local5.other.GetUserData() != null){ _local5.other.GetUserData().move(); }; _local5 = _local5.next; }; }; if ((((_local2.GetUserData() is SkeletonsBody)) && ((_local3.GetUserData() is GraveSensor)))){ if (_local3.GetUserData().sensorNotTrigger){ _local3.GetUserData().sensorNotTrigger = false; GlobalStorage.curLevel.win(); }; }; if ((((_local3.GetUserData() is SkeletonsBody)) && ((_local2.GetUserData() is GraveSensor)))){ if (_local2.GetUserData().sensorNotTrigger){ _local2.GetUserData().sensorNotTrigger = false; GlobalStorage.curLevel.win(); }; }; if ((_local2.GetUserData() is Tambourine)){ if (_local3.GetType() != 0){ _local2.GetUserData().objectMC.gotoAndPlay(2); }; trace(("my type " + _local3.GetType())); Sounds.PlaySnd("Drum", 0.3); }; if ((_local3.GetUserData() is Tambourine)){ if (_local2.GetType() != 0){ _local3.GetUserData().objectMC.gotoAndPlay(2); }; trace(("my type " + _local2.GetType())); Sounds.PlaySnd("Drum", 0.3); }; if ((((_local2.GetUserData() is SkeletonsHead)) && ((_local3.GetUserData() is BigSpike)))){ GlobalStorage.gameLogic.removeSkeletonJoints(); }; if ((((_local3.GetUserData() is SkeletonsHead)) && ((_local2.GetUserData() is BigSpike)))){ GlobalStorage.gameLogic.removeSkeletonJoints(); }; if ((((_local2.GetUserData() is SkeletonsLeg)) && ((_local3.GetUserData() is BigSpike)))){ GlobalStorage.gameLogic.removeSkeletonJoints(); }; if ((((_local3.GetUserData() is SkeletonsLeg)) && ((_local2.GetUserData() is BigSpike)))){ GlobalStorage.gameLogic.removeSkeletonJoints(); }; if ((((_local2.GetUserData() is SkeletonsHand)) && ((_local3.GetUserData() is BigSpike)))){ GlobalStorage.gameLogic.removeSkeletonJoints(); }; if ((((_local3.GetUserData() is SkeletonsHand)) && ((_local2.GetUserData() is BigSpike)))){ GlobalStorage.gameLogic.removeSkeletonJoints(); }; if ((((_local2.GetUserData() is Baloon)) && ((_local3.GetUserData() is BigSpike)))){ _local2.GetUserData().breakTheBody(); }; if ((((_local3.GetUserData() is Baloon)) && ((_local2.GetUserData() is BigSpike)))){ _local3.GetUserData().breakTheBody(); }; if ((((_local2.GetUserData() is BaloonUnpop)) && ((_local3.GetUserData() is BigSpike)))){ _local2.GetUserData().breakTheBody(); }; if ((((_local3.GetUserData() is BaloonUnpop)) && ((_local2.GetUserData() is BigSpike)))){ _local3.GetUserData().breakTheBody(); }; if ((((_local2.GetUserData() is AirShip)) && ((_local3.GetUserData() is BigSpike)))){ _local2.GetUserData().breakTheBody(); }; if ((((_local3.GetUserData() is AirShip)) && ((_local2.GetUserData() is BigSpike)))){ _local3.GetUserData().breakTheBody(); }; if ((((_local2.GetUserData() is Baloon)) && ((_local3.GetUserData() is Saw)))){ _local2.GetUserData().breakTheBody(); Sounds.PlaySnd("Saw"); }; if ((((_local3.GetUserData() is Baloon)) && ((_local2.GetUserData() is Saw)))){ _local3.GetUserData().breakTheBody(); Sounds.PlaySnd("Saw"); }; if ((((_local2.GetUserData() is BaloonUnpop)) && ((_local3.GetUserData() is Saw)))){ _local2.GetUserData().breakTheBody(); Sounds.PlaySnd("Saw"); }; if ((((_local3.GetUserData() is BaloonUnpop)) && ((_local2.GetUserData() is Saw)))){ _local3.GetUserData().breakTheBody(); Sounds.PlaySnd("Saw"); }; if ((((_local2.GetUserData() is AirShip)) && ((_local3.GetUserData() is Saw)))){ _local2.GetUserData().breakTheBody(); Sounds.PlaySnd("Saw"); }; if ((((_local3.GetUserData() is AirShip)) && ((_local2.GetUserData() is Saw)))){ _local3.GetUserData().breakTheBody(); Sounds.PlaySnd("Saw"); }; if ((((_local2.GetUserData() is Baloon)) && ((_local3.GetUserData() is SpikeBall)))){ _local2.GetUserData().breakTheBody(); }; if ((((_local3.GetUserData() is Baloon)) && ((_local2.GetUserData() is SpikeBall)))){ _local3.GetUserData().breakTheBody(); }; if ((((_local2.GetUserData() is BaloonUnpop)) && ((_local3.GetUserData() is SpikeBall)))){ _local2.GetUserData().breakTheBody(); }; if ((((_local3.GetUserData() is BaloonUnpop)) && ((_local2.GetUserData() is SpikeBall)))){ _local3.GetUserData().breakTheBody(); }; if ((((_local2.GetUserData() is AirShip)) && ((_local3.GetUserData() is SpikeBall)))){ _local2.GetUserData().breakTheBody(); }; if ((((_local3.GetUserData() is AirShip)) && ((_local2.GetUserData() is SpikeBall)))){ _local3.GetUserData().breakTheBody(); }; if ((((_local2.GetUserData() is SkeletonsLeg)) && ((_local3.GetUserData() is Saw)))){ GlobalStorage.gameLogic.removeSkeletonJoints(); Sounds.PlaySnd("Saw"); }; if ((((_local3.GetUserData() is SkeletonsLeg)) && ((_local2.GetUserData() is Saw)))){ GlobalStorage.gameLogic.removeSkeletonJoints(); Sounds.PlaySnd("Saw"); }; if ((((_local2.GetUserData() is SkeletonsHand)) && ((_local3.GetUserData() is Saw)))){ GlobalStorage.gameLogic.removeSkeletonJoints(); Sounds.PlaySnd("Saw"); }; if ((((_local3.GetUserData() is SkeletonsHand)) && ((_local2.GetUserData() is Saw)))){ GlobalStorage.gameLogic.removeSkeletonJoints(); Sounds.PlaySnd("Saw"); }; if ((((_local2.GetUserData() is SkeletonsHead)) && ((_local3.GetUserData() is Saw)))){ GlobalStorage.gameLogic.removeSkeletonJoints(); Sounds.PlaySnd("Saw"); }; if ((((_local3.GetUserData() is SkeletonsHead)) && ((_local2.GetUserData() is Saw)))){ GlobalStorage.gameLogic.removeSkeletonJoints(); Sounds.PlaySnd("Saw"); }; if ((((_local2.GetUserData() is PunchBoxSensor)) && ((_local3.GetUserData() is DynamicRoundObject)))){ trace("ContactOn"); if (_local2.GetUserData().sensorOn){ _local3.GetUserData().shootWithPunchBox(_local3.GetUserData(), _local2.GetUserData()); }; }; if ((((_local3.GetUserData() is PunchBoxSensor)) && ((_local2.GetUserData() is DynamicRoundObject)))){ trace("ContactOn"); if (_local3.GetUserData().sensorOn){ _local2.GetUserData().shootWithPunchBox(_local2.GetUserData(), _local3.GetUserData()); }; }; } override public function EndContact(_arg1:b2Contact):void{ var _local2:* = _arg1.GetFixtureA().GetBody(); var _local3:* = _arg1.GetFixtureB().GetBody(); } override public function PostSolve(_arg1:b2Contact, _arg2:b2ContactImpulse):void{ var _local3:* = _arg1.GetFixtureA().GetBody(); var _local4:* = _arg1.GetFixtureB().GetBody(); if ((_local4.GetUserData() as SkeletonsBody)){ if (_arg2.normalImpulses[0] >= MAX_IMPULSE_HIT){ Sounds.PlaySnd("Tuk"); if ((_local3.GetUserData() as Bullet)){ }; }; }; if ((_local3.GetUserData() as SkeletonsBody)){ if (_arg2.normalImpulses[0] >= MAX_IMPULSE_HIT){ Sounds.PlaySnd("Tuk"); if ((_local4.GetUserData() as Bullet)){ }; }; }; if ((_local4.GetUserData() as SkeletonsHand)){ if (_arg2.normalImpulses[0] >= MAX_IMPULSE_HIT){ Sounds.PlaySnd("Tuk"); if ((_local3.GetUserData() as Bullet)){ }; }; }; if ((_local3.GetUserData() as SkeletonsHand)){ if (_arg2.normalImpulses[0] >= MAX_IMPULSE_HIT){ Sounds.PlaySnd("Tuk"); if ((_local4.GetUserData() as Bullet)){ }; }; }; if ((_local4.GetUserData() as SkeletonsHead)){ if (_arg2.normalImpulses[0] >= MAX_IMPULSE_HIT){ Sounds.PlaySnd("Tuk"); if ((_local3.GetUserData() as Bullet)){ }; }; }; if ((_local3.GetUserData() as SkeletonsHead)){ if (_arg2.normalImpulses[0] >= MAX_IMPULSE_HIT){ Sounds.PlaySnd("Tuk"); if ((_local4.GetUserData() as Bullet)){ }; }; }; if ((_local4.GetUserData() as SkeletonsLeg)){ if (_arg2.normalImpulses[0] >= MAX_IMPULSE_HIT){ Sounds.PlaySnd("Tuk"); if ((_local3.GetUserData() as Bullet)){ }; }; }; if ((_local3.GetUserData() as SkeletonsLeg)){ if (_arg2.normalImpulses[0] >= MAX_IMPULSE_HIT){ Sounds.PlaySnd("Tuk"); if ((_local4.GetUserData() as Bullet)){ }; }; }; if ((_local3.GetUserData() is Bomb)){ if (_arg2.normalImpulses[0] >= MAX_IMPULSE){ _local3.GetUserData().activate(); }; }; if ((_local4.GetUserData() as Bomb)){ if (_arg2.normalImpulses[0] >= MAX_IMPULSE){ _local4.GetUserData().activate(); }; }; if ((_local3.GetUserData() is TntBarrel)){ if (_arg2.normalImpulses[0] >= MAX_IMPULSE){ _local3.GetUserData().activate(); }; }; if ((_local4.GetUserData() as TntBarrel)){ if (_arg2.normalImpulses[0] >= MAX_IMPULSE){ _local4.GetUserData().activate(); }; }; } } }//package
Section 262
//DRec_carsShovel (DRec_carsShovel) package { import flash.display.*; public dynamic class DRec_carsShovel extends MovieClip { } }//package
Section 263
//DRec_palka2 (DRec_palka2) package { import flash.display.*; public dynamic class DRec_palka2 extends MovieClip { } }//package
Section 264
//Drum (Drum) package { import flash.media.*; public dynamic class Drum extends Sound { } }//package
Section 265
//DynamicBrevnoMC (DynamicBrevnoMC) package { import flash.display.*; public dynamic class DynamicBrevnoMC extends MovieClip { } }//package
Section 266
//ExplosionCentreMC (ExplosionCentreMC) package { import flash.display.*; public class ExplosionCentreMC extends MovieClip { } }//package
Section 267
//FanOff (FanOff) package { import flash.media.*; public dynamic class FanOff extends Sound { } }//package
Section 268
//FanOn (FanOn) package { import flash.media.*; public dynamic class FanOn extends Sound { } }//package
Section 269
//Flame (Flame) package { import flash.media.*; public dynamic class Flame extends Sound { } }//package
Section 270
//GameLogic (GameLogic) package { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.events.*; import flash.geom.*; import flash.display.*; import Objects.*; import Fla.*; public class GameLogic { private var degrees:Number; private var transformCoef:Number; private var distance:Number; private var radians:Number; private var limitForDistancePlayerAnim:Number;// = 80 private var bulletsAngleRadians:Number; private var skeletonNotDestroyed:Boolean;// = true public function GameLogic(){ GlobalStorage.stageLink.addEventListener(MouseEvent.MOUSE_DOWN, click); } private function checkIfBodyUnderMouse():b2Body{ var mouseXWorldPhys:Number; var mouseYWorldPhys:Number; var aabb:b2AABB; var bodyUnderMouse:b2Body; var fixtureOfbodyUnderMouse:b2Fixture; var GetBodyCallback:Function; GetBodyCallback = function (_arg1:b2Fixture):Boolean{ bodyUnderMouse = GlobalStorage.world.GetBodyList(); return (true); }; var mousePVec:b2Vec2 = new b2Vec2(); var prmRadius:Number = 1; mouseXWorldPhys = (GlobalStorage.stageLink.mouseX / GlobalStorage.physScale); mouseYWorldPhys = (GlobalStorage.stageLink.mouseY / GlobalStorage.physScale); mousePVec.Set(mouseXWorldPhys, mouseYWorldPhys); aabb = new b2AABB(); aabb.lowerBound.Set((mouseXWorldPhys - prmRadius), (mouseYWorldPhys - prmRadius)); aabb.upperBound.Set((mouseXWorldPhys + prmRadius), (mouseYWorldPhys + prmRadius)); GlobalStorage.world.QueryAABB(GetBodyCallback, aabb); trace(("bodyUnderMouse " + bodyUnderMouse.GetUserData())); return (bodyUnderMouse); } private function click(_arg1:MouseEvent):void{ var _local3:*; var _local4:*; var _local5:*; var _local2:b2Body = GlobalStorage.world.GetBodyList(); while (_local2) { if ((_local2.GetUserData() is GameObject)){ if (GameObject(_local2.GetUserData()).isBreakable){ if (_local2.GetFixtureList().TestPoint(new b2Vec2((GlobalStorage.stageLink.mouseX / GlobalStorage.physScale), (GlobalStorage.stageLink.mouseY / GlobalStorage.physScale)))){ destroyObject(GameObject(_local2.GetUserData())); }; }; if (_local2.GetFixtureList().TestPoint(new b2Vec2((GlobalStorage.stageLink.mouseX / GlobalStorage.physScale), (GlobalStorage.stageLink.mouseY / GlobalStorage.physScale)))){ if ((_local2.GetUserData() is Cannon)){ _local2.GetUserData().objectMC.gotoAndPlay(2); _local2.GetUserData().GetBody().GetAngle(); addCannonBullet(_local2.GetUserData()); Sounds.PlaySnd("CannonShot", 0.4); }; if ((_local2.GetUserData() is CarBody)){ _local2.GetUserData().carMoveOnOff(_local2.GetUserData().GetBody().GetAngle()); _local2.GetUserData().objectMC.gotoAndPlay(2); }; if ((_local2.GetUserData() is AirShip)){ if (_local2.GetUserData().fireOn){ _local2.GetUserData().fireOn = false; _local2.GetUserData().objectMC.gotoAndPlay(10); Sounds.PlaySnd("AeroOff", 0.5); } else { _local2.GetUserData().fireOn = true; _local2.GetUserData().objectMC.gotoAndPlay(2); Sounds.PlaySnd("AeroOn", 0.5); }; }; if ((_local2.GetUserData() is PunchBox)){ if (!_local2.GetUserData().punched){ _local2.GetUserData().punched = true; _local2.GetUserData().objectMC.gotoAndPlay(2); _local3 = _local2.GetUserData().GetBody().GetJointList(); _local3.other.GetUserData().sensorOn; punchWithGlove(_local3.other.GetUserData(), "PunchBox"); Sounds.PlaySnd("Punch"); }; }; if ((_local2.GetUserData() is Blower)){ _local2.GetUserData().objectMC.gotoAndPlay(2); _local4 = _local2.GetUserData().GetBody().GetJointList(); _local4.other.GetUserData().sensorOn; punchWithGlove(_local4.other.GetUserData(), "Blower"); Sounds.PlaySnd("Porh", 0.2); }; if ((_local2.GetUserData() is Fan)){ _local5 = _local2.GetUserData().GetBody().GetJointList(); if (!_local5.other.GetUserData().sensorOn){ _local5.other.GetUserData().sensorOn = true; _local5.other.GetUserData().objectMC.gotoAndStop(2); _local2.GetUserData().objectMC.gotoAndStop(2); Sounds.PlaySnd("FanOn", 1); } else { _local5.other.GetUserData().sensorOn = false; _local5.other.GetUserData().objectMC.gotoAndStop(1); _local2.GetUserData().objectMC.gotoAndStop(1); Sounds.PlaySnd("FanOff", 1); trace("end of wind"); }; }; }; }; _local2 = _local2.GetNext(); }; } public function windMaker(_arg1):void{ var _local3:*; var _local4:Number; var _local5:Number; var _local6:b2Vec2; var _local2:* = _arg1.GetBody().GetContactList(); while (_local2) { _local3 = _local2.contact; _local5 = 1000; if ((_local3.GetFixtureA().GetBody().GetUserData() is WindSensor)){ _local4 = _local3.GetFixtureA().GetBody().GetAngle(); _local6 = new b2Vec2((Math.cos(_local4) * _local5), (Math.sin(_local4) * _local5)); _local3.GetFixtureB().GetBody().SetLinearVelocity(_local6); trace(((((("_I MAKE WIND!!! " + _local3.GetFixtureB().GetBody().GetUserData()) + " ") + _local6.x) + " ") + _local6.y)); }; if ((_local3.GetFixtureB().GetBody().GetUserData() is WindSensor)){ _local4 = _local3.GetFixtureB().GetBody().GetAngle(); _local6 = new b2Vec2((Math.cos(_local4) * _local5), (Math.sin(_local4) * _local5)); _local3.GetFixtureA().GetBody().SetLinearVelocity(_local6); trace(((((("_I MAKE WIND!!! " + _local3.GetFixtureA().GetBody().GetUserData()) + " ") + _local6.x) + " ") + _local6.y)); }; _local2 = _local2.next; }; } private function punchWithGlove(_arg1:Object, _arg2:String):void{ var _local4:*; var _local5:b2Body; var _local6:Number; var _local7:Number; var _local8:b2Vec2; var _local3:* = _arg1.GetBody().GetContactList(); while (_local3) { _local4 = _local3.contact; _local5 = _local4.GetFixtureB().GetBody(); _local6 = _local4.GetFixtureA().GetBody().GetAngle(); _local7 = GlobalStorage.powerOfPunch; _local8 = new b2Vec2((Math.cos(_local6) * _local7), (Math.sin(_local6) * _local7)); _local8.Normalize(); if (_arg2 == "Blower"){ _local8.Multiply(1); } else { _local8.Multiply(GlobalStorage.multiplyOfPunch); }; if ((_local4.GetFixtureA().GetBody().GetUserData() is PunchBoxSensor)){ _local5.ApplyImpulse(_local8, _local5.GetWorldCenter()); }; if ((_local4.GetFixtureB().GetBody().GetUserData() is PunchBoxSensor)){ _local5.ApplyImpulse(_local8, _local5.GetWorldCenter()); }; _local3 = _local3.next; }; } private function createForce(_arg1):b2Vec2{ var _local3:b2Vec2; var _local2:Number = _arg1.GetAngle(); _local3 = new b2Vec2(); _local3.x = Math.cos(_local2); _local3.y = Math.sin(_local2); _local3.Normalize(); _local3.Multiply(140); return (_local3); } private function destroyObject(_arg1):void{ var _local2:*; if (_arg1 != null){ _local2 = _arg1.GetBody().GetJointList(); while (_local2) { trace(_local2.other.GetUserData()); if (((!((_local2.other.GetUserData() == null))) && ((_local2.other.GetUserData().toString() == "[object Rope]")))){ trace(("ROPE " + _local2.joint)); GameObject(_local2.other.GetUserData()).breakTheBody(); }; _local2 = _local2.next; }; }; _arg1.breakTheBody(); } public function destroySkeletonsParts(_arg1:String):void{ var _local2:*; var _local3:*; if ((((_arg1 == "flame")) && (!(GlobalStorage.curLevel.winGame)))){ for each (_local2 in GlobalStorage.skeleonsPartsArray) { trace(("obj " + _local2.GetUserData())); _local2.GetUserData().gotoAndStop("fire"); GlobalStorage.destroyBodiesList.push(_local2.GetBody()); }; if (!GlobalStorage.curLevel.skeletonDead){ Sounds.PlaySnd("Flame", 0.1); Sounds.PlaySnd("Scream", 0.5); }; GlobalStorage.curLevel.skeletonDeath(); } else { for each (_local3 in GlobalStorage.skeleonsPartsArray) { trace(("obj " + _local3.GetUserData())); _local3.GetUserData().gotoAndStop("tok"); GlobalStorage.destroyBodiesList.push(_local3.GetBody()); if (!GlobalStorage.curLevel.skeletonDead){ Sounds.PlaySnd("Tok", 0.3); Sounds.PlaySnd("Scream", 0.3); }; GlobalStorage.curLevel.skeletonDeath(); }; }; } private function addCannonBullet(_arg1):void{ var _local2:BombMC; var _local3:Bomb; var _local4:BulletMC; var _local5:Bullet; trace((" my cannon " + _arg1.GetBody().GetUserData().objectMC.name)); if (_arg1.GetBody().GetUserData().objectMC.name == "_yadro"){ _local2 = new BombMC(); _local2.x = ((_arg1.GetBody().GetPosition().x * GlobalStorage.physScale) + (((_arg1.objectMC.width / 2) + 20) * Math.cos(_arg1.GetBody().GetAngle()))); _local2.y = ((_arg1.GetBody().GetPosition().y * GlobalStorage.physScale) + (((_arg1.objectMC.height / 2) + 20) * Math.sin(_arg1.GetBody().GetAngle()))); GlobalStorage._globalLvlvMC.addChild(_local2); _local3 = new Bomb(_local2, GlobalStorage.world); _local3.GetBody().ApplyImpulse(new b2Vec2((Math.cos(_arg1.GetBody().GetAngle()) * GlobalStorage.bulletsPower), (Math.sin(_arg1.GetBody().GetAngle()) * GlobalStorage.bulletsPower)), _local3.GetBody().GetWorldCenter()); } else { _local4 = new BulletMC(); _local4.x = ((_arg1.GetBody().GetPosition().x * GlobalStorage.physScale) + (((_arg1.objectMC.width / 2) + 10) * Math.cos(_arg1.GetBody().GetAngle()))); _local4.y = ((_arg1.GetBody().GetPosition().y * GlobalStorage.physScale) + (((_arg1.objectMC.height / 2) + 10) * Math.sin(_arg1.GetBody().GetAngle()))); GlobalStorage._globalLvlvMC.addChild(_local4); _local5 = new Bullet(_local4, GlobalStorage.world, _arg1.GetBody().GetAngle()); }; } public function removeSkeletonJoints():void{ var _local1:b2RevoluteJoint; if (skeletonNotDestroyed){ skeletonNotDestroyed = false; for each (_local1 in GlobalStorage.skeletosJointsArray) { GlobalStorage.world.DestroyJoint(_local1); }; }; if (!GlobalStorage.curLevel.skeletonDead){ Sounds.PlaySnd("SkeletonDeath", 1); Sounds.PlaySnd("Ouch", 0.5); }; GlobalStorage.curLevel.skeletonDeath(); } private function mouseMove(_arg1:MouseEvent):void{ mathCalculateUtils(); handWithGunMove(degrees, transformCoef); } private function mathCalculateUtils():void{ var _local1:Number = GlobalStorage.stageLink.mouseX; var _local2:Number = GlobalStorage.stageLink.mouseY; var _local3:Number = (_local1 - GlobalStorage.parrotsHand.x); var _local4:Number = (_local2 - GlobalStorage.parrotsHand.y); distance = Math.sqrt(((_local3 * _local3) + (_local4 * _local4))); radians = Math.atan2(_local4, _local3); if (radians <= -1.3){ radians = -1.3; } else { if (radians >= 0.01){ radians = 0.01; }; }; degrees = ((radians * 180) / Math.PI); transformCoef = (Math.sqrt(((_local3 * _local3) + (_local4 * _local4))) / 100); if (transformCoef >= 1){ transformCoef = 1; }; if (distance >= GlobalStorage.maxForceOrDistance){ distance = GlobalStorage.maxForceOrDistance; }; } private function shoot():void{ var _local1:MovieClip = GlobalStorage.parrotsHand; var _local2:Point = new Point(_local1.bulletsBositionMC.x, _local1.bulletsBositionMC.y); var _local3:Point = _local1.localToGlobal(_local2); var _local4:BulletMC = new BulletMC(); _local4.x = _local3.x; _local4.y = _local3.y; GlobalStorage._globalLvlvMC.addChild(_local4); var _local5:Bullet = new Bullet(_local4, GlobalStorage.world, calculateBulletsDirection(_local3)); GlobalStorage.numOfShots++; trace(("Num of shots " + GlobalStorage.numOfShots)); } private function handWithGunMove(_arg1:Number, _arg2:Number):void{ GlobalStorage.parrotsHand.rotation = _arg1; } private function calculateBulletsDirection(_arg1:Point):Number{ var _local2:Number = GlobalStorage.stageLink.mouseX; var _local3:Number = GlobalStorage.stageLink.mouseY; var _local4:Number = (_local2 - _arg1.x); var _local5:Number = (_local3 - _arg1.y); bulletsAngleRadians = Math.atan2(_local5, _local4); if (bulletsAngleRadians <= -1.3){ bulletsAngleRadians = -1.3; } else { if (bulletsAngleRadians >= 0.01){ bulletsAngleRadians = 0.01; }; }; return ((bulletsAngleRadians - GlobalStorage.bulletsGravitationCorrectionInRadians)); } public function breakTheChain(_arg1):void{ var _local2:*; if (_arg1.markAsBreak == false){ _arg1.markAsBreak = true; _local2 = _arg1.GetBody().GetJointList(); while (_local2) { if (((!((_local2.other.GetUserData() == null))) && ((_local2.other.GetUserData().toString() == "[object ChainLink]")))){ breakTheChain(_local2.other.GetUserData()); _local2.other.GetUserData().destroy(); }; _local2 = _local2.next; }; }; } public function destroy():void{ GlobalStorage.stageLink.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMove); GlobalStorage.stageLink.removeEventListener(MouseEvent.MOUSE_DOWN, click); } } }//package
Section 271
//GameUpdate (GameUpdate) package { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.events.*; import flash.display.*; import Objects.*; import Fla.*; import flash.text.*; public class GameUpdate { private var trailParticlesCounter:int;// = 0 public var windSensor;// = null public function GameUpdate(){ GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, update); } private function update(_arg1:Event):void{ GlobalStorage.world.Step((1 / 35), 10, 10); var _local2:MovieClip; GlobalStorage.stageLink.focus = GlobalStorage.stageLink; var _local3:b2Body = GlobalStorage.world.GetBodyList(); managePhysicsChanges(); while (_local3) { if ((_local3.GetUserData() is GameObject)){ _local2 = GameObject(_local3.GetUserData()).objectMC; _local2.y = (_local3.GetPosition().y * GlobalStorage.physScale); _local2.x = (_local3.GetPosition().x * GlobalStorage.physScale); _local2.rotation = ((_local3.GetAngle() * (180 / Math.PI)) % 360); }; if ((((_local3.GetUserData() is Baloon)) || ((_local3.GetUserData() is BaloonUnpop)))){ _local3.ApplyImpulse(GlobalStorage.baloonForce, _local3.GetWorldCenter()); }; if ((_local3.GetUserData() is AirShip)){ _local3.ApplyImpulse(_local3.GetUserData().changeForce(), _local3.GetWorldCenter()); }; if ((_local3.GetUserData() is WindSensor)){ if (_local3.GetUserData().sensorOn){ windMaker(_local3.GetUserData()); }; }; if ((_local3.GetUserData() is Curretn)){ if (_local3.GetUserData().checkFrameName() == "on"){ electricityShoker(_local3.GetUserData()); }; }; if ((_local3.GetUserData() is Dragon)){ if (_local3.GetUserData().checkFrameName() == "flame"){ dragonFlame(_local3.GetUserData()); }; }; _local3 = _local3.GetNext(); }; GlobalStorage.world.ClearForces(); GlobalStorage.world.DrawDebugData(); } private function dragonFlame(_arg1):void{ var _local3:*; var _local2:* = _arg1.GetBody().GetContactList(); while (_local2) { _local3 = _local2.contact; if ((_local3.GetFixtureA().GetBody().GetUserData() is Dragon)){ if ((((((((_local3.GetFixtureB().GetBody().GetUserData() is SkeletonsHead)) || ((_local3.GetFixtureB().GetBody().GetUserData() is SkeletonsBody)))) || ((_local3.GetFixtureB().GetBody().GetUserData() is SkeletonsHand)))) || ((_local3.GetFixtureB().GetBody().GetUserData() is SkeletonsLeg)))){ GlobalStorage.gameLogic.destroySkeletonsParts("flame"); }; }; if ((_local3.GetFixtureB().GetBody().GetUserData() is Dragon)){ if ((((((((_local3.GetFixtureA().GetBody().GetUserData() is SkeletonsHead)) || ((_local3.GetFixtureA().GetBody().GetUserData() is SkeletonsBody)))) || ((_local3.GetFixtureA().GetBody().GetUserData() is SkeletonsHand)))) || ((_local3.GetFixtureA().GetBody().GetUserData() is SkeletonsLeg)))){ GlobalStorage.gameLogic.destroySkeletonsParts("flame"); }; }; _local2 = _local2.next; }; } private function electricityShoker(_arg1):void{ var _local3:*; var _local2:* = _arg1.GetBody().GetContactList(); while (_local2) { _local3 = _local2.contact; if ((_local3.GetFixtureA().GetBody().GetUserData() is Curretn)){ if ((((((((_local3.GetFixtureB().GetBody().GetUserData() is SkeletonsHead)) || ((_local3.GetFixtureB().GetBody().GetUserData() is SkeletonsBody)))) || ((_local3.GetFixtureB().GetBody().GetUserData() is SkeletonsHand)))) || ((_local3.GetFixtureB().GetBody().GetUserData() is SkeletonsLeg)))){ trace("DEAD"); GlobalStorage.gameLogic.destroySkeletonsParts("tok"); }; }; if ((_local3.GetFixtureB().GetBody().GetUserData() is Curretn)){ if ((((((((_local3.GetFixtureA().GetBody().GetUserData() is SkeletonsHead)) || ((_local3.GetFixtureA().GetBody().GetUserData() is SkeletonsBody)))) || ((_local3.GetFixtureA().GetBody().GetUserData() is SkeletonsHand)))) || ((_local3.GetFixtureA().GetBody().GetUserData() is SkeletonsLeg)))){ trace("DEAD"); GlobalStorage.gameLogic.destroySkeletonsParts("tok"); }; }; _local2 = _local2.next; }; } public function windMaker(_arg1):void{ var _local3:*; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local2:* = _arg1.GetBody().GetContactList(); while (_local2) { _local3 = _local2.contact; _local6 = GlobalStorage.powerOfWind; if ((_local3.GetFixtureA().GetBody().GetUserData() is WindSensor)){ _local4 = _local3.GetFixtureA().GetBody().GetAngle(); _local5 = (_local4 * (180 / Math.PI)); if ((((_local5 >= 0)) && ((_local5 <= 90)))){ _local11 = 1; } else { if ((((_local5 > 90)) && ((_local5 <= 180)))){ _local11 = -1; }; }; _local9 = ((_local3.GetFixtureA().GetBody().GetPosition().x + ((_local3.GetFixtureA().GetBody().GetUserData().objWidth / 2) * _local11)) - _local3.GetFixtureB().GetBody().GetPosition().x); _local10 = ((_local3.GetFixtureA().GetBody().GetPosition().y + (_local3.GetFixtureA().GetBody().GetUserData().objHeight / 2)) - _local3.GetFixtureB().GetBody().GetPosition().y); _local8 = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local12 = (_local8 / _local3.GetFixtureA().GetBody().GetUserData().objWidth); _local7 = new b2Vec2(((Math.cos(_local4) * _local6) * _local12), (Math.sin(_local4) * _local6)); trace(("koef force " + _local12)); _local3.GetFixtureB().GetBody().ApplyImpulse(_local7, _local3.GetFixtureB().GetBody().GetWorldCenter()); }; if ((_local3.GetFixtureB().GetBody().GetUserData() is WindSensor)){ _local4 = _local3.GetFixtureB().GetBody().GetAngle(); _local5 = (_local4 * (180 / Math.PI)); if ((((_local5 >= 0)) && ((_local5 <= 90)))){ _local11 = 1; } else { if ((((_local5 > 90)) && ((_local5 <= 180)))){ _local11 = -1; }; }; _local9 = ((_local3.GetFixtureB().GetBody().GetPosition().x + ((_local3.GetFixtureB().GetBody().GetUserData().objWidth / 2) * _local11)) - _local3.GetFixtureA().GetBody().GetPosition().x); _local10 = ((_local3.GetFixtureB().GetBody().GetPosition().y + (_local3.GetFixtureB().GetBody().GetUserData().objHeight / 2)) - _local3.GetFixtureA().GetBody().GetPosition().y); _local8 = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local12 = (_local8 / _local3.GetFixtureA().GetBody().GetUserData().objWidth); _local7 = new b2Vec2(((Math.cos(_local4) * _local6) * _local12), (Math.sin(_local4) * _local6)); trace(("koef force " + _local12)); _local3.GetFixtureA().GetBody().ApplyImpulse(_local7, _local3.GetFixtureA().GetBody().GetWorldCenter()); }; _local2 = _local2.next; }; } private function managePhysicsChanges():void{ var _local1:int; var _local2:MovieClip; var _local3:Viking; var _local4:ExplosionSensor; var _local5:int; if (GlobalStorage.createViking){ GlobalStorage.createViking = false; GlobalStorage.vikingRunning = true; _local2 = new VikingMC(); _local2.x = -40; _local2.y = 509; GlobalStorage.curLevel._LevelMC.addChildAt(_local2, (GlobalStorage.seaChildNum - 1)); _local3 = new Viking(_local2, GlobalStorage.world); }; if (GlobalStorage.destroyBodiesList.length > 0){ _local1 = 0; while (_local1 < GlobalStorage.destroyBodiesList.length) { if ((GlobalStorage.destroyBodiesList[_local1] is b2Body)){ GlobalStorage.world.DestroyBody(b2Body(GlobalStorage.destroyBodiesList[_local1])); }; _local1++; }; GlobalStorage.destroyBodiesList = new Array(); }; if (GlobalStorage.createExplosionsList.length > 0){ _local5 = 0; while (_local5 < GlobalStorage.createExplosionsList.length) { if ((GlobalStorage.createExplosionsList[_local5] as b2Vec2)){ _local4 = new ExplosionSensor(b2Vec2(GlobalStorage.createExplosionsList[_local5]), 10); }; _local5++; }; GlobalStorage.createExplosionsList = new Array(); }; } private function checkWin():void{ if ((((GlobalStorage.bottleObjectRemaining <= 0)) && (!(GlobalStorage.win)))){ GlobalStorage.curLevel.win(); GlobalStorage.win = true; }; } private function debugDraw():void{ var _local1:b2DebugDraw = new b2DebugDraw(); var _local2:Sprite = new Sprite(); GlobalStorage.stageLink.addChild(_local2); _local1.SetSprite(_local2); _local1.SetLineThickness(0.5); _local1.SetFillAlpha(0.1); _local1.SetDrawScale(GlobalStorage.physScale); _local1.SetFlags((b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit)); GlobalStorage.world.SetDebugDraw(_local1); } public function destroy():void{ GlobalStorage.stageLink.removeEventListener(Event.ENTER_FRAME, update); } } }//package
Section 272
//GlobalStorage (GlobalStorage) package { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import flash.geom.*; import flash.display.*; import Objects.*; import flash.net.*; public class GlobalStorage { public static const MAIN_MENU:int = 1; public static const LEVEL_CHOOSE_MENU:int = 2; public static const LEVEL_PLAY:int = 3; public static const COMICS_SCREEN:int = 4; public static var world:b2World; public static var main:VikingMain; public static var physScale:int = 35; public static var lvlID:int; public static var stageLink:Stage; public static var curLevel:Level; public static var gameUpdate:GameUpdate; public static var gameLogic:GameLogic; public static var frameRate:Number = 35; public static var slowTime:Number = 5; public static var zoomIn:Number = 3; public static var destroyBodiesList:Array; public static var createExplosionsList:Array; public static var goalsObjectRemaining:int = 0; public static var bottleObjectRemaining:int = 0; public static var alreadyHasGoals:int = 0; public static var createViking:Boolean = false; public static var vikingRunning:Boolean = false; public static var addWater:Boolean = false; public static var waterPoint:Number; public static var totalNumOfLevels:int = 28; public static var soundOn:Boolean = true; public static var musicOn:Boolean = true; public static var curZastavka:MovieClip; public static var curState:int; public static var waitSplash:int = 41; public static var waitChangeGameState:int = 16; public static var splashScreen:MovieClip; public static var maxLvlID:int = 1; public static var curTime:int; public static var seaChildNum:int; public static var customCursor:MovieClip; public static var arrowCursorVisible:Boolean = true; public static var sharedCache:SharedObject; public static var skullBallX:Number; public static var skullBallY:Number; public static var shootPointer:MovieClip; public static var minRadiusOfTraectoryCircle:Number = 0.2; public static var cameraMC:Sprite; public static var zombiePlayer:MovieClip; public static var centerOfZoom:Point; public static var allowZoomSensor:Boolean; public static var trailParticlesArray:Array; public static var _globalLvlvMC:Sprite; public static var skullChildNum:int; public static var fakeWorld:b2World; public static var headTrail:HeadTrail; public static var timeBeforeLvlEnd:Number = 45; public static var timeBeforeFailScreenAppear:Number = 30; public static var maxForceOrDistance:Number = 70; public static var numOfSkull:int = 0; public static var skullBallScale:Number; public static var allowZoomOutSound:Boolean = false; public static var motorJointsArray:Array; public static var parrotsHand:MovieClip; public static var parrotsBody:MovieClip; public static var bulletsPower:Number = 10; public static var bulletsGravitationCorrectionInRadians:Number = 0.01; public static var maxNumOfCollisions:Number = 6; public static var medals:Medals; public static var numOfShots:int = 0; public static var win:Boolean = false; public static var numOfBulletForSilver:int = 2; public static var platformXSpeed:int = 5; public static var totallNumsOfBulletPerLvl:int; public static var bonusScore:int = 150; public static var skeletonsBody:SkeletonsBody; public static var skeletosJointsArray:Array; public static var gravitationForBaloon:Number = 1; public static var baloonForce:b2Vec2 = new b2Vec2(0, -0.7); public static var airShipForce:b2Vec2 = new b2Vec2(0, -0.7); public static var airShipForceUp:b2Vec2 = new b2Vec2(0, -0.9); public static var carSpeed:Number = 10; public static var powerOfPunch:Number = 1; public static var multiplyOfPunch:Number = 20; public static var multiplyOfBlower:Number = 150; public static var reverseWorld:Number = 1; public static var powerOfWind:Number = 0.02; public static var electricityDelay:int = 60; public static var dragonFireDelay:int = 52; public static var skeleonsPartsArray:Array; public static var sponsorUrlAtGameStart:String = "http://juegosgratis.com"; public function GlobalStorage():void{ } } }//package
Section 273
//GroundMC (GroundMC) package { import flash.display.*; public dynamic class GroundMC extends MovieClip { } }//package
Section 274
//GUI (GUI) package { import flash.events.*; import flash.display.*; import Fla.*; import flash.text.*; import flash.net.*; import ru.antkarlov.animation.*; public class GUI { public static var curScreen:MovieClip; private static var keyboardEventAdded:Boolean = false; private static var spaceKeyTimePress:int = 25; private static var spaceKeyAllow:Boolean = true; private static var spaceKeyTimerI:int = 0; private static var sponsorUrl:String; private static var iGetDomain:String; private static var showComics:Boolean = false; private static var sponsorURL:String = "http://juegosgratis.com"; private static var sponsorFB:String = "https://www.facebook.com/pages/Juegosgratiscom/298192023616643"; private static var sponsorTwitter:String = "https://twitter.com/JuegosGratisTM"; public function GUI(){ getDomain(); } public static function newScreen(_arg1:int):void{ if (curScreen){ GlobalStorage.stageLink.removeChild(curScreen); curScreen = null; }; switch (_arg1){ case GlobalStorage.MAIN_MENU: curScreen = new MainMenuMC(); GlobalStorage.stageLink.addChild(curScreen); setVars(curScreen); addListeners(curScreen); removeKeyboardEvent(); break; case GlobalStorage.LEVEL_CHOOSE_MENU: curScreen = new LevelChooseMenuMC(); GlobalStorage.stageLink.addChild(curScreen); setVars(curScreen); addListeners(curScreen); showMedals(curScreen); removeKeyboardEvent(); break; case GlobalStorage.LEVEL_PLAY: curScreen = new LvlMenuMC(); GlobalStorage.stageLink.addChild(curScreen); setVars(curScreen); addListeners(curScreen); break; }; } public static function showMedals(_arg1):void{ var _local3:*; var _local4:*; var _local5:String; var _local6:String; var _local2:int; while (_arg1.numChildren > _local2) { if ((_arg1.getChildAt(_local2) as MedalsForLvlsBtn)){ _local4 = curScreen.getChildAt(_local2); _local5 = _local4.name; if (_local5.charAt(0) == "m"){ _local3 = curScreen.getChildAt(_local2).name.substr(1); _local6 = GlobalStorage.medals.medalsGet(int(_local3)); }; }; switch (_local6){ case "gold": _local4.gotoAndStop("gold"); break; case "silver": _local4.gotoAndStop("silver"); break; case "bronze": _local4.gotoAndStop("bronze"); break; case "none": _local4.gotoAndStop("none"); break; }; _local2++; }; } public static function addListeners(_arg1:MovieClip):void{ var _local2:int; while (_local2 < _arg1.numChildren) { if ((_arg1.getChildAt(_local2) is SimpleButton)){ SimpleButton(_arg1.getChildAt(_local2)).addEventListener(MouseEvent.CLICK, btnClicked); }; if ((_arg1.getChildAt(_local2) as MovieClip)){ if (MovieClip(_arg1.getChildAt(_local2)).name == "sound"){ if (GlobalStorage.soundOn){ MovieClip(_arg1.getChildAt(_local2)).gotoAndStop("soundOn"); } else { MovieClip(_arg1.getChildAt(_local2)).gotoAndStop("soundOff"); }; MovieClip(_arg1.getChildAt(_local2)).addEventListener(MouseEvent.CLICK, btnClicked); }; if (MovieClip(_arg1.getChildAt(_local2)).name == "music"){ if (GlobalStorage.musicOn){ MovieClip(_arg1.getChildAt(_local2)).gotoAndStop("musicOn"); } else { MovieClip(_arg1.getChildAt(_local2)).gotoAndStop("musicOff"); }; MovieClip(_arg1.getChildAt(_local2)).addEventListener(MouseEvent.CLICK, btnClicked); }; }; _local2++; }; } public static function addKeyListener():void{ GlobalStorage.stageLink.addEventListener(KeyboardEvent.KEY_DOWN, keyDown); keyboardEventAdded = true; } private static function keyDown(_arg1:KeyboardEvent):void{ if (((spaceKeyAllow) && ((_arg1.keyCode == 32)))){ spaceKeyAllow = false; trace("space"); GlobalStorage.curLevel.destroy(); GlobalStorage.gameLogic.destroy(); GlobalStorage.main.changeGameState(GlobalStorage.LEVEL_PLAY); GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, spaceKeyAllowFunc); }; } private static function spaceKeyAllowFunc(_arg1:Event){ spaceKeyTimerI++; if (spaceKeyTimerI > spaceKeyTimePress){ spaceKeyTimerI = 0; GlobalStorage.stageLink.removeEventListener(Event.ENTER_FRAME, spaceKeyAllowFunc); spaceKeyAllow = true; }; } private static function removeKeyboardEvent():void{ if (keyboardEventAdded){ GlobalStorage.stageLink.removeEventListener(KeyboardEvent.KEY_DOWN, keyDown); keyboardEventAdded = false; }; } public static function removeBtnListeners():void{ var _local1:int; while (_local1 < curScreen.numChildren) { if ((curScreen.getChildAt(_local1) is SimpleButton)){ SimpleButton(curScreen.getChildAt(_local1)).removeEventListener(MouseEvent.CLICK, btnClicked); }; _local1++; }; removeKeyboardEvent(); } private static function btnClicked(_arg1:MouseEvent):void{ var _local2:String; var _local3:*; var _local4:*; var _local5:Number; var _local6:String; var _local7:String; if ((_arg1.currentTarget is MovieClip)){ if (MovieClip(_arg1.currentTarget).name == "sound"){ trace("Sound"); if (GlobalStorage.soundOn){ GlobalStorage.soundOn = false; MovieClip(_arg1.currentTarget).gotoAndStop("soundOff"); trace("soundOff"); Sounds.sndEnable = false; } else { GlobalStorage.soundOn = true; MovieClip(_arg1.currentTarget).gotoAndStop("soundOn"); trace("soundOn"); Sounds.sndEnable = true; }; }; if (MovieClip(_arg1.currentTarget).name == "music"){ trace("Music"); if (GlobalStorage.musicOn){ GlobalStorage.musicOn = false; MovieClip(_arg1.currentTarget).gotoAndStop("musicOff"); trace("musicOff"); Music.played(false); Music.musEnable = false; } else { GlobalStorage.musicOn = true; MovieClip(_arg1.currentTarget).gotoAndStop("musicOn"); trace("musicOn"); Music.played(true); Music.musEnable = true; Music.fadeTo("MainTheme"); }; }; }; if ((((_arg1.currentTarget is SimpleButton)) && (spaceKeyAllow))){ getDomain(); switch (SimpleButton(_arg1.currentTarget).name){ case "start": GlobalStorage.main.changeGameState(GlobalStorage.LEVEL_CHOOSE_MENU); spaceKeyAllow = false; GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, spaceKeyAllowFunc); break; case "nextLvl": GlobalStorage.lvlID++; trace(("GlobalStorage.lvlID " + GlobalStorage.lvlID)); GlobalStorage.main.changeGameState(GlobalStorage.LEVEL_PLAY); spaceKeyAllow = false; GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, spaceKeyAllowFunc); break; case "retry": GlobalStorage.curLevel.destroy(); GlobalStorage.gameLogic.destroy(); GlobalStorage.main.changeGameState(GlobalStorage.LEVEL_PLAY); spaceKeyAllow = false; GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, spaceKeyAllowFunc); break; case "toLvlMenu": GlobalStorage.curLevel.destroy(); GlobalStorage.gameLogic.destroy(); GlobalStorage.main.changeGameState(GlobalStorage.LEVEL_CHOOSE_MENU); spaceKeyAllow = false; GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, spaceKeyAllowFunc); break; case "toMainMenu": GlobalStorage.main.changeGameState(GlobalStorage.MAIN_MENU); spaceKeyAllow = false; GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, spaceKeyAllowFunc); break; case "moreGames": navigateToURL(new URLRequest(sponsorURL), "_blank"); spaceKeyAllow = false; GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, spaceKeyAllowFunc); break; case "LOGO_btn": navigateToURL(new URLRequest(sponsorURL), "_blank"); spaceKeyAllow = false; GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, spaceKeyAllowFunc); break; case "FB_btn": navigateToURL(new URLRequest(sponsorFB), "_blank"); spaceKeyAllow = false; GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, spaceKeyAllowFunc); break; case "TWTR_btn": navigateToURL(new URLRequest(sponsorTwitter), "_blank"); spaceKeyAllow = false; GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, spaceKeyAllowFunc); break; case "submitBtn": _local2 = "index.php?act=Arcade&do=newscore"; _local3 = new URLRequest(_local2); _local4 = new URLVariables(); _local5 = ScoreManager.getTotalScore(); _local4.gname = "BuryMyBonesJG"; _local4.gscore = _local5; trace("Score:", _local5); _local3.data = _local4; _local3.method = URLRequestMethod.POST; navigateToURL(_local3, "_blank"); break; case "btnSponsorLogoLvl": navigateToURL(new URLRequest(sponsorUrl), "_blank"); spaceKeyAllow = false; GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, spaceKeyAllowFunc); break; case "moreGamesInterLvl": navigateToURL(new URLRequest(sponsorUrl), "_blank"); spaceKeyAllow = false; GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, spaceKeyAllowFunc); break; case "btnSponsorLogoInterLvl": navigateToURL(new URLRequest(sponsorUrl), "_blank"); spaceKeyAllow = false; GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, spaceKeyAllowFunc); break; case "moreGamesGamePlay": navigateToURL(new URLRequest(BrandingSettings.GAMEPLAY_MORE_GAMES_URL), "_blank"); spaceKeyAllow = false; GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, spaceKeyAllowFunc); break; case "btnSponsorLogoGamePlay": navigateToURL(new URLRequest(BrandingSettings.GAMEPLAY_LOGO_URL), "_blank"); spaceKeyAllow = false; GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, spaceKeyAllowFunc); break; case "helpBtn": _local6 = "http://www.sogood.com/game/474/Bury_My_Bones_Official_Walkthrough..html"; navigateToURL(new URLRequest(_local6), "_blank"); break; case "comicsNext": GlobalStorage.main.changeGameState(GlobalStorage.LEVEL_CHOOSE_MENU); spaceKeyAllow = false; GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, spaceKeyAllowFunc); break; }; if ((((SimpleButton(_arg1.currentTarget).name.charAt(0) == "_")) && (spaceKeyAllow))){ _local7 = SimpleButton(_arg1.currentTarget).name; _local7 = _local7.substr(1); GlobalStorage.lvlID = int(_local7); trace(("LVL " + GlobalStorage.lvlID)); GlobalStorage.main.changeGameState(GlobalStorage.LEVEL_PLAY); spaceKeyAllow = false; GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, spaceKeyAllowFunc); }; }; } private static function getDomain():void{ var _local1:String = GlobalStorage.stageLink.loaderInfo.loaderURL; var _local2:int = (_local1.indexOf("://") + 3); var _local3:String = _local1.substr(_local2, 4); if (_local3 == "www."){ _local2 = (_local2 + 4); }; var _local4:Number = _local1.indexOf("/", _local2); var _local5:String = _local1.substring(_local2, _local4); var _local6:LocalConnection = new LocalConnection(); if (_local6.domain == "localhost"){ _local5 = "localhost"; }; var _local7 = "http://www.myfootballgames.co.uk/?utm_source="; var _local8 = "&utm_medium=referral-games&utm_campaign=zombie-soccer"; iGetDomain = ((_local7 + _local5) + _local8); sponsorUrl = iGetDomain; } public static function setVars(_arg1:MovieClip):void{ var _local3:MovieClip; var _local4:TextField; var _local2:int; while (_local2 < _arg1.numChildren) { if ((_arg1.getChildAt(_local2) is TextField)){ _local4 = (_arg1.getChildAt(_local2) as TextField); switch (_local4.name){ case "scoreTxt": _local4.text = String(ScoreManager.getTotalScore()); break; case "scoreAtLvlCompleteTxt": _local4.text = String(GlobalStorage.curLevel.curScore); break; case "lvlTxt": _local4.text = String(GlobalStorage.lvlID); break; case "bulletTxt": _local4.text = String(GlobalStorage.totallNumsOfBulletPerLvl); break; case "higScorePerLvlTxt": _local4.text = String(ScoreManager.getHighScorePerLvl(GlobalStorage.lvlID)); trace(("HigScore " + ScoreManager.getHighScorePerLvl(GlobalStorage.lvlID))); break; default: break; }; }; if ((_arg1.getChildAt(_local2) is MovieClip)){ _local3 = (_arg1.getChildAt(_local2) as MovieClip); if (_local3.name){ switch (_local3.name){ case "lvlMask": _local3.gotoAndStop(GlobalStorage.maxLvlID); break; }; }; }; _local2++; }; } public static function setScores(_arg1:int){ var _local2:TextField; var _local3:int; while (_local3 < curScreen.numChildren) { if ((curScreen.getChildAt(_local3) is TextField)){ _local2 = (curScreen.getChildAt(_local3) as TextField); switch (_local2.name){ case "scoreTxt": _local2.text = String(_arg1); break; default: break; }; }; _local3++; }; } public static function refreshBulletTxt(){ var _local1:TextField; var _local2:int; while (_local2 < curScreen.numChildren) { if ((curScreen.getChildAt(_local2) is TextField)){ _local1 = (curScreen.getChildAt(_local2) as TextField); switch (_local1.name){ case "bulletTxt": _local1.text = String(GlobalStorage.totallNumsOfBulletPerLvl); break; default: break; }; }; _local2++; }; } } }//package
Section 275
//HeadTrail (HeadTrail) package { import flash.display.*; public class HeadTrail extends MovieClip { private var trailParticlesCounter:int;// = 0 private var childIndex:int; public function HeadTrail(_arg1:int){ childIndex = _arg1; GlobalStorage.trailParticlesArray = []; initParticles(); } private function initParticles():void{ var _local1:HeadTrailParticle; var _local2 = 180; var _local3:int; while (_local3 < _local2) { _local1 = new HeadTrailParticle(); _local1.visible = true; GlobalStorage._globalLvlvMC.addChildAt(_local1, (childIndex - 1)); GlobalStorage.trailParticlesArray.push(_local1); _local3++; }; } public function removeTrail():void{ var _local1:HeadTrailParticle; for each (_local1 in GlobalStorage.trailParticlesArray) { GlobalStorage._globalLvlvMC.addChildAt(_local1, (childIndex - 1)); }; } } }//package
Section 276
//HeadTrailParticle (HeadTrailParticle) package { import flash.display.*; import com.greensock.*; public class HeadTrailParticle extends MovieClip { private var tween:TweenLite; private var skullSpeed:Number; public function HeadTrailParticle(){ initTween(); } private function initShape():void{ var _local1:Shape = new Shape(); _local1.graphics.beginFill(0xFFF000, 0.33); _local1.graphics.drawCircle(100, 100, 100); var _local2:* = _local1; GlobalStorage._globalLvlvMC.addChildAt(_local2, (GlobalStorage.skullChildNum + 1)); _local2.x = (_local2.x - (_local2.width * 0.5)); _local2.y = (_local2.y - (_local2.height * 0.5)); } private function initTween():void{ tween = new TweenLite(this, 0.75, {scaleX:0, scaleY:0, onComplete:reset}); } public function start(_arg1:Number):void{ tween.restart(); skullSpeed = _arg1; } private function reset():void{ scaleX = 1; scaleY = 1; visible = false; } } }//package
Section 277
//LDRec_palka (LDRec_palka) package { import flash.display.*; public dynamic class LDRec_palka extends MovieClip { } }//package
Section 278
//LDRec_palka2 (LDRec_palka2) package { import flash.display.*; public dynamic class LDRec_palka2 extends MovieClip { } }//package
Section 279
//LDRec_YashchikMC (LDRec_YashchikMC) package { import flash.display.*; public dynamic class LDRec_YashchikMC extends MovieClip { } }//package
Section 280
//Level (Level) package { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Controllers.*; import Box2D.Collision.Shapes.*; import flash.events.*; import flash.geom.*; import flash.display.*; import Objects.*; import flash.utils.*; import Fla.*; import Joints.*; public class Level extends Sprite { public var _LevelMC:Sprite; public var ground:b2Body; public var world:b2World; public var weightController:b2ConstantAccelController; public var lightController:b2ConstantAccelController; public var lightningController:b2ConstantAccelController; public var waterController:b2BuoyancyController; public var curScore:int;// = 1000 private var timer:Timer; private var timePerLvl:int;// = 1000 private var boardCount:int;// = 0 private var bombsArray:Array; private var scoreTime:int;// = 5 private var childNumSkull:int; private var fakeWorld:b2World; private var fakeGround:b2Body; private var graveDigger:MovieClip; public var skeletonDead:Boolean; public var winGame:Boolean; public function Level():void{ bombsArray = []; super(); GlobalStorage.curLevel = this; GlobalStorage.createViking = false; GlobalStorage.vikingRunning = false; GlobalStorage.addWater = false; GlobalStorage.win = false; boardCount = 0; skeletonDead = false; winGame = false; trace(("skeleton dead " + skeletonDead)); var _local1:Class = (GlobalStorage.stageLink.loaderInfo.applicationDomain.getDefinition(("Level" + GlobalStorage.lvlID)) as Class); trace(("GlobalStorage.lvlID Cur LVL " + GlobalStorage.lvlID)); _LevelMC = new (_local1); GlobalStorage._globalLvlvMC = _LevelMC; GlobalStorage.main.addChild(_LevelMC); GlobalStorage.skeleonsPartsArray = []; createBox2DWorld(); createBox2DObjects(); createBox2DJoints(); addSkeletonJoints2Array(); var _local2:ContactManager = new ContactManager(); GlobalStorage.world.SetContactListener(_local2); createBox2DControllers(); if (GlobalStorage.addWater){ AddBodiesToWater(); }; GlobalStorage.destroyBodiesList = new Array(); GlobalStorage.createExplosionsList = new Array(); GlobalStorage.gameUpdate = new GameUpdate(); GlobalStorage.gameLogic = new GameLogic(); GUI.addKeyListener(); GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, scoreDecrease); } private function scoreDecrease(_arg1:Event):void{ if (curScore == 1000){ GUI.setScores(curScore); }; scoreTime--; if (scoreTime == 0){ scoreTime = 5; curScore--; GUI.setScores(curScore); if (curScore <= 0){ GlobalStorage.stageLink.removeEventListener(Event.ENTER_FRAME, scoreDecrease); }; }; } public function addBonusScore(){ curScore = (curScore + GlobalStorage.bonusScore); var _local1:int = (curScore + GlobalStorage.bonusScore); trace(("curScore added " + _local1)); } private function createBox2DWorld():void{ world = new b2World(new b2Vec2(0, 10), true); GlobalStorage.gravitationForBaloon = 1; ground = world.GetGroundBody(); GlobalStorage.world = world; } private function createBox2DReverseWorld():void{ world = new b2World(new b2Vec2(0, -10), true); GlobalStorage.gravitationForBaloon = -1; ground = world.GetGroundBody(); GlobalStorage.world = world; } private function createBox2DObjects():void{ var _local1:MovieClip; var _local2:MovieClip; var _local5:Brevno; var _local6:DynamicBrevno; var _local7:GoalObject; var _local8:Ground; var _local9:DynamicRectangle; var _local10:ChainLink; var _local11:TntBarrel; var _local12:Bomb; var _local13:Monster; var _local14:Arrow; var _local15:MovingPlatformX; var _local16:MovingPlatformY; var _local17:MovingPlatformSensor; var _local18:IcePlatform; var _local19:IceDynPlatform; var _local20:StaticBrevno; var _local21:DynamicRoundObject; var _local22:SlowTimeSensor; var _local23:GoalSensor; var _local24:HandUnderGround; var _local25:SensorHandUnderGround; var _local26:Tambourine; var _local27:HandsTurnAround; var _local28:HeadSpinZombie; var _local29:Dragon; var _local30:SpikePlant; var _local31:OneHand; var _local32:PartOfTombStone; var _local33:Bottle1; var _local34:JustBarrel; var _local35:SkullForShoot; var _local36:SkeletonsHead; var _local37:SkeletonsHand; var _local38:SkeletonsLeg; var _local39:SkeletonsBody; var _local40:GraveSensor; var _local41:Rope; var _local42:Cannon; var _local43:Baloon; var _local44:BigSpike; var _local45:CarBody; var _local46:PunchBox; var _local47:PunchBoxSensor; var _local48:WindSensor; var _local49:Fan; var _local50:AirShip; var _local51:StaticBrekableRecObject; var _local52:DynamicBrekableRecObject; var _local53:Blower; var _local54:MineCart; var _local55:Saw; var _local56:Curretn; var _local57:SpikeBall; var _local58:BaloonUnpop; var _local60:String; var _local61:String; var _local62:String; var _local63:Number; var _local64:Number; var _local3:BreakablePlatform; var _local4:Skull; var _local59:int; while (_local59 < this._LevelMC.numChildren) { if ((this._LevelMC.getChildAt(_local59) is MovieClip)){ _local1 = MovieClip(_LevelMC.getChildAt(_local59)); _local60 = _local1.toString(); _local61 = _local60.substring(0, 12); switch (_local1.toString().substring(0, 12)){ case "[object DRec": _local9 = new DynamicRectangle(_local1, world, 2); break; case "[object LDRe": _local9 = new DynamicRectangle(_local1, world, 0.5); break; case "[object SRec": _local20 = new StaticBrevno(_local1, world); break; case "[object SRou": _local21 = new DynamicRoundObject(_local1, world, 1.9); break; case "[object SBRe": _local51 = new StaticBrekableRecObject(_local1, world); break; case "[object DBRe": _local52 = new DynamicBrekableRecObject(_local1, world); break; default: break; }; switch (_local60){ case "[object SkullMC]": _local4 = new Skull(_local1, world); break; case "[object SkullForShoot]": _local35 = new SkullForShoot(_local1, world); break; case "[object HandWithGun]": GlobalStorage.parrotsHand = _local1; break; case "[object GraveDigger]": graveDigger = _local1; trace((graveDigger + " Grave digger")); break; case "[object WheelMC]": _local21 = new DynamicRoundObject(_local1, world, 1); break; case "[object CarsWheelMC]": _local21 = new DynamicRoundObject(_local1, world, 1); break; case "[object BreakablePlatformMC]": _local3 = new BreakablePlatform(_local1, world); break; case "[object BrevnoMC]": _local5 = new Brevno(_local1, world, fakeWorld); break; case "[object DynamicBrevnoMC]": _local6 = new DynamicBrevno(_local1, world); break; case "[object GoalObjectMC]": _local7 = new GoalObject(_local1, world); break; case "[object GroundMC]": _local8 = new Ground(_local1, world); break; case "[object WaterPointMC]": GlobalStorage.addWater = true; GlobalStorage.waterPoint = (_local1.y / GlobalStorage.physScale); break; case "[object ChainLinkMC]": _local10 = new ChainLink(_local1, world); break; case "[object TntBarrelMC]": _local11 = new TntBarrel(_local1, world); break; case "[object BombMC]": _local12 = new Bomb(_local1, world); bombsArray.push(_local12); break; case "[object MonsterMC]": _local13 = new Monster(_local1, world); break; case "[object ArrowMC]": _local14 = new Arrow(_local1, world); break; case "[object MovingPlatformMC]": _local15 = new MovingPlatformX(_local1, world); break; case "[object MovingPlatformYMC]": _local16 = new MovingPlatformY(_local1, world); break; case "[object MovingPlatformSensorMC]": _local17 = new MovingPlatformSensor(_local1, world); break; case "[object SeaMC]": GlobalStorage.seaChildNum = _LevelMC.getChildIndex(_local1); break; case "[object DynIcePlatformMC]": _local19 = new IceDynPlatform(_local1, world); break; case "[object IcePlatformMC]": _local18 = new IcePlatform(_local1, world); break; case "[object SlowTimeSensorMC]": _local22 = new SlowTimeSensor(_local1, world); GlobalStorage.centerOfZoom = new Point(_local1.x, _local1.y); break; case "[object PlayerZombieMC]": GlobalStorage.zombiePlayer = _local1; break; case "[object GoalSensorMC]": _local23 = new GoalSensor(_local1, world); break; case "[object HandUnderGroundMC]": _local62 = _local1.name.substr(1); _local64 = 1; _local63 = Number(_local62); if (_local1.name.charAt(0) == "m"){ _local63 = (_local63 * -1); _local64 = (_local64 * -1); }; _local24 = new HandUnderGround(_local1, world, _local63, _local1.scaleX, _local64); break; case "[object sensorOfHandMC]": _local25 = new SensorHandUnderGround(_local1, world); break; case "[object TambourineMC]": _local26 = new Tambourine(_local1, world, _local1.scaleX); break; case "[object HandsTurnAroundMC]": _local27 = new HandsTurnAround(_local1, world, _local1.scaleX); break; case "[object HeadSpinZombieMC]": _local28 = new HeadSpinZombie(_local1, world, _local1.scaleX, fakeWorld); break; case "[object DragonMC]": _local29 = new Dragon(_local1, world, _local1.scaleX, _local1.name.substr(1)); break; case "[object SpikePlantMC]": _local30 = new SpikePlant(_local1, world, fakeWorld, _local1.scaleX, _local1.name.substr(1)); break; case "[object OneHandMC]": _local31 = new OneHand(_local1, world, _local1.scaleX); break; case "[object PartOfTombStoneMC]": _local32 = new PartOfTombStone(_local1, world, fakeWorld); break; case "[object Bottle1MC]": _local33 = new Bottle1(_local1, world, "Bottle1MC"); GlobalStorage.bottleObjectRemaining++; break; case "[object Bottle2MC]": _local33 = new Bottle1(_local1, world, "Bottle2MC"); GlobalStorage.bottleObjectRemaining++; break; case "[object Bottle3MC]": _local33 = new Bottle1(_local1, world, "Bottle3MC"); GlobalStorage.bottleObjectRemaining++; break; case "[object Bottle4MC]": _local33 = new Bottle1(_local1, world, "Bottle4MC"); GlobalStorage.bottleObjectRemaining++; break; case "[object Bottle5MC]": _local33 = new Bottle1(_local1, world, "Bottle5MC"); GlobalStorage.bottleObjectRemaining++; break; case "[object JustBarrelMC]": _local34 = new JustBarrel(_local1, world, _local1.scaleX); break; case "[object SkeletonsHeadMC]": _local36 = new SkeletonsHead(_local1, world); break; case "[object SkeletonsHandMC]": _local37 = new SkeletonsHand(_local1, world); break; case "[object SkeletonsLegMC]": _local38 = new SkeletonsLeg(_local1, world); break; case "[object SkeletonsBodyMC]": _local39 = new SkeletonsBody(_local1, world); GlobalStorage.skeletonsBody = _local39; break; case "[object GraveSensorMC]": _local40 = new GraveSensor(_local1, world); break; case "[object RopeMC]": _local41 = new Rope(_local1, world); break; case "[object RopeShortMC]": _local41 = new Rope(_local1, world); break; case "[object CannonMC]": _local42 = new Cannon(_local1, world); break; case "[object BaloonMC]": _local43 = new Baloon(_local1, world); break; case "[object AirShipMC]": _local50 = new AirShip(_local1, world); break; case "[object BigSpikeMC]": _local44 = new BigSpike(_local1, world); break; case "[object CarBodyMC]": _local45 = new CarBody(_local1, world); break; case "[object PunchBoxMC]": _local46 = new PunchBox(_local1, world); break; case "[object BlowerMC]": _local53 = new Blower(_local1, world); break; case "[object PunchBoxSensorMC]": _local47 = new PunchBoxSensor(_local1, world); break; case "[object WindSensorMC]": _local48 = new WindSensor(_local1, world); break; case "[object FanMC]": _local49 = new Fan(_local1, world); break; case "[object MineCartMC]": _local54 = new MineCart(_local1, world, _local1.scaleX); break; case "[object SawMC]": _local55 = new Saw(_local1, world); break; case "[object CurrentMC]": _local56 = new Curretn(_local1, world); break; case "[object SpikeBallMC]": _local57 = new SpikeBall(_local1, world); break; case "[object BaloonUnpopMC]": _local58 = new BaloonUnpop(_local1, world); break; default: break; }; }; _local59++; }; } private function addSkeletonJoints2Array():void{ var _local1:*; GlobalStorage.skeletosJointsArray = []; _local1 = GlobalStorage.skeletonsBody.GetBody().GetJointList(); while (_local1) { GlobalStorage.skeletosJointsArray.push(_local1.joint); _local1 = _local1.next; }; } private function AddBodiesToWater():void{ var _local1:b2Body = GlobalStorage.world.GetBodyList(); while (_local1) { if (_local1.GetType() == b2Body.b2_dynamicBody){ waterController.AddBody(_local1); }; _local1 = _local1.GetNext(); }; } private function createBox2DControllers():void{ if (GlobalStorage.addWater){ waterController = new b2BuoyancyController(); waterController.density = 2; waterController.linearDrag = 5; waterController.angularDrag = 2; waterController.offset = (GlobalStorage.waterPoint * -1); waterController.normal = new b2Vec2(0, -1); waterController.useDensity = true; GlobalStorage.world.AddController(waterController); }; } private function createBox2DJoints():void{ var _local6:*; var _local1:RevoluteJoint; var _local2:RevoluteJoint; var _local3:RevoluteJoint; var _local4:DistanceJoint; var _local5:int; while (_local5 < _LevelMC.numChildren) { if ((_LevelMC.getChildAt(_local5) is RevoluteJointDynamicMC)){ _local1 = new RevoluteJoint(MovieClip(_LevelMC.getChildAt(_local5)), world, "dynamic"); }; if ((_LevelMC.getChildAt(_local5) is RevoluteJointMotorMC)){ _local6 = _LevelMC.getChildAt(_local5).name.substr(1); if (_LevelMC.getChildAt(_local5).name.charAt(0) == "m"){ _local6 = (_local6 * -1); }; _local2 = new RevoluteJoint(MovieClip(_LevelMC.getChildAt(_local5)), world, "motor", _local6); trace((("Motor Joint : " + _local2) + " ")); }; if ((_LevelMC.getChildAt(_local5) is RevoluteJointStaticMC)){ _local3 = new RevoluteJoint(MovieClip(_LevelMC.getChildAt(_local5)), this.world, "static"); }; if ((_LevelMC.getChildAt(_local5) is DistanceJointMC)){ _local4 = new DistanceJoint(MovieClip(_LevelMC.getChildAt(_local5)), this.world, "static"); }; _local5++; }; } public function win():void{ if (!skeletonDead){ winGame = true; GlobalStorage.stageLink.removeEventListener(Event.ENTER_FRAME, scoreDecrease); ScoreManager.setCurScore(curScore); ScoreManager.updateScores(GlobalStorage.lvlID); GUI.removeBtnListeners(); GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, addBoardTimer); if (GlobalStorage.lvlID == GlobalStorage.maxLvlID){ GlobalStorage.maxLvlID++; GlobalStorage.sharedCache.data.maxLvlID = GlobalStorage.maxLvlID; }; GlobalStorage.gameLogic.destroy(); graveDigger.gotoAndPlay(2); trace(("WIN! " + graveDigger)); Sounds.PlaySnd("WinSound", 1); }; } public function skeletonDeath():void{ if (!winGame){ GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, skeletonDeathTimer); skeletonDead = true; trace(("skeleton dead " + skeletonDead)); }; } private function addBoardTimer(_arg1:Event):void{ boardCount++; if (boardCount == GlobalStorage.timeBeforeLvlEnd){ addBetweenLevelBoard(); }; } private function skeletonDeathTimer(_arg1:Event):void{ boardCount++; if (boardCount == GlobalStorage.timeBeforeFailScreenAppear){ GlobalStorage.stageLink.removeEventListener(Event.ENTER_FRAME, skeletonDeathTimer); if (skeletonDead){ addOutOfAmmoBoard(); }; }; } private function addOutOfAmmoBoard():void{ var _local2:MovieClip; trace("DEATH"); GlobalStorage.gameLogic.destroy(); var _local1:MovieClip = new LevelOutOfAmmoMC(); GUI.curScreen.addChild(_local1); _local2 = MovieClip(MovieClip(_local1.getChildByName("completeMC")).getChildByName("board")); GUI.addListeners(_local2); GUI.addKeyListener(); } private function addBetweenLevelBoard():void{ var _local1:MovieClip; var _local2:MovieClip; var _local3:MovieClip; var _local4:String; _local1 = new LevelCompleteMC(); GUI.curScreen.addChild(_local1); _local2 = MovieClip(MovieClip(_local1.getChildByName("completeMC")).getChildByName("board")); GUI.addListeners(_local2); GUI.setVars(_local2); boardCount = 0; GlobalStorage.stageLink.removeEventListener(Event.ENTER_FRAME, addBoardTimer); GUI.addKeyListener(); } public function destroy():void{ var _local2:Bomb; var _local1:b2Body = GlobalStorage.world.GetBodyList(); if (skeletonDead){ GlobalStorage.stageLink.removeEventListener(Event.ENTER_FRAME, skeletonDeathTimer); }; if (bombsArray.length > 0){ for each (_local2 in bombsArray) { _local2.removeBombTick(); }; }; GlobalStorage.gameUpdate.destroy(); while (_local1) { GlobalStorage.world.DestroyBody(_local1); _local1 = _local1.GetNext(); }; world = null; if (GlobalStorage.addWater){ GlobalStorage.world.DestroyController(waterController); }; if (_LevelMC){ GlobalStorage.main.removeChild(_LevelMC); _LevelMC = null; }; GlobalStorage.goalsObjectRemaining = 0; GlobalStorage.stageLink.removeEventListener(Event.ENTER_FRAME, scoreDecrease); GlobalStorage.seaChildNum = 0; GlobalStorage.alreadyHasGoals = 0; GlobalStorage.cameraMC = null; } } }//package
Section 281
//Level1 (Level1) package { import flash.display.*; public class Level1 extends Sprite { public function Level1():void{ } } }//package
Section 282
//Level10 (Level10) package { import flash.display.*; public dynamic class Level10 extends MovieClip { public var _0:RevoluteJointMotorMC; } }//package
Section 283
//Level11 (Level11) package { import flash.display.*; public dynamic class Level11 extends MovieClip { } }//package
Section 284
//Level12 (Level12) package { import flash.display.*; public dynamic class Level12 extends MovieClip { public var m20:RevoluteJointMotorMC; } }//package
Section 285
//Level13 (Level13) package { import flash.display.*; public dynamic class Level13 extends MovieClip { } }//package
Section 286
//Level14 (Level14) package { import flash.display.*; public dynamic class Level14 extends MovieClip { public var m1:RevoluteJointMotorMC; public var _0:RevoluteJointMotorMC; } }//package
Section 287
//Level15 (Level15) package { import flash.display.*; public dynamic class Level15 extends MovieClip { public var _0:RevoluteJointMotorMC; } }//package
Section 288
//Level16 (Level16) package { import flash.display.*; public dynamic class Level16 extends MovieClip { } }//package
Section 289
//Level17 (Level17) package { import flash.display.*; public dynamic class Level17 extends MovieClip { } }//package
Section 290
//Level18 (Level18) package { import flash.display.*; public dynamic class Level18 extends MovieClip { public var _0:RevoluteJointMotorMC; } }//package
Section 291
//Level19 (Level19) package { import flash.display.*; public dynamic class Level19 extends MovieClip { public var _0:RevoluteJointMotorMC; } }//package
Section 292
//Level2 (Level2) package { import flash.display.*; public dynamic class Level2 extends MovieClip { } }//package
Section 293
//Level20 (Level20) package { import flash.display.*; public dynamic class Level20 extends MovieClip { public var m10:RevoluteJointMotorMC; } }//package
Section 294
//Level21 (Level21) package { import flash.display.*; public dynamic class Level21 extends MovieClip { public var _0:RevoluteJointMotorMC; } }//package
Section 295
//Level22 (Level22) package { import flash.display.*; public dynamic class Level22 extends MovieClip { } }//package
Section 296
//Level23 (Level23) package { import flash.display.*; public dynamic class Level23 extends MovieClip { public var _0:RevoluteJointMotorMC; } }//package
Section 297
//Level24 (Level24) package { import flash.display.*; public dynamic class Level24 extends MovieClip { public var m10:RevoluteJointMotorMC; } }//package
Section 298
//Level25 (Level25) package { import flash.display.*; public dynamic class Level25 extends MovieClip { public var _0:RevoluteJointMotorMC; } }//package
Section 299
//Level26 (Level26) package { import flash.display.*; public dynamic class Level26 extends MovieClip { public var _10:RevoluteJointMotorMC; public var m10:RevoluteJointMotorMC; } }//package
Section 300
//Level27 (Level27) package { import flash.display.*; public dynamic class Level27 extends MovieClip { public var _0:RevoluteJointMotorMC; } }//package
Section 301
//Level28 (Level28) package { import flash.display.*; public dynamic class Level28 extends MovieClip { } }//package
Section 302
//Level3 (Level3) package { import flash.display.*; public dynamic class Level3 extends MovieClip { } }//package
Section 303
//Level4 (Level4) package { import flash.display.*; public dynamic class Level4 extends MovieClip { } }//package
Section 304
//Level5 (Level5) package { import flash.display.*; public dynamic class Level5 extends MovieClip { } }//package
Section 305
//Level6 (Level6) package { import flash.display.*; public dynamic class Level6 extends MovieClip { } }//package
Section 306
//Level7 (Level7) package { import flash.display.*; public dynamic class Level7 extends MovieClip { public var _0:RevoluteJointMotorMC; } }//package
Section 307
//Level8 (Level8) package { import flash.display.*; public dynamic class Level8 extends MovieClip { } }//package
Section 308
//Level9 (Level9) package { import flash.display.*; public dynamic class Level9 extends MovieClip { public var _0:RevoluteJointMotorMC; } }//package
Section 309
//LevelChooseMenuMC (LevelChooseMenuMC) package { import flash.display.*; import Fla.*; import flash.text.*; public dynamic class LevelChooseMenuMC extends MovieClip { public var _7:SimpleButton; public var FB_btn:SimpleButton; public var _8:SimpleButton; public var _9:SimpleButton; public var scoreTxt:TextField; public var _10:SimpleButton; public var _20:SimpleButton; public var _11:SimpleButton; public var _21:SimpleButton; public var _12:SimpleButton; public var _22:SimpleButton; public var _13:SimpleButton; public var _23:SimpleButton; public var _14:SimpleButton; public var toMainMenu:SimpleButton; public var _24:SimpleButton; public var _15:SimpleButton; public var _25:SimpleButton; public var _16:SimpleButton; public var _1:SimpleButton; public var _26:SimpleButton; public var _17:SimpleButton; public var _2:SimpleButton; public var TWTR_btn:SimpleButton; public var _27:SimpleButton; public var _18:SimpleButton; public var _3:SimpleButton; public var lvlMask:MaskLvlMC; public var _28:SimpleButton; public var _19:SimpleButton; public var _4:SimpleButton; public var LOGO_btn:SimpleButton; public var moreGames:SimpleButton; public var _5:SimpleButton; public var _6:SimpleButton; } }//package
Section 310
//LevelCompleteMC (LevelCompleteMC) package { import flash.display.*; import Fla.*; public class LevelCompleteMC extends MovieClip { public var completeMC:AnimateCompleteMC; } }//package
Section 311
//LevelOutOfAmmoMC (LevelOutOfAmmoMC) package { import flash.display.*; import Fla.*; public dynamic class LevelOutOfAmmoMC extends MovieClip { public var completeMC:CompleteOutOfAmmoMC; } }//package
Section 312
//LvlMenuMC (LvlMenuMC) package { import flash.display.*; import Fla.*; import flash.text.*; public dynamic class LvlMenuMC extends MovieClip { public var FB_btn:SimpleButton; public var retry:SimpleButton; public var scoreTxt:TextField; public var sound:SoundBtn; public var toLvlMenu:SimpleButton; public var higScorePerLvlTxt:TextField; public var TWTR_btn:SimpleButton; public var music:MusicBtnMC; public var helpBtn:SimpleButton; public var lvlTxt:TextField; public var LOGO_btn:SimpleButton; } }//package
Section 313
//MainMenuMC (MainMenuMC) package { import flash.display.*; import Fla.*; public dynamic class MainMenuMC extends MovieClip { public var FB_btn:SimpleButton; public var start:SimpleButton; public var sound:SoundBtn2; public var music:MusicBtnMC2; public var TWTR_btn:SimpleButton; public var LOGO_btn:SimpleButton; public var moreGames:SimpleButton; } }//package
Section 314
//MainTheme (MainTheme) package { import flash.media.*; public dynamic class MainTheme extends Sound { } }//package
Section 315
//MathUtils (MathUtils) package { import flash.geom.*; import flash.display.*; public class MathUtils extends Sprite { public static function distanceBetweenMC(_arg1:Point, _arg2:Point):int{ var _local3:Number = _arg1.x; var _local4:Number = _arg1.y; var _local5:Number = _arg2.x; var _local6:Number = _arg2.y; return (Math.sqrt((((_local3 - _local5) * (_local3 - _local5)) + ((_local4 - _local6) * (_local4 - _local6))))); } public static function getAngle(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ var _local5:Number = Math.atan2((_arg2 - _arg4), (_arg1 - _arg3)); return (_local5); } } }//package
Section 316
//Medals (Medals) package { import flash.display.*; public class Medals extends MovieClip { private var goldReqArray:Array; public var medalGotArray:Array; public var numOfShotPerLvl:Array; public var curMedal:String; public function Medals(){ goldReqArray = new Array(11, 12, 12, 11, 10, 10, 13, 11, 11, 11, 14, 11, 12, 10, 12, 12, 10, 13, 14, 18); medalGotArray = new Array(); numOfShotPerLvl = new Array(); var _local1:int; while (_local1 < GlobalStorage.totalNumOfLevels) { medalGotArray.push("none"); numOfShotPerLvl.push(0); _local1++; }; } public function medalsSet(_arg1:int, _arg2:int):void{ if (goldReqArray[(_arg2 - 1)] >= _arg1){ curMedal = "gold"; } else { if ((((goldReqArray[(_arg2 - 1)] < _arg1)) && (((goldReqArray[(_arg2 - 1)] + GlobalStorage.numOfBulletForSilver) >= _arg1)))){ curMedal = "silver"; } else { if ((goldReqArray[(_arg2 - 1)] + GlobalStorage.numOfBulletForSilver) <= _arg1){ curMedal = "bronze"; }; }; }; if (numOfShotPerLvl[(_arg2 - 1)] != 0){ if (numOfShotPerLvl[(_arg2 - 1)] > _arg1){ medalGotArray[(_arg2 - 1)] = curMedal; numOfShotPerLvl[(_arg2 - 1)] = _arg1; trace(((("numOfShotPerLvl[(numOfLvl - 1)] > numOfShots " + numOfShotPerLvl[(_arg2 - 1)]) + ">") + _arg1)); }; } else { numOfShotPerLvl[(_arg2 - 1)] = _arg1; medalGotArray[(_arg2 - 1)] = curMedal; trace("Just curMedal"); }; trace(("numOfShotPerLvl[(numOfLvl - 1)] " + numOfShotPerLvl[(_arg2 - 1)])); GlobalStorage.sharedCache.data.bullets = numOfShotPerLvl; GlobalStorage.sharedCache.data.medals = medalGotArray; } public function medalsGet(_arg1:int):String{ return (String(medalGotArray[(_arg1 - 1)])); } } }//package
Section 317
//MineCartMC (MineCartMC) package { import flash.display.*; public dynamic class MineCartMC extends MovieClip { } }//package
Section 318
//MochiBot (MochiBot) package { import flash.display.*; import flash.net.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ if (Security.sandboxType == "localWithFile"){ return (null); }; var _local3:MochiBot = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); var _local4 = "http://core.mochibot.com/my/core.swf"; var _local5:URLVariables = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; var _local6:String = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; var _local7:URLRequest = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; var _local8:Loader = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 319
//MovingPlatformMC (MovingPlatformMC) package { import flash.display.*; public dynamic class MovingPlatformMC extends MovieClip { } }//package
Section 320
//MovingPlatformSensorMC (MovingPlatformSensorMC) package { import flash.display.*; public class MovingPlatformSensorMC extends MovieClip { public function MovingPlatformSensorMC(){ this.visible = false; } } }//package
Section 321
//MovingPlatformYMC (MovingPlatformYMC) package { import flash.display.*; public dynamic class MovingPlatformYMC extends MovieClip { } }//package
Section 322
//Music (Music) package { import flash.events.*; import flash.geom.*; import flash.display.*; import flash.media.*; import flash.utils.*; public dynamic class Music { private static var parellelSound:Object; private static var parellelSoundChannell:SoundChannel; static var t1:SoundTransform = new SoundTransform(); static var curCh:SoundChannel; static var timerVolFader:Timer = new Timer(10); static var mus:Object; public static var vol:Number = 0; public static var curMusName:String = ""; public static var volFadeSpeed:Number = 0.05; static var offVol:Number = 0; public static var musEnable:Boolean = true; static var curVol:Number = 0; static var offCh:SoundChannel; static var curPos:Number = 0; static var isplayed:Boolean = false; static var t2:SoundTransform = new SoundTransform(); public static function init(){ timerVolFader.stop(); mus = new Object(); mus["MainTheme"] = new MainTheme(); } public static function played(_arg1:Boolean):void{ if (_arg1 == isplayed){ return; }; if (_arg1){ if (curMusName != ""){ fadeTo(curMusName); }; } else { isplayed = false; if (curCh){ curCh.stop(); curPos = curCh.position; }; if (offCh){ offCh.stop(); }; offVol = 0; curVol = vol; if (timerVolFader.running){ timerVolFader.stop(); timerVolFader.removeEventListener(TimerEvent.TIMER, timerVolFader_Timer); }; }; } public static function fadeTo(_arg1:String){ var _local2:*; _local2 = null; curMusName = _arg1; if (!musEnable){ return; }; isplayed = true; _local2 = new SoundTransform(); _local2.volume = 0; if (offCh){ offCh.stop(); }; offCh = curCh; curCh = mus[_arg1].play(0, int.MAX_VALUE, _local2); curVol = 0; offVol = vol; if (!timerVolFader.running){ timerVolFader.addEventListener(TimerEvent.TIMER, timerVolFader_Timer, false, 0, true); timerVolFader.start(); }; } public static function setVolume(_arg1:Number):void{ t2.volume = _arg1; curCh.soundTransform = t2; trace("SET NEW VOLUME"); } public static function timerVolFader_Timer(_arg1:TimerEvent):void{ if (offCh != null){ if (offVol > 0){ offVol = (offVol - volFadeSpeed); } else { offVol = 0; }; t1.volume = offVol; offCh.soundTransform = t1; }; if (((!((curCh == null))) && ((((offVol < (vol / 2))) || ((offCh == null)))))){ if (curVol < vol){ curVol = (curVol + volFadeSpeed); } else { curVol = vol; }; t2.volume = curVol; curCh.soundTransform = t2; }; if (curVol > vol){ if (offCh != null){ offCh.stop(); }; timerVolFader.stop(); timerVolFader.removeEventListener(TimerEvent.TIMER, timerVolFader_Timer); }; } vol = 0.2; volFadeSpeed = 0.5; musEnable = true; curMusName = ""; curVol = 0; curPos = 0; offVol = 0; isplayed = false; } }//package
Section 323
//Ouch (Ouch) package { import flash.media.*; public dynamic class Ouch extends Sound { } }//package
Section 324
//Porh (Porh) package { import flash.media.*; public dynamic class Porh extends Sound { } }//package
Section 325
//Porh1 (Porh1) package { import flash.media.*; public dynamic class Porh1 extends Sound { } }//package
Section 326
//PreloaderMine (PreloaderMine) package { import flash.events.*; import flash.display.*; import flash.text.*; import flash.net.*; public class PreloaderMine extends MovieClip { public var btn_preloader:SimpleButton; public var mc_Loadbarre:MovieClip; private var mainClassForCompiller:VikingMain; private var lockedUrlsArray:Array; public function PreloaderMine():void{ lockedUrlsArray = ["juegosgratis.com", "localhost", "osinski.ws"]; super(); startPreloader(); } private function checkSiteLock():void{ if (CheckDomain(GetDomain(), lockedUrlsArray)){ startPreloader(); }; } private function CheckDomain(_arg1:String, _arg2:Array):Boolean{ var _local4:int; var _local3:int; while (_local3 < _arg2.length) { _local4 = _arg1.indexOf(_arg2[_local3]); if (_local4 != -1){ if (_local4 == 0){ return (true); }; if (_arg1.charAt((_local4 - 1)) == "."){ return (true); }; }; _local3++; }; return (false); } private function GetDomain():String{ var _local1:LocalConnection = new LocalConnection(); if (_local1.domain == "localhost"){ return ("localhost"); }; var _local2:String = stage.loaderInfo.loaderURL; var _local3:int = (_local2.indexOf("://") + 3); var _local4:String = _local2.substr(_local3, 4); if (_local4 == "www."){ _local3 = (_local3 + 4); }; var _local5:Number = _local2.indexOf("/", _local3); var _local6:String = _local2.substring(_local3, _local5); return (_local6); } private function startPreloader(){ addEventListener(Event.ENTER_FRAME, this.checkFrame); if (btn_preloader != null){ btn_preloader.addEventListener(MouseEvent.MOUSE_DOWN, clickOnPreloaderScreen); }; } private function clickOnPreloaderScreen(_arg1:MouseEvent):void{ navigateToURL(new URLRequest(GlobalStorage.sponsorUrlAtGameStart), "_blank"); } private function checkFrame(_arg1:Event):void{ var _local4:String; var _local5:Number; var _local2:Number = stage.loaderInfo.bytesLoaded; var _local3:Number = stage.loaderInfo.bytesTotal; if ((((_local3 > 0)) && (!((loaderInfo.bytesLoaded == loaderInfo.bytesTotal))))){ _local5 = (loaderInfo.bytesLoaded / loaderInfo.bytesTotal); if (mc_Loadbarre != null){ mc_Loadbarre.gotoAndStop(Math.round((_local5 * 300))); trace(("frame nm " + Math.round((_local5 * 300)))); }; trace(("loadLeft: " + _local5)); }; if (currentFrame == totalFrames){ trace("StartUp"); stop(); startup(); }; } private function startup():void{ var _local1:Class = (loaderInfo.applicationDomain.getDefinition("VikingMain") as Class); removeListeners(); if (parent == stage){ stage.addChildAt((new (_local1) as DisplayObject), 0); } else { addChildAt((new (_local1) as DisplayObject), 0); }; } private function removeListeners():void{ removeEventListener(Event.ENTER_FRAME, this.checkFrame); if (btn_preloader != null){ btn_preloader.removeEventListener(MouseEvent.MOUSE_DOWN, clickOnPreloaderScreen); }; } } }//package
Section 327
//PunchSound (PunchSound) package { import flash.media.*; public dynamic class PunchSound extends Sound { } }//package
Section 328
//RevoluteJointDynamicMC (RevoluteJointDynamicMC) package { import flash.display.*; public class RevoluteJointDynamicMC extends MovieClip { public function RevoluteJointDynamicMC(){ this.visible = false; } } }//package
Section 329
//RevoluteJointMotorMC (RevoluteJointMotorMC) package { import flash.display.*; public class RevoluteJointMotorMC extends MovieClip { public function RevoluteJointMotorMC(){ this.visible = false; } } }//package
Section 330
//RevoluteJointStaticMC (RevoluteJointStaticMC) package { import flash.display.*; public class RevoluteJointStaticMC extends MovieClip { public function RevoluteJointStaticMC(){ this.visible = false; } } }//package
Section 331
//SawSound (SawSound) package { import flash.media.*; public dynamic class SawSound extends Sound { } }//package
Section 332
//ScoreManager (ScoreManager) package { import flash.display.*; public class ScoreManager { private static var curScreen:DisplayObjectContainer; private static var curScore:int; private static var scoresArray:Array; private static var highScoresArray:Array; private static var totalScores:int; public static function initScores():void{ var _local1:int; scoresArray = new Array(); highScoresArray = new Array(); while (_local1 < GlobalStorage.totalNumOfLevels) { scoresArray.push(0); highScoresArray.push(0); _local1++; }; } public static function setCurScore(_arg1:int):void{ curScore = _arg1; } public static function updateScores(_arg1:int):Boolean{ var _local2:int; if (curScore > scoresArray[(_arg1 - 1)]){ scoresArray[(_arg1 - 1)] = curScore; highScoresArray[(_arg1 - 1)] = curScore; curScore = 0; totalScores = 0; _local2 = 0; while (_local2 < scoresArray.length) { totalScores = (totalScores + int(scoresArray[_local2])); _local2++; }; GlobalStorage.sharedCache.data.scores = scoresArray; return (true); }; totalScores = 0; _local2 = 0; while (_local2 < scoresArray.length) { totalScores = (totalScores + int(scoresArray[_local2])); _local2++; }; return (false); } public static function getTotalScore():int{ return (totalScores); } public static function getHighScorePerLvl(_arg1:int):int{ var _local2:Number = scoresArray[(_arg1 - 1)]; trace(("highcore in scoremanager" + _local2)); return (_local2); } public static function SetScoresArray(_arg1:Array):void{ var _local2:int; scoresArray = _arg1; totalScores = 0; while (_local2 < scoresArray.length) { totalScores = (totalScores + int(scoresArray[_local2])); _local2++; }; } } }//package
Section 333
//Scream (Scream) package { import flash.media.*; public dynamic class Scream extends Sound { } }//package
Section 334
//SkeletonDeathSound1 (SkeletonDeathSound1) package { import flash.media.*; public dynamic class SkeletonDeathSound1 extends Sound { } }//package
Section 335
//Sounds (Sounds) package { import flash.events.*; import flash.geom.*; import flash.display.*; import flash.media.*; import flash.utils.*; public dynamic class Sounds { public static var vol:Number = 0.3; static var snd:Object; public static var sndEnable:Boolean = true; public static function init(){ snd = new Object(); snd["Flame"] = new Flame(); snd["Drum"] = new Drum(); snd["BaloonPops"] = new BaloonPops1(); snd["Saw"] = new SawSound(); snd["Punch"] = new PunchSound(); snd["Tok"] = new TokSound(); snd["Porh"] = new Porh(); snd["SkeletonDeath"] = new SkeletonDeathSound1(); snd["CannonShot"] = new CannonSound8(); snd["WoodBoom"] = new WoodBoom1(); snd["AeroOn"] = new AeroOn(); snd["AeroOff"] = new AeroOff(); snd["CarOff"] = new CarOff(); snd["CarOn"] = new CarOn(); snd["FanOn"] = new FanOn(); snd["FanOff"] = new FanOff(); snd["WinSound"] = new WinSound(); snd["Scream"] = new Scream(); snd["Ouch"] = new Ouch(); snd["Tuk"] = new Tuk(); } public static function PlaySnd(_arg1:String, _arg2:Number=1):void{ var _local3:*; _local3 = null; if (((!(sndEnable)) || ((vol < 0.001)))){ return; }; _local3 = new SoundTransform(); _local3.volume = _arg2; snd[_arg1].play(0, 0, _local3); if (_arg1 == "TimeOut"){ trace("begin plzy normal"); }; } private static function playNormal(_arg1:Event):void{ Music.setVolume(0.2); } public static function StopSnd(_arg1:String):void{ snd[_arg1].stop; trace(("stopSnd " + _arg1)); } vol = 0.3; sndEnable = true; } }//package
Section 336
//SpikeBallMC (SpikeBallMC) package { import flash.display.*; public dynamic class SpikeBallMC extends MovieClip { } }//package
Section 337
//SRec_ElectricityBoxMC (SRec_ElectricityBoxMC) package { import flash.display.*; public dynamic class SRec_ElectricityBoxMC extends MovieClip { } }//package
Section 338
//SRec_stone1 (SRec_stone1) package { import flash.display.*; public dynamic class SRec_stone1 extends MovieClip { } }//package
Section 339
//SRec_stone2 (SRec_stone2) package { import flash.display.*; public dynamic class SRec_stone2 extends MovieClip { } }//package
Section 340
//SRoundBall (SRoundBall) package { import flash.display.*; public dynamic class SRoundBall extends MovieClip { } }//package
Section 341
//TNTExplosion (TNTExplosion) package { import flash.media.*; public dynamic class TNTExplosion extends Sound { } }//package
Section 342
//TokSound (TokSound) package { import flash.media.*; public dynamic class TokSound extends Sound { } }//package
Section 343
//Tuk (Tuk) package { import flash.media.*; public dynamic class Tuk extends Sound { } }//package
Section 344
//WheelMC (WheelMC) package { import flash.display.*; public dynamic class WheelMC extends MovieClip { } }//package
Section 345
//VikingMain (VikingMain) package { import flash.events.*; import flash.display.*; import flash.media.*; import Fla.*; import flash.net.*; import ru.antkarlov.animation.*; public class VikingMain extends MovieClip { private var tempWaitChangeGameState:int; private var medals:Medals; public function VikingMain():void{ if (stage){ this.init(); } else { addEventListener(Event.ADDED_TO_STAGE, this.init); }; } private function init(_arg1:Event=null):void{ removeEventListener(Event.ADDED_TO_STAGE, this.init); medals = new Medals(); GlobalStorage.medals = medals; GlobalStorage.stageLink = stage; GlobalStorage.main = this; ScoreManager.initScores(); GlobalStorage.sharedCache = SharedObject.getLocal("BuryMyBones"); if (GlobalStorage.sharedCache.data.maxLvlID){ GlobalStorage.maxLvlID = int(GlobalStorage.sharedCache.data.maxLvlID); }; if (GlobalStorage.sharedCache.data.scores){ ScoreManager.SetScoresArray((GlobalStorage.sharedCache.data.scores as Array)); }; if (GlobalStorage.sharedCache.data.medals){ GlobalStorage.medals.medalGotArray = (GlobalStorage.sharedCache.data.medals as Array); }; if (GlobalStorage.sharedCache.data.bullets){ GlobalStorage.medals.numOfShotPerLvl = (GlobalStorage.sharedCache.data.bullets as Array); }; GlobalStorage.splashScreen = new SplashSoGood(); GlobalStorage.stageLink.addChild(GlobalStorage.splashScreen); MochiBot.track(this, "447aa017"); } public function StartGame():void{ trace("StartGame"); Sounds.init(); Music.init(); Music.fadeTo("MainTheme"); Music.played(true); GlobalStorage.stageLink.removeChild(GlobalStorage.splashScreen); changeGameState(GlobalStorage.MAIN_MENU); } private function stratSplash(_arg1:Event):void{ GlobalStorage.waitSplash--; if (GlobalStorage.waitSplash == 0){ GlobalStorage.stageLink.removeChild(GlobalStorage.splashScreen); GlobalStorage.stageLink.removeEventListener(Event.ENTER_FRAME, stratSplash); changeGameState(GlobalStorage.MAIN_MENU); }; } public function changeGameState(_arg1:int):void{ GlobalStorage.curState = _arg1; tempWaitChangeGameState = GlobalStorage.waitChangeGameState; GlobalStorage.curZastavka = new ZastavkaMC2(); GlobalStorage.stageLink.addChild(GlobalStorage.curZastavka); GlobalStorage.stageLink.addEventListener(Event.ENTER_FRAME, waitChangeGameState); } private function waitChangeGameState(_arg1:Event):void{ tempWaitChangeGameState--; if (tempWaitChangeGameState == 0){ GlobalStorage.stageLink.removeChild(GlobalStorage.curZastavka); GlobalStorage.stageLink.removeEventListener(Event.ENTER_FRAME, waitChangeGameState); }; if (tempWaitChangeGameState == (GlobalStorage.waitChangeGameState / 2)){ if (GlobalStorage.curLevel){ GlobalStorage.curLevel.destroy(); }; switch (GlobalStorage.curState){ case GlobalStorage.MAIN_MENU: GUI.newScreen(GlobalStorage.curState); break; case GlobalStorage.LEVEL_CHOOSE_MENU: GUI.newScreen(GlobalStorage.curState); break; case GlobalStorage.COMICS_SCREEN: GUI.newScreen(GlobalStorage.curState); break; case GlobalStorage.LEVEL_PLAY: if (GlobalStorage.lvlID > GlobalStorage.totalNumOfLevels){ GUI.newScreen(GlobalStorage.LEVEL_CHOOSE_MENU); break; }; new Level(); GUI.newScreen(GlobalStorage.curState); break; }; }; } } }//package
Section 346
//VikingMC (VikingMC) package { import flash.display.*; public class VikingMC extends MovieClip { public function VikingMC(){ addFrameScript(0, frame1, 41, frame42, 82, frame83); } private function frame1():void{ stop(); } private function frame42():void{ stop(); } private function frame83():void{ stop(); } } }//package
Section 347
//WinSound (WinSound) package { import flash.media.*; public dynamic class WinSound extends Sound { } }//package
Section 348
//WoodBoom (WoodBoom) package { import flash.media.*; public dynamic class WoodBoom extends Sound { } }//package
Section 349
//WoodBoom1 (WoodBoom1) package { import flash.media.*; public dynamic class WoodBoom1 extends Sound { } }//package
Section 350
//WoodHit (WoodHit) package { import flash.media.*; public dynamic class WoodHit extends Sound { } }//package
Section 351
//ZastavkaMC (ZastavkaMC) package { import flash.display.*; public dynamic class ZastavkaMC extends MovieClip { } }//package
Section 352
//ZastavkaMC2 (ZastavkaMC2) package { import flash.display.*; public dynamic class ZastavkaMC2 extends MovieClip { } }//package

Library Items

Symbol 1 GraphicUsed by:Timeline
Symbol 2 GraphicUsed by:142  Timeline
Symbol 3 FontUsed by:4 5 98 102
Symbol 4 TextUses:3Used by:142  Timeline
Symbol 5 TextUses:3Used by:142  Timeline
Symbol 6 GraphicUsed by:20 184
Symbol 7 GraphicUsed by:12 184
Symbol 8 GraphicUsed by:11 184
Symbol 9 GraphicUsed by:11 184
Symbol 10 GraphicUsed by:11 184
Symbol 11 MovieClipUses:8 9 10Used by:12
Symbol 12 MovieClipUses:7 11Used by:20
Symbol 13 GraphicUsed by:17 184
Symbol 14 GraphicUsed by:17 184
Symbol 15 GraphicUsed by:17 184
Symbol 16 GraphicUsed by:17 184
Symbol 17 MovieClipUses:13 14 15 16Used by:20
Symbol 18 GraphicUsed by:19 184
Symbol 19 MovieClipUses:18Used by:20
Symbol 20 MovieClipUses:6 12 17 19Used by:142 184  Timeline
Symbol 21 GraphicUsed by:142  Timeline
Symbol 22 GraphicUsed by:27
Symbol 23 FontUsed by:24
Symbol 24 TextUses:23Used by:27
Symbol 25 GraphicUsed by:27
Symbol 26 GraphicUsed by:27
Symbol 27 MovieClip {BuryMyBones_JuegosGratis_NoLock_fla.loader_6}Uses:22 24 25 26Used by:Timeline
Symbol 28 GraphicUsed by:29
Symbol 29 ButtonUses:28Used by:142  Timeline
Symbol 30 Sound {WoodHit}
Symbol 31 Sound {WoodBoom1}
Symbol 32 Sound {WoodBoom}
Symbol 33 Sound {WinSound}
Symbol 34 Sound {Tuk}
Symbol 35 Sound {TokSound}
Symbol 36 Sound {CannonSound8}
Symbol 37 Sound {SkeletonDeathSound1}
Symbol 38 Sound {Scream}
Symbol 39 Sound {SawSound}
Symbol 40 Sound {PunchSound}
Symbol 41 Sound {Porh}
Symbol 42 Sound {Porh1}
Symbol 43 Sound {Ouch}
Symbol 44 Sound {Flame}
Symbol 45 Sound {FanOn}
Symbol 46 Sound {FanOff}
Symbol 47 Sound {Drum}
Symbol 48 Sound {MainTheme}
Symbol 49 Sound {CarOn1}
Symbol 50 Sound {CarOn}
Symbol 51 Sound {CarOff}
Symbol 52 Sound {CannonSound1}
Symbol 53 Sound {CannonSound}
Symbol 54 Sound {BombExplosion}
Symbol 55 Sound {TNTExplosion}
Symbol 56 Sound {BaloonPops}
Symbol 57 Sound {BaloonPops1}
Symbol 58 Sound {AeroOn}
Symbol 59 Sound {AeroOff}
Symbol 60 GraphicUsed by:61 919
Symbol 61 MovieClip {Fla.SizeMeterMC}Uses:60
Symbol 62 GraphicUsed by:63
Symbol 63 MovieClip {Fla.ShipSensorMC}Uses:62
Symbol 64 GraphicUsed by:65 523
Symbol 65 MovieClip {Fla.sensorOfHandMC}Uses:64
Symbol 66 GraphicUsed by:67
Symbol 67 ButtonUses:66Used by:68
Symbol 68 MovieClip {ZastavkaMC2}Uses:67
Symbol 69 GraphicUsed by:92
Symbol 70 GraphicUsed by:92
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 GraphicUsed by:92
Symbol 77 GraphicUsed 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 GraphicUsed by:92
Symbol 84 GraphicUsed 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 GraphicUsed by:92
Symbol 91 GraphicUsed by:92
Symbol 92 MovieClip {ZastavkaMC}Uses:69 70 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:143
Symbol 94 GraphicUsed by:142
Symbol 95 GraphicUsed by:96 901
Symbol 96 ButtonUses:95Used by:142
Symbol 97 GraphicUsed by:100
Symbol 98 TextUses:3Used by:100
Symbol 99 GraphicUsed by:100
Symbol 100 ButtonUses:97 98 99Used by:142
Symbol 101 GraphicUsed by:104
Symbol 102 TextUses:3Used by:104
Symbol 103 GraphicUsed by:104
Symbol 104 ButtonUses:101 102 103Used by:142
Symbol 105 GraphicUsed by:142
Symbol 106 SoundUsed by:142
Symbol 107 GraphicUsed by:142
Symbol 108 GraphicUsed by:113
Symbol 109 GraphicUsed by:113
Symbol 110 GraphicUsed by:113
Symbol 111 GraphicUsed by:113
Symbol 112 GraphicUsed by:113
Symbol 113 MovieClip {BuryMyBones_JuegosGratis_NoLock_fla.stonesJUMP_66}Uses:108 109 110 111 112Used by:142
Symbol 114 SoundUsed by:142
Symbol 115 SoundUsed by:142
Symbol 116 GraphicUsed by:120
Symbol 117 GraphicUsed by:120
Symbol 118 GraphicUsed by:120
Symbol 119 GraphicUsed by:120
Symbol 120 MovieClip {BuryMyBones_JuegosGratis_NoLock_fla.eggbreak_67}Uses:116 117 118 119Used by:142
Symbol 121 SoundUsed by:142
Symbol 122 SoundUsed by:142
Symbol 123 SoundUsed by:142
Symbol 124 GraphicUsed by:142
Symbol 125 SoundUsed by:142
Symbol 126 GraphicUsed by:142
Symbol 127 SoundUsed by:142
Symbol 128 GraphicUsed by:142
Symbol 129 GraphicUsed by:142
Symbol 130 GraphicUsed by:131
Symbol 131 MovieClipUses:130Used by:132
Symbol 132 MovieClip {BuryMyBones_JuegosGratis_NoLock_fla.star_mc_69}Uses:131Used by:139
Symbol 133 GraphicUsed by:134 914
Symbol 134 MovieClipUses:133Used by:135
Symbol 135 MovieClip {BuryMyBones_JuegosGratis_NoLock_fla.shade_mc_71}Uses:134Used by:139
Symbol 136 GraphicUsed by:137
Symbol 137 MovieClipUses:136Used by:138
Symbol 138 MovieClip {BuryMyBones_JuegosGratis_NoLock_fla.star_s_mc_73}Uses:137Used by:139
Symbol 139 MovieClipUses:132 135 138Used by:142
Symbol 140 SoundUsed by:142
Symbol 141 GraphicUsed by:142
Symbol 142 MovieClip {Fla.IntroAnimation}Uses:94 2 4 5 20 21 96 29 100 104 105 106 107 113 114 115 120 121 122 123 124 125 126 127 128 129 139 140 141Used by:143
Symbol 143 MovieClip {Fla.SplashSoGood}Uses:93 142
Symbol 144 MovieClipUsed by:145
Symbol 145 MovieClip {Fla.MedalsForLvlMC}Uses:144
Symbol 146 GraphicUsed by:153
Symbol 147 GraphicUsed by:153
Symbol 148 FontUsed by:149 151 157 159 187 189 195 197
Symbol 149 EditableTextUses:148Used by:153
Symbol 150 GraphicUsed by:153
Symbol 151 EditableTextUses:148Used by:153
Symbol 152 GraphicUsed by:153
Symbol 153 ButtonUses:146 147 149 150 151 152Used by:162
Symbol 154 GraphicUsed by:161
Symbol 155 GraphicUsed by:161
Symbol 156 GraphicUsed by:161
Symbol 157 EditableTextUses:148Used by:161
Symbol 158 GraphicUsed by:161
Symbol 159 EditableTextUses:148Used by:161
Symbol 160 GraphicUsed by:161
Symbol 161 ButtonUses:154 155 156 157 158 159 160Used by:162
Symbol 162 MovieClip {Fla.SoundBtn2}Uses:153 161Used by:201
Symbol 163 BitmapUsed by:164 306 591 903 1001 1053 1065 1097 1181 1195 1201 1205 1211 1218 1236 1248 1260 1269 1279 1287 1295 1303 1309 1319 1325 1332 1341 1354 1364
Symbol 164 GraphicUses:163Used by:201
Symbol 165 GraphicUsed by:172
Symbol 166 FontUsed by:167 169 265 267 296 298 308 310 313 317 318 320 322 327 333 335 340 342 347 349 354 360 362 367 369 374 376 381 383 388 390 395 397 402 404 409 411 416 418 423 425 430 432 437 439 444 446 451 453 458 460 465 467 472 474 479 481 486 488 493 495 500 502 507 509
Symbol 167 TextUses:166Used by:172
Symbol 168 GraphicUsed by:172
Symbol 169 TextUses:166Used by:172
Symbol 170 GraphicUsed by:172
Symbol 171 GraphicUsed by:172
Symbol 172 ButtonUses:165 167 168 169 170 171Used by:201 518
Symbol 173 GraphicUsed by:177
Symbol 174 GraphicUsed by:177
Symbol 175 GraphicUsed by:177
Symbol 176 GraphicUsed by:177
Symbol 177 ButtonUses:173 174 175 176Used by:201
Symbol 178 GraphicUsed by:180
Symbol 179 GraphicUsed by:180
Symbol 180 ButtonUses:178 179Used by:201 261 288 303 518
Symbol 181 GraphicUsed by:183
Symbol 182 GraphicUsed by:183
Symbol 183 ButtonUses:181 182Used by:201 261 288 303 518
Symbol 184 ButtonUses:20 6 7 8 9 10 13 14 15 16 18Used by:201 261 288 303 518
Symbol 185 GraphicUsed by:191
Symbol 186 GraphicUsed by:191
Symbol 187 EditableTextUses:148Used by:191
Symbol 188 GraphicUsed by:191
Symbol 189 EditableTextUses:148Used by:191
Symbol 190 GraphicUsed by:191
Symbol 191 ButtonUses:185 186 187 188 189 190Used by:200
Symbol 192 GraphicUsed by:199
Symbol 193 GraphicUsed by:199
Symbol 194 GraphicUsed by:199
Symbol 195 EditableTextUses:148Used by:199
Symbol 196 GraphicUsed by:199
Symbol 197 EditableTextUses:148Used by:199
Symbol 198 GraphicUsed by:199
Symbol 199 ButtonUses:192 193 194 195 196 197 198Used by:200
Symbol 200 MovieClip {Fla.MusicBtnMC2}Uses:191 199Used by:201
Symbol 201 MovieClip {MainMenuMC}Uses:164 172 177 180 183 184 162 200
Symbol 202 GraphicUsed by:206
Symbol 203 GraphicUsed by:206
Symbol 204 GraphicUsed by:206
Symbol 205 GraphicUsed by:206
Symbol 206 ButtonUses:202 203 204 205Used by:212
Symbol 207 GraphicUsed by:211
Symbol 208 GraphicUsed by:211
Symbol 209 GraphicUsed by:211
Symbol 210 GraphicUsed by:211
Symbol 211 ButtonUses:207 208 209 210Used by:212
Symbol 212 MovieClip {Fla.SoundBtn}Uses:206 211Used by:261
Symbol 213 FontUsed by:214 215 216 217 259 260
Symbol 214 EditableTextUses:213Used by:261
Symbol 215 EditableTextUses:213Used by:261
Symbol 216 TextUses:213Used by:261
Symbol 217 TextUses:213Used by:261
Symbol 218 GraphicUsed by:226
Symbol 219 GraphicUsed by:226
Symbol 220 FontUsed by:221 231 233 241 242
Symbol 221 TextUses:220Used by:226
Symbol 222 GraphicUsed by:226
Symbol 223 GraphicUsed by:226
Symbol 224 GraphicUsed by:226
Symbol 225 GraphicUsed by:226
Symbol 226 ButtonUses:218 219 221 222 223 224 225Used by:261
Symbol 227 GraphicUsed by:238
Symbol 228 FontUsed by:229
Symbol 229 TextUses:228Used by:238
Symbol 230 GraphicUsed by:238
Symbol 231 TextUses:220Used by:238
Symbol 232 GraphicUsed by:238
Symbol 233 TextUses:220Used by:238
Symbol 234 GraphicUsed by:238
Symbol 235 GraphicUsed by:238
Symbol 236 GraphicUsed by:238
Symbol 237 GraphicUsed by:238
Symbol 238 ButtonUses:227 229 230 231 232 233 234 235 236 237Used by:261
Symbol 239 GraphicUsed by:247
Symbol 240 GraphicUsed by:247
Symbol 241 TextUses:220Used by:247
Symbol 242 TextUses:220Used by:247
Symbol 243 GraphicUsed by:247
Symbol 244 GraphicUsed by:247
Symbol 245 GraphicUsed by:247
Symbol 246 GraphicUsed by:247
Symbol 247 ButtonUses:239 240 241 242 243 244 245 246Used by:261
Symbol 248 GraphicUsed by:252
Symbol 249 GraphicUsed by:252
Symbol 250 GraphicUsed by:252
Symbol 251 GraphicUsed by:252
Symbol 252 ButtonUses:248 249 250 251Used by:258
Symbol 253 GraphicUsed by:257
Symbol 254 GraphicUsed by:257
Symbol 255 GraphicUsed by:257
Symbol 256 GraphicUsed by:257
Symbol 257 ButtonUses:253 254 255 256Used by:258
Symbol 258 MovieClip {Fla.MusicBtnMC}Uses:252 257Used by:261
Symbol 259 EditableTextUses:213Used by:261
Symbol 260 TextUses:213Used by:261
Symbol 261 MovieClip {LvlMenuMC}Uses:214 215 216 217 226 238 247 258 212 259 260 180 183 184
Symbol 262 GraphicUsed by:289
Symbol 263 GraphicUsed by:288
Symbol 264 GraphicUsed by:275
Symbol 265 TextUses:166Used by:275
Symbol 266 GraphicUsed by:275
Symbol 267 TextUses:166Used by:275
Symbol 268 GraphicUsed by:275
Symbol 269 FontUsed by:270 273
Symbol 270 TextUses:269Used by:275
Symbol 271 GraphicUsed by:275
Symbol 272 GraphicUsed by:275
Symbol 273 TextUses:269Used by:275
Symbol 274 GraphicUsed by:275
Symbol 275 ButtonUses:264 265 266 267 268 270 271 272 273 274Used by:288 303
Symbol 276 GraphicUsed by:280
Symbol 277 GraphicUsed by:280
Symbol 278 GraphicUsed by:280
Symbol 279 GraphicUsed by:280
Symbol 280 ButtonUses:276 277 278 279Used by:288 303
Symbol 281 GraphicUsed by:287
Symbol 282 FontUsed by:283
Symbol 283 TextUses:282Used by:287
Symbol 284 GraphicUsed by:287
Symbol 285 GraphicUsed by:287
Symbol 286 GraphicUsed by:287
Symbol 287 ButtonUses:281 283 284 285 286Used by:288 303
Symbol 288 MovieClipUses:263 275 280 287 180 183 184Used by:289
Symbol 289 MovieClip {Fla.CompleteOutOfAmmoMC}Uses:262 288Used by:290
Symbol 290 MovieClip {LevelOutOfAmmoMC}Uses:289
Symbol 291 GraphicUsed by:304
Symbol 292 GraphicUsed by:303
Symbol 293 FontUsed by:294
Symbol 294 EditableTextUses:293Used by:303
Symbol 295 GraphicUsed by:301
Symbol 296 TextUses:166Used by:301
Symbol 297 GraphicUsed by:301
Symbol 298 TextUses:166Used by:301
Symbol 299 GraphicUsed by:301
Symbol 300 GraphicUsed by:301
Symbol 301 ButtonUses:295 296 297 298 299 300Used by:303
Symbol 302 GraphicUsed by:303
Symbol 303 MovieClipUses:292 294 301 275 280 287 180 183 184 302Used by:304
Symbol 304 MovieClip {Fla.AnimateCompleteMC}Uses:291 303Used by:305
Symbol 305 MovieClip {LevelCompleteMC}Uses:304
Symbol 306 GraphicUses:163Used by:518
Symbol 307 GraphicUsed by:315
Symbol 308 TextUses:166Used by:315
Symbol 309 GraphicUsed by:315
Symbol 310 TextUses:166Used by:315
Symbol 311 GraphicUsed by:315
Symbol 312 GraphicUsed by:315
Symbol 313 TextUses:166Used by:315
Symbol 314 GraphicUsed by:315
Symbol 315 ButtonUses:307 308 309 310 311 312 313 314Used by:518
Symbol 316 GraphicUsed by:518
Symbol 317 TextUses:166Used by:518
Symbol 318 EditableTextUses:166Used by:518
Symbol 319 GraphicUsed by:325
Symbol 320 TextUses:166Used by:325
Symbol 321 GraphicUsed by:325
Symbol 322 TextUses:166Used by:325
Symbol 323 GraphicUsed by:325
Symbol 324 GraphicUsed by:325
Symbol 325 ButtonUses:319 320 321 322 323 324Used by:518
Symbol 326 GraphicUsed by:331
Symbol 327 TextUses:166Used by:331
Symbol 328 GraphicUsed by:331
Symbol 329 GraphicUsed by:331
Symbol 330 GraphicUsed by:331
Symbol 331 ButtonUses:326 327 328 329 330Used by:518
Symbol 332 GraphicUsed by:338
Symbol 333 TextUses:166Used by:338
Symbol 334 GraphicUsed by:338
Symbol 335 TextUses:166Used by:338
Symbol 336 GraphicUsed by:338
Symbol 337 GraphicUsed by:338
Symbol 338 ButtonUses:332 333 334 335 336 337Used by:518
Symbol 339 GraphicUsed by:345
Symbol 340 TextUses:166Used by:345
Symbol 341 GraphicUsed by:345
Symbol 342 TextUses:166Used by:345
Symbol 343 GraphicUsed by:345
Symbol 344 GraphicUsed by:345
Symbol 345 ButtonUses:339 340 341 342 343 344Used by:518
Symbol 346 GraphicUsed by:352
Symbol 347 TextUses:166Used by:352
Symbol 348 GraphicUsed by:352
Symbol 349 TextUses:166Used by:352
Symbol 350 GraphicUsed by:352
Symbol 351 GraphicUsed by:352
Symbol 352 ButtonUses:346 347 348 349 350 351Used by:518
Symbol 353 GraphicUsed by:358
Symbol 354 TextUses:166Used by:358
Symbol 355 GraphicUsed by:358
Symbol 356 GraphicUsed by:358
Symbol 357 GraphicUsed by:358
Symbol 358 ButtonUses:353 354 355 356 357Used by:518
Symbol 359 GraphicUsed by:365
Symbol 360 TextUses:166Used by:365
Symbol 361 GraphicUsed by:365
Symbol 362 TextUses:166Used by:365
Symbol 363 GraphicUsed by:365
Symbol 364 GraphicUsed by:365
Symbol 365 ButtonUses:359 360 361 362 363 364Used by:518
Symbol 366 GraphicUsed by:372
Symbol 367 TextUses:166Used by:372
Symbol 368 GraphicUsed by:372
Symbol 369 TextUses:166Used by:372
Symbol 370 GraphicUsed by:372
Symbol 371 GraphicUsed by:372
Symbol 372 ButtonUses:366 367 368 369 370 371Used by:518
Symbol 373 GraphicUsed by:379
Symbol 374 TextUses:166Used by:379
Symbol 375 GraphicUsed by:379
Symbol 376 TextUses:166Used by:379
Symbol 377 GraphicUsed by:379
Symbol 378 GraphicUsed by:379
Symbol 379 ButtonUses:373 374 375 376 377 378Used by:518
Symbol 380 GraphicUsed by:386
Symbol 381 TextUses:166Used by:386
Symbol 382 GraphicUsed by:386
Symbol 383 TextUses:166Used by:386
Symbol 384 GraphicUsed by:386
Symbol 385 GraphicUsed by:386
Symbol 386 ButtonUses:380 381 382 383 384 385Used by:518
Symbol 387 GraphicUsed by:393
Symbol 388 TextUses:166Used by:393
Symbol 389 GraphicUsed by:393
Symbol 390 TextUses:166Used by:393
Symbol 391 GraphicUsed by:393
Symbol 392 GraphicUsed by:393
Symbol 393 ButtonUses:387 388 389 390 391 392Used by:518
Symbol 394 GraphicUsed by:400
Symbol 395 TextUses:166Used by:400
Symbol 396 GraphicUsed by:400
Symbol 397 TextUses:166Used by:400
Symbol 398 GraphicUsed by:400
Symbol 399 GraphicUsed by:400
Symbol 400 ButtonUses:394 395 396 397 398 399Used by:518
Symbol 401 GraphicUsed by:407
Symbol 402 TextUses:166Used by:407
Symbol 403 GraphicUsed by:407
Symbol 404 TextUses:166Used by:407
Symbol 405 GraphicUsed by:407
Symbol 406 GraphicUsed by:407
Symbol 407 ButtonUses:401 402 403 404 405 406Used by:518
Symbol 408 GraphicUsed by:414
Symbol 409 TextUses:166Used by:414
Symbol 410 GraphicUsed by:414
Symbol 411 TextUses:166Used by:414
Symbol 412 GraphicUsed by:414
Symbol 413 GraphicUsed by:414
Symbol 414 ButtonUses:408 409 410 411 412 413Used by:518
Symbol 415 GraphicUsed by:421
Symbol 416 TextUses:166Used by:421
Symbol 417 GraphicUsed by:421
Symbol 418 TextUses:166Used by:421
Symbol 419 GraphicUsed by:421
Symbol 420 GraphicUsed by:421
Symbol 421 ButtonUses:415 416 417 418 419 420Used by:518
Symbol 422 GraphicUsed by:428
Symbol 423 TextUses:166Used by:428
Symbol 424 GraphicUsed by:428
Symbol 425 TextUses:166Used by:428
Symbol 426 GraphicUsed by:428
Symbol 427 GraphicUsed by:428
Symbol 428 ButtonUses:422 423 424 425 426 427Used by:518
Symbol 429 GraphicUsed by:435
Symbol 430 TextUses:166Used by:435
Symbol 431 GraphicUsed by:435
Symbol 432 TextUses:166Used by:435
Symbol 433 GraphicUsed by:435
Symbol 434 GraphicUsed by:435
Symbol 435 ButtonUses:429 430 431 432 433 434Used by:518
Symbol 436 GraphicUsed by:442
Symbol 437 TextUses:166Used by:442
Symbol 438 GraphicUsed by:442
Symbol 439 TextUses:166Used by:442
Symbol 440 GraphicUsed by:442
Symbol 441 GraphicUsed by:442
Symbol 442 ButtonUses:436 437 438 439 440 441Used by:518
Symbol 443 GraphicUsed by:449
Symbol 444 TextUses:166Used by:449
Symbol 445 GraphicUsed by:449
Symbol 446 TextUses:166Used by:449
Symbol 447 GraphicUsed by:449
Symbol 448 GraphicUsed by:449
Symbol 449 ButtonUses:443 444 445 446 447 448Used by:518
Symbol 450 GraphicUsed by:456
Symbol 451 TextUses:166Used by:456
Symbol 452 GraphicUsed by:456
Symbol 453 TextUses:166Used by:456
Symbol 454 GraphicUsed by:456
Symbol 455 GraphicUsed by:456
Symbol 456 ButtonUses:450 451 452 453 454 455Used by:518
Symbol 457 GraphicUsed by:463
Symbol 458 TextUses:166Used by:463
Symbol 459 GraphicUsed by:463
Symbol 460 TextUses:166Used by:463
Symbol 461 GraphicUsed by:463
Symbol 462 GraphicUsed by:463
Symbol 463 ButtonUses:457 458 459 460 461 462Used by:518
Symbol 464 GraphicUsed by:470
Symbol 465 TextUses:166Used by:470
Symbol 466 GraphicUsed by:470
Symbol 467 TextUses:166Used by:470
Symbol 468 GraphicUsed by:470
Symbol 469 GraphicUsed by:470
Symbol 470 ButtonUses:464 465 466 467 468 469Used by:518
Symbol 471 GraphicUsed by:477
Symbol 472 TextUses:166Used by:477
Symbol 473 GraphicUsed by:477
Symbol 474 TextUses:166Used by:477
Symbol 475 GraphicUsed by:477
Symbol 476 GraphicUsed by:477
Symbol 477 ButtonUses:471 472 473 474 475 476Used by:518
Symbol 478 GraphicUsed by:484
Symbol 479 TextUses:166Used by:484
Symbol 480 GraphicUsed by:484
Symbol 481 TextUses:166Used by:484
Symbol 482 GraphicUsed by:484
Symbol 483 GraphicUsed by:484
Symbol 484 ButtonUses:478 479 480 481 482 483Used by:518
Symbol 485 GraphicUsed by:491
Symbol 486 TextUses:166Used by:491
Symbol 487 GraphicUsed by:491
Symbol 488 TextUses:166Used by:491
Symbol 489 GraphicUsed by:491
Symbol 490 GraphicUsed by:491
Symbol 491 ButtonUses:485 486 487 488 489 490Used by:518
Symbol 492 GraphicUsed by:498
Symbol 493 TextUses:166Used by:498
Symbol 494 GraphicUsed by:498
Symbol 495 TextUses:166Used by:498
Symbol 496 GraphicUsed by:498
Symbol 497 GraphicUsed by:498
Symbol 498 ButtonUses:492 493 494 495 496 497Used by:518
Symbol 499 GraphicUsed by:505
Symbol 500 TextUses:166Used by:505
Symbol 501 GraphicUsed by:505
Symbol 502 TextUses:166Used by:505
Symbol 503 GraphicUsed by:505
Symbol 504 GraphicUsed by:505
Symbol 505 ButtonUses:499 500 501 502 503 504Used by:518
Symbol 506 GraphicUsed by:512
Symbol 507 TextUses:166Used by:512
Symbol 508 GraphicUsed by:512
Symbol 509 TextUses:166Used by:512
Symbol 510 GraphicUsed by:512
Symbol 511 GraphicUsed by:512
Symbol 512 ButtonUses:506 507 508 509 510 511Used by:518
Symbol 513 GraphicUsed by:514
Symbol 514 MovieClipUses:513Used by:517
Symbol 515 GraphicUsed by:516
Symbol 516 MovieClipUses:515Used by:517
Symbol 517 MovieClip {Fla.MaskLvlMC}Uses:514 516Used by:518
Symbol 518 MovieClip {LevelChooseMenuMC}Uses:306 172 315 316 317 318 180 183 184 325 331 338 345 352 358 365 372 379 386 393 400 407 414 421 428 435 442 449 456 463 470 477 484 491 498 505 512 517
Symbol 519 GraphicUsed by:520
Symbol 520 MovieClip {DynamicBrevnoMC}Uses:519
Symbol 521 GraphicUsed by:522
Symbol 522 MovieClip {SRec_ElectricityBoxMC}Uses:521
Symbol 523 MovieClip {Fla.SlowTimeSensorMC}Uses:64
Symbol 524 GraphicUsed by:525
Symbol 525 MovieClipUses:524Used by:536
Symbol 526 GraphicUsed by:536
Symbol 527 GraphicUsed by:536
Symbol 528 GraphicUsed by:536
Symbol 529 GraphicUsed by:536
Symbol 530 GraphicUsed by:536
Symbol 531 GraphicUsed by:536
Symbol 532 GraphicUsed by:536
Symbol 533 GraphicUsed by:536
Symbol 534 GraphicUsed by:536
Symbol 535 GraphicUsed by:536
Symbol 536 MovieClip {Fla.SkullBallMC}Uses:525 526 527 528 529 530 531 532 533 534 535
Symbol 537 GraphicUsed by:538
Symbol 538 MovieClip {Fla.RevoluteJointReverseMotorMC}Uses:537
Symbol 539 GraphicUsed by:540
Symbol 540 MovieClip {MovingPlatformMC}Uses:539
Symbol 541 GraphicUsed by:542
Symbol 542 MovieClip {Fla.GoalSensorMC}Uses:541
Symbol 543 GraphicUsed by:544
Symbol 544 MovieClip {DRec_palka2}Uses:543
Symbol 545 GraphicUsed by:546
Symbol 546 MovieClip {Fla.DistanceJointMC}Uses:545
Symbol 547 GraphicUsed by:555
Symbol 548 GraphicUsed by:555 589 958 976 1048 1382
Symbol 549 GraphicUsed by:555 589 958 976 1048 1382
Symbol 550 GraphicUsed by:555 589 958 976 1048 1382
Symbol 551 GraphicUsed by:555
Symbol 552 GraphicUsed by:555 589 958 976 1048 1382
Symbol 553 GraphicUsed by:555 589 958 976 1048 1382
Symbol 554 GraphicUsed by:555
Symbol 555 MovieClip {Fla.BulletMC}Uses:547 548 549 550 551 552 553 554
Symbol 556 GraphicUsed by:557 1383
Symbol 557 MovieClipUses:556Used by:590
Symbol 558 GraphicUsed by:590
Symbol 559 GraphicUsed by:571
Symbol 560 GraphicUsed by:561
Symbol 561 MovieClipUses:560Used by:571
Symbol 562 GraphicUsed by:571
Symbol 563 GraphicUsed by:567
Symbol 564 GraphicUsed by:567
Symbol 565 GraphicUsed by:567
Symbol 566 GraphicUsed by:567
Symbol 567 MovieClipUses:563 564 565 566Used by:571 589
Symbol 568 GraphicUsed by:571
Symbol 569 GraphicUsed by:571
Symbol 570 GraphicUsed by:571
Symbol 571 MovieClip {BombaTleetMC}Uses:559 561 562 567 568 569 570Used by:590
Symbol 572 GraphicUsed by:589
Symbol 573 GraphicUsed by:589
Symbol 574 GraphicUsed by:589
Symbol 575 GraphicUsed by:589
Symbol 576 GraphicUsed by:589
Symbol 577 GraphicUsed by:589
Symbol 578 GraphicUsed by:589 1382
Symbol 579 GraphicUsed by:589 1382
Symbol 580 GraphicUsed by:589
Symbol 581 GraphicUsed by:589
Symbol 582 GraphicUsed by:589
Symbol 583 GraphicUsed by:589
Symbol 584 GraphicUsed by:589 1382
Symbol 585 GraphicUsed by:589 1382
Symbol 586 GraphicUsed by:589
Symbol 587 GraphicUsed by:589 1382
Symbol 588 GraphicUsed by:589
Symbol 589 MovieClip {BombaVzryvMC}Uses:572 567 573 574 575 576 577 578 548 549 579 550 580 581 552 582 583 553 584 585 586 587 588Used by:590
Symbol 590 MovieClip {Fla.BombMC}Uses:557 558 571 589
Symbol 591 GraphicUses:163Used by:902
Symbol 592 GraphicUsed by:593
Symbol 593 MovieClipUses:592Used by:902 1000 1052 1064 1096 1180 1194 1200 1204 1210 1217 1228 1235 1247 1259 1268 1276 1286 1294 1302 1308 1318 1324 1331 1340 1353 1363 1371
Symbol 594 GraphicUsed by:595
Symbol 595 MovieClipUses:594Used by:902 1000 1052 1064 1096 1180 1194 1200 1204 1210 1217 1228 1235 1247 1259 1268 1276 1286 1294 1302 1308 1318 1324 1331 1340 1353 1363 1371
Symbol 596 GraphicUsed by:902
Symbol 597 GraphicUsed by:902
Symbol 598 GraphicUsed by:902
Symbol 599 GraphicUsed by:902
Symbol 600 GraphicUsed by:601
Symbol 601 MovieClip {Fla.GraveSensorMC}Uses:600Used by:902 1000 1052 1064 1096 1180 1194 1200 1204 1210 1217 1228 1235 1247 1259 1268 1276 1286 1294 1302 1308 1318 1324 1331 1340 1353 1363 1371
Symbol 602 GraphicUsed by:603
Symbol 603 MovieClipUses:602Used by:902 1000 1064 1096 1180 1194 1200 1204 1210 1217 1228 1235 1247 1259 1276 1302 1318 1324 1331 1340 1353 1363 1371
Symbol 604 GraphicUsed by:605
Symbol 605 MovieClip {SRec_stone1}Uses:604Used by:902 1000 1052 1064 1096 1180 1194 1200 1204 1210 1217 1228 1235 1247 1259 1268 1276 1286 1294 1302 1318 1324 1331 1340 1353 1363 1371
Symbol 606 GraphicUsed by:607
Symbol 607 MovieClip {SRec_stone2}Uses:606Used by:902 1000 1052 1096 1180 1200 1204 1210 1217 1228 1235 1247 1259 1268 1276 1286 1294 1302 1308 1324 1331 1340 1353 1363 1371
Symbol 608 GraphicUsed by:609
Symbol 609 MovieClip {BigSpikeMC}Uses:608Used by:902 1000 1247 1340
Symbol 610 GraphicUsed by:611
Symbol 611 MovieClipUses:610Used by:902 1000 1064 1096 1180 1194 1200 1204 1210 1217 1228 1235 1247 1259 1276 1294 1302 1318 1324 1331 1340 1353 1363 1371
Symbol 612 GraphicUsed by:613
Symbol 613 MovieClipUses:612Used by:902 1064 1096 1180 1194 1200 1210 1217 1235 1247 1259 1276 1294 1302 1318 1324 1331 1340 1353 1363
Symbol 614 GraphicUsed by:615
Symbol 615 MovieClipUses:614Used by:902 1000 1064 1096 1180 1194 1200 1204 1210 1217 1228 1235 1247 1259 1268 1276 1286 1294 1308 1324 1340 1353 1363 1371
Symbol 616 GraphicUsed by:617
Symbol 617 MovieClipUses:616Used by:902 1000 1052 1096 1180 1194 1200 1204 1210 1217 1228 1235 1247 1259 1268 1276 1286 1294 1302 1308 1324 1331 1340 1353 1363 1371
Symbol 618 GraphicUsed by:626
Symbol 619 GraphicUsed by:625
Symbol 620 GraphicUsed by:625
Symbol 621 GraphicUsed by:625
Symbol 622 GraphicUsed by:625
Symbol 623 GraphicUsed by:625
Symbol 624 GraphicUsed by:625
Symbol 625 MovieClip {Fla.BaloonUnpopCrashMC}Uses:619 620 621 622 623 624Used by:626
Symbol 626 MovieClip {Fla.BaloonUnpopMC}Uses:618 625Used by:902 1000 1064 1096 1180 1194 1204 1210 1217 1228 1308 1318 1340 1353
Symbol 627 GraphicUsed by:628
Symbol 628 MovieClip {Fla.RopeShortMC}Uses:627Used by:902 1000 1064 1096 1194 1200 1210 1217 1228 1235 1268
Symbol 629 GraphicUsed by:657
Symbol 630 GraphicUsed by:657
Symbol 631 GraphicUsed by:639
Symbol 632 GraphicUsed by:639
Symbol 633 GraphicUsed by:639
Symbol 634 GraphicUsed by:639
Symbol 635 GraphicUsed by:639
Symbol 636 GraphicUsed by:639
Symbol 637 GraphicUsed by:639
Symbol 638 GraphicUsed by:639
Symbol 639 MovieClipUses:631 632 633 634 635 636 637 638Used by:657
Symbol 640 GraphicUsed by:657
Symbol 641 GraphicUsed by:657
Symbol 642 GraphicUsed by:657
Symbol 643 GraphicUsed by:657
Symbol 644 GraphicUsed by:657
Symbol 645 GraphicUsed by:657
Symbol 646 GraphicUsed by:657
Symbol 647 GraphicUsed by:657
Symbol 648 GraphicUsed by:657
Symbol 649 GraphicUsed by:657
Symbol 650 GraphicUsed by:656
Symbol 651 GraphicUsed by:656
Symbol 652 GraphicUsed by:656
Symbol 653 GraphicUsed by:656
Symbol 654 GraphicUsed by:656
Symbol 655 GraphicUsed by:656
Symbol 656 MovieClip {Fla.AirBaloonCrashed}Uses:650 651 652 653 654 655Used by:657
Symbol 657 MovieClip {Fla.AirShipMC}Uses:629 630 639 640 641 642 643 644 645 646 647 648 649 656Used by:902 1000 1064 1200 1268
Symbol 658 GraphicUsed by:659 677
Symbol 659 MovieClip {RevoluteJointDynamicMC}Uses:658Used by:902 1000 1052 1064 1096 1180 1194 1200 1204 1210 1217 1228 1235 1247 1259 1268 1276 1286 1294 1302 1308 1318 1324 1331 1340 1353 1363 1371
Symbol 660 GraphicUsed by:676
Symbol 661 GraphicUsed by:676
Symbol 662 GraphicUsed by:676
Symbol 663 GraphicUsed by:676
Symbol 664 GraphicUsed by:676
Symbol 665 GraphicUsed by:676
Symbol 666 GraphicUsed by:676
Symbol 667 GraphicUsed by:676
Symbol 668 GraphicUsed by:676
Symbol 669 GraphicUsed by:676
Symbol 670 GraphicUsed by:676
Symbol 671 GraphicUsed by:676
Symbol 672 GraphicUsed by:676
Symbol 673 GraphicUsed by:676
Symbol 674 GraphicUsed by:676
Symbol 675 GraphicUsed by:676
Symbol 676 MovieClip {Fla.CannonMC}Uses:660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675Used by:902 1204 1217 1228 1308 1318
Symbol 677 MovieClip {RevoluteJointStaticMC}Uses:658Used by:902 1000 1064 1096 1180 1194 1200 1210 1217 1228 1235 1247 1259 1276 1286 1294 1302 1308 1318 1324 1331 1340 1363
Symbol 678 GraphicUsed by:708
Symbol 679 GraphicUsed by:691
Symbol 680 GraphicUsed by:691
Symbol 681 GraphicUsed by:691
Symbol 682 GraphicUsed by:691
Symbol 683 GraphicUsed by:691
Symbol 684 GraphicUsed by:691
Symbol 685 GraphicUsed by:691
Symbol 686 GraphicUsed by:691
Symbol 687 GraphicUsed by:691
Symbol 688 GraphicUsed by:691
Symbol 689 GraphicUsed by:691
Symbol 690 GraphicUsed by:691
Symbol 691 MovieClip {Fla.SkeletonHandElectricity}Uses:679 680 681 682 683 684 685 686 687 688 689 690Used by:708
Symbol 692 GraphicUsed by:707
Symbol 693 GraphicUsed by:694
Symbol 694 MovieClipUses:693Used by:707
Symbol 695 GraphicUsed by:707
Symbol 696 GraphicUsed by:707
Symbol 697 GraphicUsed by:707
Symbol 698 GraphicUsed by:707
Symbol 699 GraphicUsed by:707
Symbol 700 GraphicUsed by:707
Symbol 701 GraphicUsed by:707
Symbol 702 GraphicUsed by:707
Symbol 703 GraphicUsed by:707
Symbol 704 GraphicUsed by:707
Symbol 705 GraphicUsed by:707
Symbol 706 GraphicUsed by:707
Symbol 707 MovieClip {Fla.SkeletonsBurnHand}Uses:692 694 695 696 697 698 699 700 701 702 703 704 705 706Used by:708
Symbol 708 MovieClip {Fla.SkeletonsHandMC}Uses:678 691 707Used by:902 1000 1052 1064 1096 1180 1194 1200 1204 1210 1217 1228 1235 1247 1259 1268 1276 1286 1294 1302 1308 1318 1324 1331 1340 1353 1363 1371
Symbol 709 GraphicUsed by:739
Symbol 710 GraphicUsed by:722
Symbol 711 GraphicUsed by:722
Symbol 712 GraphicUsed by:722
Symbol 713 GraphicUsed by:722
Symbol 714 GraphicUsed by:722
Symbol 715 GraphicUsed by:722
Symbol 716 GraphicUsed by:722
Symbol 717 GraphicUsed by:722
Symbol 718 GraphicUsed by:722
Symbol 719 GraphicUsed by:722
Symbol 720 GraphicUsed by:722
Symbol 721 GraphicUsed by:722
Symbol 722 MovieClip {Fla.SkeletonLegElectricity}Uses:710 711 712 713 714 715 716 717 718 719 720 721Used by:739
Symbol 723 GraphicUsed by:738
Symbol 724 GraphicUsed by:725
Symbol 725 MovieClipUses:724Used by:738
Symbol 726 GraphicUsed by:738
Symbol 727 GraphicUsed by:738
Symbol 728 GraphicUsed by:738
Symbol 729 GraphicUsed by:738
Symbol 730 GraphicUsed by:738
Symbol 731 GraphicUsed by:738
Symbol 732 GraphicUsed by:738
Symbol 733 GraphicUsed by:738
Symbol 734 GraphicUsed by:738
Symbol 735 GraphicUsed by:738
Symbol 736 GraphicUsed by:738
Symbol 737 GraphicUsed by:738
Symbol 738 MovieClip {Fla.SkeletonsBurnLeg}Uses:723 725 726 727 728 729 730 731 732 733 734 735 736 737Used by:739
Symbol 739 MovieClip {Fla.SkeletonsLegMC}Uses:709 722 738Used by:902 1000 1052 1064 1096 1180 1194 1200 1204 1210 1217 1228 1235 1247 1259 1268 1276 1286 1294 1302 1308 1318 1324 1331 1340 1353 1363 1371
Symbol 740 GraphicUsed by:788
Symbol 741 GraphicUsed by:755
Symbol 742 GraphicUsed by:755
Symbol 743 GraphicUsed by:755
Symbol 744 GraphicUsed by:755
Symbol 745 GraphicUsed by:755
Symbol 746 GraphicUsed by:755
Symbol 747 GraphicUsed by:755
Symbol 748 GraphicUsed by:755
Symbol 749 GraphicUsed by:755
Symbol 750 GraphicUsed by:755
Symbol 751 GraphicUsed by:755
Symbol 752 GraphicUsed by:755
Symbol 753 GraphicUsed by:755
Symbol 754 GraphicUsed by:755
Symbol 755 MovieClipUses:741 742 743 744 745 746 747 748 749 750 751 752 753 754Used by:788
Symbol 756 GraphicUsed by:768
Symbol 757 GraphicUsed by:768
Symbol 758 GraphicUsed by:768
Symbol 759 GraphicUsed by:768
Symbol 760 GraphicUsed by:768
Symbol 761 GraphicUsed by:768
Symbol 762 GraphicUsed by:768
Symbol 763 GraphicUsed by:768
Symbol 764 GraphicUsed by:768
Symbol 765 GraphicUsed by:768
Symbol 766 GraphicUsed by:768
Symbol 767 GraphicUsed by:768
Symbol 768 MovieClip {Fla.SkeletonsHeadElectricity}Uses:756 757 758 759 760 761 762 763 764 765 766 767Used by:788
Symbol 769 GraphicUsed by:787
Symbol 770 GraphicUsed by:771
Symbol 771 MovieClipUses:770Used by:787
Symbol 772 GraphicUsed by:787
Symbol 773 GraphicUsed by:787
Symbol 774 GraphicUsed by:787
Symbol 775 GraphicUsed by:787
Symbol 776 GraphicUsed by:787
Symbol 777 GraphicUsed by:787
Symbol 778 GraphicUsed by:787
Symbol 779 GraphicUsed by:787
Symbol 780 GraphicUsed by:787
Symbol 781 GraphicUsed by:787
Symbol 782 GraphicUsed by:787
Symbol 783 GraphicUsed by:787
Symbol 784 GraphicUsed by:787
Symbol 785 GraphicUsed by:787
Symbol 786 GraphicUsed by:787
Symbol 787 MovieClip {Fla.SkeletonsBurnHead}Uses:769 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786Used by:788
Symbol 788 MovieClip {Fla.SkeletonsHeadMC}Uses:740 755 768 787Used by:902 1000 1052 1064 1096 1180 1194 1200 1204 1210 1217 1228 1235 1247 1259 1268 1276 1286 1294 1302 1308 1318 1324 1331 1340 1353 1363 1371
Symbol 789 GraphicUsed by:819
Symbol 790 GraphicUsed by:802
Symbol 791 GraphicUsed by:802
Symbol 792 GraphicUsed by:802
Symbol 793 GraphicUsed by:802
Symbol 794 GraphicUsed by:802
Symbol 795 GraphicUsed by:802
Symbol 796 GraphicUsed by:802
Symbol 797 GraphicUsed by:802
Symbol 798 GraphicUsed by:802
Symbol 799 GraphicUsed by:802
Symbol 800 GraphicUsed by:802
Symbol 801 GraphicUsed by:802
Symbol 802 MovieClip {Fla.SkeletonsBodyElectricity}Uses:790 791 792 793 794 795 796 797 798 799 800 801Used by:819
Symbol 803 GraphicUsed by:818
Symbol 804 GraphicUsed by:805
Symbol 805 MovieClipUses:804Used by:818
Symbol 806 GraphicUsed by:818
Symbol 807 GraphicUsed by:818
Symbol 808 GraphicUsed by:818
Symbol 809 GraphicUsed by:818
Symbol 810 GraphicUsed by:818
Symbol 811 GraphicUsed by:818
Symbol 812 GraphicUsed by:818
Symbol 813 GraphicUsed by:818
Symbol 814 GraphicUsed by:818
Symbol 815 GraphicUsed by:818
Symbol 816 GraphicUsed by:818
Symbol 817 GraphicUsed by:818
Symbol 818 MovieClip {Fla.SkeletonsBurnBody}Uses:803 805 806 807 808 809 810 811 812 813 814 815 816 817Used by:819
Symbol 819 MovieClip {Fla.SkeletonsBodyMC}Uses:789 802 818Used by:902 1000 1052 1064 1096 1180 1194 1200 1204 1210 1217 1228 1235 1247 1259 1268 1276 1286 1294 1302 1308 1318 1324 1331 1340 1353 1363 1371
Symbol 820 GraphicUsed by:821
Symbol 821 MovieClip {MineCartMC}Uses:820Used by:902 1200 1247 1259 1276 1324 1331 1363
Symbol 822 GraphicUsed by:823
Symbol 823 MovieClip {Fla.LDRe_cartSide}Uses:822Used by:902 1200 1247 1259 1276 1324 1331 1363
Symbol 824 GraphicUsed by:830
Symbol 825 GraphicUsed by:829
Symbol 826 GraphicUsed by:829
Symbol 827 GraphicUsed by:829
Symbol 828 GraphicUsed by:829
Symbol 829 MovieClip {Fla.DestroyRopeMC}Uses:825 826 827 828Used by:830
Symbol 830 MovieClip {Fla.RopeMC}Uses:824 829Used by:902 1000 1052 1064 1096 1180 1194 1200 1204 1210 1217 1228 1247 1259 1276 1286 1294 1302 1318 1324 1340 1353 1363 1371
Symbol 831 GraphicUsed by:832
Symbol 832 MovieClip {LDRec_palka2}Uses:831Used by:902 1217 1294 1318
Symbol 833 GraphicUsed by:902
Symbol 834 GraphicUsed by:902
Symbol 835 GraphicUsed by:902
Symbol 836 GraphicUsed by:902
Symbol 837 GraphicUsed by:900
Symbol 838 GraphicUsed by:900
Symbol 839 GraphicUsed by:846
Symbol 840 GraphicUsed by:846
Symbol 841 GraphicUsed by:846
Symbol 842 GraphicUsed by:846
Symbol 843 GraphicUsed by:846
Symbol 844 GraphicUsed by:846
Symbol 845 GraphicUsed by:846
Symbol 846 MovieClipUses:839 840 841 842 843 844 845Used by:900
Symbol 847 GraphicUsed by:900
Symbol 848 GraphicUsed by:900
Symbol 849 GraphicUsed by:900
Symbol 850 GraphicUsed by:900
Symbol 851 GraphicUsed by:900
Symbol 852 GraphicUsed by:900
Symbol 853 GraphicUsed by:900
Symbol 854 GraphicUsed by:900
Symbol 855 GraphicUsed by:900
Symbol 856 GraphicUsed by:900
Symbol 857 GraphicUsed by:900
Symbol 858 GraphicUsed by:900
Symbol 859 GraphicUsed by:900
Symbol 860 GraphicUsed by:900
Symbol 861 GraphicUsed by:862
Symbol 862 MovieClipUses:861Used by:900
Symbol 863 GraphicUsed by:900
Symbol 864 GraphicUsed by:900
Symbol 865 GraphicUsed by:900
Symbol 866 GraphicUsed by:900
Symbol 867 GraphicUsed by:900
Symbol 868 GraphicUsed by:900
Symbol 869 GraphicUsed by:900
Symbol 870 GraphicUsed by:900
Symbol 871 GraphicUsed by:900
Symbol 872 GraphicUsed by:900
Symbol 873 GraphicUsed by:900
Symbol 874 GraphicUsed by:900
Symbol 875 GraphicUsed by:900
Symbol 876 GraphicUsed by:900
Symbol 877 GraphicUsed by:900
Symbol 878 GraphicUsed by:900
Symbol 879 GraphicUsed by:900
Symbol 880 GraphicUsed by:900
Symbol 881 GraphicUsed by:900
Symbol 882 GraphicUsed by:900
Symbol 883 GraphicUsed by:900
Symbol 884 GraphicUsed by:900
Symbol 885 GraphicUsed by:900
Symbol 886 GraphicUsed by:900
Symbol 887 GraphicUsed by:900
Symbol 888 GraphicUsed by:900
Symbol 889 GraphicUsed by:900
Symbol 890 GraphicUsed by:900
Symbol 891 GraphicUsed by:900
Symbol 892 GraphicUsed by:900
Symbol 893 GraphicUsed by:900
Symbol 894 GraphicUsed by:900
Symbol 895 GraphicUsed by:900
Symbol 896 GraphicUsed by:897
Symbol 897 MovieClipUses:896Used by:900
Symbol 898 GraphicUsed by:900
Symbol 899 GraphicUsed by:900
Symbol 900 MovieClip {Fla.GraveDigger}Uses:837 838 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 897 898 899Used by:902 1000 1052 1064 1096 1180 1194 1200 1204 1210 1217 1228 1235 1247 1259 1268 1276 1286 1294 1302 1308 1318 1324 1331 1340 1353 1363 1371
Symbol 901 MovieClip {Fla.BrevnoMC}Uses:95Used by:902 1000 1052 1064 1096 1180 1194 1200 1204 1210 1217 1228 1235 1247 1259 1268 1276 1286 1294 1302 1308 1318 1324 1331 1340 1353 1363 1371
Symbol 902 MovieClip {Level28}Uses:591 593 595 596 597 598 599 601 603 605 607 609 611 613 615 617 626 628 657 659 676 677 708 739 788 819 821 823 830 832 833 834 835 836 900 901
Symbol 903 GraphicUses:163Used by:1000
Symbol 904 GraphicUsed by:1000
Symbol 905 GraphicUsed by:1000
Symbol 906 GraphicUsed by:1000
Symbol 907 GraphicUsed by:1000
Symbol 908 GraphicUsed by:909
Symbol 909 MovieClip {Fla.PunchBoxSensorMC}Uses:908Used by:1000 1064 1194 1210 1228 1235 1276 1286 1294 1302 1324 1331
Symbol 910 GraphicUsed by:919
Symbol 911 GraphicUsed by:919
Symbol 912 GraphicUsed by:919
Symbol 913 GraphicUsed by:919
Symbol 914 MovieClipUses:133Used by:919
Symbol 915 GraphicUsed by:919
Symbol 916 GraphicUsed by:919
Symbol 917 GraphicUsed by:919
Symbol 918 GraphicUsed by:919
Symbol 919 MovieClip {Fla.BlowerMC}Uses:60 910 911 912 913 914 915 916 917 918Used by:1000 1064 1235 1286 1294 1324 1331
Symbol 920 GraphicUsed by:921
Symbol 921 MovieClipUses:920Used by:1000 1052 1096 1180 1200 1217 1228 1235 1247 1259 1268 1276 1286 1294 1302 1308 1324 1340 1353 1363 1371
Symbol 922 GraphicUsed by:924
Symbol 923 GraphicUsed by:924
Symbol 924 MovieClip {Fla.SawMC}Uses:922 923Used by:1000 1064 1096 1180 1194 1200 1204 1210 1247 1259 1268
Symbol 925 GraphicUsed by:959
Symbol 926 GraphicUsed by:958
Symbol 927 GraphicUsed by:958
Symbol 928 GraphicUsed by:929
Symbol 929 MovieClipUses:928Used by:958 976 1048
Symbol 930 GraphicUsed by:958 976 1048
Symbol 931 GraphicUsed by:932
Symbol 932 MovieClipUses:931Used by:958 976 1048
Symbol 933 GraphicUsed by:934
Symbol 934 MovieClipUses:933Used by:958 976 1048
Symbol 935 GraphicUsed by:936
Symbol 936 MovieClipUses:935Used by:958 976 1048
Symbol 937 GraphicUsed by:938
Symbol 938 MovieClipUses:937Used by:958 976 1048
Symbol 939 GraphicUsed by:940
Symbol 940 MovieClipUses:939Used by:958 976 1048
Symbol 941 GraphicUsed by:942
Symbol 942 MovieClipUses:941Used by:958 976 1048
Symbol 943 GraphicUsed by:944
Symbol 944 MovieClipUses:943Used by:958 976 1048
Symbol 945 GraphicUsed by:958
Symbol 946 GraphicUsed by:958
Symbol 947 GraphicUsed by:958
Symbol 948 GraphicUsed by:958
Symbol 949 GraphicUsed by:958
Symbol 950 GraphicUsed by:958
Symbol 951 GraphicUsed by:958
Symbol 952 GraphicUsed by:958
Symbol 953 GraphicUsed by:958
Symbol 954 GraphicUsed by:958
Symbol 955 GraphicUsed by:958
Symbol 956 GraphicUsed by:958
Symbol 957 GraphicUsed by:958
Symbol 958 MovieClip {Fla.DynamicWoodCrush}Uses:926 927 929 930 932 934 936 938 940 942 944 945 946 947 948 548 549 949 550 950 951 552 952 953 553 954 955 956 957Used by:959
Symbol 959 MovieClip {Fla.DBRe_wood}Uses:925 958Used by:1000 1052 1096 1180 1217 1286 1294 1318 1324 1340 1353
Symbol 960 GraphicUsed by:977
Symbol 961 GraphicUsed by:976
Symbol 962 GraphicUsed by:976
Symbol 963 GraphicUsed by:976
Symbol 964 GraphicUsed by:976
Symbol 965 GraphicUsed by:976
Symbol 966 GraphicUsed by:976
Symbol 967 GraphicUsed by:976
Symbol 968 GraphicUsed by:976
Symbol 969 GraphicUsed by:976
Symbol 970 GraphicUsed by:976
Symbol 971 GraphicUsed by:976
Symbol 972 GraphicUsed by:976
Symbol 973 GraphicUsed by:976
Symbol 974 GraphicUsed by:976
Symbol 975 GraphicUsed by:976
Symbol 976 MovieClip {Fla.StaticWoodCrush}Uses:961 962 929 930 932 934 936 938 940 942 944 963 964 965 966 548 549 967 550 968 969 552 970 971 553 972 973 974 975Used by:977 1285
Symbol 977 MovieClip {Fla.SBRe_wood}Uses:960 976Used by:1000 1064 1200 1204 1210 1217 1235 1247 1286 1308 1324 1331 1363 1371
Symbol 978 GraphicUsed by:993
Symbol 979 GraphicUsed by:993
Symbol 980 GraphicUsed by:993
Symbol 981 GraphicUsed by:993
Symbol 982 GraphicUsed by:993
Symbol 983 GraphicUsed by:993
Symbol 984 GraphicUsed by:993
Symbol 985 GraphicUsed by:993
Symbol 986 GraphicUsed by:993
Symbol 987 GraphicUsed by:993
Symbol 988 GraphicUsed by:993
Symbol 989 GraphicUsed by:993
Symbol 990 GraphicUsed by:993
Symbol 991 GraphicUsed by:993
Symbol 992 GraphicUsed by:993
Symbol 993 MovieClip {Fla.CarBodyMC}Uses:978 979 980 981 982 983 984 985 986 987 988 989 990 991 992Used by:1000 1064 1180 1200 1210 1217 1247 1259 1294 1302 1318
Symbol 994 GraphicUsed by:995
Symbol 995 MovieClip {CarsWheelMC}Uses:994Used by:1000 1064 1180 1200 1210 1217 1247 1259 1294 1302 1318
Symbol 996 GraphicUsed by:997
Symbol 997 MovieClip {RevoluteJointMotorMC}Uses:996Used by:1000 1052 1064 1096 1180 1200 1204 1210 1217 1247 1259 1276 1294 1302 1318
Symbol 998 GraphicUsed by:999
Symbol 999 MovieClip {DRec_carsShovel}Uses:998Used by:1000 1064 1210 1259 1302 1318
Symbol 1000 MovieClip {Level27}Uses:903 593 595 904 905 906 907 601 603 609 607 605 909 919 677 611 921 617 615 924 626 708 739 788 819 659 830 628 959 977 993 995 997 999 657 900 901
Symbol 1001 GraphicUses:163Used by:1052
Symbol 1002 GraphicUsed by:1052
Symbol 1003 GraphicUsed by:1052
Symbol 1004 GraphicUsed by:1052
Symbol 1005 GraphicUsed by:1052
Symbol 1006 GraphicUsed by:1007
Symbol 1007 MovieClip {Fla.CurrentInsideMC}Uses:1006Used by:1030
Symbol 1008 GraphicUsed by:1030
Symbol 1009 GraphicUsed by:1030
Symbol 1010 GraphicUsed by:1030
Symbol 1011 GraphicUsed by:1030
Symbol 1012 GraphicUsed by:1030
Symbol 1013 GraphicUsed by:1030
Symbol 1014 GraphicUsed by:1030
Symbol 1015 GraphicUsed by:1030
Symbol 1016 GraphicUsed by:1030
Symbol 1017 GraphicUsed by:1030
Symbol 1018 GraphicUsed by:1030
Symbol 1019 GraphicUsed by:1030
Symbol 1020 GraphicUsed by:1030
Symbol 1021 GraphicUsed by:1030
Symbol 1022 GraphicUsed by:1030
Symbol 1023 GraphicUsed by:1030
Symbol 1024 GraphicUsed by:1030
Symbol 1025 GraphicUsed by:1030
Symbol 1026 GraphicUsed by:1030
Symbol 1027 GraphicUsed by:1030
Symbol 1028 GraphicUsed by:1030
Symbol 1029 GraphicUsed by:1030
Symbol 1030 MovieClip {Fla.CurrentMC}Uses:1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029Used by:1052 1217 1235
Symbol 1031 GraphicUsed by:1052
Symbol 1032 GraphicUsed by:1049
Symbol 1033 GraphicUsed by:1048
Symbol 1034 GraphicUsed by:1048
Symbol 1035 GraphicUsed by:1048
Symbol 1036 GraphicUsed by:1048
Symbol 1037 GraphicUsed by:1048
Symbol 1038 GraphicUsed by:1048
Symbol 1039 GraphicUsed by:1048
Symbol 1040 GraphicUsed by:1048
Symbol 1041 GraphicUsed by:1048
Symbol 1042 GraphicUsed by:1048
Symbol 1043 GraphicUsed by:1048
Symbol 1044 GraphicUsed by:1048
Symbol 1045 GraphicUsed by:1048
Symbol 1046 GraphicUsed by:1048
Symbol 1047 GraphicUsed by:1048
Symbol 1048 MovieClip {Fla.DynamicWoodWheelCrush}Uses:1033 1034 929 930 932 934 936 938 940 942 944 1035 1036 1037 1038 548 549 1039 550 1040 1041 552 1042 1043 553 1044 1045 1046 1047Used by:1049
Symbol 1049 MovieClip {Fla.SRou_WoodWheelMC}Uses:1032 1048Used by:1052 1096 1194 1200 1204 1235 1247 1259 1276 1294 1302 1324 1331 1340 1353 1363
Symbol 1050 GraphicUsed by:1051
Symbol 1051 MovieClip {WheelMC}Uses:1050Used by:1052 1194 1217 1294 1324 1331 1340
Symbol 1052 MovieClip {Level26}Uses:1001 593 595 1002 1003 1004 1005 601 607 1030 605 708 739 788 819 659 959 830 1031 1049 997 1051 921 617 900 901
Symbol 1053 GraphicUses:163Used by:1064
Symbol 1054 GraphicUsed by:1064
Symbol 1055 GraphicUsed by:1064
Symbol 1056 GraphicUsed by:1064
Symbol 1057 GraphicUsed by:1064
Symbol 1058 GraphicUsed by:1059
Symbol 1059 MovieClipUses:1058Used by:1064 1180 1194 1204 1210 1217 1228 1235 1247 1259 1276 1302 1318 1324 1331 1340 1363 1371
Symbol 1060 GraphicUsed by:1061
Symbol 1061 MovieClipUses:1060Used by:1064 1096 1180 1194 1200 1210 1217 1235 1247 1259 1276 1302 1318 1324 1331 1363
Symbol 1062 GraphicUsed by:1063
Symbol 1063 MovieClip {SpikeBallMC}Uses:1062Used by:1064 1180 1210 1340 1353
Symbol 1064 MovieClip {Level25}Uses:1053 593 595 1054 1055 1056 1057 601 603 1059 605 611 613 615 1061 628 657 659 977 924 993 995 997 999 677 909 919 626 708 739 788 819 830 1063 900 901
Symbol 1065 GraphicUses:163Used by:1096
Symbol 1066 GraphicUsed by:1096
Symbol 1067 GraphicUsed by:1096
Symbol 1068 GraphicUsed by:1096
Symbol 1069 GraphicUsed by:1096
Symbol 1070 GraphicUsed by:1071
Symbol 1071 MovieClipUses:1070Used by:1096 1180 1217 1235 1247 1268 1286 1302 1324 1331 1340 1353 1363 1371
Symbol 1072 GraphicUsed by:1080
Symbol 1073 GraphicUsed by:1079
Symbol 1074 GraphicUsed by:1079
Symbol 1075 GraphicUsed by:1079
Symbol 1076 GraphicUsed by:1079
Symbol 1077 GraphicUsed by:1079
Symbol 1078 GraphicUsed by:1079
Symbol 1079 MovieClip {Fla.BaloonCrashMC}Uses:1073 1074 1075 1076 1077 1078Used by:1080
Symbol 1080 MovieClip {Fla.BaloonMC}Uses:1072 1079Used by:1096 1194 1210 1228 1235 1247 1259 1286 1324 1363 1371
Symbol 1081 GraphicUsed by:1095
Symbol 1082 GraphicUsed by:1091
Symbol 1083 GraphicUsed by:1091
Symbol 1084 GraphicUsed by:1091
Symbol 1085 GraphicUsed by:1091
Symbol 1086 GraphicUsed by:1091
Symbol 1087 GraphicUsed by:1091
Symbol 1088 GraphicUsed by:1091
Symbol 1089 GraphicUsed by:1091
Symbol 1090 GraphicUsed by:1091
Symbol 1091 MovieClipUses:1082 1083 1084 1085 1086 1087 1088 1089 1090Used by:1095
Symbol 1092 GraphicUsed by:1093
Symbol 1093 MovieClipUses:1092Used by:1094
Symbol 1094 MovieClipUses:1093Used by:1095
Symbol 1095 MovieClip {Fla.TambourineMC}Uses:1081 1091 1094Used by:1096 1286 1294 1340
Symbol 1096 MovieClip {Level24}Uses:1065 593 595 1066 1067 1068 1069 601 603 605 607 615 611 921 1061 1071 617 613 1049 659 708 739 788 819 628 1080 959 924 626 830 1095 677 997 900 901
Symbol 1097 GraphicUses:163Used by:1180
Symbol 1098 GraphicUsed by:1180
Symbol 1099 GraphicUsed by:1180
Symbol 1100 GraphicUsed by:1180
Symbol 1101 GraphicUsed by:1180
Symbol 1102 GraphicUsed by:1103
Symbol 1103 MovieClipUses:1102Used by:1114
Symbol 1104 GraphicUsed by:1105
Symbol 1105 MovieClipUses:1104Used by:1113
Symbol 1106 GraphicUsed by:1107
Symbol 1107 MovieClipUses:1106Used by:1108
Symbol 1108 MovieClipUses:1107Used by:1112
Symbol 1109 GraphicUsed by:1110
Symbol 1110 MovieClipUses:1109Used by:1111
Symbol 1111 MovieClipUses:1110Used by:1112
Symbol 1112 MovieClipUses:1108 1111Used by:1113
Symbol 1113 MovieClipUses:1105 1112Used by:1114
Symbol 1114 MovieClip {Fla.WindSensorMC}Uses:1103 1113Used by:1180 1200 1210 1235 1247 1259 1363
Symbol 1115 GraphicUsed by:1124
Symbol 1116 GraphicUsed by:1117
Symbol 1117 MovieClipUses:1116Used by:1124
Symbol 1118 GraphicUsed by:1120
Symbol 1119 GraphicUsed by:1120
Symbol 1120 MovieClipUses:1118 1119Used by:1124
Symbol 1121 GraphicUsed by:1124
Symbol 1122 GraphicUsed by:1123
Symbol 1123 MovieClipUses:1122Used by:1124
Symbol 1124 MovieClip {Fla.FanMC}Uses:1115 1117 1120 1121 1123Used by:1180 1200 1210 1235 1247 1259 1363
Symbol 1125 GraphicUsed by:1126
Symbol 1126 MovieClipUses:1125Used by:1177
Symbol 1127 GraphicUsed by:1128
Symbol 1128 MovieClipUses:1127Used by:1177
Symbol 1129 GraphicUsed by:1130
Symbol 1130 MovieClipUses:1129Used by:1177
Symbol 1131 GraphicUsed by:1132
Symbol 1132 MovieClipUses:1131Used by:1177
Symbol 1133 GraphicUsed by:1134
Symbol 1134 MovieClipUses:1133Used by:1177
Symbol 1135 GraphicUsed by:1136
Symbol 1136 MovieClipUses:1135Used by:1177
Symbol 1137 GraphicUsed by:1138
Symbol 1138 MovieClipUses:1137Used by:1177
Symbol 1139 GraphicUsed by:1140
Symbol 1140 MovieClipUses:1139Used by:1177
Symbol 1141 GraphicUsed by:1142
Symbol 1142 MovieClipUses:1141Used by:1177
Symbol 1143 GraphicUsed by:1144
Symbol 1144 MovieClipUses:1143Used by:1177
Symbol 1145 GraphicUsed by:1176
Symbol 1146 GraphicUsed by:1176
Symbol 1147 GraphicUsed by:1176
Symbol 1148 GraphicUsed by:1176
Symbol 1149 GraphicUsed by:1176
Symbol 1150 GraphicUsed by:1176
Symbol 1151 GraphicUsed by:1176
Symbol 1152 GraphicUsed by:1176
Symbol 1153 GraphicUsed by:1176
Symbol 1154 GraphicUsed by:1176
Symbol 1155 GraphicUsed by:1176
Symbol 1156 GraphicUsed by:1176
Symbol 1157 GraphicUsed by:1176
Symbol 1158 GraphicUsed by:1176
Symbol 1159 GraphicUsed by:1176
Symbol 1160 GraphicUsed by:1176
Symbol 1161 GraphicUsed by:1176
Symbol 1162 GraphicUsed by:1176
Symbol 1163 GraphicUsed by:1176
Symbol 1164 GraphicUsed by:1176
Symbol 1165 GraphicUsed by:1176
Symbol 1166 GraphicUsed by:1176
Symbol 1167 GraphicUsed by:1176
Symbol 1168 GraphicUsed by:1176
Symbol 1169 GraphicUsed by:1176
Symbol 1170 GraphicUsed by:1176
Symbol 1171 GraphicUsed by:1176
Symbol 1172 GraphicUsed by:1176
Symbol 1173 GraphicUsed by:1176
Symbol 1174 GraphicUsed by:1176
Symbol 1175 GraphicUsed by:1176
Symbol 1176 MovieClipUses:1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175Used by:1177
Symbol 1177 MovieClip {Fla.DragonMC}Uses:1126 1128 1130 1132 1134 1136 1138 1140 1142 1144 1176Used by:1180 1363
Symbol 1178 GraphicUsed by:1179
Symbol 1179 MovieClip {LDRec_palka}Uses:1178Used by:1180 1217 1259 1318 1340 1353
Symbol 1180 MovieClip {Level23}Uses:1097 593 595 1098 1099 1100 1101 601 603 1059 607 605 1061 611 615 617 921 613 1071 1114 1124 677 626 708 739 788 819 659 830 1063 1177 959 1179 924 993 995 997 900 901
Symbol 1181 GraphicUses:163Used by:1194
Symbol 1182 GraphicUsed by:1194
Symbol 1183 GraphicUsed by:1194
Symbol 1184 GraphicUsed by:1194
Symbol 1185 GraphicUsed by:1194
Symbol 1186 GraphicUsed by:1187
Symbol 1187 MovieClipUses:1186Used by:1193
Symbol 1188 GraphicUsed by:1189
Symbol 1189 MovieClipUses:1188Used by:1193
Symbol 1190 GraphicUsed by:1191
Symbol 1191 MovieClipUses:1190Used by:1193
Symbol 1192 GraphicUsed by:1193
Symbol 1193 MovieClip {Fla.PunchBoxMC}Uses:1187 1189 1191 1192Used by:1194 1210 1228 1235 1276 1302
Symbol 1194 MovieClip {Level22}Uses:1181 593 595 1182 1183 1184 1185 601 603 1059 605 615 611 613 617 1061 924 909 1193 677 1051 1049 659 708 739 788 819 628 1080 626 830 900 901
Symbol 1195 GraphicUses:163Used by:1200
Symbol 1196 GraphicUsed by:1200
Symbol 1197 GraphicUsed by:1200
Symbol 1198 GraphicUsed by:1200
Symbol 1199 GraphicUsed by:1200
Symbol 1200 MovieClip {Level21}Uses:1195 593 595 1196 1197 1198 1199 601 603 605 607 611 615 617 921 1061 613 708 739 788 819 659 628 657 924 977 1114 1124 677 821 1049 823 993 995 997 830 900 901
Symbol 1201 GraphicUses:163Used by:1204
Symbol 1202 GraphicUsed by:1204
Symbol 1203 GraphicUsed by:1204
Symbol 1204 MovieClip {Level20}Uses:1201 593 595 1202 1203 601 603 1059 605 607 611 617 615 626 676 997 924 830 659 708 739 788 819 1049 977 900 901
Symbol 1205 GraphicUses:163Used by:1210
Symbol 1206 GraphicUsed by:1210
Symbol 1207 GraphicUsed by:1210
Symbol 1208 GraphicUsed by:1210
Symbol 1209 GraphicUsed by:1210
Symbol 1210 MovieClip {Level19}Uses:1205 593 595 1206 1207 1208 1209 601 603 1059 605 611 615 617 613 1061 626 607 977 708 739 788 819 659 830 993 995 997 999 677 1063 1080 924 1114 1124 909 1193 628 900 901
Symbol 1211 GraphicUses:163Used by:1217
Symbol 1212 GraphicUsed by:1217
Symbol 1213 GraphicUsed by:1217
Symbol 1214 GraphicUsed by:1217
Symbol 1215 GraphicUsed by:1217
Symbol 1216 GraphicUsed by:1217
Symbol 1217 MovieClip {Level18}Uses:1211 593 595 1212 1213 1214 1215 601 1059 603 607 605 1061 611 613 617 921 615 1071 676 1051 659 993 995 997 677 626 1179 959 832 708 739 788 819 830 628 977 1030 1216 900 901
Symbol 1218 GraphicUses:163Used by:1228 1235
Symbol 1219 GraphicUsed by:1228
Symbol 1220 GraphicUsed by:1228
Symbol 1221 GraphicUsed by:1228
Symbol 1222 GraphicUsed by:1228
Symbol 1223 GraphicUsed by:1228
Symbol 1224 GraphicUsed by:1225
Symbol 1225 MovieClip {MovingPlatformSensorMC}Uses:1224Used by:1228 1308
Symbol 1226 GraphicUsed by:1227
Symbol 1227 MovieClip {MovingPlatformYMC}Uses:1226Used by:1228 1308
Symbol 1228 MovieClip {Level17}Uses:1218 605 1219 593 595 1220 1221 1222 1223 601 603 1059 607 611 615 617 921 626 1225 1227 659 676 677 830 1080 628 708 739 788 819 909 1193 900 901
Symbol 1229 GraphicUsed by:1235
Symbol 1230 GraphicUsed by:1235
Symbol 1231 GraphicUsed by:1235
Symbol 1232 GraphicUsed by:1235
Symbol 1233 GraphicUsed by:1235
Symbol 1234 GraphicUsed by:1235
Symbol 1235 MovieClip {Level16}Uses:1218 605 1229 593 595 1230 1231 1232 1233 601 603 1059 607 613 611 1061 1071 615 617 921 909 919 677 1049 659 708 739 788 819 628 1114 1124 1080 1193 1030 1234 977 900 901
Symbol 1236 GraphicUses:163Used by:1247
Symbol 1237 GraphicUsed by:1247
Symbol 1238 GraphicUsed by:1247
Symbol 1239 GraphicUsed by:1247
Symbol 1240 GraphicUsed by:1247
Symbol 1241 GraphicUsed by:1242
Symbol 1242 MovieClipUses:1241Used by:1243
Symbol 1243 MovieClipUses:1242Used by:1247 1268 1294 1302 1318 1331 1340 1353 1363 1371
Symbol 1244 FontUsed by:1245 1246 1256 1265 1266 1267 1275 1292 1293 1300 1301 1316 1317 1330 1338 1347 1349 1351 1361 1370
Symbol 1245 TextUses:1244Used by:1247 1363
Symbol 1246 TextUses:1244Used by:1247 1363
Symbol 1247 MovieClip {Level15}Uses:1236 593 595 1237 1238 1239 1240 601 607 603 1059 609 605 615 617 921 611 613 1061 1071 1243 1245 1246 1080 708 739 788 819 659 830 924 993 995 997 677 977 1114 1124 821 823 1049 900 901
Symbol 1248 GraphicUses:163Used by:1259
Symbol 1249 GraphicUsed by:1259
Symbol 1250 GraphicUsed by:1259
Symbol 1251 GraphicUsed by:1259
Symbol 1252 GraphicUsed by:1259
Symbol 1253 GraphicUsed by:1259
Symbol 1254 GraphicUsed by:1255
Symbol 1255 MovieClipUses:1254Used by:1259 1276 1302 1318 1363
Symbol 1256 TextUses:1244Used by:1259
Symbol 1257 GraphicUsed by:1258
Symbol 1258 MovieClip {LDRec_YashchikMC}Uses:1257Used by:1259 1286
Symbol 1259 MovieClip {Level14}Uses:1248 593 595 1249 1250 1251 1252 601 1253 1255 1256 1059 603 607 605 617 921 615 613 611 1061 708 739 788 819 659 993 995 997 999 677 1080 830 1179 1258 1114 1124 924 821 1049 823 900 901
Symbol 1260 GraphicUses:163Used by:1268
Symbol 1261 GraphicUsed by:1268
Symbol 1262 GraphicUsed by:1268
Symbol 1263 GraphicUsed by:1268
Symbol 1264 GraphicUsed by:1268
Symbol 1265 TextUses:1244Used by:1268
Symbol 1266 TextUses:1244Used by:1268
Symbol 1267 TextUses:1244Used by:1268
Symbol 1268 MovieClip {Level13}Uses:1260 593 595 1261 1262 1263 1264 601 1243 605 607 921 615 617 1071 1265 1266 1267 924 659 708 739 788 819 628 657 900 901
Symbol 1269 GraphicUses:163Used by:1276
Symbol 1270 GraphicUsed by:1276
Symbol 1271 GraphicUsed by:1276
Symbol 1272 GraphicUsed by:1276
Symbol 1273 GraphicUsed by:1276
Symbol 1274 GraphicUsed by:1276
Symbol 1275 TextUses:1244Used by:1276 1363
Symbol 1276 MovieClip {Level12}Uses:1269 593 595 1270 1271 1272 1273 601 1274 1255 1275 607 1059 603 605 1061 613 611 921 615 617 708 739 788 819 659 821 1049 823 677 997 830 909 1193 900 901
Symbol 1277 GraphicUsed by:1278
Symbol 1278 MovieClip {SRoundBall}Uses:1277Used by:1286
Symbol 1279 GraphicUses:163Used by:1286
Symbol 1280 GraphicUsed by:1286
Symbol 1281 GraphicUsed by:1286
Symbol 1282 GraphicUsed by:1286
Symbol 1283 GraphicUsed by:1286
Symbol 1284 GraphicUsed by:1285
Symbol 1285 MovieClip {Fla.DRec_woodMC}Uses:1284 976Used by:1286 1324
Symbol 1286 MovieClip {Level11}Uses:1279 593 595 1280 1281 1282 1283 601 607 605 617 921 615 1071 1278 1285 708 739 788 819 659 959 830 1258 1095 677 1080 909 919 977 900 901
Symbol 1287 GraphicUses:163Used by:1294
Symbol 1288 GraphicUsed by:1294
Symbol 1289 GraphicUsed by:1294
Symbol 1290 GraphicUsed by:1294
Symbol 1291 GraphicUsed by:1294
Symbol 1292 TextUses:1244Used by:1294
Symbol 1293 TextUses:1244Used by:1294
Symbol 1294 MovieClip {Level10}Uses:1287 593 595 1288 1289 1290 1291 601 607 605 921 613 611 617 615 1051 909 919 677 708 739 788 819 659 959 830 993 995 997 1095 832 1049 1243 1292 1293 900 901
Symbol 1295 GraphicUses:163Used by:1302
Symbol 1296 GraphicUsed by:1302
Symbol 1297 GraphicUsed by:1302
Symbol 1298 GraphicUsed by:1302
Symbol 1299 GraphicUsed by:1302
Symbol 1300 TextUses:1244Used by:1302
Symbol 1301 TextUses:1244Used by:1302
Symbol 1302 MovieClip {Level9}Uses:1295 593 595 1296 1297 1298 1299 601 1059 603 605 607 611 1071 1061 613 921 617 1243 1255 1300 1301 708 739 788 819 659 1049 909 1193 677 830 993 995 997 999 900 901
Symbol 1303 GraphicUses:163Used by:1308
Symbol 1304 GraphicUsed by:1308
Symbol 1305 GraphicUsed by:1308
Symbol 1306 GraphicUsed by:1308
Symbol 1307 GraphicUsed by:1308
Symbol 1308 MovieClip {Level8}Uses:1303 593 595 1304 1305 1306 1307 601 607 615 617 921 626 1225 1227 659 676 677 708 739 788 819 977 900 901
Symbol 1309 GraphicUses:163Used by:1318
Symbol 1310 GraphicUsed by:1318
Symbol 1311 GraphicUsed by:1318
Symbol 1312 GraphicUsed by:1318
Symbol 1313 GraphicUsed by:1318
Symbol 1314 GraphicUsed by:1318
Symbol 1315 GraphicUsed by:1318
Symbol 1316 TextUses:1244Used by:1318
Symbol 1317 TextUses:1244Used by:1318
Symbol 1318 MovieClip {Level7}Uses:1309 593 595 1310 1311 1312 1313 601 1059 603 605 1061 611 613 708 739 788 819 659 993 995 997 999 677 1179 1314 626 830 832 1315 959 676 1243 1316 1255 1317 900 901
Symbol 1319 GraphicUses:163Used by:1324
Symbol 1320 GraphicUsed by:1324
Symbol 1321 GraphicUsed by:1324
Symbol 1322 GraphicUsed by:1324
Symbol 1323 GraphicUsed by:1324
Symbol 1324 MovieClip {Level6}Uses:1319 593 595 1320 1321 1322 1323 601 605 1059 603 607 613 611 1061 1071 615 921 617 977 1285 1080 830 659 909 919 677 1051 708 739 788 819 959 821 823 1049 900 901
Symbol 1325 GraphicUses:163Used by:1331
Symbol 1326 GraphicUsed by:1331
Symbol 1327 GraphicUsed by:1331
Symbol 1328 GraphicUsed by:1331
Symbol 1329 GraphicUsed by:1331
Symbol 1330 TextUses:1244Used by:1331
Symbol 1331 MovieClip {Level5}Uses:1325 593 595 1326 1327 1328 1329 601 607 1059 603 605 611 1061 613 1071 617 708 739 788 819 659 1051 909 919 677 977 821 823 1049 1243 1330 900 901
Symbol 1332 GraphicUses:163Used by:1340
Symbol 1333 GraphicUsed by:1340
Symbol 1334 GraphicUsed by:1340
Symbol 1335 GraphicUsed by:1340
Symbol 1336 GraphicUsed by:1340
Symbol 1337 GraphicUsed by:1340
Symbol 1338 TextUses:1244Used by:1340
Symbol 1339 GraphicUsed by:1340
Symbol 1340 MovieClip {Level4}Uses:1332 593 595 1333 1334 1335 1336 601 1337 603 1059 607 605 609 1095 677 611 613 615 1071 617 921 1243 1338 1051 1049 708 739 788 819 659 830 626 959 1179 1063 1339 900 901
Symbol 1341 GraphicUses:163Used by:1353
Symbol 1342 GraphicUsed by:1353
Symbol 1343 GraphicUsed by:1353
Symbol 1344 GraphicUsed by:1353
Symbol 1345 GraphicUsed by:1353
Symbol 1346 GraphicUsed by:1353
Symbol 1347 TextUses:1244Used by:1353
Symbol 1348 GraphicUsed by:1353
Symbol 1349 TextUses:1244Used by:1353
Symbol 1350 GraphicUsed by:1353
Symbol 1351 TextUses:1244Used by:1353 1371
Symbol 1352 GraphicUsed by:1353
Symbol 1353 MovieClip {Level3}Uses:1341 593 595 1342 1343 1344 1345 601 1346 1243 1347 607 603 605 611 613 1071 615 921 617 1348 1349 1350 1351 1049 708 739 788 819 659 830 959 1179 1063 626 1352 900 901
Symbol 1354 GraphicUses:163Used by:1363
Symbol 1355 GraphicUsed by:1363
Symbol 1356 GraphicUsed by:1363
Symbol 1357 GraphicUsed by:1363
Symbol 1358 GraphicUsed by:1363
Symbol 1359 GraphicUsed by:1363
Symbol 1360 GraphicUsed by:1363
Symbol 1361 TextUses:1244Used by:1363
Symbol 1362 GraphicUsed by:1363
Symbol 1363 MovieClip {Level2}Uses:1354 593 595 1355 1356 1357 1358 601 605 607 1243 603 1359 1059 1360 611 921 617 1061 1071 613 615 1245 1361 1246 1362 1255 1275 1080 708 739 788 819 659 830 1114 1124 677 977 1177 821 823 1049 900 901
Symbol 1364 GraphicUses:163Used by:1371
Symbol 1365 GraphicUsed by:1371
Symbol 1366 GraphicUsed by:1371
Symbol 1367 GraphicUsed by:1371
Symbol 1368 GraphicUsed by:1371
Symbol 1369 GraphicUsed by:1371
Symbol 1370 TextUses:1244Used by:1371
Symbol 1371 MovieClip {Level1}Uses:1364 593 595 1365 1366 1367 1368 601 1369 603 1059 605 607 611 921 615 617 1071 1243 1370 1351 1080 708 739 788 819 659 830 977 900 901
Symbol 1372 GraphicUsed by:1373
Symbol 1373 MovieClip {GroundMC}Uses:1372
Symbol 1374 GraphicUsed by:1382
Symbol 1375 GraphicUsed by:1382
Symbol 1376 GraphicUsed by:1382
Symbol 1377 GraphicUsed by:1382
Symbol 1378 GraphicUsed by:1382
Symbol 1379 GraphicUsed by:1382
Symbol 1380 GraphicUsed by:1382
Symbol 1381 GraphicUsed by:1382
Symbol 1382 MovieClip {Fla.ExplosionShort}Uses:1374 1375 1376 1377 578 548 549 579 550 1378 1379 585 552 1380 587 553 584 1381
Symbol 1383 MovieClip {ExplosionCentreMC}Uses:556
Symbol 1384 GraphicUsed by:1385
Symbol 1385 MovieClipUses:1384Used by:1391
Symbol 1386 GraphicUsed by:1390
Symbol 1387 GraphicUsed by:1390
Symbol 1388 GraphicUsed by:1390
Symbol 1389 GraphicUsed by:1390
Symbol 1390 MovieClip {Fla.platform_break}Uses:1386 1387 1388 1389Used by:1391
Symbol 1391 MovieClip {BreakablePlatformMC}Uses:1385 1390
Symbol 1392 MovieClipUsed by:Timeline

Instance Names

"mc_Loadbarre"Frame 1Symbol 27 MovieClip {BuryMyBones_JuegosGratis_NoLock_fla.loader_6}
"btn_preloader"Frame 1Symbol 29 Button
"btn_Sponsor44"Symbol 142 MovieClip {Fla.IntroAnimation} Frame 1Symbol 96 Button
"introBtnoSponsor"Symbol 142 MovieClip {Fla.IntroAnimation} Frame 1Symbol 29 Button
"btn_PlayIntro"Symbol 142 MovieClip {Fla.IntroAnimation} Frame 1Symbol 100 Button
"btn_Sponsor99"Symbol 142 MovieClip {Fla.IntroAnimation} Frame 1Symbol 104 Button
"moreGames"Symbol 201 MovieClip {MainMenuMC} Frame 1Symbol 172 Button
"start"Symbol 201 MovieClip {MainMenuMC} Frame 1Symbol 177 Button
"FB_btn"Symbol 201 MovieClip {MainMenuMC} Frame 1Symbol 180 Button
"TWTR_btn"Symbol 201 MovieClip {MainMenuMC} Frame 1Symbol 183 Button
"LOGO_btn"Symbol 201 MovieClip {MainMenuMC} Frame 1Symbol 184 Button
"sound"Symbol 201 MovieClip {MainMenuMC} Frame 1Symbol 162 MovieClip {Fla.SoundBtn2}
"music"Symbol 201 MovieClip {MainMenuMC} Frame 1Symbol 200 MovieClip {Fla.MusicBtnMC2}
"lvlTxt"Symbol 261 MovieClip {LvlMenuMC} Frame 1Symbol 214 EditableText
"scoreTxt"Symbol 261 MovieClip {LvlMenuMC} Frame 1Symbol 215 EditableText
"toLvlMenu"Symbol 261 MovieClip {LvlMenuMC} Frame 1Symbol 226 Button
"helpBtn"Symbol 261 MovieClip {LvlMenuMC} Frame 1Symbol 238 Button
"retry"Symbol 261 MovieClip {LvlMenuMC} Frame 1Symbol 247 Button
"music"Symbol 261 MovieClip {LvlMenuMC} Frame 1Symbol 258 MovieClip {Fla.MusicBtnMC}
"sound"Symbol 261 MovieClip {LvlMenuMC} Frame 1Symbol 212 MovieClip {Fla.SoundBtn}
"higScorePerLvlTxt"Symbol 261 MovieClip {LvlMenuMC} Frame 1Symbol 259 EditableText
"FB_btn"Symbol 261 MovieClip {LvlMenuMC} Frame 1Symbol 180 Button
"TWTR_btn"Symbol 261 MovieClip {LvlMenuMC} Frame 1Symbol 183 Button
"LOGO_btn"Symbol 261 MovieClip {LvlMenuMC} Frame 1Symbol 184 Button
"retry"Symbol 288 MovieClip Frame 1Symbol 275 Button
"toLvlMenu"Symbol 288 MovieClip Frame 1Symbol 280 Button
"helpBtn"Symbol 288 MovieClip Frame 1Symbol 287 Button
"FB_btn"Symbol 288 MovieClip Frame 1Symbol 180 Button
"TWTR_btn"Symbol 288 MovieClip Frame 1Symbol 183 Button
"LOGO_btn"Symbol 288 MovieClip Frame 1Symbol 184 Button
"board"Symbol 289 MovieClip {Fla.CompleteOutOfAmmoMC} Frame 1Symbol 288 MovieClip
"completeMC"Symbol 290 MovieClip {LevelOutOfAmmoMC} Frame 1Symbol 289 MovieClip {Fla.CompleteOutOfAmmoMC}
"scoreAtLvlCompleteTxt"Symbol 303 MovieClip Frame 1Symbol 294 EditableText
"nextLvl"Symbol 303 MovieClip Frame 1Symbol 301 Button
"retry"Symbol 303 MovieClip Frame 1Symbol 275 Button
"toLvlMenu"Symbol 303 MovieClip Frame 1Symbol 280 Button
"helpBtn"Symbol 303 MovieClip Frame 1Symbol 287 Button
"FB_btn"Symbol 303 MovieClip Frame 1Symbol 180 Button
"TWTR_btn"Symbol 303 MovieClip Frame 1Symbol 183 Button
"LOGO_btn"Symbol 303 MovieClip Frame 1Symbol 184 Button
"board"Symbol 304 MovieClip {Fla.AnimateCompleteMC} Frame 1Symbol 303 MovieClip
"completeMC"Symbol 305 MovieClip {LevelCompleteMC} Frame 1Symbol 304 MovieClip {Fla.AnimateCompleteMC}
"moreGames"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 172 Button
"toMainMenu"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 315 Button
"scoreTxt"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 318 EditableText
"FB_btn"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 180 Button
"TWTR_btn"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 183 Button
"LOGO_btn"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 184 Button
"_1"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 325 Button
"_2"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 331 Button
"_3"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 338 Button
"_4"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 345 Button
"_5"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 352 Button
"_6"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 358 Button
"_7"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 365 Button
"_8"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 372 Button
"_9"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 379 Button
"_10"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 386 Button
"_11"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 393 Button
"_12"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 400 Button
"_13"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 407 Button
"_14"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 414 Button
"_15"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 421 Button
"_16"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 428 Button
"_17"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 435 Button
"_18"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 442 Button
"_19"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 449 Button
"_20"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 456 Button
"_21"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 463 Button
"_22"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 470 Button
"_23"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 477 Button
"_24"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 484 Button
"_25"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 491 Button
"_26"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 498 Button
"_27"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 505 Button
"_28"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 512 Button
"lvlMask"Symbol 518 MovieClip {LevelChooseMenuMC} Frame 1Symbol 517 MovieClip {Fla.MaskLvlMC}
"bombSizeMC"Symbol 590 MovieClip {Fla.BombMC} Frame 1Symbol 557 MovieClip
"_0"Symbol 1000 MovieClip {Level27} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1000 MovieClip {Level27} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_10"Symbol 1052 MovieClip {Level26} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"m10"Symbol 1052 MovieClip {Level26} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_10"Symbol 1052 MovieClip {Level26} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"m10"Symbol 1052 MovieClip {Level26} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1064 MovieClip {Level25} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1064 MovieClip {Level25} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"m10"Symbol 1096 MovieClip {Level24} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"m10"Symbol 1096 MovieClip {Level24} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"m10"Symbol 1096 MovieClip {Level24} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"windDirect"Symbol 1114 MovieClip {Fla.WindSensorMC} Frame 1Symbol 1103 MovieClip
"_flameLength"Symbol 1177 MovieClip {Fla.DragonMC} Frame 1Symbol 1126 MovieClip
"_5"Symbol 1177 MovieClip {Fla.DragonMC} Frame 52Symbol 1142 MovieClip
"_0"Symbol 1180 MovieClip {Level23} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1180 MovieClip {Level23} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1200 MovieClip {Level21} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1200 MovieClip {Level21} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"m10"Symbol 1204 MovieClip {Level20} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1210 MovieClip {Level19} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1210 MovieClip {Level19} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1217 MovieClip {Level18} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1217 MovieClip {Level18} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1247 MovieClip {Level15} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1247 MovieClip {Level15} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1259 MovieClip {Level14} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1259 MovieClip {Level14} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"m1"Symbol 1259 MovieClip {Level14} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"m20"Symbol 1276 MovieClip {Level12} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1294 MovieClip {Level10} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1294 MovieClip {Level10} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1302 MovieClip {Level9} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1302 MovieClip {Level9} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1302 MovieClip {Level9} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1302 MovieClip {Level9} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1318 MovieClip {Level7} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}
"_0"Symbol 1318 MovieClip {Level7} Frame 1Symbol 997 MovieClip {RevoluteJointMotorMC}

Special Tags

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

Labels

"preloader"Frame 1
"sources"Frame 2
"main"Frame 3
"gold"Symbol 145 MovieClip {Fla.MedalsForLvlMC} Frame 2
"silver"Symbol 145 MovieClip {Fla.MedalsForLvlMC} Frame 40
"bronze"Symbol 145 MovieClip {Fla.MedalsForLvlMC} Frame 74
"soundOn"Symbol 162 MovieClip {Fla.SoundBtn2} Frame 1
"soundOff"Symbol 162 MovieClip {Fla.SoundBtn2} Frame 2
"musicOn"Symbol 200 MovieClip {Fla.MusicBtnMC2} Frame 1
"musicOff"Symbol 200 MovieClip {Fla.MusicBtnMC2} Frame 2
"soundOn"Symbol 212 MovieClip {Fla.SoundBtn} Frame 1
"soundOff"Symbol 212 MovieClip {Fla.SoundBtn} Frame 2
"musicOn"Symbol 258 MovieClip {Fla.MusicBtnMC} Frame 1
"musicOff"Symbol 258 MovieClip {Fla.MusicBtnMC} Frame 2
"appear"Symbol 536 MovieClip {Fla.SkullBallMC} Frame 2
"normal"Symbol 536 MovieClip {Fla.SkullBallMC} Frame 31
"disappear"Symbol 536 MovieClip {Fla.SkullBallMC} Frame 32
"crash"Symbol 626 MovieClip {Fla.BaloonUnpopMC} Frame 2
"crash"Symbol 628 MovieClip {Fla.RopeShortMC} Frame 2
"crash"Symbol 657 MovieClip {Fla.AirShipMC} Frame 18
"tok"Symbol 708 MovieClip {Fla.SkeletonsHandMC} Frame 2
"fire"Symbol 708 MovieClip {Fla.SkeletonsHandMC} Frame 3
"tok"Symbol 739 MovieClip {Fla.SkeletonsLegMC} Frame 2
"fire"Symbol 739 MovieClip {Fla.SkeletonsLegMC} Frame 3
"tok"Symbol 788 MovieClip {Fla.SkeletonsHeadMC} Frame 2
"fire"Symbol 788 MovieClip {Fla.SkeletonsHeadMC} Frame 3
"tok"Symbol 819 MovieClip {Fla.SkeletonsBodyMC} Frame 2
"fire"Symbol 819 MovieClip {Fla.SkeletonsBodyMC} Frame 3
"crash"Symbol 830 MovieClip {Fla.RopeMC} Frame 2
"crash"Symbol 959 MovieClip {Fla.DBRe_wood} Frame 2
"crash"Symbol 977 MovieClip {Fla.SBRe_wood} Frame 2
"off"Symbol 1030 MovieClip {Fla.CurrentMC} Frame 1
"on"Symbol 1030 MovieClip {Fla.CurrentMC} Frame 2
"crash"Symbol 1049 MovieClip {Fla.SRou_WoodWheelMC} Frame 2
"crash"Symbol 1080 MovieClip {Fla.BaloonMC} Frame 2
"strike"Symbol 1095 MovieClip {Fla.TambourineMC} Frame 2
"flame"Symbol 1177 MovieClip {Fla.DragonMC} Frame 11
"noFlame"Symbol 1177 MovieClip {Fla.DragonMC} Frame 40
"endMove"Symbol 1177 MovieClip {Fla.DragonMC} Frame 52
"crash"Symbol 1285 MovieClip {Fla.DRec_woodMC} Frame 2
"out"Symbol 1391 MovieClip {BreakablePlatformMC} Frame 1
"over"Symbol 1391 MovieClip {BreakablePlatformMC} Frame 2
"crash"Symbol 1391 MovieClip {BreakablePlatformMC} Frame 3




http://swfchan.com/42/207753/info.shtml
Created: 23/7 -2019 03:22:57 Last modified: 23/7 -2019 03:22:57 Server time: 22/12 -2024 22:00:43