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

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

Go-Home-Ball.swf

This is the info page for
Flash #71010

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


Text
press 'Space' to start

Walkthrough

Walkthrough

Walkthrough

This site does not support this game.
Please visit King.com to play.

Main Menu

Main Menu

Main Menu

Resume Game

Resume Game

Resume Game

Music

Sound

Off

Off

Off

On

On

On

/

<p align="center"><font face="Lithos Pro Regular" size="22" color="#ccff00" letterSpacing="0.000000" kerning="1"><b>Level 10</b></font></p>

<p align="center"><font face="Lithos Pro Regular" size="22" color="#ccff00" letterSpacing="0.000000" kerning="1"><b>Level 10</b></font></p>

<p align="center"><font face="Lithos Pro Regular" size="22" color="#a8fe5a" letterSpacing="0.000000" kerning="1"><b>Level 10</b></font></p>

Start

Start

Try Again

Try Again

Try Again

Next Level

Next Level

Next Level

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

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

Go Home Ball

Start Game

Start Game

Start Game

More Games

More Games

More Games

Hi-Scores

Hi-Scores

Hi-Scores

Credits

Credits

Credits

Music

Sound

Add this game to
your website

Add this game to
your website

Add this game to
your website

Select Level

Sigma Studio Team

Dmitry Sergienko

Beta Testing

Olga Bogdanova

Level Design

Box2d

Physic Engine

Mary Detkova

Graphics

Max Derevyagin

Programming / Music

Johnny-K

Special thanks to

1

<p align="center"><font face="Lithos Pro Regular" size="22" color="#d6feab" letterSpacing="0.000000" kerning="1"><b>Level 22 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></font></p>

<p align="left"><font face="Lithos Pro Regular" size="16" color="#d6feab" letterSpacing="0.000000" kerning="1"><b>Stars 0/0</b></font></p>

<p align="left"><font face="Lithos Pro Regular" size="16" color="#d6feab" letterSpacing="0.000000" kerning="1"><b>Score 0000</b></font></p>

<p align="left"><font face="Lithos Pro Regular" size="16" color="#d6feab" letterSpacing="0.000000" kerning="1"><b>0:00 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></font></p>

Restart

Restart

Menu

Menu

Level 1: How To Play?

1. Use the 'A/D' or 'Left/Right' arrow keys
to rotate the stick;
2. Use Left Mouse Button to put the stick;
3. Stick's life time - 2 seconds;
4. You can't  put more than one stick at
once;

2

3

Level 3: How To Play?

1. Use the Spring cursor like a stick;
2. You must collect all stars;
3. You can't rotate the Spring;

4

5

6

Level 6:
How To Play?

1. Click on the button
to drop a ball;
2. Use 'R' key for fast
restart;
3. Don't forget about
the game timer!

7

8

9

Level 9: How To Play?

1. Use the hand cursor to push the ball;
2. Use the 'A/D' or 'Left/Right' arrow
keys to rotate the hand;
3. Use the 'W/S' or 'Up/Down' arrow
keys to change from hand to stick ;

10

11

Level 11: How To Play?

1. Use the 'W/S' or 'Up/Down' arrow
keys to change the game cursor;

12

13

14

15

16

17

18

19

20

21

22

23

24

Game complete!

Submit SCORE

Submit Score

Submit Score

<p align="left"><font face="Lithos Pro Regular" size="22" color="#a8fe5a" letterSpacing="0.000000" kerning="1"><b>Player</b></font></p>

<p align="center"><font face="Lithos Pro Regular" size="22" color="#d6feab" letterSpacing="0.000000" kerning="1"><b>Your score: 0000</b></font></p>

Enter Name:

ActionScript [AS3]

Section 1
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2CircleDef extends b2ShapeDef { public var localPosition:b2Vec2; public var radius:Number; public function b2CircleDef(){ localPosition = new b2Vec2(0, 0); super(); type = b2Shape.e_circleShape; radius = 1; } } }//package Box2D.Collision.Shapes
Section 2
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_radius:Number; public var m_localPosition:b2Vec2; public function b2CircleShape(_arg1:b2ShapeDef){ var _local2:b2CircleDef; m_localPosition = new b2Vec2(); super(_arg1); _local2 = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; _local3 = _arg1.R; _local4 = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local6:b2Mat22; 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; _local6 = _arg1.R; _local7 = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); _local8 = (_arg1.position.x + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); _local9 = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); _local11 = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; _local12 = (_arg4.p2.x - _arg4.p1.x); _local13 = (_arg4.p2.y - _arg4.p1.y); _local14 = ((_local9 * _local12) + (_local10 * _local13)); _local15 = ((_local12 * _local12) + (_local13 * _local13)); _local16 = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; _local17 = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = _arg2.R; _local5 = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local6 = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; _local7 = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local8 = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } public function GetRadius():Number{ return (m_radius); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number; var _local3:Number; _local2 = (m_localPosition.x - _arg1.x); _local3 = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; _local3 = _arg2.R; _local4 = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } } }//package Box2D.Collision.Shapes
Section 3
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2FilterData { public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public var categoryBits:uint;// = 1 public function b2FilterData(){ categoryBits = 1; maskBits = 0xFFFF; groupIndex = 0; super(); } public function Copy():b2FilterData{ var _local1:b2FilterData; _local1 = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 4
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ mass = 0; center = new b2Vec2(0, 0); I = 0; super(); } } }//package Box2D.Collision.Shapes
Section 5
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertexCount:int; public var vertices:Array; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ var _local1:int; vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; _local1 = 0; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); if (_arg3){ _local5 = _arg3; _local6 = s_mat; _local6.Set(_arg4); _local7 = 0; while (_local7 < vertexCount) { _arg3 = vertices[_local7]; _arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y))); _arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y))); _arg3.x = _arg1; _local7++; }; }; } public function SetAsBox(_arg1:Number, _arg2:Number):void{ vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); } } }//package Box2D.Collision.Shapes
Section 6
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { public var m_vertices:Array; public var m_normals:Array; private var s_supportVec:b2Vec2; public var m_obb:b2OBB; public var m_coreVertices:Array; public var m_centroid:b2Vec2; public var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local2:b2PolygonDef; var _local3:int; var _local4:int; var _local5:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; _local2 = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; _local4 = _local3; _local5 = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; var _local10:Number; _local4 = _arg1.R; _local5 = (_arg2.x - _arg1.position.x); _local6 = (_arg2.y - _arg1.position.y); _local7 = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); _local8 = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); _local9 = 0; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } public function GetCoreVertices():Array{ return (m_coreVertices); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ 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 _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:Number; var _local21:Number; _local6 = 0; _local7 = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; _local12 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local13 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; _local14 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local15 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local16 = (_local14 - _local12); _local17 = (_local15 - _local13); _local18 = -1; _local19 = 0; while (_local19 < m_vertexCount) { _local11 = m_vertices[_local19]; _local8 = (_local11.x - _local12); _local9 = (_local11.y - _local13); _local11 = m_normals[_local19]; _local20 = ((_local11.x * _local8) + (_local11.y * _local9)); _local21 = ((_local11.x * _local16) + (_local11.y * _local17)); if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){ _local6 = (_local20 / _local21); _local18 = _local19; } else { if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){ _local7 = (_local20 / _local21); }; }; if (_local7 < _local6){ return (false); }; _local19++; }; if (_local18 >= 0){ _arg2[0] = _local6; _local10 = _arg1.R; _local11 = m_normals[_local18]; _arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); return (true); }; return (false); } public function GetCentroid():b2Vec2{ return (m_centroid); } override public function ComputeMass(_arg1:b2MassData):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _local2 = 0; _local3 = 0; _local4 = 0; _local5 = 0; _local6 = 0; _local7 = 0; _local8 = (1 / 3); _local9 = 0; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0]; _local12 = (_local10.x - _local6); _local13 = (_local10.y - _local7); _local14 = (_local11.x - _local6); _local15 = (_local11.y - _local7); _local16 = ((_local12 * _local15) - (_local13 * _local14)); _local17 = (0.5 * _local16); _local4 = (_local4 + _local17); _local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x))); _local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y))); _local18 = _local6; _local19 = _local7; _local20 = _local12; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18)); _local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local5 = (_local5 + (_local16 * (_local24 + _local25))); _local9++; }; _arg1.mass = (m_density * _local4); _local2 = (_local2 * (1 / _local4)); _local3 = (_local3 * (1 / _local4)); _arg1.center.Set(_local2, _local3); _arg1.I = (m_density * _local5); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local6:Number; var _local7:Number; var _local8:int; var _local9:Number; var _local10:int; var _local11:Number; _local5 = _arg1.R; _local6 = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); _local7 = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); _local8 = 0; _local4 = m_coreVertices[0]; _local9 = ((_local4.x * _local6) + (_local4.y * _local7)); _local10 = 1; while (_local10 < m_vertexCount) { _local4 = m_coreVertices[_local10]; _local11 = ((_local4.x * _local6) + (_local4.y * _local7)); if (_local11 > _local9){ _local8 = _local10; _local9 = _local11; }; _local10++; }; _local5 = _arg1.R; _local4 = m_coreVertices[_local8]; s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y))); s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB; var _local5:b2AABB; _local4 = s_sweptAABB1; _local5 = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y); _arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y); } public function GetVertices():Array{ return (m_vertices); } public function GetNormals():Array{ return (m_normals); } public function GetOBB():b2OBB{ return (m_obb); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_coreVertices[0])); } public function Centroid(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_centroid)); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local3:int; var _local4:Number; var _local5:Number; m_sweepRadius = 0; _local3 = 0; while (_local3 < m_vertexCount) { _local2 = m_coreVertices[_local3]; _local4 = (_local2.x - _arg1.x); _local5 = (_local2.y - _arg1.y); _local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local4 > m_sweepRadius){ m_sweepRadius = _local4; }; _local3++; }; } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22; var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local5 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); _local6 = _local5; _local4 = m_obb.extents; _local7 = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); _local8 = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; _local9 = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); _local10 = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:int; 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(); _local4 = 0; _local5 = 0; _local6 = 0; _local7 = (1 / 3); _local8 = 0; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local5:Array; var _local6:Number; 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; _local5 = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; _local6 = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 7
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Shape { public var m_type:int; public var m_sweepRadius:Number; public var m_density:Number; public var m_filter:b2FilterData; public var m_friction:Number; public var m_next:b2Shape; public var m_restitution:Number; public var m_userData; public var m_isSensor:Boolean; public var m_proxyId:uint; public var m_body:b2Body; public static const e_polygonShape:int = 1; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_shapeTypeCount:int = 2; private static var s_resetAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_proxyAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxyId = b2Pair.b2_nullProxy; m_filter = _arg1.filter.Copy(); m_isSensor = _arg1.isSensor; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetNext():b2Shape{ return (m_next); } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function GetType():int{ return (m_type); } public function GetRestitution():Number{ return (m_restitution); } public function GetFriction():Number{ return (m_friction); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB; var _local4:Boolean; if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); _local3 = s_resetAABB; ComputeAABB(_local3, _arg2); _local4 = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ var _local4:b2AABB; if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; _local4 = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function ComputeMass(_arg1:b2MassData):void{ } public function IsSensor():Boolean{ return (m_isSensor); } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function GetBody():b2Body{ return (m_body); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB; var _local4:Boolean; _local3 = s_proxyAABB; ComputeAABB(_local3, _arg2); _local4 = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public static function Destroy(_arg1:b2Shape, _arg2):void{ } public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } } }//package Box2D.Collision.Shapes
Section 8
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2ShapeDef { public var isSensor:Boolean;// = false public var density:Number;// = 0 public var type:int; public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var friction:Number;// = 0.2 public function b2ShapeDef(){ type = b2Shape.e_unknownShape; userData = null; friction = 0.2; restitution = 0; density = 0; isSensor = false; filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 9
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var upperBound:b2Vec2; public var lowerBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number; var _local2:Number; var _local3:Boolean; _local1 = (upperBound.x - lowerBound.x); _local2 = (upperBound.y - lowerBound.y); _local3 = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 10
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var proxyId:uint; public var stabbingCount:uint; public var value:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint; var _local3:uint; var _local4:uint; _local2 = value; _local3 = proxyId; _local4 = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//package Box2D.Collision
Section 11
//b2BoundValues (Box2D.Collision.b2BoundValues) package Box2D.Collision { public class b2BoundValues { public var lowerValues:Array; public var upperValues:Array; public function b2BoundValues(){ lowerValues = [0, 0]; upperValues = [0, 0]; super(); } } }//package Box2D.Collision
Section 12
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; public var m_bounds:Array; public var m_freeProxy:uint; public var m_proxyCount:int; public var m_proxyPool:Array; public var m_queryResultCount:int; public var m_pairManager:b2PairManager; public var m_timeStamp:uint; public var m_queryResults:Array; public static const b2_nullEdge:uint = b2Settings.USHRT_MAX; public static const b2_invalid:uint = b2Settings.USHRT_MAX; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local4:Number; var _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; _local4 = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); _local3 = 0; while (_local3 < (b2Settings.b2_maxProxies - 1)) { _local6 = new b2Proxy(); m_proxyPool[_local3] = _local6; _local6.SetNext((_local3 + 1)); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; _local3++; }; _local6 = new b2Proxy(); m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local4:Array; var _local5:Array; var _local6:uint; var _local7:uint; var _local8:Array; var _local9:Array; var _local10:int; var _local11:int; var _local12:b2Proxy; _local4 = new Array(); _local5 = new Array(); ComputeBounds(_local4, _local5, _arg1); _local8 = [_local6]; _local9 = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); _local10 = 0; _local11 = 0; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Commit():void{ m_pairManager.Commit(); } public function GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy; _local2 = m_proxyPool[_arg1]; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){ return (null); }; return (_local2); } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { (m_proxyPool[_local1] as b2Proxy).timeStamp = 0; _local1++; }; m_timeStamp = 1; } else { m_timeStamp++; }; } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local11:uint; var _local12:int; var _local13:int; var _local14:b2Proxy; _local8 = BinarySearch(_arg5, _arg6, _arg3); _local9 = BinarySearch(_arg5, _arg6, _arg4); _local11 = _local8; while (_local11 < _local9) { _local10 = _arg5[_local11]; if (_local10.IsLower()){ IncrementOverlapCount(_local10.proxyId); }; _local11++; }; if (_local8 > 0){ _local12 = (_local8 - 1); _local10 = _arg5[_local12]; _local13 = _local10.stabbingCount; while (_local13) { _local10 = _arg5[_local12]; if (_local10.IsLower()){ _local14 = m_proxyPool[_local10.proxyId]; if (_local8 <= _local14.upperBounds[_arg7]){ IncrementOverlapCount(_local10.proxyId); _local13--; }; }; _local12--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local4 = _arg3.lowerBound.x; _local5 = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); _local6 = _arg3.upperBound.x; _local7 = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local5:uint; var _local6:uint; var _local7:Array; var _local8:Array; var _local9:int; var _local10:int; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:b2Bound; var _local22:int; var _local23:b2Proxy; _local5 = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; _local6 = (2 * m_proxyCount); _local7 = new Array(); _local8 = new Array(); ComputeBounds(_local7, _local8, _arg1); _local9 = 0; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local13 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local16 = new Array(); _local18 = (_local13 - _local12); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local12 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local19 = _local11[_local12]; _local20 = _local11[_local13]; _local19.value = _local7[_local9]; _local19.proxyId = _local5; _local20.value = _local8[_local9]; _local20.proxyId = _local5; _local21 = _local11[int((_local12 - 1))]; _local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount; _local21 = _local11[int((_local13 - 1))]; _local20.stabbingCount = _local21.stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local21 = _local11[_local3]; _local21.stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local19 = _local11[_local3]; _local23 = m_proxyPool[_local19.proxyId]; if (_local19.IsLower()){ _local23.lowerBounds[_local9] = _local3; } else { _local23.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; _local10 = 0; while (_local10 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]); _local10++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local5); } public function DestroyProxy(_arg1:uint):void{ var _local2:b2Bound; var _local3:b2Bound; var _local4:b2Proxy; var _local5:int; var _local6:int; var _local7:int; var _local8:Array; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:int; var _local15:int; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; _local4 = m_proxyPool[_arg1]; _local5 = (2 * m_proxyCount); _local6 = 0; while (_local6 < 2) { _local8 = m_bounds[_local6]; _local9 = _local4.lowerBounds[_local6]; _local10 = _local4.upperBounds[_local6]; _local2 = _local8[_local9]; _local11 = _local2.value; _local3 = _local8[_local10]; _local12 = _local3.value; _local13 = new Array(); _local15 = ((_local10 - _local9) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local9 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = _local9; _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local13 = new Array(); _local15 = ((_local5 - _local10) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local10 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = (_local10 - 1); _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = (_local5 - 2); _local17 = _local9; while (_local17 < _local15) { _local2 = _local8[_local17]; _local19 = m_proxyPool[_local2.proxyId]; if (_local2.IsLower()){ _local19.lowerBounds[_local6] = _local17; } else { _local19.upperBounds[_local6] = _local17; }; _local17++; }; _local15 = (_local10 - 1); _local18 = _local9; while (_local18 < _local15) { _local2 = _local8[_local18]; _local2.stabbingCount--; _local18++; }; Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6); _local6++; }; _local7 = 0; while (_local7 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]); _local7++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local4.userData = null; _local4.overlapCount = b2_invalid; _local4.lowerBounds[0] = b2_invalid; _local4.lowerBounds[1] = b2_invalid; _local4.upperBounds[0] = b2_invalid; _local4.upperBounds[1] = b2_invalid; _local4.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; var _local5:b2Bound; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg2.upperBounds[_local3]]; if (_arg1.lowerValues[_local3] > _local5.value){ return (false); }; _local5 = _local4[_arg2.lowerBounds[_local3]]; if (_arg1.upperValues[_local3] < _local5.value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local5:int; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; _local5 = 0; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy; _local2 = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } public function InRange(_arg1:b2AABB):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = _arg1.lowerBound.x; _local3 = _arg1.lowerBound.y; _local2 = (_local2 - m_worldAABB.upperBound.x); _local3 = (_local3 - m_worldAABB.upperBound.y); _local4 = m_worldAABB.lowerBound.x; _local5 = m_worldAABB.lowerBound.y; _local4 = (_local4 - _arg1.upperBound.x); _local5 = (_local5 - _arg1.upperBound.y); _local2 = b2Math.b2Max(_local2, _local4); _local3 = b2Math.b2Max(_local3, _local5); return ((b2Math.b2Max(_local2, _local3) < 0)); } public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{ var _local3:Array; var _local4:int; var _local5:uint; var _local6:uint; var _local7:b2Bound; var _local8:b2Bound; var _local9:b2Bound; var _local10:uint; var _local11:b2Proxy; var _local12:uint; var _local13:b2Proxy; var _local14:b2BoundValues; var _local15:b2BoundValues; var _local16:Array; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:uint; var _local21:int; var _local22:int; var _local23:uint; var _local24:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; _local12 = (2 * m_proxyCount); _local13 = m_proxyPool[_arg1]; _local14 = new b2BoundValues(); ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2); _local15 = new b2BoundValues(); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5][_local13.lowerBounds[_local5]]; _local15.lowerValues[_local5] = _local7.value; _local7 = m_bounds[_local5][_local13.upperBounds[_local5]]; _local15.upperValues[_local5] = _local7.value; _local5++; }; _local5 = 0; while (_local5 < 2) { _local16 = m_bounds[_local5]; _local17 = _local13.lowerBounds[_local5]; _local18 = _local13.upperBounds[_local5]; _local19 = _local14.lowerValues[_local5]; _local20 = _local14.upperValues[_local5]; _local7 = _local16[_local17]; _local21 = (_local19 - _local7.value); _local7.value = _local19; _local7 = _local16[_local18]; _local22 = (_local20 - _local7.value); _local7.value = _local20; if (_local21 < 0){ _local6 = _local17; while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local8.proxyId]; _local8.stabbingCount++; if (_local8.IsUpper() == true){ if (TestOverlap(_local14, _local24)){ m_pairManager.AddBufferedPair(_arg1, _local23); }; _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; if (_local22 > 0){ _local6 = _local18; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount++; if (_local9.IsLower() == true){ if (TestOverlap(_local14, _local11)){ m_pairManager.AddBufferedPair(_arg1, _local10); }; _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local21 > 0){ _local6 = _local17; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount--; if (_local9.IsUpper()){ if (TestOverlap(_local15, _local11)){ m_pairManager.RemoveBufferedPair(_arg1, _local10); }; _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local22 < 0){ _local6 = _local18; while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local23]; _local8.stabbingCount--; if (_local8.IsLower() == true){ if (TestOverlap(_local15, _local24)){ m_pairManager.RemoveBufferedPair(_arg1, _local23); }; _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; _local5++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local4:int; var _local5:int; var _local6:int; var _local7:b2Bound; _local4 = 0; _local5 = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); _local7 = _arg1[_local6]; if (_local7.value > _arg3){ _local5 = (_local6 - 1); } else { if (_local7.value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.Collision
Section 13
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 14
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:int; var _local7:Array; var _local8:Array; var _local9:int; var _local10:Array; var _local11:b2Mat22; var _local12:b2Vec2; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:int; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _local6 = _arg1.m_vertexCount; _local7 = _arg1.m_vertices; _local8 = _arg1.m_normals; _local9 = _arg4.m_vertexCount; _local10 = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; _local13 = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); _local14 = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; _local15 = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); _local16 = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); _local17 = 0; _local18 = Number.MAX_VALUE; _local19 = 0; 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; _local20 = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); _local21 = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; _local22 = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); _local23 = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); _local24 = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local3 = _arg2.lowerBound; _local4 = _arg1.upperBound; _local5 = (_local3.x - _local4.x); _local6 = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; _local7 = (_local3.x - _local4.x); _local8 = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local7:int; var _local8:Array; var _local9:int; var _local10:Array; var _local11:Array; var _local12:b2Mat22; var _local13:b2Vec2; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:int; var _local20:ClipVertex; var _local21:int; var _local22:int; var _local23:Number; _local7 = _arg2.m_vertexCount; _local8 = _arg2.m_normals; _local9 = _arg5.m_vertexCount; _local10 = _arg5.m_vertices; _local11 = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; _local14 = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); _local15 = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; _local16 = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; _local17 = 0; _local18 = Number.MAX_VALUE; _local19 = 0; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; _local21 = _local17; _local22 = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local7:int; var _local8:Array; var _local9:Number; var _local10:int; var _local11:Array; var _local12:Number; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local15:b2XForm; var _local16:b2XForm; var _local17:int; var _local18:uint; var _local19:Number; var _local20:Number; var _local21:Array; var _local22:int; var _local23:Array; var _local24:b2Vec2; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:b2Vec2; var _local28:b2Vec2; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Array; var _local33:Array; var _local34:int; var _local35:int; var _local36:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; _local7 = 0; _local8 = [_local7]; _local9 = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; _local10 = 0; _local11 = [_local10]; _local12 = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; _local15 = new b2XForm(); _local16 = new b2XForm(); _local19 = 0.98; _local20 = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; _local21 = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); _local22 = _local13.m_vertexCount; _local23 = _local13.m_vertices; _local24 = _local23[_local17]; _local25 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; _local26 = b2Math.SubtractVV(_local37, _local25); _local27 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); _local28 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); _local29 = b2Math.b2Dot(_local28, _local25); _local30 = -(b2Math.b2Dot(_local27, _local25)); _local31 = b2Math.b2Dot(_local27, _local37); _local32 = [new ClipVertex(), new ClipVertex()]; _local33 = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); _local35 = 0; _local36 = 0; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:int; var _local7:Array; var _local8:b2Vec2; var _local9:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:int; var _local15:Number; var _local16:int; var _local17:Number; var _local18:int; var _local19:Number; var _local20:int; var _local21:Number; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; _local6 = _arg2.m_vertexCount; _local7 = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; _local10 = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); _local11 = (_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)))); _local12 = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); _local13 = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); _local14 = 0; _local15 = -(Number.MAX_VALUE); _local16 = 0; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; _local18 = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); _local19 = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; _local20 = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; _local21 = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); _local10 = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _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:b2ManifoldPoint; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; _local8 = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local9 = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; _local10 = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local11 = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local12 = (_local10 - _local8); _local13 = (_local11 - _local9); _local14 = ((_local12 * _local12) + (_local13 * _local13)); _local15 = _arg2.m_radius; _local16 = _arg4.m_radius; _local17 = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; _local19 = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); _local20 = (0.5 * (_local8 + _local10)); _local21 = (0.5 * (_local9 + _local11)); _local22 = (_local20 - _arg3.position.x); _local23 = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:Number; var _local20:Number; var _local21:int; var _local22:Array; var _local23:Array; var _local24:int; var _local25:int; var _local26:int; var _local27:b2Vec2; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; _local13 = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); _local14 = (_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; _local15 = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local16 = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local18 = 0; _local19 = -(Number.MAX_VALUE); _local20 = _arg4.m_radius; _local21 = _arg2.m_vertexCount; _local22 = _arg2.m_vertices; _local23 = _arg2.m_normals; _local24 = 0; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; _local25 = _local18; _local26 = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; _local27 = _local22[_local26]; _local28 = (_local27.x - _local11.x); _local29 = (_local27.y - _local11.y); _local30 = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local31 = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = 0; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } } }//package Box2D.Collision
Section 15
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var _key:uint; public var features:Features; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID; _local1 = new b2ContactID(); _local1.key = key; return (_local1); } public function get key():uint{ return (_key); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } } }//package Box2D.Collision
Section 16
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2ContactPoint { public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var restitution:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public var friction:Number; public var velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 17
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local4:Number; var _local5:int; var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local4 = (100 * Number.MIN_VALUE); _local5 = 0; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local8:Array; var _local9:Array; var _local10:Array; var _local11:int; var _local12:Number; var _local13:int; var _local14:int; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; _local8 = s_p1s; _local9 = s_p2s; _local10 = s_points; _local11 = 0; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); _local12 = 0; _local13 = 20; _local14 = 0; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - ((_local15 * _local19) + (_local16 * _local20))) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _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; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; _local9 = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local10 = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; _local11 = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local12 = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = ((_local13 * _local13) + (_local14 * _local14)); _local16 = (_arg3.m_radius - b2Settings.b2_toiSlop); _local17 = (_arg5.m_radius - b2Settings.b2_toiSlop); _local18 = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; 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 _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; _local14 = _arg4[2]; _local15 = _local6.x; _local16 = _local6.y; _local17 = _local7.x; _local18 = _local7.y; _local19 = _local8.x; _local20 = _local8.y; _local21 = (_local17 - _local15); _local22 = (_local18 - _local16); _local23 = (_local19 - _local15); _local24 = (_local20 - _local16); _local25 = (_local19 - _local17); _local26 = (_local20 - _local18); _local27 = -(((_local15 * _local21) + (_local16 * _local22))); _local28 = ((_local17 * _local21) + (_local18 * _local22)); _local29 = -(((_local15 * _local23) + (_local16 * _local24))); _local30 = ((_local19 * _local23) + (_local20 * _local24)); _local31 = -(((_local17 * _local25) + (_local18 * _local26))); _local32 = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; _local33 = ((_local21 * _local24) - (_local22 * _local23)); _local34 = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); _local36 = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; _local37 = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; _local38 = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); _local39 = (_local36 * _local38); _local40 = (_local37 * _local38); _local41 = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local9:b2Point; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local9 = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local10 = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); _local11 = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int; var _local8:int; _local7 = _arg3.m_type; _local8 = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; _local12 = -(_local7.x); _local13 = -(_local7.y); _local14 = (_local6.x - _local7.x); _local15 = (_local6.y - _local7.y); _local16 = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } }//package Box2D.Collision
Section 18
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var points:Array; public var pointCount:int;// = 0 public var normal:b2Vec2; public function b2Manifold(){ var _local1:int; pointCount = 0; super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ var _local2:int; pointCount = _arg1.pointCount; _local2 = 0; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } public function Reset():void{ var _local1:int; _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 19
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var separation:Number; public var localPoint2:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var localPoint1:b2Vec2; public var id:b2ContactID; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } public function Set(_arg1:b2ManifoldPoint):void{ localPoint1.SetV(_arg1.localPoint1); localPoint2.SetV(_arg1.localPoint2); separation = _arg1.separation; normalImpulse = _arg1.normalImpulse; tangentImpulse = _arg1.tangentImpulse; id.key = _arg1.id.key; } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalImpulse = 0; tangentImpulse = 0; id.key = 0; } } }//package Box2D.Collision
Section 20
//b2OBB (Box2D.Collision.b2OBB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2OBB { public var R:b2Mat22; public var center:b2Vec2; public var extents:b2Vec2; public function b2OBB(){ R = new b2Mat22(); center = new b2Vec2(); extents = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 21
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var userData;// = null public var proxyId1:uint; public var proxyId2:uint; public var status:uint; public var next:uint; public static var e_pairFinal:uint = 4; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairRemoved:uint = 2; public static var b2_nullPair:uint = b2Settings.USHRT_MAX; public static var e_pairBuffered:uint = 1; public static var b2_nullProxy:uint = b2Settings.USHRT_MAX; public static var b2_tableCapacity:int = b2Settings.b2_maxPairs; public function b2Pair(){ userData = null; super(); } public function SetBuffered():void{ status = (status | e_pairBuffered); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } } }//package Box2D.Collision
Section 22
//b2PairCallback (Box2D.Collision.b2PairCallback) package Box2D.Collision { public class b2PairCallback { public function PairRemoved(_arg1, _arg2, _arg3):void{ } public function PairAdded(_arg1, _arg2){ return (null); } } }//package Box2D.Collision
Section 23
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PairManager { public var m_pairCount:int; public var m_pairBuffer:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_hashTable:Array; public var m_broadPhase:b2BroadPhase; public var m_freePair:uint; public function b2PairManager(){ var _local1:uint; super(); m_hashTable = new Array(b2Pair.b2_tableCapacity); _local1 = 0; while (_local1 < b2Pair.b2_tableCapacity) { m_hashTable[_local1] = b2Pair.b2_nullPair; _local1++; }; m_pairs = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1] = new b2Pair(); _local1++; }; m_pairBuffer = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairBuffer[_local1] = new b2BufferedPair(); _local1++; }; _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy; m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy; m_pairs[_local1].userData = null; m_pairs[_local1].status = 0; m_pairs[_local1].next = (_local1 + 1); _local1++; }; m_pairs[int((b2Settings.b2_maxPairs - 1))].next = b2Pair.b2_nullPair; m_pairCount = 0; m_pairBufferCount = 0; } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:b2Pair; var _local5:uint; _local5 = m_hashTable[_arg3]; _local4 = m_pairs[_local5]; while (((!((_local5 == b2Pair.b2_nullPair))) && ((Equals(_local4, _arg1, _arg2) == false)))) { _local5 = _local4.next; _local4 = m_pairs[_local5]; }; if (_local5 == b2Pair.b2_nullPair){ return (null); }; return (_local4); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local3:int; var _local4:Array; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; _local3 = 0; _local4 = m_broadPhase.m_proxyPool; _local2 = 0; while (_local2 < m_pairBufferCount) { _local1 = m_pairBuffer[_local2]; _local5 = Find(_local1.proxyId1, _local1.proxyId2); _local5.ClearBuffered(); _local6 = _local4[_local5.proxyId1]; _local7 = _local4[_local5.proxyId2]; if (_local5.IsRemoved()){ if (_local5.IsFinal() == true){ m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData); }; _local1 = m_pairBuffer[_local3]; _local1.proxyId1 = _local5.proxyId1; _local1.proxyId2 = _local5.proxyId2; _local3++; } else { if (_local5.IsFinal() == false){ _local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData); _local5.SetFinal(); }; }; _local2++; }; _local2 = 0; while (_local2 < _local3) { _local1 = m_pairBuffer[_local2]; RemovePair(_local1.proxyId1, _local1.proxyId2); _local2++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair; _local4 = Find(_arg1, _arg2); if (_local4 == null){ return; }; if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local4:uint; var _local5:uint; var _local6:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; _local4 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local5 = m_hashTable[_local4]; _local6 = null; while (_local5 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local5], _arg1, _arg2)){ _local8 = _local5; _local3 = m_pairs[_local5]; if (_local6){ _local6.next = _local3.next; } else { m_hashTable[_local4] = _local3.next; }; _local3 = m_pairs[_local8]; _local9 = _local3.userData; _local3.next = m_freePair; _local3.proxyId1 = b2Pair.b2_nullProxy; _local3.proxyId2 = b2Pair.b2_nullProxy; _local3.userData = null; _local3.status = 0; m_freePair = _local8; m_pairCount--; return (_local9); } else { _local6 = m_pairs[_local5]; _local5 = _local6.next; }; }; return (null); } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair; _local4 = AddPair(_arg1, _arg2); if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:b2Pair; var _local5:uint; var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; _local5 = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function ValidateTable():void{ } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } public static function Hash(_arg1:uint, _arg2:uint):uint{ var _local3:uint; _local3 = (((_arg2 << 16) & 4294901760) | _arg1); _local3 = (~(_local3) + ((_local3 << 15) & 4294934528)); _local3 = (_local3 ^ ((_local3 >> 12) & 1048575)); _local3 = (_local3 + ((_local3 << 2) & 4294967292)); _local3 = (_local3 ^ ((_local3 >> 4) & 268435455)); _local3 = (_local3 * 2057); _local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF)); return (_local3); } public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{ return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3)))); } } }//package Box2D.Collision
Section 24
//b2Point (Box2D.Collision.b2Point) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Point { public var p:b2Vec2; public function b2Point(){ p = new b2Vec2(); super(); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 25
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var lowerBounds:Array; public var upperBounds:Array; public var userData;// = null public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; userData = null; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } } }//package Box2D.Collision
Section 26
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local5:b2Vec2; 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; _local5 = _arg3.p1; _local6 = (_arg3.p2.x - _local5.x); _local7 = (_arg3.p2.y - _local5.y); _local8 = (p2.x - p1.x); _local9 = (p2.y - p1.y); _local10 = _local9; _local11 = -(_local8); _local12 = (100 * Number.MIN_VALUE); _local13 = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local7) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.Collision
Section 27
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _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:b2Vec2; var _local18:b2Vec2; var _local19:int; var _local20:int; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; _local7 = _arg1.m_sweepRadius; _local8 = _arg3.m_sweepRadius; _local9 = _arg2.t0; _local10 = (_arg2.c.x - _arg2.c0.x); _local11 = (_arg2.c.y - _arg2.c0.y); _local12 = (_arg4.c.x - _arg4.c0.x); _local13 = (_arg4.c.y - _arg4.c0.y); _local14 = (_arg2.a - _arg2.a0); _local15 = (_arg4.a - _arg4.a0); _local16 = 0; _local17 = s_p1; _local18 = s_p2; _local19 = 20; _local20 = 0; _local21 = 0; _local22 = 0; _local23 = 0; _local24 = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } }//package Box2D.Collision
Section 28
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var v:b2Vec2; public var id:b2ContactID; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 29
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceEdge:int; public var _incidentEdge:int; public var _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get flip():int{ return (_flip); } public function get incidentEdge():int{ return (_incidentEdge); } public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.Collision
Section 30
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { import Box2D.Common.*; public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function Set(_arg1:Number):void{ var _local2:Number; var _local3:Number; _local2 = Math.cos(_arg1); _local3 = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = col1.x; _local3 = col2.x; _local4 = col1.y; _local5 = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = col1.x; _local5 = col2.x; _local6 = col1.y; _local7 = col2.y; _local8 = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 31
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = b2MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:*; _local3 = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22; _local2 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2; _local2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2Mat22; _local3 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); _local4 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); _local5 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean; _local2 = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number; _local3 = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } }//package Box2D.Common.Math
Section 32
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { import Box2D.Common.*; public class b2Sweep { public var localCenter:b2Vec2; public var c:b2Vec2; public var a:Number; public var c0:b2Vec2; public var a0:Number; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; _local3 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } }//package Box2D.Common.Math
Section 33
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { import Box2D.Common.*; public class b2Vec2 { public var x:Number; public var y:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function SetZero():void{ x = 0; y = 0; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function CrossVF(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function MulM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function Normalize():Number{ var _local1:Number; var _local2:Number; _local1 = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; _local2 = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function CrossFV(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 34
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { import Box2D.Common.*; public class b2XForm { public var R:b2Mat22; public var position:b2Vec2; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } } }//package Box2D.Common.Math
Section 35
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _g:uint;// = 0 private var _b:uint;// = 0 private var _r:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = 0; _g = 0; _b = 0; super(); _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function get color():uint{ return (((_r | (_g << 8)) | (_b << 16))); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } } }//package Box2D.Common
Section 36
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const b2_angularSleepTolerance:Number = 0.0111111111111111; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_angularSlop:Number = ((2 / 180) * b2_pi); public static const b2_linearSlop:Number = 0.005; public static const b2_pi:Number = Math.PI; public static const b2_maxProxies:int = 0x0200; public static const b2_maxAngularVelocitySquared:Number = 62500; public static const b2_maxPolygonVertices:int = 8; public static const b2_velocityThreshold:Number = 1; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_maxPairs:int = 4096; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_timeToSleep:Number = 0.5; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxAngularVelocity:Number = 250; public static const b2_maxAngularCorrection:Number = ((8 / 180) * b2_pi); public static const USHRT_MAX:int = 0xFFFF; public static const b2_maxLinearVelocity:Number = 200; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_toiSlop:Number = 0.04; public static const b2_maxLinearVelocitySquared:Number = 40000; public static function b2Assert(_arg1:Boolean):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 37
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ var _local3:b2ManifoldPoint; m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; _local3 = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactPoint; var _local8:b2ManifoldPoint; _local5 = m_shape1.m_body; _local6 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 38
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Contact { public var m_shape1:b2Shape; public var m_shape2:b2Shape; public var m_prev:b2Contact; public var m_toi:Number; public var m_next:b2Contact; public var m_friction:Number; public var m_manifoldCount:int; public var m_node1:b2ContactEdge; public var m_node2:b2ContactEdge; public var m_restitution:Number; public var m_flags:uint; public static var e_toiFlag:uint = 8; public static var e_nonSolidFlag:uint = 1; public static var e_slowFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var s_registers:Array; public static var s_initialized:Boolean = false; public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){ m_node1 = new b2ContactEdge(); m_node2 = new b2ContactEdge(); super(); m_flags = 0; if (((!(_arg1)) || (!(_arg2)))){ m_shape1 = null; m_shape2 = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_nonSolidFlag); }; m_shape1 = _arg1; m_shape2 = _arg2; m_manifoldCount = 0; m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction)); m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution); m_prev = null; m_next = null; m_node1.contact = null; m_node1.prev = null; m_node1.next = null; m_node1.other = null; m_node2.contact = null; m_node2.prev = null; m_node2.next = null; m_node2.other = null; } public function GetShape1():b2Shape{ return (m_shape1); } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetNext():b2Contact{ return (m_next); } public function GetManifolds():Array{ return (null); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function Update(_arg1:b2ContactListener):void{ var _local2:int; var _local3:int; var _local4:b2Body; var _local5:b2Body; _local2 = m_manifoldCount; Evaluate(_arg1); _local3 = m_manifoldCount; _local4 = m_shape1.m_body; _local5 = m_shape2.m_body; if ((((_local3 == 0)) && ((_local2 > 0)))){ _local4.WakeUp(); _local5.WakeUp(); }; if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } public function Evaluate(_arg1:b2ContactListener):void{ } public static function InitializeRegisters():void{ var _local1:int; var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); _local1 = 0; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); } public static function Destroy(_arg1:b2Contact, _arg2):void{ var _local3:int; var _local4:int; var _local5:b2ContactRegister; var _local6:Function; if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; _local3 = _arg1.m_shape1.m_type; _local4 = _arg1.m_shape2.m_type; _local5 = s_registers[_local3][_local4]; _local6 = _local5.destroyFcn; _local6(_arg1, _arg2); } public static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local4:int; var _local5:int; var _local6:b2ContactRegister; var _local7:Function; var _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; _local4 = _arg1.m_type; _local5 = _arg2.m_type; _local6 = s_registers[_local4][_local5]; _local7 = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 39
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var normal:b2Vec2; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ var _local1:int; normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 40
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var r2:b2Vec2; public var separation:Number; public var positionImpulse:Number; public var normalImpulse:Number; public var equalizedMass:Number; public var tangentMass:Number; public var tangentImpulse:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var normalMass:Number; public var velocityBias:Number; public var r1:b2Vec2; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 41
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var next:b2ContactEdge; public var other:b2Body; public var contact:b2Contact; public var prev:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 42
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn:Function; public var destroyFcn:Function; } }//package Box2D.Dynamics.Contacts
Section 43
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; public class b2ContactResult { public var normal:b2Vec2; public var position:b2Vec2; public var shape1:b2Shape; public var shape2:b2Shape; public var normalImpulse:Number; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ContactResult(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Dynamics.Contacts
Section 44
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactSolver { public var m_constraintCount:int; public var m_constraints:Array; public var m_allocator; public var m_step:b2TimeStep; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local9:int; var _local10:b2Body; var _local11:b2Body; var _local12:int; var _local13:Array; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; var _local23:b2Manifold; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraint; var _local27:uint; var _local28:b2ManifoldPoint; var _local29:b2ContactConstraintPoint; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; m_step = new b2TimeStep(); m_constraints = new Array(); super(); m_step.dt = _arg1.dt; m_step.inv_dt = _arg1.inv_dt; m_step.maxIterations = _arg1.maxIterations; m_allocator = _arg4; m_constraintCount = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; m_constraintCount = (m_constraintCount + _local5.m_manifoldCount); _local6++; }; _local6 = 0; while (_local6 < m_constraintCount) { m_constraints[_local6] = new b2ContactConstraint(); _local6++; }; _local9 = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1.m_body; _local11 = _local5.m_shape2.m_body; _local12 = _local5.m_manifoldCount; _local13 = _local5.GetManifolds(); _local14 = _local5.m_friction; _local15 = _local5.m_restitution; _local16 = _local10.m_linearVelocity.x; _local17 = _local10.m_linearVelocity.y; _local18 = _local11.m_linearVelocity.x; _local19 = _local11.m_linearVelocity.y; _local20 = _local10.m_angularVelocity; _local21 = _local11.m_angularVelocity; _local22 = 0; while (_local22 < _local12) { _local23 = _local13[_local22]; _local24 = _local23.normal.x; _local25 = _local23.normal.y; _local26 = m_constraints[_local9]; _local26.body1 = _local10; _local26.body2 = _local11; _local26.manifold = _local23; _local26.normal.x = _local24; _local26.normal.y = _local25; _local26.pointCount = _local23.pointCount; _local26.friction = _local14; _local26.restitution = _local15; _local27 = 0; while (_local27 < _local26.pointCount) { _local28 = _local23.points[_local27]; _local29 = _local26.points[_local27]; _local29.normalImpulse = _local28.normalImpulse; _local29.tangentImpulse = _local28.tangentImpulse; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local8 = _local10.m_xf.R; _local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x); _local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33)); _local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33)); _local32 = _local30; _local29.r1.Set(_local32, _local33); _local8 = _local11.m_xf.R; _local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x); _local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local30; _local29.r2.Set(_local34, _local35); _local36 = ((_local32 * _local32) + (_local33 * _local33)); _local37 = ((_local34 * _local34) + (_local35 * _local35)); _local38 = ((_local32 * _local24) + (_local33 * _local25)); _local39 = ((_local34 * _local24) + (_local35 * _local25)); _local40 = (_local10.m_invMass + _local11.m_invMass); _local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39))))); _local29.normalMass = (1 / _local40); _local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass)); _local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39))))); _local29.equalizedMass = (1 / _local41); _local42 = _local25; _local43 = -(_local24); _local44 = ((_local32 * _local42) + (_local33 * _local43)); _local45 = ((_local34 * _local42) + (_local35 * _local43)); _local46 = (_local10.m_invMass + _local11.m_invMass); _local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45))))); _local29.tangentMass = (1 / _local46); _local29.velocityBias = 0; if (_local29.separation > 0){ _local29.velocityBias = (-60 * _local29.separation); }; _local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33)); _local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32)); _local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47)); }; _local27++; }; _local9++; _local22++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local5:int; 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; _local5 = 0; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:int; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; _local2 = 0; _local5 = 0; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Mat22; var _local18:b2Vec2; var _local19:int; var _local20:b2ContactConstraint; var _local21:b2Body; var _local22:b2Body; var _local23:Number; var _local24:Number; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:int; var _local38:Number; _local19 = 0; while (_local19 < m_constraintCount) { _local20 = m_constraints[_local19]; _local21 = _local20.body1; _local22 = _local20.body2; _local23 = _local21.m_angularVelocity; _local24 = _local22.m_angularVelocity; _local25 = _local21.m_linearVelocity; _local26 = _local22.m_linearVelocity; _local27 = _local21.m_invMass; _local28 = _local21.m_invI; _local29 = _local22.m_invMass; _local30 = _local22.m_invI; _local31 = _local20.normal.x; _local32 = _local20.normal.y; _local33 = _local32; _local34 = -(_local31); _local35 = _local20.friction; _local37 = _local20.pointCount; _local1 = 0; while (_local1 < _local37) { _local2 = _local20.points[_local1]; _local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y)); _local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x)); _local9 = ((_local7 * _local31) + (_local8 * _local32)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local10 = ((_local7 * _local33) + (_local8 * _local34)); _local12 = (_local2.tangentMass * -(_local10)); _local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0); _local11 = (_local13 - _local2.normalImpulse); _local38 = (_local35 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38); _local12 = (_local14 - _local2.tangentImpulse); _local15 = ((_local11 * _local31) + (_local12 * _local33)); _local16 = ((_local11 * _local32) + (_local12 * _local34)); _local25.x = (_local25.x - (_local27 * _local15)); _local25.y = (_local25.y - (_local27 * _local16)); _local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local26.x = (_local26.x + (_local29 * _local15)); _local26.y = (_local26.y + (_local29 * _local16)); _local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.normalImpulse = _local13; _local2.tangentImpulse = _local14; _local1++; }; _local21.m_angularVelocity = _local23; _local22.m_angularVelocity = _local24; _local19++; }; } public function FinalizeVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; _local1 = 0; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 45
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function GetManifolds():Array{ return (null); } override public function Evaluate(_arg1:b2ContactListener):void{ } } }//package Box2D.Dynamics.Contacts
Section 46
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ var _local3:b2ManifoldPoint; m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; _local3 = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local6:b2Body; var _local7:b2Body; var _local8:Array; var _local9:b2ContactPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; _local6 = m_shape1.m_body; _local7 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); _local8 = [false, false]; _local9 = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 47
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactPoint; var _local8:int; var _local9:Array; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; _local5 = m_shape1.m_body; _local6 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); _local9 = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local9[_local13] == true){ } else { _local4 = m0.points[_local13]; if (_local4.id._key == _local12){ _local9[_local13] = true; _local10.normalImpulse = _local4.normalImpulse; _local10.tangentImpulse = _local4.tangentImpulse; _local11 = true; if (_arg1 != null){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Persist(_local7); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Add(_local7); }; _local8++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local8 = 0; while (_local8 < m0.pointCount) { if (_local9[_local8]){ } else { _local4 = m0.points[_local8]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; _local8++; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 48
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_mass:Number; public var m_u:b2Vec2; public var m_impulse:Number; public var m_dampingRatio:Number; public var m_frequencyHz:Number; public var m_localAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_bias:Number; public var m_gamma:Number; public var m_length:Number; public function b2DistanceJoint(_arg1:b2DistanceJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; m_inv_dt = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; var _local2:b2Body; var _local3:b2Body; 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; if (m_frequencyHz > 0){ return (true); }; _local2 = m_body1; _local3 = m_body2; _local1 = _local2.m_xf.R; _local4 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; _local7 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local8 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; _local9 = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); _local10 = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); _local11 = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); _local12 = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local13 = (-(m_mass) * _local12); m_u.Set(_local9, _local10); _local14 = (_local13 * m_u.x); _local15 = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } override public function 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; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; m_inv_dt = _arg1.inv_dt; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); _local10 = 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(); }; _local11 = ((_local6 * m_u.y) - (_local7 * m_u.x)); _local12 = ((_local8 * m_u.y) - (_local9 * m_u.x)); _local13 = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body; var _local4:b2Body; 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; _local3 = m_body1; _local4 = m_body2; _local2 = _local3.m_xf.R; _local5 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; _local8 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local9 = (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; _local10 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); _local11 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); _local12 = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); _local13 = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); _local14 = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); _local15 = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); _local16 = (_local15 * m_u.x); _local17 = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } } }//package Box2D.Dynamics.Joints
Section 49
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2DistanceJointDef extends b2JointDef { public var length:Number; public var dampingRatio:Number; public var frequencyHz:Number; public var localAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ var _local5:Number; var _local6:Number; body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); _local5 = (_arg4.x - _arg3.x); _local6 = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.Joints
Section 50
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_force:Number; public var m_mass:Number; public var m_prismatic1:b2PrismaticJoint; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_ground2:b2Body; public var m_constant:Number; public var m_revolute1:b2RevoluteJoint; public var m_revolute2:b2RevoluteJoint; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_ratio:Number; public var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local2:int; var _local3:int; 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); _local2 = _arg1.joint1.m_type; _local3 = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.m_body1; m_body1 = _arg1.joint1.m_body2; if (_local2 == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local4 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local4 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_local3 == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local5 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local5 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local4 + (m_ratio * _local5)); m_force = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local1 = 0; _local2 = m_body1; _local3 = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; _local6 = (m_constant - (_local4 + (m_ratio * _local5))); _local7 = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; _local2 = m_ground1; _local3 = m_ground2; _local4 = m_body1; _local5 = m_body2; _local14 = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ var _local1:b2Mat22; var _local2:Number; var _local3:Number; var _local4:Number; _local1 = m_body2.m_xf.R; _local2 = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); _local3 = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); _local4 = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = m_body1; _local3 = m_body2; _local4 = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local5 = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); _local6 = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } } }//package Box2D.Dynamics.Joints
Section 51
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2GearJointDef extends b2JointDef { public var joint2:b2Joint; public var joint1:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 52
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var linear2:b2Vec2; public var angular2:Number; public var angular1:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 53
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2Joint { public var m_islandFlag:Boolean; public var m_body1:b2Body; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_type:int; public var m_collideConnected:Boolean; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_inv_dt:Number; public var m_userData; public var m_body2:b2Body; public static const e_unknownJoint:int = 0; public static const e_inactiveLimit:int = 0; public static const e_atUpperLimit:int = 2; public static const e_atLowerLimit:int = 1; public static const e_gearJoint:int = 6; public static const e_revoluteJoint:int = 1; public static const e_equalLimits:int = 3; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_prismaticJoint:int = 2; public static const e_mouseJoint:int = 5; public function b2Joint(_arg1:b2JointDef){ m_node1 = new b2JointEdge(); m_node2 = new b2JointEdge(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetType():int{ return (m_type); } public function GetBody2():b2Body{ return (m_body2); } public function GetNext():b2Joint{ return (m_next); } public function GetReactionTorque():Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce():b2Vec2{ return (null); } public function SolvePositionConstraints():Boolean{ return (false); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetBody1():b2Body{ return (m_body1); } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public static function Destroy(_arg1:b2Joint, _arg2):void{ } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; _local3 = null; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } } }//package Box2D.Dynamics.Joints
Section 54
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2JointDef { public var collideConnected:Boolean; public var body1:b2Body; public var body2:b2Body; public var userData; public var type:int; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 55
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var joint:b2Joint; public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; } }//package Box2D.Dynamics.Joints
Section 56
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { public var m_beta:Number; public var m_mass:b2Mat22; public var m_target:b2Vec2; public var m_impulse:b2Vec2; public var m_localAnchor:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K:b2Mat22; public var m_gamma:Number; public var m_C:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local2:Number; var _local3:Number; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); _local2 = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); _local4 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); _local5 = m_body2.m_mass; _local6 = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); _local7 = (((2 * _local5) * _arg1.dampingRatio) * _local6); _local8 = ((_arg1.timeStep * _local5) * (_local6 * _local6)); m_gamma = (1 / (_local7 + _local8)); m_beta = (_local8 / (_local7 + _local8)); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function GetReactionForce():b2Vec2{ return (m_impulse); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); _local9 = (_arg1.dt * m_impulse.x); _local10 = (_arg1.dt * m_impulse.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function GetReactionTorque():Number{ return (0); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; 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; _local2 = m_body2; _local3 = _local2.m_xf.R; _local6 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local7 = (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; _local8 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); _local9 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y)); _local10 = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); _local11 = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); _local12 = m_impulse.x; _local13 = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); _local14 = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); _local15 = (_arg1.dt * _local10); _local16 = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } } }//package Box2D.Dynamics.Joints
Section 57
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var frequencyHz:Number; public var dampingRatio:Number; public var maxForce:Number; public var target:b2Vec2; public var timeStep:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; timeStep = (1 / 60); } } }//package Box2D.Dynamics.Joints
Section 58
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; import Script.Bodies.*; public class b2PrismaticJoint extends b2Joint { public var m_limitForce:Number; public var m_refAngle:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_torque:Number; public var m_enableLimit:Boolean; public var m_motorForce:Number; public var m_force:Number; public var m_localYAxis1:b2Vec2; public var m_motorMass:Number; public var m_maxMotorForce:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_angularMass:Number; public var m_limitState:int; public var m_linearMass:Number; public var m_upperTranslation:Number; public var m_motorJacobian:b2Jacobian; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_linearJacobian:b2Jacobian; public var m_enableMotor:Boolean; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_linearJacobian = new b2Jacobian(); m_motorJacobian = new b2Jacobian(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_linearJacobian.SetZero(); m_linearMass = 0; m_force = 0; m_angularMass = 0; m_torque = 0; m_motorJacobian.SetZero(); m_motorMass = 0; m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerTranslation = _arg1.lowerTranslation; m_upperTranslation = _arg1.upperTranslation; m_maxMotorForce = _arg1.maxMotorForce; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function GetJointTranslation():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:b2Vec2; var _local9:Number; _local1 = m_body1; _local2 = m_body2; _local4 = _local1.GetWorldPoint(m_localAnchor1); _local5 = _local2.GetWorldPoint(m_localAnchor2); _local6 = (_local5.x - _local4.x); _local7 = (_local5.y - _local4.y); _local8 = _local1.GetWorldVector(m_localXAxis1); _local9 = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.m_xf.R; _local2 = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); _local3 = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); _local4 = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); _local5 = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9: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 _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; _local3 = m_body1; _local4 = m_body2; _local5 = _local3.m_invMass; _local6 = _local4.m_invMass; _local7 = _local3.m_invI; _local8 = _local4.m_invI; _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local21 = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); _local22 = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); _local23 = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local24 = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); _local25 = b2Math.b2Abs(_local23); _local26 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local27 = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); _local28 = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } public function GetJointSpeed():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; 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:b2Vec2; var _local16:b2Vec2; var _local17:b2Vec2; var _local18:Number; var _local19:Number; var _local20:Number; _local1 = m_body1; _local2 = m_body2; _local3 = _local1.m_xf.R; _local4 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local5 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; _local7 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local8 = (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; _local9 = (_local1.m_sweep.c.x + _local4); _local10 = (_local1.m_sweep.c.y + _local5); _local11 = (_local2.m_sweep.c.x + _local7); _local12 = (_local2.m_sweep.c.y + _local8); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = _local1.GetWorldVector(m_localXAxis1); _local16 = _local1.m_linearVelocity; _local17 = _local2.m_linearVelocity; _local18 = _local1.m_angularVelocity; _local19 = _local2.m_angularVelocity; _local20 = (((_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 SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; 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:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local10 = _local2.m_invMass; _local11 = _local3.m_invMass; _local12 = _local2.m_invI; _local13 = _local3.m_invI; _local4 = _local2.m_xf.R; _local14 = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); _local15 = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); _local16 = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); _local17 = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorForce():Number{ return (m_motorForce); } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; 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; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_invMass; _local5 = _local3.m_invMass; _local6 = _local2.m_invI; _local7 = _local3.m_invI; _local9 = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local10 = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); _local11 = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); _local12 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local13 = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); _local14 = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } } }//package Box2D.Dynamics.Joints
Section 59
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PrismaticJointDef extends b2JointDef { public var localAxis1:b2Vec2; public var referenceAngle:Number; public var maxMotorForce:Number; public var motorSpeed:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var lowerTranslation:Number; public function b2PrismaticJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxis1.Set(1, 0); referenceAngle = 0; enableLimit = false; lowerTranslation = 0; upperTranslation = 0; enableMotor = false; maxMotorForce = 0; motorSpeed = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 60
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_ground:b2Body; public var m_maxLength2:Number; public var m_limitForce1:Number; public var m_maxLength1:Number; public var m_limitState1:int; public var m_limitState2:int; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_limitPositionImpulse1:Number; public var m_constant:Number; public var m_state:int; public var m_ratio:Number; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_positionImpulse:Number; public var m_limitMass2:Number; public var m_limitMass1:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_u2:b2Vec2; public var m_limitForce2:Number; public static const b2_minPulleyLength:Number = 2; public function b2PulleyJoint(_arg1:b2PulleyJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u1 = new b2Vec2(); m_u2 = new b2Vec2(); super(_arg1); m_ground = m_body1.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_ratio = _arg1.ratio; m_constant = (_arg1.length1 + (m_ratio * _arg1.length2)); m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio)); m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2; _local1 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; 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:Number; var _local23:Number; _local1 = m_body1; _local2 = m_body2; _local4 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local5 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local6 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local7 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local23 = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u1.Set((_local12 - _local4), (_local13 - _local5)); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local16 = m_u1.Length(); _local17 = m_u2.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local16)); } else { m_u1.SetZero(); }; if (_local17 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local17)); } else { m_u2.SetZero(); }; _local18 = ((m_constant - _local16) - (m_ratio * _local17)); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_pulleyMass) * _local18); _local20 = m_positionImpulse; m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19)); _local19 = (m_positionImpulse - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local14 = ((-(m_ratio) * _local19) * m_u2.x); _local15 = ((-(m_ratio) * _local19) * m_u2.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.SynchronizeTransform(); _local2.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); m_u1.Set((_local12 - _local4), (_local13 - _local5)); _local16 = m_u1.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local16)); m_u1.y = (m_u1.y * (1 / _local16)); } else { m_u1.SetZero(); }; _local18 = (m_maxLength1 - _local16); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local21 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local21); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _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:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (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; _local10 = (_local2.m_sweep.c.x + _local5); _local11 = (_local2.m_sweep.c.y + _local6); _local12 = (_local3.m_sweep.c.x + _local8); _local13 = (_local3.m_sweep.c.y + _local9); _local14 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local15 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local16 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local17 = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); _local18 = m_u1.Length(); _local19 = 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(); }; _local20 = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; _local21 = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); _local22 = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function GetReactionTorque():Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } public function GetLength2():Number{ var _local1:b2Vec2; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body2.GetWorldPoint(m_localAnchor2); _local2 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; 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; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } public function GetLength1():Number{ var _local1:b2Vec2; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.GetWorldPoint(m_localAnchor1); _local2 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2; _local1 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.Joints
Section 61
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength2:Number; public var length1:Number; public var length2:Number; public var maxLength1:Number; public var ratio:Number; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); _local8 = (_arg5.x - _arg3.x); _local9 = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local10 = (_arg6.x - _arg4.x); _local11 = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; _local12 = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 62
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { public var m_limitForce:Number; public var m_motorForce:Number; public var m_pivotMass:b2Mat22; public var m_enableLimit:Boolean; public var m_limitState:int; public var m_motorMass:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var K:b2Mat22; public var m_pivotForce:b2Vec2; public var m_motorSpeed:Number; public var m_enableMotor:Boolean; public var m_limitPositionImpulse:Number; public var m_maxMotorTorque:Number; public var m_referenceAngle:Number; public var m_lowerAngle:Number; public var m_upperAngle:Number; public static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_pivotForce = new b2Vec2(); m_pivotMass = new b2Mat22(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_referenceAngle = _arg1.referenceAngle; m_pivotForce.Set(0, 0); m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerAngle = _arg1.lowerAngle; m_upperAngle = _arg1.upperAngle; m_maxMotorTorque = _arg1.maxMotorTorque; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ return (m_pivotForce); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:b2Mat22; 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:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local3 = m_body1; _local4 = m_body2; _local5 = 0; _local6 = _local3.m_xf.R; _local7 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local8 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; _local10 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; _local12 = (_local3.m_sweep.c.x + _local7); _local13 = (_local3.m_sweep.c.y + _local8); _local14 = (_local4.m_sweep.c.x + _local10); _local15 = (_local4.m_sweep.c.y + _local11); _local16 = (_local14 - _local12); _local17 = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); _local18 = _local3.m_invMass; _local19 = _local4.m_invMass; _local20 = _local3.m_invI; _local21 = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); _local22 = tImpulse.x; _local23 = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); _local24 = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; 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; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local10 = _local2.m_invMass; _local11 = _local3.m_invMass; _local12 = _local2.m_invI; _local13 = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function GetMotorTorque():Number{ return (m_motorForce); } override public function GetReactionTorque():Number{ return (m_limitForce); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; 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; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local11 = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); _local12 = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); _local13 = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); _local14 = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); _local15 = (_arg1.dt * _local13); _local16 = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } } }//package Box2D.Dynamics.Joints
Section 63
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2RevoluteJointDef extends b2JointDef { public var referenceAngle:Number; public var upperAngle:Number; public var lowerAngle:Number; public var motorSpeed:Number; public var maxMotorTorque:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 64
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; import flash.display.*; import Box2D.Dynamics.Contacts.*; import Script.Bodies.*; public class b2Body { public var m_next:b2Body; public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var classLink; public var m_shapeList:b2Shape; public var m_force:b2Vec2; public var m_mass:Number; public var m_sweep:b2Sweep; public var m_xf:b2XForm; public var m_torque:Number; public var m_userData:Sprite; public var m_flags:uint; public var m_world:b2World; public var m_prev:b2Body; public var m_invMass:Number; public var m_type:int; public var isDynamic:Boolean;// = false public var m_linearDamping:Number; public var m_angularDamping:Number; public var bodyName:uint;// = 0 public var m_invI:Number; public var m_linearVelocity:b2Vec2; public var m_sleepTime:Number; public var m_shapeCount:int; public var m_jointList:b2JointEdge; public var m_I:Number; public static var e_fixedRotationFlag:uint = 64; public static var e_frozenFlag:uint = 2; public static var e_maxTypes:uint = 3; public static var e_sleepFlag:uint = 8; private static var s_massData:b2MassData = new b2MassData(); public static var e_bulletFlag:uint = 32; public static var e_staticType:uint = 1; public static var e_islandFlag:uint = 4; public static var e_allowSleepFlag:uint = 16; private static var s_xf1:b2XForm = new b2XForm(); public static var e_dynamicType:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ var _local3:b2Mat22; var _local4:b2Vec2; m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); isDynamic = false; bodyName = 0; super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); _local3 = m_xf.R; _local4 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function SynchronizeTransform():void{ var _local1:b2Mat22; var _local2:b2Vec2; m_xf.R.Set(m_sweep.a); _local1 = m_xf.R; _local2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function GetInertia():Number{ return (m_I); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; var _local2:Number; var _local3:Number; var _local4:b2MassData; var _local5:b2Mat22; var _local6:b2Vec2; var _local7:int; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; _local2 = 0; _local3 = 0; _local4 = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); _local5 = m_xf.R; _local6 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; _local7 = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function PutToSleep():void{ m_flags = (m_flags | e_sleepFlag); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; } public function GetJointList():b2JointEdge{ return (m_jointList); } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local4:b2Mat22; var _local5:b2Vec2; var _local6:Boolean; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); _local4 = m_xf.R; _local5 = 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); _local6 = false; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function SynchronizeShapes():Boolean{ var _local1:b2XForm; var _local2:b2Mat22; var _local3:b2Vec2; var _local4:b2Shape; var _local5:Boolean; _local1 = s_xf1; _local1.R.Set(m_sweep.a0); _local2 = _local1.R; _local3 = 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))); _local5 = true; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x)); m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y)); m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)))); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22; var _local3:b2Vec2; _local2 = m_xf.R; _local3 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:int; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); _local3 = m_xf.R; _local4 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; _local5 = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetShapeList():b2Shape{ return (m_shapeList); } public function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function CreateShape(_arg1:b2ShapeDef):b2Shape{ var _local2:b2Shape; if (m_world.m_lock == true){ return (null); }; _local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); return (_local2); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge; _local2 = m_jointList; while (_local2) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function DestroyShape(_arg1:b2Shape):void{ var _local2:b2Shape; var _local3:b2Shape; var _local4:Boolean; if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); _local2 = m_shapeList; _local3 = null; _local4 = false; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_shapeList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22; var _local3:b2Vec2; _local2 = m_xf.R; _local3 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorld():b2World{ return (m_world); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//package Box2D.Dynamics
Section 65
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2BodyDef { public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var angularDamping:Number; public var fixedRotation:Boolean; public var angle:Number; public var linearDamping:Number; public var massData:b2MassData; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.Dynamics
Section 66
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 67
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:b2FilterData; var _local4:b2FilterData; var _local5:Boolean; _local3 = _arg1.GetFilterData(); _local4 = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; _local5 = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.Dynamics
Section 68
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactListener { public function Add(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Persist(_arg1:b2ContactPoint):void{ } public function Result(_arg1:b2ContactResult):void{ } } }//package Box2D.Dynamics
Section 69
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2Contact; _local3 = (_arg1 as b2Shape); _local4 = (_arg2 as b2Shape); _local5 = _local3.m_body; _local6 = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; _local7 = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } override public function PairRemoved(_arg1, _arg2, _arg3):void{ var _local4:b2Contact; if (_arg3 == null){ return; }; _local4 = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local2:b2Shape; var _local3:b2Shape; var _local4:int; var _local5:b2Body; var _local6:b2Body; var _local7:b2Body; var _local8:b2Body; var _local9:Array; var _local10:b2ContactPoint; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2Vec2; var _local16:b2Vec2; _local2 = _arg1.m_shape1; _local3 = _arg1.m_shape2; _local4 = _arg1.m_manifoldCount; if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = _local2.m_body; _local8 = _local3.m_body; _local9 = _arg1.GetManifolds(); _local10 = s_evalCP; _local10.shape1 = _arg1.m_shape1; _local10.shape2 = _arg1.m_shape1; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; _local5 = _local2.m_body; _local6 = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } public function Collide():void{ var _local1:b2Contact; var _local2:b2Body; var _local3:b2Body; _local1 = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.Dynamics
Section 70
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.display.*; import Box2D.Dynamics.Contacts.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_lineThickness:Number;// = 1 public var m_drawFlags:uint; public var m_sprite:Sprite; public var m_drawScale:Number;// = 1 public static var e_coreShapeBit:uint = 4; public static var e_shapeBit:uint = 1; public static var e_centerOfMassBit:uint = 64; public static var e_aabbBit:uint = 8; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_jointBit:uint = 2; public function b2DebugDraw(){ m_drawScale = 1; m_lineThickness = 1; m_alpha = 1; m_fillAlpha = 1; m_xformScale = 1; super(); m_drawFlags = 0; } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; 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); _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 DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } 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 SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function GetFlags():uint{ return (m_drawFlags); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); _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)); } } }//package Box2D.Dynamics
Section 71
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeJoint(_arg1:b2Joint):void{ } public function SayGoodbyeShape(_arg1:b2Shape):void{ } } }//package Box2D.Dynamics
Section 72
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Island { public var m_joints:Array; public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies:Array; public var m_jointCapacity:int; public var m_contactCount:int; public var m_contacts:Array; public var m_contactCapacity:int; public var m_jointCount:int; public var m_allocator; public var m_bodyCount:int; private static var s_reportCR:b2ContactResult = new b2ContactResult(); public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){ var _local6:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; m_bodies = new Array(_arg1); _local6 = 0; while (_local6 < _arg1) { m_bodies[_local6] = null; _local6++; }; m_contacts = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { m_contacts[_local6] = null; _local6++; }; m_joints = new Array(_arg3); _local6 = 0; while (_local6 < _arg3) { m_joints[_local6] = null; _local6++; }; m_positionIterationCount = 0; } public function AddBody(_arg1:b2Body):void{ var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } public function Report(_arg1:Array):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local4:int; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; _local4 = 0; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local8:b2ContactSolver; var _local9:int; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Number; var _local14:Number; var _local15:Number; _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; _local8 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local8.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local8.SolveVelocityConstraints(); _local9 = 0; while (_local9 < m_jointCount) { _local7 = m_joints[_local9]; _local7.SolveVelocityConstraints(_arg1); _local9++; }; _local5++; }; _local8.FinalizeVelocityConstraints(); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_sweep.c0.SetV(_local6.m_sweep.c); _local6.m_sweep.a0 = _local6.m_sweep.a; _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y)); _local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity)); _local6.SynchronizeTransform(); }; _local5++; }; if (_arg3){ _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local10 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local12 = _local7.SolvePositionConstraints(); _local11 = ((_local11) && (_local12)); _local5++; }; if (((_local10) && (_local11))){ break; }; m_positionIterationCount++; }; }; Report(_local8.m_constraints); if (_arg4){ _local13 = Number.MAX_VALUE; _local14 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local15 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.m_invMass == 0){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local13 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local15)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local14)))){ _local6.m_sleepTime = 0; _local13 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local13 = b2Math.b2Min(_local13, _local6.m_sleepTime); }; }; _local5++; }; if (_local13 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local3:b2ContactSolver; var _local4:Number; var _local5:b2Body; var _local6:Boolean; _local3 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; _local4 = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } }//package Box2D.Dynamics
Section 73
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var warmStarting:Boolean; public var positionCorrection:Boolean; public var dt:Number; public var maxIterations:int; public var dtRatio:Number; public var inv_dt:Number; } }//package Box2D.Dynamics
Section 74
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2World { public var m_inv_dt0:Number; public var m_boundaryListener:b2BoundaryListener; public var m_contactList:b2Contact; public var m_blockAllocator; public var m_contactListener:b2ContactListener; public var m_allowSleep:Boolean; public var m_broadPhase:b2BroadPhase; public var m_destructionListener:b2DestructionListener; public var m_jointCount:int; public var m_bodyCount:int; public var m_lock:Boolean; public var m_positionIterationCount:int; public var m_groundBody:b2Body; public var m_contactCount:int; public var m_debugDraw:b2DebugDraw; public var m_contactFilter:b2ContactFilter; public var m_bodyList:b2Body; public var m_stackAllocator; public var m_jointList:b2Joint; public var m_gravity:b2Vec2; public var m_contactManager:b2ContactManager; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); public static var m_continuousPhysics:Boolean; public static var m_warmStarting:Boolean; private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); public static var m_positionCorrection:Boolean; private static var s_xf:b2XForm = new b2XForm(); public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ var _local4:b2BodyDef; m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_positionCorrection = true; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_inv_dt0 = 0; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); _local4 = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2XForm; var _local5:b2XForm; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; _local2 = _arg1.m_body1; _local3 = _arg1.m_body2; _local4 = _local2.m_xf; _local5 = _local3.m_xf; _local6 = _local4.position; _local7 = _local5.position; _local8 = _arg1.GetAnchor1(); _local9 = _arg1.GetAnchor2(); _local10 = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } public function DrawDebugData():void{ var _local1:uint; var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2XForm; var _local12:b2AABB; var _local13:b2AABB; var _local14:Array; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); _local1 = m_debugDraw.GetFlags(); _local7 = new b2Vec2(); _local8 = new b2Vec2(); _local9 = new b2Vec2(); _local10 = new b2Color(0, 0, 0); _local12 = new b2AABB(); _local13 = new b2AABB(); _local14 = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local2:b2JointEdge; var _local3:b2Shape; var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; _local2 = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; _local3 = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local5:b2Color; var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; _local5 = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; }; } public function GetContactCount():int{ return (m_contactCount); } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Island; var _local4:b2Contact; var _local5:b2Joint; var _local6:int; var _local7:Array; var _local8:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; _local3 = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; _local4 = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; _local5 = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; _local6 = m_bodyCount; _local7 = new Array(_local6); _local8 = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.m_manifoldCount == 0){ } else { _local3.AddContact(_local12.contact); _local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag); _local11 = _local12.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local9; _local9 = (_local9 + 1); var _local16 = _temp2; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; }; _local12 = _local12.next; }; _local13 = _local2.m_jointList; while (_local13) { if (_local13.joint.m_islandFlag == true){ } else { _local3.AddJoint(_local13.joint); _local13.joint.m_islandFlag = true; _local11 = _local13.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local9; _local9 = (_local9 + 1); _local16 = _temp3; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; _local13 = _local13.next; }; }; }; _local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep); if (_local3.m_positionIterationCount > m_positionIterationCount){ m_positionIterationCount = _local3.m_positionIterationCount; }; _local10 = 0; while (_local10 < _local3.m_bodyCount) { _local2 = _local3.m_bodies[_local10]; if (_local2.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local10++; }; }; }; _local8 = _local8.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local14 = _local2.SynchronizeShapes(); if ((((_local14 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array; var _local5:int; var _local6:int; _local4 = new Array(_arg3); _local5 = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); _local6 = 0; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local8:b2Island; var _local9:int; var _local10:Array; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; _local8 = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); _local9 = m_bodyCount; _local10 = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.m_shape1; _local4 = _local11.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local19 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local19 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local19); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local19 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local19); }; }; _local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep); if ((((_local18 > 0)) && ((_local18 < 1)))){ _local18 = (((1 - _local18) * _local19) + _local18); if (_local18 > 1){ _local18 = 1; }; }; _local11.m_toi = _local18; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){ _local12 = _local11; _local13 = _local18; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.m_manifoldCount == 0){ } else { _local14 = _local5; if (_local14.IsStatic()){ _local14 = _local6; }; _local8.Clear(); _local15 = 0; var _temp1 = _local15; _local15 = (_local15 + 1); var _local22 = _temp1; _local10[_local22] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local15 > 0) { --_local15; _local2 = _local10[_local15]; _local8.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local8.m_contactCount == _local8.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function Validate():void{ m_broadPhase.Validate(); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function GetBodyList():b2Body{ return (m_bodyList); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetPositionCorrection(_arg1:Boolean):void{ m_positionCorrection = _arg1; } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local2:b2Joint; var _local3:b2Body; var _local4:b2Shape; _local2 = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local2:Boolean; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:b2Shape; _local2 = _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; }; _local3 = _arg1.m_body1; _local4 = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function CreateBody(_arg1:b2BodyDef):b2Body{ var _local2:b2Body; if (m_lock == true){ return (null); }; _local2 = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function Step(_arg1:Number, _arg2:int):void{ var _local3:b2TimeStep; m_lock = true; _local3 = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; _local3.dtRatio = (m_inv_dt0 * _arg1); _local3.positionCorrection = m_positionCorrection; _local3.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((m_continuousPhysics) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_inv_dt0 = _local3.inv_dt; m_lock = false; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } } }//package Box2D.Dynamics
Section 75
//Main (com.midasplayer.particle.Main) package com.midasplayer.particle { import flash.events.*; import flash.display.*; public class Main extends Sprite { private var minAlpha:Number;// = 0.01 private var maxAlpha:Number;// = 0.02 private var emitter; private var minXVel:Number;// = -1 private var minSize:Number;// = 12 private var maxXVel:Number;// = 1 private var maxSize:Number;// = 29 private var particles:Array; private var numParticles:int;// = 20 private var minYVel:Number;// = -1 private var maxYVel:Number;// = 1 public function Main(){ numParticles = 20; minXVel = -1; maxXVel = 1; minYVel = -1; maxYVel = 1; minSize = 12; maxSize = 29; minAlpha = 0.01; maxAlpha = 0.02; particles = new Array(); super(); addEventListener(Event.ENTER_FRAME, enterFrame); } public function setEmitterClip(_arg1):void{ emitter = _arg1; } private function randRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number; _local3 = ((Math.random() * (_arg2 - _arg1)) + _arg1); return (_local3); } private function enterFrame(_arg1:Event){ createNewParticle(); } public function kill():void{ var _local1:Number; removeEventListener(Event.ENTER_FRAME, enterFrame); _local1 = 0; while (_local1 < particles.length) { particles[_local1].destroy(); _local1++; }; } private function createNewParticle():void{ var _local1:*; var _local2:Number; _local1 = new Particle(spark, emitter, -10, -7, stage.stageWidth, stage.stageHeight); _local1.setVel(randRange(minXVel, maxXVel), randRange(minYVel, maxYVel)); _local1.setSize(randRange(minSize, maxSize)); particles.push(_local1); while (particles.length > numParticles) { _local1 = particles.shift(); _local1.destroy(); }; _local2 = 0; while (_local2 < particles.length) { particles[_local2].update(); _local2++; }; } } }//package com.midasplayer.particle
Section 76
//Particle (com.midasplayer.particle.Particle) package com.midasplayer.particle { import flash.display.*; import flash.geom.*; public class Particle { private var _yVel:Number; private var _xVel:Number; private var _stageHeight:Number; private var _alphaDecr:Number;// = 0 private var clip:DisplayObject; private var _stageWidth:Number; public function Particle(_arg1:Class, _arg2:DisplayObjectContainer, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number){ _alphaDecr = 0; super(); _stageWidth = _arg5; _stageHeight = _arg6; clip = new (_arg1); _arg2.addChild(clip); clip.x = _arg3; clip.y = _arg4; } public function update(){ clip.x = (clip.x + _xVel); clip.y = (clip.y + _yVel); clip.alpha = (clip.alpha - _alphaDecr); } public function setSize(_arg1:Number){ clip.width = _arg1; clip.height = _arg1; } public function setColour(_arg1:Number){ var _local2:ColorTransform; _local2 = new ColorTransform(); _local2.color = _arg1; clip.transform.colorTransform = _local2; } public function setAlphaDecr(_arg1:Number):void{ _alphaDecr = _arg1; } public function destroy():void{ clip.parent.removeChild(clip); clip = null; } public function setVel(_arg1:Number, _arg2:Number){ _xVel = _arg1; _yVel = _arg2; } } }//package com.midasplayer.particle
Section 77
//DragonLoader (com.midasplayer.DragonLoader) package com.midasplayer { import flash.events.*; import flash.display.*; import fl.transitions.easing.*; import fl.transitions.*; import flash.utils.*; import flash.media.*; public class DragonLoader extends MovieClip { public var fireLogoHolder:MovieClip; public var mcPlayBtn:MovieClip; private var m_dragonClip:MovieClip; public var m_bannedSign:MovieClip; private var m_glimmerTween:Tween; private var m_bg:Sprite; private var m_playBtnTween:Tween; public var bannedSign:MovieClip; public var m_fireLogoClip:MovieClip; private var oldFrameRate:int; private var m_fireLogoTween:Tween; private var m_sndBell:Sound; private var m_glimmer:MovieClip; public var m_playBtn:MovieClip; public static var LAUNCH_GAME:String = "launchGame"; public function DragonLoader(){ this.x = (this.y = 0); m_bannedSign = bannedSign; m_bannedSign.bg.width = stage.stageWidth; m_bannedSign.bg.height = stage.stageHeight; m_bannedSign.alpha = 0; m_bannedSign.addEventListener(MouseEvent.CLICK, onMainMovie); m_bannedSign.buttonMode = true; m_fireLogoClip = fireLogoHolder; m_fireLogoClip.x = ((m_bannedSign.bg.width - m_fireLogoClip.width) - 90); m_fireLogoClip.y = (((m_bannedSign.bg.height / 2) - (m_fireLogoClip.height / 2)) - 60); m_fireLogoClip.visible = false; m_fireLogoClip.stop(); m_dragonClip = new mcDragon(); m_dragonClip.name = "dragon"; m_dragonClip.x = (m_bannedSign.bg.width - m_dragonClip.width); m_dragonClip.y = ((m_bannedSign.bg.height / 2) - (m_dragonClip.height / 2)); m_dragonClip.stop(); m_playBtn = mcPlayBtn; m_playBtn.buttonMode = true; m_playBtn.alpha = 0; m_sndBell = new sfxBell(); } public function destroy():void{ var _local1:Sprite; m_playBtn.removeEventListener(MouseEvent.ROLL_OVER, btnOver); m_playBtn.removeEventListener(MouseEvent.ROLL_OUT, btnOut); m_playBtn.removeEventListener(MouseEvent.MOUSE_DOWN, btnDown); m_playBtn.removeEventListener(MouseEvent.MOUSE_UP, launchGame); if (m_fireLogoTween != null){ m_fireLogoTween.removeEventListener(TweenEvent.MOTION_FINISH, logoInPlace); m_fireLogoTween = null; }; _local1 = (this.parent.getChildByName("clickBg") as Sprite); this.parent.removeChild(_local1); this.parent.removeChild(this); } public function onMainMovie(_arg1:MouseEvent):void{ KingAPI.openLoaderMovieLink(); } public function playLoaderMovie():void{ this.addChild(m_dragonClip); this.setChildIndex(m_dragonClip, 0); m_dragonClip.addEventListener(Event.ENTER_FRAME, animationDone); m_dragonClip.play(); } public function init(_arg1:String, _arg2:String=""):void{ if (_arg2 != ""){ MochiBot.track(this, _arg2); }; oldFrameRate = root.stage.frameRate; root.stage.frameRate = 30; if (KingAPI.banned){ showBannedScreen(); } else { if (KingAPI.isHome){ launchGame(null); } else { playLoaderMovie(); }; }; } private function btnDown(_arg1:MouseEvent):void{ m_playBtn.gotoAndStop("down"); } public function animationDone(_arg1:Event):void{ if (m_dragonClip.currentFrame == 80){ m_fireLogoClip.visible = true; m_fireLogoClip.play(); m_fireLogoTween = new Tween(m_fireLogoClip, "x", Regular.easeOut, m_fireLogoClip.x, 170, 1, true); m_fireLogoTween.addEventListener(TweenEvent.MOTION_FINISH, logoInPlace); }; if (m_dragonClip.currentFrame == m_dragonClip.totalFrames){ m_dragonClip.removeEventListener(Event.ENTER_FRAME, animationDone); m_dragonClip.stop(); m_playBtn.x = 285; m_playBtn.y = (m_fireLogoClip.y + 210); m_playBtn.addEventListener(MouseEvent.ROLL_OVER, btnOver); m_playBtn.addEventListener(MouseEvent.ROLL_OUT, btnOut); m_playBtn.addEventListener(MouseEvent.MOUSE_DOWN, btnDown); m_playBtn.addEventListener(MouseEvent.MOUSE_UP, launchGame); }; } private function onGlimmerTmr(_arg1:Event):void{ var _local2:Number; var _local3:Number; _local2 = (m_fireLogoClip.x - m_glimmer.width); _local3 = ((m_fireLogoClip.x + m_fireLogoClip.width) - 80); m_glimmerTween = new Tween(m_glimmer, "x", None.easeNone, _local2, _local3, 0.5, true); m_glimmerTween.addEventListener(TweenEvent.MOTION_FINISH, glimmerDone); m_sndBell.play(); } public function launchGame(_arg1:Event):void{ root.stage.frameRate = oldFrameRate; this.dispatchEvent(new Event(LAUNCH_GAME)); } private function btnOver(_arg1:MouseEvent):void{ m_playBtn.gotoAndStop("over"); } private function logoVisible(_arg1:Event):void{ if (m_fireLogoClip.currentFrame == m_fireLogoClip.totalFrames){ m_fireLogoClip.removeEventListener(Event.ENTER_FRAME, logoVisible); m_playBtnTween = new Tween(m_playBtn, "alpha", None.easeNone, 0, 1, 0.5, true); m_glimmer = new mcGlimmer(); m_glimmer.x = (m_fireLogoClip.x - m_glimmer.width); m_glimmer.y = (m_fireLogoClip.y + 112); this.addChild(m_glimmer); setTimeout(onGlimmerTmr, 1000, null); }; } private function btnOut(_arg1:MouseEvent):void{ m_playBtn.gotoAndStop("idle"); } private function glimmerDone(_arg1:Event):void{ m_glimmerTween.removeEventListener(TweenEvent.MOTION_FINISH, glimmerDone); this.removeChild(m_glimmer); } private function logoInPlace(_arg1:Event):void{ m_fireLogoClip.addEventListener(Event.ENTER_FRAME, logoVisible); } public function showBannedScreen():void{ m_bannedSign.alpha = 1; } } }//package com.midasplayer
Section 78
//KingAPI (com.midasplayer.KingAPI) package com.midasplayer { import flash.events.*; import flash.net.*; import flash.external.*; public class KingAPI { public static const LINK_TYPE_RIGHT_CLICK:String = "rightclick"; public static const USER_TYPE_SUBSCRIPTION:int = 3; public static const LINK_TYPE_HIGHSCORES:String = "highscores"; public static const LINK_TYPE_SIGN:String = "sign"; public static const INITIALIZED_EVENT:String = "initialized"; public static const LINK_TYPE_OTHER_GAMES:String = "other_games"; public static const USER_TYPE_REGISTERED:int = 1; private static const SAK:String = "ggfd7sday923mdsfd8csfds34"; private static const loadHomeParametersURL:String = "http://www.king.com/servlet/FreeGameServlet?action=load"; public static const LINK_TYPE_LOADER_MOVIE:String = "loader_movie"; private static const bounceURL:String = "http://www.mygame.com/king/bounce.jsp"; public static const LINK_TYPE_PROTECT:String = "protect"; public static const LINK_TYPE_ADD_GAME:String = "add_game"; public static const USER_TYPE_GOLD:int = 2; public static const USER_TYPE_UNREGISTERED:int = 0; public static const HOST_BANNED_EVENT:String = "hostBanned"; private static const SK:String = "vf78hxcsjak77cxzhjkwad87s"; private static const loadCountURL:String = "http://www.mygame.com/king/loadcount.jsp"; public static const LINK_TYPE_LOADER_PROGRESS:String = "loader_progress"; private static var check:String = null; public static var gameName:String; public static var banned:Boolean = false; protected static var dispatcher:EventDispatcher; public static var isHome:Boolean = false; private static var sessionID:String; private static var iscore:int = 123; public static var fromURL:String; private static var SSK:String = "ng43ui54hy35tdsnd6f54rews"; private static function loadUrlErrorHandler(_arg1:Event):void{ trace(("Unable to load url: " + _arg1)); } public static function resetScore():void{ iscore = 123; check = null; } public static function openOfflineProtectionLink():void{ openKingPage(LINK_TYPE_PROTECT); } public static function init(_arg1:String, _arg2:String):void{ var loadCounter:URLLoader; var reqvars:URLVariables; var request:URLRequest; var so:SharedObject; var rnd1:Number; var rnd2:Number; var name = _arg1; var from = _arg2; gameName = name; fromURL = from; loadCounter = new URLLoader(); reqvars = new URLVariables(); reqvars.game = gameName; reqvars.from = fromURL; try { so = SharedObject.getLocal("sessionId"); if (so.data.sessionID == null){ rnd1 = Math.abs(Math.floor((Math.random() * 4294967295))); rnd2 = Math.abs(Math.floor((Math.random() * 4294967295))); so.data.sessionID = (rnd1.toString(16) + rnd2.toString(16)); so.flush(); }; sessionID = so.data.sessionID; } catch(e:Error) { sessionID = "error"; }; reqvars.session = sessionID; request = new URLRequest(((loadCountURL + "?") + reqvars.toString())); loadCounter.addEventListener(Event.COMPLETE, loadCountHandler); loadCounter.addEventListener(IOErrorEvent.IO_ERROR, loadUrlErrorHandler); loadCounter.addEventListener(SecurityErrorEvent.SECURITY_ERROR, loadUrlErrorHandler); try { loadCounter.load(request); } catch(error:Error) { trace(("Unable to load loadcount url: " + loadCountURL)); trace(error.message); }; } private static function loadHomeParametersHandler(_arg1:Event):void{ var _local2:URLLoader; _local2 = URLLoader(_arg1.target); trace(("loadCounter.data" + _local2.data)); } public static function submitInternalScore():void{ var _local1:int; checkScore(); _local1 = ((iscore - 123) / 2); submitScore(_local1); } public static function openOtherGamesLink():void{ openKingPage(LINK_TYPE_OTHER_GAMES); } public static function openKingPage(_arg1:String, _arg2:String=null):void{ var _local3:URLVariables; var _local4:String; _local3 = new URLVariables(); _local3.game = gameName; _local3.from = fromURL; _local3.type = _arg1; _local3.session = sessionID; if (_arg2 != null){ _local3.redirect = _arg2; }; _local4 = "_blank"; if (isHome){ _local4 = "_top"; }; navigateToURL(new URLRequest(((bounceURL + "?") + _local3.toString())), _local4); } private static function loadCountHandler(_arg1:Event):void{ var loadCounter:URLLoader; var vars:URLVariables; var event = _arg1; loadCounter = URLLoader(event.target); trace(("loadCounter.data :" + loadCounter.data)); try { vars = new URLVariables(loadCounter.data); if (vars.h == "true"){ isHome = true; }; if (vars.b == "true"){ banned = true; dispatcher.dispatchEvent(new Event(HOST_BANNED_EVENT)); } else { dispatcher.dispatchEvent(new Event(INITIALIZED_EVENT)); }; trace((("::" + vars.h) + "::")); trace((("::" + vars.b) + "::")); } catch(e:Error) { trace(("Error reading data from loadcount url: " + e)); }; } public static function addEventListener(_arg1:String, _arg2:Function):void{ if (dispatcher == null){ dispatcher = new EventDispatcher(); }; dispatcher.addEventListener(_arg1, _arg2); } public static function openLoaderMovieLink():void{ openKingPage(LINK_TYPE_LOADER_MOVIE); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ if (dispatcher == null){ return; }; dispatcher.removeEventListener(_arg1, _arg2); } public static function submitScore(_arg1:int):void{ var hash:String; var score = _arg1; hash = md5.encrypt(((((score + ":") + gameName) + ":") + SSK)); try { if (isHome){ ExternalInterface.call("submitScore", score, hash); } else { openKingPage(LINK_TYPE_HIGHSCORES, ((((("game/" + gameName) + "/submit/") + score) + ":") + hash)); }; } catch(e:Error) { trace(e); }; } public static function submitLevel(_arg1:int):void{ var hash:String; var level = _arg1; hash = md5.encrypt(((((level + ":") + gameName) + ":") + SSK)); try { if (isHome){ ExternalInterface.call("submitLevel", level, hash); }; } catch(e:Error) { trace(e); }; } public static function openHighscoresLink():void{ openKingPage(LINK_TYPE_HIGHSCORES, (("game/" + gameName) + "/highscores")); } public static function openSignLink():void{ if (!isHome){ openKingPage(LINK_TYPE_SIGN); }; } public static function openRightClickLink():void{ openKingPage(LINK_TYPE_RIGHT_CLICK); } private static function checkScore():void{ if (check != null){ if (check != md5.encrypt(((((iscore + ":") + gameName) + ":") + SK))){ SSK = "ng41ui54hy35tdsnd6f54rews"; }; }; } public static function addScore(_arg1:int):int{ var _local2:int; checkScore(); _local2 = ((iscore - 123) / 2); _local2 = (_local2 + _arg1); iscore = ((_local2 * 2) + 123); check = md5.encrypt(((((iscore + ":") + gameName) + ":") + SK)); return (_local2); } public static function openLoaderProgressLink():void{ openKingPage(LINK_TYPE_LOADER_PROGRESS); } public static function openAddToWebsiteLink():void{ openKingPage(LINK_TYPE_ADD_GAME, "website_content.jsp"); } public static function submitAchievement(_arg1:String):void{ var hash:String; var achievement = _arg1; hash = md5.encrypt(((((achievement + ":") + gameName) + ":") + SAK)); try { if (isHome){ ExternalInterface.call("submitAchievement", achievement, hash); }; } catch(e:Error) { trace(e); }; } } }//package com.midasplayer
Section 79
//md5 (com.midasplayer.md5) package com.midasplayer { public class md5 { public static const HEX_FORMAT_LOWERCASE:uint = 0; public static const HEX_FORMAT_UPPERCASE:uint = 1; public static const BASE64_PAD_CHARACTER_DEFAULT_COMPLIANCE:String = ""; public static const BASE64_PAD_CHARACTER_RFC_COMPLIANCE:String = "="; public static var hexcase:uint = 0; public static var b64pad:String = ""; public static function md5_gg(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 & _arg4) | (_arg3 & ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function md5_cmn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Number{ return (safe_add(bit_rol(safe_add(safe_add(_arg2, _arg1), safe_add(_arg4, _arg6)), _arg5), _arg3)); } public static function binl_md5(_arg1:Array, _arg2:Number):Array{ 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; _arg1[(_arg2 >> 5)] = (_arg1[(_arg2 >> 5)] | (128 << (_arg2 % 32))); _arg1[((((_arg2 + 64) >>> 9) << 4) + 14)] = _arg2; _local3 = 1732584193; _local4 = -271733879; _local5 = -1732584194; _local6 = 271733878; _local7 = 0; while (_local7 < _arg1.length) { _local8 = _local3; _local9 = _local4; _local10 = _local5; _local11 = _local6; _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 7, -680876936); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 1)], 12, -389564586); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 17, 606105819); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 3)], 22, -1044525330); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 7, -176418897); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 5)], 12, 1200080426); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 17, -1473231341); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 7)], 22, -45705983); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 7, 1770035416); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 9)], 12, -1958414417); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 17, -42063); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 11)], 22, -1990404162); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 7, 1804603682); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 13)], 12, -40341101); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 17, -1502002290); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 15)], 22, 1236535329); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 5, -165796510); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 6)], 9, -1069501632); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 14, 643717713); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 0)], 20, -373897302); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 5, -701558691); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 10)], 9, 38016083); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 14, -660478335); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 4)], 20, -405537848); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 5, 568446438); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 14)], 9, -1019803690); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 14, -187363961); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 8)], 20, 1163531501); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 5, -1444681467); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 2)], 9, -51403784); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 14, 1735328473); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 12)], 20, -1926607734); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 4, -378558); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 8)], 11, -2022574463); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 16, 1839030562); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 14)], 23, -35309556); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 4, -1530992060); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 4)], 11, 1272893353); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 16, -155497632); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 10)], 23, -1094730640); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 4, 681279174); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 0)], 11, -358537222); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 16, -722521979); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 6)], 23, 76029189); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 4, -640364487); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 12)], 11, -421815835); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 16, 530742520); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 2)], 23, -995338651); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 6, -198630844); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 7)], 10, 1126891415); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 15, -1416354905); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 5)], 21, -57434055); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 6, 1700485571); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 3)], 10, -1894986606); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 15, -1051523); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 1)], 21, -2054922799); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 6, 1873313359); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 15)], 10, -30611744); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 15, -1560198380); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 13)], 21, 1309151649); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 6, -145523070); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 11)], 10, -1120210379); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 15, 718787259); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 9)], 21, -343485551); _local3 = safe_add(_local3, _local8); _local4 = safe_add(_local4, _local9); _local5 = safe_add(_local5, _local10); _local6 = safe_add(_local6, _local11); _local7 = (_local7 + 16); }; return ([_local3, _local4, _local5, _local6]); } public static function str2rstr_utf16le(_arg1:String):String{ var _local2:String; var _local3:Number; _local2 = ""; _local3 = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode((_arg1.charCodeAt(_local3) & 0xFF), ((_arg1.charCodeAt(_local3) >>> 8) & 0xFF))); _local3++; }; return (_local2); } public static function hex_hmac_md5(_arg1:String, _arg2:String):String{ return (rstr2hex(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)))); } public static function binl2rstr(_arg1:Array):String{ var _local2:String; var _local3:Number; _local2 = ""; _local3 = 0; while (_local3 < (_arg1.length * 32)) { _local2 = (_local2 + String.fromCharCode(((_arg1[(_local3 >> 5)] >>> (_local3 % 32)) & 0xFF))); _local3 = (_local3 + 8); }; return (_local2); } public static function md5_ff(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 & _arg3) | (~(_arg2) & _arg4)), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function md5_ii(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn((_arg3 ^ (_arg2 | ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function rstr2binl(_arg1:String):Array{ var _local2:Array; var _local3:Number; _local2 = Array((_arg1.length >> 2)); _local3 = 0; while (_local3 < _local2.length) { _local2[_local3] = 0; _local3++; }; _local3 = 0; while (_local3 < (_arg1.length * 8)) { _local2[(_local3 >> 5)] = (_local2[(_local3 >> 5)] | ((_arg1.charCodeAt((_local3 / 8)) & 0xFF) << (_local3 % 32))); _local3 = (_local3 + 8); }; return (_local2); } public static function md5_vm_test():Boolean{ return ((hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72")); } public static function b64_md5(_arg1:String):String{ return (rstr2b64(rstr_md5(str2rstr_utf8(_arg1)))); } public static function any_hmac_md5(_arg1:String, _arg2:String, _arg3:String):String{ return (rstr2any(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)), _arg3)); } public static function hex_md5(_arg1:String):String{ return (rstr2hex(rstr_md5(str2rstr_utf8(_arg1)))); } public static function bit_rol(_arg1:Number, _arg2:Number):Number{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } public static function encrypt(_arg1:String):String{ return (hex_md5(_arg1)); } public static function md5_hh(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 ^ _arg3) ^ _arg4), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function rstr2hex(_arg1:String):String{ var _local2:String; var _local3:String; var _local4:Number; var _local5:Number; _local2 = (hexcase) ? "0123456789ABCDEF" : "0123456789abcdef"; _local3 = ""; _local5 = 0; while (_local5 < _arg1.length) { _local4 = _arg1.charCodeAt(_local5); _local3 = (_local3 + (_local2.charAt(((_local4 >>> 4) & 15)) + _local2.charAt((_local4 & 15)))); _local5++; }; return (_local3); } public static function any_md5(_arg1:String, _arg2:String):String{ return (rstr2any(rstr_md5(str2rstr_utf8(_arg1)), _arg2)); } public static function b64_hmac_md5(_arg1:String, _arg2:String):String{ return (rstr2b64(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)))); } public static function rstr2b64(_arg1:String):String{ var _local2:String; var _local3:String; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; _local3 = ""; _local4 = _arg1.length; _local5 = 0; while (_local5 < _local4) { _local6 = (((_arg1.charCodeAt(_local5) << 16) | (((_local5 + 1) < _local4)) ? (_arg1.charCodeAt((_local5 + 1)) << 8) : 0) | (((_local5 + 2) < _local4)) ? _arg1.charCodeAt((_local5 + 2)) : 0); _local7 = 0; while (_local7 < 4) { if (((_local5 * 8) + (_local7 * 6)) > (_arg1.length * 8)){ _local3 = (_local3 + b64pad); } else { _local3 = (_local3 + _local2.charAt(((_local6 >>> (6 * (3 - _local7))) & 63))); }; _local7++; }; _local5 = (_local5 + 3); }; return (_local3); } public static function safe_add(_arg1:Number, _arg2:Number):Number{ var _local3:Number; var _local4:Number; _local3 = ((_arg1 & 0xFFFF) + (_arg2 & 0xFFFF)); _local4 = (((_arg1 >> 16) + (_arg2 >> 16)) + (_local3 >> 16)); return (((_local4 << 16) | (_local3 & 0xFFFF))); } public static function str2rstr_utf8(_arg1:String):String{ var _local2:String; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = ""; _local3 = -1; while (++_local3 < _arg1.length) { _local4 = _arg1.charCodeAt(_local3); _local5 = (((_local3 + 1) < _arg1.length)) ? _arg1.charCodeAt((_local3 + 1)) : 0; if ((((((((0xD800 <= _local4)) && ((_local4 <= 56319)))) && ((0xDC00 <= _local5)))) && ((_local5 <= 57343)))){ _local4 = ((65536 + ((_local4 & 1023) << 10)) + (_local5 & 1023)); _local3++; }; if (_local4 <= 127){ _local2 = (_local2 + String.fromCharCode(_local4)); } else { if (_local4 <= 2047){ _local2 = (_local2 + String.fromCharCode((192 | ((_local4 >>> 6) & 31)), (128 | (_local4 & 63)))); } else { if (_local4 <= 0xFFFF){ _local2 = (_local2 + String.fromCharCode((224 | ((_local4 >>> 12) & 15)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63)))); } else { if (_local4 <= 2097151){ _local2 = (_local2 + String.fromCharCode((240 | ((_local4 >>> 18) & 7)), (128 | ((_local4 >>> 12) & 63)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63)))); }; }; }; }; }; return (_local2); } public static function rstr_hmac_md5(_arg1:String, _arg2:String):String{ var _local3:Array; var _local4:Array; var _local5:Array; var _local6:Number; var _local7:Array; _local3 = rstr2binl(_arg1); if (_local3.length > 16){ _local3 = binl_md5(_local3, (_arg1.length * 8)); }; _local4 = Array(16); _local5 = Array(16); _local6 = 0; while (_local6 < 16) { _local4[_local6] = (_local3[_local6] ^ 909522486); _local5[_local6] = (_local3[_local6] ^ 1549556828); _local6++; }; _local7 = binl_md5(_local4.concat(rstr2binl(_arg2)), (0x0200 + (_arg2.length * 8))); return (binl2rstr(binl_md5(_local5.concat(_local7), (0x0200 + 128)))); } public static function str2rstr_utf16be(_arg1:String):String{ var _local2:String; var _local3:Number; _local2 = ""; _local3 = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode(((_arg1.charCodeAt(_local3) >>> 8) & 0xFF), (_arg1.charCodeAt(_local3) & 0xFF))); _local3++; }; return (_local2); } public static function rstr2any(_arg1:String, _arg2:String):String{ var _local3:Number; var _local4:Array; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Array; var _local9:Array; var _local10:String; _local3 = _arg2.length; _local4 = []; _local9 = Array((_arg1.length / 2)); _local5 = 0; while (_local5 < _local9.length) { _local9[_local5] = ((_arg1.charCodeAt((_local5 * 2)) << 8) | _arg1.charCodeAt(((_local5 * 2) + 1))); _local5++; }; while (_local9.length > 0) { _local8 = []; _local7 = 0; _local5 = 0; while (_local5 < _local9.length) { _local7 = ((_local7 << 16) + _local9[_local5]); _local6 = Math.floor((_local7 / _local3)); _local7 = (_local7 - (_local6 * _local3)); if ((((_local8.length > 0)) || ((_local6 > 0)))){ _local8[_local8.length] = _local6; }; _local5++; }; _local4[_local4.length] = _local7; _local9 = _local8; }; _local10 = ""; _local5 = (_local4.length - 1); while (_local5 >= 0) { _local10 = (_local10 + _arg2.charAt(_local4[_local5])); _local5--; }; return (_local10); } public static function rstr_md5(_arg1:String):String{ return (binl2rstr(binl_md5(rstr2binl(_arg1), (_arg1.length * 8)))); } } }//package com.midasplayer
Section 80
//None (fl.transitions.easing.None) package fl.transitions.easing { public class None { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } } }//package fl.transitions.easing
Section 81
//Regular (fl.transitions.easing.Regular) package fl.transitions.easing { public class Regular { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((_arg3 * _arg1) * _arg1) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2)); }; --_arg1; return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2)); } } }//package fl.transitions.easing
Section 82
//Tween (fl.transitions.Tween) package fl.transitions { import flash.events.*; import flash.display.*; import flash.utils.*; public class Tween extends EventDispatcher { private var _position:Number;// = NAN public var prevTime:Number;// = NAN public var prevPos:Number;// = NAN public var isPlaying:Boolean;// = false public var begin:Number;// = NAN private var _fps:Number;// = NAN private var _time:Number;// = NAN public var change:Number;// = NAN private var _finish:Number;// = NAN public var looping:Boolean;// = false private var _intervalID:uint;// = 0 public var func:Function; private var _timer:Timer;// = null private var _startTime:Number;// = NAN public var prop:String;// = "" private var _duration:Number;// = NAN public var obj:Object;// = null public var useSeconds:Boolean;// = false protected static var _mc:MovieClip = new MovieClip(); public function Tween(_arg1:Object, _arg2:String, _arg3:Function, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean=false){ isPlaying = false; obj = null; prop = ""; func = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); }; begin = NaN; change = NaN; useSeconds = false; prevTime = NaN; prevPos = NaN; looping = false; _duration = NaN; _time = NaN; _fps = NaN; _position = NaN; _startTime = NaN; _intervalID = 0; _finish = NaN; _timer = null; super(); if (!arguments.length){ return; }; this.obj = _arg1; this.prop = _arg2; this.begin = _arg4; this.position = _arg4; this.duration = _arg6; this.useSeconds = _arg7; if ((_arg3 is Function)){ this.func = _arg3; }; this.finish = _arg5; this._timer = new Timer(100); this.start(); } public function continueTo(_arg1:Number, _arg2:Number):void{ this.begin = this.position; this.finish = _arg1; if (!isNaN(_arg2)){ this.duration = _arg2; }; this.start(); } public function stop():void{ this.stopEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_STOP, this._time, this._position)); } private function fixTime():void{ if (this.useSeconds){ this._startTime = (getTimer() - (this._time * 1000)); }; } public function set FPS(_arg1:Number):void{ var _local2:Boolean; _local2 = this.isPlaying; this.stopEnterFrame(); this._fps = _arg1; if (_local2){ this.startEnterFrame(); }; } public function get finish():Number{ return ((this.begin + this.change)); } public function get duration():Number{ return (this._duration); } protected function startEnterFrame():void{ var _local1:Number; if (isNaN(this._fps)){ _mc.addEventListener(Event.ENTER_FRAME, this.onEnterFrame, false, 0, true); } else { _local1 = (1000 / this._fps); this._timer.delay = _local1; this._timer.addEventListener(TimerEvent.TIMER, this.timerHandler, false, 0, true); this._timer.start(); }; this.isPlaying = true; } public function set time(_arg1:Number):void{ this.prevTime = this._time; if (_arg1 > this.duration){ if (this.looping){ this.rewind((_arg1 - this._duration)); this.update(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_LOOP, this._time, this._position)); } else { if (this.useSeconds){ this._time = this._duration; this.update(); }; this.stop(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_FINISH, this._time, this._position)); }; } else { if (_arg1 < 0){ this.rewind(); this.update(); } else { this._time = _arg1; this.update(); }; }; } protected function stopEnterFrame():void{ if (isNaN(this._fps)){ _mc.removeEventListener(Event.ENTER_FRAME, this.onEnterFrame); } else { this._timer.stop(); }; this.isPlaying = false; } public function getPosition(_arg1:Number=NaN):Number{ if (isNaN(_arg1)){ _arg1 = this._time; }; return (this.func(_arg1, this.begin, this.change, this._duration)); } public function set finish(_arg1:Number):void{ this.change = (_arg1 - this.begin); } public function set duration(_arg1:Number):void{ this._duration = ((_arg1)<=0) ? Infinity : _arg1; } public function setPosition(_arg1:Number):void{ this.prevPos = this._position; if (this.prop.length){ this.obj[this.prop] = (this._position = _arg1); }; this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_CHANGE, this._time, this._position)); } public function resume():void{ this.fixTime(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_RESUME, this._time, this._position)); } public function fforward():void{ this.time = this._duration; this.fixTime(); } protected function onEnterFrame(_arg1:Event):void{ this.nextFrame(); } public function get position():Number{ return (this.getPosition(this._time)); } public function yoyo():void{ this.continueTo(this.begin, this.time); } public function nextFrame():void{ if (this.useSeconds){ this.time = ((getTimer() - this._startTime) / 1000); } else { this.time = (this._time + 1); }; } protected function timerHandler(_arg1:TimerEvent):void{ this.nextFrame(); _arg1.updateAfterEvent(); } public function get FPS():Number{ return (this._fps); } public function rewind(_arg1:Number=0):void{ this._time = _arg1; this.fixTime(); this.update(); } public function set position(_arg1:Number):void{ this.setPosition(_arg1); } public function get time():Number{ return (this._time); } private function update():void{ this.setPosition(this.getPosition(this._time)); } public function start():void{ this.rewind(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_START, this._time, this._position)); } public function prevFrame():void{ if (!this.useSeconds){ this.time = (this._time - 1); }; } } }//package fl.transitions
Section 83
//TweenEvent (fl.transitions.TweenEvent) package fl.transitions { import flash.events.*; public class TweenEvent extends Event { public var time:Number;// = NAN public var position:Number;// = NAN public static const MOTION_START:String = "motionStart"; public static const MOTION_STOP:String = "motionStop"; public static const MOTION_LOOP:String = "motionLoop"; public static const MOTION_CHANGE:String = "motionChange"; public static const MOTION_FINISH:String = "motionFinish"; public static const MOTION_RESUME:String = "motionResume"; public function TweenEvent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Boolean=false){ time = NaN; position = NaN; super(_arg1, _arg4, _arg5); this.time = _arg2; this.position = _arg3; } override public function clone():Event{ return (new TweenEvent(this.type, this.time, this.position, this.bubbles, this.cancelable)); } } }//package fl.transitions
Section 84
//_Library_8 (go_fla._Library_8) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class _Library_8 extends MovieClip { public function _Library_8(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package go_fla
Section 85
//Basket_183 (go_fla.Basket_183) package go_fla { import flash.display.*; public dynamic class Basket_183 extends MovieClip { public var door:BasketUp; } }//package go_fla
Section 86
//Basket_Move_182 (go_fla.Basket_Move_182) package go_fla { import flash.display.*; public dynamic class Basket_Move_182 extends MovieClip { public var sprite:MovieClip; } }//package go_fla
Section 87
//break_1_209 (go_fla.break_1_209) package go_fla { import flash.display.*; public dynamic class break_1_209 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 88
//break_1_211 (go_fla.break_1_211) package go_fla { import flash.display.*; public dynamic class break_1_211 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 89
//break_1_249 (go_fla.break_1_249) package go_fla { import flash.display.*; public dynamic class break_1_249 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 90
//break_1_289 (go_fla.break_1_289) package go_fla { import flash.display.*; public dynamic class break_1_289 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 91
//break_2_264 (go_fla.break_2_264) package go_fla { import flash.display.*; public dynamic class break_2_264 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 92
//Bridges_163 (go_fla.Bridges_163) package go_fla { import flash.display.*; public dynamic class Bridges_163 extends MovieClip { public var bridge_1:MovieClip; } }//package go_fla
Section 93
//HandCursor_27 (go_fla.HandCursor_27) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class HandCursor_27 extends MovieClip { public var hand:MovieClip; public function HandCursor_27(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package go_fla
Section 94
//HandSprite_28 (go_fla.HandSprite_28) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class HandSprite_28 extends MovieClip { public function HandSprite_28(){ addFrameScript(0, frame1, 5, frame6); } function frame6(){ gotoAndStop(1); } function frame1(){ stop(); } } }//package go_fla
Section 95
//Intro_71 (go_fla.Intro_71) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class Intro_71 extends MovieClip { public function Intro_71(){ addFrameScript(23, frame24); } function frame24(){ root.gotoAndStop("Menu"); } } }//package go_fla
Section 96
//Level_10_Bridges_167 (go_fla.Level_10_Bridges_167) package go_fla { import flash.display.*; public dynamic class Level_10_Bridges_167 extends MovieClip { public var bridge_1:MovieClip; } }//package go_fla
Section 97
//Level_10_Points_169 (go_fla.Level_10_Points_169) package go_fla { import flash.display.*; public dynamic class Level_10_Points_169 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 98
//Level_10_Walls_171 (go_fla.Level_10_Walls_171) package go_fla { import flash.display.*; public dynamic class Level_10_Walls_171 extends MovieClip { public var wall_2:MovieClip; } }//package go_fla
Section 99
//Level_9_Points_296 (go_fla.Level_9_Points_296) package go_fla { import flash.display.*; public dynamic class Level_9_Points_296 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 100
//Level_9_Walls_299 (go_fla.Level_9_Walls_299) package go_fla { import flash.display.*; public dynamic class Level_9_Walls_299 extends MovieClip { public var brake:MovieClip; } }//package go_fla
Section 101
//mcBannedSign_5 (go_fla.mcBannedSign_5) package go_fla { import flash.display.*; public dynamic class mcBannedSign_5 extends MovieClip { public var bg:MovieClip; } }//package go_fla
Section 102
//mcFireLogo_4 (go_fla.mcFireLogo_4) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class mcFireLogo_4 extends MovieClip { public function mcFireLogo_4(){ addFrameScript(72, frame73); } function frame73(){ stop(); } } }//package go_fla
Section 103
//mcLoadLogo_1 (go_fla.mcLoadLogo_1) package go_fla { import flash.display.*; public dynamic class mcLoadLogo_1 extends MovieClip { public var bar:MovieClip; } }//package go_fla
Section 104
//mcPlayBtn_7 (go_fla.mcPlayBtn_7) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class mcPlayBtn_7 extends MovieClip { public function mcPlayBtn_7(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package go_fla
Section 105
//Numbers_95 (go_fla.Numbers_95) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class Numbers_95 extends MovieClip { public function Numbers_95(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package go_fla
Section 106
//Page_Credits_91 (go_fla.Page_Credits_91) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class Page_Credits_91 extends MovieClip { public var btnMainMenu:SimpleButton; public function Page_Credits_91(){ addFrameScript(31, frame32); } function frame32(){ stop(); } } }//package go_fla
Section 107
//Page_MainMenu_74 (go_fla.Page_MainMenu_74) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class Page_MainMenu_74 extends MovieClip { public var btnHiScores:SimpleButton; public var btnSoundSwitch:SimpleButton; public var btnMoreGames:SimpleButton; public var btnStartGame:SimpleButton; public var btnCredits:SimpleButton; public var btnnAddToWebsite:SimpleButton; public var btnMusicSwitch:SimpleButton; public var btnWalkthrough:BtnWalkthrough; public function Page_MainMenu_74(){ addFrameScript(31, frame32); } function frame32(){ stop(); } } }//package go_fla
Section 108
//Page_SelectLevel_85 (go_fla.Page_SelectLevel_85) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class Page_SelectLevel_85 extends MovieClip { public var btnMainMenu:SimpleButton; public var btnScrollDown:SimpleButton; public var levelsList:MovieClip; public var preview:MovieClip; public var btnScrollUp:SimpleButton; public function Page_SelectLevel_85(){ addFrameScript(30, frame31); } function frame31(){ stop(); } } }//package go_fla
Section 109
//Paper_Credits_90 (go_fla.Paper_Credits_90) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class Paper_Credits_90 extends MovieClip { public function Paper_Credits_90(){ addFrameScript(14, frame15); } function frame15(){ stop(); } } }//package go_fla
Section 110
//Paper_MainMenu_73 (go_fla.Paper_MainMenu_73) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class Paper_MainMenu_73 extends MovieClip { public function Paper_MainMenu_73(){ addFrameScript(15, frame16); } function frame16(){ stop(); } } }//package go_fla
Section 111
//Paper_Select_84 (go_fla.Paper_Select_84) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class Paper_Select_84 extends MovieClip { public function Paper_Select_84(){ addFrameScript(14, frame15); } function frame15(){ stop(); } } }//package go_fla
Section 112
//Points_117 (go_fla.Points_117) package go_fla { import flash.display.*; public dynamic class Points_117 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 113
//Points_139 (go_fla.Points_139) package go_fla { import flash.display.*; public dynamic class Points_139 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 114
//Points_150 (go_fla.Points_150) package go_fla { import flash.display.*; public dynamic class Points_150 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 115
//Points_162 (go_fla.Points_162) package go_fla { import flash.display.*; public dynamic class Points_162 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 116
//Points_175 (go_fla.Points_175) package go_fla { import flash.display.*; public dynamic class Points_175 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 117
//Points_187 (go_fla.Points_187) package go_fla { import flash.display.*; public dynamic class Points_187 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 118
//Points_195 (go_fla.Points_195) package go_fla { import flash.display.*; public dynamic class Points_195 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 119
//Points_205 (go_fla.Points_205) package go_fla { import flash.display.*; public dynamic class Points_205 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 120
//Points_218 (go_fla.Points_218) package go_fla { import flash.display.*; public dynamic class Points_218 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 121
//Points_225 (go_fla.Points_225) package go_fla { import flash.display.*; public dynamic class Points_225 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 122
//Points_232 (go_fla.Points_232) package go_fla { import flash.display.*; public dynamic class Points_232 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 123
//Points_246 (go_fla.Points_246) package go_fla { import flash.display.*; public dynamic class Points_246 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 124
//Points_260 (go_fla.Points_260) package go_fla { import flash.display.*; public dynamic class Points_260 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 125
//Points_268 (go_fla.Points_268) package go_fla { import flash.display.*; public dynamic class Points_268 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 126
//Points_273 (go_fla.Points_273) package go_fla { import flash.display.*; public dynamic class Points_273 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 127
//Points_282 (go_fla.Points_282) package go_fla { import flash.display.*; public dynamic class Points_282 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 128
//Points_286 (go_fla.Points_286) package go_fla { import flash.display.*; public dynamic class Points_286 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 129
//Points_302 (go_fla.Points_302) package go_fla { import flash.display.*; public dynamic class Points_302 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 130
//Points_308 (go_fla.Points_308) package go_fla { import flash.display.*; public dynamic class Points_308 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 131
//Points_312 (go_fla.Points_312) package go_fla { import flash.display.*; public dynamic class Points_312 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 132
//Points_320 (go_fla.Points_320) package go_fla { import flash.display.*; public dynamic class Points_320 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 133
//Points_327 (go_fla.Points_327) package go_fla { import flash.display.*; public dynamic class Points_327 extends MovieClip { public var start:MovieClip; public var end:MovieClip; } }//package go_fla
Section 134
//SpringAlert_23 (go_fla.SpringAlert_23) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class SpringAlert_23 extends MovieClip { public var object:MovieClip; public function SpringAlert_23(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package go_fla
Section 135
//Stars_112 (go_fla.Stars_112) package go_fla { import flash.display.*; public dynamic class Stars_112 extends MovieClip { public var star_13:MovieClip; } }//package go_fla
Section 136
//Stars_196 (go_fla.Stars_196) package go_fla { import flash.display.*; public dynamic class Stars_196 extends MovieClip { public var star_13:MovieClip; } }//package go_fla
Section 137
//Starter_L_Mov_126 (go_fla.Starter_L_Mov_126) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class Starter_L_Mov_126 extends MovieClip { public var starter:MovieClip; public function Starter_L_Mov_126(){ addFrameScript(0, frame1, 6, frame7, 19, frame20, 26, frame27, 33, frame34, 37, frame38); } function frame7(){ starter.play(); } function frame1(){ stop(); } function frame20(){ starter.num.nextFrame(); } function frame27(){ starter.play(); } function frame34(){ if (starter.num.currentFrame == 5){ gotoAndStop(1); }; } function frame38(){ gotoAndPlay(2); } } }//package go_fla
Section 138
//Starter_L_Sprite_127 (go_fla.Starter_L_Sprite_127) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class Starter_L_Sprite_127 extends MovieClip { public var num:MovieClip; public function Starter_L_Sprite_127(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package go_fla
Section 139
//Starter_R_Mov_93 (go_fla.Starter_R_Mov_93) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class Starter_R_Mov_93 extends MovieClip { public var starter:MovieClip; public function Starter_R_Mov_93(){ addFrameScript(0, frame1, 1, frame2, 6, frame7, 19, frame20, 26, frame27, 37, frame38); } function frame7(){ starter.play(); } function frame1(){ stop(); } function frame20(){ starter.num.nextFrame(); } function frame2(){ if (starter.num.currentFrame == 5){ gotoAndStop(1); }; } function frame27(){ starter.play(); } function frame38(){ gotoAndPlay(2); } } }//package go_fla
Section 140
//Starter_R_Mov_Mask_149 (go_fla.Starter_R_Mov_Mask_149) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class Starter_R_Mov_Mask_149 extends MovieClip { public var starter:MovieClip; public function Starter_R_Mov_Mask_149(){ addFrameScript(0, frame1, 6, frame7, 19, frame20, 26, frame27, 33, frame34, 37, frame38); } function frame7(){ starter.play(); } function frame1(){ stop(); } function frame20(){ starter.num.nextFrame(); } function frame27(){ starter.play(); } function frame34(){ if (starter.num.currentFrame == 5){ gotoAndStop(1); }; } function frame38(){ gotoAndPlay(2); } } }//package go_fla
Section 141
//Starter_R_Sprite_94 (go_fla.Starter_R_Sprite_94) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class Starter_R_Sprite_94 extends MovieClip { public var num:MovieClip; public function Starter_R_Sprite_94(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package go_fla
Section 142
//StarterW_L_Mov_265 (go_fla.StarterW_L_Mov_265) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class StarterW_L_Mov_265 extends MovieClip { public var starter:MovieClip; public function StarterW_L_Mov_265(){ addFrameScript(0, frame1, 6, frame7, 19, frame20, 26, frame27, 33, frame34, 37, frame38); } function frame7(){ starter.play(); } function frame1(){ stop(); } function frame20(){ starter.num.nextFrame(); } function frame27(){ starter.play(); } function frame34(){ if (starter.num.currentFrame == 5){ gotoAndStop(1); }; } function frame38(){ gotoAndPlay(2); } } }//package go_fla
Section 143
//StarterW_L_Sprite_266 (go_fla.StarterW_L_Sprite_266) package go_fla { import flash.display.*; public dynamic class StarterW_L_Sprite_266 extends MovieClip { public var num:MovieClip; } }//package go_fla
Section 144
//StarterW_R_Mov_251 (go_fla.StarterW_R_Mov_251) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class StarterW_R_Mov_251 extends MovieClip { public var starter:MovieClip; public function StarterW_R_Mov_251(){ addFrameScript(0, frame1, 6, frame7, 19, frame20, 26, frame27, 33, frame34, 37, frame38); } function frame7(){ starter.play(); } function frame1(){ stop(); } function frame20(){ starter.num.nextFrame(); } function frame27(){ starter.play(); } function frame34(){ if (starter.num.currentFrame == 5){ gotoAndStop(1); }; } function frame38(){ gotoAndPlay(2); } } }//package go_fla
Section 145
//StarterW_R_Sprite_252 (go_fla.StarterW_R_Sprite_252) package go_fla { import flash.display.*; public dynamic class StarterW_R_Sprite_252 extends MovieClip { public var num:MovieClip; } }//package go_fla
Section 146
//StickAlert_21 (go_fla.StickAlert_21) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class StickAlert_21 extends MovieClip { public var object:MovieClip; public function StickAlert_21(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package go_fla
Section 147
//thorns_1_315 (go_fla.thorns_1_315) package go_fla { import flash.display.*; public dynamic class thorns_1_315 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 148
//Tutorial_2_Movie_155 (go_fla.Tutorial_2_Movie_155) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class Tutorial_2_Movie_155 extends MovieClip { public var spring:SpringActive; public function Tutorial_2_Movie_155(){ addFrameScript(108, frame109); } function frame109(){ spring.anim.play(); } } }//package go_fla
Section 149
//Tutorial_3_Movie_181 (go_fla.Tutorial_3_Movie_181) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class Tutorial_3_Movie_181 extends MovieClip { public var basket:MovieClip; public function Tutorial_3_Movie_181(){ addFrameScript(119, frame120, 184, frame185); } function frame185(){ basket.sprite.door.play(); } function frame120(){ basket.sprite.door.play(); } } }//package go_fla
Section 150
//Tutorial_4_Movie_214 (go_fla.Tutorial_4_Movie_214) package go_fla { import flash.display.*; public dynamic class Tutorial_4_Movie_214 extends MovieClip { public var hand:MovieClip; } }//package go_fla
Section 151
//Tutorial_5_Movie_229 (go_fla.Tutorial_5_Movie_229) package go_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class Tutorial_5_Movie_229 extends MovieClip { public var spring:SpringActive; public var object:MovieClip; public function Tutorial_5_Movie_229(){ addFrameScript(181, frame182); } function frame182(){ spring.anim.play(); } } }//package go_fla
Section 152
//wall_1_106 (go_fla.wall_1_106) package go_fla { import flash.display.*; public dynamic class wall_1_106 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 153
//wall_1_142 (go_fla.wall_1_142) package go_fla { import flash.display.*; public dynamic class wall_1_142 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 154
//wall_1_143 (go_fla.wall_1_143) package go_fla { import flash.display.*; public dynamic class wall_1_143 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 155
//wall_1_144 (go_fla.wall_1_144) package go_fla { import flash.display.*; public dynamic class wall_1_144 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 156
//wall_1_160 (go_fla.wall_1_160) package go_fla { import flash.display.*; public dynamic class wall_1_160 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 157
//wall_1_179 (go_fla.wall_1_179) package go_fla { import flash.display.*; public dynamic class wall_1_179 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 158
//wall_1_198 (go_fla.wall_1_198) package go_fla { import flash.display.*; public dynamic class wall_1_198 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 159
//wall_1_208 (go_fla.wall_1_208) package go_fla { import flash.display.*; public dynamic class wall_1_208 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 160
//wall_1_212 (go_fla.wall_1_212) package go_fla { import flash.display.*; public dynamic class wall_1_212 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 161
//wall_1_221 (go_fla.wall_1_221) package go_fla { import flash.display.*; public dynamic class wall_1_221 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 162
//wall_1_263 (go_fla.wall_1_263) package go_fla { import flash.display.*; public dynamic class wall_1_263 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 163
//wall_1_276 (go_fla.wall_1_276) package go_fla { import flash.display.*; public dynamic class wall_1_276 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 164
//wall_1_277 (go_fla.wall_1_277) package go_fla { import flash.display.*; public dynamic class wall_1_277 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 165
//wall_1_330 (go_fla.wall_1_330) package go_fla { import flash.display.*; public dynamic class wall_1_330 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 166
//wall_2_108 (go_fla.wall_2_108) package go_fla { import flash.display.*; public dynamic class wall_2_108 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 167
//wall_2_178 (go_fla.wall_2_178) package go_fla { import flash.display.*; public dynamic class wall_2_178 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 168
//wall_2_190 (go_fla.wall_2_190) package go_fla { import flash.display.*; public dynamic class wall_2_190 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 169
//wall_2_199 (go_fla.wall_2_199) package go_fla { import flash.display.*; public dynamic class wall_2_199 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 170
//wall_2_235 (go_fla.wall_2_235) package go_fla { import flash.display.*; public dynamic class wall_2_235 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 171
//wall_2_250 (go_fla.wall_2_250) package go_fla { import flash.display.*; public dynamic class wall_2_250 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 172
//Wall_275 (go_fla.Wall_275) package go_fla { import flash.display.*; public dynamic class Wall_275 extends MovieClip { public var wall_2:MovieClip; } }//package go_fla
Section 173
//wall_3_109 (go_fla.wall_3_109) package go_fla { import flash.display.*; public dynamic class wall_3_109 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 174
//wall_3_191 (go_fla.wall_3_191) package go_fla { import flash.display.*; public dynamic class wall_3_191 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 175
//wall_3_200 (go_fla.wall_3_200) package go_fla { import flash.display.*; public dynamic class wall_3_200 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 176
//wall_3_236 (go_fla.wall_3_236) package go_fla { import flash.display.*; public dynamic class wall_3_236 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 177
//wall_3_271 (go_fla.wall_3_271) package go_fla { import flash.display.*; public dynamic class wall_3_271 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 178
//wall_3_300 (go_fla.wall_3_300) package go_fla { import flash.display.*; public dynamic class wall_3_300 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 179
//wall_4_110 (go_fla.wall_4_110) package go_fla { import flash.display.*; public dynamic class wall_4_110 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 180
//wall_4_237 (go_fla.wall_4_237) package go_fla { import flash.display.*; public dynamic class wall_4_237 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 181
//wall_5_111 (go_fla.wall_5_111) package go_fla { import flash.display.*; public dynamic class wall_5_111 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 182
//wall_5_238 (go_fla.wall_5_238) package go_fla { import flash.display.*; public dynamic class wall_5_238 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 183
//wall_6_239 (go_fla.wall_6_239) package go_fla { import flash.display.*; public dynamic class wall_6_239 extends MovieClip { public var size:MovieClip; } }//package go_fla
Section 184
//Walls_105 (go_fla.Walls_105) package go_fla { import flash.display.*; public dynamic class Walls_105 extends MovieClip { public var wall_2:MovieClip; public var wall_0:MovieClip; } }//package go_fla
Section 185
//Walls_141 (go_fla.Walls_141) package go_fla { import flash.display.*; public dynamic class Walls_141 extends MovieClip { public var wall_2:MovieClip; public var wall_0:MovieClip; } }//package go_fla
Section 186
//Walls_152 (go_fla.Walls_152) package go_fla { import flash.display.*; public dynamic class Walls_152 extends MovieClip { public var wall_0:MovieClip; } }//package go_fla
Section 187
//Walls_159 (go_fla.Walls_159) package go_fla { import flash.display.*; public dynamic class Walls_159 extends MovieClip { public var wall_2:MovieClip; public var wall_0:MovieClip; } }//package go_fla
Section 188
//Walls_177 (go_fla.Walls_177) package go_fla { import flash.display.*; public dynamic class Walls_177 extends MovieClip { public var wall_2:MovieClip; } }//package go_fla
Section 189
//Walls_189 (go_fla.Walls_189) package go_fla { import flash.display.*; public dynamic class Walls_189 extends MovieClip { public var wall_2:MovieClip; } }//package go_fla
Section 190
//Walls_207 (go_fla.Walls_207) package go_fla { import flash.display.*; public dynamic class Walls_207 extends MovieClip { public var brake:MovieClip; public var wall_2:MovieClip; } }//package go_fla
Section 191
//Walls_220 (go_fla.Walls_220) package go_fla { import flash.display.*; public dynamic class Walls_220 extends MovieClip { public var brake:MovieClip; public var wall_2:MovieClip; } }//package go_fla
Section 192
//Walls_227 (go_fla.Walls_227) package go_fla { import flash.display.*; public dynamic class Walls_227 extends MovieClip { public var wall_0:MovieClip; } }//package go_fla
Section 193
//Walls_248 (go_fla.Walls_248) package go_fla { import flash.display.*; public dynamic class Walls_248 extends MovieClip { public var brake:MovieClip; public var wall_2:MovieClip; } }//package go_fla
Section 194
//Walls_262 (go_fla.Walls_262) package go_fla { import flash.display.*; public dynamic class Walls_262 extends MovieClip { public var brake:MovieClip; } }//package go_fla
Section 195
//Walls_270 (go_fla.Walls_270) package go_fla { import flash.display.*; public dynamic class Walls_270 extends MovieClip { public var wall_2:MovieClip; } }//package go_fla
Section 196
//Walls_284 (go_fla.Walls_284) package go_fla { import flash.display.*; public dynamic class Walls_284 extends MovieClip { public var wall_2:MovieClip; } }//package go_fla
Section 197
//Walls_288 (go_fla.Walls_288) package go_fla { import flash.display.*; public dynamic class Walls_288 extends MovieClip { public var wall_2:MovieClip; public var brake:MovieClip; public var wall_0:MovieClip; } }//package go_fla
Section 198
//Walls_304 (go_fla.Walls_304) package go_fla { import flash.display.*; public dynamic class Walls_304 extends MovieClip { public var brake:MovieClip; public var wall_2:MovieClip; } }//package go_fla
Section 199
//Walls_310 (go_fla.Walls_310) package go_fla { import flash.display.*; public dynamic class Walls_310 extends MovieClip { public var wall_2:MovieClip; } }//package go_fla
Section 200
//Walls_314 (go_fla.Walls_314) package go_fla { import flash.display.*; public dynamic class Walls_314 extends MovieClip { public var brake:MovieClip; public var thorns:MovieClip; } }//package go_fla
Section 201
//Walls_322 (go_fla.Walls_322) package go_fla { import flash.display.*; public dynamic class Walls_322 extends MovieClip { public var brake:MovieClip; } }//package go_fla
Section 202
//Walls_329 (go_fla.Walls_329) package go_fla { import flash.display.*; public dynamic class Walls_329 extends MovieClip { public var wall_2:MovieClip; public var brake:MovieClip; public var wall_0:MovieClip; } }//package go_fla
Section 203
//Ball (Script.Bodies.Ball) package Script.Bodies { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.events.*; import Script.*; import flash.display.*; import Box2D.Dynamics.Contacts.*; import flash.geom.*; public class Ball extends Sprite { public var braking:Number;// = 0.13 private var side:String; public var brakeName:String; public var isBraking:Boolean;// = false public var sprite; public var ball:b2Body; public function Ball(_arg1:int, _arg2:int, _arg3):void{ var _local4:BodyShape; isBraking = false; braking = 0.13; super(); _local4 = new BodyShape("ball", new Array(16, new Point()), 0.8, 0.1, 0.4); ball = BasicWorld.createBody(1, _local4, _arg1, _arg2, _arg3); ball.isDynamic = true; ball.classLink = this; ball.SetBullet(true); ball.AllowSleeping(false); this.sprite = _arg3; } private function notOtherBrakes():Boolean{ var _local1:int; var _local2:b2ContactEdge; _local1 = 0; _local2 = ball.m_contactList; while (_local2) { if (_local2.other.bodyName == 8){ _local1++; }; _local2 = _local2.next; }; if (_local1 > 1){ return (false); }; return (true); } private function rightStop(_arg1:Event):void{ var _local2:Number; _local2 = ball.GetAngularVelocity(); if (_local2 <= 0){ stopBraking(); } else { ball.SetAngularVelocity((_local2 - braking)); }; } public function startBraking():void{ var _local1:Number; if (notOtherBrakes()){ _local1 = ball.GetAngularVelocity(); brakeName = ball.m_contactList.other.m_userData.name; isBraking = true; if (_local1 < 0){ side = "left"; addEventListener(Event.ENTER_FRAME, leftStop); }; if (_local1 > 0){ side = "right"; addEventListener(Event.ENTER_FRAME, rightStop); }; }; } private function leftStop(_arg1:Event):void{ var _local2:Number; _local2 = ball.GetAngularVelocity(); if (_local2 >= 0){ stopBraking(); } else { ball.SetAngularVelocity((_local2 + braking)); }; } public function resetBrakeName():void{ isBraking = false; brakeName = null; } public function stopBraking():void{ if (side == "left"){ removeEventListener(Event.ENTER_FRAME, leftStop); }; if (side == "right"){ removeEventListener(Event.ENTER_FRAME, rightStop); }; side = null; ball.SetAngularVelocity(0); } } }//package Script.Bodies
Section 204
//Basket (Script.Bodies.Basket) package Script.Bodies { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Common.*; import flash.events.*; import Script.*; import flash.display.*; import flash.utils.*; import flash.geom.*; public class Basket extends Shape { public var node:b2Body; public var joint:b2RevoluteJointDef; public var basket:b2Body; public var yPos:int; private var basketShape:BodyShape; public var basketButton:BasketButton; private var closeTimeOut:Number; public var basketSprite:Sprite; private var closeTime:int;// = 500 private var nodeShape:BodyShape; public var xPos:int; public var upSprite:MovieClip; public var dnSprite:Sprite; public function Basket(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:MovieClip, _arg6:Sprite):void{ joint = new b2RevoluteJointDef(); basketButton = new BasketButton(); closeTime = 500; super(); this.upSprite = _arg5; this.dnSprite = _arg6; this.xPos = _arg1; this.yPos = _arg2; nodeShape = new BodyShape("ball", new Array(10, new Point())); basketShape = new BodyShape("box", new Array(5, 30, new Point(-23, 35), -15), 20); basketShape.create("box", new Array(5, 30, new Point(23, 35), 15), 20); basketShape.create("box", new Array(42, 5, new Point(0, 50), 0), 20); basket = BasicWorld.createBody(0, basketShape, _arg1, (_arg2 + _arg3), _arg6, -3); basket.isDynamic = true; node = BasicWorld.createBody(0, nodeShape, _arg1, _arg2, basketButton); _arg5.x = _arg1; _arg5.y = (_arg2 + _arg3); Root.worldUpSprite.addChild(_arg5); basketSprite = basket.m_userData; basket.ApplyImpulse(new b2Vec2(_arg4, -15), basket.GetWorldCenter()); joint.Initialize(node, basket, node.GetWorldCenter()); joint.collideConnected = true; BasicWorld.world.CreateJoint(joint); } private function dropBall(_arg1:MouseEvent):void{ var _local2:b2Shape; if (upSprite.currentFrame == 1){ _local2 = basket.m_shapeList; basket.DestroyShape(_local2); upSprite.play(); closeTimeOut = setTimeout(closeBasket, closeTime); }; } private function closeBasket():void{ var _local1:BodyShape; upSprite.play(); closeTimeOut = 0; _local1 = new BodyShape("box", new Array(42, 5, new Point(0, 50), 0), 20); basket.CreateShape(_local1.shapes[0]); basket.m_shapeList.m_filter.groupIndex = -3; } public function addListeners():void{ basketButton.x = xPos; basketButton.y = yPos; BasicWorld.gameRoot.addChild(basketButton); basketButton.addEventListener(MouseEvent.MOUSE_OVER, overButton); basketButton.addEventListener(MouseEvent.MOUSE_OUT, outButton); basketButton.addEventListener(MouseEvent.MOUSE_DOWN, dropBall); } private function overButton(_arg1:MouseEvent):void{ if (((Root.enableCur) && (Root.input.cursor))){ Root.input.hideCursor(); }; } private function outButton(_arg1:MouseEvent):void{ if (((Root.enableCur) && (Root.input.cursor))){ Root.input.showCursor(); }; } public function removeListeners():void{ basketButton.removeEventListener(MouseEvent.MOUSE_OVER, overButton); basketButton.removeEventListener(MouseEvent.MOUSE_OUT, outButton); basketButton.removeEventListener(MouseEvent.MOUSE_DOWN, dropBall); basketButton.parent.removeChild(basketButton); } } }//package Script.Bodies
Section 205
//Island (Script.Bodies.Island) package Script.Bodies { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Common.*; import Script.*; import flash.display.*; import flash.geom.*; public class Island { private var rightBound:Number; private var rangeLength:Number; private var speedPrecent:Number;// = 0.35 private var islandShape:BodyShape; private var speed:Number; private var dnBound:Number; private var island:b2Body; private var physScale:int;// = 30 private var minSpeed:Number; private var upBound:Number; public var islandType:String; private var easeLength:Number; private var leftBound:Number; private var easePrecent:Number;// = 0.25 public function Island(_arg1:String, _arg2:int, _arg3:int, _arg4:int, _arg5:Sprite, _arg6:int, _arg7:int, _arg8:Number):void{ physScale = 30; speedPrecent = 0.35; easePrecent = 0.25; super(); islandType = _arg1; if (_arg1 == "horisontal"){ leftBound = (_arg6 / physScale); rightBound = (_arg7 / physScale); } else { if (_arg1 == "vertical"){ upBound = (_arg6 / physScale); dnBound = (_arg7 / physScale); }; }; islandShape = new BodyShape("box", new Array(_arg4, 10, new Point(), 0)); island = BasicWorld.createBody(8, islandShape, _arg2, _arg3, _arg5, -3); island.isDynamic = true; island.classLink = this; island.m_userData.cacheAsBitmap = true; rangeLength = ((_arg7 - _arg6) / physScale); easeLength = (rangeLength * easePrecent); this.speed = (_arg8 / 100); minSpeed = (this.speed * speedPrecent); } public function moveVertical():void{ var _local1:Number; var _local2:Number; var _local3:*; var _local4:b2Vec2; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:b2Body; var _local9:Number; var _local10:Number; _local1 = island.GetPosition().x; _local2 = island.GetPosition().y; _local3 = island.m_contactList; _local5 = speed; _local6 = (_local2 - upBound); _local7 = (dnBound - _local2); if (_local6 < easeLength){ _local5 = (speed * (_local6 / easeLength)); } else { if (_local7 < easeLength){ _local5 = (speed * (_local7 / easeLength)); }; }; if (Math.abs(_local5) < Math.abs(minSpeed)){ _local5 = minSpeed; }; _local4 = new b2Vec2(_local1, (_local2 + _local5)); island.SetXForm(_local4, 0); if ((((((_local2 < upBound)) && ((speed < 0)))) || ((((_local2 > dnBound)) && ((speed > 0)))))){ speed = (speed * -1); minSpeed = (minSpeed * -1); }; if (_local3){ _local8 = _local3.other; _local9 = _local8.GetLinearVelocity().x; _local10 = _local8.GetLinearVelocity().y; if (Math.abs(_local10) > 1){ _local8.SetLinearVelocity(new b2Vec2(_local9, 0)); }; _local4.x = _local8.GetPosition().x; _local4.y = (_local8.GetPosition().y + _local5); _local8.SetXForm(_local4, _local8.GetAngle()); }; } public function moveHorisontal():void{ var _local1:Number; var _local2:Number; var _local3:*; var _local4:b2Vec2; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:b2Body; _local1 = island.GetPosition().x; _local2 = island.GetPosition().y; _local3 = island.m_contactList; _local5 = speed; _local6 = (_local1 - leftBound); _local7 = (rightBound - _local1); if (_local6 < easeLength){ _local5 = (speed * (_local6 / easeLength)); } else { if (_local7 < easeLength){ _local5 = (speed * (_local7 / easeLength)); }; }; if (Math.abs(_local5) < Math.abs(minSpeed)){ _local5 = minSpeed; }; _local4 = new b2Vec2((_local1 + _local5), _local2); island.SetXForm(_local4, 0); if ((((((_local1 < leftBound)) && ((speed < 0)))) || ((((_local1 > rightBound)) && ((speed > 0)))))){ speed = (speed * -1); minSpeed = (minSpeed * -1); }; if (_local3){ _local8 = _local3.other; _local4.x = (_local8.GetPosition().x + _local5); _local4.y = _local8.GetPosition().y; _local8.SetXForm(_local4, _local8.GetAngle()); }; } } }//package Script.Bodies
Section 206
//Spring (Script.Bodies.Spring) package Script.Bodies { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Common.*; import Script.*; import flash.display.*; import flash.utils.*; import flash.geom.*; public class Spring { private var isCursor:Boolean;// = false public var motorTime:int;// = 80 private var physPos:b2Vec2; public var joint:b2PrismaticJoint; public var motorTimeOut:Number; public var spring:b2Body; private var pixelPos:b2Vec2; public var springSprite:Sprite; public var contactZone:b2Body; public function Spring(_arg1:int, _arg2:int, _arg3:Number=0, _arg4:Boolean=false, _arg5:Number=8):void{ var _local6:b2PrismaticJointDef; var _local7:BodyShape; var _local8:BodyShape; var _local9:b2Vec2; motorTime = 80; isCursor = false; super(); _local6 = new b2PrismaticJointDef(); _local7 = new BodyShape("box", new Array(49, 11, new Point(), _arg3), 10); _local8 = new BodyShape("box", new Array(47, 2, new Point(), _arg3)); if (_arg4){ this.isCursor = _arg4; springSprite = new SpringActive(); springSprite.rotation = _arg3; springSprite.anim.gotoAndStop(1); } else { springSprite = new AnimSpring(); springSprite.rotation = _arg3; }; spring = BasicWorld.createBody("123", _local7, _arg1, _arg2, springSprite, -3); spring.m_type = b2Body.e_staticType; spring.classLink = this; _arg3 = (_arg3 * (Math.PI / 180)); _local9 = new b2Vec2(Math.sin(_arg3), -(Math.cos(_arg3))); contactZone = BasicWorld.createBody(4, _local8, (_arg1 + (_local9.x * 5)), (_arg2 + (_local9.y * 5)), null, -3); contactZone.classLink = this; _local6.Initialize(BasicWorld.world.GetGroundBody(), spring, spring.GetWorldCenter(), _local9); _local6.lowerTranslation = 0; _local6.upperTranslation = 0.5; _local6.enableLimit = true; _local6.maxMotorForce = 1000; _local6.motorSpeed = _arg5; joint = BasicWorld.world.CreateJoint(_local6); pixelPos = new b2Vec2(_arg1, _arg2); physPos = new b2Vec2((_arg1 / 30), (_arg2 / 30)); } private function stopMotor():void{ joint.EnableMotor(false); spring.SetXForm(physPos, spring.GetAngle()); spring.m_userData.x = pixelPos.x; spring.m_userData.y = pixelPos.y; spring.m_type = b2Body.e_staticType; } public function startMotor():void{ if (spring.m_type == b2Body.e_staticType){ try { if (isCursor){ springSprite.anim.play(); } else { springSprite.play(); }; } catch(error) { }; spring.m_type = b2Body.e_dynamicType; joint.EnableMotor(true); motorTimeOut = setTimeout(stopMotor, motorTime); if (!Root.muteSound){ Root.sndSpring.play(); }; }; } } }//package Script.Bodies
Section 207
//Thorns (Script.Bodies.Thorns) package Script.Bodies { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Common.*; import Script.*; import flash.display.*; import flash.geom.*; public class Thorns { private var upBound:Number; private var speed:Number; private var dnBound:Number; private var thorns:b2Body; public function Thorns(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:Number, _arg6:Sprite):void{ var _local7:BodyShape; super(); _local7 = new BodyShape("box", new Array(20, 100, new Point(), 0)); thorns = BasicWorld.createBody(7, _local7, _arg1, _arg2, _arg6, -3); thorns.isDynamic = true; upBound = (_arg3 / 30); dnBound = (_arg4 / 30); this.speed = (_arg5 / 100); } public function moveThorns():void{ var _local1:Number; var _local2:Number; _local1 = thorns.GetPosition().x; _local2 = thorns.GetPosition().y; if (_local2 < upBound){ thorns.SetXForm(new b2Vec2(_local1, upBound), 0); speed = (speed * -1); } else { if (_local2 > dnBound){ thorns.SetXForm(new b2Vec2(_local1, dnBound), 0); speed = (speed * -1); }; }; thorns.SetXForm(new b2Vec2(_local1, (_local2 + speed)), 0); } } }//package Script.Bodies
Section 208
//Trolley (Script.Bodies.Trolley) package Script.Bodies { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Common.*; import flash.events.*; import Script.*; import flash.display.*; import Box2D.Dynamics.Contacts.*; import flash.geom.*; public class Trolley extends MovieClip { public var torque;// = 10 public var secondAxis:b2Body; public var speed; public var secondWheel:b2Body; public var secondMotor:b2RevoluteJoint; public var firstAxis:b2Body; public var trolley:b2Body; public var firstWheel:b2Body; public var firstMotor:b2RevoluteJoint; public function Trolley(_arg1:int, _arg2:int, _arg3:Number, _arg4:Boolean):void{ var _local5:BodyShape; var _local6:BodyShape; var _local7:BodyShape; var _local8:b2Shape; var _local9:b2RevoluteJointDef; var _local10:b2RevoluteJointDef; var _local11:b2RevoluteJointDef; var _local12:b2RevoluteJointDef; var _local13:b2Vec2; var _local14:b2Vec2; torque = 10; super(); this.speed = _arg3; _local5 = new BodyShape("box", new Array(85, 10, new Point(), 0), 5); _local5.create("box", new Array(40, 8, new Point(-45, -20), 60), 5); _local5.create("box", new Array(40, 8, new Point(45, -20), -60), 5); _local6 = new BodyShape("ball", new Array(5, new Point()), 5); _local7 = new BodyShape("ball", new Array(14, new Point()), 5, 1); trolley = BasicWorld.createBody(0, _local5, (_arg1 + 30), _arg2, new TrolleyBody()); firstWheel = BasicWorld.createBody(0, _local7, _arg1, _arg2, new TrolleyWheel()); secondWheel = BasicWorld.createBody(0, _local7, (_arg1 + 60), _arg2, new TrolleyWheel()); firstAxis = BasicWorld.createBody(0, _local6, _arg1, _arg2); secondAxis = BasicWorld.createBody(0, _local6, (_arg1 + 60), _arg2); Root.worldUpSprite.addChild((trolley.m_userData as Sprite)); Root.worldUpSprite.addChild((firstWheel.m_userData as Sprite)); Root.worldUpSprite.addChild((secondWheel.m_userData as Sprite)); trolley.isDynamic = true; firstWheel.isDynamic = true; secondWheel.isDynamic = true; firstAxis.isDynamic = true; secondAxis.isDynamic = true; _local8 = trolley.m_shapeList; while (_local8) { _local8.m_filter.groupIndex = -2; _local8 = _local8.GetNext(); }; firstWheel.m_shapeList.m_filter.groupIndex = -2; secondWheel.m_shapeList.m_filter.groupIndex = -2; firstAxis.m_shapeList.m_filter.groupIndex = -2; secondAxis.m_shapeList.m_filter.groupIndex = -2; _local9 = new b2RevoluteJointDef(); _local10 = new b2RevoluteJointDef(); _local11 = new b2RevoluteJointDef(); _local12 = new b2RevoluteJointDef(); _local9.Initialize(firstAxis, firstWheel, firstAxis.GetWorldCenter()); _local10.Initialize(secondAxis, secondWheel, secondAxis.GetWorldCenter()); firstMotor = BasicWorld.world.CreateJoint(_local9); secondMotor = BasicWorld.world.CreateJoint(_local10); _local13 = new b2Vec2(firstAxis.GetPosition().x, (firstAxis.GetPosition().y - 0.1)); _local14 = new b2Vec2(secondAxis.GetPosition().x, (secondAxis.GetPosition().y - 0.1)); _local11.Initialize(trolley, firstAxis, _local13); _local12.Initialize(trolley, secondAxis, _local14); _local11.enableLimit = true; _local12.enableLimit = true; BasicWorld.world.CreateJoint(_local11); BasicWorld.world.CreateJoint(_local12); if (_arg4){ startMotor(); }; } private function ballInTrolley(_arg1:Event):void{ var _local2:b2ContactEdge; _local2 = trolley.m_contactList; while (_local2) { if (_local2.other.bodyName == 1){ removeEventListener(Event.ENTER_FRAME, ballInTrolley); startMotor(); break; }; _local2 = _local2.next; }; } public function addMotorListener():void{ addEventListener(Event.ENTER_FRAME, ballInTrolley); } public function startMotor():void{ trolley.WakeUp(); firstMotor.EnableMotor(true); firstMotor.SetMaxMotorTorque(torque); firstMotor.SetMotorSpeed(speed); secondMotor.EnableMotor(true); secondMotor.SetMaxMotorTorque(torque); secondMotor.SetMotorSpeed(speed); } } }//package Script.Bodies
Section 209
//Wheel (Script.Bodies.Wheel) package Script.Bodies { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Common.*; import Script.*; import flash.display.*; import flash.geom.*; public class Wheel { var motor:b2Body; var revJoint:b2RevoluteJointDef; var beam:b2Body; public function Wheel(_arg1:int, _arg2:int, _arg3:Number, _arg4:int=0):void{ var _local5:BodyShape; var _local6:BodyShape; var _local7:Sprite; revJoint = new b2RevoluteJointDef(); super(); _local5 = new BodyShape("box", new Array(120, 8, new Point(), _arg4), 50); _local5.create("box", new Array(8, 120, new Point(), _arg4), 50); _local6 = new BodyShape("ball", new Array(8, new Point())); _local7 = new MillBeams(); _local7.rotation = _arg4; beam = BasicWorld.createBody(0, _local5, _arg1, _arg2, _local7, -3); beam.isDynamic = true; motor = BasicWorld.createBody(0, _local6, _arg1, _arg2, new MillMotor(), -3); revJoint.Initialize(motor, beam, motor.GetWorldCenter()); revJoint.enableMotor = true; revJoint.motorSpeed = _arg3; revJoint.maxMotorTorque = 500; BasicWorld.world.CreateJoint(revJoint); } } }//package Script.Bodies
Section 210
//BasicWorld (Script.BasicWorld) package Script { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.events.*; import flash.display.*; public class BasicWorld extends MovieClip { public var yPhys:Number; public var xPhys:Number; public var bodyColor:uint;// = 7505097 public var mouseJoint:b2MouseJoint; public static var PI:Number = (180 / Math.PI); public static var world:b2World; public static var gameRoot:Root; public static var iterations:int = 10; public static var physScale:Number = 30; public static var timeStep:Number = 0.0333333333333333; public function BasicWorld():void{ var _local1:b2AABB; var _local2:b2Vec2; var _local3:Boolean; bodyColor = 7505097; super(); _local1 = new b2AABB(); _local2 = new b2Vec2(0, 9.8); _local3 = true; _local1.lowerBound.Set((-1000 / physScale), (-1000 / physScale)); _local1.upperBound.Set((1000 / physScale), (1000 / physScale)); world = new b2World(_local1, _local2, _local3); stage.addEventListener(MouseEvent.MOUSE_MOVE, updatePhysXY); } private function getBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local2:b2AABB; var _local3:b2Vec2; var _local4:int; var _local5:b2Body; var _local6:Array; var _local7:int; var _local8:int; var _local9:b2Shape; var _local10:Boolean; _local2 = new b2AABB(); _local2.lowerBound.Set((xPhys - 0.001), (yPhys - 0.001)); _local2.upperBound.Set((xPhys + 0.001), (yPhys + 0.001)); _local3 = new b2Vec2(); _local3.Set(xPhys, yPhys); _local4 = 10; _local5 = null; _local6 = new Array(); _local7 = world.Query(_local2, _local6, _local4); _local8 = 0; while (_local8 < _local7) { if ((((_local6[_local8].GetBody().IsStatic() == false)) || (_arg1))){ _local9 = (_local6[_local8] as b2Shape); _local10 = (_local6[_local8] as b2Shape).TestPoint(_local9.GetBody().GetXForm(), _local3); if (_local10){ _local5 = _local9.GetBody(); break; }; }; _local8++; }; return (_local5); } protected function debugMouse():void{ stage.addEventListener(MouseEvent.MOUSE_DOWN, mousePress); stage.addEventListener(MouseEvent.MOUSE_UP, mouseRelease); } private function mouseRelease(_arg1:MouseEvent):void{ if (mouseJoint){ world.DestroyJoint(mouseJoint); mouseJoint = null; }; } private function mousePress(_arg1:MouseEvent):void{ var _local2:b2Body; var _local3:b2MouseJointDef; if (!mouseJoint){ _local2 = getBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.body1 = world.GetGroundBody(); _local3.body2 = _local2; _local3.target.Set(xPhys, yPhys); _local3.maxForce = (300 * _local2.GetMass()); _local3.timeStep = timeStep; mouseJoint = (world.CreateJoint(_local3) as b2MouseJoint); _local2.WakeUp(); }; }; } protected function worldStep():void{ var _local1:b2Body; var _local2:Number; var _local3:Sprite; world.Step(timeStep, iterations); _local1 = world.m_bodyList; while (_local1) { if (_local1.isDynamic){ _local2 = (_local1.GetAngle() * PI); _local3 = _local1.m_userData; _local3.x = (_local1.GetPosition().x * physScale); _local3.y = (_local1.GetPosition().y * physScale); if (_local1.bodyName == 1){ _local3.getChildAt(0).ball.rotation = _local2; if (_local1.GetPosition().y > 17){ Root.worldSprite.removeChild(_local1.m_userData); world.DestroyBody(_local1); gameRoot.stopMessage("You have lost a ball"); }; } else { _local3.rotation = _local2; }; }; _local1 = _local1.m_next; }; } private function updatePhysXY(_arg1:MouseEvent):void{ var _local2:b2Vec2; xPhys = (mouseX / physScale); yPhys = (mouseY / physScale); if (mouseJoint){ _local2 = new b2Vec2(xPhys, yPhys); mouseJoint.SetTarget(_local2); }; } public static function createBody(_arg1:uint, _arg2:BodyShape, _arg3:int, _arg4:int, _arg5=null, _arg6:int=0):b2Body{ var _local7:b2Body; var _local8:b2BodyDef; var _local9:Sprite; var _local10:int; _local8 = new b2BodyDef(); _local9 = new Sprite(); _local9.x = _arg3; _local9.y = _arg4; Root.worldSprite.addChild(_local9); _local8.userData = _local9; if (_arg5 != null){ _local9.addChild(_arg5); }; _local8.position.Set((_arg3 / physScale), (_arg4 / physScale)); _local7 = world.CreateBody(_local8); _local10 = 0; while (_local10 < _arg2.shapes.length) { _arg2.shapes[_local10].filter.groupIndex = _arg6; _local7.CreateShape(_arg2.shapes[_local10]); _local10++; }; _local7.SetMassFromShapes(); _local7.bodyName = _arg1; return (_local7); } } }//package Script
Section 211
//BodyShape (Script.BodyShape) package Script { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; import flash.display.*; public class BodyShape extends Sprite { public var physScale:Number;// = 30 public var shapes:Array; public function BodyShape(_arg1:String, _arg2:Array, _arg3:Number=0, _arg4:Number=0.2, _arg5:Number=0):void{ physScale = 30; shapes = new Array(); super(); create(_arg1, _arg2, _arg3, _arg4, _arg5); } public function create(_arg1:String, _arg2:Array, _arg3:Number=0, _arg4:Number=0.2, _arg5:Number=0):void{ var _local6:b2ShapeDef; var _local7:int; if (_arg1 == "ball"){ _local6 = new b2CircleDef(); _local6.radius = (_arg2[0] / physScale); _local6.localPosition = new b2Vec2((_arg2[1].x / physScale), (_arg2[1].y / physScale)); }; if (_arg1 == "box"){ _local6 = new b2PolygonDef(); _local6.SetAsOrientedBox(((_arg2[0] / physScale) / 2), ((_arg2[1] / physScale) / 2), new b2Vec2((_arg2[2].x / physScale), (_arg2[2].y / physScale)), ((_arg2[3] * Math.PI) / 180)); }; if (_arg1 == "poly"){ _local6 = new b2PolygonDef(); _local6.vertexCount = _arg2.length; _local7 = 0; while (_local7 < _arg2.length) { _local6.vertices[_local7].Set((_arg2[_local7].x / physScale), (_arg2[_local7].y / physScale)); _local7++; }; }; _local6.density = _arg3; _local6.friction = _arg4; _local6.restitution = _arg5; shapes.push(_local6); } } }//package Script
Section 212
//Delegate (Script.Delegate) package Script { public class Delegate { public static function create(_arg1:Function, ... _args):Function{ var handler = _arg1; var args = _args; return (function (... _args):void{ handler.apply(this, _args.concat(args)); }); } } }//package Script
Section 213
//FastMenu (Script.FastMenu) package Script { import flash.events.*; import flash.display.*; import com.midasplayer.*; public class FastMenu { private var input:Input; private var starter:MovieClip; public var fastMenu:FastMenuSprite; private var gameRoot:Root; public function FastMenu():void{ gameRoot = BasicWorld.gameRoot; } private function shadeMuteButtons():void{ var _local2 = fastMenu; with (_local2) { if (Root.muteSound){ btnSoundOff.enabled = false; btnSoundOff.alpha = 0.6; btnSoundOn.enabled = true; btnSoundOn.alpha = 1; } else { btnSoundOn.enabled = false; btnSoundOn.alpha = 0.6; btnSoundOff.enabled = true; btnSoundOff.alpha = 1; }; if (Root.muteMusic){ btnMusicOff.enabled = false; btnMusicOff.alpha = 0.6; btnMusicOn.enabled = true; btnMusicOn.alpha = 1; } else { btnMusicOn.enabled = false; btnMusicOn.alpha = 0.6; btnMusicOff.enabled = true; btnMusicOff.alpha = 1; }; }; } public function unlockMenu():void{ var _local2 = gameRoot.btnFastMenu; with (_local2) { enabled = true; addEventListener(MouseEvent.CLICK, showFastMenu); addEventListener(MouseEvent.ROLL_OVER, downBarOver); addEventListener(MouseEvent.ROLL_OUT, downBarOut); }; } private function downBarOver(_arg1:MouseEvent):void{ if (((input) && (input.cursor))){ input.hideCursor(); }; } public function setInput():void{ input = Root.input; } public function setStarter():void{ starter = gameRoot.starter; } private function soundOn(_arg1:MouseEvent):void{ Root.muteSound = false; shadeMuteButtons(); } private function musicOff(_arg1:MouseEvent):void{ Root.music.stop(); Root.muteMusic = true; shadeMuteButtons(); } private function fastRestart(_arg1:MouseEvent):void{ gameRoot.stopLevel(); gameRoot.restartLevel(); } private function gotoKing(_arg1:MouseEvent):void{ KingAPI.openSignLink(); } private function fastToMainMenu(_arg1:MouseEvent):void{ if (gameRoot.springs){ gameRoot.springs = null; }; if (gameRoot.bridges){ gameRoot.bridges = null; }; if (Root.stopMenu){ gameRoot.removeChild(Root.stopMenu); }; if (Root.btnStart){ gameRoot.removeChild(Root.btnStart); }; gameRoot.destroyLevel(); gameRoot.gotoAndStop("Menu"); gameRoot.removeChild(fastMenu); fastMenu = null; if (input){ input.destroyCursor(); input = null; }; } private function soundOff(_arg1:MouseEvent):void{ Root.muteSound = true; shadeMuteButtons(); } public function lockKing():void{ var _local2 = gameRoot.btnKing; with (_local2) { enabled = false; removeEventListener(MouseEvent.CLICK, gotoKing); removeEventListener(MouseEvent.ROLL_OVER, downBarOver); removeEventListener(MouseEvent.ROLL_OUT, downBarOut); }; } public function lockRestart():void{ var _local2 = gameRoot.btnFastRestart; with (_local2) { enabled = false; removeEventListener(MouseEvent.CLICK, fastRestart); }; } public function lockMenu():void{ var _local2 = gameRoot.btnFastMenu; with (_local2) { enabled = false; removeEventListener(MouseEvent.CLICK, showFastMenu); removeEventListener(MouseEvent.ROLL_OVER, downBarOver); removeEventListener(MouseEvent.ROLL_OUT, downBarOut); }; } public function unlockRestart():void{ var _local2 = gameRoot.btnFastRestart; with (_local2) { enabled = true; addEventListener(MouseEvent.CLICK, fastRestart); addEventListener(MouseEvent.ROLL_OVER, downBarOver); addEventListener(MouseEvent.ROLL_OUT, downBarOut); }; } private function showFastMenu(_arg1:MouseEvent):void{ var event = _arg1; if (Root.gameTimer){ Root.gameTimer.stop(); }; starter.stop(); fastMenu = new FastMenuSprite(); gameRoot.worldStop(); gameRoot.addChild(fastMenu); var _local3 = fastMenu; with (_local3) { btnWalktrough.addEventListener(MouseEvent.CLICK, gotoKing); btnResumeGame.addEventListener(MouseEvent.CLICK, resumeGame); btnMainMenu.addEventListener(MouseEvent.CLICK, fastToMainMenu); btnMusicOn.addEventListener(MouseEvent.CLICK, musicOn); btnMusicOff.addEventListener(MouseEvent.CLICK, musicOff); btnSoundOn.addEventListener(MouseEvent.CLICK, soundOn); btnSoundOff.addEventListener(MouseEvent.CLICK, soundOff); }; shadeMuteButtons(); lockRestart(); lockMenu(); } public function unlockKing():void{ var _local2 = gameRoot.btnKing; with (_local2) { enabled = true; addEventListener(MouseEvent.CLICK, gotoKing); addEventListener(MouseEvent.ROLL_OVER, downBarOver); addEventListener(MouseEvent.ROLL_OUT, downBarOut); }; } private function musicOn(_arg1:MouseEvent):void{ if (Root.muteMusic){ Root.music = Root.sndMusic.play(0, 999); Root.muteMusic = false; shadeMuteButtons(); }; } private function downBarOut(_arg1:MouseEvent):void{ if (((((input) && (input.cursor))) && ((fastMenu == null)))){ input.showCursor(); }; } private function resumeGame(_arg1:MouseEvent):void{ if ((((Root.btnStart == null)) && ((Root.stopMenu == null)))){ if (Root.levelPlayed){ Root.gameTimer.start(); }; if (input.cursor){ input.showCursor(); }; starter.play(); gameRoot.worldStart(); unlockRestart(); }; unlockMenu(); gameRoot.removeChild(fastMenu); fastMenu = null; gameRoot.setKeyFocus(); } } }//package Script
Section 214
//Input (Script.Input) package Script { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; import flash.events.*; import flash.display.*; import Script.Bodies.*; import flash.utils.*; import flash.geom.*; import flash.ui.*; public class Input { public var types:Array; private var stickCur:b2Body; private var currentType:int;// = 0 public var cursor:Cursor; private var leftKey:Boolean; public var handTorque:Number;// = 1.7 private var rightKey:Boolean; private var rotateSpeed:int;// = 10 private var hideTimeOut:Number; private var currentCursor:String; private var springCur:b2Body; private var hideTime:int;// = 2000 public function Input():void{ rotateSpeed = 10; currentType = 0; hideTime = 2000; handTorque = 1.7; super(); cursor = new Cursor(); cursor.mouseEnabled = false; cursor.mouseChildren = false; } public function curDown(_arg1:MouseEvent):void{ var _local2:int; var _local3:int; var _local4:int; var _local5:BodyShape; var _local6:Sprite; var _local7:BodyShape; var _local8:Spring; var _local9:BodyShape; var _local10:b2Vec2; if (((((((cursor) && (cursor.visible))) && ((springCur == null)))) && ((stickCur == null)))){ _local2 = cursor.object.rotation; _local3 = _arg1.stageX; _local4 = _arg1.stageY; if (cursor.currentLabel == "stick"){ _local5 = new BodyShape("box", new Array(85, 10, new Point(), _local2)); _local6 = new StickActive(); if (onTheBall(_local5, _local3, _local4)){ _local6.rotation = _local2; stickCur = BasicWorld.createBody(0, _local5, _local3, _local4, _local6, -3); hideTimeOut = setTimeout(hideCurObject, hideTime); currentCursor = cursor.currentLabel; }; } else { if (cursor.currentLabel == "spring"){ _local7 = new BodyShape("box", new Array(50, 10, new Point(), _local2)); if (onTheBall(_local7, _local3, _local4)){ _local8 = new Spring(_local3, _local4, _local2, true); springCur = _local8.spring; hideTimeOut = setTimeout(hideCurObject, hideTime); currentCursor = cursor.currentLabel; }; } else { if ((((cursor.currentLabel == "hand")) && ((cursor.object.hand.currentFrame == 1)))){ _local9 = new BodyShape("box", new Array(30, 30, new Point(), 0)); if (!onTheBall(_local9, _local3, _local4)){ _local10 = Root.ball.GetPosition(); currentCursor = cursor.currentLabel; Root.ball.WakeUp(); cursor.object.hand.gotoAndPlay("push"); if (cursor.object.currentLabel == "left"){ Root.ball.ApplyImpulse(new b2Vec2(handTorque, 0), _local10); } else { if (cursor.object.currentLabel == "right"){ Root.ball.ApplyImpulse(new b2Vec2(-(handTorque), 0), _local10); }; }; } else { if (!Root.muteSound){ Root.sndClick.play(); }; cursor.object.hand.play(); }; }; }; }; }; } public function curWheel(_arg1:MouseEvent):void{ if (_arg1.delta < 0){ rotateCur(rotateSpeed); } else { rotateCur(-(rotateSpeed)); }; } public function showCursor():void{ cursor.visible = true; Mouse.hide(); } public function keyDown(_arg1:KeyboardEvent):void{ switch (_arg1.keyCode){ case 65: case Keyboard.LEFT: rotateCur(-(rotateSpeed)); break; case 68: case Keyboard.RIGHT: rotateCur(rotateSpeed); break; case 87: case Keyboard.UP: changeCur(true); break; case 83: case Keyboard.DOWN: changeCur(false); break; case 82: if (Root.fastMenu.fastMenu == null){ BasicWorld.gameRoot.stopLevel(); BasicWorld.gameRoot.restartLevel(); }; break; }; } public function setCursor():void{ cursor.gotoAndStop(types[0]); } private function onTheBall(_arg1:BodyShape, _arg2:int, _arg3:int):Boolean{ var _local4:b2Body; _local4 = BasicWorld.createBody(5, _arg1, _arg2, _arg3); if (_local4.m_contactList){ if (_local4.m_contactList.other.bodyName == 1){ BasicWorld.world.DestroyBody(_local4); if (cursor.currentLabel == "hand"){ return (false); }; cursor.object.play(); if (!Root.muteSound){ Root.sndClick.play(); }; return (false); }; }; BasicWorld.world.DestroyBody(_local4); return (true); } private function rotateCur(_arg1:Number):void{ if (((cursor) && (cursor.visible))){ if (cursor.currentLabel == "hand"){ if (_arg1 > 0){ cursor.object.nextFrame(); } else { cursor.object.prevFrame(); }; } else { if (cursor.currentLabel == "stick"){ cursor.object.rotation = (cursor.object.rotation + _arg1); }; }; }; } public function destroyCursor():void{ currentCursor = null; if (cursor){ BasicWorld.gameRoot.removeChild(cursor); cursor = null; }; Mouse.show(); } public function hideCursor():void{ cursor.visible = false; Mouse.show(); } private function hideCurObject():void{ if (currentCursor == "stick"){ Root.worldSprite.removeChild(stickCur.m_userData); BasicWorld.world.DestroyBody(stickCur); stickCur = null; } else { if (currentCursor == "spring"){ Root.worldSprite.removeChild(springCur.m_userData); BasicWorld.world.DestroyBody(springCur.classLink.contactZone); BasicWorld.world.DestroyBody(springCur); springCur = null; }; }; currentCursor = null; hideTimeOut = 0; } private function changeCur(_arg1:Boolean):void{ var _local2:int; if (((cursor) && (cursor.visible))){ _local2 = (types.length - 1); if (_arg1){ currentType++; if (currentType > _local2){ currentType = 0; }; } else { currentType--; if (currentType < 0){ currentType = _local2; }; }; cursor.gotoAndStop(types[currentType]); }; } } }//package Script
Section 215
//Level (Script.Level) package Script { import Box2D.Common.Math.*; import Box2D.Common.*; import flash.display.*; import Script.Bodies.*; public class Level extends Sprite { private var islands:Array; public var listeners:Array; public var vector:b2Vec2; private var number:int; private var thorns:Array; public var levelTime:int; private var baskets:Array; private var wheels:Array; private var trolleys:Array; public function Level(){ vector = new b2Vec2(-1.5, 0); super(); } public function levelListeners(_arg1:int):void{ listeners = new Array(); switch (_arg1){ case 1: Root.input.types = new Array("stick"); break; case 2: Root.input.types = new Array("stick"); break; case 3: Root.input.types = new Array("spring"); break; case 4: Root.input.types = new Array("spring"); break; case 5: Root.input.types = new Array("stick"); break; case 6: Root.input.types = new Array("stick"); basketButtons(); listeners.push((basketSprites as Function)); break; case 7: Root.input.types = new Array("spring", "stick"); basketButtons(); listeners.push((basketSprites as Function)); break; case 8: Root.input.types = new Array("arrow"); basketButtons(); listeners.push((basketSprites as Function)); break; case 9: Root.input.handTorque = 1.8; Root.input.types = new Array("hand", "stick"); listeners.push((moveIslands as Function)); break; case 10: Root.input.types = new Array("hand"); listeners.push((moveThorns as Function)); listeners.push((moveIslands as Function)); break; case 11: Root.input.types = new Array("stick", "spring"); break; case 12: Root.input.types = new Array("spring", "stick"); break; case 13: Root.input.handTorque = 1.8; Root.input.types = new Array("hand", "stick"); trolleys[0].addMotorListener(); listeners.push((moveIslands as Function)); break; case 14: Root.input.handTorque = 1.5; Root.input.types = new Array("hand"); listeners.push((moveIslands as Function)); break; case 15: Root.input.types = new Array("spring"); break; case 16: Root.input.types = new Array("arrow"); trolleys[0].torque = 1000; trolleys[0].startMotor(); basketButtons(); listeners.push((basketSprites as Function)); break; case 17: Root.input.types = new Array("stick"); basketButtons(); listeners.push((basketSprites as Function)); break; case 18: Root.input.handTorque = 2; Root.input.types = new Array("hand"); listeners.push((moveThorns as Function)); listeners.push((moveIslands as Function)); break; case 19: Root.input.handTorque = 1.3; Root.input.types = new Array("hand", "spring"); basketButtons(); listeners.push((basketSprites as Function)); listeners.push((moveIslands as Function)); break; case 20: Root.input.types = new Array("hand"); listeners.push((moveThorns as Function)); listeners.push((moveIslands as Function)); break; case 21: Root.input.types = new Array("stick", "spring"); break; case 22: Root.input.handTorque = 1.4; Root.input.types = new Array("hand"); listeners.push((moveIslands as Function)); break; case 23: Root.input.handTorque = 1.5; Root.input.types = new Array("hand", "stick"); basketButtons(); listeners.push((basketSprites as Function)); listeners.push((moveIslands as Function)); break; case 24: Root.input.handTorque = 2; Root.input.types = new Array("stick", "hand", "spring"); listeners.push((moveIslands as Function)); break; case 25: break; }; } public function removeListeners():void{ var _local1:int; if (baskets.length != 0){ _local1 = 0; while (_local1 < baskets.length) { baskets[_local1].removeListeners(); _local1++; }; }; } private function basketSprites():void{ var _local1:int; var _local2:Sprite; var _local3:Sprite; var _local4:int; _local1 = baskets.length; _local4 = 0; while (_local4 < _local1) { _local2 = baskets[_local4].upSprite; _local2; _local3 = baskets[_local4].basketSprite; _local3; (_local2.x = _local3.x); (_local2.y = _local3.y); (_local2.rotation = _local3.rotation); _local4++; }; } private function moveThorns():void{ var _local1:int; var _local2:int; _local1 = thorns.length; _local2 = 0; while (_local2 < _local1) { thorns[_local2].moveThorns(); _local2++; }; } public function buildLevel(_arg1:int):void{ baskets = new Array(); wheels = new Array(); thorns = new Array(); islands = new Array(); trolleys = new Array(); number = _arg1; switch (_arg1){ case 1: levelTime = 15; break; case 2: levelTime = 25; vector = new b2Vec2(2, 0); break; case 3: levelTime = 15; vector = new b2Vec2(-2, 0); break; case 4: levelTime = 25; vector = new b2Vec2(-2, 0); wheels.push(new Wheel(105, 115, -1, 45)); wheels.push(new Wheel(80, 230, 1)); break; case 5: levelTime = 20; vector = new b2Vec2(3, -12); break; case 6: levelTime = 20; vector = new b2Vec2(-1.6, 0); baskets.push(new Basket(210, 58, 150, -95, new BasketUp(), new BasketDn())); break; case 7: levelTime = 20; vector = new b2Vec2(1.6, 0); baskets.push(new Basket(520, 20, 150, -50, new BasketUp(), new BasketDn())); break; case 8: levelTime = 20; vector = new b2Vec2(-1.2, 0); baskets.push(new Basket(220, 170, 150, -100, new BasketUp(), new BasketDn())); baskets.push(new Basket(470, 20, 150, 60, new BasketUp(), new BasketDn())); break; case 9: levelTime = 35; vector = new b2Vec2(-2, 0); islands.push(new Island("horisontal", 220, 138, 100, new FlyIsland_1(), 190, 310, -6)); islands.push(new Island("horisontal", 350, 262, 100, new FlyIsland_1(), 325, 465, 6)); break; case 10: levelTime = 35; vector = new b2Vec2(1, 0); thorns.push(new Thorns(265, 90, 30, 150, 10, new ThornsSprite())); thorns.push(new Thorns(400, 90, 30, 150, -10, new ThornsSprite())); islands.push(new Island("horisontal", 180, 352, 100, new FlyIsland_1(), 155, 265, -5)); break; case 11: levelTime = 20; vector = new b2Vec2(2, 0); wheels.push(new Wheel(380, 130, 1)); break; case 12: levelTime = 20; vector = new b2Vec2(-3, 0); wheels.push(new Wheel(170, 340, -1, 45)); break; case 13: levelTime = 30; vector = new b2Vec2(1.7, 0); trolleys.push(new Trolley(550, 122, -3, false)); islands.push(new Island("vertical", 175, 30, 100, new FlyIsland_1(), 25, 280, -5)); break; case 14: levelTime = 50; vector = new b2Vec2(-1, 0); islands.push(new Island("vertical", 200, 200, 100, new FlyIslandW_1(), 50, 450, -7)); islands.push(new Island("vertical", 470, 400, 100, new FlyIslandW_2(), 110, 430, 7)); break; case 15: levelTime = 15; vector = new b2Vec2(2, 0); break; case 16: levelTime = 20; vector = new b2Vec2(2, 0); trolleys.push(new Trolley(-530, 360, 4, false)); baskets.push(new Basket(245, 20, 150, -60, new BasketUpW(), new BasketDnW())); break; case 17: levelTime = 25; vector = new b2Vec2(-3, 0); baskets.push(new Basket(410, 170, 142, 50, new BasketUpW(), new BasketDnW())); break; case 18: levelTime = 30; vector = new b2Vec2(1.6, 0); thorns.push(new Thorns(320, 90, 60, 130, -6, new ThornsSpriteW())); islands.push(new Island("horisontal", 300, 317, 100, new FlyIslandW_1(), 235, 363, -5)); break; case 19: levelTime = 30; vector = new b2Vec2(0, -6); baskets.push(new Basket(433, 170, 150, -140, new BasketUpW(), new BasketDnW())); islands.push(new Island("vertical", 55, 270, 100, new FlyIslandW_2(), 25, 275, -5)); break; case 20: levelTime = 30; vector = new b2Vec2(-1.5, 0); islands.push(new Island("vertical", 80, 300, 100, new FlyIslandW_1(), 60, 450, -5)); thorns.push(new Thorns(380, 300, 250, 370, 6, new ThornsSpriteW2())); thorns.push(new Thorns(240, 300, 250, 370, -6, new ThornsSpriteW2())); wheels.push(new Wheel(400, 120, 1)); break; case 21: levelTime = 20; vector = new b2Vec2(-3, 0); break; case 22: levelTime = 30; vector = new b2Vec2(1.7, 0); islands.push(new Island("vertical", 177, 740, 115, new FlyIslandW_115_1(), 270, 750, -5)); islands.push(new Island("vertical", 301, 840, 115, new FlyIslandW_115_2(), 175, 850, -5)); islands.push(new Island("vertical", 426, 940, 115, new FlyIslandW_115_1(), 50, 950, -5)); break; case 23: levelTime = 30; baskets.push(new Basket(530, 45, 150, 40, new BasketUpW(), new BasketDnW())); islands.push(new Island("horisontal", 530, 300, 100, new FlyIslandW_1(), 400, 550, -3)); break; case 24: levelTime = 35; vector = new b2Vec2(1.35, 0); islands.push(new Island("vertical", 590, 245, 90, new FlyIslandW_2(), 40, 250, -5)); wheels.push(new Wheel(104, 230, -1)); break; case 25: levelTime = 20; break; }; } private function basketButtons():void{ var _local1:int; var _local2:int; _local1 = baskets.length; _local2 = 0; while (_local2 < _local1) { baskets[_local2].addListeners(); _local2++; }; } private function moveIslands():void{ var _local1:int; var _local2:int; _local1 = islands.length; _local2 = 0; while (_local2 < _local1) { if (islands[_local2].islandType == "horisontal"){ islands[_local2].moveHorisontal(); }; if (islands[_local2].islandType == "vertical"){ islands[_local2].moveVertical(); }; _local2++; }; } } }//package Script
Section 216
//LevelBuilder (Script.LevelBuilder) package Script { import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import flash.display.*; import Script.Bodies.*; import flash.geom.*; public class LevelBuilder { public static function putStars(_arg1:Sprite):void{ var _local2:int; var _local3:Sprite; var _local4:int; var _local5:int; var _local6:BodyShape; _arg1.visible = false; _local2 = 0; while (_local2 < _arg1.numChildren) { _local3 = _arg1.getChildAt(_local2); _local4 = _local3.x; _local5 = _local3.y; _local6 = new BodyShape("ball", new Array(5, new Point())); _local6.shapes[0].isSensor = true; BasicWorld.createBody(3, _local6, _local4, _local5, new Star()); _local2++; }; } public static function buildWalls(_arg1:Sprite):void{ var _local2:int; var _local3:Sprite; var _local4:int; var _local5:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:BodyShape; _arg1.visible = false; _local2 = 0; while (_local2 < _arg1.numChildren) { _local3 = _arg1.getChildAt(_local2); _local4 = _local3.x; _local5 = _local3.y; _local6 = _local3.size.width; _local7 = _local3.size.height; _local8 = _local3.rotation; _local9 = new BodyShape("box", new Array(_local6, _local7, new Point(), _local8)); if (_local3.name == "brake"){ BasicWorld.createBody(8, _local9, _local4, _local5, null, -3); } else { if (_local3.name == "thorns"){ BasicWorld.createBody(7, _local9, _local4, _local5, null, -3); } else { BasicWorld.createBody(2, _local9, _local4, _local5, null, -3); }; }; _local2++; }; } public static function buildBridges(_arg1:Sprite):void{ var _local2:int; var _local3:Sprite; var _local4:int; var _local5:Sprite; var _local6:BodyShape; var _local7:int; var _local8:int; var _local9:b2Body; var _local10:b2Body; var _local11:b2RevoluteJointDef; var _local12:int; _arg1.visible = false; _local2 = 0; while (_local2 < _arg1.numChildren) { _local3 = _arg1.getChildAt(_local2); _local4 = (_local3.numChildren - 1); _local5 = _local3.getChildAt(0); _local6 = new BodyShape("ball", new Array(8, new Point())); _local7 = (_local5.x + _local3.x); _local8 = (_local5.y + _local3.y); _local9 = BasicWorld.createBody(0, _local6, _local7, _local8, new Bridge(), -3); _local12 = 1; while (_local12 <= _local4) { _local5 = _local3.getChildAt(_local12); if (_local12 == _local4){ _local6 = new BodyShape("ball", new Array(8, new Point())); } else { _local6 = new BodyShape("ball", new Array(8, new Point()), 3); }; _local7 = (_local5.x + _local3.x); _local8 = (_local5.y + _local3.y); _local10 = BasicWorld.createBody(0, _local6, _local7, _local8, new Bridge(), -3); _local10.isDynamic = true; _local11 = new b2RevoluteJointDef(); if (_local12 == _local4){ _local11.Initialize(_local9, _local10, _local10.GetWorldCenter()); } else { _local11.Initialize(_local9, _local10, _local9.GetWorldCenter()); }; BasicWorld.world.CreateJoint(_local11); _local9 = _local10; _local12++; }; _local2++; }; } public static function putSprings(_arg1:Sprite):void{ var _local2:int; var _local3:Sprite; var _local4:int; var _local5:int; var _local6:Number; var _local7:Spring; _arg1.visible = false; _local2 = 0; while (_local2 < _arg1.numChildren) { _local3 = _arg1.getChildAt(_local2); _local4 = _local3.x; _local5 = _local3.y; _local6 = _local3.rotation; _local7 = new Spring(_local4, _local5, _local6); _local2++; }; } } }//package Script
Section 217
//MainMenu (Script.MainMenu) package Script { import flash.events.*; import flash.display.*; import com.midasplayer.*; public class MainMenu extends Sprite { private var gameRoot:Root; private var scrollSpeed:int;// = 8 private var listMask:Shape; public function MainMenu():void{ scrollSpeed = 8; super(); gameRoot = BasicWorld.gameRoot; listMask = new Shape(); listMask.graphics.beginFill(0); listMask.graphics.moveTo(0, 0); listMask.graphics.lineTo(130, 0); listMask.graphics.lineTo(130, 246); listMask.graphics.lineTo(0, 246); listMask.graphics.lineTo(0, 0); listMask.graphics.endFill(); } private function scrollDown(_arg1:Event):void{ var _local2:Sprite; var _local3:int; _local2 = gameRoot.page.levelsList.getChildAt(0); _local3 = -((_local2.height - 245)); _local2.y = (_local2.y - scrollSpeed); if (_local2.y < _local3){ _local2.y = _local3; }; } private function soundSwitch(_arg1:MouseEvent):void{ var _local2:*; _local2 = gameRoot.page.btnSoundSwitch; if (Root.muteSound){ _local2.alpha = 1; Root.muteSound = false; } else { _local2.alpha = 0.5; Root.muteSound = true; }; } private function gotoSponsor(_arg1:MouseEvent):void{ KingAPI.openSignLink(); } public function submitButtons():void{ var _local2 = gameRoot; with (_local2) { fldResult.text = ("Your score: " + Root.playerScore); btnSubmit.addEventListener(MouseEvent.CLICK, submitScore); btnMenu.addEventListener(MouseEvent.CLICK, mainMenu); }; } private function scrollUp(_arg1:Event):void{ var _local2:Sprite; _local2 = gameRoot.page.levelsList.getChildAt(0); _local2.y = (_local2.y + scrollSpeed); if (_local2.y > 0){ _local2.y = 0; }; } private function submitScore(_arg1:MouseEvent):void{ KingAPI.submitScore(Root.playerScore); gameRoot.gotoAndStop("Menu"); } public function creditsMenuButtons():void{ gameRoot.page.btnMainMenu.addEventListener(MouseEvent.CLICK, mainMenu); } private function scrollDownPress(_arg1:MouseEvent):void{ addEventListener(Event.ENTER_FRAME, scrollDown); } private function moreGames(_arg1:MouseEvent):void{ KingAPI.openOtherGamesLink(); } private function hiScores(_arg1:MouseEvent):void{ KingAPI.openHighscoresLink(); } private function shadeSwitchButtons():void{ if (Root.muteMusic){ gameRoot.page.btnMusicSwitch.alpha = 0.5; }; if (Root.muteSound){ gameRoot.page.btnSoundSwitch.alpha = 0.5; }; } private function aboutTeam(_arg1:MouseEvent):void{ gameRoot.gotoAndStop("Credits"); } public function selectMenuButtons():void{ var lastLevel:int; var list:Sprite; var i:int; var upState:Sprite; var overState:Sprite; var downState:Sprite; var hitTestState:Sprite; var btn:SimpleButton; lastLevel = Root.saveGame.data.lastLevel; list = new Sprite(); i = 1; while (i < 25) { upState = new btnUpState(); overState = new btnOverState(); downState = new btnDownState(); hitTestState = new btnHitTestState(); upState.field.text = ("Level " + i); overState.field.text = ("Level " + i); downState.field.text = ("Level " + i); btn = new SimpleButton(upState, overState, downState, hitTestState); btn.y = ((i - 1) * 35); if (i > lastLevel){ btn.addEventListener(MouseEvent.MOUSE_OVER, Delegate.create(levelPreview, 25)); btn.alpha = 0.5; } else { btn.addEventListener(MouseEvent.MOUSE_OVER, Delegate.create(levelPreview, i)); btn.addEventListener(MouseEvent.CLICK, Delegate.create(gameRoot.selectLevelNum, i)); }; list.addChild(btn); i = (i + 1); }; var _local2 = gameRoot.page; with (_local2) { levelsList.addChildAt(list, 0); levelsList.addChild(listMask); levelsList.mask = listMask; btnMainMenu.addEventListener(MouseEvent.CLICK, mainMenu); btnScrollUp.addEventListener(MouseEvent.MOUSE_DOWN, scrollUpPress); btnScrollUp.addEventListener(MouseEvent.MOUSE_UP, scrollUpRelease); btnScrollUp.addEventListener(MouseEvent.MOUSE_OUT, scrollUpRelease); btnScrollDown.addEventListener(MouseEvent.MOUSE_DOWN, scrollDownPress); btnScrollDown.addEventListener(MouseEvent.MOUSE_UP, scrollDownRelease); btnScrollDown.addEventListener(MouseEvent.MOUSE_OUT, scrollDownRelease); }; } private function scrollUpRelease(_arg1:MouseEvent):void{ removeEventListener(Event.ENTER_FRAME, scrollUp); } private function levelPreview(_arg1:MouseEvent, _arg2:int):void{ var levelSprite:LevelSprites; var event = _arg1; var number = _arg2; levelSprite = new LevelSprites(); levelSprite.gotoAndStop(number); var _local4 = gameRoot.page; with (_local4) { preview.removeChild(preview.getChildAt(0)); preview.addChild(levelSprite); }; } public function mainMenuButtons():void{ if (Root.music == null){ Root.music = Root.sndMusic.play(0, 999); }; var _local2 = gameRoot.page; with (_local2) { btnStartGame.addEventListener(MouseEvent.CLICK, selectLevel); btnMoreGames.addEventListener(MouseEvent.CLICK, moreGames); btnHiScores.addEventListener(MouseEvent.CLICK, hiScores); btnCredits.addEventListener(MouseEvent.CLICK, aboutTeam); btnWalkthrough.addEventListener(MouseEvent.CLICK, gotoSponsor); btnnAddToWebsite.addEventListener(MouseEvent.CLICK, addToWeb); btnSoundSwitch.addEventListener(MouseEvent.CLICK, soundSwitch); btnMusicSwitch.addEventListener(MouseEvent.CLICK, musicSwitch); }; gameRoot.btnKing.addEventListener(MouseEvent.CLICK, gotoSponsor); shadeSwitchButtons(); } private function musicSwitch(_arg1:MouseEvent):void{ var _local2:*; _local2 = gameRoot.page.btnMusicSwitch; if (Root.muteMusic){ _local2.alpha = 1; Root.music = Root.sndMusic.play(0, 999); Root.muteMusic = false; } else { _local2.alpha = 0.5; Root.music.stop(); Root.muteMusic = true; }; } private function mainMenu(_arg1:MouseEvent):void{ gameRoot.gotoAndStop("Menu"); } private function addToWeb(_arg1:MouseEvent):void{ KingAPI.openAddToWebsiteLink(); } private function scrollUpPress(_arg1:MouseEvent):void{ addEventListener(Event.ENTER_FRAME, scrollUp); } private function selectLevel(_arg1:MouseEvent):void{ gameRoot.gotoAndStop("Select"); } private function scrollDownRelease(_arg1:MouseEvent):void{ removeEventListener(Event.ENTER_FRAME, scrollDown); } } }//package Script
Section 218
//Root (Script.Root) package Script { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.events.*; import flash.display.*; import Box2D.Dynamics.Contacts.*; import com.midasplayer.*; import Script.Bodies.*; import com.midasplayer.particle.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; public class Root extends BasicWorld { public var springs:MovieClip; public var fldName:TextField; public var bridges:MovieClip; public var btnKing:SimpleButton; public var btnFastRestart:SimpleButton; public var bar:Sprite; public var fldResult:TextField; public var mcLoadLogoBg:MovieClip; public var bg:Sprite; public var btnFastMenu:SimpleButton; public var stars:MovieClip; public var intro:MovieClip; public var starter:MovieClip; public var page:MovieClip; public var particles:Main; public var game_name:String; public var mcKingLoader:DragonLoader; public var points:MovieClip; public var tutorial:MovieClip; public var fldTimer:TextField; public var fieldStars:TextField; public var btnSubmit:SimpleButton; public var holder:Sprite; public var mochi:String; public var fieldScore:TextField; public var fldLevel:TextField; public var btnMenu:SimpleButton; public var walls:MovieClip; public static var stopMenu:StopMenu; public static var levelPlayed:Boolean; public static var debugSprite:Sprite = new Sprite(); public static var penalty:int = 10; public static var currentLevel:int; public static var muteMusic:Boolean; public static var sponsorURL:URLRequest = new URLRequest("http://www.sponsor-site.com"); public static var saveGame:SharedObject; public static var level:Level; public static var scoreURL:URLRequest = new URLRequest("http://www.sponsor-site.com/score/"); public static var testFPS:TestFPS; public static var debugMode:Boolean; public static var sndClick:Sound; public static var fldStars:TextField; public static var music:SoundChannel; public static var bonus:int = 100; public static var loseCounter:int; public static var playerScore:int; public static var mainMenu:MainMenu; public static var sndBlow:Sound; public static var sndMusic:Sound; public static var enableCur:Boolean = true; public static var listeners:Array; public static var timeOut:Number; public static var sndComplete:Sound; public static var starsInLevel:int; public static var startTime:uint; public static var input:Input; public static var fldScore:TextField; public static var sndSpring:Sound; public static var starCounter:int; public static var debugBack:Sprite = new Sprite(); public static var fastMenu:FastMenu; public static var tutorial:Sprite; public static var sndStar:Sound; public static var btnStart:BtnStart; public static var startBack:StartBack; public static var worldUpSprite:Sprite; public static var gameTimer:Timer; public static var worldSprite:Sprite; public static var muteSound:Boolean; public static var ball:b2Body; public function Root():void{ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 14, frame15, 15, frame16, 16, frame17, 17, frame18, 18, frame19, 19, frame20, 20, frame21, 21, frame22, 22, frame23, 23, frame24, 24, frame25, 25, frame26, 26, frame27, 27, frame28, 28, frame29, 29, frame30, 30, frame31, 31, frame32, 32, frame33, 33, frame34, 34, frame35, 35, frame36, 36, frame37, 37, frame38, 38, frame39); super(); stop(); gameRoot = this; stage.scaleMode = "noScale"; stage.displayState = "normal"; stage.frameRate = 50; stage.stageFocusRect = false; stage.showDefaultContextMenu = false; } public function preload(_arg1:Event):void{ bg = new Sprite(); bg.buttonMode = true; bg.name = "clickBg"; bg.graphics.beginFill(0, 0); bg.graphics.lineTo(stage.stageWidth, 0); bg.graphics.lineTo(stage.stageWidth, stage.stageHeight); bg.graphics.lineTo(0, stage.stageHeight); bg.graphics.lineTo(0, 0); bg.graphics.endFill(); bg.addEventListener(MouseEvent.CLICK, openKingPage); this.addChildAt(bg, this.getChildIndex(mcLoadLogoBg)); mcLoadLogoBg.x = ((stage.stageWidth / 2) - (mcLoadLogoBg.width / 2)); mcLoadLogoBg.y = ((stage.stageHeight / 2) - (mcLoadLogoBg.height / 2)); bar = new Sprite(); bar.graphics.beginFill(0xFFFFFF, 0); bar.x = (mcLoadLogoBg.x + 5); bar.y = (mcLoadLogoBg.y + 34); bar.graphics.drawRect(0, 0, 96, 5); bar.graphics.endFill(); this.addChild(bar); holder = new Sprite(); this.addChild(holder); holder.x = bar.x; holder.y = bar.y; particles = new Main(); particles.setEmitterClip(holder); this.addChild(particles); addEventListener(Event.ENTER_FRAME, onEnterFrame); } public function setKeyFocus():void{ stage.focus = this; } private function startLevel(_arg1:MouseEvent=null):void{ removeEventListener(KeyboardEvent.KEY_DOWN, keyPressed); removeChild(btnStart); btnStart = null; if (startBack != null){ removeChild(startBack); startBack = null; }; if (debugMode){ addChild(debugBack); addChild(debugSprite); addChild(testFPS); }; if (tutorial){ tutorial.visible = false; }; input = new Input(); input.showCursor(); fastMenu.setInput(); addChild(input.cursor); stage.focus = this; stage.addEventListener(KeyboardEvent.KEY_DOWN, input.keyDown); stage.addEventListener(MouseEvent.MOUSE_WHEEL, input.curWheel); stage.addEventListener(MouseEvent.MOUSE_DOWN, input.curDown); starter.starter.num.gotoAndStop(1); starter.play(); worldStart(); level.levelListeners(currentLevel); listeners = level.listeners; input.setCursor(); stage.addEventListener(Event.ENTER_FRAME, startBall); fastMenu.unlockRestart(); } public function launchGame(_arg1):void{ mcKingLoader.destroy(); gotoAndStop(3); } private function debugDrawing():void{ var _local1:b2DebugDraw; testFPS = new TestFPS(); debugBack.graphics.beginFill(0x666666, 1); debugBack.graphics.drawRect(0, 0, 640, 480); debugBack.graphics.endFill(); _local1 = new b2DebugDraw(); _local1.m_sprite = debugSprite; _local1.m_drawScale = 30; _local1.m_fillAlpha = 0.5; _local1.m_lineThickness = 0; _local1.m_drawFlags = (b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit); world.SetDebugDraw(_local1); debugMode = true; } public function nextLevel():void{ destroyLevel(); currentLevel++; if (currentLevel > 24){ gotoAndStop("Submit"); } else { stage.addEventListener(Event.ENTER_FRAME, ifLevelFrame); }; } function frame16(){ stop(); } function frame18(){ stop(); } function frame15(){ stop(); } function frame17(){ stop(); } function frame2(){ mcKingLoader.addEventListener(DragonLoader.LAUNCH_GAME, launchGame); mcKingLoader.init(game_name, mochi); } function frame3(){ Root.gameInit(); } function frame4(){ Root.mainMenu.mainMenuButtons(); } function frame5(){ Root.mainMenu.selectMenuButtons(); } function frame6(){ Root.mainMenu.creditsMenuButtons(); } function frame1(){ stop(); game_name = "go-home-ball"; mochi = "9b700bb8"; stage.scaleMode = "noScale"; KingAPI.addEventListener(KingAPI.INITIALIZED_EVENT, preload); KingAPI.addEventListener(KingAPI.HOST_BANNED_EVENT, preload); KingAPI.init(game_name, root.loaderInfo.url); } function frame19(){ stop(); } function frame23(){ stop(); } function frame24(){ stop(); } function frame25(){ stop(); } function frame26(){ stop(); } function frame22(){ stop(); } function frame21(){ stop(); } public function selectLevelNum(_arg1:MouseEvent, _arg2:int):void{ playerScore = 0; currentLevel = _arg2; stage.addEventListener(Event.ENTER_FRAME, ifLevelFrame); } function frame20(){ stop(); } function frame29(){ stop(); } function frame36(){ stop(); } function frame30(){ stop(); } function frame27(){ stop(); } function frame28(){ stop(); } function frame37(){ stop(); } function frame38(){ stop(); } function frame31(){ stop(); } function frame32(){ stop(); } function frame34(){ stop(); } function frame33(){ stop(); } private function onTimer(_arg1:TimerEvent=null):void{ var _local2:int; var _local3:int; startTime--; _local2 = (startTime / 60); _local3 = (startTime % 60); if (_local3 > 9){ fldTimer.text = ((_local2 + ":") + _local3); } else { fldTimer.text = ((_local2 + ":0") + _local3); }; if ((((_local2 == 0)) && ((_local3 == 0)))){ gameTimer.removeEventListener(TimerEvent.TIMER, onTimer); gameTimer.stop(); stopMessage("Time is out"); }; } function frame35(){ stop(); } public function stopLevel():void{ levelPlayed = false; timeOut = 0; worldStop(); fastMenu.lockRestart(); if (gameTimer){ gameTimer.stop(); gameTimer = null; }; if (enableCur){ input.destroyCursor(); }; level.listeners = null; listeners = new Array(); stage.removeEventListener(KeyboardEvent.KEY_DOWN, input.keyDown); stage.removeEventListener(MouseEvent.MOUSE_WHEEL, input.curWheel); stage.removeEventListener(MouseEvent.MOUSE_DOWN, input.curDown); if (debugMode){ removeChild(debugBack); removeChild(debugSprite); removeChild(testFPS); }; } function frame39(){ Root.mainMenu.submitButtons(); stop(); } public function restartLevel():void{ changeScore(-(penalty)); loseCounter++; destroyLevel(); buildLevel(); } public function onEnterFrame(_arg1:Event):void{ holder.x = (bar.x + bar.width); if (framesLoaded == totalFrames){ particles.kill(); this.removeChild(particles); removeEventListener(Event.ENTER_FRAME, onEnterFrame); bg.removeEventListener(MouseEvent.CLICK, openKingPage); this.removeChild(bar); if (!KingAPI.isHome){ gotoAndStop(2); } else { gotoAndStop(3); }; } else { bar.scaleX = (stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal); mcLoadLogoBg.bar.scaleX = (1 - (stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal)); }; } private function keyPressed(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.SPACE){ startLevel(); }; } public function worldStop():void{ removeEventListener(Event.ENTER_FRAME, worldUpdate); } private function worldUpdate(_arg1:Event):void{ var _local2:int; var _local3:Ball; var _local4:b2ContactEdge; var _local5:b2Body; input.cursor.x = mouseX; input.cursor.y = mouseY; if (ball.m_contactList){ _local3 = ball.classLink; _local4 = ball.m_contactList; while (_local4) { _local5 = _local4.other; switch (_local5.bodyName){ case 3: worldSprite.removeChild(_local5.m_userData); world.DestroyBody(_local5); catchStar(); break; case 4: if (_local5.IsStatic()){ _local5.classLink.startMotor(); }; break; case 6: worldSprite.removeChild(ball.m_userData); world.DestroyBody(ball); stopMessage("Level Complete!"); break; case 8: if (_local3.brakeName != _local5.m_userData.name){ _local3.startBraking(); }; if (((_local4.next) && (!((_local4.next.other.bodyName == 3))))){ _local4 = null; continue; }; break; case 2: if (_local3.isBraking){ _local3.resetBrakeName(); }; if (((_local4.next) && ((_local4.next.other.bodyName == 8)))){ _local4 = null; continue; }; break; case 7: if (!muteSound){ sndBlow.play(); }; ball.classLink.sprite.play(); world.DestroyBody(ball); timeOut = setTimeout(stopMessage, 500, "You have lost a ball"); break; }; _local4 = _local4.next; }; }; worldStep(); _local2 = 0; while (_local2 < listeners.length) { listeners[_local2].apply(this); _local2++; }; } public function openKingPage(_arg1:Event):void{ KingAPI.openLoaderProgressLink(); } private function ifLevelFrame(_arg1:Event):void{ if (currentLabel == ("Level_" + currentLevel)){ loseCounter = 0; buildLevel(); stage.removeEventListener(Event.ENTER_FRAME, ifLevelFrame); }; gotoAndStop(("Level_" + currentLevel)); } private function startBall(_arg1:Event):void{ if ((((starter.currentFrame == 1)) && ((starter.starter.num.currentFrame == 5)))){ gameTimer = new Timer(1000); gameTimer.addEventListener(TimerEvent.TIMER, onTimer); gameTimer.start(); startTime = level.levelTime; ball.ApplyImpulse(level.vector, ball.GetPosition()); levelPlayed = true; stage.removeEventListener(Event.ENTER_FRAME, startBall); }; } public function destroyLevel():void{ var _local1:b2Body; var _local2:b2Body; if (getChildByName("btnStart") != null){ removeChild(btnStart); }; level.removeListeners(); level = null; startTime = 0; removeChild(worldSprite); removeChild(worldUpSprite); _local1 = world.m_bodyList; while (_local1) { world.DestroyBody(_local1); _local2 = _local1; _local2 = null; _local1 = _local1.m_next; }; } public function stopMessage(_arg1:String):void{ if ((((starCounter < starsInLevel)) && ((_arg1 == "Level Complete!")))){ _arg1 = "You haven't collected all stars"; }; stopMenu = new StopMenu(startTime, _arg1); addChild(stopMenu); stopLevel(); } private function buildLevel():void{ var _local1:BodyShape; fastMenu.lockRestart(); fastMenu.unlockMenu(); fastMenu.unlockKing(); fastMenu.setStarter(); worldStop(); if (tutorial){ tutorial.visible = true; } else { startBack = new StartBack(); addChild(startBack); }; if (getChildByName("btnStart") == null){ }; btnStart = new BtnStart(); btnStart.name = "btnStart"; btnStart.x = 320; btnStart.y = 240; btnStart.addEventListener(MouseEvent.CLICK, startLevel); if (tutorial){ btnStart.y = (btnStart.y + 150); }; addChild(btnStart); stage.focus = this; addEventListener(KeyboardEvent.KEY_DOWN, keyPressed); fldStars = fieldStars; fldScore = fieldScore; worldSprite = new Sprite(); worldUpSprite = new Sprite(); addChildAt(worldSprite, 3); if (tutorial){ addChildAt(worldUpSprite, getChildIndex(tutorial)); } else { if (debugMode){ addChildAt(worldUpSprite, (numChildren - 2)); } else { addChild(worldUpSprite); }; }; starCounter = 0; starsInLevel = stars.numChildren; fldStars.text = ((("Stars " + starCounter) + "/") + starsInLevel); starter.gotoAndStop(1); starter.starter.num.gotoAndStop(1); points.visible = false; LevelBuilder.putStars(stars); LevelBuilder.buildWalls(walls); if (bridges){ LevelBuilder.buildBridges(bridges); }; if (springs){ LevelBuilder.putSprings(springs); }; level = new Level(); level.buildLevel(currentLevel); fldLevel.text = ("Level " + currentLevel); fldTimer.text = ((Math.floor((level.levelTime / 60)) + ":") + (level.levelTime % 60)); _local1 = new BodyShape("box", new Array(points.end.width, points.end.height, new Point(), points.end.rotation)); createBody(6, _local1, points.end.x, points.end.y, null, -3); ball = new Ball(points.start.x, points.start.y, new RedBall()).ball; levelPlayed = false; } public function worldStart():void{ addEventListener(Event.ENTER_FRAME, worldUpdate); } public static function catchStar():void{ starCounter++; if (!muteSound){ sndStar.play(); }; fldStars.text = ((("Stars " + starCounter) + "/") + starsInLevel); } public static function gameInit():void{ sndMusic = (new SndTrack() as Sound); sndStar = (new SndStar() as Sound); sndSpring = (new SndSpring() as Sound); sndClick = (new SndClick() as Sound); sndComplete = (new SndComplete() as Sound); sndBlow = (new SndBlow() as Sound); fastMenu = new FastMenu(); mainMenu = new MainMenu(); try { saveGame = SharedObject.getLocal("saveGame"); if (saveGame.data.lastLevel == undefined){ saveGame.data.lastLevel = 1; }; } catch(error) { }; } public static function changeScore(_arg1:int):void{ var _local2:String; if ((playerScore + _arg1) < 0){ playerScore = 0; } else { playerScore = (playerScore + _arg1); }; if (playerScore < 10){ _local2 = ("000" + playerScore); } else { if (playerScore < 100){ _local2 = ("00" + playerScore); } else { if (playerScore < 1000){ _local2 = ("0" + playerScore); } else { if (playerScore < 10000){ _local2 = playerScore; }; }; }; }; fldScore.text = ("Score " + _local2); } } }//package Script
Section 219
//StopMenu (Script.StopMenu) package Script { import flash.events.*; import flash.display.*; import com.midasplayer.*; public class StopMenu extends Sprite { private var btnRestart:BtnRestart; private var yPos:int;// = 200 private var gameRoot:Root; private var btnNext:BtnNext; private var displayShadow:DisplayShadow; private var xPos:int;// = 320 private var messageText:TextMessage; private var btnWalkthrough:BtnWalkthrough; private var scoreText:ScoreMessage; public function StopMenu(_arg1:int, _arg2:String){ xPos = 320; yPos = 200; super(); gameRoot = BasicWorld.gameRoot; displayShadow = new DisplayShadow(); addChild(displayShadow); scoreText = new ScoreMessage(); scoreText.x = xPos; scoreText.y = (yPos - 26); addChild(scoreText); if (_arg2 == "Level Complete!"){ levelComplete(_arg1); } else { levelLose(); }; messageText = new TextMessage(); messageText.field.text = _arg2; messageText.x = xPos; messageText.y = (yPos - 80); addChild(messageText); } private function toNext(_arg1:MouseEvent):void{ gameRoot.removeChild(this); gameRoot.nextLevel(); Root.stopMenu = null; } private function toRestart(_arg1:MouseEvent):void{ gameRoot.removeChild(this); gameRoot.restartLevel(); Root.stopMenu = null; } private function gotoKing(_arg1:MouseEvent):void{ KingAPI.openSignLink(); } private function levelLose():void{ Root.loseCounter++; scoreText.field.text = (("You have lost " + Root.penalty) + " score points"); btnRestart = new BtnRestart(); btnRestart.x = xPos; btnRestart.y = (yPos + 20); btnRestart.addEventListener(MouseEvent.CLICK, toRestart); btnWalkthrough = new BtnWalkthrough(); btnWalkthrough.x = xPos; btnWalkthrough.y = (yPos + 60); btnWalkthrough.addEventListener(MouseEvent.CLICK, gotoKing); addChild(btnRestart); addChild(btnWalkthrough); } private function levelComplete(_arg1:int):void{ var _local2:int; var _local3:int; if (!Root.muteSound){ Root.sndComplete.play(); }; _local2 = (_arg1 * 10); _local3 = (Root.currentLevel + 1); Root.changeScore(_local2); scoreText.field.text = ("Your score " + _local2); if (Root.saveGame.data.lastLevel < _local3){ Root.saveGame.data.lastLevel = _local3; }; if (Root.loseCounter == 0){ Root.changeScore(Root.bonus); scoreText.field.appendText((" + First time Bonus " + Root.bonus)); }; btnNext = new BtnNext(); btnNext.x = xPos; btnNext.y = (yPos + 20); btnNext.addEventListener(MouseEvent.CLICK, toNext); addChild(btnNext); } } }//package Script
Section 220
//TestFPS (Script.TestFPS) package Script { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.text.*; import flash.system.*; public class TestFPS extends Sprite { private var memory:TextField; private var fpsInterval:int; private var fpsCounter:uint;// = 0 private var fps:TextField; private var fpsTimer:Timer; public function TestFPS(_arg1:int=1000){ fpsCounter = 0; super(); initFields(); initEventListeners(); fpsInterval = _arg1; fpsTimer = new Timer(fpsInterval); fpsTimer.addEventListener(TimerEvent.TIMER, updateMeters); fpsTimer.start(); } private function initEventListeners():void{ addEventListener(Event.ADDED_TO_STAGE, initMeter); addEventListener(Event.ENTER_FRAME, updateFields); } private function initFields():void{ var _local1:TextFormat; _local1 = new TextFormat("Arial", 10, 0); fps = new TextField(); fps.defaultTextFormat = _local1; fps.selectable = false; fps.x = 10; fps.y = 3; addChild(fps); memory = new TextField(); memory.defaultTextFormat = _local1; memory.selectable = false; memory.x = 50; memory.y = 3; addChild(memory); } private function initMeter(_arg1:Event):void{ graphics.beginFill(0xCCCCCC, 0.7); graphics.drawRect(5, 5, 105, 13); graphics.endFill(); } private function updateMeters(_arg1:TimerEvent):void{ fps.text = (Math.round(fpsCounter) + " fps"); memory.text = (Math.round((System.totalMemory / 0x0400)) + " Kb"); fpsCounter = 0; } private function updateFields(_arg1:Event):void{ fpsCounter = (fpsCounter + ((1 * 1000) / fpsInterval)); } } }//package Script
Section 221
//AnimSpring (AnimSpring) package { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class AnimSpring extends MovieClip { public function AnimSpring(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 222
//BasketButton (BasketButton) package { import flash.display.*; public dynamic class BasketButton extends SimpleButton { } }//package
Section 223
//BasketDn (BasketDn) package { import flash.display.*; public dynamic class BasketDn extends MovieClip { } }//package
Section 224
//BasketDnW (BasketDnW) package { import flash.display.*; public dynamic class BasketDnW extends MovieClip { } }//package
Section 225
//BasketUp (BasketUp) package { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class BasketUp extends MovieClip { public function BasketUp(){ addFrameScript(0, frame1, 9, frame10, 18, frame19); } function frame10(){ stop(); } function frame1(){ stop(); } function frame19(){ gotoAndStop(1); } } }//package
Section 226
//BasketUpW (BasketUpW) package { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class BasketUpW extends MovieClip { public function BasketUpW(){ addFrameScript(0, frame1, 9, frame10, 18, frame19); } function frame10(){ stop(); } function frame1(){ stop(); } function frame19(){ gotoAndStop(1); } } }//package
Section 227
//Bridge (Bridge) package { import flash.display.*; public dynamic class Bridge extends MovieClip { } }//package
Section 228
//btnDownState (btnDownState) package { import flash.display.*; import flash.text.*; public dynamic class btnDownState extends Sprite { public var field:TextField; } }//package
Section 229
//btnHitTestState (btnHitTestState) package { import flash.display.*; public dynamic class btnHitTestState extends Sprite { } }//package
Section 230
//BtnNext (BtnNext) package { import flash.display.*; public dynamic class BtnNext extends SimpleButton { } }//package
Section 231
//btnOverState (btnOverState) package { import flash.display.*; import flash.text.*; public dynamic class btnOverState extends Sprite { public var field:TextField; } }//package
Section 232
//BtnRestart (BtnRestart) package { import flash.display.*; public dynamic class BtnRestart extends SimpleButton { } }//package
Section 233
//BtnStart (BtnStart) package { import flash.display.*; public dynamic class BtnStart extends SimpleButton { } }//package
Section 234
//btnUpState (btnUpState) package { import flash.display.*; import flash.text.*; public dynamic class btnUpState extends Sprite { public var field:TextField; } }//package
Section 235
//BtnWalkthrough (BtnWalkthrough) package { import flash.display.*; public dynamic class BtnWalkthrough extends SimpleButton { } }//package
Section 236
//Cursor (Cursor) package { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class Cursor extends MovieClip { public var object:MovieClip; public function Cursor(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4); } function frame3(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame2(){ stop(); } } }//package
Section 237
//DisplayShadow (DisplayShadow) package { import flash.display.*; public dynamic class DisplayShadow extends MovieClip { } }//package
Section 238
//FastMenuSprite (FastMenuSprite) package { import flash.display.*; public dynamic class FastMenuSprite extends Sprite { public var btnMainMenu:SimpleButton; public var btnResumeGame:SimpleButton; public var btnSoundOn:SimpleButton; public var btnWalktrough:BtnWalkthrough; public var btnSoundOff:SimpleButton; public var btnMusicOff:SimpleButton; public var btnMusicOn:SimpleButton; } }//package
Section 239
//FlyIsland_1 (FlyIsland_1) package { import flash.display.*; public dynamic class FlyIsland_1 extends MovieClip { } }//package
Section 240
//FlyIslandW_1 (FlyIslandW_1) package { import flash.display.*; public dynamic class FlyIslandW_1 extends MovieClip { } }//package
Section 241
//FlyIslandW_115_1 (FlyIslandW_115_1) package { import flash.display.*; public dynamic class FlyIslandW_115_1 extends MovieClip { } }//package
Section 242
//FlyIslandW_115_2 (FlyIslandW_115_2) package { import flash.display.*; public dynamic class FlyIslandW_115_2 extends MovieClip { } }//package
Section 243
//FlyIslandW_2 (FlyIslandW_2) package { import flash.display.*; public dynamic class FlyIslandW_2 extends MovieClip { } }//package
Section 244
//FlyIslandW_3 (FlyIslandW_3) package { import flash.display.*; public dynamic class FlyIslandW_3 extends MovieClip { } }//package
Section 245
//LevelSprites (LevelSprites) package { import flash.display.*; public dynamic class LevelSprites extends MovieClip { } }//package
Section 246
//libGlow (libGlow) package { import flash.display.*; public dynamic class libGlow extends MovieClip { } }//package
Section 247
//mcDragon (mcDragon) package { import flash.display.*; public dynamic class mcDragon extends MovieClip { } }//package
Section 248
//mcGlimmer (mcGlimmer) package { import flash.display.*; public dynamic class mcGlimmer extends MovieClip { } }//package
Section 249
//MillBeams (MillBeams) package { import flash.display.*; public dynamic class MillBeams extends MovieClip { } }//package
Section 250
//MillMotor (MillMotor) package { import flash.display.*; public dynamic class MillMotor extends MovieClip { } }//package
Section 251
//MochiBot (MochiBot) package { import flash.display.*; import flash.net.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ var _local3:MochiBot; var _local4:String; var _local5:URLVariables; var _local6:String; var _local7:URLRequest; var _local8:Loader; if (Security.sandboxType == "localWithFile"){ return (null); }; _local3 = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); _local4 = "http://core.mochibot.com/my/core.swf"; _local5 = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; _local6 = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; _local7 = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; _local8 = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 252
//RedBall (RedBall) package { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class RedBall extends MovieClip { public var ball:MovieClip; public function RedBall(){ addFrameScript(0, frame1, 10, frame11); } function frame1(){ stop(); } function frame11(){ stop(); } } }//package
Section 253
//ScoreMessage (ScoreMessage) package { import flash.display.*; import flash.text.*; public dynamic class ScoreMessage extends MovieClip { public var field:TextField; } }//package
Section 254
//sfxBell (sfxBell) package { import flash.media.*; public dynamic class sfxBell extends Sound { } }//package
Section 255
//SndBlow (SndBlow) package { import flash.media.*; public dynamic class SndBlow extends Sound { } }//package
Section 256
//SndClick (SndClick) package { import flash.media.*; public dynamic class SndClick extends Sound { } }//package
Section 257
//SndComplete (SndComplete) package { import flash.media.*; public dynamic class SndComplete extends Sound { } }//package
Section 258
//SndSpring (SndSpring) package { import flash.media.*; public dynamic class SndSpring extends Sound { } }//package
Section 259
//SndStar (SndStar) package { import flash.media.*; public dynamic class SndStar extends Sound { } }//package
Section 260
//SndTrack (SndTrack) package { import flash.media.*; public dynamic class SndTrack extends Sound { } }//package
Section 261
//spark (spark) package { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class spark extends MovieClip { public function spark(){ addFrameScript(22, frame23); } function frame23(){ gotoAndStop("loop"); } } }//package
Section 262
//SpringActive (SpringActive) package { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class SpringActive extends MovieClip { public var anim:AnimSpring; public function SpringActive(){ addFrameScript(94, frame95); } function frame95(){ stop(); } } }//package
Section 263
//Star (Star) package { import flash.display.*; public dynamic class Star extends MovieClip { } }//package
Section 264
//StartBack (StartBack) package { import flash.display.*; public dynamic class StartBack extends MovieClip { } }//package
Section 265
//StickActive (StickActive) package { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class StickActive extends MovieClip { public function StickActive(){ addFrameScript(94, frame95); } function frame95(){ stop(); } } }//package
Section 266
//TextMessage (TextMessage) package { import flash.display.*; import flash.text.*; public dynamic class TextMessage extends MovieClip { public var field:TextField; } }//package
Section 267
//ThornsSprite (ThornsSprite) package { import flash.display.*; public dynamic class ThornsSprite extends Sprite { } }//package
Section 268
//ThornsSpriteW (ThornsSpriteW) package { import flash.display.*; public dynamic class ThornsSpriteW extends MovieClip { } }//package
Section 269
//ThornsSpriteW2 (ThornsSpriteW2) package { import flash.display.*; public dynamic class ThornsSpriteW2 extends Sprite { } }//package
Section 270
//TrolleyBody (TrolleyBody) package { import flash.display.*; public dynamic class TrolleyBody extends Sprite { } }//package
Section 271
//TrolleyWheel (TrolleyWheel) package { import flash.display.*; public dynamic class TrolleyWheel extends Sprite { } }//package

Library Items

Symbol 1 Sound {sfxBell}
Symbol 2 BitmapUsed by:3
Symbol 3 GraphicUses:2Used by:48
Symbol 4 BitmapUsed by:5
Symbol 5 GraphicUses:4Used by:48
Symbol 6 BitmapUsed by:7
Symbol 7 GraphicUses:6Used by:48
Symbol 8 BitmapUsed by:9
Symbol 9 GraphicUses:8Used by:48
Symbol 10 BitmapUsed by:11
Symbol 11 GraphicUses:10Used by:48
Symbol 12 BitmapUsed by:13
Symbol 13 GraphicUses:12Used by:48
Symbol 14 BitmapUsed by:15
Symbol 15 GraphicUses:14Used by:48
Symbol 16 BitmapUsed by:17
Symbol 17 GraphicUses:16Used by:48
Symbol 18 BitmapUsed by:19
Symbol 19 GraphicUses:18Used by:48
Symbol 20 BitmapUsed by:21
Symbol 21 GraphicUses:20Used by:48
Symbol 22 BitmapUsed by:23
Symbol 23 GraphicUses:22Used by:48
Symbol 24 BitmapUsed by:25
Symbol 25 GraphicUses:24Used by:48
Symbol 26 BitmapUsed by:27
Symbol 27 GraphicUses:26Used by:48
Symbol 28 BitmapUsed by:29
Symbol 29 GraphicUses:28Used by:48
Symbol 30 BitmapUsed by:31
Symbol 31 GraphicUses:30Used by:48
Symbol 32 BitmapUsed by:33
Symbol 33 GraphicUses:32Used by:48
Symbol 34 BitmapUsed by:35
Symbol 35 GraphicUses:34Used by:48
Symbol 36 BitmapUsed by:37
Symbol 37 GraphicUses:36Used by:48
Symbol 38 BitmapUsed by:39
Symbol 39 GraphicUses:38Used by:48
Symbol 40 BitmapUsed by:41
Symbol 41 GraphicUses:40Used by:48
Symbol 42 BitmapUsed by:43
Symbol 43 GraphicUses:42Used by:48
Symbol 44 BitmapUsed by:45
Symbol 45 GraphicUses:44Used by:48
Symbol 46 BitmapUsed by:47
Symbol 47 GraphicUses:46Used by:48
Symbol 48 MovieClip {spark}Uses:3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47
Symbol 49 BitmapUsed by:50
Symbol 50 GraphicUses:49Used by:51
Symbol 51 MovieClip {libGlow}Uses:50
Symbol 52 BitmapUsed by:53
Symbol 53 GraphicUses:52Used by:54
Symbol 54 MovieClip {mcGlimmer}Uses:53
Symbol 55 VideoUsed by:57
Symbol 56 SoundUsed by:57
Symbol 57 MovieClip {mcDragon}Uses:55 56
Symbol 58 GraphicUsed by:59
Symbol 59 MovieClip {Bridge}Uses:58
Symbol 60 GraphicUsed by:66
Symbol 61 BitmapUsed by:62 95
Symbol 62 GraphicUses:61Used by:63
Symbol 63 MovieClipUses:62Used by:66
Symbol 64 FontUsed by:65 67 68 69 99 100 101 104 105 106 108 109 110 111 112 115 116 117 120 293 297 299 301 302 305 306 307 309 310 311 313 315 332 333 334 335 340 341 342 344 345 346 349 350 351 356 361 365 366 367 373 385 386 387 388 389 390 391 392 393 394 395 398 399 457 460 461 462 463 464 465 467 468 471 472 517 530 531 532 550 564 578 579 580 602 615 633 634 635 651 662 663 664 685 704 734 745 754 762 777 783 796 808 820 825 843 846 847 848 849 852 853 854
Symbol 65 TextUses:64Used by:66
Symbol 66 MovieClip {StartBack}Uses:60 63 65
Symbol 67 TextUses:64Used by:71
Symbol 68 TextUses:64Used by:71
Symbol 69 TextUses:64Used by:71
Symbol 70 GraphicUsed by:71 343
Symbol 71 Button {BtnWalkthrough}Uses:67 68 69 70Used by:121 323 371
Symbol 72 GraphicUsed by:73
Symbol 73 MovieClip {DisplayShadow}Uses:72Used by:121 476 535 587 638 667
Symbol 74 BitmapUsed by:75
Symbol 75 GraphicUses:74Used by:78
Symbol 76 GraphicUsed by:77
Symbol 77 MovieClipUses:76Used by:78
Symbol 78 MovieClip {go_fla.mcLoadLogo_1}Uses:75 77Used by:Timeline
Symbol 79 GraphicUsed by:Timeline
Symbol 80 VideoUsed by:81
Symbol 81 MovieClip {go_fla.mcFireLogo_4}Uses:80Used by:94
Symbol 82 GraphicUsed by:83
Symbol 83 MovieClipUses:82Used by:86
Symbol 84 FontUsed by:85
Symbol 85 EditableTextUses:84Used by:86
Symbol 86 MovieClip {go_fla.mcBannedSign_5}Uses:83 85Used by:94
Symbol 87 BitmapUsed by:88
Symbol 88 GraphicUses:87Used by:93
Symbol 89 BitmapUsed by:90
Symbol 90 GraphicUses:89Used by:93
Symbol 91 BitmapUsed by:92
Symbol 92 GraphicUses:91Used by:93
Symbol 93 MovieClip {go_fla.mcPlayBtn_7}Uses:88 90 92Used by:94
Symbol 94 MovieClip {com.midasplayer.DragonLoader}Uses:81 86 93Used by:Timeline
Symbol 95 GraphicUses:61Used by:96
Symbol 96 MovieClipUses:95Used by:98
Symbol 97 GraphicUsed by:98
Symbol 98 MovieClipUses:96 97Used by:121 331 372 384 476 535 587 638 667  Timeline
Symbol 99 TextUses:64Used by:103
Symbol 100 TextUses:64Used by:103
Symbol 101 TextUses:64Used by:103
Symbol 102 GraphicUsed by:103 107
Symbol 103 ButtonUses:99 100 101 102Used by:121 383 400  Timeline
Symbol 104 TextUses:64Used by:107
Symbol 105 TextUses:64Used by:107
Symbol 106 TextUses:64Used by:107
Symbol 107 ButtonUses:104 105 106 102Used by:121
Symbol 108 TextUses:64Used by:121
Symbol 109 TextUses:64Used by:121
Symbol 110 TextUses:64Used by:114
Symbol 111 TextUses:64Used by:114
Symbol 112 TextUses:64Used by:114
Symbol 113 GraphicUsed by:114 312 368 475 534 586 637 666 795
Symbol 114 ButtonUses:110 111 112 113Used by:121
Symbol 115 TextUses:64Used by:119
Symbol 116 TextUses:64Used by:119
Symbol 117 TextUses:64Used by:119
Symbol 118 GraphicUsed by:119
Symbol 119 ButtonUses:115 116 117 118Used by:121
Symbol 120 TextUses:64Used by:121
Symbol 121 MovieClip {FastMenuSprite}Uses:73 98 103 107 108 109 114 119 120 71Used by:323
Symbol 122 BitmapUsed by:123 378
Symbol 123 GraphicUses:122Used by:174
Symbol 124 BitmapUsed by:125
Symbol 125 GraphicUses:124Used by:174
Symbol 126 BitmapUsed by:127
Symbol 127 GraphicUses:126Used by:174
Symbol 128 BitmapUsed by:129
Symbol 129 GraphicUses:128Used by:174
Symbol 130 BitmapUsed by:131
Symbol 131 GraphicUses:130Used by:174
Symbol 132 BitmapUsed by:133
Symbol 133 GraphicUses:132Used by:174
Symbol 134 BitmapUsed by:135
Symbol 135 GraphicUses:134Used by:174
Symbol 136 BitmapUsed by:137
Symbol 137 GraphicUses:136Used by:174
Symbol 138 BitmapUsed by:139
Symbol 139 GraphicUses:138Used by:174
Symbol 140 BitmapUsed by:141
Symbol 141 GraphicUses:140Used by:174
Symbol 142 BitmapUsed by:143
Symbol 143 GraphicUses:142Used by:174
Symbol 144 BitmapUsed by:145
Symbol 145 GraphicUses:144Used by:174
Symbol 146 BitmapUsed by:147
Symbol 147 GraphicUses:146Used by:174
Symbol 148 BitmapUsed by:149
Symbol 149 GraphicUses:148Used by:174
Symbol 150 BitmapUsed by:151
Symbol 151 GraphicUses:150Used by:174
Symbol 152 BitmapUsed by:153
Symbol 153 GraphicUses:152Used by:174
Symbol 154 BitmapUsed by:155
Symbol 155 GraphicUses:154Used by:174
Symbol 156 BitmapUsed by:157
Symbol 157 GraphicUses:156Used by:174
Symbol 158 BitmapUsed by:159
Symbol 159 GraphicUses:158Used by:174
Symbol 160 BitmapUsed by:161
Symbol 161 GraphicUses:160Used by:174
Symbol 162 BitmapUsed by:163
Symbol 163 GraphicUses:162Used by:174
Symbol 164 BitmapUsed by:165
Symbol 165 GraphicUses:164Used by:174
Symbol 166 BitmapUsed by:167
Symbol 167 GraphicUses:166Used by:174
Symbol 168 BitmapUsed by:169
Symbol 169 GraphicUses:168Used by:174
Symbol 170 BitmapUsed by:171 324 327 844
Symbol 171 GraphicUses:170Used by:174
Symbol 172 GraphicUsed by:173
Symbol 173 MovieClipUses:172Used by:174
Symbol 174 MovieClip {LevelSprites}Uses:123 125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 155 157 159 161 163 165 167 169 171 173Used by:323
Symbol 175 GraphicUsed by:176
Symbol 176 MovieClipUses:175Used by:177 191 475 666
Symbol 177 MovieClip {go_fla.StickAlert_21}Uses:176Used by:190
Symbol 178 GraphicUsed by:179
Symbol 179 MovieClipUses:178Used by:182 192
Symbol 180 GraphicUsed by:181
Symbol 181 MovieClipUses:180Used by:182 192
Symbol 182 MovieClipUses:179 181Used by:183 534
Symbol 183 MovieClip {go_fla.SpringAlert_23}Uses:182Used by:190 666
Symbol 184 GraphicUsed by:185
Symbol 185 MovieClipUses:184Used by:186
Symbol 186 MovieClip {go_fla.HandSprite_28}Uses:185Used by:187 637
Symbol 187 MovieClip {go_fla.HandCursor_27}Uses:186Used by:190
Symbol 188 GraphicUsed by:189
Symbol 189 MovieClipUses:188Used by:190 586
Symbol 190 MovieClip {Cursor}Uses:177 183 187 189Used by:323
Symbol 191 MovieClip {StickActive}Uses:176Used by:323
Symbol 192 MovieClip {AnimSpring}Uses:179 181Used by:193 323
Symbol 193 MovieClip {SpringActive}Uses:192Used by:323 534 666
Symbol 194 GraphicUsed by:208
Symbol 195 GraphicUsed by:196
Symbol 196 MovieClipUses:195Used by:208
Symbol 197 BitmapUsed by:198 200 201 202 203 204 205 206 207
Symbol 198 GraphicUses:197Used by:208
Symbol 199 MovieClipUsed by:208
Symbol 200 GraphicUses:197Used by:208
Symbol 201 GraphicUses:197Used by:208
Symbol 202 GraphicUses:197Used by:208
Symbol 203 GraphicUses:197Used by:208
Symbol 204 GraphicUses:197Used by:208
Symbol 205 GraphicUses:197Used by:208
Symbol 206 GraphicUses:197Used by:208
Symbol 207 GraphicUses:197Used by:208
Symbol 208 MovieClip {RedBall}Uses:194 196 198 199 200 201 202 203 204 205 206 207Used by:323 475 534 586 637 666
Symbol 209 GraphicUsed by:210
Symbol 210 MovieClipUses:209Used by:212
Symbol 211 GraphicUsed by:212
Symbol 212 MovieClip {BasketDn}Uses:210 211Used by:323 582
Symbol 213 GraphicUsed by:214
Symbol 214 MovieClip {BasketDnW}Uses:213Used by:323
Symbol 215 GraphicUsed by:216
Symbol 216 MovieClipUses:215Used by:220 222
Symbol 217 GraphicUsed by:218
Symbol 218 MovieClipUses:217Used by:220 222
Symbol 219 GraphicUsed by:220
Symbol 220 MovieClip {BasketUp}Uses:216 218 219Used by:323 582
Symbol 221 GraphicUsed by:222
Symbol 222 MovieClip {BasketUpW}Uses:216 218 221Used by:323
Symbol 223 GraphicUsed by:230
Symbol 224 GraphicUsed by:230 586
Symbol 225 GraphicUsed by:227
Symbol 226 GraphicUsed by:227
Symbol 227 MovieClipUses:225 226Used by:230 586
Symbol 228 GraphicUsed by:230
Symbol 229 GraphicUsed by:230
Symbol 230 Button {BasketButton}Uses:223 224 227 228 229Used by:323 586
Symbol 231 BitmapUsed by:232
Symbol 232 GraphicUses:231Used by:263
Symbol 233 BitmapUsed by:234
Symbol 234 GraphicUses:233Used by:263
Symbol 235 BitmapUsed by:236
Symbol 236 GraphicUses:235Used by:263
Symbol 237 BitmapUsed by:238
Symbol 238 GraphicUses:237Used by:263
Symbol 239 BitmapUsed by:240
Symbol 240 GraphicUses:239Used by:263
Symbol 241 BitmapUsed by:242
Symbol 242 GraphicUses:241Used by:263
Symbol 243 BitmapUsed by:244
Symbol 244 GraphicUses:243Used by:263
Symbol 245 BitmapUsed by:246
Symbol 246 GraphicUses:245Used by:263
Symbol 247 BitmapUsed by:248
Symbol 248 GraphicUses:247Used by:263
Symbol 249 BitmapUsed by:250
Symbol 250 GraphicUses:249Used by:263
Symbol 251 BitmapUsed by:252
Symbol 252 GraphicUses:251Used by:263
Symbol 253 BitmapUsed by:254
Symbol 254 GraphicUses:253Used by:263
Symbol 255 BitmapUsed by:256
Symbol 256 GraphicUses:255Used by:263
Symbol 257 BitmapUsed by:258
Symbol 258 GraphicUses:257Used by:263
Symbol 259 BitmapUsed by:260
Symbol 260 GraphicUses:259Used by:263
Symbol 261 BitmapUsed by:262
Symbol 262 GraphicUses:261Used by:263
Symbol 263 MovieClipUses:232 234 236 238 240 242 244 246 248 250 252 254 256 258 260 262Used by:264
Symbol 264 MovieClip {Star}Uses:263Used by:323 534 637 666
Symbol 265 GraphicUsed by:266
Symbol 266 MovieClipUses:265Used by:268
Symbol 267 GraphicUsed by:268
Symbol 268 MovieClip {ThornsSprite}Uses:266 267Used by:323
Symbol 269 GraphicUsed by:270
Symbol 270 MovieClip {ThornsSpriteW}Uses:269Used by:323
Symbol 271 GraphicUsed by:272
Symbol 272 MovieClip {ThornsSpriteW2}Uses:271Used by:323
Symbol 273 GraphicUsed by:274
Symbol 274 MovieClip {TrolleyBody}Uses:273Used by:323
Symbol 275 GraphicUsed by:276
Symbol 276 MovieClip {TrolleyWheel}Uses:275Used by:323
Symbol 277 GraphicUsed by:278
Symbol 278 MovieClip {MillBeams}Uses:277Used by:323
Symbol 279 GraphicUsed by:280
Symbol 280 MovieClip {MillMotor}Uses:279Used by:323
Symbol 281 GraphicUsed by:282
Symbol 282 MovieClip {FlyIsland_1}Uses:281Used by:323 637
Symbol 283 GraphicUsed by:284
Symbol 284 MovieClip {FlyIslandW_1}Uses:283Used by:323
Symbol 285 GraphicUsed by:286
Symbol 286 MovieClip {FlyIslandW_2}Uses:285Used by:323 761
Symbol 287 GraphicUsed by:288
Symbol 288 MovieClip {FlyIslandW_3}Uses:287Used by:323 835
Symbol 289 GraphicUsed by:290
Symbol 290 MovieClip {FlyIslandW_115_1}Uses:289Used by:323 724
Symbol 291 GraphicUsed by:292
Symbol 292 MovieClip {FlyIslandW_115_2}Uses:291Used by:323
Symbol 293 EditableTextUses:64Used by:294
Symbol 294 MovieClip {btnDownState}Uses:293Used by:323
Symbol 295 GraphicUsed by:296 466 469 748
Symbol 296 MovieClip {btnHitTestState}Uses:295Used by:323
Symbol 297 EditableTextUses:64Used by:298
Symbol 298 MovieClip {btnOverState}Uses:297Used by:323
Symbol 299 EditableTextUses:64Used by:300
Symbol 300 MovieClip {btnUpState}Uses:299Used by:323
Symbol 301 TextUses:64Used by:304
Symbol 302 TextUses:64Used by:304
Symbol 303 GraphicUsed by:304 308
Symbol 304 Button {BtnStart}Uses:301 302 303Used by:323
Symbol 305 TextUses:64Used by:308
Symbol 306 TextUses:64Used by:308
Symbol 307 TextUses:64Used by:308
Symbol 308 Button {BtnRestart}Uses:305 306 307 303Used by:323
Symbol 309 TextUses:64Used by:312
Symbol 310 TextUses:64Used by:312
Symbol 311 TextUses:64Used by:312
Symbol 312 Button {BtnNext}Uses:309 310 311 113Used by:323
Symbol 313 EditableTextUses:64Used by:314
Symbol 314 MovieClip {ScoreMessage}Uses:313Used by:323
Symbol 315 EditableTextUses:64Used by:316
Symbol 316 MovieClip {TextMessage}Uses:315Used by:323
Symbol 317 Sound {SndTrack}Used by:323
Symbol 318 Sound {SndBlow}Used by:323
Symbol 319 Sound {SndClick}Used by:323
Symbol 320 Sound {SndComplete}Used by:323
Symbol 321 Sound {SndSpring}Used by:323
Symbol 322 Sound {SndStar}Used by:323
Symbol 323 MovieClip {go_fla._Library_8}Uses:121 174 190 191 193 192 208 212 214 220 222 230 264 268 270 272 274 276 278 280 282 284 286 288 290 292 294 296 298 300 304 308 312 314 316 71 317 318 319 320 321 322Used by:Timeline
Symbol 324 GraphicUses:170Used by:326
Symbol 325 GraphicUsed by:326 330 470
Symbol 326 MovieClip {go_fla.Intro_71}Uses:324 325Used by:Timeline
Symbol 327 GraphicUses:170Used by:Timeline
Symbol 328 GraphicUsed by:330
Symbol 329 GraphicUsed by:330 470
Symbol 330 ButtonUses:328 325 329Used by:Timeline
Symbol 331 MovieClip {go_fla.Paper_MainMenu_73}Uses:98Used by:Timeline
Symbol 332 TextUses:64Used by:371
Symbol 333 TextUses:64Used by:337
Symbol 334 TextUses:64Used by:337
Symbol 335 TextUses:64Used by:337
Symbol 336 GraphicUsed by:337
Symbol 337 ButtonUses:333 334 335 336Used by:371
Symbol 338 GraphicUsed by:339
Symbol 339 MovieClipUses:338Used by:371
Symbol 340 TextUses:64Used by:343
Symbol 341 TextUses:64Used by:343
Symbol 342 TextUses:64Used by:343
Symbol 343 ButtonUses:340 341 342 70Used by:371
Symbol 344 TextUses:64Used by:348
Symbol 345 TextUses:64Used by:348
Symbol 346 TextUses:64Used by:348
Symbol 347 GraphicUsed by:348
Symbol 348 ButtonUses:344 345 346 347Used by:371
Symbol 349 TextUses:64Used by:353
Symbol 350 TextUses:64Used by:353
Symbol 351 TextUses:64Used by:353
Symbol 352 GraphicUsed by:353
Symbol 353 ButtonUses:349 350 351 352Used by:371
Symbol 354 GraphicUsed by:358
Symbol 355 GraphicUsed by:358
Symbol 356 TextUses:64Used by:358
Symbol 357 GraphicUsed by:358
Symbol 358 ButtonUses:354 355 356 357Used by:371
Symbol 359 GraphicUsed by:364
Symbol 360 GraphicUsed by:364
Symbol 361 TextUses:64Used by:364
Symbol 362 GraphicUsed by:364
Symbol 363 GraphicUsed by:364
Symbol 364 ButtonUses:359 360 361 362 363Used by:371
Symbol 365 TextUses:64Used by:368
Symbol 366 TextUses:64Used by:368
Symbol 367 TextUses:64Used by:368
Symbol 368 ButtonUses:365 366 367 113Used by:371
Symbol 369 GraphicUsed by:370
Symbol 370 MovieClipUses:369Used by:371 383 400
Symbol 371 MovieClip {go_fla.Page_MainMenu_74}Uses:332 337 339 343 348 353 358 364 71 368 370Used by:Timeline
Symbol 372 MovieClip {go_fla.Paper_Select_84}Uses:98Used by:Timeline
Symbol 373 TextUses:64Used by:383
Symbol 374 GraphicUsed by:375
Symbol 375 MovieClipUses:374Used by:377
Symbol 376 GraphicUsed by:377
Symbol 377 ButtonUses:375 376Used by:383
Symbol 378 GraphicUses:122Used by:379
Symbol 379 MovieClipUses:378Used by:383
Symbol 380 GraphicUsed by:383
Symbol 381 GraphicUsed by:382
Symbol 382 MovieClipUses:381Used by:383
Symbol 383 MovieClip {go_fla.Page_SelectLevel_85}Uses:373 103 377 379 380 382 370Used by:Timeline
Symbol 384 MovieClip {go_fla.Paper_Credits_90}Uses:98Used by:Timeline
Symbol 385 TextUses:64Used by:400
Symbol 386 TextUses:64Used by:400
Symbol 387 TextUses:64Used by:400
Symbol 388 TextUses:64Used by:400
Symbol 389 TextUses:64Used by:400
Symbol 390 TextUses:64Used by:400
Symbol 391 TextUses:64Used by:400
Symbol 392 TextUses:64Used by:400
Symbol 393 TextUses:64Used by:400
Symbol 394 TextUses:64Used by:400
Symbol 395 TextUses:64Used by:400
Symbol 396 GraphicUsed by:397
Symbol 397 MovieClipUses:396Used by:400
Symbol 398 TextUses:64Used by:400
Symbol 399 TextUses:64Used by:400
Symbol 400 MovieClip {go_fla.Page_Credits_91}Uses:385 386 387 388 389 390 391 392 393 394 395 103 397 398 399 370Used by:Timeline
Symbol 401 BitmapUsed by:402 473 581
Symbol 402 GraphicUses:401Used by:Timeline
Symbol 403 GraphicUsed by:416 483
Symbol 404 GraphicUsed by:416
Symbol 405 GraphicUsed by:410
Symbol 406 GraphicUsed by:410
Symbol 407 GraphicUsed by:410
Symbol 408 GraphicUsed by:410
Symbol 409 GraphicUsed by:410
Symbol 410 MovieClip {go_fla.Numbers_95}Uses:405 406 407 408 409Used by:416 483 709 736
Symbol 411 GraphicUsed by:416
Symbol 412 GraphicUsed by:416
Symbol 413 GraphicUsed by:416
Symbol 414 GraphicUsed by:416
Symbol 415 GraphicUsed by:416
Symbol 416 MovieClip {go_fla.Starter_R_Sprite_94}Uses:403 404 410 411 412 413 414 415Used by:417 524
Symbol 417 MovieClip {go_fla.Starter_R_Mov_93}Uses:416Used by:Timeline
Symbol 418 GraphicUsed by:435 502 522 542 569 596 607 619 643 655 672 724 740 804
Symbol 419 GraphicUsed by:424
Symbol 420 GraphicUsed by:421
Symbol 421 MovieClipUses:420Used by:424 537 713 724 740 781 795 804 813 824 835
Symbol 422 GraphicUsed by:423
Symbol 423 MovieClipUses:422Used by:424 537 713 761 770 781 795 813 824
Symbol 424 MovieClipUses:419 421 423Used by:435 502 522 542 557 569 596 619 643 655 672 695
Symbol 425 GraphicUsed by:426
Symbol 426 MovieClipUses:425Used by:435 475 534 637 666
Symbol 427 GraphicUsed by:435
Symbol 428 GraphicUsed by:429
Symbol 429 MovieClipUses:428Used by:435 502 522 542 557 569 596 607 619 643 655 672 695
Symbol 430 GraphicUsed by:435
Symbol 431 GraphicUsed by:432
Symbol 432 MovieClipUses:431Used by:435 475 542 557 619 655 695
Symbol 433 GraphicUsed by:434
Symbol 434 MovieClipUses:433Used by:435 502 542 557 569
Symbol 435 MovieClipUses:418 424 426 427 429 430 432 434Used by:Timeline
Symbol 436 GraphicUsed by:Timeline
Symbol 437 GraphicUsed by:438
Symbol 438 MovieClipUses:437Used by:Timeline
Symbol 439 GraphicUsed by:440 455
Symbol 440 MovieClipUses:439Used by:441 442 443 444 445 510 511 512 544 575 576 599 600 611 612 613 626 631 649 677 678 679 680 681 702 731 743 751 752 790 841
Symbol 441 MovieClip {go_fla.wall_1_106}Uses:440Used by:446 513 528 545 661 774 842
Symbol 442 MovieClip {go_fla.wall_2_108}Uses:440Used by:446 513 545 563 577 601 632 650 703 744 753 767 774 799 807 842
Symbol 443 MovieClip {go_fla.wall_3_109}Uses:440Used by:446 513 545 563 577 601 661 703 744 753 767 774 791 799 807 819 830 842
Symbol 444 MovieClip {go_fla.wall_4_110}Uses:440Used by:446 513 528 545 563 577 601 614 632 650 661 682 703 733 744 753 767 774 791 799 807 819 830 842
Symbol 445 MovieClip {go_fla.wall_5_111}Uses:440Used by:446 513 528 545 563 577 601 614 632 650 661 682 703 733 744 753 767 774 791 799 807 819 830 842
Symbol 446 MovieClip {go_fla.Walls_105}Uses:441 442 443 444 445Used by:Timeline
Symbol 447 GraphicUsed by:448 450 784 788
Symbol 448 MovieClipUses:447Used by:449 509 527 546 562 574 598 610 625 648 660 676 700 730 742 750 766 772 798 806 815 829 840
Symbol 449 MovieClip {go_fla.Stars_112}Uses:448Used by:Timeline
Symbol 450 MovieClipUses:447Used by:451 505 506 548 559 571 603 621 622 645 657 683 697 763 775 800 826 836 837
Symbol 451 MovieClipUses:450Used by:452
Symbol 452 MovieClipUses:451Used by:Timeline
Symbol 453 GraphicUsed by:454
Symbol 454 MovieClipUses:453Used by:456 508 526 547 561 573 597 609 624 647 659 675 699 729 741 749 765 771 787 797 805 814 828 839
Symbol 455 MovieClipUses:439Used by:456 508 526 547 561 573 597 609 624 647 659 675 699 729 741 749 765 771 787 797 805 814 828 839
Symbol 456 MovieClip {go_fla.Points_117}Uses:454 455Used by:Timeline
Symbol 457 TextUses:64Used by:Timeline
Symbol 458 GraphicUsed by:459
Symbol 459 MovieClipUses:458Used by:Timeline
Symbol 460 EditableTextUses:64Used by:Timeline
Symbol 461 EditableTextUses:64Used by:Timeline
Symbol 462 EditableTextUses:64Used by:Timeline
Symbol 463 EditableTextUses:64Used by:Timeline
Symbol 464 TextUses:64Used by:466
Symbol 465 TextUses:64Used by:466
Symbol 466 ButtonUses:464 465 295Used by:Timeline
Symbol 467 TextUses:64Used by:469
Symbol 468 TextUses:64Used by:469
Symbol 469 ButtonUses:467 468 295Used by:Timeline
Symbol 470 ButtonUses:325 329Used by:Timeline
Symbol 471 TextUses:64Used by:476
Symbol 472 TextUses:64Used by:476
Symbol 473 GraphicUses:401Used by:475 534 637 666
Symbol 474 GraphicUsed by:475
Symbol 475 MovieClipUses:113 473 432 426 176 474 208Used by:476
Symbol 476 MovieClipUses:73 98 471 472 475Used by:Timeline
Symbol 477 GraphicUsed by:483
Symbol 478 GraphicUsed by:483
Symbol 479 GraphicUsed by:483
Symbol 480 GraphicUsed by:483
Symbol 481 GraphicUsed by:483
Symbol 482 GraphicUsed by:483
Symbol 483 MovieClip {go_fla.Starter_L_Sprite_127}Uses:403 477 410 478 479 480 481 482Used by:484
Symbol 484 MovieClip {go_fla.Starter_L_Mov_126}Uses:483Used by:Timeline
Symbol 485 GraphicUsed by:502
Symbol 486 GraphicUsed by:487
Symbol 487 MovieClipUses:486Used by:502 522 542 557 569 596 607 672 695
Symbol 488 GraphicUsed by:502
Symbol 489 GraphicUsed by:490
Symbol 490 MovieClipUses:489Used by:502 504 542 557 569 596 607 619 655 672  Timeline
Symbol 491 GraphicUsed by:492
Symbol 492 MovieClipUses:491Used by:502 619 695
Symbol 493 GraphicUsed by:494
Symbol 494 MovieClipUses:493Used by:502 569 607 619 672 695
Symbol 495 GraphicUsed by:496
Symbol 496 MovieClipUses:495Used by:502 557 619 695 724 761 781 795 824 835
Symbol 497 GraphicUsed by:502
Symbol 498 GraphicUsed by:502
Symbol 499 GraphicUsed by:500
Symbol 500 MovieClipUses:499Used by:502 596 607
Symbol 501 GraphicUsed by:502
Symbol 502 MovieClipUses:418 485 487 488 490 492 494 496 424 497 498 500 501 429 434Used by:Timeline
Symbol 503 GraphicUsed by:504
Symbol 504 MovieClipUses:503 490Used by:Timeline
Symbol 505 MovieClipUses:450Used by:507
Symbol 506 MovieClipUses:450Used by:507
Symbol 507 MovieClipUses:505 506Used by:Timeline
Symbol 508 MovieClip {go_fla.Points_139}Uses:454 455Used by:Timeline
Symbol 509 MovieClipUses:448Used by:Timeline
Symbol 510 MovieClip {go_fla.wall_1_142}Uses:440Used by:513 528 563 577 661 682 733 767 791 807 819 830
Symbol 511 MovieClip {go_fla.wall_1_143}Uses:440Used by:513
Symbol 512 MovieClip {go_fla.wall_1_144}Uses:440Used by:513
Symbol 513 MovieClip {go_fla.Walls_141}Uses:441 444 445 442 510 511 512 443Used by:Timeline
Symbol 514 GraphicUsed by:515
Symbol 515 MovieClipUses:514Used by:516 529
Symbol 516 MovieClipUses:515Used by:Timeline
Symbol 517 TextUses:64Used by:Timeline
Symbol 518 GraphicUsed by:522
Symbol 519 GraphicUsed by:520
Symbol 520 MovieClipUses:519Used by:522 619 643 695
Symbol 521 GraphicUsed by:522
Symbol 522 MovieClipUses:418 424 518 429 487 520 521Used by:Timeline
Symbol 523 GraphicUsed by:524
Symbol 524 MovieClip {go_fla.Starter_R_Mov_Mask_149}Uses:523 416Used by:Timeline
Symbol 525 GraphicUsed by:Timeline
Symbol 526 MovieClip {go_fla.Points_150}Uses:454 455Used by:Timeline
Symbol 527 MovieClipUses:448Used by:Timeline
Symbol 528 MovieClip {go_fla.Walls_152}Uses:441 444 445 510Used by:Timeline
Symbol 529 MovieClipUses:515Used by:Timeline
Symbol 530 TextUses:64Used by:Timeline
Symbol 531 TextUses:64Used by:535
Symbol 532 TextUses:64Used by:535
Symbol 533 GraphicUsed by:534
Symbol 534 MovieClip {go_fla.Tutorial_2_Movie_155}Uses:113 473 426 182 264 533 193 208Used by:535
Symbol 535 MovieClipUses:73 98 531 532 534Used by:Timeline
Symbol 536 GraphicUsed by:537
Symbol 537 MovieClipUses:536 421 423Used by:542 557 596
Symbol 538 GraphicUsed by:542
Symbol 539 GraphicUsed by:542
Symbol 540 GraphicUsed by:541
Symbol 541 MovieClipUses:540Used by:542 557 607 643 666
Symbol 542 MovieClipUses:418 537 424 538 434 487 432 490 539 429 541Used by:Timeline
Symbol 543 GraphicUsed by:Timeline
Symbol 544 MovieClip {go_fla.wall_1_160}Uses:440Used by:545
Symbol 545 MovieClip {go_fla.Walls_159}Uses:441 442 443 444 445 544Used by:Timeline
Symbol 546 MovieClipUses:448Used by:Timeline
Symbol 547 MovieClip {go_fla.Points_162}Uses:454 455Used by:Timeline
Symbol 548 MovieClipUses:450Used by:549 560
Symbol 549 MovieClip {go_fla.Bridges_163}Uses:548Used by:Timeline
Symbol 550 TextUses:64Used by:Timeline
Symbol 551 GraphicUsed by:557 770 781 824
Symbol 552 GraphicUsed by:557
Symbol 553 GraphicUsed by:557
Symbol 554 GraphicUsed by:555
Symbol 555 MovieClipUses:554Used by:557 596 607 619 672
Symbol 556 GraphicUsed by:557
Symbol 557 MovieClipUses:551 434 496 487 432 537 424 490 552 429 541 553 555 556Used by:Timeline
Symbol 558 GraphicUsed by:Timeline
Symbol 559 MovieClipUses:450Used by:560
Symbol 560 MovieClip {go_fla.Level_10_Bridges_167}Uses:548 559Used by:Timeline
Symbol 561 MovieClip {go_fla.Level_10_Points_169}Uses:454 455Used by:Timeline
Symbol 562 MovieClipUses:448Used by:Timeline
Symbol 563 MovieClip {go_fla.Level_10_Walls_171}Uses:443 444 445 442 510Used by:Timeline
Symbol 564 TextUses:64Used by:Timeline
Symbol 565 GraphicUsed by:569
Symbol 566 GraphicUsed by:569
Symbol 567 GraphicUsed by:569
Symbol 568 GraphicUsed by:569
Symbol 569 MovieClipUses:418 424 565 429 566 434 567 490 487 494 568Used by:Timeline
Symbol 570 GraphicUsed by:Timeline
Symbol 571 MovieClipUses:450Used by:572
Symbol 572 MovieClipUses:571Used by:Timeline
Symbol 573 MovieClip {go_fla.Points_175}Uses:454 455Used by:Timeline
Symbol 574 MovieClipUses:448Used by:Timeline
Symbol 575 MovieClip {go_fla.wall_2_178}Uses:440Used by:577 632 650 661 703 733 744 767 774 799 819 830
Symbol 576 MovieClip {go_fla.wall_1_179}Uses:440Used by:577 632 650 661 703 744 767 807
Symbol 577 MovieClip {go_fla.Walls_177}Uses:444 575 442 445 510 443 576Used by:Timeline
Symbol 578 TextUses:64Used by:Timeline
Symbol 579 TextUses:64Used by:587
Symbol 580 TextUses:64Used by:587
Symbol 581 GraphicUses:401Used by:586
Symbol 582 MovieClip {go_fla.Basket_183}Uses:212 220Used by:583
Symbol 583 MovieClip {go_fla.Basket_Move_182}Uses:582Used by:586
Symbol 584 GraphicUsed by:586
Symbol 585 GraphicUsed by:586
Symbol 586 MovieClip {go_fla.Tutorial_3_Movie_181}Uses:113 581 583 230 584 208 189 224 227 585Used by:587
Symbol 587 MovieClipUses:73 98 579 580 586Used by:Timeline
Symbol 588 GraphicUsed by:596
Symbol 589 GraphicUsed by:596
Symbol 590 GraphicUsed by:591
Symbol 591 MovieClipUses:590Used by:596 607 672
Symbol 592 GraphicUsed by:596
Symbol 593 GraphicUsed by:594
Symbol 594 MovieClipUses:593Used by:596 607 643
Symbol 595 GraphicUsed by:596
Symbol 596 MovieClipUses:418 537 487 588 500 490 424 589 591 429 592 555 594 595Used by:Timeline
Symbol 597 MovieClip {go_fla.Points_187}Uses:454 455Used by:Timeline
Symbol 598 MovieClipUses:448Used by:Timeline
Symbol 599 MovieClip {go_fla.wall_2_190}Uses:440Used by:601
Symbol 600 MovieClip {go_fla.wall_3_191}Uses:440Used by:601
Symbol 601 MovieClip {go_fla.Walls_189}Uses:443 444 445 442 599 600Used by:Timeline
Symbol 602 TextUses:64Used by:Timeline
Symbol 603 MovieClipUses:450Used by:604
Symbol 604 MovieClipUses:603Used by:Timeline
Symbol 605 GraphicUsed by:607
Symbol 606 GraphicUsed by:607
Symbol 607 MovieClipUses:418 490 487 605 541 591 606 500 594 555 494 429Used by:Timeline
Symbol 608 GraphicUsed by:Timeline
Symbol 609 MovieClip {go_fla.Points_195}Uses:454 455Used by:Timeline
Symbol 610 MovieClip {go_fla.Stars_196}Uses:448Used by:Timeline
Symbol 611 MovieClip {go_fla.wall_1_198}Uses:440Used by:614
Symbol 612 MovieClip {go_fla.wall_2_199}Uses:440Used by:614
Symbol 613 MovieClip {go_fla.wall_3_200}Uses:440Used by:614
Symbol 614 MovieClipUses:444 445 611 612 613Used by:Timeline
Symbol 615 TextUses:64Used by:Timeline
Symbol 616 GraphicUsed by:619
Symbol 617 GraphicUsed by:619
Symbol 618 GraphicUsed by:619
Symbol 619 MovieClipUses:418 490 494 492 496 616 424 432 429 617 555 618 520Used by:Timeline
Symbol 620 GraphicUsed by:Timeline
Symbol 621 MovieClipUses:450Used by:623
Symbol 622 MovieClipUses:450Used by:623
Symbol 623 MovieClipUses:621 622Used by:Timeline
Symbol 624 MovieClip {go_fla.Points_205}Uses:454 455Used by:Timeline
Symbol 625 MovieClipUses:448Used by:Timeline
Symbol 626 MovieClip {go_fla.wall_1_208}Uses:440Used by:632
Symbol 627 GraphicUsed by:628
Symbol 628 MovieClipUses:627Used by:629 630 701 732 773
Symbol 629 MovieClip {go_fla.break_1_209}Uses:628Used by:632
Symbol 630 MovieClip {go_fla.break_1_211}Uses:628Used by:632 650 703 733 791 819 830
Symbol 631 MovieClip {go_fla.wall_1_212}Uses:440Used by:632
Symbol 632 MovieClip {go_fla.Walls_207}Uses:444 445 442 575 626 629 576 630 631Used by:Timeline
Symbol 633 TextUses:64Used by:Timeline
Symbol 634 TextUses:64Used by:638
Symbol 635 TextUses:64Used by:638
Symbol 636 GraphicUsed by:637
Symbol 637 MovieClip {go_fla.Tutorial_4_Movie_214}Uses:113 473 426 264 208 636 186 282Used by:638
Symbol 638 MovieClipUses:73 98 634 635 637Used by:Timeline
Symbol 639 GraphicUsed by:643
Symbol 640 GraphicUsed by:643
Symbol 641 GraphicUsed by:643
Symbol 642 GraphicUsed by:643
Symbol 643 MovieClipUses:418 520 594 639 424 429 640 641 541 642Used by:Timeline
Symbol 644 GraphicUsed by:Timeline
Symbol 645 MovieClipUses:450Used by:646
Symbol 646 MovieClipUses:645Used by:Timeline
Symbol 647 MovieClip {go_fla.Points_218}Uses:454 455Used by:Timeline
Symbol 648 MovieClipUses:448Used by:Timeline
Symbol 649 MovieClip {go_fla.wall_1_221}Uses:440Used by:650
Symbol 650 MovieClip {go_fla.Walls_220}Uses:444 576 445 442 575 630 649Used by:Timeline
Symbol 651 TextUses:64Used by:Timeline
Symbol 652 GraphicUsed by:655
Symbol 653 GraphicUsed by:655
Symbol 654 GraphicUsed by:655
Symbol 655 MovieClipUses:418 652 424 653 429 432 490 654Used by:Timeline
Symbol 656 GraphicUsed by:Timeline
Symbol 657 MovieClipUses:450Used by:658
Symbol 658 MovieClipUses:657Used by:Timeline
Symbol 659 MovieClip {go_fla.Points_225}Uses:454 455Used by:Timeline
Symbol 660 MovieClipUses:448Used by:Timeline
Symbol 661 MovieClip {go_fla.Walls_227}Uses:444 576 445 575 510 443 441Used by:Timeline
Symbol 662 TextUses:64Used by:Timeline
Symbol 663 TextUses:64Used by:667
Symbol 664 TextUses:64Used by:667
Symbol 665 GraphicUsed by:666
Symbol 666 MovieClip {go_fla.Tutorial_5_Movie_229}Uses:113 473 426 541 176 264 665 208 183 193Used by:667
Symbol 667 MovieClipUses:73 98 663 664 666Used by:Timeline
Symbol 668 GraphicUsed by:672
Symbol 669 GraphicUsed by:672
Symbol 670 GraphicUsed by:672
Symbol 671 GraphicUsed by:672
Symbol 672 MovieClipUses:418 668 424 490 487 669 494 555 429 670 671 591Used by:Timeline
Symbol 673 GraphicUsed by:674
Symbol 674 MovieClipUses:673Used by:Timeline
Symbol 675 MovieClip {go_fla.Points_232}Uses:454 455Used by:Timeline
Symbol 676 MovieClipUses:448Used by:Timeline
Symbol 677 MovieClip {go_fla.wall_2_235}Uses:440Used by:682
Symbol 678 MovieClip {go_fla.wall_3_236}Uses:440Used by:682
Symbol 679 MovieClip {go_fla.wall_4_237}Uses:440Used by:682
Symbol 680 MovieClip {go_fla.wall_5_238}Uses:440Used by:682
Symbol 681 MovieClip {go_fla.wall_6_239}Uses:440Used by:682
Symbol 682 MovieClipUses:444 445 677 678 679 680 510 681Used by:Timeline
Symbol 683 MovieClipUses:450Used by:684
Symbol 684 MovieClipUses:683Used by:Timeline
Symbol 685 TextUses:64Used by:Timeline
Symbol 686 GraphicUsed by:695
Symbol 687 GraphicUsed by:695
Symbol 688 GraphicUsed by:695
Symbol 689 GraphicUsed by:695
Symbol 690 GraphicUsed by:695
Symbol 691 GraphicUsed by:692
Symbol 692 MovieClipUses:691Used by:695
Symbol 693 GraphicUsed by:695
Symbol 694 GraphicUsed by:695
Symbol 695 MovieClipUses:686 424 687 429 688 492 496 689 432 494 690 692 693 487 520 694Used by:Timeline
Symbol 696 GraphicUsed by:Timeline
Symbol 697 MovieClipUses:450Used by:698
Symbol 698 MovieClipUses:697Used by:Timeline
Symbol 699 MovieClip {go_fla.Points_246}Uses:454 455Used by:Timeline
Symbol 700 MovieClipUses:448Used by:Timeline
Symbol 701 MovieClip {go_fla.break_1_249}Uses:628Used by:703
Symbol 702 MovieClip {go_fla.wall_2_250}Uses:440Used by:703
Symbol 703 MovieClip {go_fla.Walls_248}Uses:444 575 445 442 443 630 576 701 702Used by:Timeline
Symbol 704 TextUses:64Used by:Timeline
Symbol 705 BitmapUsed by:706
Symbol 706 GraphicUses:705Used by:Timeline
Symbol 707 GraphicUsed by:709 736
Symbol 708 GraphicUsed by:709
Symbol 709 MovieClip {go_fla.StarterW_R_Sprite_252}Uses:707 410 708Used by:710
Symbol 710 MovieClip {go_fla.StarterW_R_Mov_251}Uses:709Used by:Timeline
Symbol 711 GraphicUsed by:713
Symbol 712 GraphicUsed by:713
Symbol 713 MovieClipUses:711 421 423 712Used by:724 740 748 761 770 781 795 804 813 824 835
Symbol 714 GraphicUsed by:724
Symbol 715 GraphicUsed by:724
Symbol 716 GraphicUsed by:717
Symbol 717 MovieClipUses:716Used by:724 740 748 761 770 781 795 804 813 824 835
Symbol 718 GraphicUsed by:724
Symbol 719 GraphicUsed by:720
Symbol 720 MovieClipUses:719Used by:724 761 781 835
Symbol 721 GraphicUsed by:724
Symbol 722 GraphicUsed by:723
Symbol 723 MovieClipUses:722Used by:724 740 748 761 770 795 804 813 824 835
Symbol 724 MovieClipUses:418 713 714 421 715 717 718 720 721 723 290 496Used by:Timeline
Symbol 725 GraphicUsed by:726
Symbol 726 MovieClipUses:725Used by:Timeline
Symbol 727 GraphicUsed by:728
Symbol 728 MovieClipUses:727Used by:Timeline
Symbol 729 MovieClip {go_fla.Points_260}Uses:454 455Used by:Timeline
Symbol 730 MovieClipUses:448Used by:Timeline
Symbol 731 MovieClip {go_fla.wall_1_263}Uses:440Used by:733
Symbol 732 MovieClip {go_fla.break_2_264}Uses:628Used by:733 774 799
Symbol 733 MovieClip {go_fla.Walls_262}Uses:444 510 575 445 630 731 732Used by:Timeline
Symbol 734 TextUses:64Used by:Timeline
Symbol 735 GraphicUsed by:736
Symbol 736 MovieClip {go_fla.StarterW_L_Sprite_266}Uses:707 410 735Used by:737
Symbol 737 MovieClip {go_fla.StarterW_L_Mov_265}Uses:736Used by:Timeline
Symbol 738 GraphicUsed by:740
Symbol 739 GraphicUsed by:740
Symbol 740 MovieClipUses:418 713 738 421 739 717 723Used by:Timeline
Symbol 741 MovieClip {go_fla.Points_268}Uses:454 455Used by:Timeline
Symbol 742 MovieClipUses:448Used by:Timeline
Symbol 743 MovieClip {go_fla.wall_3_271}Uses:440Used by:744 830
Symbol 744 MovieClip {go_fla.Walls_270}Uses:444 445 442 576 575 443 743Used by:Timeline
Symbol 745 TextUses:64Used by:Timeline
Symbol 746 GraphicUsed by:748
Symbol 747 GraphicUsed by:748
Symbol 748 MovieClipUses:295 713 746 717 747 723Used by:Timeline
Symbol 749 MovieClip {go_fla.Points_273}Uses:454 455Used by:Timeline
Symbol 750 MovieClipUses:448Used by:Timeline
Symbol 751 MovieClip {go_fla.wall_1_276}Uses:440Used by:753 774 807 842
Symbol 752 MovieClip {go_fla.wall_1_277}Uses:440Used by:753
Symbol 753 MovieClip {go_fla.Wall_275}Uses:444 445 442 751 443 752Used by:Timeline
Symbol 754 TextUses:64Used by:Timeline
Symbol 755 GraphicUsed by:761
Symbol 756 GraphicUsed by:761
Symbol 757 GraphicUsed by:761
Symbol 758 GraphicUsed by:761
Symbol 759 GraphicUsed by:760
Symbol 760 MovieClipUses:759Used by:761 781 795 824 835
Symbol 761 MovieClipUses:755 713 756 717 757 423 758 720 286 496 760 723Used by:Timeline
Symbol 762 TextUses:64Used by:Timeline
Symbol 763 MovieClipUses:450Used by:764
Symbol 764 MovieClipUses:763Used by:Timeline
Symbol 765 MovieClip {go_fla.Points_282}Uses:454 455Used by:Timeline
Symbol 766 MovieClipUses:448Used by:Timeline
Symbol 767 MovieClip {go_fla.Walls_284}Uses:444 510 576 575 442 443 445Used by:Timeline
Symbol 768 GraphicUsed by:770
Symbol 769 GraphicUsed by:770
Symbol 770 MovieClipUses:551 713 717 768 423 769 723Used by:Timeline
Symbol 771 MovieClip {go_fla.Points_286}Uses:454 455Used by:Timeline
Symbol 772 MovieClipUses:448Used by:Timeline
Symbol 773 MovieClip {go_fla.break_1_289}Uses:628Used by:774
Symbol 774 MovieClip {go_fla.Walls_288}Uses:444 575 443 445 441 442 773 751 732Used by:Timeline
Symbol 775 MovieClipUses:450Used by:776
Symbol 776 MovieClipUses:775Used by:Timeline
Symbol 777 TextUses:64Used by:Timeline
Symbol 778 GraphicUsed by:Timeline
Symbol 779 GraphicUsed by:781
Symbol 780 GraphicUsed by:781
Symbol 781 MovieClipUses:551 760 496 720 713 779 421 717 780 423Used by:Timeline
Symbol 782 GraphicUsed by:Timeline
Symbol 783 TextUses:64Used by:Timeline
Symbol 784 MovieClipUses:447Used by:785
Symbol 785 MovieClipUses:784Used by:786
Symbol 786 MovieClipUses:785Used by:Timeline
Symbol 787 MovieClip {go_fla.Level_9_Points_296}Uses:454 455Used by:Timeline
Symbol 788 MovieClipUses:447Used by:789
Symbol 789 MovieClipUses:788Used by:Timeline
Symbol 790 MovieClip {go_fla.wall_3_300}Uses:440Used by:791
Symbol 791 MovieClip {go_fla.Level_9_Walls_299}Uses:444 443 445 510 630 790Used by:Timeline
Symbol 792 GraphicUsed by:795 813
Symbol 793 GraphicUsed by:795
Symbol 794 GraphicUsed by:795
Symbol 795 MovieClipUses:113 792 713 423 793 760 496 794 717 723 421Used by:Timeline
Symbol 796 TextUses:64Used by:Timeline
Symbol 797 MovieClip {go_fla.Points_302}Uses:454 455Used by:Timeline
Symbol 798 MovieClipUses:448Used by:Timeline
Symbol 799 MovieClip {go_fla.Walls_304}Uses:444 575 442 443 445 732Used by:Timeline
Symbol 800 MovieClipUses:450Used by:801
Symbol 801 MovieClipUses:800Used by:Timeline
Symbol 802 GraphicUsed by:804
Symbol 803 GraphicUsed by:804
Symbol 804 MovieClipUses:418 802 421 713 717 803 723Used by:Timeline
Symbol 805 MovieClip {go_fla.Points_308}Uses:454 455Used by:Timeline
Symbol 806 MovieClipUses:448Used by:Timeline
Symbol 807 MovieClip {go_fla.Walls_310}Uses:444 510 445 442 443 751 576Used by:Timeline
Symbol 808 TextUses:64Used by:Timeline
Symbol 809 GraphicUsed by:813
Symbol 810 GraphicUsed by:813
Symbol 811 GraphicUsed by:813
Symbol 812 GraphicUsed by:813
Symbol 813 MovieClipUses:809 792 713 810 723 421 811 717 423 812Used by:Timeline
Symbol 814 MovieClip {go_fla.Points_312}Uses:454 455Used by:Timeline
Symbol 815 MovieClipUses:448Used by:Timeline
Symbol 816 GraphicUsed by:817
Symbol 817 MovieClipUses:816Used by:818
Symbol 818 MovieClip {go_fla.thorns_1_315}Uses:817Used by:819
Symbol 819 MovieClip {go_fla.Walls_314}Uses:444 443 445 510 575 630 818Used by:Timeline
Symbol 820 TextUses:64Used by:Timeline
Symbol 821 GraphicUsed by:824
Symbol 822 GraphicUsed by:824
Symbol 823 GraphicUsed by:824
Symbol 824 MovieClipUses:551 821 723 713 421 822 717 760 823 496 423Used by:Timeline
Symbol 825 TextUses:64Used by:Timeline
Symbol 826 MovieClipUses:450Used by:827
Symbol 827 MovieClipUses:826Used by:Timeline
Symbol 828 MovieClip {go_fla.Points_320}Uses:454 455Used by:Timeline
Symbol 829 MovieClipUses:448Used by:Timeline
Symbol 830 MovieClip {go_fla.Walls_322}Uses:444 743 575 443 445 630 510Used by:Timeline
Symbol 831 GraphicUsed by:835
Symbol 832 GraphicUsed by:835
Symbol 833 GraphicUsed by:835
Symbol 834 GraphicUsed by:835
Symbol 835 MovieClipUses:831 421 720 713 717 496 760 288 832 833 723 834Used by:Timeline
Symbol 836 MovieClipUses:450Used by:838
Symbol 837 MovieClipUses:450Used by:838
Symbol 838 MovieClipUses:836 837Used by:Timeline
Symbol 839 MovieClip {go_fla.Points_327}Uses:454 455Used by:Timeline
Symbol 840 MovieClipUses:448Used by:Timeline
Symbol 841 MovieClip {go_fla.wall_1_330}Uses:440Used by:842
Symbol 842 MovieClip {go_fla.Walls_329}Uses:444 442 445 841 443 751 441Used by:Timeline
Symbol 843 TextUses:64Used by:Timeline
Symbol 844 GraphicUses:170Used by:Timeline
Symbol 845 GraphicUsed by:Timeline
Symbol 846 TextUses:64Used by:Timeline
Symbol 847 TextUses:64Used by:851
Symbol 848 TextUses:64Used by:851
Symbol 849 TextUses:64Used by:851
Symbol 850 GraphicUsed by:851
Symbol 851 ButtonUses:847 848 849 850Used by:Timeline
Symbol 852 EditableTextUses:64Used by:Timeline
Symbol 853 EditableTextUses:64Used by:Timeline
Symbol 854 TextUses:64Used by:Timeline

Instance Names

"mcLoadLogoBg"Frame 1Symbol 78 MovieClip {go_fla.mcLoadLogo_1}
"mcKingLoader"Frame 2Symbol 94 MovieClip {com.midasplayer.DragonLoader}
"intro"Frame 3Symbol 326 MovieClip {go_fla.Intro_71}
"btnKing"Frame 4Symbol 330 Button
"page"Frame 4Symbol 371 MovieClip {go_fla.Page_MainMenu_74}
"page"Frame 5Symbol 383 MovieClip {go_fla.Page_SelectLevel_85}
"page"Frame 6Symbol 400 MovieClip {go_fla.Page_Credits_91}
"starter"Frame 15Symbol 417 MovieClip {go_fla.Starter_R_Mov_93}
"walls"Frame 15Symbol 446 MovieClip {go_fla.Walls_105}
"stars"Frame 15Symbol 449 MovieClip {go_fla.Stars_112}
"bridges"Frame 15Symbol 452 MovieClip
"points"Frame 15Symbol 456 MovieClip {go_fla.Points_117}
"fldLevel"Frame 15Symbol 460 EditableText
"fieldStars"Frame 15Symbol 461 EditableText
"fieldScore"Frame 15Symbol 462 EditableText
"fldTimer"Frame 15Symbol 463 EditableText
"btnFastRestart"Frame 15Symbol 466 Button
"btnFastMenu"Frame 15Symbol 469 Button
"btnKing"Frame 15Symbol 470 Button
"tutorial"Frame 15Symbol 476 MovieClip
"starter"Frame 16Symbol 484 MovieClip {go_fla.Starter_L_Mov_126}
"bridges"Frame 16Symbol 507 MovieClip
"points"Frame 16Symbol 508 MovieClip {go_fla.Points_139}
"stars"Frame 16Symbol 509 MovieClip
"walls"Frame 16Symbol 513 MovieClip {go_fla.Walls_141}
"springs"Frame 16Symbol 516 MovieClip
"starter"Frame 17Symbol 524 MovieClip {go_fla.Starter_R_Mov_Mask_149}
"points"Frame 17Symbol 526 MovieClip {go_fla.Points_150}
"stars"Frame 17Symbol 527 MovieClip
"walls"Frame 17Symbol 528 MovieClip {go_fla.Walls_152}
"springs"Frame 17Symbol 529 MovieClip
"tutorial"Frame 17Symbol 535 MovieClip
"starter"Frame 18Symbol 417 MovieClip {go_fla.Starter_R_Mov_93}
"walls"Frame 18Symbol 545 MovieClip {go_fla.Walls_159}
"stars"Frame 18Symbol 546 MovieClip
"points"Frame 18Symbol 547 MovieClip {go_fla.Points_162}
"bridges"Frame 18Symbol 549 MovieClip {go_fla.Bridges_163}
"starter"Frame 19Symbol 484 MovieClip {go_fla.Starter_L_Mov_126}
"bridges"Frame 19Symbol 560 MovieClip {go_fla.Level_10_Bridges_167}
"points"Frame 19Symbol 561 MovieClip {go_fla.Level_10_Points_169}
"stars"Frame 19Symbol 562 MovieClip
"walls"Frame 19Symbol 563 MovieClip {go_fla.Level_10_Walls_171}
"starter"Frame 20Symbol 417 MovieClip {go_fla.Starter_R_Mov_93}
"bridges"Frame 20Symbol 572 MovieClip
"points"Frame 20Symbol 573 MovieClip {go_fla.Points_175}
"stars"Frame 20Symbol 574 MovieClip
"walls"Frame 20Symbol 577 MovieClip {go_fla.Walls_177}
"tutorial"Frame 20Symbol 587 MovieClip
"starter"Frame 21Symbol 484 MovieClip {go_fla.Starter_L_Mov_126}
"points"Frame 21Symbol 597 MovieClip {go_fla.Points_187}
"stars"Frame 21Symbol 598 MovieClip
"walls"Frame 21Symbol 601 MovieClip {go_fla.Walls_189}
"bridges"Frame 21Symbol 604 MovieClip
"starter"Frame 22Symbol 417 MovieClip {go_fla.Starter_R_Mov_93}
"points"Frame 22Symbol 609 MovieClip {go_fla.Points_195}
"stars"Frame 22Symbol 610 MovieClip {go_fla.Stars_196}
"walls"Frame 22Symbol 614 MovieClip
"bridges"Frame 23Symbol 623 MovieClip
"points"Frame 23Symbol 624 MovieClip {go_fla.Points_205}
"stars"Frame 23Symbol 625 MovieClip
"walls"Frame 23Symbol 632 MovieClip {go_fla.Walls_207}
"tutorial"Frame 23Symbol 638 MovieClip
"starter"Frame 24Symbol 484 MovieClip {go_fla.Starter_L_Mov_126}
"bridges"Frame 24Symbol 646 MovieClip
"points"Frame 24Symbol 647 MovieClip {go_fla.Points_218}
"stars"Frame 24Symbol 648 MovieClip
"walls"Frame 24Symbol 650 MovieClip {go_fla.Walls_220}
"bridges"Frame 25Symbol 658 MovieClip
"points"Frame 25Symbol 659 MovieClip {go_fla.Points_225}
"stars"Frame 25Symbol 660 MovieClip
"walls"Frame 25Symbol 661 MovieClip {go_fla.Walls_227}
"tutorial"Frame 25Symbol 667 MovieClip
"starter"Frame 26Symbol 417 MovieClip {go_fla.Starter_R_Mov_93}
"points"Frame 26Symbol 675 MovieClip {go_fla.Points_232}
"stars"Frame 26Symbol 676 MovieClip
"walls"Frame 26Symbol 682 MovieClip
"bridges"Frame 26Symbol 684 MovieClip
"starter"Frame 27Symbol 484 MovieClip {go_fla.Starter_L_Mov_126}
"bridges"Frame 27Symbol 698 MovieClip
"points"Frame 27Symbol 699 MovieClip {go_fla.Points_246}
"stars"Frame 27Symbol 700 MovieClip
"walls"Frame 27Symbol 703 MovieClip {go_fla.Walls_248}
"starter"Frame 28Symbol 710 MovieClip {go_fla.StarterW_R_Mov_251}
"points"Frame 28Symbol 729 MovieClip {go_fla.Points_260}
"stars"Frame 28Symbol 730 MovieClip
"walls"Frame 28Symbol 733 MovieClip {go_fla.Walls_262}
"starter"Frame 29Symbol 737 MovieClip {go_fla.StarterW_L_Mov_265}
"points"Frame 29Symbol 741 MovieClip {go_fla.Points_268}
"stars"Frame 29Symbol 742 MovieClip
"walls"Frame 29Symbol 744 MovieClip {go_fla.Walls_270}
"points"Frame 30Symbol 749 MovieClip {go_fla.Points_273}
"stars"Frame 30Symbol 750 MovieClip
"walls"Frame 30Symbol 753 MovieClip {go_fla.Wall_275}
"starter"Frame 31Symbol 710 MovieClip {go_fla.StarterW_R_Mov_251}
"bridges"Frame 31Symbol 764 MovieClip
"points"Frame 31Symbol 765 MovieClip {go_fla.Points_282}
"stars"Frame 31Symbol 766 MovieClip
"walls"Frame 31Symbol 767 MovieClip {go_fla.Walls_284}
"starter"Frame 32Symbol 737 MovieClip {go_fla.StarterW_L_Mov_265}
"points"Frame 32Symbol 771 MovieClip {go_fla.Points_286}
"stars"Frame 32Symbol 772 MovieClip
"walls"Frame 32Symbol 774 MovieClip {go_fla.Walls_288}
"bridges"Frame 32Symbol 776 MovieClip
"starter"Frame 33Symbol 710 MovieClip {go_fla.StarterW_R_Mov_251}
"bridges"Frame 33Symbol 786 MovieClip
"points"Frame 33Symbol 787 MovieClip {go_fla.Level_9_Points_296}
"stars"Frame 33Symbol 789 MovieClip
"walls"Frame 33Symbol 791 MovieClip {go_fla.Level_9_Walls_299}
"points"Frame 34Symbol 797 MovieClip {go_fla.Points_302}
"stars"Frame 34Symbol 798 MovieClip
"walls"Frame 34Symbol 799 MovieClip {go_fla.Walls_304}
"bridges"Frame 34Symbol 801 MovieClip
"points"Frame 35Symbol 805 MovieClip {go_fla.Points_308}
"stars"Frame 35Symbol 806 MovieClip
"walls"Frame 35Symbol 807 MovieClip {go_fla.Walls_310}
"starter"Frame 36Symbol 737 MovieClip {go_fla.StarterW_L_Mov_265}
"points"Frame 36Symbol 814 MovieClip {go_fla.Points_312}
"stars"Frame 36Symbol 815 MovieClip
"walls"Frame 36Symbol 819 MovieClip {go_fla.Walls_314}
"bridges"Frame 37Symbol 827 MovieClip
"points"Frame 37Symbol 828 MovieClip {go_fla.Points_320}
"stars"Frame 37Symbol 829 MovieClip
"walls"Frame 37Symbol 830 MovieClip {go_fla.Walls_322}
"bridges"Frame 38Symbol 838 MovieClip
"points"Frame 38Symbol 839 MovieClip {go_fla.Points_327}
"stars"Frame 38Symbol 840 MovieClip
"walls"Frame 38Symbol 842 MovieClip {go_fla.Walls_329}
"btnSubmit"Frame 39Symbol 851 Button
"btnMenu"Frame 39Symbol 103 Button
"fldName"Frame 39Symbol 852 EditableText
"fldResult"Frame 39Symbol 853 EditableText
"bar"Symbol 78 MovieClip {go_fla.mcLoadLogo_1} Frame 1Symbol 77 MovieClip
"bg"Symbol 86 MovieClip {go_fla.mcBannedSign_5} Frame 1Symbol 83 MovieClip
"fireLogoHolder"Symbol 94 MovieClip {com.midasplayer.DragonLoader} Frame 1Symbol 81 MovieClip {go_fla.mcFireLogo_4}
"bannedSign"Symbol 94 MovieClip {com.midasplayer.DragonLoader} Frame 1Symbol 86 MovieClip {go_fla.mcBannedSign_5}
"mcPlayBtn"Symbol 94 MovieClip {com.midasplayer.DragonLoader} Frame 1Symbol 93 MovieClip {go_fla.mcPlayBtn_7}
"btnMainMenu"Symbol 121 MovieClip {FastMenuSprite} Frame 1Symbol 103 Button
"btnResumeGame"Symbol 121 MovieClip {FastMenuSprite} Frame 1Symbol 107 Button
"btnMusicOff"Symbol 121 MovieClip {FastMenuSprite} Frame 1Symbol 114 Button
"btnMusicOn"Symbol 121 MovieClip {FastMenuSprite} Frame 1Symbol 119 Button
"btnSoundOff"Symbol 121 MovieClip {FastMenuSprite} Frame 1Symbol 114 Button
"btnSoundOn"Symbol 121 MovieClip {FastMenuSprite} Frame 1Symbol 119 Button
"btnWalktrough"Symbol 121 MovieClip {FastMenuSprite} Frame 1Symbol 71 Button {BtnWalkthrough}
"object"Symbol 177 MovieClip {go_fla.StickAlert_21} Frame 1Symbol 176 MovieClip
"object"Symbol 183 MovieClip {go_fla.SpringAlert_23} Frame 1Symbol 182 MovieClip
"hand"Symbol 187 MovieClip {go_fla.HandCursor_27} Frame 1Symbol 186 MovieClip {go_fla.HandSprite_28}
"object"Symbol 190 MovieClip {Cursor} Frame 1Symbol 177 MovieClip {go_fla.StickAlert_21}
"object"Symbol 190 MovieClip {Cursor} Frame 2Symbol 183 MovieClip {go_fla.SpringAlert_23}
"object"Symbol 190 MovieClip {Cursor} Frame 3Symbol 187 MovieClip {go_fla.HandCursor_27}
"object"Symbol 190 MovieClip {Cursor} Frame 4Symbol 189 MovieClip
"anim"Symbol 193 MovieClip {SpringActive} Frame 1Symbol 192 MovieClip {AnimSpring}
"ball"Symbol 208 MovieClip {RedBall} Frame 1Symbol 196 MovieClip
"ball"Symbol 208 MovieClip {RedBall} Frame 2Symbol 199 MovieClip
"field"Symbol 294 MovieClip {btnDownState} Frame 1Symbol 293 EditableText
"field"Symbol 298 MovieClip {btnOverState} Frame 1Symbol 297 EditableText
"field"Symbol 300 MovieClip {btnUpState} Frame 1Symbol 299 EditableText
"field"Symbol 314 MovieClip {ScoreMessage} Frame 1Symbol 313 EditableText
"field"Symbol 316 MovieClip {TextMessage} Frame 1Symbol 315 EditableText
"btnStartGame"Symbol 371 MovieClip {go_fla.Page_MainMenu_74} Frame 1Symbol 337 Button
"btnMoreGames"Symbol 371 MovieClip {go_fla.Page_MainMenu_74} Frame 1Symbol 343 Button
"btnHiScores"Symbol 371 MovieClip {go_fla.Page_MainMenu_74} Frame 1Symbol 348 Button
"btnCredits"Symbol 371 MovieClip {go_fla.Page_MainMenu_74} Frame 1Symbol 353 Button
"btnMusicSwitch"Symbol 371 MovieClip {go_fla.Page_MainMenu_74} Frame 1Symbol 358 Button
"btnSoundSwitch"Symbol 371 MovieClip {go_fla.Page_MainMenu_74} Frame 1Symbol 364 Button
"btnWalkthrough"Symbol 371 MovieClip {go_fla.Page_MainMenu_74} Frame 1Symbol 71 Button {BtnWalkthrough}
"btnnAddToWebsite"Symbol 371 MovieClip {go_fla.Page_MainMenu_74} Frame 1Symbol 368 Button
"btnMainMenu"Symbol 383 MovieClip {go_fla.Page_SelectLevel_85} Frame 1Symbol 103 Button
"btnScrollUp"Symbol 383 MovieClip {go_fla.Page_SelectLevel_85} Frame 1Symbol 377 Button
"btnScrollDown"Symbol 383 MovieClip {go_fla.Page_SelectLevel_85} Frame 1Symbol 377 Button
"preview"Symbol 383 MovieClip {go_fla.Page_SelectLevel_85} Frame 1Symbol 379 MovieClip
"levelsList"Symbol 383 MovieClip {go_fla.Page_SelectLevel_85} Frame 1Symbol 382 MovieClip
"btnMainMenu"Symbol 400 MovieClip {go_fla.Page_Credits_91} Frame 1Symbol 103 Button
"num"Symbol 416 MovieClip {go_fla.Starter_R_Sprite_94} Frame 1Symbol 410 MovieClip {go_fla.Numbers_95}
"starter"Symbol 417 MovieClip {go_fla.Starter_R_Mov_93} Frame 1Symbol 416 MovieClip {go_fla.Starter_R_Sprite_94}
"size"Symbol 441 MovieClip {go_fla.wall_1_106} Frame 1Symbol 440 MovieClip
"size"Symbol 442 MovieClip {go_fla.wall_2_108} Frame 1Symbol 440 MovieClip
"size"Symbol 443 MovieClip {go_fla.wall_3_109} Frame 1Symbol 440 MovieClip
"size"Symbol 444 MovieClip {go_fla.wall_4_110} Frame 1Symbol 440 MovieClip
"size"Symbol 445 MovieClip {go_fla.wall_5_111} Frame 1Symbol 440 MovieClip
"wall_0"Symbol 446 MovieClip {go_fla.Walls_105} Frame 1Symbol 441 MovieClip {go_fla.wall_1_106}
"wall_2"Symbol 446 MovieClip {go_fla.Walls_105} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"star_13"Symbol 449 MovieClip {go_fla.Stars_112} Frame 1Symbol 448 MovieClip
"star_13"Symbol 449 MovieClip {go_fla.Stars_112} Frame 1Symbol 448 MovieClip
"star_13"Symbol 449 MovieClip {go_fla.Stars_112} Frame 1Symbol 448 MovieClip
"star_13"Symbol 449 MovieClip {go_fla.Stars_112} Frame 1Symbol 448 MovieClip
"star_13"Symbol 449 MovieClip {go_fla.Stars_112} Frame 1Symbol 448 MovieClip
"start"Symbol 456 MovieClip {go_fla.Points_117} Frame 1Symbol 454 MovieClip
"end"Symbol 456 MovieClip {go_fla.Points_117} Frame 1Symbol 455 MovieClip
"num"Symbol 483 MovieClip {go_fla.Starter_L_Sprite_127} Frame 1Symbol 410 MovieClip {go_fla.Numbers_95}
"starter"Symbol 484 MovieClip {go_fla.Starter_L_Mov_126} Frame 1Symbol 483 MovieClip {go_fla.Starter_L_Sprite_127}
"start"Symbol 508 MovieClip {go_fla.Points_139} Frame 1Symbol 454 MovieClip
"end"Symbol 508 MovieClip {go_fla.Points_139} Frame 1Symbol 455 MovieClip
"size"Symbol 510 MovieClip {go_fla.wall_1_142} Frame 1Symbol 440 MovieClip
"size"Symbol 511 MovieClip {go_fla.wall_1_143} Frame 1Symbol 440 MovieClip
"size"Symbol 512 MovieClip {go_fla.wall_1_144} Frame 1Symbol 440 MovieClip
"wall_0"Symbol 513 MovieClip {go_fla.Walls_141} Frame 1Symbol 441 MovieClip {go_fla.wall_1_106}
"wall_2"Symbol 513 MovieClip {go_fla.Walls_141} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"wall_2"Symbol 513 MovieClip {go_fla.Walls_141} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"wall_2"Symbol 513 MovieClip {go_fla.Walls_141} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"starter"Symbol 524 MovieClip {go_fla.Starter_R_Mov_Mask_149} Frame 1Symbol 416 MovieClip {go_fla.Starter_R_Sprite_94}
"start"Symbol 526 MovieClip {go_fla.Points_150} Frame 1Symbol 454 MovieClip
"end"Symbol 526 MovieClip {go_fla.Points_150} Frame 1Symbol 455 MovieClip
"wall_0"Symbol 528 MovieClip {go_fla.Walls_152} Frame 1Symbol 441 MovieClip {go_fla.wall_1_106}
"spring"Symbol 534 MovieClip {go_fla.Tutorial_2_Movie_155} Frame 54Symbol 193 MovieClip {SpringActive}
"size"Symbol 544 MovieClip {go_fla.wall_1_160} Frame 1Symbol 440 MovieClip
"wall_0"Symbol 545 MovieClip {go_fla.Walls_159} Frame 1Symbol 441 MovieClip {go_fla.wall_1_106}
"wall_2"Symbol 545 MovieClip {go_fla.Walls_159} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"wall_2"Symbol 545 MovieClip {go_fla.Walls_159} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"wall_2"Symbol 545 MovieClip {go_fla.Walls_159} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"start"Symbol 547 MovieClip {go_fla.Points_162} Frame 1Symbol 454 MovieClip
"end"Symbol 547 MovieClip {go_fla.Points_162} Frame 1Symbol 455 MovieClip
"bridge_1"Symbol 549 MovieClip {go_fla.Bridges_163} Frame 1Symbol 548 MovieClip
"bridge_1"Symbol 560 MovieClip {go_fla.Level_10_Bridges_167} Frame 1Symbol 548 MovieClip
"start"Symbol 561 MovieClip {go_fla.Level_10_Points_169} Frame 1Symbol 454 MovieClip
"end"Symbol 561 MovieClip {go_fla.Level_10_Points_169} Frame 1Symbol 455 MovieClip
"wall_2"Symbol 563 MovieClip {go_fla.Level_10_Walls_171} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"wall_2"Symbol 563 MovieClip {go_fla.Level_10_Walls_171} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"start"Symbol 573 MovieClip {go_fla.Points_175} Frame 1Symbol 454 MovieClip
"end"Symbol 573 MovieClip {go_fla.Points_175} Frame 1Symbol 455 MovieClip
"size"Symbol 575 MovieClip {go_fla.wall_2_178} Frame 1Symbol 440 MovieClip
"size"Symbol 576 MovieClip {go_fla.wall_1_179} Frame 1Symbol 440 MovieClip
"wall_2"Symbol 577 MovieClip {go_fla.Walls_177} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"wall_2"Symbol 577 MovieClip {go_fla.Walls_177} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"wall_2"Symbol 577 MovieClip {go_fla.Walls_177} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"door"Symbol 582 MovieClip {go_fla.Basket_183} Frame 1Symbol 220 MovieClip {BasketUp}
"sprite"Symbol 583 MovieClip {go_fla.Basket_Move_182} Frame 1Symbol 582 MovieClip {go_fla.Basket_183}
"basket"Symbol 586 MovieClip {go_fla.Tutorial_3_Movie_181} Frame 1Symbol 583 MovieClip {go_fla.Basket_Move_182}
"start"Symbol 597 MovieClip {go_fla.Points_187} Frame 1Symbol 454 MovieClip
"end"Symbol 597 MovieClip {go_fla.Points_187} Frame 1Symbol 455 MovieClip
"size"Symbol 599 MovieClip {go_fla.wall_2_190} Frame 1Symbol 440 MovieClip
"size"Symbol 600 MovieClip {go_fla.wall_3_191} Frame 1Symbol 440 MovieClip
"wall_2"Symbol 601 MovieClip {go_fla.Walls_189} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"wall_2"Symbol 601 MovieClip {go_fla.Walls_189} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"wall_2"Symbol 601 MovieClip {go_fla.Walls_189} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"start"Symbol 609 MovieClip {go_fla.Points_195} Frame 1Symbol 454 MovieClip
"end"Symbol 609 MovieClip {go_fla.Points_195} Frame 1Symbol 455 MovieClip
"star_13"Symbol 610 MovieClip {go_fla.Stars_196} Frame 1Symbol 448 MovieClip
"star_13"Symbol 610 MovieClip {go_fla.Stars_196} Frame 1Symbol 448 MovieClip
"star_13"Symbol 610 MovieClip {go_fla.Stars_196} Frame 1Symbol 448 MovieClip
"star_13"Symbol 610 MovieClip {go_fla.Stars_196} Frame 1Symbol 448 MovieClip
"star_13"Symbol 610 MovieClip {go_fla.Stars_196} Frame 1Symbol 448 MovieClip
"star_13"Symbol 610 MovieClip {go_fla.Stars_196} Frame 1Symbol 448 MovieClip
"size"Symbol 611 MovieClip {go_fla.wall_1_198} Frame 1Symbol 440 MovieClip
"size"Symbol 612 MovieClip {go_fla.wall_2_199} Frame 1Symbol 440 MovieClip
"size"Symbol 613 MovieClip {go_fla.wall_3_200} Frame 1Symbol 440 MovieClip
"start"Symbol 624 MovieClip {go_fla.Points_205} Frame 1Symbol 454 MovieClip
"end"Symbol 624 MovieClip {go_fla.Points_205} Frame 1Symbol 455 MovieClip
"size"Symbol 626 MovieClip {go_fla.wall_1_208} Frame 1Symbol 440 MovieClip
"size"Symbol 629 MovieClip {go_fla.break_1_209} Frame 1Symbol 628 MovieClip
"size"Symbol 630 MovieClip {go_fla.break_1_211} Frame 1Symbol 628 MovieClip
"size"Symbol 631 MovieClip {go_fla.wall_1_212} Frame 1Symbol 440 MovieClip
"wall_2"Symbol 632 MovieClip {go_fla.Walls_207} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"wall_2"Symbol 632 MovieClip {go_fla.Walls_207} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"brake"Symbol 632 MovieClip {go_fla.Walls_207} Frame 1Symbol 629 MovieClip {go_fla.break_1_209}
"brake"Symbol 632 MovieClip {go_fla.Walls_207} Frame 1Symbol 630 MovieClip {go_fla.break_1_211}
"hand"Symbol 637 MovieClip {go_fla.Tutorial_4_Movie_214} Frame 10Symbol 186 MovieClip {go_fla.HandSprite_28}
"start"Symbol 647 MovieClip {go_fla.Points_218} Frame 1Symbol 454 MovieClip
"end"Symbol 647 MovieClip {go_fla.Points_218} Frame 1Symbol 455 MovieClip
"size"Symbol 649 MovieClip {go_fla.wall_1_221} Frame 1Symbol 440 MovieClip
"wall_2"Symbol 650 MovieClip {go_fla.Walls_220} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"brake"Symbol 650 MovieClip {go_fla.Walls_220} Frame 1Symbol 630 MovieClip {go_fla.break_1_211}
"brake"Symbol 650 MovieClip {go_fla.Walls_220} Frame 1Symbol 630 MovieClip {go_fla.break_1_211}
"brake"Symbol 650 MovieClip {go_fla.Walls_220} Frame 1Symbol 630 MovieClip {go_fla.break_1_211}
"start"Symbol 659 MovieClip {go_fla.Points_225} Frame 1Symbol 454 MovieClip
"end"Symbol 659 MovieClip {go_fla.Points_225} Frame 1Symbol 455 MovieClip
"wall_0"Symbol 661 MovieClip {go_fla.Walls_227} Frame 1Symbol 441 MovieClip {go_fla.wall_1_106}
"object"Symbol 666 MovieClip {go_fla.Tutorial_5_Movie_229} Frame 116Symbol 183 MovieClip {go_fla.SpringAlert_23}
"spring"Symbol 666 MovieClip {go_fla.Tutorial_5_Movie_229} Frame 159Symbol 193 MovieClip {SpringActive}
"start"Symbol 675 MovieClip {go_fla.Points_232} Frame 1Symbol 454 MovieClip
"end"Symbol 675 MovieClip {go_fla.Points_232} Frame 1Symbol 455 MovieClip
"size"Symbol 677 MovieClip {go_fla.wall_2_235} Frame 1Symbol 440 MovieClip
"size"Symbol 678 MovieClip {go_fla.wall_3_236} Frame 1Symbol 440 MovieClip
"size"Symbol 679 MovieClip {go_fla.wall_4_237} Frame 1Symbol 440 MovieClip
"size"Symbol 680 MovieClip {go_fla.wall_5_238} Frame 1Symbol 440 MovieClip
"size"Symbol 681 MovieClip {go_fla.wall_6_239} Frame 1Symbol 440 MovieClip
"start"Symbol 699 MovieClip {go_fla.Points_246} Frame 1Symbol 454 MovieClip
"end"Symbol 699 MovieClip {go_fla.Points_246} Frame 1Symbol 455 MovieClip
"size"Symbol 701 MovieClip {go_fla.break_1_249} Frame 1Symbol 628 MovieClip
"size"Symbol 702 MovieClip {go_fla.wall_2_250} Frame 1Symbol 440 MovieClip
"wall_2"Symbol 703 MovieClip {go_fla.Walls_248} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"wall_2"Symbol 703 MovieClip {go_fla.Walls_248} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"brake"Symbol 703 MovieClip {go_fla.Walls_248} Frame 1Symbol 630 MovieClip {go_fla.break_1_211}
"wall_2"Symbol 703 MovieClip {go_fla.Walls_248} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"brake"Symbol 703 MovieClip {go_fla.Walls_248} Frame 1Symbol 701 MovieClip {go_fla.break_1_249}
"wall_2"Symbol 703 MovieClip {go_fla.Walls_248} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"num"Symbol 709 MovieClip {go_fla.StarterW_R_Sprite_252} Frame 1Symbol 410 MovieClip {go_fla.Numbers_95}
"starter"Symbol 710 MovieClip {go_fla.StarterW_R_Mov_251} Frame 1Symbol 709 MovieClip {go_fla.StarterW_R_Sprite_252}
"start"Symbol 729 MovieClip {go_fla.Points_260} Frame 1Symbol 454 MovieClip
"end"Symbol 729 MovieClip {go_fla.Points_260} Frame 1Symbol 455 MovieClip
"size"Symbol 731 MovieClip {go_fla.wall_1_263} Frame 1Symbol 440 MovieClip
"size"Symbol 732 MovieClip {go_fla.break_2_264} Frame 1Symbol 628 MovieClip
"brake"Symbol 733 MovieClip {go_fla.Walls_262} Frame 1Symbol 630 MovieClip {go_fla.break_1_211}
"brake"Symbol 733 MovieClip {go_fla.Walls_262} Frame 1Symbol 732 MovieClip {go_fla.break_2_264}
"brake"Symbol 733 MovieClip {go_fla.Walls_262} Frame 1Symbol 732 MovieClip {go_fla.break_2_264}
"num"Symbol 736 MovieClip {go_fla.StarterW_L_Sprite_266} Frame 1Symbol 410 MovieClip {go_fla.Numbers_95}
"starter"Symbol 737 MovieClip {go_fla.StarterW_L_Mov_265} Frame 1Symbol 736 MovieClip {go_fla.StarterW_L_Sprite_266}
"start"Symbol 741 MovieClip {go_fla.Points_268} Frame 1Symbol 454 MovieClip
"end"Symbol 741 MovieClip {go_fla.Points_268} Frame 1Symbol 455 MovieClip
"size"Symbol 743 MovieClip {go_fla.wall_3_271} Frame 1Symbol 440 MovieClip
"wall_2"Symbol 744 MovieClip {go_fla.Walls_270} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"start"Symbol 749 MovieClip {go_fla.Points_273} Frame 1Symbol 454 MovieClip
"end"Symbol 749 MovieClip {go_fla.Points_273} Frame 1Symbol 455 MovieClip
"size"Symbol 751 MovieClip {go_fla.wall_1_276} Frame 1Symbol 440 MovieClip
"size"Symbol 752 MovieClip {go_fla.wall_1_277} Frame 1Symbol 440 MovieClip
"wall_2"Symbol 753 MovieClip {go_fla.Wall_275} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"wall_2"Symbol 753 MovieClip {go_fla.Wall_275} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"start"Symbol 765 MovieClip {go_fla.Points_282} Frame 1Symbol 454 MovieClip
"end"Symbol 765 MovieClip {go_fla.Points_282} Frame 1Symbol 455 MovieClip
"wall_2"Symbol 767 MovieClip {go_fla.Walls_284} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"start"Symbol 771 MovieClip {go_fla.Points_286} Frame 1Symbol 454 MovieClip
"end"Symbol 771 MovieClip {go_fla.Points_286} Frame 1Symbol 455 MovieClip
"size"Symbol 773 MovieClip {go_fla.break_1_289} Frame 1Symbol 628 MovieClip
"wall_0"Symbol 774 MovieClip {go_fla.Walls_288} Frame 1Symbol 441 MovieClip {go_fla.wall_1_106}
"wall_2"Symbol 774 MovieClip {go_fla.Walls_288} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"brake"Symbol 774 MovieClip {go_fla.Walls_288} Frame 1Symbol 773 MovieClip {go_fla.break_1_289}
"brake"Symbol 774 MovieClip {go_fla.Walls_288} Frame 1Symbol 732 MovieClip {go_fla.break_2_264}
"start"Symbol 787 MovieClip {go_fla.Level_9_Points_296} Frame 1Symbol 454 MovieClip
"end"Symbol 787 MovieClip {go_fla.Level_9_Points_296} Frame 1Symbol 455 MovieClip
"size"Symbol 790 MovieClip {go_fla.wall_3_300} Frame 1Symbol 440 MovieClip
"brake"Symbol 791 MovieClip {go_fla.Level_9_Walls_299} Frame 1Symbol 630 MovieClip {go_fla.break_1_211}
"start"Symbol 797 MovieClip {go_fla.Points_302} Frame 1Symbol 454 MovieClip
"end"Symbol 797 MovieClip {go_fla.Points_302} Frame 1Symbol 455 MovieClip
"wall_2"Symbol 799 MovieClip {go_fla.Walls_304} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"wall_2"Symbol 799 MovieClip {go_fla.Walls_304} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"brake"Symbol 799 MovieClip {go_fla.Walls_304} Frame 1Symbol 732 MovieClip {go_fla.break_2_264}
"brake"Symbol 799 MovieClip {go_fla.Walls_304} Frame 1Symbol 732 MovieClip {go_fla.break_2_264}
"start"Symbol 805 MovieClip {go_fla.Points_308} Frame 1Symbol 454 MovieClip
"end"Symbol 805 MovieClip {go_fla.Points_308} Frame 1Symbol 455 MovieClip
"wall_2"Symbol 807 MovieClip {go_fla.Walls_310} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"wall_2"Symbol 807 MovieClip {go_fla.Walls_310} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"start"Symbol 814 MovieClip {go_fla.Points_312} Frame 1Symbol 454 MovieClip
"end"Symbol 814 MovieClip {go_fla.Points_312} Frame 1Symbol 455 MovieClip
"size"Symbol 818 MovieClip {go_fla.thorns_1_315} Frame 1Symbol 817 MovieClip
"brake"Symbol 819 MovieClip {go_fla.Walls_314} Frame 1Symbol 630 MovieClip {go_fla.break_1_211}
"thorns"Symbol 819 MovieClip {go_fla.Walls_314} Frame 1Symbol 818 MovieClip {go_fla.thorns_1_315}
"thorns"Symbol 819 MovieClip {go_fla.Walls_314} Frame 1Symbol 818 MovieClip {go_fla.thorns_1_315}
"thorns"Symbol 819 MovieClip {go_fla.Walls_314} Frame 1Symbol 818 MovieClip {go_fla.thorns_1_315}
"start"Symbol 828 MovieClip {go_fla.Points_320} Frame 1Symbol 454 MovieClip
"end"Symbol 828 MovieClip {go_fla.Points_320} Frame 1Symbol 455 MovieClip
"brake"Symbol 830 MovieClip {go_fla.Walls_322} Frame 1Symbol 630 MovieClip {go_fla.break_1_211}
"start"Symbol 839 MovieClip {go_fla.Points_327} Frame 1Symbol 454 MovieClip
"end"Symbol 839 MovieClip {go_fla.Points_327} Frame 1Symbol 455 MovieClip
"size"Symbol 841 MovieClip {go_fla.wall_1_330} Frame 1Symbol 440 MovieClip
"wall_2"Symbol 842 MovieClip {go_fla.Walls_329} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"wall_2"Symbol 842 MovieClip {go_fla.Walls_329} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"brake"Symbol 842 MovieClip {go_fla.Walls_329} Frame 1Symbol 751 MovieClip {go_fla.wall_1_276}
"wall_0"Symbol 842 MovieClip {go_fla.Walls_329} Frame 1Symbol 441 MovieClip {go_fla.wall_1_106}
"wall_2"Symbol 842 MovieClip {go_fla.Walls_329} Frame 1Symbol 442 MovieClip {go_fla.wall_2_108}
"wall_0"Symbol 842 MovieClip {go_fla.Walls_329} Frame 1Symbol 441 MovieClip {go_fla.wall_1_106}
"wall_0"Symbol 842 MovieClip {go_fla.Walls_329} Frame 1Symbol 441 MovieClip {go_fla.wall_1_106}

Special Tags

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

Labels

"Intro"Frame 3
"Menu"Frame 4
"Select"Frame 5
"Credits"Frame 6
"Levels >>"Frame 7
"Level_1"Frame 15
"Level_2"Frame 16
"Level_3"Frame 17
"Level_4"Frame 18
"Level_5"Frame 19
"Level_6"Frame 20
"Level_7"Frame 21
"Level_8"Frame 22
"Level_9"Frame 23
"Level_10"Frame 24
"Level_11"Frame 25
"Level_12"Frame 26
"Level_13"Frame 27
"Level_14"Frame 28
"Level_15"Frame 29
"Level_16"Frame 30
"Level_17"Frame 31
"Level_18"Frame 32
"Level_19"Frame 33
"Level_20"Frame 34
"Level_21"Frame 35
"Level_22"Frame 36
"Level_23"Frame 37
"Level_24"Frame 38
"Submit"Frame 39
"loop"Symbol 48 MovieClip {spark} Frame 10
"idle"Symbol 93 MovieClip {go_fla.mcPlayBtn_7} Frame 1
"over"Symbol 93 MovieClip {go_fla.mcPlayBtn_7} Frame 2
"down"Symbol 93 MovieClip {go_fla.mcPlayBtn_7} Frame 3
"push"Symbol 186 MovieClip {go_fla.HandSprite_28} Frame 7
"right"Symbol 187 MovieClip {go_fla.HandCursor_27} Frame 1
"left"Symbol 187 MovieClip {go_fla.HandCursor_27} Frame 2
"stick"Symbol 190 MovieClip {Cursor} Frame 1
"spring"Symbol 190 MovieClip {Cursor} Frame 2
"hand"Symbol 190 MovieClip {Cursor} Frame 3
"arrow"Symbol 190 MovieClip {Cursor} Frame 4




http://swfchan.com/15/71010/info.shtml
Created: 9/4 -2019 13:45:38 Last modified: 9/4 -2019 13:45:38 Server time: 16/05 -2024 01:42:00