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

swfchan turned sixteen years old today! (5may2024)

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

Vehicles - make the vehicle stop in the green area.swf

This is the info page for
Flash #93514

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


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

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

FAIL

walkthrough

RESTART (R)

more games

Level:

<p align="left"><font face="Impact" size="22" color="#ffffff" letterSpacing="0.000000" kerning="1">99</font></p>

Scores:

<p align="right"><font face="Impact" size="22" color="#ffffff" letterSpacing="0.000000" kerning="1">99</font></p>

<p align="left"><font face="Impact" size="22" color="#ffffff" letterSpacing="0.000000" kerning="1">99</font></p>

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

Checking...

LVL SELECT

<p align="center"><font face="Stencil Std" size="26" color="#1800c8" letterSpacing="0.000000" kerning="1">99%</font></p>

Click on the car to make it move

Then click on the car again to stop
it in the green zone

TRASH

The main goal of all levels is removing all the dark
vehicles. All other vehicles must stay!

The main goal of all levels is removing all the dark
vehicles. All other vehicles must stay!

2) This fat dark vehicle
can't be
driven by click

1) Click on this dark car and drive it off the edge

3) So you have to ram it
off the screen by other
vehicles, such this

U need to reach the mentioned amount of score points
to earn the gold star for the level

3) This sign changes
the direction of the vehicle

4) Drive the vehicle on
this button to remove
the marked block

2) Park the truck here

3) Then remove striped
block by click on it

you have to ram this
iron block at high speed
to move it

In this level try to remove all dark
ones witout help of fire truck

The tire is heavy enough
to ram the fat car :)

Sometimes wheels can move the road )

Try always park your vehicles at green zones.
Every parked vehicle gives you 1000 score points

Skip

ASSAULTER feat. VOGD

Driving
school

THE END

v.11

Back

Programming:

Idea, Art:

Dmitriy [Assaulter] Fyodorov

Dmitriy [Vogd] Zaletov

Music:

Anton Popov

complete all green levels with stars to unlock this ones

SPONSOR LEVELS

You can play this levels for one click :)

MEGA LEVELS

Lv-1

Lv-2

Lv-3

Lv-4

Lv-5

Lv-6

Lv-7

Lv-8

Lv-9

Lv-10

Lv-11

Lv-12

Lv-13

Lv-14

Lv-15

Lv-16

Lv-17

Lv-18

Lv-19

Lv-20

Lv-26

Lv-27

Lv-28

Lv-29

Lv-30

Intro Clip

Back

Final Clip

Lv-31

Lv-32

Lv-33

Lv-34

Lv-35

Reskin

Lv-21

Lv-22

Lv-23

Lv-24

Lv-25

complete all levels with stars to unlock this mode

complete all levels to see this clip

<p align="left"><font face="Stencil Std" size="18" color="#000000" letterSpacing="0.000000" kerning="1">0000</font></p>

score:

add to site

Play

scores

MoreGames

Credits

Credits

Assaulter feat. Vogd,   2010

Assaulter feat. Vogd,   2010

NEXT

Clicks:

<p align="left"><font face="Impact" size="22" color="#000000" letterSpacing="0.000000" kerning="1">99</font></p>

Game is locked

<p align="left"><font face="Impact" size="22" color="#000000" letterSpacing="0.000000" kerning="1">99</font></p>

ActionScript [AS3]

Section 1
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2CircleDef extends b2ShapeDef { public var radius:Number; public var localPosition:b2Vec2; public function b2CircleDef(){ localPosition = new b2Vec2(0, 0); super(); type = b2Shape.e_circleShape; radius = 1; } } }//package Box2D.Collision.Shapes
Section 2
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_localPosition:b2Vec2; public var m_radius:Number; public function b2CircleShape(_arg1:b2ShapeDef){ m_localPosition = new b2Vec2(); super(_arg1); var _local2:b2CircleDef = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local10:Number; var _local6:b2Mat22 = _arg1.R; var _local7:Number = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); var _local8:Number = (_arg1.position.x + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); var _local9:Number = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); var _local11:Number = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; var _local12:Number = (_arg4.p2.x - _arg4.p1.x); var _local13:Number = (_arg4.p2.y - _arg4.p1.y); var _local14:Number = ((_local9 * _local12) + (_local10 * _local13)); var _local15:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local16:Number = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; var _local17:Number = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } public function GetRadius():Number{ return (m_radius); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; _local4 = _arg2.R; var _local5:Number = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local6:Number = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; var _local7:Number = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local8:Number = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number = (m_localPosition.x - _arg1.x); var _local3:Number = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22 = _arg2.R; var _local4:Number = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22 = _arg1.R; var _local4:Number = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } } }//package Box2D.Collision.Shapes
Section 3
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2FilterData { public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public var categoryBits:uint;// = 1 public function Copy():b2FilterData{ var _local1:b2FilterData = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 4
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ center = new b2Vec2(0, 0); super(); } } }//package Box2D.Collision.Shapes
Section 5
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertices:Array; public var vertexCount:int; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; var _local1:int; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); if (_arg3){ _local5 = _arg3; _local6 = s_mat; _local6.Set(_arg4); _local7 = 0; while (_local7 < vertexCount) { _arg3 = vertices[_local7]; _arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y))); _arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y))); _arg3.x = _arg1; _local7++; }; }; } public function SetAsBox(_arg1:Number, _arg2:Number):void{ vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); } } }//package Box2D.Collision.Shapes
Section 6
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { public var m_coreVertices:Array; public var m_vertices:Array; private var s_supportVec:b2Vec2; public var m_centroid:b2Vec2; public var m_normals:Array; public var m_obb:b2OBB; public var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local3:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; var _local2:b2PolygonDef = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; var _local4:int = _local3; var _local5:int = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB = s_sweptAABB1; var _local5:b2AABB = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y); _arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y); } public function GetVertices():Array{ return (m_vertices); } public function GetCoreVertices():Array{ return (m_coreVertices); } public function GetCentroid():b2Vec2{ return (m_centroid); } public function GetOBB():b2OBB{ return (m_obb); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_coreVertices[0])); } public function Centroid(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_centroid)); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local20:Number; var _local21:Number; var _local6:Number = 0; var _local7:Number = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; var _local12:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local13:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; var _local14:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local15:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); var _local18 = -1; var _local19:int; while (_local19 < m_vertexCount) { _local11 = m_vertices[_local19]; _local8 = (_local11.x - _local12); _local9 = (_local11.y - _local13); _local11 = m_normals[_local19]; _local20 = ((_local11.x * _local8) + (_local11.y * _local9)); _local21 = ((_local11.x * _local16) + (_local11.y * _local17)); if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){ _local6 = (_local20 / _local21); _local18 = _local19; } else { if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){ _local7 = (_local20 / _local21); }; }; if (_local7 < _local6){ return (false); }; _local19++; }; if (_local18 >= 0){ _arg2[0] = _local6; _local10 = _arg1.R; _local11 = m_normals[_local18]; _arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); return (true); }; return (false); } override public function ComputeMass(_arg1:b2MassData):void{ var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local2:Number = 0; var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; var _local7:Number = 0; var _local8:Number = (1 / 3); var _local9:int; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0]; _local12 = (_local10.x - _local6); _local13 = (_local10.y - _local7); _local14 = (_local11.x - _local6); _local15 = (_local11.y - _local7); _local16 = ((_local12 * _local15) - (_local13 * _local14)); _local17 = (0.5 * _local16); _local4 = (_local4 + _local17); _local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x))); _local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y))); _local18 = _local6; _local19 = _local7; _local20 = _local12; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18)); _local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local5 = (_local5 + (_local16 * (_local24 + _local25))); _local9++; }; _arg1.mass = (m_density * _local4); _local2 = (_local2 * (1 / _local4)); _local3 = (_local3 * (1 / _local4)); _arg1.center.Set(_local2, _local3); _arg1.I = (m_density * _local5); } public function GetNormals():Array{ return (m_normals); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local11:Number; _local5 = _arg1.R; var _local6:Number = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); var _local7:Number = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); var _local8:int; _local4 = m_coreVertices[0]; var _local9:Number = ((_local4.x * _local6) + (_local4.y * _local7)); var _local10 = 1; while (_local10 < m_vertexCount) { _local4 = m_coreVertices[_local10]; _local11 = ((_local4.x * _local6) + (_local4.y * _local7)); if (_local11 > _local9){ _local8 = _local10; _local9 = _local11; }; _local10++; }; _local5 = _arg1.R; _local4 = m_coreVertices[_local8]; s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y))); s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); var _local6:b2Mat22 = _local5; _local4 = m_obb.extents; var _local7:Number = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); var _local8:Number = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; var _local9:Number = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); var _local10:Number = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local4:Number; var _local5:Number; m_sweepRadius = 0; var _local3:int; while (_local3 < m_vertexCount) { _local2 = m_coreVertices[_local3]; _local4 = (_local2.x - _arg1.x); _local5 = (_local2.y - _arg1.y); _local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local4 > m_sweepRadius){ m_sweepRadius = _local4; }; _local3++; }; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local10:Number; var _local4:b2Mat22 = _arg1.R; var _local5:Number = (_arg2.x - _arg1.position.x); var _local6:Number = (_arg2.y - _arg1.position.y); var _local7:Number = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); var _local8:Number = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); var _local9:int; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local7:Number; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; _local7 = (1 / 3); var _local8:int; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; var _local5:Array = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; var _local6:Number = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 7
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Shape { public var m_next:b2Shape; public var m_type:int; public var m_sweepRadius:Number; public var m_density:Number; public var m_filter:b2FilterData; public var m_friction:Number; public var m_isSensor:Boolean; public var m_restitution:Number; public var m_userData; public var m_proxyId:uint; public var m_body:b2Body; public static const e_polygonShape:int = 1; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_shapeTypeCount:int = 2; private static var s_resetAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_proxyAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxyId = b2Pair.b2_nullProxy; m_filter = _arg1.filter.Copy(); m_isSensor = _arg1.isSensor; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetNext():b2Shape{ return (m_next); } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function GetType():int{ return (m_type); } public function GetRestitution():Number{ return (m_restitution); } public function GetFriction():Number{ return (m_friction); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); var _local3:b2AABB = s_resetAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; var _local4:b2AABB = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function ComputeMass(_arg1:b2MassData):void{ } public function IsSensor():Boolean{ return (m_isSensor); } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function GetBody():b2Body{ return (m_body); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB = s_proxyAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public static function Destroy(_arg1:b2Shape, _arg2):void{ } public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } } }//package Box2D.Collision.Shapes
Section 8
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2ShapeDef { public var friction:Number;// = 0.2 public var isSensor:Boolean;// = false public var density:Number;// = 0 public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var type:int; public function b2ShapeDef(){ type = b2Shape.e_unknownShape; filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 9
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var upperBound:b2Vec2; public var lowerBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number = (upperBound.x - lowerBound.x); var _local2:Number = (upperBound.y - lowerBound.y); var _local3:Boolean = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 10
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var value:uint; public var proxyId:uint; public var stabbingCount:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint = value; var _local3:uint = proxyId; var _local4:uint = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//package Box2D.Collision
Section 11
//b2BoundValues (Box2D.Collision.b2BoundValues) package Box2D.Collision { public class b2BoundValues { public var lowerValues:Array; public var upperValues:Array; public function b2BoundValues(){ lowerValues = [0, 0]; upperValues = [0, 0]; super(); } } }//package Box2D.Collision
Section 12
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_bounds:Array; public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; public var m_freeProxy:uint; public var m_proxyCount:int; public var m_proxyPool:Array; public var m_queryResultCount:int; public var m_pairManager:b2PairManager; public var m_timeStamp:uint; public var m_queryResults:Array; public static const b2_nullEdge:uint = b2Settings.USHRT_MAX; public static const b2_invalid:uint = b2Settings.USHRT_MAX; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; var _local4:Number = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); _local3 = 0; while (_local3 < (b2Settings.b2_maxProxies - 1)) { _local6 = new b2Proxy(); m_proxyPool[_local3] = _local6; _local6.SetNext((_local3 + 1)); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; _local3++; }; _local6 = new b2Proxy(); m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local6:uint; var _local7:uint; var _local12:b2Proxy; var _local4:Array = new Array(); var _local5:Array = new Array(); ComputeBounds(_local4, _local5, _arg1); var _local8:Array = [_local6]; var _local9:Array = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); var _local10:int; var _local11:int; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Commit():void{ m_pairManager.Commit(); } public function GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy = m_proxyPool[_arg1]; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){ return (null); }; return (_local2); } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { (m_proxyPool[_local1] as b2Proxy).timeStamp = 0; _local1++; }; m_timeStamp = 1; } else { m_timeStamp++; }; } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local10:b2Bound; var _local12:int; var _local13:int; var _local14:b2Proxy; var _local8:uint = BinarySearch(_arg5, _arg6, _arg3); var _local9:uint = BinarySearch(_arg5, _arg6, _arg4); var _local11:uint = _local8; while (_local11 < _local9) { _local10 = _arg5[_local11]; if (_local10.IsLower()){ IncrementOverlapCount(_local10.proxyId); }; _local11++; }; if (_local8 > 0){ _local12 = (_local8 - 1); _local10 = _arg5[_local12]; _local13 = _local10.stabbingCount; while (_local13) { _local10 = _arg5[_local12]; if (_local10.IsLower()){ _local14 = m_proxyPool[_local10.proxyId]; if (_local8 <= _local14.upperBounds[_arg7]){ IncrementOverlapCount(_local10.proxyId); _local13--; }; }; _local12--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number = _arg3.lowerBound.x; var _local5:Number = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); var _local6:Number = _arg3.upperBound.x; var _local7:Number = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:b2Bound; var _local22:int; var _local23:b2Proxy; var _local5:uint = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; var _local6:uint = (2 * m_proxyCount); var _local7:Array = new Array(); var _local8:Array = new Array(); ComputeBounds(_local7, _local8, _arg1); var _local9:int; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local13 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local16 = new Array(); _local18 = (_local13 - _local12); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local12 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local19 = _local11[_local12]; _local20 = _local11[_local13]; _local19.value = _local7[_local9]; _local19.proxyId = _local5; _local20.value = _local8[_local9]; _local20.proxyId = _local5; _local21 = _local11[int((_local12 - 1))]; _local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount; _local21 = _local11[int((_local13 - 1))]; _local20.stabbingCount = _local21.stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local21 = _local11[_local3]; _local21.stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local19 = _local11[_local3]; _local23 = m_proxyPool[_local19.proxyId]; if (_local19.IsLower()){ _local23.lowerBounds[_local9] = _local3; } else { _local23.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; var _local10:int; while (_local10 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]); _local10++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local5); } public function DestroyProxy(_arg1:uint):void{ var _local2:b2Bound; var _local3:b2Bound; var _local8:Array; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:int; var _local15:int; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; var _local4:b2Proxy = m_proxyPool[_arg1]; var _local5:int = (2 * m_proxyCount); var _local6:int; while (_local6 < 2) { _local8 = m_bounds[_local6]; _local9 = _local4.lowerBounds[_local6]; _local10 = _local4.upperBounds[_local6]; _local2 = _local8[_local9]; _local11 = _local2.value; _local3 = _local8[_local10]; _local12 = _local3.value; _local13 = new Array(); _local15 = ((_local10 - _local9) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local9 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = _local9; _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local13 = new Array(); _local15 = ((_local5 - _local10) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local10 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = (_local10 - 1); _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = (_local5 - 2); _local17 = _local9; while (_local17 < _local15) { _local2 = _local8[_local17]; _local19 = m_proxyPool[_local2.proxyId]; if (_local2.IsLower()){ _local19.lowerBounds[_local6] = _local17; } else { _local19.upperBounds[_local6] = _local17; }; _local17++; }; _local15 = (_local10 - 1); _local18 = _local9; while (_local18 < _local15) { _local2 = _local8[_local18]; _local2.stabbingCount--; _local18++; }; Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6); _local6++; }; var _local7:int; while (_local7 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]); _local7++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local4.userData = null; _local4.overlapCount = b2_invalid; _local4.lowerBounds[0] = b2_invalid; _local4.lowerBounds[1] = b2_invalid; _local4.upperBounds[0] = b2_invalid; _local4.upperBounds[1] = b2_invalid; _local4.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg2.upperBounds[_local3]]; if (_arg1.lowerValues[_local3] > _local5.value){ return (false); }; _local5 = _local4[_arg2.lowerBounds[_local3]]; if (_arg1.upperValues[_local3] < _local5.value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local5:int; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } public function InRange(_arg1:b2AABB):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = _arg1.lowerBound.x; _local3 = _arg1.lowerBound.y; _local2 = (_local2 - m_worldAABB.upperBound.x); _local3 = (_local3 - m_worldAABB.upperBound.y); _local4 = m_worldAABB.lowerBound.x; _local5 = m_worldAABB.lowerBound.y; _local4 = (_local4 - _arg1.upperBound.x); _local5 = (_local5 - _arg1.upperBound.y); _local2 = b2Math.b2Max(_local2, _local4); _local3 = b2Math.b2Max(_local3, _local5); return ((b2Math.b2Max(_local2, _local3) < 0)); } public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{ var _local3:Array; var _local4:int; var _local5:uint; var _local6:uint; var _local7:b2Bound; var _local8:b2Bound; var _local9:b2Bound; var _local10:uint; var _local11:b2Proxy; var _local16:Array; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:uint; var _local21:int; var _local22:int; var _local23:uint; var _local24:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; var _local12:uint = (2 * m_proxyCount); var _local13:b2Proxy = m_proxyPool[_arg1]; var _local14:b2BoundValues = new b2BoundValues(); ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2); var _local15:b2BoundValues = new b2BoundValues(); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5][_local13.lowerBounds[_local5]]; _local15.lowerValues[_local5] = _local7.value; _local7 = m_bounds[_local5][_local13.upperBounds[_local5]]; _local15.upperValues[_local5] = _local7.value; _local5++; }; _local5 = 0; while (_local5 < 2) { _local16 = m_bounds[_local5]; _local17 = _local13.lowerBounds[_local5]; _local18 = _local13.upperBounds[_local5]; _local19 = _local14.lowerValues[_local5]; _local20 = _local14.upperValues[_local5]; _local7 = _local16[_local17]; _local21 = (_local19 - _local7.value); _local7.value = _local19; _local7 = _local16[_local18]; _local22 = (_local20 - _local7.value); _local7.value = _local20; if (_local21 < 0){ _local6 = _local17; while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local8.proxyId]; _local8.stabbingCount++; if (_local8.IsUpper() == true){ if (TestOverlap(_local14, _local24)){ m_pairManager.AddBufferedPair(_arg1, _local23); }; _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; if (_local22 > 0){ _local6 = _local18; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount++; if (_local9.IsLower() == true){ if (TestOverlap(_local14, _local11)){ m_pairManager.AddBufferedPair(_arg1, _local10); }; _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local21 > 0){ _local6 = _local17; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount--; if (_local9.IsUpper()){ if (TestOverlap(_local15, _local11)){ m_pairManager.RemoveBufferedPair(_arg1, _local10); }; _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local22 < 0){ _local6 = _local18; while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local23]; _local8.stabbingCount--; if (_local8.IsLower() == true){ if (TestOverlap(_local15, _local24)){ m_pairManager.RemoveBufferedPair(_arg1, _local23); }; _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; _local5++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local6:int; var _local7:b2Bound; var _local4:int; var _local5:int = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); _local7 = _arg1[_local6]; if (_local7.value > _arg3){ _local5 = (_local6 - 1); } else { if (_local7.value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.Collision
Section 13
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 14
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local11:b2Mat22; var _local12:b2Vec2; var _local25:Number; var _local6:int = _arg1.m_vertexCount; var _local7:Array = _arg1.m_vertices; var _local8:Array = _arg1.m_normals; var _local9:int = _arg4.m_vertexCount; var _local10:Array = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; var _local13:Number = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); var _local14:Number = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; var _local15:Number = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); var _local16:Number = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; var _local20:Number = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local21:Number = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; var _local22:Number = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local23:Number = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); var _local24:Number = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2 = _arg2.lowerBound; var _local4:b2Vec2 = _arg1.upperBound; var _local5:Number = (_local3.x - _local4.x); var _local6:Number = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; var _local7:Number = (_local3.x - _local4.x); var _local8:Number = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local12:b2Mat22; var _local13:b2Vec2; var _local20:ClipVertex; var _local23:Number; var _local7:int = _arg2.m_vertexCount; var _local8:Array = _arg2.m_normals; var _local9:int = _arg5.m_vertexCount; var _local10:Array = _arg5.m_vertices; var _local11:Array = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; var _local14:Number = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); var _local15:Number = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; var _local16:Number = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; var _local21:int = _local17; var _local22:int = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local17:int; var _local18:uint; var _local34:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; var _local7:int; var _local8:Array = [_local7]; var _local9:Number = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; var _local10:int; var _local11:Array = [_local10]; var _local12:Number = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; var _local15:b2XForm = new b2XForm(); var _local16:b2XForm = new b2XForm(); var _local19:Number = 0.98; var _local20:Number = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; var _local21:Array = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); var _local22:int = _local13.m_vertexCount; var _local23:Array = _local13.m_vertices; var _local24:b2Vec2 = _local23[_local17]; var _local25:b2Vec2 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; var _local26:b2Vec2 = b2Math.SubtractVV(_local37, _local25); var _local27:b2Vec2 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); var _local28:b2Vec2 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); var _local29:Number = b2Math.b2Dot(_local28, _local25); var _local30:Number = -(b2Math.b2Dot(_local27, _local25)); var _local31:Number = b2Math.b2Dot(_local27, _local37); var _local32:Array = [new ClipVertex(), new ClipVertex()]; var _local33:Array = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); var _local35:int; var _local36:int; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local8:b2Vec2; var _local9:b2Mat22; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; var _local6:int = _arg2.m_vertexCount; var _local7:Array = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; var _local10:Number = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); var _local11:Number = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); var _local12:Number = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); var _local13:Number = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); var _local14:int; var _local15:Number = -(Number.MAX_VALUE); var _local16:int; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; var _local17:Number = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; var _local18:int = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); var _local19:Number = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; var _local20:int = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; var _local21:Number = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); var _local10:Number = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local18:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; var _local8:Number = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local9:Number = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; var _local10:Number = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local11:Number = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); var _local12:Number = (_local10 - _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local15:Number = _arg2.m_radius; var _local16:Number = _arg4.m_radius; var _local17:Number = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; var _local19:b2ManifoldPoint = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); var _local20:Number = (0.5 * (_local8 + _local10)); var _local21:Number = (0.5 * (_local9 + _local11)); var _local22:Number = (_local20 - _arg3.position.x); var _local23:Number = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local17:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; var _local13:Number = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); var _local14:Number = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; var _local15:Number = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); var _local16:Number = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); var _local18:int; var _local19:Number = -(Number.MAX_VALUE); var _local20:Number = _arg4.m_radius; var _local21:int = _arg2.m_vertexCount; var _local22:Array = _arg2.m_vertices; var _local23:Array = _arg2.m_normals; var _local24:int; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; var _local25:int = _local18; var _local26:int = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; var _local27:b2Vec2 = _local22[_local26]; var _local28:Number = (_local27.x - _local11.x); var _local29:Number = (_local27.y - _local11.y); var _local30:Number = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); var _local31:Number = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = 0; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } } }//package Box2D.Collision
Section 15
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var _key:uint; public var features:Features; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID = new b2ContactID(); _local1.key = key; return (_local1); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } public function get key():uint{ return (_key); } } }//package Box2D.Collision
Section 16
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2ContactPoint { public var friction:Number; public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var restitution:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public var velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 17
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local4:Number = (100 * Number.MIN_VALUE); var _local5:int; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; var _local8:Array = s_p1s; var _local9:Array = s_p2s; var _local10:Array = s_points; var _local11:int; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); var _local12:Number = 0; var _local13 = 20; var _local14:int; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - ((_local15 * _local19) + (_local16 * _local20))) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; var _local9:Number = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local10:Number = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; var _local11:Number = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local12:Number = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:Number = ((_local13 * _local13) + (_local14 * _local14)); var _local16:Number = (_arg3.m_radius - b2Settings.b2_toiSlop); var _local17:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); var _local18:Number = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local35:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; var _local14:b2Vec2 = _arg4[2]; var _local15:Number = _local6.x; var _local16:Number = _local6.y; var _local17:Number = _local7.x; var _local18:Number = _local7.y; var _local19:Number = _local8.x; var _local20:Number = _local8.y; var _local21:Number = (_local17 - _local15); var _local22:Number = (_local18 - _local16); var _local23:Number = (_local19 - _local15); var _local24:Number = (_local20 - _local16); var _local25:Number = (_local19 - _local17); var _local26:Number = (_local20 - _local18); var _local27:Number = -(((_local15 * _local21) + (_local16 * _local22))); var _local28:Number = ((_local17 * _local21) + (_local18 * _local22)); var _local29:Number = -(((_local15 * _local23) + (_local16 * _local24))); var _local30:Number = ((_local19 * _local23) + (_local20 * _local24)); var _local31:Number = -(((_local17 * _local25) + (_local18 * _local26))); var _local32:Number = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; var _local33:Number = ((_local21 * _local24) - (_local22 * _local23)); var _local34:Number = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); var _local36:Number = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; var _local37:Number = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; var _local38:Number = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); var _local39:Number = (_local36 * _local38); var _local40:Number = (_local37 * _local38); var _local41:Number = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local9:b2Point = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local10:Number = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); var _local11:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int = _arg3.m_type; var _local8:int = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local17:Number; var _local6:b2Vec2 = _arg5[0]; var _local7:b2Vec2 = _arg5[1]; var _local8:b2Vec2 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; var _local12:Number = -(_local7.x); var _local13:Number = -(_local7.y); var _local14:Number = (_local6.x - _local7.x); var _local15:Number = (_local6.y - _local7.y); var _local16:Number = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } }//package Box2D.Collision
Section 18
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var pointCount:int;// = 0 public var normal:b2Vec2; public var points:Array; public function b2Manifold(){ points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ pointCount = _arg1.pointCount; var _local2:int; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } public function Reset():void{ var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 19
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var separation:Number; public var localPoint2:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var localPoint1:b2Vec2; public var id:b2ContactID; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } public function Set(_arg1:b2ManifoldPoint):void{ localPoint1.SetV(_arg1.localPoint1); localPoint2.SetV(_arg1.localPoint2); separation = _arg1.separation; normalImpulse = _arg1.normalImpulse; tangentImpulse = _arg1.tangentImpulse; id.key = _arg1.id.key; } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalImpulse = 0; tangentImpulse = 0; id.key = 0; } } }//package Box2D.Collision
Section 20
//b2OBB (Box2D.Collision.b2OBB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2OBB { public var R:b2Mat22; public var center:b2Vec2; public var extents:b2Vec2; public function b2OBB(){ R = new b2Mat22(); center = new b2Vec2(); extents = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 21
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var proxyId1:uint; public var userData;// = null public var proxyId2:uint; public var status:uint; public var next:uint; public static var e_pairFinal:uint = 4; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairRemoved:uint = 2; public static var b2_nullPair:uint = b2Settings.USHRT_MAX; public static var e_pairBuffered:uint = 1; public static var b2_nullProxy:uint = b2Settings.USHRT_MAX; public static var b2_tableCapacity:int = b2Settings.b2_maxPairs; public function SetBuffered():void{ status = (status | e_pairBuffered); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } } }//package Box2D.Collision
Section 22
//b2PairCallback (Box2D.Collision.b2PairCallback) package Box2D.Collision { public class b2PairCallback { public function PairRemoved(_arg1, _arg2, _arg3):void{ } public function PairAdded(_arg1, _arg2){ return (null); } } }//package Box2D.Collision
Section 23
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PairManager { public var m_pairCount:int; public var m_pairBuffer:Array; public var m_hashTable:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_broadPhase:b2BroadPhase; public var m_freePair:uint; public function b2PairManager(){ var _local1:uint; super(); m_hashTable = new Array(b2Pair.b2_tableCapacity); _local1 = 0; while (_local1 < b2Pair.b2_tableCapacity) { m_hashTable[_local1] = b2Pair.b2_nullPair; _local1++; }; m_pairs = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1] = new b2Pair(); _local1++; }; m_pairBuffer = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairBuffer[_local1] = new b2BufferedPair(); _local1++; }; _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy; m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy; m_pairs[_local1].userData = null; m_pairs[_local1].status = 0; m_pairs[_local1].next = (_local1 + 1); _local1++; }; m_pairs[int((b2Settings.b2_maxPairs - 1))].next = b2Pair.b2_nullPair; m_pairCount = 0; m_pairBufferCount = 0; } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:b2Pair; var _local5:uint = m_hashTable[_arg3]; _local4 = m_pairs[_local5]; while (((!((_local5 == b2Pair.b2_nullPair))) && ((Equals(_local4, _arg1, _arg2) == false)))) { _local5 = _local4.next; _local4 = m_pairs[_local5]; }; if (_local5 == b2Pair.b2_nullPair){ return (null); }; return (_local4); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; var _local3:int; var _local4:Array = m_broadPhase.m_proxyPool; _local2 = 0; while (_local2 < m_pairBufferCount) { _local1 = m_pairBuffer[_local2]; _local5 = Find(_local1.proxyId1, _local1.proxyId2); _local5.ClearBuffered(); _local6 = _local4[_local5.proxyId1]; _local7 = _local4[_local5.proxyId2]; if (_local5.IsRemoved()){ if (_local5.IsFinal() == true){ m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData); }; _local1 = m_pairBuffer[_local3]; _local1.proxyId1 = _local5.proxyId1; _local1.proxyId2 = _local5.proxyId2; _local3++; } else { if (_local5.IsFinal() == false){ _local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData); _local5.SetFinal(); }; }; _local2++; }; _local2 = 0; while (_local2 < _local3) { _local1 = m_pairBuffer[_local2]; RemovePair(_local1.proxyId1, _local1.proxyId2); _local2++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = Find(_arg1, _arg2); if (_local4 == null){ return; }; if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; var _local4:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local5:uint = m_hashTable[_local4]; var _local6:b2Pair; while (_local5 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local5], _arg1, _arg2)){ _local8 = _local5; _local3 = m_pairs[_local5]; if (_local6){ _local6.next = _local3.next; } else { m_hashTable[_local4] = _local3.next; }; _local3 = m_pairs[_local8]; _local9 = _local3.userData; _local3.next = m_freePair; _local3.proxyId1 = b2Pair.b2_nullProxy; _local3.proxyId2 = b2Pair.b2_nullProxy; _local3.userData = null; _local3.status = 0; m_freePair = _local8; m_pairCount--; return (_local9); } else { _local6 = m_pairs[_local5]; _local5 = _local6.next; }; }; return (null); } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = AddPair(_arg1, _arg2); if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; var _local5:uint = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function ValidateTable():void{ } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } public static function Hash(_arg1:uint, _arg2:uint):uint{ var _local3:uint = (((_arg2 << 16) & 4294901760) | _arg1); _local3 = (~(_local3) + ((_local3 << 15) & 4294934528)); _local3 = (_local3 ^ ((_local3 >> 12) & 1048575)); _local3 = (_local3 + ((_local3 << 2) & 4294967292)); _local3 = (_local3 ^ ((_local3 >> 4) & 268435455)); _local3 = (_local3 * 2057); _local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF)); return (_local3); } public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{ return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3)))); } } }//package Box2D.Collision
Section 24
//b2Point (Box2D.Collision.b2Point) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Point { public var p:b2Vec2; public function b2Point(){ p = new b2Vec2(); super(); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 25
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var userData;// = null public var lowerBounds:Array; public var upperBounds:Array; public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } } }//package Box2D.Collision
Section 26
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local5:b2Vec2 = _arg3.p1; var _local6:Number = (_arg3.p2.x - _local5.x); var _local7:Number = (_arg3.p2.y - _local5.y); var _local8:Number = (p2.x - p1.x); var _local9:Number = (p2.y - p1.y); var _local10:Number = _local9; var _local11:Number = -(_local8); var _local12:Number = (100 * Number.MIN_VALUE); var _local13:Number = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local7) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.Collision
Section 27
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local7:Number = _arg1.m_sweepRadius; var _local8:Number = _arg3.m_sweepRadius; var _local9:Number = _arg2.t0; var _local10:Number = (_arg2.c.x - _arg2.c0.x); var _local11:Number = (_arg2.c.y - _arg2.c0.y); var _local12:Number = (_arg4.c.x - _arg4.c0.x); var _local13:Number = (_arg4.c.y - _arg4.c0.y); var _local14:Number = (_arg2.a - _arg2.a0); var _local15:Number = (_arg4.a - _arg4.a0); var _local16:Number = 0; var _local17:b2Vec2 = s_p1; var _local18:b2Vec2 = s_p2; var _local19 = 20; var _local20:int; var _local21:Number = 0; var _local22:Number = 0; var _local23:Number = 0; var _local24:Number = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } }//package Box2D.Collision
Section 28
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var id:b2ContactID; public var v:b2Vec2; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 29
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceEdge:int; public var _incidentEdge:int; public var _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get flip():int{ return (_flip); } public function get incidentEdge():int{ return (_incidentEdge); } public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.Collision
Section 30
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { 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 SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function Set(_arg1:Number):void{ var _local2:Number; _local2 = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local4:Number; var _local6:Number; _local2 = col1.x; var _local3:Number = col2.x; _local4 = col1.y; var _local5:Number = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number = col1.x; var _local5:Number = col2.x; var _local6:Number = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 31
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = b2MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:* = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); var _local4:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); var _local5:b2Mat22 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } }//package Box2D.Common.Math
Section 32
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { import Box2D.Common.*; public class b2Sweep { public var localCenter:b2Vec2; public var a:Number; public var c:b2Vec2; public var a0:Number; public var c0:b2Vec2; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ var _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; var _local3:b2Mat22 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } }//package Box2D.Common.Math
Section 33
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { import Box2D.Common.*; public class b2Vec2 { public var y:Number; public var x:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } 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 MulM(_arg1:b2Mat22):void{ var _local2:Number = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function SetZero():void{ x = 0; y = 0; } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function Normalize():Number{ var _local1:Number = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; var _local2:Number = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function CrossVF(_arg1:Number):void{ var _local2:Number = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function CrossFV(_arg1:Number):void{ var _local2:Number = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 34
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { import Box2D.Common.*; public class b2XForm { public var position:b2Vec2; public var R:b2Mat22; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } } }//package Box2D.Common.Math
Section 35
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _r:uint;// = 0 private var _g:uint;// = 0 private var _b:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function get color():uint{ return (((_r | (_g << 8)) | (_b << 16))); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } } }//package Box2D.Common
Section 36
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const b2_angularSleepTolerance:Number = 0.0111111111111111; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_angularSlop:Number = 0.0349065850398866; public static const b2_linearSlop:Number = 0.005; public static const b2_pi:Number = 3.14159265358979; public static const b2_maxProxies:int = 0x0200; public static const b2_maxAngularVelocitySquared:Number = 62500; public static const b2_maxPolygonVertices:int = 8; public static const b2_velocityThreshold:Number = 1; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_maxPairs:int = 4096; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_timeToSleep:Number = 0.5; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxAngularVelocity:Number = 250; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const USHRT_MAX:int = 0xFFFF; public static const b2_maxLinearVelocity:Number = 200; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_toiSlop:Number = 0.04; public static const b2_maxLinearVelocitySquared:Number = 40000; public static function b2Assert(_arg1:Boolean):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 37
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local8:b2ManifoldPoint; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); var _local7:b2ContactPoint = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 38
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Contact { public var m_shape1:b2Shape; public var m_shape2:b2Shape; public var m_prev:b2Contact; public var m_toi:Number; public var m_next:b2Contact; public var m_friction:Number; public var m_manifoldCount:int; public var m_node1:b2ContactEdge; public var m_node2:b2ContactEdge; public var m_restitution:Number; public var m_flags:uint; public static var e_toiFlag:uint = 8; public static var e_nonSolidFlag:uint = 1; public static var e_slowFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var s_registers:Array; public static var s_initialized:Boolean = false; public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){ m_node1 = new b2ContactEdge(); m_node2 = new b2ContactEdge(); super(); m_flags = 0; if (((!(_arg1)) || (!(_arg2)))){ m_shape1 = null; m_shape2 = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_nonSolidFlag); }; m_shape1 = _arg1; m_shape2 = _arg2; m_manifoldCount = 0; m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction)); m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution); m_prev = null; m_next = null; m_node1.contact = null; m_node1.prev = null; m_node1.next = null; m_node1.other = null; m_node2.contact = null; m_node2.prev = null; m_node2.next = null; m_node2.other = null; } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetShape1():b2Shape{ return (m_shape1); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetNext():b2Contact{ return (m_next); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function GetManifolds():Array{ return (null); } public function Update(_arg1:b2ContactListener):void{ var _local2:int = m_manifoldCount; Evaluate(_arg1); var _local3:int = m_manifoldCount; var _local4:b2Body = m_shape1.m_body; var _local5:b2Body = m_shape2.m_body; if ((((_local3 == 0)) && ((_local2 > 0)))){ _local4.WakeUp(); _local5.WakeUp(); }; if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } public function Evaluate(_arg1:b2ContactListener):void{ } public static function InitializeRegisters():void{ var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); var _local1:int; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); } public static function Destroy(_arg1:b2Contact, _arg2):void{ if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; var _local3:int = _arg1.m_shape1.m_type; var _local4:int = _arg1.m_shape2.m_type; var _local5:b2ContactRegister = s_registers[_local3][_local4]; var _local6:Function = _local5.destroyFcn; _local6(_arg1, _arg2); } public static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; var _local4:int = _arg1.m_type; var _local5:int = _arg2.m_type; var _local6:b2ContactRegister = s_registers[_local4][_local5]; var _local7:Function = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 39
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var normal:b2Vec2; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 40
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var r2:b2Vec2; public var separation:Number; public var positionImpulse:Number; public var normalImpulse:Number; public var tangentMass:Number; public var equalizedMass:Number; public var tangentImpulse:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var normalMass:Number; public var velocityBias:Number; public var r1:b2Vec2; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 41
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var other:b2Body; public var prev:b2ContactEdge; public var contact:b2Contact; public var next:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 42
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn:Function; public var destroyFcn:Function; } }//package Box2D.Dynamics.Contacts
Section 43
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; public class b2ContactResult { public var position:b2Vec2; public var shape1:b2Shape; public var shape2:b2Shape; public var normalImpulse:Number; public var normal:b2Vec2; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ContactResult(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Dynamics.Contacts
Section 44
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactSolver { public var m_constraintCount:int; public var m_constraints:Array; public var m_allocator; public var m_step:b2TimeStep; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local10:b2Body; var _local11:b2Body; var _local12:int; var _local13:Array; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; var _local23:b2Manifold; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraint; var _local27:uint; var _local28:b2ManifoldPoint; var _local29:b2ContactConstraintPoint; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; m_step = new b2TimeStep(); m_constraints = new Array(); super(); m_step.dt = _arg1.dt; m_step.inv_dt = _arg1.inv_dt; m_step.maxIterations = _arg1.maxIterations; m_allocator = _arg4; m_constraintCount = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; m_constraintCount = (m_constraintCount + _local5.m_manifoldCount); _local6++; }; _local6 = 0; while (_local6 < m_constraintCount) { m_constraints[_local6] = new b2ContactConstraint(); _local6++; }; var _local9:int; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1.m_body; _local11 = _local5.m_shape2.m_body; _local12 = _local5.m_manifoldCount; _local13 = _local5.GetManifolds(); _local14 = _local5.m_friction; _local15 = _local5.m_restitution; _local16 = _local10.m_linearVelocity.x; _local17 = _local10.m_linearVelocity.y; _local18 = _local11.m_linearVelocity.x; _local19 = _local11.m_linearVelocity.y; _local20 = _local10.m_angularVelocity; _local21 = _local11.m_angularVelocity; _local22 = 0; while (_local22 < _local12) { _local23 = _local13[_local22]; _local24 = _local23.normal.x; _local25 = _local23.normal.y; _local26 = m_constraints[_local9]; _local26.body1 = _local10; _local26.body2 = _local11; _local26.manifold = _local23; _local26.normal.x = _local24; _local26.normal.y = _local25; _local26.pointCount = _local23.pointCount; _local26.friction = _local14; _local26.restitution = _local15; _local27 = 0; while (_local27 < _local26.pointCount) { _local28 = _local23.points[_local27]; _local29 = _local26.points[_local27]; _local29.normalImpulse = _local28.normalImpulse; _local29.tangentImpulse = _local28.tangentImpulse; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local8 = _local10.m_xf.R; _local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x); _local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33)); _local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33)); _local32 = _local30; _local29.r1.Set(_local32, _local33); _local8 = _local11.m_xf.R; _local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x); _local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local30; _local29.r2.Set(_local34, _local35); _local36 = ((_local32 * _local32) + (_local33 * _local33)); _local37 = ((_local34 * _local34) + (_local35 * _local35)); _local38 = ((_local32 * _local24) + (_local33 * _local25)); _local39 = ((_local34 * _local24) + (_local35 * _local25)); _local40 = (_local10.m_invMass + _local11.m_invMass); _local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39))))); _local29.normalMass = (1 / _local40); _local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass)); _local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39))))); _local29.equalizedMass = (1 / _local41); _local42 = _local25; _local43 = -(_local24); _local44 = ((_local32 * _local42) + (_local33 * _local43)); _local45 = ((_local34 * _local42) + (_local35 * _local43)); _local46 = (_local10.m_invMass + _local11.m_invMass); _local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45))))); _local29.tangentMass = (1 / _local46); _local29.velocityBias = 0; if (_local29.separation > 0){ _local29.velocityBias = (-60 * _local29.separation); }; _local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33)); _local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32)); _local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47)); }; _local27++; }; _local9++; _local22++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local3:b2Mat22; var _local4:b2Vec2; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local2:Number = 0; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Mat22; var _local18:b2Vec2; var _local20:b2ContactConstraint; var _local21:b2Body; var _local22:b2Body; var _local23:Number; var _local24:Number; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:int; var _local38:Number; var _local19:int; while (_local19 < m_constraintCount) { _local20 = m_constraints[_local19]; _local21 = _local20.body1; _local22 = _local20.body2; _local23 = _local21.m_angularVelocity; _local24 = _local22.m_angularVelocity; _local25 = _local21.m_linearVelocity; _local26 = _local22.m_linearVelocity; _local27 = _local21.m_invMass; _local28 = _local21.m_invI; _local29 = _local22.m_invMass; _local30 = _local22.m_invI; _local31 = _local20.normal.x; _local32 = _local20.normal.y; _local33 = _local32; _local34 = -(_local31); _local35 = _local20.friction; _local37 = _local20.pointCount; _local1 = 0; while (_local1 < _local37) { _local2 = _local20.points[_local1]; _local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y)); _local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x)); _local9 = ((_local7 * _local31) + (_local8 * _local32)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local10 = ((_local7 * _local33) + (_local8 * _local34)); _local12 = (_local2.tangentMass * -(_local10)); _local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0); _local11 = (_local13 - _local2.normalImpulse); _local38 = (_local35 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38); _local12 = (_local14 - _local2.tangentImpulse); _local15 = ((_local11 * _local31) + (_local12 * _local33)); _local16 = ((_local11 * _local32) + (_local12 * _local34)); _local25.x = (_local25.x - (_local27 * _local15)); _local25.y = (_local25.y - (_local27 * _local16)); _local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local26.x = (_local26.x + (_local29 * _local15)); _local26.y = (_local26.y + (_local29 * _local16)); _local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.normalImpulse = _local13; _local2.tangentImpulse = _local14; _local1++; }; _local21.m_angularVelocity = _local23; _local22.m_angularVelocity = _local24; _local19++; }; } public function FinalizeVelocityConstraints():void{ var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; var _local1:int; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 45
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function Evaluate(_arg1:b2ContactListener):void{ } override public function GetManifolds():Array{ return (null); } } }//package Box2D.Dynamics.Contacts
Section 46
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local6:b2Body = m_shape1.m_body; var _local7:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); var _local8:Array = [false, false]; var _local9:b2ContactPoint = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 47
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local7:b2ContactPoint; var _local8:int; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); var _local9:Array = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local9[_local13] == true){ } else { _local4 = m0.points[_local13]; if (_local4.id._key == _local12){ _local9[_local13] = true; _local10.normalImpulse = _local4.normalImpulse; _local10.tangentImpulse = _local4.tangentImpulse; _local11 = true; if (_arg1 != null){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Persist(_local7); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Add(_local7); }; _local8++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local8 = 0; while (_local8 < m0.pointCount) { if (_local9[_local8]){ } else { _local4 = m0.points[_local8]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; _local8++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 48
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_bias:Number; public var m_gamma:Number; public var m_u:b2Vec2; public var m_mass:Number; public var m_impulse:Number; public var m_dampingRatio:Number; public var m_frequencyHz:Number; public var m_length:Number; public function b2DistanceJoint(_arg1:b2DistanceJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; m_inv_dt = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local8:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; m_inv_dt = _arg1.inv_dt; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); var _local10:Number = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; var _local11:Number = ((_local6 * m_u.y) - (_local7 * m_u.x)); var _local12:Number = ((_local8 * m_u.y) - (_local9 * m_u.x)); var _local13:Number = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; if (m_frequencyHz > 0){ return (true); }; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local1 = _local2.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; var _local9:Number = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); var _local10:Number = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); var _local11:Number = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); var _local12:Number = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local13:Number = (-(m_mass) * _local12); m_u.Set(_local9, _local10); var _local14:Number = (_local13 * m_u.x); var _local15:Number = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; _local2 = _local3.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local7:Number = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); var _local11:Number = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); var _local12:Number = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); var _local13:Number = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); var _local14:Number = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); var _local15:Number = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); var _local16:Number = (_local15 * m_u.x); var _local17:Number = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } } }//package Box2D.Dynamics.Joints
Section 49
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2DistanceJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var length:Number; public var dampingRatio:Number; public var localAnchor2:b2Vec2; public var frequencyHz:Number; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); var _local5:Number = (_arg4.x - _arg3.x); var _local6:Number = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.Joints
Section 50
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_ground2:b2Body; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_ratio:Number; public var m_revolute2:b2RevoluteJoint; public var m_force:Number; public var m_mass:Number; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_revolute1:b2RevoluteJoint; public var m_prismatic1:b2PrismaticJoint; public var m_constant:Number; public var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); var _local2:int = _arg1.joint1.m_type; var _local3:int = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.m_body1; m_body1 = _arg1.joint1.m_body2; if (_local2 == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local4 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local4 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_local3 == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local5 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local5 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local4 + (m_ratio * _local5)); m_force = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local15:Number; var _local2:b2Body = m_ground1; var _local3:b2Body = m_ground2; var _local4:b2Body = m_body1; var _local5:b2Body = m_body2; var _local14:Number = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ var _local1:b2Mat22 = m_body2.m_xf.R; var _local2:Number = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); var _local3:Number = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); var _local4:Number = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local4:Number; var _local5:Number; var _local1:Number = 0; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; var _local6:Number = (m_constant - (_local4 + (m_ratio * _local5))); var _local7:Number = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local5:Number = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); var _local6:Number = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } } }//package Box2D.Dynamics.Joints
Section 51
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2GearJointDef extends b2JointDef { public var joint1:b2Joint; public var joint2:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 52
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var linear2:b2Vec2; public var angular1:Number; public var angular2:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 53
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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 GetBody2():b2Body{ return (m_body2); } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function GetNext():b2Joint{ return (m_next); } public function GetType():int{ return (m_type); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetReactionTorque():Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce():b2Vec2{ return (null); } public function SolvePositionConstraints():Boolean{ return (false); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetBody1():b2Body{ return (m_body1); } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public static function Destroy(_arg1:b2Joint, _arg2):void{ } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } } }//package Box2D.Dynamics.Joints
Section 54
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2JointDef { public var body2:b2Body; public var type:int; public var userData; public var collideConnected:Boolean; public var body1:b2Body; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 55
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; public var joint:b2Joint; } }//package Box2D.Dynamics.Joints
Section 56
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { private var K1:b2Mat22; private var K:b2Mat22; public var m_beta:Number; public var m_mass:b2Mat22; private var K2:b2Mat22; public var m_target:b2Vec2; public var m_gamma:Number; public var m_impulse:b2Vec2; public var m_C:b2Vec2; public var m_localAnchor:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local3:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); var _local2:Number = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); var _local4:b2Mat22 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); var _local5:Number = m_body2.m_mass; var _local6:Number = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); var _local7:Number = (((2 * _local5) * _arg1.dampingRatio) * _local6); var _local8:Number = ((_arg1.timeStep * _local5) * (_local6 * _local6)); m_gamma = (1 / (_local7 + _local8)); m_beta = (_local8 / (_local7 + _local8)); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local7:Number; var _local8:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); var _local9:Number = (_arg1.dt * m_impulse.x); var _local10:Number = (_arg1.dt * m_impulse.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ return (m_impulse); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local2:b2Body = m_body2; _local3 = _local2.m_xf.R; var _local6:Number = (m_localAnchor.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; var _local8:Number = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); var _local9:Number = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y)); var _local10:Number = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); var _local11:Number = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); var _local12:Number = m_impulse.x; var _local13:Number = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); var _local14:Number = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); var _local15:Number = (_arg1.dt * _local10); var _local16:Number = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } } }//package Box2D.Dynamics.Joints
Section 57
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var timeStep:Number; public var target:b2Vec2; public var maxForce:Number; public var dampingRatio:Number; public var frequencyHz:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; timeStep = (1 / 60); } } }//package Box2D.Dynamics.Joints
Section 58
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { public var m_limitForce:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_refAngle:Number; public var m_torque:Number; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_angularMass:Number; public var m_maxMotorForce:Number; public var m_localYAxis1:b2Vec2; public var m_force:Number; public var m_motorMass:Number; public var m_upperTranslation:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitState:int; public var m_linearMass:Number; public var m_motorJacobian:b2Jacobian; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_enableMotor:Boolean; public var m_linearJacobian:b2Jacobian; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_linearJacobian = new b2Jacobian(); m_motorJacobian = new b2Jacobian(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_linearJacobian.SetZero(); m_linearMass = 0; m_force = 0; m_angularMass = 0; m_torque = 0; m_motorJacobian.SetZero(); m_motorMass = 0; m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerTranslation = _arg1.lowerTranslation; m_upperTranslation = _arg1.upperTranslation; m_maxMotorForce = _arg1.maxMotorForce; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local8:Number; var _local11:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = _local2.m_invMass; var _local5:Number = _local3.m_invMass; var _local6:Number = _local2.m_invI; var _local7:Number = _local3.m_invI; var _local9:Number = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local10:Number = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); _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)); var _local12:Number = (_local3.m_angularVelocity - _local2.m_angularVelocity); var _local13:Number = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); var _local14:Number = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22 = m_body1.m_xf.R; var _local2:Number = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); var _local3:Number = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); var _local4:Number = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); var _local5:Number = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local9:b2Mat22; var _local10:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = _local3.m_invMass; var _local6:Number = _local4.m_invMass; var _local7:Number = _local3.m_invI; var _local8:Number = _local4.m_invI; _local9 = _local3.m_xf.R; var _local11:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local12:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; var _local13:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local14:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; var _local15:Number = (_local3.m_sweep.c.x + _local11); var _local16:Number = (_local3.m_sweep.c.y + _local12); var _local17:Number = (_local4.m_sweep.c.x + _local13); var _local18:Number = (_local4.m_sweep.c.y + _local14); var _local19:Number = (_local17 - _local15); var _local20:Number = (_local18 - _local16); _local9 = _local3.m_xf.R; var _local21:Number = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); var _local22:Number = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); var _local23:Number = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local24:Number = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); var _local25:Number = b2Math.b2Abs(_local23); var _local26:Number = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); var _local27:Number = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local28:Number = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; _local4 = _local2.m_xf.R; var _local14:Number = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); var _local15:Number = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); var _local16:Number = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); var _local17:Number = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorForce():Number{ return (m_motorForce); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } } }//package Box2D.Dynamics.Joints
Section 59
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PrismaticJointDef extends b2JointDef { public var motorSpeed:Number; public var localAxis1:b2Vec2; public var referenceAngle:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var maxMotorForce:Number; public var lowerTranslation:Number; public function b2PrismaticJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxis1.Set(1, 0); referenceAngle = 0; enableLimit = false; lowerTranslation = 0; upperTranslation = 0; enableMotor = false; maxMotorForce = 0; motorSpeed = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 60
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_limitState1:int; public var m_limitState2:int; public var m_ground:b2Body; public var m_maxLength2:Number; public var m_maxLength1:Number; public var m_limitPositionImpulse1:Number; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_constant:Number; public var m_positionImpulse:Number; public var m_state:int; public var m_ratio:Number; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitMass1:Number; public var m_limitMass2:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_limitForce1:Number; public var m_limitForce2:Number; public var m_u2:b2Vec2; public static const b2_minPulleyLength:Number = 2; public function b2PulleyJoint(_arg1:b2PulleyJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u1 = new b2Vec2(); m_u2 = new b2Vec2(); super(_arg1); m_ground = m_body1.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_ratio = _arg1.ratio; m_constant = (_arg1.length1 + (m_ratio * _arg1.length2)); m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio)); m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local3:b2Mat22; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local5:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local6:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local7:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local23:Number = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u1.Set((_local12 - _local4), (_local13 - _local5)); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local16 = m_u1.Length(); _local17 = m_u2.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local16)); } else { m_u1.SetZero(); }; if (_local17 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local17)); } else { m_u2.SetZero(); }; _local18 = ((m_constant - _local16) - (m_ratio * _local17)); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_pulleyMass) * _local18); _local20 = m_positionImpulse; m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19)); _local19 = (m_positionImpulse - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local14 = ((-(m_ratio) * _local19) * m_u2.x); _local15 = ((-(m_ratio) * _local19) * m_u2.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.SynchronizeTransform(); _local2.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); m_u1.Set((_local12 - _local4), (_local13 - _local5)); _local16 = m_u1.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local16)); m_u1.y = (m_u1.y * (1 / _local16)); } else { m_u1.SetZero(); }; _local18 = (m_maxLength1 - _local16); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local21 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local21); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local2.m_sweep.c.x + _local5); var _local11:Number = (_local2.m_sweep.c.y + _local6); var _local12:Number = (_local3.m_sweep.c.x + _local8); var _local13:Number = (_local3.m_sweep.c.y + _local9); var _local14:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local15:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local16:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local17:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); var _local18:Number = m_u1.Length(); var _local19:Number = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; var _local20:Number = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; var _local21:Number = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); var _local22:Number = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function GetReactionTorque():Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } public function GetLength1():Number{ var _local1:b2Vec2 = m_body1.GetWorldPoint(m_localAnchor1); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetLength2():Number{ var _local1:b2Vec2 = m_body2.GetWorldPoint(m_localAnchor2); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.Joints
Section 61
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength1:Number; public var maxLength2:Number; public var length1:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var ratio:Number; public var length2:Number; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); var _local8:Number = (_arg5.x - _arg3.x); var _local9:Number = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); var _local10:Number = (_arg6.x - _arg4.x); var _local11:Number = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; var _local12:Number = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 62
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { public var m_limitForce:Number; public var m_pivotMass:b2Mat22; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_limitState:int; public var m_motorMass:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var K:b2Mat22; public var m_pivotForce:b2Vec2; public var m_enableMotor:Boolean; public var m_referenceAngle:Number; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_upperAngle:Number; public var m_lowerAngle:Number; public var m_maxMotorTorque:Number; public static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_pivotForce = new b2Vec2(); m_pivotMass = new b2Mat22(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_referenceAngle = _arg1.referenceAngle; m_pivotForce.Set(0, 0); m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerAngle = _arg1.lowerAngle; m_upperAngle = _arg1.upperAngle; m_maxMotorTorque = _arg1.maxMotorTorque; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local10:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local11:Number = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); var _local12:Number = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); var _local13:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); var _local14:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); var _local15:Number = (_arg1.dt * _local13); var _local16:Number = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ return (m_pivotForce); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local6:b2Mat22; var _local25:Number; var _local26:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = 0; _local6 = _local3.m_xf.R; var _local7:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local9:Number = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; var _local10:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local11:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; var _local12:Number = (_local3.m_sweep.c.x + _local7); var _local13:Number = (_local3.m_sweep.c.y + _local8); var _local14:Number = (_local4.m_sweep.c.x + _local10); var _local15:Number = (_local4.m_sweep.c.y + _local11); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); var _local18:Number = _local3.m_invMass; var _local19:Number = _local4.m_invMass; var _local20:Number = _local3.m_invI; var _local21:Number = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); var _local22:Number = tImpulse.x; var _local23:Number = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local24:Number = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } public function GetMotorTorque():Number{ return (m_motorForce); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local7:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_limitForce); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } } }//package Box2D.Dynamics.Joints
Section 63
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2RevoluteJointDef extends b2JointDef { public var upperAngle:Number; public var enableMotor:Boolean; public var referenceAngle:Number; public var motorSpeed:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var lowerAngle:Number; public var maxMotorTorque:Number; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 64
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Body { public var m_next:b2Body; public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var m_xf:b2XForm; public var m_shapeList:b2Shape; public var m_force:b2Vec2; public var m_sweep:b2Sweep; public var m_mass:Number; public var m_torque:Number; public var m_userData; public var m_I:Number; public var m_flags:uint; public var m_world:b2World; public var m_prev:b2Body; public var m_invMass:Number; public var m_linearDamping:Number; public var m_type:int; public var m_angularDamping:Number; public var m_invI:Number; public var m_shapeCount:int; public var m_gravity_vector; public var m_sleepTime:Number; public var m_jointList:b2JointEdge; public var m_linearVelocity:b2Vec2; public var b_collisions;// = true public static var e_fixedRotationFlag:uint = 64; public static var e_frozenFlag:uint = 2; public static var e_maxTypes:uint = 3; public static var e_sleepFlag:uint = 8; private static var s_massData:b2MassData = new b2MassData(); public static var e_bulletFlag:uint = 32; public static var e_staticType:uint = 1; public static var e_islandFlag:uint = 4; public static var e_allowSleepFlag:uint = 16; private static var s_xf1:b2XForm = new b2XForm(); public static var e_dynamicType:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ m_gravity_vector = new b2Vec2(0, 1); m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function SynchronizeTransform():void{ m_xf.R.Set(m_sweep.a); var _local1:b2Mat22 = m_xf.R; var _local2:b2Vec2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function GetInertia():Number{ return (m_I); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; var _local2:Number = 0; var _local3:Number = 0; var _local4:b2MassData = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); var _local5:b2Mat22 = m_xf.R; var _local6:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; var _local7:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function PutToSleep():void{ m_flags = (m_flags | e_sleepFlag); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; } public function GetJointList():b2JointEdge{ return (m_jointList); } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); var _local4:b2Mat22 = m_xf.R; var _local5:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); var _local6:Boolean; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function SynchronizeShapes():Boolean{ var _local4:b2Shape; var _local1:b2XForm = s_xf1; _local1.R.Set(m_sweep.a0); var _local2:b2Mat22 = _local1.R; var _local3:b2Vec2 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); var _local5:Boolean; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x)); m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y)); m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)))); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; var _local5:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function 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{ if (m_world.m_lock == true){ return (null); }; var _local2:b2Shape = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); return (_local2); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge = m_jointList; while (_local2) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function DestroyShape(_arg1:b2Shape):void{ if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); var _local2:b2Shape = m_shapeList; var _local3:b2Shape; var _local4:Boolean; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_shapeList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorld():b2World{ return (m_world); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//package Box2D.Dynamics
Section 65
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2BodyDef { public var angularDamping:Number; public var angle:Number; public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var fixedRotation:Boolean; public var linearDamping:Number; public var massData:b2MassData; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.Dynamics
Section 66
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 67
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; 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 = _arg1.GetFilterData(); var _local4:b2FilterData = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; var _local5:Boolean = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.Dynamics
Section 68
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactListener { public function Add(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Persist(_arg1:b2ContactPoint):void{ } public function Result(_arg1:b2ContactResult):void{ } } }//package Box2D.Dynamics
Section 69
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairRemoved(_arg1, _arg2, _arg3):void{ if (_arg3 == null){ return; }; var _local4:b2Contact = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local7:b2Body; var _local8:b2Body; var _local9:Array; var _local10:b2ContactPoint; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2Vec2; var _local16:b2Vec2; var _local2:b2Shape = _arg1.m_shape1; var _local3:b2Shape = _arg1.m_shape2; var _local4:int = _arg1.m_manifoldCount; if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = _local2.m_body; _local8 = _local3.m_body; _local9 = _arg1.GetManifolds(); _local10 = s_evalCP; _local10.shape1 = _arg1.m_shape1; _local10.shape2 = _arg1.m_shape1; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; var _local5:b2Body = _local2.m_body; var _local6:b2Body = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape = (_arg1 as b2Shape); var _local4:b2Shape = (_arg2 as b2Shape); var _local5:b2Body = _local3.m_body; var _local6:b2Body = _local4.m_body; if ((((_local5.b_collisions == false)) || ((_local6.b_collisions == false)))){ return (m_nullContact); }; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; var _local7:b2Contact = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } public function Collide():void{ var _local2:b2Body; var _local3:b2Body; var _local1:b2Contact = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.Dynamics
Section 70
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; import flash.display.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_drawFlags:uint; public var m_lineThickness:Number;// = 1 public var m_drawScale:Number;// = 1 public var m_sprite:Sprite; public static var e_coreShapeBit:uint = 4; public static var e_shapeBit:uint = 1; public static var e_centerOfMassBit:uint = 64; public static var e_aabbBit:uint = 8; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_jointBit:uint = 2; public function b2DebugDraw(){ m_drawFlags = 0; } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function GetFlags():uint{ return (m_drawFlags); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } } }//package Box2D.Dynamics
Section 71
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeShape(_arg1:b2Shape):void{ } public function SayGoodbyeJoint(_arg1:b2Joint):void{ } } }//package Box2D.Dynamics
Section 72
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Island { public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies:Array; public var m_joints:Array; public var m_jointCapacity:int; public var m_contactCount:int; public var m_contacts:Array; public var m_contactCapacity:int; public var m_jointCount:int; public var m_allocator; public var m_bodyCount:int; private static var s_reportCR:b2ContactResult = new b2ContactResult(); public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){ var _local6:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; m_bodies = new Array(_arg1); _local6 = 0; while (_local6 < _arg1) { m_bodies[_local6] = null; _local6++; }; m_contacts = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { m_contacts[_local6] = null; _local6++; }; m_joints = new Array(_arg3); _local6 = 0; while (_local6 < _arg3) { m_joints[_local6] = null; _local6++; }; m_positionIterationCount = 0; } public function AddBody(_arg1:b2Body):void{ var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } public function Report(_arg1:Array):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; var _local4:int; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local8:*; var _local10:int; var _local11:Boolean; var _local12:Boolean; var _local13:Boolean; var _local14:Number; var _local15:Number; var _local16:Number; _local8 = new b2Vec2(); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local8.x = (_arg2.x * _local6.m_gravity_vector.x); _local8.y = (_arg2.y * _local6.m_gravity_vector.y); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_local8.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_local8.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; var _local9:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local9.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local9.SolveVelocityConstraints(); _local10 = 0; while (_local10 < m_jointCount) { _local7 = m_joints[_local10]; _local7.SolveVelocityConstraints(_arg1); _local10++; }; _local5++; }; _local9.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) { _local11 = _local9.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local12 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local13 = _local7.SolvePositionConstraints(); _local12 = ((_local12) && (_local13)); _local5++; }; if (((_local11) && (_local12))){ break; }; m_positionIterationCount++; }; }; Report(_local9.m_constraints); if (_arg4){ _local14 = Number.MAX_VALUE; _local15 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local16 = (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; _local14 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local16)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local15)))){ _local6.m_sleepTime = 0; _local14 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local14 = b2Math.b2Min(_local14, _local6.m_sleepTime); }; }; _local5++; }; if (_local14 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local5:b2Body; var _local6:Boolean; var _local3:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; var _local4:Number = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } }//package Box2D.Dynamics
Section 73
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var warmStarting:Boolean; public var positionCorrection:Boolean; public var dt:Number; public var maxIterations:int; public var dtRatio:Number; public var inv_dt:Number; } }//package Box2D.Dynamics
Section 74
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2World { public var m_inv_dt0:Number; public var m_boundaryListener:b2BoundaryListener; public var m_contactList:b2Contact; public var m_blockAllocator; public var m_contactListener:b2ContactListener; public var m_allowSleep:Boolean; public var m_broadPhase:b2BroadPhase; public var m_destructionListener:b2DestructionListener; public var m_jointCount:int; public var m_bodyCount:int; public var m_lock:Boolean; public var m_positionIterationCount:int; public var m_groundBody:b2Body; public var m_contactCount:int; public var m_debugDraw:b2DebugDraw; public var m_contactFilter:b2ContactFilter; public var m_bodyList:b2Body; public var m_stackAllocator; public var m_jointList:b2Joint; public var m_gravity:b2Vec2; public var m_contactManager:b2ContactManager; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); public static var m_continuousPhysics:Boolean; public static var m_warmStarting:Boolean; private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); public static var m_positionCorrection:Boolean; private static var s_xf:b2XForm = new b2XForm(); public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_positionCorrection = true; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_inv_dt0 = 0; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); var _local4:b2BodyDef = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; var _local2:b2Body = _arg1.m_body1; var _local3:b2Body = _arg1.m_body2; var _local4:b2XForm = _local2.m_xf; var _local5:b2XForm = _local3.m_xf; var _local6:b2Vec2 = _local4.position; var _local7:b2Vec2 = _local5.position; var _local8:b2Vec2 = _arg1.GetAnchor1(); var _local9:b2Vec2 = _arg1.GetAnchor2(); var _local10:b2Color = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } public function DrawDebugData():void{ var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local11:b2XForm; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); var _local1:uint = m_debugDraw.GetFlags(); var _local7:b2Vec2 = new b2Vec2(); var _local8:b2Vec2 = new b2Vec2(); var _local9:b2Vec2 = new b2Vec2(); var _local10:b2Color = new b2Color(0, 0, 0); var _local12:b2AABB = new b2AABB(); var _local13:b2AABB = new b2AABB(); var _local14:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; var _local2:b2JointEdge = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; var _local3:b2Shape = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; var _local5:b2Color = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; }; } public function GetContactCount():int{ return (m_contactCount); } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; var _local3:b2Island = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; var _local4:b2Contact = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; var _local5:b2Joint = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; var _local6:int = m_bodyCount; var _local7:Array = new Array(_local6); var _local8:b2Body = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.m_manifoldCount == 0){ } else { _local3.AddContact(_local12.contact); _local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag); _local11 = _local12.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local9; _local9 = (_local9 + 1); var _local16 = _temp2; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; }; _local12 = _local12.next; }; _local13 = _local2.m_jointList; while (_local13) { if (_local13.joint.m_islandFlag == true){ } else { _local3.AddJoint(_local13.joint); _local13.joint.m_islandFlag = true; _local11 = _local13.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local9; _local9 = (_local9 + 1); _local16 = _temp3; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; _local13 = _local13.next; }; }; }; _local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep); if (_local3.m_positionIterationCount > m_positionIterationCount){ m_positionIterationCount = _local3.m_positionIterationCount; }; _local10 = 0; while (_local10 < _local3.m_bodyCount) { _local2 = _local3.m_bodies[_local10]; if (_local2.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local10++; }; }; }; _local8 = _local8.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local14 = _local2.SynchronizeShapes(); if ((((_local14 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array = new Array(_arg3); var _local5:int = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); var _local6:int; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; var _local8:b2Island = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); var _local9:int = m_bodyCount; var _local10:Array = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.m_shape1; _local4 = _local11.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local19 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local19 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local19); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local19 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local19); }; }; _local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep); if ((((_local18 > 0)) && ((_local18 < 1)))){ _local18 = (((1 - _local18) * _local19) + _local18); if (_local18 > 1){ _local18 = 1; }; }; _local11.m_toi = _local18; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){ _local12 = _local11; _local13 = _local18; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.m_manifoldCount == 0){ } else { _local14 = _local5; if (_local14.IsStatic()){ _local14 = _local6; }; _local8.Clear(); _local15 = 0; var _temp1 = _local15; _local15 = (_local15 + 1); var _local22 = _temp1; _local10[_local22] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local15 > 0) { --_local15; _local2 = _local10[_local15]; _local8.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local8.m_contactCount == _local8.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function GetBodyList():b2Body{ return (m_bodyList); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function Validate():void{ m_broadPhase.Validate(); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetPositionCorrection(_arg1:Boolean):void{ m_positionCorrection = _arg1; } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local3:b2Body; var _local4:b2Shape; var _local2:b2Joint = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local5:b2Body; var _local6:b2Shape; var _local2:Boolean = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; var _local3:b2Body = _arg1.m_body1; var _local4:b2Body = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function CreateBody(_arg1:b2BodyDef):b2Body{ if (m_lock == true){ return (null); }; var _local2:b2Body = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function Step(_arg1:Number, _arg2:int):void{ m_lock = true; var _local3:b2TimeStep = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; _local3.dtRatio = (m_inv_dt0 * _arg1); _local3.positionCorrection = m_positionCorrection; _local3.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((m_continuousPhysics) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_inv_dt0 = _local3.inv_dt; m_lock = false; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } } }//package Box2D.Dynamics
Section 75
//DrawSine (com.midasplayer.extras.DrawSine) package com.midasplayer.extras { import flash.display.*; public class DrawSine extends MovieClip { private var target_mc:MovieClip; private var step_x:Number; private var my_height:Number; private var stroke_color:Number;// = 0 private var draw_fill:Boolean;// = false private var stroke_weight:Number;// = 1 private var fill_alpha:Number; private var fill_height:Number; private var draw_array; private var steps:Number; private var fill_color:Number;// = 0xFF0000 private var my_width:Number; public function DrawSine(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Number){ draw_array = new Array(); super(); target_mc = _arg1; my_width = _arg2; my_height = _arg3; steps = _arg4; step_x = (_arg2 / steps); var _local5:* = 0; while (_local5 < steps) { draw_array.push({x:(step_x * _local5), y:0}); _local5++; }; } public function set_fill(_arg1:Boolean, _arg2:Number, _arg3:Number):void{ draw_fill = _arg1; fill_color = (stroke_color = _arg2); fill_alpha = _arg3; } public function set_stroke(_arg1:Number, _arg2:Number):void{ stroke_weight = _arg1; stroke_color = _arg2; } public function draw_waves(_arg1:Array):void{ var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local2:* = draw_array.length; var _local3:* = _arg1.length; var _local4:* = 0; while (_local4 < _local3) { _local6 = (((_arg1[_local4].cycles * Math.PI) * 2) / steps); _local7 = 0; while (_local7 < _local2) { if (_local4 == 0){ draw_array[_local7].y = (Math.sin((_arg1[_local4].phase + (_local6 * _local7))) * _arg1[_local4].radius); } else { draw_array[_local7].y = (draw_array[_local7].y + (Math.sin((_arg1[_local4].phase + (_local6 * _local7))) * _arg1[_local4].radius)); }; _local7++; }; _local4++; }; target_mc.graphics.clear(); if (stroke_weight > 0){ target_mc.graphics.lineStyle(stroke_weight, stroke_color); }; if (draw_fill){ target_mc.graphics.beginFill(fill_color, fill_alpha); }; target_mc.graphics.moveTo(draw_array[0].x, draw_array[0].y); var _local5:* = 1; while (_local5 < _local2) { _local8 = draw_array[_local5].x; _local9 = draw_array[_local5].y; target_mc.graphics.lineTo(_local8, _local9); _local5++; }; if (draw_fill){ target_mc.graphics.lineTo(_local8, (my_height / 2)); target_mc.graphics.lineTo(0, (my_height / 2)); target_mc.graphics.lineTo(0, draw_array[0].y); target_mc.graphics.endFill(); }; } } }//package com.midasplayer.extras
Section 76
//md5 (com.midasplayer.extras.md5) package com.midasplayer.extras { 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 _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; _arg1[(_arg2 >> 5)] = (_arg1[(_arg2 >> 5)] | (128 << (_arg2 % 32))); _arg1[((((_arg2 + 64) >>> 9) << 4) + 14)] = _arg2; var _local3:Number = 1732584193; var _local4:Number = -271733879; var _local5:Number = -1732584194; var _local6:Number = 271733878; var _local7:Number = 0; while (_local7 < _arg1.length) { _local8 = _local3; _local9 = _local4; _local10 = _local5; _local11 = _local6; _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 7, -680876936); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 1)], 12, -389564586); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 17, 606105819); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 3)], 22, -1044525330); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 7, -176418897); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 5)], 12, 1200080426); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 17, -1473231341); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 7)], 22, -45705983); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 7, 1770035416); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 9)], 12, -1958414417); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 17, -42063); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 11)], 22, -1990404162); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 7, 1804603682); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 13)], 12, -40341101); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 17, -1502002290); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 15)], 22, 1236535329); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 5, -165796510); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 6)], 9, -1069501632); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 14, 643717713); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 0)], 20, -373897302); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 5, -701558691); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 10)], 9, 38016083); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 14, -660478335); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 4)], 20, -405537848); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 5, 568446438); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 14)], 9, -1019803690); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 14, -187363961); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 8)], 20, 1163531501); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 5, -1444681467); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 2)], 9, -51403784); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 14, 1735328473); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 12)], 20, -1926607734); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 4, -378558); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 8)], 11, -2022574463); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 16, 1839030562); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 14)], 23, -35309556); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 4, -1530992060); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 4)], 11, 1272893353); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 16, -155497632); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 10)], 23, -1094730640); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 4, 681279174); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 0)], 11, -358537222); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 16, -722521979); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 6)], 23, 76029189); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 4, -640364487); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 12)], 11, -421815835); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 16, 530742520); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 2)], 23, -995338651); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 6, -198630844); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 7)], 10, 1126891415); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 15, -1416354905); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 5)], 21, -57434055); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 6, 1700485571); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 3)], 10, -1894986606); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 15, -1051523); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 1)], 21, -2054922799); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 6, 1873313359); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 15)], 10, -30611744); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 15, -1560198380); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 13)], 21, 1309151649); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 6, -145523070); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 11)], 10, -1120210379); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 15, 718787259); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 9)], 21, -343485551); _local3 = safe_add(_local3, _local8); _local4 = safe_add(_local4, _local9); _local5 = safe_add(_local5, _local10); _local6 = safe_add(_local6, _local11); _local7 = (_local7 + 16); }; return ([_local3, _local4, _local5, _local6]); } public static function str2rstr_utf16le(_arg1:String):String{ var _local2 = ""; var _local3:Number = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode((_arg1.charCodeAt(_local3) & 0xFF), ((_arg1.charCodeAt(_local3) >>> 8) & 0xFF))); _local3++; }; return (_local2); } public static function 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 = ""; var _local3:Number = 0; while (_local3 < (_arg1.length * 32)) { _local2 = (_local2 + String.fromCharCode(((_arg1[(_local3 >> 5)] >>> (_local3 % 32)) & 0xFF))); _local3 = (_local3 + 8); }; return (_local2); } public static function 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:Number = 0; var _local3:Array = new Array((_arg1.length >> 2)); _local2 = 0; while (_local2 < _local3.length) { _local3[_local2] = 0; _local2++; }; _local2 = 0; while (_local2 < (_arg1.length * 8)) { _local3[(_local2 >> 5)] = (_local3[(_local2 >> 5)] | ((_arg1.charCodeAt((_local2 / 8)) & 0xFF) << (_local2 % 32))); _local2 = (_local2 + 8); }; return (_local3); } 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 _local4:Number; var _local2:String = (hexcase) ? "0123456789ABCDEF" : "0123456789abcdef"; var _local3 = ""; var _local5:Number = 0; while (_local5 < _arg1.length) { _local4 = _arg1.charCodeAt(_local5); _local3 = (_local3 + (_local2.charAt(((_local4 >>> 4) & 15)) + _local2.charAt((_local4 & 15)))); _local5++; }; return (_local3); } public static function 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 _local6:Number; var _local7:Number; var _local2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; var _local3 = ""; var _local4:Number = _arg1.length; var _local5:Number = 0; while (_local5 < _local4) { _local6 = (((_arg1.charCodeAt(_local5) << 16) | (((_local5 + 1) < _local4)) ? (_arg1.charCodeAt((_local5 + 1)) << 8) : 0) | (((_local5 + 2) < _local4)) ? _arg1.charCodeAt((_local5 + 2)) : 0); _local7 = 0; while (_local7 < 4) { if (((_local5 * 8) + (_local7 * 6)) > (_arg1.length * 8)){ _local3 = (_local3 + b64pad); } else { _local3 = (_local3 + _local2.charAt(((_local6 >>> (6 * (3 - _local7))) & 63))); }; _local7++; }; _local5 = (_local5 + 3); }; return (_local3); } public static function safe_add(_arg1:Number, _arg2:Number):Number{ var _local3:Number = ((_arg1 & 0xFFFF) + (_arg2 & 0xFFFF)); var _local4:Number = (((_arg1 >> 16) + (_arg2 >> 16)) + (_local3 >> 16)); return (((_local4 << 16) | (_local3 & 0xFFFF))); } public static function str2rstr_utf8(_arg1:String):String{ var _local4:Number; var _local5:Number; var _local2 = ""; var _local3:Number = -1; while (++_local3 < _arg1.length) { _local4 = _arg1.charCodeAt(_local3); _local5 = (((_local3 + 1) < _arg1.length)) ? _arg1.charCodeAt((_local3 + 1)) : 0; if ((((((((0xD800 <= _local4)) && ((_local4 <= 56319)))) && ((0xDC00 <= _local5)))) && ((_local5 <= 57343)))){ _local4 = ((65536 + ((_local4 & 1023) << 10)) + (_local5 & 1023)); _local3++; }; if (_local4 <= 127){ _local2 = (_local2 + String.fromCharCode(_local4)); } else { if (_local4 <= 2047){ _local2 = (_local2 + String.fromCharCode((192 | ((_local4 >>> 6) & 31)), (128 | (_local4 & 63)))); } else { if (_local4 <= 0xFFFF){ _local2 = (_local2 + String.fromCharCode((224 | ((_local4 >>> 12) & 15)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63)))); } else { if (_local4 <= 2097151){ _local2 = (_local2 + String.fromCharCode((240 | ((_local4 >>> 18) & 7)), (128 | ((_local4 >>> 12) & 63)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63)))); }; }; }; }; }; return (_local2); } public static function rstr_hmac_md5(_arg1:String, _arg2:String):String{ var _local3:Array = rstr2binl(_arg1); if (_local3.length > 16){ _local3 = binl_md5(_local3, (_arg1.length * 8)); }; var _local4:Array = new Array(16); var _local5:Array = new Array(16); var _local6:Number = 0; while (_local6 < 16) { _local4[_local6] = (_local3[_local6] ^ 909522486); _local5[_local6] = (_local3[_local6] ^ 1549556828); _local6++; }; var _local7:Array = binl_md5(_local4.concat(rstr2binl(_arg2)), (0x0200 + (_arg2.length * 8))); return (binl2rstr(binl_md5(_local5.concat(_local7), (0x0200 + 128)))); } public static function str2rstr_utf16be(_arg1:String):String{ var _local2 = ""; var _local3:Number = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode(((_arg1.charCodeAt(_local3) >>> 8) & 0xFF), (_arg1.charCodeAt(_local3) & 0xFF))); _local3++; }; return (_local2); } public static function rstr2any(_arg1:String, _arg2:String):String{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Array; var _local3:Number = _arg2.length; var _local4:Array = []; var _local9:Array = ((_arg1.length / 2) as Array); _local5 = 0; while (_local5 < _local9.length) { _local9[_local5] = ((_arg1.charCodeAt((_local5 * 2)) << 8) | _arg1.charCodeAt(((_local5 * 2) + 1))); _local5++; }; while (_local9.length > 0) { _local8 = []; _local7 = 0; _local5 = 0; while (_local5 < _local9.length) { _local7 = ((_local7 << 16) + _local9[_local5]); _local6 = Math.floor((_local7 / _local3)); _local7 = (_local7 - (_local6 * _local3)); if ((((_local8.length > 0)) || ((_local6 > 0)))){ _local8[_local8.length] = _local6; }; _local5++; }; _local4[_local4.length] = _local7; _local9 = _local8; }; var _local10 = ""; _local5 = (_local4.length - 1); while (_local5 >= 0) { _local10 = (_local10 + _arg2.charAt(_local4[_local5])); _local5--; }; return (_local10); } public static function rstr_md5(_arg1:String):String{ return (binl2rstr(binl_md5(rstr2binl(_arg1), (_arg1.length * 8)))); } } }//package com.midasplayer.extras
Section 77
//SimpleParticle (com.midasplayer.extras.SimpleParticle) package com.midasplayer.extras { import flash.display.*; public dynamic class SimpleParticle extends Shape { private var _color:Number;// = 0 private var _size:Number;// = 1 private var _type:String;// = "rect" public static var RECT:String = "rect"; public static var CIRCLE:String = "circle"; public function get size():Number{ return (_size); } public function set size(_arg1:Number){ _size = _arg1; draw(); } public function get color():Number{ return (_color); } public function set color(_arg1:Number){ _color = _arg1; draw(); } public function get type():String{ return (_type); } private function draw(){ clear(); graphics.beginFill(_color, 1); switch (type){ case RECT: graphics.drawRect((-(size) / 2), (-(size) / 2), size, size); break; case CIRCLE: graphics.drawCircle((-(size) / 2), (-(size) / 2), size); break; }; graphics.endFill(); } public function clear(){ graphics.clear(); } public function set type(_arg1:String){ _type = _arg1; draw(); } } }//package com.midasplayer.extras
Section 78
//SineWave (com.midasplayer.extras.SineWave) package com.midasplayer.extras { public class SineWave { private var my_cycles:Number; private var my_radius:Number; private var my_phase:Number; private var my_inc:Number; public function SineWave(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){ my_phase = _arg1; my_cycles = _arg2; my_radius = _arg3; my_inc = _arg4; } public function set radius(_arg1:Number):void{ my_radius = _arg1; } public function get cycles():Number{ return (my_cycles); } public function get radius():Number{ return (my_radius); } public function set cycles(_arg1:Number):void{ my_cycles = _arg1; } public function get phase():Number{ return (my_phase); } public function set inc(_arg1:Number):void{ my_inc = _arg1; } public function set phase(_arg1:Number):void{ my_phase = _arg1; } public function get inc():Number{ return (my_inc); } } }//package com.midasplayer.extras
Section 79
//Water (com.midasplayer.extras.Water) package com.midasplayer.extras { import flash.display.*; public class Water extends MovieClip { private var m_lines:Array; public function Water(){ m_lines = new Array(); super(); } public function decrThickness(_arg1:Boolean):Boolean{ var _local2:int; var _local3:Boolean; var _local4:int; var _local5:Boolean; if (_arg1){ _local2 = 0; while (_local2 < m_lines.length) { _local3 = false; if (m_lines[_local2].decrThickness()){ _local3 = true; } else { return (false); }; _local2++; }; return (_local3); //unresolved jump }; _local4 = 0; while (_local4 < m_lines.length) { _local5 = false; if (m_lines[_local4].incrThickness()){ _local5 = true; } else { return (false); }; _local4++; }; return (_local5); } public function init(_arg1:Number, _arg2:Number){ var _local3:WaterLine; var _local5:int; var _local4:uint = 0xFF0000; if (this.name == "RED"){ _local4 = 0xFF0000; _local5 = 1; }; if (this.name == "GREEN"){ _local4 = 0xFF00; _local5 = 1; }; if (this.name == "BLUE"){ _local4 = 2782939; _local5 = 1; }; var _local6:* = 0; while (_local6 < _local5) { _local3 = new WaterLine(); _local3.addParams(_local4, _arg1, _arg2); _local3.x = (_local6 * 1.5); addChild(_local3); m_lines.push(_local3); _local6++; }; } } }//package com.midasplayer.extras
Section 80
//WaterLine (com.midasplayer.extras.WaterLine) package com.midasplayer.extras { import flash.events.*; import flash.display.*; public class WaterLine extends MovieClip { private var _height:Number;// = 400 private var _line:Shape; private var _particlesQuantity:Number;// = 20 private var _color:uint; private var _bubbles:Array; private var _step:Number; private var _particles:Array; private var _lineSize:Number; public function WaterLine(){ trace("WaterLine()"); } public function incrThickness():Boolean{ _lineSize = (_lineSize + 0.5); if (_lineSize >= 5){ return (true); }; return (false); } public function get randomDirection():Number{ return (((Math.round((Math.random() * 1)) * 2) - 1)); } public function addParams(_arg1:uint, _arg2:Number, _arg3:Number):void{ _color = _arg1; _height = _arg2; _lineSize = _arg3; init(); } private function createBubbles():void{ var _local2:SimpleParticle; var _local4:Number; var _local5:Number; var _local6:*; var _local1:Array = [_color, _color]; var _local3:* = 0; while (_local3 < 5) { _local2 = new SimpleParticle(); _local2.type = SimpleParticle.CIRCLE; _local2.size = 0.8; _local2.color = _local1[Math.round((Math.random() * (_local1.length - 1)))]; _local2.alpha = 1; addChild(_local2); _bubbles.push(_local2); _local3++; }; for (_local6 in _bubbles) { _local2 = _bubbles[_local6]; if (!_local2.isOut){ _local2.y = (_local2.y + ((Math.random() * 5) + 10)); _local4 = Math.floor((_local2.y / this._step)); _local2.x = (_local2.x + (((_particles[_local4].x + ((Math.random() * 1) * randomDirection)) - _local2.x) * 0.8)); _local5 = Math.sqrt((Math.pow((mouseX - _local2.x), 2) + Math.pow((mouseY - _local2.y), 2))); if ((((_local5 < 4)) && (!(_local2.isOut)))){ }; } else { _local2.y = (_local2.y + _local2.speedY); _local2.speedY = (_local2.speedY + 3); _local2.x = (_local2.x + _local2.speedX); _local2.alpha = (_local2.alpha - 0.005); }; if ((((_local2.y > _height)) || ((_local2.alpha < 0)))){ _bubbles.splice(_local6, 1); _local2.parent.removeChild(_local2); _local2 = null; }; }; } private function createLine():void{ var _local1:SimpleParticle; var _local2:* = 0; while (_local2 < _particlesQuantity) { _local1 = new SimpleParticle(); _local1.elasticX = 0; _local1.yIni = (_local1.y = (_step * _local2)); addChild(_local1); _particles.push(_local1); _local2++; }; } private function init(){ _line = new Shape(); _line.alpha = 0.8; addChild(_line); _bubbles = []; _particles = []; _step = (_height / (_particlesQuantity - 1)); createLine(); addEventListener(Event.ENTER_FRAME, animate); } private function animate(_arg1:Event):void{ var _local2:SimpleParticle; var _local3:SimpleParticle; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local9:Number; var _local8:Number = 10; var _local10:Number = 3; _line.graphics.clear(); _line.graphics.moveTo(_particles[0].x, _particles[0].y); _line.graphics.lineStyle(_lineSize, _color, 1); var _local11:* = 0; while (_local11 < _particles.length) { _local3 = _particles[_local11]; if (_local11 == 0){ _local3.x = (_local3.x + ((((Math.random() * _local10) * randomDirection) - _local3.x) * 0.9)); }; _local2 = ((_local11)>0) ? _particles[(_local11 - 1)] : _local3; _local7 = Math.sqrt((Math.pow((mouseX - 0), 2) + Math.pow((mouseY - _local3.yIni), 2))); if (_local7 < _local8){ } else { _local5 = _local2.x; _local3.elasticX = ((_local3.elasticX * 0.4) + ((_local5 - _local3.x) * 0.4)); _local3.x = (_local3.x + _local3.elasticX); }; if (_local11 > 0){ _line.graphics.curveTo(_local2.x, _local2.y, ((_local2.x + _local3.x) / 2), ((_local2.y + _local3.y) / 2)); }; _local11++; }; } private function spreadBubble(_arg1:SimpleParticle):void{ _arg1.isOut = true; parent.parent.addChild(_arg1); _arg1.size = 1.2; _arg1.alpha = 0.35; _arg1.x = (parent.x + _arg1.x); _arg1.y = (parent.y + _arg1.y); _arg1.speedY = (-5 - (Math.random() * 10)); _arg1.speedX = (((Math.random() * 15) + 1) * randomDirection); } public function decrThickness():Boolean{ _lineSize--; if (_lineSize <= 0){ return (true); }; return (false); } } }//package com.midasplayer.extras
Section 81
//WaveEngine (com.midasplayer.extras.WaveEngine) package com.midasplayer.extras { import flash.events.*; import flash.display.*; public class WaveEngine extends MovieClip { private var m_wave:DrawSine; private var m_fillColor:uint; private var m_num_waves:int;// = 3 private var m_waveHolder:MovieClip; private var m_sinArr:Array; private var m_rootRef:MovieClip; public function WaveEngine(_arg1:MovieClip, _arg2:int, _arg3:int, _arg4:uint, _arg5:uint, _arg6:MovieClip){ m_waveHolder = new MovieClip(); m_sinArr = new Array(); super(); m_rootRef = _arg1; m_waveHolder = _arg6; m_wave = new DrawSine(m_waveHolder, _arg2, _arg3, 100); var _local7:* = 0; while (_local7 < m_num_waves) { m_sinArr.push(new SineWave(((Math.random() * Math.PI) * 1.5), (Math.random() * 1.5), ((Math.random() * 1.5) + 1), (Math.random() - 0.5))); _local7++; }; m_wave.set_stroke(3, _arg5); m_wave.set_fill(true, _arg4, 100); m_fillColor = _arg4; } public function startWave():void{ m_rootRef.addEventListener(Event.ENTER_FRAME, update); } public function getWave():MovieClip{ return (m_waveHolder); } private function update(_arg1:Event):void{ var _local2:*; for (_local2 in m_sinArr) { m_sinArr[_local2].phase = (m_sinArr[_local2].phase + m_sinArr[_local2].inc); }; m_wave.set_fill(true, m_fillColor, 1); m_wave.draw_waves(m_sinArr); } public function stopWave():void{ m_rootRef.removeEventListener(Event.ENTER_FRAME, update); } public function colorUpdate(_arg1:uint):void{ var _local2:String = ("0x" + _arg1.toString(16)); m_fillColor = uint(_local2); } } }//package com.midasplayer.extras
Section 82
//KingAPI (com.midasplayer.KingAPI) package com.midasplayer { import flash.events.*; import com.midasplayer.extras.*; 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 so:SharedObject; var rnd1:Number; var rnd2:Number; var name = _arg1; var from = _arg2; gameName = name; fromURL = from; var loadCounter:URLLoader = new URLLoader(); var reqvars:URLVariables = 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; var request:URLRequest = 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 = URLLoader(_arg1.target); trace(("loadCounter.data" + _local2.data)); } public static function submitInternalScore():void{ checkScore(); var _local1:int = ((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 = new URLVariables(); _local3.game = gameName; _local3.from = fromURL; _local3.type = _arg1; _local3.session = sessionID; if (_arg2 != null){ _local3.redirect = _arg2; }; var _local4 = "_blank"; if (isHome){ _local4 = "_top"; }; navigateToURL(new URLRequest(((bounceURL + "?") + _local3.toString())), _local4); } private static function loadCountHandler(_arg1:Event):void{ var vars:URLVariables; var event = _arg1; var loadCounter:URLLoader = 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)); dispatcher.dispatchEvent(new Event(INITIALIZED_EVENT)); }; } 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 score = _arg1; var hash:String = 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 level = _arg1; var hash:String = 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{ checkScore(); var _local2:int = ((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 achievement = _arg1; var hash:String = md5.encrypt(((((achievement + ":") + gameName) + ":") + SAK)); try { if (isHome){ ExternalInterface.call("submitAchievement", achievement, hash); }; } catch(e:Error) { trace(e); }; } } }//package com.midasplayer
Section 83
//MainLoader (com.midasplayer.MainLoader) package com.midasplayer { import flash.events.*; import flash.display.*; import com.midasplayer.extras.*; import fl.transitions.*; import flash.geom.*; import fl.transitions.easing.*; import flash.media.*; public dynamic class MainLoader extends main { private var STAGE_WIDTH:Number;// = 640 private var m_waveEngineCrown:WaveEngine; private var m_streamBlue:Boolean;// = false private var m_clsRed:Water; private var m_ferryGreen:MovieClip; private var m_overBtn:Boolean;// = false private var m_tween:Tween; private var m_startColor:ColorTransform; private var m_dist:Number; private var m_ferryBlue:MovieClip; private var m_yellowDest:Number; private var m_logoHolder:Sprite; private var m_prevPerc:Number;// = -1 private var m_tweenBounceLogo:Tween; private var m_bg:Sprite; private var m_streamHeight:Number; private var m_step:Number; private var m_logoFill:Boolean;// = true private var m_isLoaded:Boolean;// = false private var m_waveHolderLogo:MovieClip; private var m_maskRown:MovieClip; private var m_sun:Sprite; private var m_mask:MovieClip; private var m_rootRef:MovieClip; private var m_crownFill:Boolean;// = false private var m_clsGreen:Water; private var m_GREEN:MovieClip; private var m_loaderContent:Array; private var m_safari:Boolean;// = false private var m_bounce:Boolean;// = false private var m_colorOff:Boolean;// = false private var m_RED:MovieClip; private var m_streamGreen:Boolean;// = true private var MOCHI:String;// = "" private var m_otherGames:Sprite; private var m_streamRed:Boolean;// = false private var STAGE_HEIGHT:Number;// = 480 private var m_ferryRed:MovieClip; private var m_pressBtn:Boolean;// = false private var GAME_NAME:String;// = "Vehicles" private var m_count;// = 0 private var m_play:Sprite; private var m_sampleLoadPerc:Number;// = -1 private var m_gameFrameRate:int; private var m_clsBlue:Water; private var m_endColor:ColorTransform; private var m_waveHolderCrown:MovieClip; private var m_BLUE:MovieClip; private var m_greenDest:Number; private var m_waveEngineLogo:WaveEngine; public function MainLoader(){ m_loaderContent = new Array(); m_waveHolderLogo = new MovieClip(); m_waveHolderCrown = new MovieClip(); m_play = new Sprite(); m_otherGames = new Sprite(); m_mask = new MovieClip(); m_maskRown = new MovieClip(); m_RED = new WaterHolderR(); m_GREEN = new WaterHolderG(); m_BLUE = new WaterHolderB(); m_ferryGreen = new ferryGreen(); m_ferryRed = new ferryRed(); m_ferryBlue = new ferryBlue(); super(); addFrameScript(0, frame1, 1, frame2, 40, frame41, 63, frame64, 75, frame76, 107, frame108); trace("MainLoader()"); stop(); m_rootRef = this; m_bg = new Sprite(); m_bg.graphics.beginFill(0x333333, 1); m_bg.graphics.drawRect(0, 0, STAGE_WIDTH, STAGE_HEIGHT); m_bg.addEventListener(MouseEvent.CLICK, openKingPage); m_rootRef.addChild(m_bg); m_loaderContent.push(m_bg); stage.scaleMode = StageScaleMode.NO_SCALE; KingAPI.addEventListener(KingAPI.INITIALIZED_EVENT, onKingApiInit); KingAPI.addEventListener(KingAPI.HOST_BANNED_EVENT, onKingApiInit); KingAPI.init(GAME_NAME, root.loaderInfo.url); addChild(this.adBox); } private function playLoaderMovie():void{ var _local1:MovieClip = new mcFerryLine(); m_rootRef.addChild(m_ferryGreen); m_rootRef.addChild(m_ferryRed); m_rootRef.addChild(m_ferryBlue); m_ferryGreen.x = ((STAGE_WIDTH / 2) - 2); m_ferryRed.x = ((m_ferryGreen.x - (m_ferryGreen.width / 2)) + 15); m_ferryBlue.x = ((m_ferryGreen.x + (m_ferryGreen.width / 2)) - 17); m_ferryBlue.y = (m_ferryGreen.y = (m_ferryRed.y = (m_bg.y + 15))); m_loaderContent.push(m_ferryGreen); m_loaderContent.push(m_ferryRed); m_loaderContent.push(m_ferryBlue); _local1.x = (STAGE_WIDTH / 2); _local1.y = ((m_ferryGreen.y + m_ferryGreen.height) - 9); m_streamHeight = ((STAGE_HEIGHT / 2) - 40); m_clsRed = m_RED.RED; m_clsRed.init(m_streamHeight, 1); m_clsGreen = m_GREEN.GREEN; m_clsGreen.init(m_streamHeight, 1); m_clsBlue = m_BLUE.BLUE; m_clsBlue.init(m_streamHeight, 1); m_RED.alpha = (m_GREEN.alpha = (m_BLUE.alpha = 0)); m_rootRef.addChild(m_RED); m_rootRef.addChild(m_GREEN); m_rootRef.addChild(m_BLUE); m_loaderContent.push(m_RED); m_loaderContent.push(m_GREEN); m_loaderContent.push(m_BLUE); m_RED.x = ((STAGE_WIDTH / 2) - 22); m_GREEN.x = ((STAGE_WIDTH / 2) - 4); m_BLUE.x = ((STAGE_WIDTH / 2) + 16); m_RED.y = (m_GREEN.y = (m_BLUE.y = _local1.y)); m_waveEngineLogo = new WaveEngine(m_rootRef, 205.8, 120, 0xFF00, 0xFF00, m_waveHolderLogo); m_waveHolderLogo = m_waveEngineLogo.getWave(); m_rootRef.addChild(m_waveHolderLogo); m_loaderContent.push(m_waveHolderLogo); m_waveEngineCrown = new WaveEngine(m_rootRef, 67.5, 100, 0xFFAA00, 0xFFAA00, m_waveHolderCrown); m_waveHolderCrown = m_waveEngineCrown.getWave(); m_rootRef.addChild(m_waveHolderCrown); m_loaderContent.push(m_waveHolderCrown); m_logoHolder = new mcLogoHolder(); m_logoHolder.x = (STAGE_WIDTH / 2); m_logoHolder.y = ((STAGE_HEIGHT / 2) - 2); m_logoHolder.mouseEnabled = false; m_rootRef.addChild(m_logoHolder); m_loaderContent.push(m_logoHolder); m_mask = new mcLogoMask(); m_mask.x = m_logoHolder.x; m_mask.y = m_logoHolder.y; m_rootRef.addChild(m_mask); m_loaderContent.push(m_mask); m_maskRown = new mcCrownMask(); m_maskRown.x = m_logoHolder.x; m_maskRown.y = m_logoHolder.y; m_rootRef.addChild(m_maskRown); m_loaderContent.push(m_maskRown); m_waveHolderLogo.mask = m_mask; m_waveHolderLogo.x = ((STAGE_WIDTH / 2) - (m_mask.width / 2)); m_waveHolderLogo.y = (((STAGE_HEIGHT / 2) + (m_mask.height / 2)) + 15); m_waveHolderCrown.mask = m_maskRown; m_waveHolderCrown.x = (m_logoHolder.x - (m_maskRown.width / 2)); m_waveHolderCrown.y = (m_logoHolder.y + 4); m_waveEngineLogo.startWave(); m_waveEngineCrown.startWave(); m_greenDest = ((m_waveHolderLogo.y - (120 / 2)) - 10); m_yellowDest = (m_waveHolderCrown.y - (100 / 2)); m_dist = (m_waveHolderCrown.y - m_yellowDest); m_startColor = new ColorTransform(); m_startColor.color = 0xFF00; m_endColor = new ColorTransform(); m_endColor.color = 35886; m_play = new mcPlay(); m_play.x = (STAGE_WIDTH / 2); m_play.y = ((m_logoHolder.y + m_logoHolder.height) - 5); m_play.buttonMode = true; m_play.alpha = 0; m_play.visible = false; m_play.addEventListener(MouseEvent.MOUSE_UP, onPlayReleased); m_play.addEventListener(MouseEvent.MOUSE_OVER, onBtnOver); m_play.addEventListener(MouseEvent.MOUSE_OUT, onBtnOut); m_rootRef.addChild(m_play); m_loaderContent.push(m_play); m_otherGames = new mcOtherGames(); m_otherGames.x = (STAGE_WIDTH / 2); m_otherGames.y = ((m_play.y + m_play.height) + 15); m_otherGames.buttonMode = true; m_otherGames.alpha = 0; m_otherGames.visible = false; m_otherGames.addEventListener(MouseEvent.MOUSE_UP, onOtherReleased); m_otherGames.addEventListener(MouseEvent.MOUSE_OVER, onBtnOver); m_otherGames.addEventListener(MouseEvent.MOUSE_OUT, onBtnOut); m_rootRef.addChild(m_otherGames); m_loaderContent.push(m_otherGames); m_rootRef.addEventListener(Event.ENTER_FRAME, update); m_safari = ((stage.loaderInfo.bytesTotal == 0)) ? true : false; } function frame76(){ if (main.m_cur_music_num != 1){ if (main.m_cur_music){ main.m_cur_music.stop(); }; main.m_cur_music = main.m_main.Menu_Music.play(0, 9999); main.m_cur_music_num = 1; }; } private function onLoaderMovieFinished():void{ trace("onGameLoaded()"); m_tween.removeEventListener(TweenEvent.MOTION_CHANGE, tweenTransformCrown); m_rootRef.removeEventListener(Event.ENTER_FRAME, update); } private function onPlayReleased(_arg1:MouseEvent):void{ cleanUp(); gotoGame(); } private function openKingPage(_arg1:Event):void{ trace(("openKingPage() " + _arg1)); KingAPI.openLoaderMovieLink(); } private function onBtnOut(_arg1:MouseEvent):void{ _arg1.target.removeEventListener(MouseEvent.MOUSE_DOWN, onBtnPress); if (m_pressBtn){ _arg1.target.x = (_arg1.target.x - 1); _arg1.target.y = (_arg1.target.y - 2); m_pressBtn = false; }; } private function onBtnPress(_arg1:MouseEvent):void{ m_pressBtn = true; _arg1.target.x = (_arg1.target.x + 1); _arg1.target.y = (_arg1.target.y + 2); } private function onKingApiInit(_arg1:Event):void{ trace(("onKingApiInit() :" + _arg1.type)); if (MOCHI != ""){ MochiBot.track(this, MOCHI); }; m_gameFrameRate = root.stage.frameRate; root.stage.frameRate = 30; if (KingAPI.banned){ showBannedScreen(); return; }; playLoaderMovie(); } function frame1(){ this.b_first = true; } function frame2(){ stop(); this.b_first = true; main.m_main.InitMain(); } function frame108(){ gotoAndStop("Menu"); } private function onBtnOver(_arg1:MouseEvent):void{ _arg1.target.addEventListener(MouseEvent.MOUSE_DOWN, onBtnPress); } private function tweenTransformLogo(_arg1:TweenEvent):void{ m_waveEngineLogo.colorUpdate(interpolateColor(m_startColor, m_endColor, m_tween.position).color); } function frame41(){ if (this.b_first){ main.m_main.Menu_Music = new Menu_Music(); main.m_main.Game_Music = new Game_Music(); main.m_main.Block_Remove = new Block_Remove(); main.m_main.Car_Reverse = new Car_Reverse(); main.m_main.Crush_1 = new Crush_1(); main.m_main.Crush_2 = new Crush_2(); main.m_main.Game_Loose = new Game_Loose(); main.m_main.Game_Win = new Game_Win(); main.m_main.Game_Restart = new Game_Restart(); main.m_main.Med_Break = new Med_Break(); main.m_main.Med_Start = new Med_Start(); main.m_main.Parking_In = new Parking_In(); main.m_main.Parking_Out = new Parking_Out(); main.m_main.Police_Break = new Police_Break(); main.m_main.Police_Start = new Police_Start(); this.b_first = false; }; } private function cleanUp():void{ m_otherGames.removeEventListener(MouseEvent.MOUSE_UP, onOtherReleased); m_otherGames.removeEventListener(MouseEvent.MOUSE_DOWN, onBtnPress); m_otherGames.removeEventListener(MouseEvent.MOUSE_OVER, onBtnOver); m_otherGames.removeEventListener(MouseEvent.MOUSE_OUT, onBtnOut); m_play.removeEventListener(MouseEvent.MOUSE_UP, onPlayReleased); m_play.removeEventListener(MouseEvent.MOUSE_DOWN, onBtnPress); m_play.removeEventListener(MouseEvent.MOUSE_OVER, onBtnOver); m_play.removeEventListener(MouseEvent.MOUSE_OUT, onBtnOut); var _local1:int; while (_local1 < m_loaderContent.length) { m_rootRef.removeChild(m_loaderContent[_local1]); m_loaderContent[_local1] = null; _local1++; }; } private function showBannedScreen():void{ var _local1:Sprite = new mcBannedSign(); _local1.buttonMode = true; _local1.addEventListener(MouseEvent.CLICK, openKingPage); m_rootRef.addChild(_local1); } private function update(_arg1:Event):void{ var _local2:int; var _local3:int; var _local4:MovieClip; var _local5:Sound; var _local6:Sound; if (m_safari){ if (m_rootRef.framesLoaded == m_rootRef.totalFrames){ m_isLoaded = true; }; } else { if ((((stage.loaderInfo.bytesLoaded == stage.loaderInfo.bytesTotal)) && (!(m_isLoaded)))){ m_isLoaded = true; }; }; m_count++; if (m_streamGreen){ if (m_count == 1){ m_GREEN.height = (m_GREEN.height - m_GREEN.height); m_GREEN.alpha = 1; m_ferryGreen.gotoAndStop("on"); }; m_GREEN.height = (m_GREEN.height + 20); if (m_GREEN.height >= m_streamHeight){ m_GREEN.height = m_streamHeight; if (m_clsGreen.decrThickness(false)){ m_streamGreen = false; m_streamBlue = true; m_count = 0; }; }; }; if (m_streamBlue){ if (m_count >= 40){ if (m_count == 40){ m_BLUE.height = (m_BLUE.height - m_BLUE.height); m_BLUE.alpha = 1; m_ferryBlue.gotoAndStop("on"); m_tween = new Tween(m_waveHolderLogo, "", None.easeNone, 0, 1, 2, true); m_tween.addEventListener(TweenEvent.MOTION_CHANGE, tweenTransformLogo); }; m_BLUE.height = (m_BLUE.height + 20); if (m_BLUE.height >= m_streamHeight){ m_BLUE.height = m_streamHeight; if (m_clsBlue.decrThickness(false)){ m_streamBlue = false; }; }; }; }; if (m_logoFill){ if (m_waveHolderLogo.y > m_greenDest){ m_waveHolderLogo.y = (m_waveHolderLogo.y - 0.3); } else { m_waveHolderLogo.y = m_greenDest; if (!m_streamBlue){ m_colorOff = true; m_waveEngineLogo.stopWave(); }; }; }; if (m_colorOff){ if (m_logoFill){ if (m_clsBlue.decrThickness(true)){ if (m_BLUE.rotation != 180){ m_BLUE.rotation = 180; m_BLUE.y = (STAGE_HEIGHT / 2); m_ferryBlue.gotoAndStop("off"); }; m_BLUE.scaleY = (m_BLUE.scaleY - 0.1); if (m_BLUE.scaleY < 0){ m_BLUE.alpha = 0; m_colorOff = false; m_logoFill = false; m_count = 0; m_crownFill = true; m_streamRed = true; m_startColor = new ColorTransform(); m_startColor.color = 0xFF00; m_endColor = new ColorTransform(); m_endColor.color = 0xFFAA00; m_tween.removeEventListener(TweenEvent.MOTION_CHANGE, tweenTransformLogo); m_tween = new Tween(m_waveHolderCrown, "", None.easeNone, 0, 1, 2, true); m_tween.addEventListener(TweenEvent.MOTION_CHANGE, tweenTransformCrown); }; }; }; if (m_crownFill){ if (((m_clsRed.decrThickness(true)) && (m_clsGreen.decrThickness(true)))){ if (m_GREEN.rotation != 180){ m_GREEN.rotation = 180; m_RED.rotation = 180; m_GREEN.y = (STAGE_HEIGHT / 2); m_RED.y = (STAGE_HEIGHT / 2); m_ferryGreen.gotoAndStop("off"); m_ferryRed.gotoAndStop("off"); }; m_GREEN.scaleY = (m_GREEN.scaleY - 0.1); m_RED.scaleY = (m_RED.scaleY - 0.1); if ((((m_GREEN.scaleY < 0)) && ((m_RED.scaleY < 0)))){ m_GREEN.alpha = 0; m_RED.alpha = 0; m_colorOff = false; m_crownFill = false; m_bounce = true; m_count = 0; }; }; }; }; if (m_crownFill){ if (m_sampleLoadPerc == -1){ m_sampleLoadPerc = (100 - (100 * (stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal))); m_step = (m_dist / 100); }; _local2 = (100 - (100 * (stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal))); _local2 = ((100 * (m_sampleLoadPerc - _local2)) / m_sampleLoadPerc); if (m_waveHolderCrown.y > m_yellowDest){ if ((m_waveHolderCrown.y - m_step) < m_yellowDest){ m_waveHolderCrown.y = m_yellowDest; } else { if (m_isLoaded){ m_waveHolderCrown.y = (m_waveHolderCrown.y - 0.5); } else { if (m_prevPerc != _local2){ _local3 = (_local2 - m_prevPerc); m_waveHolderCrown.y = (m_waveHolderCrown.y - m_step); m_prevPerc = _local2; }; }; }; } else { m_colorOff = true; m_waveEngineCrown.stopWave(); }; }; if (m_streamRed){ if (m_count >= 20){ if (m_count == 20){ m_RED.height = (m_RED.height - m_RED.height); m_RED.alpha = 1; m_ferryRed.gotoAndStop("on"); }; m_RED.height = (m_RED.height + 20); if (m_RED.height >= m_streamHeight){ m_RED.height = m_streamHeight; if (m_clsRed.decrThickness(false)){ m_streamRed = false; }; }; }; }; if (m_bounce){ if (m_count == 1){ _local4 = new mcWaterRing(); _local4.x = (STAGE_WIDTH / 2); _local4.y = ((STAGE_HEIGHT / 2) + 30); m_rootRef.addChild(_local4); m_loaderContent.push(_local4); }; if (m_count == 2){ _local5 = new sfxBounce(); _local5.play(); }; if (m_count < 3){ m_logoHolder.y = (m_logoHolder.y + 1); m_waveHolderCrown.y = (m_waveHolderCrown.y + 1); m_waveHolderLogo.y = (m_waveHolderLogo.y + 1); m_maskRown.y = (m_maskRown.y + 1); m_mask.y = (m_mask.y + 1); }; if ((((m_count > 2)) && ((m_count < 4)))){ m_logoHolder.y = (m_logoHolder.y - 1); m_waveHolderCrown.y = (m_waveHolderCrown.y - 1); m_waveHolderLogo.y = (m_waveHolderLogo.y - 1); m_maskRown.y = (m_maskRown.y - 1); m_mask.y = (m_mask.y - 1); }; if (m_count == 4){ _local6 = new sfxBell(); _local6.play(); }; if (m_count == 30){ m_play.visible = true; m_otherGames.visible = true; }; if (m_count > 30){ m_play.alpha = (m_play.alpha + 0.05); if (m_count > 40){ m_otherGames.alpha = (m_otherGames.alpha + 0.05); }; if ((((m_play.alpha >= 1)) && ((m_otherGames.alpha >= 1)))){ m_bounce = false; onLoaderMovieFinished(); }; }; }; } private function onOtherReleased(_arg1:MouseEvent):void{ cleanUp(); KingAPI.openOtherGamesLink(); } private function interpolateColor(_arg1:ColorTransform, _arg2:ColorTransform, _arg3:Number):ColorTransform{ var _local4:ColorTransform = new ColorTransform(); _local4.redMultiplier = (_arg1.redMultiplier + ((_arg2.redMultiplier - _arg1.redMultiplier) * _arg3)); _local4.greenMultiplier = (_arg1.greenMultiplier + ((_arg2.greenMultiplier - _arg1.greenMultiplier) * _arg3)); _local4.blueMultiplier = (_arg1.blueMultiplier + ((_arg2.blueMultiplier - _arg1.blueMultiplier) * _arg3)); _local4.alphaMultiplier = (_arg1.alphaMultiplier + ((_arg2.alphaMultiplier - _arg1.alphaMultiplier) * _arg3)); _local4.redOffset = (_arg1.redOffset + ((_arg2.redOffset - _arg1.redOffset) * _arg3)); _local4.greenOffset = (_arg1.greenOffset + ((_arg2.greenOffset - _arg1.greenOffset) * _arg3)); _local4.blueOffset = (_arg1.blueOffset + ((_arg2.blueOffset - _arg1.blueOffset) * _arg3)); _local4.alphaOffset = (_arg1.alphaOffset + ((_arg2.alphaOffset - _arg1.alphaOffset) * _arg3)); return (_local4); } function frame64(){ if (main.m_cur_music_num != 1){ if (main.m_cur_music){ main.m_cur_music.stop(); }; main.m_cur_music = main.m_main.Menu_Music.play(0, 9999); main.m_cur_music_num = 1; }; } private function gotoGame():void{ root.stage.frameRate = m_gameFrameRate; if (main.b_locked){ m_rootRef.gotoAndStop("Locked"); } else { m_rootRef.gotoAndStop(2); }; } private function tweenTransformCrown(_arg1:TweenEvent):void{ m_waveEngineCrown.colorUpdate(interpolateColor(m_startColor, m_endColor, m_tween.position).color); } } }//package com.midasplayer
Section 84
//AdLoader (CPMStar.AdLoader) package CPMStar { import flash.events.*; import flash.display.*; import flash.net.*; import flash.system.*; public class AdLoader extends Sprite { private var cpmstarLoader:Loader; private var contentspotid:String; public function AdLoader(_arg1:String){ this.contentspotid = _arg1; addEventListener(Event.ADDED, addedHandler); } private function dispatchHandler(_arg1:Event):void{ dispatchEvent(_arg1); } private function addedHandler(_arg1:Event):void{ removeEventListener(Event.ADDED, addedHandler); Security.allowDomain("server.cpmstar.com"); var _local2 = "http://server.cpmstar.com/adviewas3.swf"; var _local3:DisplayObjectContainer = parent; cpmstarLoader = new Loader(); cpmstarLoader.contentLoaderInfo.addEventListener(Event.INIT, dispatchHandler); cpmstarLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, dispatchHandler); cpmstarLoader.load(new URLRequest(((_local2 + "?contentspotid=") + contentspotid))); addChild(cpmstarLoader); } } }//package CPMStar
Section 85
//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 86
//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 private var _fps:Number;// = NAN private var _time:Number;// = NAN public var begin:Number;// = NAN private var _finish:Number;// = NAN public var change: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){ this.func = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); }; 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(); } 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 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 = 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 stopEnterFrame():void{ if (isNaN(this._fps)){ _mc.removeEventListener(Event.ENTER_FRAME, this.onEnterFrame); } else { this._timer.stop(); }; this.isPlaying = false; } 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(); }; }; } 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 get position():Number{ return (this.getPosition(this._time)); } 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 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 87
//TweenEvent (fl.transitions.TweenEvent) package fl.transitions { import flash.events.*; public class TweenEvent extends Event { public var position:Number;// = NAN public var time: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){ 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 88
//BonusStar (gui.BonusStar) package gui { import flash.events.*; import flash.display.*; public dynamic class BonusStar extends MovieClip { var scores;// = 0 var dspeed;// = 0.6 var speed;// = 1 var m_px;// = 279 var m_py;// = 18 public function BonusStar(_arg1, _arg2, _arg3){ addFrameScript(24, frame25); scores = _arg3; x = _arg1; y = _arg2; addEventListener(Event.ENTER_FRAME, Update); main.m_stage.addChild(this); mouseEnabled = false; mouseChildren = false; main.m_scores = (main.m_scores + scores); if (main.m_scores >= main.m_scores_data.m_scores[main.m_level_num]){ main.LevelNumberClip.bg.visible = true; }; } public function Update(_arg1){ var _local2:* = (m_px - x); var _local3:* = (m_py - y); var _local4:* = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); if (_local4 < speed){ Delete(); return; }; _local2 = (_local2 / _local4); _local3 = (_local3 / _local4); x = (x + (_local2 * speed)); y = (y + (_local3 * speed)); speed = (speed + dspeed); } public function Delete(){ removeEventListener(Event.ENTER_FRAME, Update); parent.removeChild(this); } function frame25(){ stop(); } } }//package gui
Section 89
//CheckClip (gui.CheckClip) package gui { import flash.events.*; import flash.display.*; import flash.utils.*; public dynamic class CheckClip extends MovieClip { public function CheckClip(){ visible = false; } public function Update(){ var _local1:*; if ((((main.b_loose == true)) || ((main.m_stage == 0)))){ visible = false; return; }; if (((((!((main.t_timer == 0))) && (((getTimer() - main.t_timer) < 2800)))) && ((visible == false)))){ visible = true; main.m_main.addChild(this); }; if (((visible) && (((getTimer() - main.t_timer) < 200)))){ visible = false; }; if (visible){ _local1 = (1 - ((getTimer() - main.t_timer) / 3000)); if (_local1 < 0){ _local1 = 0; visible = false; }; main.m_main.Checking.bar.scaleX = _local1; }; } } }//package gui
Section 90
//FailLogo (gui.FailLogo) package gui { import flash.display.*; public dynamic class FailLogo extends MovieClip { } }//package gui
Section 91
//Funflow1_Button (gui.Funflow1_Button) package gui { import flash.events.*; import flash.display.*; import flash.net.*; public dynamic class Funflow1_Button extends SimpleButton { public function Funflow1_Button(){ addEventListener(MouseEvent.MOUSE_DOWN, onPress); } private function onPress(_arg1){ if (main.b_mochi){ MochiBot.track(main.m_main, "d75ffd52"); }; var _local2:URLRequest = new URLRequest("http://apps.facebook.com/funflow/games/?ref=vechicles"); navigateToURL(_local2, "_blank"); } } }//package gui
Section 92
//Funflow2_Button (gui.Funflow2_Button) package gui { import flash.events.*; import flash.display.*; import flash.net.*; public dynamic class Funflow2_Button extends SimpleButton { public function Funflow2_Button(){ addEventListener(MouseEvent.MOUSE_DOWN, onPress); } private function onPress(_arg1){ if (main.b_mochi){ MochiBot.track(main.m_main, "d75ffd52"); }; var _local2:URLRequest = new URLRequest("http://apps.facebook.com/funflow/games/?ref=vechicles"); navigateToURL(_local2, "_blank"); } } }//package gui
Section 93
//GameMenu (gui.GameMenu) package gui { import flash.events.*; import flash.display.*; public dynamic class GameMenu extends MovieClip { var m_py;// = 456 public function GameMenu(){ y = 506; addEventListener(Event.ENTER_FRAME, Update); main.m_main.addChild(this); } public function Hide(){ } public function Update(_arg1){ if (Math.abs((y - m_py)) > 1){ y = (y + ((m_py - y) * 0.2)); }; if (main.b_finish){ Hide(); } else { Show(); }; } public function Delete(){ removeEventListener(Event.ENTER_FRAME, Update); parent.removeChild(this); } public function Show(){ m_py = 456; } } }//package gui
Section 94
//GMButtonMenu (gui.GMButtonMenu) package gui { import flash.events.*; import flash.display.*; public dynamic class GMButtonMenu extends SimpleButton { public function GMButtonMenu(){ addEventListener(MouseEvent.MOUSE_DOWN, onPress); } private function onPress(_arg1){ removeEventListener(MouseEvent.MOUSE_DOWN, onPress); main.FreeAll(); main.m_main.GameMenu.Delete(); main.m_main.GameMenu = null; main.m_main.WinMenu.Delete(); main.m_main.WinMenu = null; main.m_main.SoundButton.Delete(); main.m_main.SoundButton = null; main.m_WalkClip.Delete(); main.m_WalkClip = null; main.m_main.gotoAndStop("Menu"); } } }//package gui
Section 95
//GMButtonRestart (gui.GMButtonRestart) package gui { import flash.events.*; import flash.display.*; public dynamic class GMButtonRestart extends SimpleButton { public function GMButtonRestart(){ addEventListener(MouseEvent.MOUSE_DOWN, onPress); } private function onPress(_arg1){ main.RestartLevel(); } } }//package gui
Section 96
//GMButtonWalk (gui.GMButtonWalk) package gui { import flash.events.*; import flash.display.*; import flash.net.*; public dynamic class GMButtonWalk extends SimpleButton { public function GMButtonWalk(){ addEventListener(MouseEvent.MOUSE_DOWN, onPress); } private function onPress(_arg1){ if (main.b_mochi){ MochiBot.track(main.m_main, "e056e04f"); }; var _local2:URLRequest = new URLRequest("http://apps.facebook.com/funflow/games/?gameId=86&ref=vehicles_solutions&solutions=1"); navigateToURL(_local2, "_blank"); } } }//package gui
Section 97
//LevelNumber (gui.LevelNumber) package gui { import flash.events.*; import flash.display.*; public dynamic class LevelNumber extends MovieClip { public function LevelNumber(){ x = 10; main.m_main.addChild(this); this.bg.visible = false; var _local1:String = (main.m_stage_name.charAt((main.m_stage_name.length - 2)) + main.m_stage_name.charAt((main.m_stage_name.length - 1))); main.m_level_num = int(_local1); if ((((main.m_level_num >= 31)) && ((main.m_level_num <= 35)))){ this.level_number_text.text = (main.m_level_num - 10); } else { if ((((main.m_level_num >= 21)) && ((main.m_level_num <= 30)))){ this.level_number_text.text = (main.m_level_num + 5); } else { this.level_number_text.text = _local1; }; }; } } }//package gui
Section 98
//LevelsButtonsClip (gui.LevelsButtonsClip) package gui { import flash.events.*; import flash.display.*; import flash.media.*; public dynamic class LevelsButtonsClip extends MovieClip { public function LevelsButtonsClip(){ var _local1:*; super(); this.BBack.addEventListener(MouseEvent.MOUSE_DOWN, BackDown); this.BIntro.addEventListener(MouseEvent.MOUSE_DOWN, IntroDown); this.BFinal.addEventListener(MouseEvent.MOUSE_DOWN, FinalDown); this.BReskin.addEventListener(MouseEvent.MOUSE_DOWN, ReskinDown); main.m_levels_buttons_clip = this; if (main.mySO.data.Saves.m_levels[20] != 2){ this.BSLevels.visible = false; }; if (main.mySO.data.Saves.m_levels[21] != 0){ this.BSLevels.mouseEnabled = false; }; this.ReskinClip.mouseEnabled = false; if (main.b_reskin){ this.ReskinClip.gotoAndStop(2); }; var _local2:* = true; var _local3:* = true; _local1 = 1; while (_local1 <= 35) { if (main.mySO.data.Saves.m_levels[_local1] != 2){ this.BFinal.mouseEnabled = false; _local2 = false; }; if (((!((main.mySO.data.Saves.m_levels[_local1] == 2))) || ((main.mySO.data.Saves.m_scores[_local1] < main.m_scores_data.m_scores[_local1])))){ this.BReskin.mouseEnabled = false; _local3 = false; }; _local1++; }; if (_local2){ this.BFinal2.mouseEnabled = false; }; if (_local3){ this.BReskin2.mouseEnabled = false; }; } public function FinalDown(_arg1){ main.m_main.gotoAndStop("Final"); SoundMixer.stopAll(); main.m_cur_music_num = 0; } public function BackDown(_arg1){ main.m_py = 252; main.m_py2 = 66; } public function ReskinDown(_arg1){ main.b_reskin = !(main.b_reskin); main.m_main.gotoAndStop("L1"); } public function IntroDown(_arg1){ main.m_main.gotoAndStop("Intro"); SoundMixer.stopAll(); main.m_cur_music_num = 0; } } }//package gui
Section 99
//LikeButton (gui.LikeButton) package gui { import flash.events.*; import flash.display.*; import flash.net.*; public dynamic class LikeButton extends SimpleButton { public function LikeButton(){ addEventListener(MouseEvent.MOUSE_DOWN, onPress); } private function onPress(_arg1){ if (main.b_mochi){ MochiBot.track(main.m_main, "6ccfb84a"); }; var _local2:URLRequest = new URLRequest("http://www.facebook.com/sharer.php?u=http%3A%2F%2Ffacebook.king.com%2Ffacebook%2Fkinggames%2Fgames%2Fshare.jsp%3FgameId%3D86"); navigateToURL(_local2, "_blank"); } } }//package gui
Section 100
//MenuClip (gui.MenuClip) package gui { import flash.events.*; import flash.display.*; import com.midasplayer.*; import flash.net.*; public dynamic class MenuClip extends MovieClip { public function MenuClip(){ var _local2:*; super(); x = main.m_px; y = main.m_py; if (main.m_main.SBack){ main.m_main.SBack.y = main.m_py2; }; this.BPlay.addEventListener(MouseEvent.MOUSE_DOWN, PlayDown); this.BCred.addEventListener(MouseEvent.MOUSE_DOWN, CredDown); this.BMoreGames.addEventListener(MouseEvent.MOUSE_DOWN, MoreGamesDown); this.BBack.addEventListener(MouseEvent.MOUSE_DOWN, BackDown); this.BScores.addEventListener(MouseEvent.MOUSE_DOWN, ScoresDown); this.BFacebook.addEventListener(MouseEvent.MOUSE_DOWN, FacebookDown); this.BAddToSite.addEventListener(MouseEvent.MOUSE_DOWN, AddToSiteDown); addEventListener(Event.ENTER_FRAME, Update); var _local1:* = 0; _local2 = 0; while (_local2 <= 35) { _local1 = (_local1 + main.mySO.data.Saves.m_scores[_local2]); _local1 = (_local1 + main.mySO.data.Saves2.m_scores[_local2]); _local2++; }; this.Scores.TText.text = _local1; } public function CredDown(_arg1){ main.m_px = -575; } public function AddToSiteDown(_arg1){ if (main.b_mochi){ MochiBot.track(main.m_main, "6ccfb84a"); }; var _local2:URLRequest = new URLRequest("http://apps.facebook.com/funflow/download.jsp?ref=vehicles"); navigateToURL(_local2, "_blank"); } public function PlayDown(_arg1){ main.m_py = -295; main.m_py2 = -86; } public function BackDown(_arg1){ main.m_px = 105; } public function Update(_arg1){ if (Math.abs((x - main.m_px)) > 1){ x = (x + ((main.m_px - x) * 0.2)); }; if (Math.abs((y - main.m_py)) > 1){ y = (y + ((main.m_py - y) * 0.2)); }; if (main.m_main.SBack){ if (Math.abs((main.m_main.SBack.y - main.m_py2)) > 1){ main.m_main.SBack.y = (main.m_main.SBack.y + ((main.m_py2 - main.m_main.SBack.y) * 0.15)); }; }; } public function ScoresDown(_arg1){ if (main.b_mochi){ MochiBot.track(main.m_main, "6ccfb84a"); }; KingAPI.openHighscoresLink(); } public function MoreGamesDown(_arg1){ if (main.b_mochi){ MochiBot.track(main.m_main, "6ccfb84a"); }; var _local2:URLRequest = new URLRequest("http://apps.facebook.com/funflow/games/?ref=vehicles_more"); navigateToURL(_local2, "_blank"); } public function FacebookDown(_arg1){ if (main.b_mochi){ MochiBot.track(main.m_main, "6ccfb84a"); }; var _local2:URLRequest = new URLRequest("http://www.facebook.com/sharer.php?u=http%3A%2F%2Ffacebook.king.com%2Ffacebook%2Fkinggames%2Fgames%2Fshare.jsp%3FgameId%3D86"); navigateToURL(_local2, "_blank"); } } }//package gui
Section 101
//MenuWalkClip (gui.MenuWalkClip) package gui { import flash.events.*; import flash.display.*; public dynamic class MenuWalkClip extends MovieClip { var m_py;// = -34 var counter;// = 0 public function MenuWalkClip(){ y = -34; counter = 0; addEventListener(Event.ENTER_FRAME, Update); main.m_main.addChild(this); main.m_WalkClip = this; } public function Hide(){ m_py = -34; counter = 0; } public function Update(_arg1){ if (Math.abs((y - m_py)) > 1){ y = (y + ((m_py - y) * 0.2)); }; if (main.b_finish){ Hide(); }; } public function Delete(){ removeEventListener(Event.ENTER_FRAME, Update); parent.removeChild(this); } public function Show(){ if (counter++ == 1){ m_py = 20; }; } } }//package gui
Section 102
//NextButton (gui.NextButton) package gui { import flash.events.*; import flash.display.*; public dynamic class NextButton extends SimpleButton { public function NextButton(){ addEventListener(MouseEvent.MOUSE_DOWN, onPress); } private function onPress(_arg1){ var _local2:* = (main.m_level_num + 1); var _local3:* = ((main.b_reskin == true)) ? main.mySO.data.Saves2 : main.mySO.data.Saves; if (main.m_level_num == 20){ _local2 = 31; }; if (main.m_level_num == 30){ _local2 = 36; }; if (main.m_level_num == 35){ _local2 = 21; }; if ((((_local2 > 35)) || ((_local3.m_levels[_local2] == 0)))){ this.visible = false; removeEventListener(MouseEvent.MOUSE_DOWN, onPress); main.FreeAll(); main.m_main.GameMenu.Delete(); main.m_main.GameMenu = null; main.m_main.WinMenu.Delete(); main.m_main.WinMenu = null; main.m_main.SoundButton.Delete(); main.m_main.SoundButton = null; main.m_WalkClip.Delete(); main.m_WalkClip = null; main.m_main.gotoAndStop("Menu"); return; }; if (_local2 < 10){ main.m_stage_name = ("stage_0" + _local2); } else { main.m_stage_name = ("stage_" + _local2); }; main.FreeAll(); main.CreateStage(main.m_stage_name); parent.visible = false; } } }//package gui
Section 103
//Preloader (gui.Preloader) package gui { import flash.events.*; import flash.display.*; public dynamic class Preloader extends MovieClip { var bytesloaded; var bytestotal; public function Preloader(){ addEventListener(Event.ENTER_FRAME, Update); addEventListener(MouseEvent.MOUSE_DOWN, onPress); } private function onPress(_arg1){ if (bytesloaded >= bytestotal){ removeEventListener(Event.ENTER_FRAME, Update); if (main.b_locked){ main.m_main.gotoAndStop("Locked"); } else { main.m_main.gotoAndStop("Intro"); }; }; } public function Update(_arg1){ bytestotal = stage.loaderInfo.bytesTotal; bytesloaded = stage.loaderInfo.bytesLoaded; var _local2:int = ((bytesloaded * 100) / bytestotal); this.LoadingText.text = (String(_local2) + "%"); this.LoadingBar.scaleX = (_local2 / 100); if (bytesloaded >= bytestotal){ this.LoadingText.text = "PLAY"; removeEventListener(Event.ENTER_FRAME, Update); main.m_main.gotoAndStop("Intro"); }; } } }//package gui
Section 104
//ReskinButton (gui.ReskinButton) package gui { import flash.display.*; public dynamic class ReskinButton extends SimpleButton { } }//package gui
Section 105
//SkipButton (gui.SkipButton) package gui { import flash.events.*; import flash.display.*; import flash.media.*; import flash.net.*; public dynamic class SkipButton extends SimpleButton { public function SkipButton(){ addEventListener(MouseEvent.MOUSE_DOWN, onPress); } private function onPress(_arg1){ main.m_main.gotoAndStop("Menu"); SoundMixer.stopAll(); } } }//package gui
Section 106
//SoundButton (gui.SoundButton) package gui { import flash.events.*; import flash.display.*; import flash.media.*; public dynamic class SoundButton extends MovieClip { public function SoundButton(){ addFrameScript(0, frame1); if (main.b_sound == false){ this.gotoAndStop(2); }; addEventListener(MouseEvent.MOUSE_DOWN, onPress); main.m_main.addChild(this); } public function Delete(){ if (parent){ parent.removeChild(this); }; } private function onPress(_arg1){ var _local2:SoundTransform; var _local3:SoundTransform; if (main.b_sound){ this.gotoAndStop(2); main.b_sound = false; _local2 = new SoundTransform(0, 0); SoundMixer.soundTransform = _local2; } else { this.gotoAndStop(1); main.b_sound = true; _local3 = new SoundTransform(1, 0); SoundMixer.soundTransform = _local3; }; } function frame1(){ stop(); } } }//package gui
Section 107
//SponsorLevelsButton (gui.SponsorLevelsButton) package gui { import flash.events.*; import flash.display.*; import flash.net.*; public dynamic class SponsorLevelsButton extends SimpleButton { public function SponsorLevelsButton(){ if (main.b_sponsor){ this.mouseEnabled = false; } else { addEventListener(MouseEvent.MOUSE_DOWN, onPress); }; } private function onPress(_arg1){ main.b_sponsor = true; main.m_main.OpenSponsorsLevels(main.mySO.data.Saves); main.m_main.OpenSponsorsLevels(main.mySO.data.Saves2); if (main.b_mochi){ MochiBot.track(main.m_main, "1357e896"); }; var _local2:URLRequest = new URLRequest("http://apps.facebook.com/funflow/games/?ref=vehicles_more"); navigateToURL(_local2, "_blank"); this.mouseEnabled = false; removeEventListener(MouseEvent.MOUSE_DOWN, onPress); main.m_main.gotoAndStop("L1"); } } }//package gui
Section 108
//StageButton (gui.StageButton) package gui { import flash.events.*; import flash.display.*; public dynamic class StageButton extends SimpleButton { var sc;// = 0 public function StageButton(){ var _local4:*; var _local5:*; var _local6:*; super(); var _local1:String = (name.charAt((name.length - 2)) + name.charAt((name.length - 1))); var _local2:* = int(_local1); var _local3:* = ((main.b_reskin == true)) ? main.mySO.data.Saves2 : main.mySO.data.Saves; if (_local3.m_levels[_local2] == 0){ alpha = 0.5; _local4 = new RedLineClip(); _local4.alpha = 0.5; _local4.x = x; _local4.y = y; _local4.mouseEnabled = false; parent.addChild(_local4); mouseEnabled = false; } else { if (_local3.m_scores[_local2] >= main.m_scores_data.m_scores[_local2]){ _local5 = new LevelGoodClip(); _local5.x = x; _local5.y = y; parent.addChild(_local5); }; sc = _local3.m_scores[_local2]; addEventListener(MouseEvent.MOUSE_DOWN, onPress); }; if (_local3.m_levels[_local2] == 2){ _local6 = new GreenBarClip(); _local6.alpha = 0.5; _local6.x = x; _local6.y = y; _local6.mouseEnabled = false; parent.addChild(_local6); }; } private function onPress(_arg1){ main.m_main.gotoAndStop("Game"); main.CreateStage(name); main.m_cur_music.stop(); main.m_cur_music = main.m_main.Game_Music.play(0, 9999); main.m_cur_music_num = 2; } } }//package gui
Section 109
//WinMenu (gui.WinMenu) package gui { import flash.events.*; import flash.display.*; public dynamic class WinMenu extends MovieClip { var m_py;// = 506 public function WinMenu(){ visible = false; y = 506; m_py = 506; addEventListener(Event.ENTER_FRAME, Update); main.m_main.addChild(this); } public function Hide(){ m_py = 506; visible = false; main.m_main.GameMenu.FB.y = -5; } public function Update(_arg1){ if (Math.abs((y - m_py)) > 1){ y = (y + ((m_py - y) * 0.2)); main.m_main.GameMenu.FB.y = (main.m_main.GameMenu.FB.y - ((m_py - y) * 0.4)); }; if (main.b_finish){ Show(); } else { Hide(); }; } public function Delete(){ removeEventListener(Event.ENTER_FRAME, Update); parent.removeChild(this); } public function Show(){ m_py = 456; visible = true; main.m_main.addChild(main.m_main.WinMenu); } } }//package gui
Section 110
//VogdButton (gui.VogdButton) package gui { import flash.events.*; import flash.display.*; import flash.net.*; public dynamic class VogdButton extends SimpleButton { public function VogdButton(){ addEventListener(MouseEvent.MOUSE_DOWN, onPress); } private function onPress(_arg1){ var _local2:URLRequest = new URLRequest("http://www.astargames.ru"); navigateToURL(_local2, "_blank"); } } }//package gui
Section 111
//Box (Objects.Box) package Objects { import flash.events.*; import flash.display.*; public dynamic class Box extends Box_Base { public function Box(){ m_density = 0.4; m_friction = 0.5; } } }//package Objects
Section 112
//Box_Base (Objects.Box_Base) package Objects { 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 Box2D.Dynamics.Contacts.*; import flash.display.*; public dynamic class Box_Base extends MovieClip { public var p1:Object; public var p3:Object; public var p2:Object; public var p4:Object; public var m_friction;// = 0.3 public var m_density;// = 0.2 public var m_phys_body;// = 0 public function Box_Base(){ main.AddObject(this, 5); } public function Update(){ if ((((m_phys_body == 0)) && (main.m_stage))){ CreatePhysBody(); }; if (m_phys_body){ x = (m_phys_body.GetPosition().x * main.m_physScale); y = (m_phys_body.GetPosition().y * main.m_physScale); rotation = ((m_phys_body.GetAngle() / Math.PI) * 180); }; } public function CreatePhysBody(){ var _local1:b2PolygonDef; var _local2:b2BodyDef; var _local3:b2Body; _local1 = new b2PolygonDef(); _local2 = new b2BodyDef(); _local1.density = m_density; _local1.friction = m_friction; _local1.restitution = 0.1; _local2.position.Set((x / main.m_physScale), (y / main.m_physScale)); _local2.angle = ((rotation / 180) * Math.PI); rotation = 0; _local1.SetAsBox(((width / 2) / main.m_physScale), ((height / 2) / main.m_physScale)); _local3 = main.m_world.CreateBody(_local2); _local3.CreateShape(_local1); _local3.SetMassFromShapes(); m_phys_body = _local3; } public function Destroy(){ main.m_world.DestroyBody(m_phys_body); } } }//package Objects
Section 113
//Box2 (Objects.Box2) package Objects { import flash.events.*; import flash.display.*; public dynamic class Box2 extends Box_Base { public function Box2(){ m_density = 0.5; m_friction = 1.5; } } }//package Objects
Section 114
//Box2R (Objects.Box2R) package Objects { import flash.events.*; import flash.display.*; public dynamic class Box2R extends Box_Base { public function Box2R(){ m_density = 0.5; m_friction = 1.5; } } }//package Objects
Section 115
//Box3 (Objects.Box3) package Objects { import flash.events.*; import flash.display.*; public dynamic class Box3 extends Box_Base { public function Box3(){ m_density = 0.05; m_friction = 0.3; } } }//package Objects
Section 116
//Box3R (Objects.Box3R) package Objects { import flash.events.*; import flash.display.*; public dynamic class Box3R extends Box_Base { public function Box3R(){ m_density = 0.05; m_friction = 0.3; } } }//package Objects
Section 117
//BoxR (Objects.BoxR) package Objects { import flash.events.*; import flash.display.*; public dynamic class BoxR extends Box_Base { public function BoxR(){ m_density = 0.4; m_friction = 0.5; } } }//package Objects
Section 118
//BoxRemovable (Objects.BoxRemovable) package Objects { 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 Box2D.Dynamics.Contacts.*; import flash.display.*; public dynamic class BoxRemovable extends MovieClip { public var p1:Object; public var p3:Object; public var p2:Object; public var p4:Object; public var m_type;// = 0 public var m_phys_body;// = 0 public function BoxRemovable(){ main.AddObject(this); } public function MouseDown(_arg1){ main.DeleteObject(this); main.m_main.Block_Remove.play(); var _local2:* = new RemoveEffect(); _local2.x = x; _local2.y = y; main.m_main.addChild(_local2); } public function CreatePhysBody(){ var _local1:b2PolygonDef; var _local2:b2BodyDef; var _local3:b2Body; _local1 = new b2PolygonDef(); _local2 = new b2BodyDef(); _local1.density = 0; _local1.friction = 0.5; _local1.restitution = 0.1; _local2.position.Set((x / main.m_physScale), (y / main.m_physScale)); _local2.angle = ((rotation / 180) * Math.PI); rotation = 0; _local1.SetAsBox(((width / main.m_physScale) / 2), ((height / main.m_physScale) / 2)); _local3 = main.m_world.CreateBody(_local2); _local3.CreateShape(_local1); _local3.SetMassFromShapes(); m_phys_body = _local3; addEventListener(MouseEvent.MOUSE_DOWN, MouseDown); } public function Destroy(){ removeEventListener(MouseEvent.MOUSE_DOWN, MouseDown); main.m_world.DestroyBody(m_phys_body); if (parent){ parent.removeChild(this); }; } public function Update(){ if ((((m_phys_body == 0)) && (main.m_stage))){ CreatePhysBody(); }; if (m_phys_body){ x = (m_phys_body.GetPosition().x * main.m_physScale); y = (m_phys_body.GetPosition().y * main.m_physScale); rotation = ((m_phys_body.GetAngle() / Math.PI) * 180); }; } } }//package Objects
Section 119
//BoxStatic (Objects.BoxStatic) package Objects { import flash.events.*; import flash.display.*; public dynamic class BoxStatic extends BoxStatic_Base { public function BoxStatic(){ m_friction = 0.5; } } }//package Objects
Section 120
//BoxStatic_Base (Objects.BoxStatic_Base) package Objects { 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 Box2D.Dynamics.Contacts.*; import flash.display.*; public dynamic class BoxStatic_Base extends MovieClip { public var p1:Object; public var p3:Object; public var p2:Object; public var p4:Object; public var m_type;// = 0 public var m_friction;// = 0.5 public var m_phys_body;// = 0 public function BoxStatic_Base(){ main.AddObject(this); } public function CreatePhysBody(){ var _local1:b2PolygonDef; var _local2:b2BodyDef; var _local3:b2Body; _local1 = new b2PolygonDef(); _local2 = new b2BodyDef(); _local1.density = 0; _local1.friction = m_friction; _local1.restitution = 0.1; _local2.position.Set((x / main.m_physScale), (y / main.m_physScale)); _local2.angle = ((rotation / 180) * Math.PI); rotation = 0; _local1.SetAsBox(((width / main.m_physScale) / 2), ((height / main.m_physScale) / 2)); _local3 = main.m_world.CreateBody(_local2); _local3.CreateShape(_local1); _local3.SetMassFromShapes(); m_phys_body = _local3; } public function Destroy(){ main.m_world.DestroyBody(m_phys_body); if (parent){ parent.removeChild(this); }; } public function Update(){ if ((((m_phys_body == 0)) && (main.m_stage))){ CreatePhysBody(); }; if (m_phys_body){ x = (m_phys_body.GetPosition().x * main.m_physScale); y = (m_phys_body.GetPosition().y * main.m_physScale); rotation = ((m_phys_body.GetAngle() / Math.PI) * 180); }; } } }//package Objects
Section 121
//BoxStatic2 (Objects.BoxStatic2) package Objects { import flash.events.*; import flash.display.*; public dynamic class BoxStatic2 extends BoxStatic_Base { public function BoxStatic2(){ m_friction = 0.05; } } }//package Objects
Section 122
//BoxStaticR (Objects.BoxStaticR) package Objects { import flash.events.*; import flash.display.*; public dynamic class BoxStaticR extends BoxStatic_Base { public function BoxStaticR(){ m_friction = 0.5; } } }//package Objects
Section 123
//C2_Reskin (Objects.C2_Reskin) package Objects { import flash.events.*; import flash.display.*; public dynamic class C2_Reskin extends MovieClip { public function C2_Reskin(){ addFrameScript(0, frame1, 1, frame2); if (main.b_reskin == false){ gotoAndStop(2); }; } function frame1(){ stop(); } function frame2(){ stop(); } } }//package Objects
Section 124
//Car_Base (Objects.Car_Base) package Objects { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import flash.events.*; import flash.display.*; public dynamic class Car_Base extends MovieClip { private var ps; public var pw; public var m_frict;// = 1.5 public var m_old_y;// = 0 public var m_dens;// = 0.2 public var m_force;// = 4.5 public var cart:b2Body; public var b_back;// = false public var b_bad;// = false public var iw; public var b_parked;// = false public var m_sound;// = 0 public var m_talk;// = 0 public var ibox; public var b_tormoza;// = true var rx; var ry; private var box; public var m_type;// = 1 public var b_breaks;// = true public var bw; private var spring_length; private var pa; public var m_group_num; public var m_sound_type;// = 0 private var pm; public function Car_Base(_arg1=0, _arg2=0):void{ pw = new Array(); pa = new Array(); pm = new Array(); ps = new Array(); bw = new Array(); iw = new Array(); super(); m_group_num = main.g_num; main.g_num--; } public function GetPosition(){ return ([rx, ry]); } private function Init():void{ var _local1:*; var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:int; var _local10:b2Body; var _local11:b2BodyDef; var _local12:b2PolygonDef; var _local13:b2CircleDef; var _local14:b2RevoluteJointDef; var _local15:b2PrismaticJointDef; _local3 = box.width; _local4 = box.height; _local11 = new b2BodyDef(); _local12 = new b2PolygonDef(); _local12.density = m_dens; _local12.friction = 0.5; _local12.restitution = 0.2; _local12.filter.groupIndex = m_group_num; _local11.position.Set(((x + box.x) / main.m_physScale), ((y + box.y) / main.m_physScale)); _local11.angle = ((rotation / 180) * Math.PI); _local12.SetAsBox(((_local3 / 2) / main.m_physScale), ((_local4 / 2) / main.m_physScale)); cart = main.m_world.CreateBody(_local11); cart.m_userData = new Object(); cart.m_userData.m_type = int(1); cart.m_userData.m_body = this; cart.CreateShape(_local12); cart.SetMassFromShapes(); _local12.density = 1; cart.m_userData = new Object(); cart.m_userData.m_type = int(m_type); cart.m_userData.m_body = this; _local9 = 0; while (_local9 < bw.length) { _local1 = (bw[_local9].width / 2); _local2 = (bw[_local9].width / 2); spring_length = ((bw[_local9].y - box.y) + (_local4 / 2)); _local11.position.Set(((x + bw[_local9].x) / main.m_physScale), (((y + bw[_local9].y) - (_local1 / 2)) / main.m_physScale)); _local11.angle = (Math.PI / 2); _local6 = main.m_world.CreateBody(_local11); _local12.SetAsBox((5 / main.m_physScale), (5 / main.m_physScale)); _local6.CreateShape(_local12); _local6.SetMassFromShapes(); _local15 = new b2PrismaticJointDef(); _local15.Initialize(cart, _local6, _local6.GetWorldCenter(), new b2Vec2(0, 1)); _local15.lowerTranslation = (-(spring_length) / main.m_physScale); _local15.upperTranslation = (spring_length / main.m_physScale); _local15.enableLimit = true; _local15.enableMotor = true; _local8 = (main.m_world.CreateJoint(_local15) as b2PrismaticJoint); _local13 = new b2CircleDef(); _local13.radius = (_local1 / main.m_physScale); _local13.density = m_dens; _local13.friction = m_frict; _local13.restitution = 0.2; _local13.filter.groupIndex = m_group_num; _local11 = new b2BodyDef(); _local11.position.Set(((bw[_local9].x + x) / main.m_physScale), ((bw[_local9].y + y) / main.m_physScale)); _local11.allowSleep = false; _local5 = main.m_world.CreateBody(_local11); _local5.CreateShape(_local13); _local5.SetMassFromShapes(); _local5.m_userData = new Object(); _local5.m_userData.m_type = int(1); _local5.m_userData.m_body = this; _local14 = new b2RevoluteJointDef(); _local14.enableMotor = true; _local14.Initialize(_local6, _local5, _local5.GetWorldCenter()); _local7 = (main.m_world.CreateJoint(_local14) as b2RevoluteJoint); _local8.SetMaxMotorForce(100000); _local8.SetMaxMotorForce(100000); pw.push(_local5); pa.push(_local6); pm.push(_local7); ps.push(_local8); _local9++; }; Break(true, true); } public function UnBreak(){ if (b_bad){ return; }; b_breaks = false; for each (i in pm) { i.EnableLimit(false); i.EnableMotor(true); i.SetMotorSpeed((m_force * Math.PI)); i.SetMaxMotorTorque(30000); }; ibox.smoke.visible = true; if (m_sound){ m_sound.stop(); }; if (m_sound_type == 1){ m_sound = main.m_main.Police_Start.play(0, 1); } else { if (m_sound_type == 2){ m_sound = main.m_main.Med_Start.play(0, 1); }; }; } public function MouseDown(_arg1){ if (b_breaks){ UnBreak(); } else { Break(b_tormoza); }; } public function FirstInit(_arg1){ var _local4:*; var _local5:*; var _local6:*; var _local7:*; box = _arg1.Box; box.visible = false; var _local2:* = 1; var _local3:* = true; while (_local3) { _local4 = ("Wheel" + _local2); _local5 = ("IWheel" + _local2); _local6 = this[_local4]; _local7 = this[_local5]; if ((((_local6 == undefined)) || ((_local7 == undefined)))){ _local3 = false; } else { _local6.visible = false; bw.push(_local6); iw.push(_local7); _local2++; }; }; ibox = _arg1.IBox; Init(); main.AddObject(this, m_type); if (ibox.corpus){ ibox.corpus.gotoAndStop(1); }; } public function Destroy(){ var _local1:*; for each (_local1 in pm) { main.m_world.DestroyJoint(_local1); }; for each (_local1 in ps) { main.m_world.DestroyJoint(_local1); }; for each (_local1 in pw) { main.m_world.DestroyBody(_local1); }; for each (_local1 in pa) { main.m_world.DestroyBody(_local1); }; main.m_world.DestroyBody(cart); for each (_local1 in bw) { _local1.parent.removeChild(_local1); }; for each (_local1 in iw) { _local1.parent.removeChild(_local1); }; box.parent.removeChild(box); ibox.parent.removeChild(ibox); } public function Break(_arg1, _arg2=false){ var _local3:*; var _local4:*; ibox.smoke.visible = false; b_breaks = true; for each (_local3 in pm) { if (_arg1){ _local4 = _local3.GetJointAngle(); _local3.EnableLimit(true); _local3.SetLimits((_local4 - 0.1), (_local4 + 0.1)); }; _local3.EnableMotor(false); }; if (_arg2 == false){ if (m_sound){ m_sound.stop(); }; if (m_sound_type == 1){ m_sound = main.m_main.Police_Break.play(0, 1); } else { if (m_sound_type == 2){ m_sound = main.m_main.Med_Break.play(0, 1); }; }; }; } public function Update(){ var _local1:*; if (cart){ rx = (cart.GetPosition().x * main.m_physScale); ry = (cart.GetPosition().y * main.m_physScale); ibox.x = (rx - x); ibox.y = (ry - y); ibox.rotation = ((cart.GetAngle() / Math.PI) * 180); if ((ibox.y - m_old_y) > 2){ if (((ibox.corpus) && (!((ibox.corpus.currentLabel == "Fall"))))){ ibox.corpus.gotoAndStop("Fall"); }; }; m_old_y = ibox.y; }; _local1 = 0; while (_local1 < iw.length) { iw[_local1].x = ((pw[_local1].GetPosition().x * main.m_physScale) - x); iw[_local1].y = ((pw[_local1].GetPosition().y * main.m_physScale) - y); iw[_local1].rotation = ((pw[_local1].GetAngle() / Math.PI) * 180); ps[_local1].SetMaxMotorForce((30 + Math.abs((800 * Math.pow(ps[_local1].GetJointTranslation(), 2))))); ps[_local1].SetMotorSpeed(((ps[_local1].GetMotorSpeed() - (2 * ps[_local1].GetJointTranslation())) * 0.7)); _local1++; }; var _local2:* = (spring_length / 20); if (b_breaks == false){ }; } public function MouseOver(_arg1){ } } }//package Objects
Section 125
//Car1 (Objects.Car1) package Objects { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import flash.events.*; public dynamic class Car1 extends Car_Base { public function Car1(_arg1=0, _arg2=0):void{ var _local3:*; var _local4:*; super(); if (((!((_arg1 == 0))) && (!((_arg2 == 0))))){ _local3 = this.IBox.x; _local4 = this.IBox.y; x = (_arg1 - _local3); y = (_arg2 - _local4); }; m_dens = 1; m_frict = 1; m_force = 8; b_bad = false; b_tormoza = true; m_sound_type = 2; FirstInit(this); this.m_back = "Car1_Back"; this.b_left = true; } } }//package Objects
Section 126
//Car1_Back (Objects.Car1_Back) package Objects { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import flash.events.*; public dynamic class Car1_Back extends Car_Base { public function Car1_Back(_arg1=0, _arg2=0):void{ var _local3:*; var _local4:*; super(); if (((!((_arg1 == 0))) && (!((_arg2 == 0))))){ _local3 = this.IBox.x; _local4 = this.IBox.y; x = (_arg1 - _local3); y = (_arg2 - _local4); }; m_dens = 1; m_frict = 1; m_force = -8; b_bad = false; b_tormoza = true; m_sound_type = 2; FirstInit(this); this.m_back = "Car1"; this.b_left = false; } } }//package Objects
Section 127
//Car2 (Objects.Car2) package Objects { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import flash.events.*; public dynamic class Car2 extends Car_Base { public function Car2(_arg1=0, _arg2=0):void{ var _local3:*; var _local4:*; super(); if (((!((_arg1 == 0))) && (!((_arg2 == 0))))){ _local3 = this.IBox.x; _local4 = this.IBox.y; x = (_arg1 - _local3); y = (_arg2 - _local4); }; m_dens = 0.5; m_frict = 1.5; m_force = 25; b_bad = false; b_tormoza = true; m_sound_type = 1; FirstInit(this); this.m_back = "Car2_Back"; this.b_left = true; } } }//package Objects
Section 128
//Car2_Back (Objects.Car2_Back) package Objects { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import flash.events.*; public dynamic class Car2_Back extends Car_Base { public function Car2_Back(_arg1=0, _arg2=0):void{ var _local3:*; var _local4:*; super(); if (((!((_arg1 == 0))) && (!((_arg2 == 0))))){ _local3 = this.IBox.x; _local4 = this.IBox.y; x = (_arg1 - _local3); y = (_arg2 - _local4); }; m_dens = 0.5; m_frict = 1.5; m_force = -25; b_bad = false; b_tormoza = true; m_sound_type = 1; FirstInit(this); this.m_back = "Car2"; this.b_left = false; } } }//package Objects
Section 129
//Car3 (Objects.Car3) package Objects { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import flash.events.*; public dynamic class Car3 extends Car_Base { public function Car3(_arg1=0, _arg2=0):void{ var _local3:*; var _local4:*; super(); if (((!((_arg1 == 0))) && (!((_arg2 == 0))))){ _local3 = this.IBox.x; _local4 = this.IBox.y; x = (_arg1 - _local3); y = (_arg2 - _local4); }; m_dens = 0.6; m_frict = 2; m_force = 2; b_bad = false; b_tormoza = true; m_sound_type = 2; FirstInit(this); this.m_back = "Car3_Back"; this.b_left = true; } } }//package Objects
Section 130
//Car3_Back (Objects.Car3_Back) package Objects { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import flash.events.*; public dynamic class Car3_Back extends Car_Base { public function Car3_Back(_arg1=0, _arg2=0):void{ var _local3:*; var _local4:*; super(); if (((!((_arg1 == 0))) && (!((_arg2 == 0))))){ _local3 = this.IBox.x; _local4 = this.IBox.y; x = (_arg1 - _local3); y = (_arg2 - _local4); }; m_dens = 0.6; m_frict = 2; m_force = -2; b_bad = false; b_tormoza = true; m_sound_type = 2; FirstInit(this); this.m_back = "Car3"; this.b_left = false; } } }//package Objects
Section 131
//Car4 (Objects.Car4) package Objects { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import flash.events.*; public dynamic class Car4 extends Car_Base { public function Car4(_arg1=0, _arg2=0):void{ var _local3:*; var _local4:*; super(); if (((!((_arg1 == 0))) && (!((_arg2 == 0))))){ _local3 = this.IBox.x; _local4 = this.IBox.y; x = (_arg1 - _local3); y = (_arg2 - _local4); }; m_dens = 0.3; m_frict = 1; m_force = 5; b_bad = false; b_tormoza = true; m_sound_type = 1; this.m_back = "Car4_Back"; this.b_left = true; this.m_type = 2; FirstInit(this); } } }//package Objects
Section 132
//Car4_Back (Objects.Car4_Back) package Objects { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import flash.events.*; public dynamic class Car4_Back extends Car_Base { public function Car4_Back(_arg1=0, _arg2=0):void{ var _local3:*; var _local4:*; super(); if (((!((_arg1 == 0))) && (!((_arg2 == 0))))){ _local3 = this.IBox.x; _local4 = this.IBox.y; x = (_arg1 - _local3); y = (_arg2 - _local4); }; m_dens = 0.3; m_frict = 1; m_force = -5; b_bad = false; b_tormoza = true; m_sound_type = 1; this.m_back = "Car4"; this.b_left = false; this.m_type = 2; FirstInit(this); } } }//package Objects
Section 133
//Car5 (Objects.Car5) package Objects { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import flash.events.*; public dynamic class Car5 extends Car_Base { public function Car5(_arg1=0, _arg2=0):void{ var _local3:*; var _local4:*; super(); if (((!((_arg1 == 0))) && (!((_arg2 == 0))))){ _local3 = this.IBox.x; _local4 = this.IBox.y; x = (_arg1 - _local3); y = (_arg2 - _local4); }; m_dens = 0.3; m_frict = 0.1; m_force = 5; b_bad = true; b_tormoza = true; m_sound_type = 2; this.m_back = "Car5_Back"; this.b_left = true; this.m_type = 2; FirstInit(this); } } }//package Objects
Section 134
//Car5_Back (Objects.Car5_Back) package Objects { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import flash.events.*; public dynamic class Car5_Back extends Car_Base { public function Car5_Back(_arg1=0, _arg2=0):void{ var _local3:*; var _local4:*; super(); if (((!((_arg1 == 0))) && (!((_arg2 == 0))))){ _local3 = this.IBox.x; _local4 = this.IBox.y; x = (_arg1 - _local3); y = (_arg2 - _local4); }; m_dens = 0.3; m_frict = 0.1; m_force = -5; b_bad = true; b_tormoza = true; m_sound_type = 2; this.m_back = "Car5"; this.b_left = false; this.m_type = 2; FirstInit(this); } } }//package Objects
Section 135
//Circle (Objects.Circle) package Objects { 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 Box2D.Dynamics.Contacts.*; import flash.display.*; public dynamic class Circle extends MovieClip { public var p1:Object; public var p3:Object; public var p2:Object; public var p4:Object; public var m_friction;// = 0.1 public var m_phys_body;// = 0 public function Circle(){ main.AddObject(this); } public function CreatePhysBody(){ var _local1:b2BodyDef; _local1 = new b2BodyDef(); _local1.position.Set((x / main.m_physScale), (y / main.m_physScale)); _local1.angle = ((rotation / 180) * Math.PI); rotation = 0; var _local2:b2CircleDef = new b2CircleDef(); _local2.radius = ((width / main.m_physScale) / 2); _local2.density = 0.6; _local2.restitution = 0.2; _local2.friction = m_friction; var _local3:* = main.m_world.CreateBody(_local1); _local3.CreateShape(_local2); _local3.SetMassFromShapes(); m_phys_body = _local3; } public function Destroy(){ main.m_world.DestroyBody(m_phys_body); } public function Update(){ if ((((m_phys_body == 0)) && (main.m_stage))){ CreatePhysBody(); }; if (m_phys_body){ x = (m_phys_body.GetPosition().x * main.m_physScale); y = (m_phys_body.GetPosition().y * main.m_physScale); rotation = ((m_phys_body.GetAngle() / Math.PI) * 180); }; } } }//package Objects
Section 136
//ContactListenerClass (Objects.ContactListenerClass) package Objects { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import flash.events.*; public class ContactListenerClass extends b2ContactListener { public var contactStack:Array; public function ContactListenerClass(){ contactStack = new Array(); super(); } override public function Add(_arg1:b2ContactPoint):void{ var _local4:Number; var _local5:b2Vec2; var _local2:b2Shape = _arg1.shape1; var _local3:b2Shape = _arg1.shape2; if (((_local2.GetBody().m_userData) && (_local3.GetBody().m_userData))){ if ((((((_local2.GetBody().m_userData.m_type == 1)) && ((_local3.GetBody().m_userData.m_type == 2)))) || ((((_local3.GetBody().m_userData.m_type == 1)) && ((_local2.GetBody().m_userData.m_type == 2)))))){ _local4 = _arg1.separation; _local5 = _arg1.position.Copy(); if (_local2.GetBody().m_userData.m_type == 1){ contactStack.push({car:_local2.GetBody(), car2:_local3.GetBody(), force:_local4, pos:_local5}); } else { contactStack.push({car:_local3.GetBody(), car2:_local2.GetBody(), force:_local4, pos:_local5}); }; }; }; } } }//package Objects
Section 137
//ParkZone (Objects.ParkZone) package Objects { import flash.events.*; import flash.display.*; public dynamic class ParkZone extends MovieClip { public var b_activate;// = false public function ParkZone():void{ this.place.visible = false; this.park.visible = false; main.AddObject(this, 10); } public function Update(){ var _local1:*; var _local2:*; return; } public function IsCarParked(_arg1){ var _local2:* = _arg1.GetPosition(); return (this.hitTestPoint(_local2[0], _local2[1])); } public function Destroy(){ if (parent){ parent.removeChild(this); }; } } }//package Objects
Section 138
//ReverseLeft (Objects.ReverseLeft) package Objects { import flash.events.*; import flash.display.*; import flash.utils.*; public dynamic class ReverseLeft extends MovieClip { public function ReverseLeft():void{ main.AddObject(this); } public function Update(){ var _local1:*; var _local2:*; for each (_local1 in main.m_objects) { if (_local1.m_type == 1){ if (_local1.b_left == true){ _local2 = _local1.GetPosition(); if (this.hitTestObject(_local1.ibox.corpus)){ ChangeCar(_local1, _local2); }; }; }; }; } public function Destroy(){ if (parent){ parent.removeChild(this); }; } public function ChangeCar(_arg1, _arg2){ main.m_main.Car_Reverse.play(); var _local3:* = new (getDefinitionByName(("Objects." + _arg1.m_back)) as Class)(_arg2[0], _arg2[1]); main.m_main.addChild(_local3); if (_arg1.b_breaks == false){ _local3.UnBreak(); }; var _local4:* = _arg1.cart.GetLinearVelocity(); _local3.cart.SetLinearVelocity(_local4); main.m_talks.FlipCar(_arg1, _local3); main.DeleteObject(_arg1); } } }//package Objects
Section 139
//ReverseRight (Objects.ReverseRight) package Objects { import flash.events.*; import flash.display.*; import flash.utils.*; public dynamic class ReverseRight extends MovieClip { public function ReverseRight():void{ main.AddObject(this); } public function Update(){ var _local1:*; var _local2:*; for each (_local1 in main.m_objects) { if (_local1.m_type == 1){ if (_local1.b_left == false){ _local2 = _local1.GetPosition(); if (this.hitTestObject(_local1.ibox.corpus)){ ChangeCar(_local1, _local2); }; }; }; }; } public function Destroy(){ if (parent){ parent.removeChild(this); }; } public function ChangeCar(_arg1, _arg2){ main.m_main.Car_Reverse.play(); var _local3:* = new (getDefinitionByName(("Objects." + _arg1.m_back)) as Class)(_arg2[0], _arg2[1]); main.m_main.addChild(_local3); if (_arg1.b_breaks == false){ _local3.UnBreak(); }; var _local4:* = _arg1.cart.GetLinearVelocity(); _local3.cart.SetLinearVelocity(_local4); main.m_talks.FlipCar(_arg1, _local3); main.DeleteObject(_arg1); } } }//package Objects
Section 140
//ScoresData (Objects.ScoresData) package Objects { import flash.events.*; import flash.display.*; public dynamic class ScoresData { public var m_scores; public function ScoresData(){ m_scores = new Array(); m_scores.push(0); m_scores.push(1000); m_scores.push(350); m_scores.push(300); m_scores.push(1300); m_scores.push(1300); m_scores.push(1600); m_scores.push(1000); m_scores.push(1000); m_scores.push(3000); m_scores.push(3000); m_scores.push(2300); m_scores.push(1000); m_scores.push(2000); m_scores.push(1000); m_scores.push(1700); m_scores.push(3300); m_scores.push(1000); m_scores.push(2800); m_scores.push(1000); m_scores.push(2300); m_scores.push(2600); m_scores.push(3300); m_scores.push(6300); m_scores.push(1300); m_scores.push(1000); m_scores.push(1000); m_scores.push(2000); m_scores.push(3600); m_scores.push(1000); m_scores.push(1000); m_scores.push(1000); m_scores.push(1000); m_scores.push(1000); m_scores.push(1300); m_scores.push(1000); m_scores.push(1000); m_scores.push(1000); m_scores.push(1000); m_scores.push(1300); m_scores.push(1000); } } }//package Objects
Section 141
//StaticTrigger (Objects.StaticTrigger) package Objects { import flash.events.*; import flash.display.*; public dynamic class StaticTrigger extends MovieClip { public var b_action;// = false public function StaticTrigger():void{ main.AddObject(this); } public function CheckTrigger(_arg1){ if (b_action == true){ return; }; if (this.hitTestObject(_arg1)){ Action(); }; } public function Destroy(){ if (parent){ parent.removeChild(this); }; } public function Action(){ var _local3:*; var _local4:*; var _local5:*; b_action = true; var _local1:* = ("S" + this.name); var _local2:* = true; while (_local2) { _local2 = false; _local3 = 0; while (_local3 < main.m_stage.numChildren) { _local4 = main.m_stage.getChildAt(_local3); if ((((_local4.name == _local1)) && (!((_local4 == this))))){ _local2 = true; main.DeleteObject(_local4); _local5 = new RemoveEffect(); _local5.x = _local4.x; _local5.y = _local4.y; main.m_main.addChild(_local5); break; }; _local3++; }; }; main.m_main.Block_Remove.play(); } public function Update(){ var _local1:*; if (b_action == true){ return; }; for each (_local1 in main.m_objects) { if (_local1.m_type == 1){ CheckTrigger(_local1.ibox.corpus); } else { if (_local1.m_type == 5){ CheckTrigger(_local1); }; }; }; } } }//package Objects
Section 142
//TalkClip (Objects.TalkClip) package Objects { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.net.*; public dynamic class TalkClip extends MovieClip { public var m_car; var b_active;// = false var b_left; var m_death_time;// = 0 var m_px; var m_py; var m_text; public function TalkClip(_arg1, _arg2, _arg3, _arg4=false){ addFrameScript(0, frame1); if (_arg3 > 0){ m_death_time = (getTimer() + _arg3); }; m_car = _arg1; _arg1.m_talk = this; m_text = _arg2; b_left = _arg4; if (b_left == false){ gotoAndStop(2); }; main.m_main.addChild(this); UpdatePPosition(); x = m_px; y = m_py; } public function Update(){ var _local1:* = 0.2; if (this.TText){ this.TText.text = m_text; }; UpdatePPosition(); var _local2:* = (m_px - x); var _local3:* = (m_py - y); var _local4:* = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); if (_local4 < 5){ b_active = false; }; if (_local4 > 10){ b_active = true; }; if (b_active){ x = (x + (_local2 * _local1)); y = (y + (_local3 * _local1)); }; if (m_death_time > 0){ if (getTimer() > m_death_time){ main.m_talks.DeleteTalk(this); }; }; } function UpdatePPosition(){ var _local1:* = m_car.GetPosition(); if (b_left){ m_px = (_local1[0] + 50); } else { m_px = (_local1[0] - 50); }; m_py = (_local1[1] - 90); } public function Delete(){ if (parent){ parent.removeChild(this); }; } function frame1(){ stop(); } } }//package Objects
Section 143
//TalkManager (Objects.TalkManager) package Objects { import flash.events.*; import flash.utils.*; public dynamic class TalkManager { var m_data; var m_talks; var t_time2; var t_time;// = 0 public function TalkManager():void{ m_talks = new Array(); m_data = new Array(); } public function AddTalkFinish(_arg1, _arg2, _arg3, _arg4=false){ m_data.push({m_car:_arg1, m_text:_arg2, m_time:_arg3, m_time2:0, b_left:_arg4, m_type:2}); } public function FlipCar(_arg1, _arg2){ var _local3:*; if (_arg1.m_talk){ _arg1.m_talk.m_car = _arg2; _arg2.m_talk = _arg1.m_talk; }; for each (_local3 in m_data) { if (_local3.m_car == _arg1){ _local3.m_car = _arg2; }; }; } public function CreateTalk(_arg1){ var _local2:* = new TalkClip(_arg1.m_car, _arg1.m_text, _arg1.m_time2, _arg1.b_left); m_talks.push(_local2); } public function Update(){ var _local1:*; for each (_local1 in m_talks) { _local1.Update(); }; _local1 = 0; while (_local1 < m_data.length) { if (m_data[_local1].m_type == 1){ if (((getTimer() - m_data[_local1].m_time) - t_time2) > 0){ CreateTalk(m_data[_local1]); m_data.splice(_local1, 1); }; }; _local1++; }; if (main.b_finish == false){ return; }; if (t_time == 0){ t_time = getTimer(); }; _local1 = 0; while (_local1 < m_data.length) { if (m_data[_local1].m_type == 2){ if (((getTimer() - m_data[_local1].m_time) - t_time) > 0){ CreateTalk(m_data[_local1]); m_data.splice(_local1, 1); }; }; _local1++; }; } public function Clear(){ var _local1:*; for each (_local1 in m_talks) { _local1.Delete(); }; m_talks.splice(0); m_data.splice(0); } public function AddTalkSrart(_arg1, _arg2, _arg3, _arg4, _arg5=false){ m_data.push({m_car:_arg1, m_text:_arg2, m_time:_arg3, m_time2:_arg4, b_left:_arg5, m_type:1}); } public function ResetTime(){ t_time2 = getTimer(); t_time = 0; } public function DeleteTalk(_arg1){ var _local2:*; _local2 = 0; while (_local2 < m_talks.length) { if (m_talks[_local2] == _arg1){ m_talks[_local2].Delete(); m_talks.splice(_local2, 1); }; _local2++; }; } } }//package Objects
Section 144
//base_stage (Stages.base_stage) package Stages { import flash.display.*; public dynamic class base_stage extends MovieClip { } }//package Stages
Section 145
//stage_01 (Stages.stage_01) package Stages { 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 Box2D.Dynamics.Contacts.*; import Objects.*; import gui.*; public dynamic class stage_01 extends base_stage { public function stage_01(){ main.b_parking_need = true; main.m_talks.AddTalkFinish(this.Car_01, "Yeah! I'm the KING of the road!", 0, false); } public function Update(){ if (((this.Car_01) && ((this.Car_01.b_breaks == false)))){ this.Arrow.visible = false; }; } } }//package Stages
Section 146
//stage_02 (Stages.stage_02) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_02 extends base_stage { public function stage_02(){ main.m_talks.AddTalkFinish(this.Car_01, "Wiu...Wiu!", 0, true); } } }//package Stages
Section 147
//stage_03 (Stages.stage_03) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_03 extends base_stage { public function stage_03(){ main.m_talks.AddTalkFinish(this.Car_01, "Big & heavy!", 0, true); } } }//package Stages
Section 148
//stage_04 (Stages.stage_04) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_04 extends base_stage { public function stage_04(){ main.m_talks.AddTalkSrart(this.Car_02, "U won't get me here! ha-ha!", 1000, 3000, true); main.m_talks.AddTalkFinish(this.Car_01, "Ram them all, in the name of law!", 500, false); } } }//package Stages
Section 149
//stage_05 (Stages.stage_05) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_05 extends base_stage { public function stage_05(){ main.m_talks.AddTalkFinish(this.Car_01, "Good team work, buddy!", 0, false); main.m_talks.AddTalkFinish(this.Car_02, "We've got it on a run!", 2000, false); } } }//package Stages
Section 150
//stage_06 (Stages.stage_06) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_06 extends base_stage { public function stage_06(){ main.m_talks.AddTalkFinish(this.Car_01, "Roller Coaster", 0, true); } } }//package Stages
Section 151
//stage_07 (Stages.stage_07) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_07 extends base_stage { public function stage_07(){ main.m_talks.AddTalkSrart(this.Car_02, "It's FIRE TRUCK! Run for your life!", 0, 3500, true); main.m_talks.AddTalkFinish(this.Car_01, "Hey, guys! Where r u?", 0, true); } } }//package Stages
Section 152
//stage_08 (Stages.stage_08) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_08 extends base_stage { public function stage_08(){ main.m_talks.AddTalkFinish(this.Car_02, " Good job, squad!", 0, false); main.m_talks.AddTalkFinish(this.Car_01, "Sir, Wiu, sir!", 2000, true); } } }//package Stages
Section 153
//stage_09 (Stages.stage_09) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_09 extends base_stage { public function stage_09(){ main.m_talks.AddTalkFinish(this.Car_01, "Guess, enough place for everyone?", 0, false); } } }//package Stages
Section 154
//stage_10 (Stages.stage_10) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_10 extends base_stage { public function stage_10(){ main.m_talks.AddTalkFinish(this.Car_01, "No comments!", 0, true); main.m_talks.AddTalkFinish(this.Car_02, "Yeah!", 3000, false); main.m_talks.AddTalkFinish(this.Car_03, "Definetly Wiu!", 6000, true); } } }//package Stages
Section 155
//stage_11 (Stages.stage_11) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_11 extends base_stage { public function stage_11(){ main.m_talks.AddTalkSrart(this.Car_01, "Get me out of here!", 500, 2000, true); main.m_talks.AddTalkFinish(this.Car_01, "Thanks, pal!", 500, true); main.m_talks.AddTalkFinish(this.Car_02, "Wiu are the champions!", 2000, false); } } }//package Stages
Section 156
//stage_12 (Stages.stage_12) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_12 extends base_stage { public function stage_12(){ main.m_talks.AddTalkSrart(this.Car_03, "No way, you gonna get me here!", 500, 3000, false); main.m_talks.AddTalkFinish(this.Car_02, "Wish I could fly!", 500, true); main.m_talks.AddTalkFinish(this.Car_01, "Try it in the next level..", 2500, true); } } }//package Stages
Section 157
//stage_13 (Stages.stage_13) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_13 extends base_stage { public function stage_13(){ var _local1:*; super(); for each (_local1 in this.Car_03.pw) { _local1.SetBullet(true); }; for each (_local1 in this.Car_02.pw) { _local1.SetBullet(true); }; main.m_talks.AddTalkSrart(this.Car_01, "U shouldn't park there!", 0, 2500, true); main.m_talks.AddTalkSrart(this.Car_02, "Shut up! I do what I want!", 2500, 1500, true); main.m_talks.AddTalkSrart(this.Car_01, "Wiu the Hell ?!", 5000, 1500, true); main.m_talks.AddTalkSrart(this.Car_03, "I'm trying to fly!", 7000, 3000, false); } } }//package Stages
Section 158
//stage_14 (Stages.stage_14) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_14 extends base_stage { public function stage_14(){ main.m_talks.AddTalkSrart(this.Car_01, "Oh man, I wanna park there!", 1000, 2500, true); main.m_talks.AddTalkFinish(this.Car_02, "Guess he is happy now", 500, false); main.m_talks.AddTalkFinish(this.Car_03, "Guess he is where he belong", 2000, false); } } }//package Stages
Section 159
//stage_15 (Stages.stage_15) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_15 extends base_stage { public function stage_15(){ main.m_talks.AddTalkFinish(this.Car_01, "Well done, buddy!", 0, false); main.m_talks.AddTalkFinish(this.Car_02, "Wiu!", 2000, false); } } }//package Stages
Section 160
//stage_16 (Stages.stage_16) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_16 extends base_stage { public function stage_16(){ main.m_talks.AddTalkFinish(this.Car_01, "Municipality unleashed!", 500, false); } } }//package Stages
Section 161
//stage_17 (Stages.stage_17) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_17 extends base_stage { public function stage_17(){ main.m_talks.AddTalkFinish(this.Car_01, "I have a feeling I look stupid", 500, true); } } }//package Stages
Section 162
//stage_18 (Stages.stage_18) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_18 extends base_stage { public function stage_18(){ main.m_talks.AddTalkFinish(this.Car_01, "I'm not a violent car by nature!", 0, true); main.m_talks.AddTalkFinish(this.Car_02, "U just played Carmageddon a lot)", 2100, false); } } }//package Stages
Section 163
//stage_19 (Stages.stage_19) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_19 extends base_stage { public function stage_19(){ main.m_talks.AddTalkFinish(this.Car_01, "Fiu! I feel fuel in my pants!", 0, false); main.m_talks.AddTalkFinish(this.Car_02, "U r a sniper, buddy!", 2100, true); } } }//package Stages
Section 164
//stage_20 (Stages.stage_20) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_20 extends base_stage { public function stage_20(){ main.m_talks.AddTalkFinish(this.Car_01, "Hey! Try Sponsor's lvls", 1000, true); main.m_talks.AddTalkFinish(this.Car_02, "Yeah! They definitely cool!", 4000, false); } } }//package Stages
Section 165
//stage_21 (Stages.stage_21) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_21 extends base_stage { public function stage_21(){ main.m_talks.AddTalkFinish(this.Car_01, "Create an order on the road", 1000, true); main.m_talks.AddTalkFinish(this.Car_02, "With extreme violence!", 3000, true); } } }//package Stages
Section 166
//stage_22 (Stages.stage_22) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_22 extends base_stage { public function stage_22(){ main.m_talks.AddTalkFinish(this.Car_01, "Hey, POLy, U got him!", 1000, false); main.m_talks.AddTalkFinish(this.Car_02, " There is no escape from justice!", 3000, false); } } }//package Stages
Section 167
//stage_23 (Stages.stage_23) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_23 extends base_stage { public function stage_23(){ main.m_talks.AddTalkFinish(this.Car_01, "That was tough!", 1000, true); main.m_talks.AddTalkFinish(this.Car_02, "Guess we look stupid... again!", 3000, true); main.m_talks.AddTalkFinish(this.Car_03, "Yep!", 5000, false); } } }//package Stages
Section 168
//stage_24 (Stages.stage_24) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_24 extends base_stage { public function stage_24(){ main.m_talks.AddTalkSrart(this.Car_01, "I've bribed developers!", 1000, 3000, true); main.m_talks.AddTalkSrart(this.Car_01, "You won't get me this time! HA-HA!", 4000, 3000, true); main.m_talks.AddTalkFinish(this.Car_02, "Developers don't accept bribes!", 500, false); main.m_talks.AddTalkFinish(this.Car_04, "Confirm!", 4000, false); } } }//package Stages
Section 169
//stage_25 (Stages.stage_25) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_25 extends base_stage { public function stage_25(){ main.m_talks.AddTalkFinish(this.Car_01, "Yes! Brutal justice wins again!", 500, false); } } }//package Stages
Section 170
//stage_26 (Stages.stage_26) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_26 extends base_stage { public function stage_26(){ main.m_talks.AddTalkFinish(this.Car_02, "Fiu, that was cool!", 500, true); } } }//package Stages
Section 171
//stage_27 (Stages.stage_27) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_27 extends base_stage { public function stage_27(){ main.m_talks.AddTalkFinish(this.Car_01, "Double justice! brutally twice!", 500, false); main.m_talks.AddTalkFinish(this.Car_02, "Affirmative.", 3500, false); } } }//package Stages
Section 172
//stage_28 (Stages.stage_28) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_28 extends base_stage { public function stage_28(){ main.m_talks.AddTalkFinish(this.Car_01, "I wanna be FBI", 500, false); main.m_talks.AddTalkFinish(this.Car_02, "Finish all lvl with gold star", 3500, false); main.m_talks.AddTalkFinish(this.Car_03, "Wiu!", 6500, true); } } }//package Stages
Section 173
//stage_29 (Stages.stage_29) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_29 extends base_stage { public function stage_29(){ main.m_talks.AddTalkFinish(this.Car_01, "Don't even breath!", 500, false); main.m_talks.AddTalkFinish(this.Car_02, " I'm trying!", 3500, false); } } }//package Stages
Section 174
//stage_30 (Stages.stage_30) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_30 extends base_stage { var action_1;// = false var action_2;// = false var action_3;// = false public function stage_30(){ this.Ball_01.m_friction = 1; main.m_talks.AddTalkFinish(this.Car_01, "Wish I could meet the creator of this lvl!", 500, false); } } }//package Stages
Section 175
//stage_31 (Stages.stage_31) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_31 extends base_stage { public function stage_31(){ main.m_talks.AddTalkFinish(this.Car_01, "Wish I was a tank!", 1000, true); } } }//package Stages
Section 176
//stage_32 (Stages.stage_32) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_32 extends base_stage { public function stage_32(){ main.m_talks.AddTalkFinish(this.Car_01, "I'm a curling star!", 1000, true); } } }//package Stages
Section 177
//stage_33 (Stages.stage_33) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_33 extends base_stage { public function stage_33(){ main.m_talks.AddTalkFinish(this.Car_01, "That was incredible!", 1000, true); } } }//package Stages
Section 178
//stage_34 (Stages.stage_34) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_34 extends base_stage { public function stage_34(){ main.m_talks.AddTalkFinish(this.Car_01, "I'm thinking of retirement", 1000, true); main.m_talks.AddTalkFinish(this.Car_02, "me too!", 3500, true); } } }//package Stages
Section 179
//stage_35 (Stages.stage_35) package Stages { import flash.events.*; import Objects.*; public dynamic class stage_35 extends base_stage { public function stage_35(){ main.m_talks.AddTalkFinish(this.Car_01, "Guess, that's all!", 500, false); main.m_talks.AddTalkFinish(this.Car_02, "Yeah! U beat it! thanks for playing!", 2000, true); main.m_talks.AddTalkSrart(this.Car_03, "This time, u never gonna get me! ha-ha!", 1000, 3000, true); } } }//package Stages
Section 180
//Car1_Bum_67 (Vehicles_fla.Car1_Bum_67) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class Car1_Bum_67 extends MovieClip { public function Car1_Bum_67(){ addFrameScript(34, frame35); } function frame35(){ if (parent){ parent.gotoAndStop(1); }; } } }//package Vehicles_fla
Section 181
//Car1_Corpus_65 (Vehicles_fla.Car1_Corpus_65) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class Car1_Corpus_65 extends MovieClip { public var selector:MovieClip; public function Car1_Corpus_65(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Vehicles_fla
Section 182
//Car1_Fall_68 (Vehicles_fla.Car1_Fall_68) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class Car1_Fall_68 extends MovieClip { public function Car1_Fall_68(){ addFrameScript(11, frame12); } function frame12(){ if (parent){ parent.gotoAndStop(1); }; } } }//package Vehicles_fla
Section 183
//Car1_Over_66 (Vehicles_fla.Car1_Over_66) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class Car1_Over_66 extends MovieClip { public function Car1_Over_66(){ addFrameScript(34, frame35); } function frame35(){ if (parent){ parent.gotoAndStop(1); }; } } }//package Vehicles_fla
Section 184
//Car2_Bum_58 (Vehicles_fla.Car2_Bum_58) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class Car2_Bum_58 extends MovieClip { public function Car2_Bum_58(){ addFrameScript(24, frame25); } function frame25(){ if (parent){ parent.gotoAndStop(1); }; } } }//package Vehicles_fla
Section 185
//Car2_Fall_59 (Vehicles_fla.Car2_Fall_59) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class Car2_Fall_59 extends MovieClip { public function Car2_Fall_59(){ addFrameScript(12, frame13); } function frame13(){ if (parent){ parent.gotoAndStop(1); }; } } }//package Vehicles_fla
Section 186
//Car2_Over_57 (Vehicles_fla.Car2_Over_57) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class Car2_Over_57 extends MovieClip { public function Car2_Over_57(){ addFrameScript(55, frame56); } function frame56(){ if (parent){ parent.gotoAndStop(1); }; } } }//package Vehicles_fla
Section 187
//Car3_Bum_32 (Vehicles_fla.Car3_Bum_32) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class Car3_Bum_32 extends MovieClip { public function Car3_Bum_32(){ addFrameScript(18, frame19); } function frame19(){ if (parent){ parent.gotoAndStop(1); }; } } }//package Vehicles_fla
Section 188
//Car3_Fall_35 (Vehicles_fla.Car3_Fall_35) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class Car3_Fall_35 extends MovieClip { public function Car3_Fall_35(){ addFrameScript(15, frame16); } function frame16(){ if (parent){ parent.gotoAndStop(1); }; } } }//package Vehicles_fla
Section 189
//Car3_Over_31 (Vehicles_fla.Car3_Over_31) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class Car3_Over_31 extends MovieClip { public function Car3_Over_31(){ addFrameScript(32, frame33); } function frame33(){ if (parent){ parent.gotoAndStop(1); }; } } }//package Vehicles_fla
Section 190
//Car4_Bum_86 (Vehicles_fla.Car4_Bum_86) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class Car4_Bum_86 extends MovieClip { public function Car4_Bum_86(){ addFrameScript(11, frame12); } function frame12(){ if (parent){ parent.gotoAndStop(1); }; } } }//package Vehicles_fla
Section 191
//Car4_Fall_87 (Vehicles_fla.Car4_Fall_87) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class Car4_Fall_87 extends MovieClip { public function Car4_Fall_87(){ addFrameScript(14, frame15); } function frame15(){ if (parent){ parent.gotoAndStop(1); }; } } }//package Vehicles_fla
Section 192
//Car4_Over_85 (Vehicles_fla.Car4_Over_85) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class Car4_Over_85 extends MovieClip { public function Car4_Over_85(){ addFrameScript(14, frame15); } function frame15(){ if (parent){ parent.gotoAndStop(1); }; } } }//package Vehicles_fla
Section 193
//Car5_Bum_48 (Vehicles_fla.Car5_Bum_48) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class Car5_Bum_48 extends MovieClip { public function Car5_Bum_48(){ addFrameScript(19, frame20); } function frame20(){ if (parent){ parent.gotoAndStop(1); }; } } }//package Vehicles_fla
Section 194
//Car5_Fall_49 (Vehicles_fla.Car5_Fall_49) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class Car5_Fall_49 extends MovieClip { public function Car5_Fall_49(){ addFrameScript(14, frame15); } function frame15(){ if (parent){ parent.gotoAndStop(1); }; } } }//package Vehicles_fla
Section 195
//Car5_Over_47 (Vehicles_fla.Car5_Over_47) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class Car5_Over_47 extends MovieClip { public function Car5_Over_47(){ addFrameScript(14, frame15); } function frame15(){ if (parent){ parent.gotoAndStop(1); }; } } }//package Vehicles_fla
Section 196
//FinalClip_150 (Vehicles_fla.FinalClip_150) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class FinalClip_150 extends MovieClip { public function FinalClip_150(){ addFrameScript(454, frame455, 569, frame570); } function frame570(){ stop(); } function frame455(){ if (main.m_cur_music_num != 1){ if (main.m_cur_music){ main.m_cur_music.stop(); }; main.m_cur_music = main.m_main.Menu_Music.play(0, 9999); }; } } }//package Vehicles_fla
Section 197
//fire_truck_kuzov_29 (Vehicles_fla.fire_truck_kuzov_29) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class fire_truck_kuzov_29 extends MovieClip { public function fire_truck_kuzov_29(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); if (main.b_reskin == true){ gotoAndStop(2); }; } function frame2(){ stop(); if (main.b_reskin == false){ gotoAndStop(1); }; } } }//package Vehicles_fla
Section 198
//hummer_kuzov_45 (Vehicles_fla.hummer_kuzov_45) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class hummer_kuzov_45 extends MovieClip { public function hummer_kuzov_45(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); if (main.b_reskin){ gotoAndStop(2); }; } function frame2(){ stop(); if (!main.b_reskin){ gotoAndStop(1); }; } } }//package Vehicles_fla
Section 199
//IntroClip_137 (Vehicles_fla.IntroClip_137) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class IntroClip_137 extends MovieClip { public function IntroClip_137(){ addFrameScript(524, frame525, 550, frame551); } function frame525(){ if (main.m_cur_music_num != 1){ if (main.m_cur_music){ main.m_cur_music.stop(); }; main.m_cur_music = main.m_main.Menu_Music.play(0, 9999); main.m_cur_music_num = 1; }; } function frame551(){ main.m_main.gotoAndStop("Menu"); } } }//package Vehicles_fla
Section 200
//med_kuzov_5 (Vehicles_fla.med_kuzov_5) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class med_kuzov_5 extends MovieClip { public function med_kuzov_5(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); if (main.b_reskin){ gotoAndStop(2); }; } function frame2(){ stop(); if (main.b_reskin == false){ gotoAndStop(1); }; } } }//package Vehicles_fla
Section 201
//ReskinSymbol_183 (Vehicles_fla.ReskinSymbol_183) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class ReskinSymbol_183 extends MovieClip { public function ReskinSymbol_183(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Vehicles_fla
Section 202
//street_racer_kuzov_83 (Vehicles_fla.street_racer_kuzov_83) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class street_racer_kuzov_83 extends MovieClip { public function street_racer_kuzov_83(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); if (main.b_reskin){ gotoAndStop(2); }; } function frame2(){ stop(); if (!main.b_reskin){ gotoAndStop(1); }; } } }//package Vehicles_fla
Section 203
//Tween10_33 (Vehicles_fla.Tween10_33) package Vehicles_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class Tween10_33 extends MovieClip { public function Tween10_33(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); if (main.b_reskin){ gotoAndStop(2); }; } function frame2(){ stop(); if (!main.b_reskin){ gotoAndStop(1); }; } } }//package Vehicles_fla
Section 204
//Block_Remove (Block_Remove) package { import flash.media.*; public dynamic class Block_Remove extends Sound { } }//package
Section 205
//BumEffect (BumEffect) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class BumEffect extends MovieClip { public function BumEffect(){ addFrameScript(14, frame15); } function frame15(){ stop(); if (parent){ parent.removeChild(this); }; } } }//package
Section 206
//Button_Click (Button_Click) package { import flash.media.*; public dynamic class Button_Click extends Sound { } }//package
Section 207
//Button_Over (Button_Over) package { import flash.media.*; public dynamic class Button_Over extends Sound { } }//package
Section 208
//Car_Reverse (Car_Reverse) package { import flash.media.*; public dynamic class Car_Reverse extends Sound { } }//package
Section 209
//Crush_1 (Crush_1) package { import flash.media.*; public dynamic class Crush_1 extends Sound { } }//package
Section 210
//Crush_2 (Crush_2) package { import flash.media.*; public dynamic class Crush_2 extends Sound { } }//package
Section 211
//ferryBlue (ferryBlue) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class ferryBlue extends MovieClip { public function ferryBlue(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 212
//ferryGreen (ferryGreen) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class ferryGreen extends MovieClip { public function ferryGreen(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 213
//ferryRed (ferryRed) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class ferryRed extends MovieClip { public function ferryRed(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 214
//Game_Loose (Game_Loose) package { import flash.media.*; public dynamic class Game_Loose extends Sound { } }//package
Section 215
//Game_Music (Game_Music) package { import flash.media.*; public dynamic class Game_Music extends Sound { } }//package
Section 216
//Game_Restart (Game_Restart) package { import flash.media.*; public dynamic class Game_Restart extends Sound { } }//package
Section 217
//Game_Win (Game_Win) package { import flash.media.*; public dynamic class Game_Win extends Sound { } }//package
Section 218
//GMButtonMoreGames (GMButtonMoreGames) package { import flash.display.*; public dynamic class GMButtonMoreGames extends SimpleButton { } }//package
Section 219
//GreenBarClip (GreenBarClip) package { import flash.display.*; public dynamic class GreenBarClip extends MovieClip { } }//package
Section 220
//LevelGoodClip (LevelGoodClip) package { import flash.display.*; public dynamic class LevelGoodClip extends MovieClip { } }//package
Section 221
//main (main) package { 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 Box2D.Dynamics.Contacts.*; import flash.display.*; import flash.geom.*; import com.midasplayer.*; import Objects.*; import flash.utils.*; import gui.*; import CPMStar.*; import flash.net.*; import flash.ui.*; public dynamic class main extends MovieClip { public static var m_oy = 0; public static var m_physScale:Number = 30; public static var b_locked = false; public static var b_parking_need = false; public static var t_restart_timer = 0; public static var b_no_bad = false; public static var mySO:SharedObject = SharedObject.getLocal("Cars_Flash_12"); public static var b_first = false; public static var b_finish = false; public static var b_loose = false; public static var m_px = 105; public static var m_py = 252; public static var b_menu_up = false; public static var m_cur_music = 0; public static var b_mochi = true; public static var myContactListener = 0; public static var m_counter = 0; public static var b_sound = true; public static var m_stage = 0; public static var b_reskin = false; public static var m_scores = 0; public static var g_num = -1; public static var t_timer = 0; public static var LevelNumberClip = 0; public static var m_stage_name; public static var m_world:b2World; public static var m_objects = new Array(); public static var b_sponsor = false; public static var m_scores_data; public static var m_iterations:int = 10; public static var m_timeStep:Number = 0.0333333333333333; public static var m_ox = 0; public static var m_main; public static var m_levels_buttons_clip = 0; public static var m_sprite:Sprite; public static var b_pause = false; public static var m_cur_music_num = 0; public static var b_level_loaded = false; public static var m_WalkClip = 0; public static var m_over = 0; public static var m_talks = 0; public static var m_py2 = 66; public static var m_level_num = 0; public static var m_clicks = 0; public static var m_sponsor_url = "http://your_url.com"; public function main(){ var _local2:DisplayObject; super(); m_main = this; var _local1 = "2066QC1E1B0B8"; if (main.isUrl(["chat.kongregate.com", "king.com", "facebook.com"])){ this.adBox.visible = false; } else { _local2 = new AdLoader(_local1); this.adBox.addChild(_local2); }; if (!isUrl(["king.com", "facebook.com"])){ }; } public function InitMain(){ var _local1:*; addEventListener(Event.ENTER_FRAME, Update); stage.addEventListener(MouseEvent.MOUSE_DOWN, MouseDown); stage.addEventListener(MouseEvent.MOUSE_UP, MouseUp); stage.addEventListener(MouseEvent.MOUSE_MOVE, MouseMove); stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); m_sprite = new Sprite(); addChild(m_sprite); InitPhysics(); m_scores_data = new ScoresData(); if (!mySO.data.Saves){ if (b_mochi){ MochiBot.track(main.m_main, "aad0c405"); }; mySO.data.Saves = new Object(); mySO.data.Saves.m_scores = new Array(); mySO.data.Saves.m_levels = new Array(); mySO.data.Saves.b_sponsor = false; mySO.data.Saves.b_all = false; mySO.data.Saves.lvl1 = false; mySO.data.Saves.lvl5 = false; mySO.data.Saves.lvl10 = false; mySO.data.Saves.lvl20 = false; mySO.data.Saves2 = new Object(); mySO.data.Saves2.m_scores = new Array(); mySO.data.Saves2.m_levels = new Array(); mySO.data.Saves2.b_sponsor = false; mySO.data.Saves2.b_all = false; _local1 = 0; while (_local1 <= 35) { mySO.data.Saves.m_scores.push(0); mySO.data.Saves.m_levels.push(0); mySO.data.Saves2.m_scores.push(0); mySO.data.Saves2.m_levels.push(0); _local1++; }; mySO.data.Saves.m_levels[1] = 1; mySO.data.Saves2.m_levels[1] = 1; if (isUrl(["king.com"])){ main.b_sponsor = true; }; if (main.b_sponsor){ OpenSponsorsLevels(mySO.data.Saves); OpenSponsorsLevels(mySO.data.Saves2); }; mySO.flush(); }; m_talks = new TalkManager(); } public function CalculateContacts(){ var _local1:*; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:*; var _local6:*; var _local7:*; var _local8:*; if (myContactListener == 0){ return; }; while (myContactListener.contactStack[0]) { _local1 = myContactListener.contactStack.pop(); _local2 = _local1.pos.x; _local3 = _local1.pos.y; _local4 = -(_local1.force); _local5 = _local1.car; _local6 = _local1.car2; if (_local4 > 0.01){ if (_local4 > 0.03){ _local4 = 0.03; }; _local7 = new BumEffect(); _local7.x = (_local2 * main.m_physScale); _local7.y = (_local3 * main.m_physScale); _local7.scaleX = (_local4 / 0.01); _local7.scaleY = (_local4 / 0.01); _local7.mouseEnabled = false; _local7.mouseChildren = false; addChild(_local7); if (m_scores < 2000){ _local8 = new BonusStar((_local2 * main.m_physScale), (_local3 * main.m_physScale), int((100 * (_local4 / 0.01)))); }; if ((Math.random() * 1000) < 500){ main.m_main.Crush_1.play(); } else { main.m_main.Crush_2.play(); }; if (_local5.m_userData.m_body.IBox.corpus){ _local5.m_userData.m_body.IBox.corpus.gotoAndStop("Bum"); }; if (_local6.m_userData.m_body.IBox.corpus){ _local6.m_userData.m_body.IBox.corpus.gotoAndStop("Bum"); }; }; }; } public function OpenSponsorsLevels(_arg1){ _arg1.b_sponsor = true; if (_arg1.m_levels[21] != 0){ return; }; _arg1.m_levels[21] = 1; } public function MouseDown(_arg1){ var _local2:*; var _local3:*; if (b_pause){ return; }; if (m_counter > 0){ return; }; for each (_local2 in m_objects) { if ((((_local2.m_type == 1)) || ((_local2.m_type == 2)))){ if ((((_local2.b_bad == false)) && (_local2.ibox.corpus.selector.hitTestPoint(mouseX, mouseY)))){ _local3 = new SelectEffect(); _local3.x = mouseX; _local3.y = mouseY; addChild(_local3); if (_local2.b_breaks){ _local2.UnBreak(); } else { _local2.Break(_local2.b_tormoza); }; }; }; }; } private function keyUpHandler(_arg1:KeyboardEvent):void{ } public function Update(_arg1){ var _local2:*; var _local3:uint; if (b_pause){ return; }; if (((b_level_loaded) && ((m_counter > 0)))){ m_counter--; }; m_sprite.graphics.clear(); for each (_local2 in m_objects) { _local2.Update(); if ((((_local2.y > 1000)) && (!((_local2.m_type == 1))))){ DeleteObject(_local2); }; }; _local3 = getTimer(); m_world.Step(m_timeStep, m_iterations); CheckFinish(); if (m_main.clicks_number_text != undefined){ m_main.clicks_number_text.text = m_clicks; }; if (((((m_stage) && (b_menu_up))) && (!((m_main.GameMenu == undefined))))){ main.m_main.addChild(m_main.GameMenu); b_menu_up = false; }; CalculateContacts(); if (LevelNumberClip){ LevelNumberClip.scores_number_text.text = main.m_scores; LevelNumberClip.scores2_number_text.text = ((" " + m_scores_data.m_scores[m_level_num]) + " "); }; CalculateParking(); if (((m_stage) && (m_stage.Update))){ m_stage.Update(); }; if (this.Checking){ this.Checking.Update(); }; if ((((b_loose == true)) && (m_stage))){ if ((getTimer() - t_restart_timer) > 1000){ }; }; m_talks.Update(); } private function keyDownHandler(_arg1:KeyboardEvent):void{ if ((((((_arg1.keyCode == 27)) || ((_arg1.keyCode == 32)))) || ((_arg1.keyCode == 80)))){ }; if (_arg1.keyCode == 82){ main.RestartLevel(); }; } public function CalculateParking(){ var _local1:*; var _local2:*; var _local3:*; for each (_local1 in m_objects) { if (_local1.m_type == 1){ _local3 = false; for each (_local2 in m_objects) { if (_local2.m_type == 10){ if (_local2.IsCarParked(_local1)){ _local3 = true; }; }; }; if ((((_local1.b_parked == false)) && ((_local3 == true)))){ main.m_main.Parking_In.play(); } else { if ((((_local1.b_parked == true)) && ((_local3 == false)))){ main.m_main.Parking_Out.play(); }; }; _local1.b_parked = _local3; _local1.ibox.parked.visible = _local3; }; }; } public function MouseMove(_arg1:MouseEvent):void{ var _local3:*; if (b_pause){ return; }; if (m_counter > 0){ return; }; var _local2:* = true; for each (_local3 in m_objects) { if ((((_local3.m_type == 1)) || ((_local3.m_type == 2)))){ if ((((_local3.b_bad == false)) && (_local3.ibox.corpus.selector.hitTestPoint(mouseX, mouseY)))){ if (m_over != _local3){ m_over = _local3; if (_local3.ibox.corpus){ if (_local3.ibox.corpus.currentFrame == 1){ _local3.ibox.corpus.gotoAndStop("Over"); }; }; }; _local2 = false; }; }; }; if (_local2){ m_over = 0; }; } public function InitPhysics(){ var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-1000, -1000); _local1.upperBound.Set(1000, 1000); var _local2:b2Vec2 = new b2Vec2(0, 10); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); var _local4:b2DebugDraw = new b2DebugDraw(); _local4.m_sprite = m_sprite; _local4.m_drawScale = m_physScale; _local4.m_fillAlpha = 0.2; _local4.m_lineThickness = 1; _local4.m_drawFlags = (b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit); myContactListener = new ContactListenerClass(); m_world.SetContactListener(myContactListener); } public function MouseUp(_arg1){ if (b_pause){ return; }; } public static function FreeAll(){ var _local1:*; m_talks.Clear(); for each (_local1 in m_objects) { _local1.Destroy(); }; m_stage.parent.removeChild(m_stage); m_stage = 0; m_objects.splice(0); m_main.removeChild(LevelNumberClip); LevelNumberClip = 0; b_level_loaded = false; t_timer = 0; } public static function FinishLevel(){ var _local1:*; if (b_finish){ return; }; i = 0; while (i < m_objects.length) { if ((((m_objects[i].m_type == 1)) || ((m_objects[i].m_type == 2)))){ _local1 = m_objects[i]; if (_local1.m_type == 2){ DeleteObject(_local1); }; }; i++; }; b_parking_need = false; CheckFinish(); t_timer = (t_timer - 3000); } public static function AddObject(_arg1, _arg2=0){ _arg1.m_type = _arg2; m_objects.push(_arg1); } public static function FinishLevelStar(){ if (b_finish){ return; }; var _local1:* = ((b_reskin == true)) ? main.mySO.data.Saves2 : main.mySO.data.Saves; var _local2:* = new BonusStar(0, 0, (m_scores_data.m_scores[main.m_level_num] - main.m_scores)); FinishLevel(); } public static function CreateStage(_arg1){ b_parking_need = false; var _local2:* = new ((getDefinitionByName(("Stages." + _arg1)) as Class)); main.m_stage = _local2; m_counter = 3; b_level_loaded = true; main.m_main.addChild(main.m_stage); m_stage_name = _arg1; b_pause = false; b_finish = false; b_loose = false; b_no_bad = false; t_timer = 0; b_first = true; m_clicks = 0; b_menu_up = true; m_scores = 0; LevelNumberClip = new LevelNumber(); if (m_WalkClip){ m_main.addChild(m_WalkClip); }; main.m_talks.ResetTime(); if ((((((b_reskin == false)) && ((main.m_level_num == 1)))) && ((main.mySO.data.Saves.lvl1 == false)))){ if (b_mochi){ MochiBot.track(main.m_main, "907dace0"); }; main.mySO.data.Saves.lvl1 = true; }; } public static function RestartLevel(){ if (main.m_stage){ main.m_WalkClip.Show(); main.FreeAll(); main.CreateStage(main.m_stage_name); }; } public static function CheckFinish(){ var _local1:*; var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; if (m_stage == 0){ return; }; if (b_finish == false){ _local2 = true; _local3 = true; _local1 = 0; while (_local1 < m_objects.length) { if ((((m_objects[_local1].m_type == 1)) || ((m_objects[_local1].m_type == 2)))){ _local4 = m_objects[_local1]; xx = (_local4.x + _local4.ibox.x); yy = (_local4.y + _local4.ibox.y); if (_local4.m_type == 1){ if (yy > 1000){ _local2 = false; }; }; if (_local4.m_type == 2){ if (yy < 1000){ _local3 = false; }; }; }; _local1++; }; if ((((_local3 == true)) && ((t_timer == 0)))){ b_no_bad = true; t_timer = getTimer(); }; if (_local2 == false){ if (b_loose == false){ _local5 = new FailLogo(); m_stage.addChild(_local5); m_main.Game_Loose.play(); t_restart_timer = getTimer(); }; b_loose = true; return; }; if (b_parking_need == true){ for each (_local1 in m_objects) { if (_local1.m_type == 1){ if (_local1.b_parked == false){ t_timer = getTimer(); return; }; }; }; }; if (((!((t_timer == 0))) && (((getTimer() - t_timer) > 3000)))){ if (_local3 == true){ m_main.Game_Win.play(); m_main.WinMenu.visible = true; b_finish = true; for each (_local1 in m_objects) { if (_local1.m_type == 1){ if (_local1.b_parked == true){ _local7 = _local1.GetPosition(); _local8 = new BonusStar(_local7[0], _local7[1], 1000); }; }; }; if ((((((b_reskin == false)) && ((main.m_level_num == 5)))) && ((main.mySO.data.Saves.lvl5 == false)))){ if (b_mochi){ MochiBot.track(main.m_main, "2c9c8215"); }; main.mySO.data.Saves.lvl5 = true; }; if ((((((b_reskin == false)) && ((main.m_level_num == 10)))) && ((main.mySO.data.Saves.lvl10 == false)))){ if (b_mochi){ MochiBot.track(main.m_main, "7eae4b2d"); }; main.mySO.data.Saves.lvl10 = true; }; if ((((((b_reskin == false)) && ((main.m_level_num == 20)))) && ((main.mySO.data.Saves.lvl20 == false)))){ if (b_mochi){ MochiBot.track(main.m_main, "a8e7c847"); }; main.mySO.data.Saves.lvl20 = true; }; _local6 = ((b_reskin == true)) ? main.mySO.data.Saves2 : main.mySO.data.Saves; if ((((((main.m_level_num == 35)) && ((b_reskin == false)))) && ((_local6.m_levels[main.m_level_num] == 1)))){ if (b_mochi){ MochiBot.track(main.m_main, "af30d1c9"); }; }; if ((((((main.m_level_num == 35)) && ((b_reskin == true)))) && ((_local6.m_levels[main.m_level_num] == 1)))){ if (b_mochi){ MochiBot.track(main.m_main, "a8dac717"); }; }; if (KingAPI.isHome){ KingAPI.submitLevel(main.m_level_num); if ((((((main.m_level_num == 35)) && ((b_reskin == true)))) && ((_local6.m_levels[main.m_level_num] == 1)))){ _local9 = 0; _local1 = 0; while (_local1 <= 35) { _local9 = (_local9 + main.mySO.data.Saves.m_scores[_local1]); _local9 = (_local9 + main.mySO.data.Saves2.m_scores[_local1]); _local1++; }; KingAPI.submitScore(_local9); }; }; _local6.m_levels[main.m_level_num] = 2; if (_local6.m_scores[main.m_level_num] < main.m_scores){ _local6.m_scores[main.m_level_num] = main.m_scores; }; if (_local6.m_levels[31] == 0){ _local10 = true; _local1 = 1; while (_local1 <= 20) { if (_local6.m_scores[_local1] < m_scores_data.m_scores[_local1]){ _local10 = false; }; _local1++; }; if (_local10){ if (_local6.m_levels[31] == 0){ _local6.m_levels[31] = 1; }; }; }; if (main.m_level_num == 20){ _local10 = true; _local1 = 1; while (_local1 <= 20) { if (_local6.m_scores[_local1] < m_scores_data.m_scores[_local1]){ _local10 = false; }; _local1++; }; if (_local10){ if ((((main.m_level_num < 30)) && ((_local6.m_levels[(main.m_level_num + 11)] == 0)))){ _local6.m_levels[(main.m_level_num + 11)] = 1; }; }; } else { if (main.m_level_num == 30){ } else { if (main.m_level_num == 35){ } else { if ((((main.m_level_num < 35)) && ((_local6.m_levels[(main.m_level_num + 1)] == 0)))){ _local6.m_levels[(main.m_level_num + 1)] = 1; }; }; }; }; main.mySO.flush(); }; }; }; } public static function isUrl(_arg1:Array):Boolean{ var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local2:String = main.m_main.stage.loaderInfo.loaderURL; var _local3:* = _local2.split("://"); if (_local3[1]){ _local2 = _local3[1]; }; for (_local5 in _arg1) { _local4 = true; _local6 = _local2.search(_arg1[_local5]); if (_local6 > 0){ _local7 = _local2.charAt((_local6 - 1)); }; if (_local6 == -1){ _local4 = false; }; if ((((_local6 > 0)) && (!((_local7 == "."))))){ _local4 = false; }; if (_local4){ return (true); }; }; return (false); } public static function DeleteObject(_arg1){ var _local2:*; _local2 = 0; while (_local2 < m_objects.length) { if (m_objects[_local2] == _arg1){ m_objects[_local2].Destroy(); m_objects[_local2].b_deleted = true; m_objects.splice(_local2, 1); return; }; _local2++; }; } } }//package
Section 222
//mcBannedSign (mcBannedSign) package { import flash.display.*; public dynamic class mcBannedSign extends MovieClip { public var bg:MovieClip; } }//package
Section 223
//mcCrownMask (mcCrownMask) package { import flash.display.*; public dynamic class mcCrownMask extends MovieClip { } }//package
Section 224
//mcFerryLine (mcFerryLine) package { import flash.display.*; public dynamic class mcFerryLine extends MovieClip { } }//package
Section 225
//mcLogoHolder (mcLogoHolder) package { import flash.display.*; public dynamic class mcLogoHolder extends MovieClip { } }//package
Section 226
//mcLogoMask (mcLogoMask) package { import flash.display.*; public dynamic class mcLogoMask extends MovieClip { } }//package
Section 227
//mcOtherGames (mcOtherGames) package { import flash.display.*; public dynamic class mcOtherGames extends MovieClip { } }//package
Section 228
//mcPlay (mcPlay) package { import flash.display.*; public dynamic class mcPlay extends MovieClip { } }//package
Section 229
//mcWaterRing (mcWaterRing) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class mcWaterRing extends MovieClip { public function mcWaterRing(){ addFrameScript(39, frame40); } function frame40(){ stop(); } } }//package
Section 230
//Med_Break (Med_Break) package { import flash.media.*; public dynamic class Med_Break extends Sound { } }//package
Section 231
//Med_Start (Med_Start) package { import flash.media.*; public dynamic class Med_Start extends Sound { } }//package
Section 232
//Menu_Music (Menu_Music) package { import flash.media.*; public dynamic class Menu_Music extends Sound { } }//package
Section 233
//MochiBot (MochiBot) package { import flash.display.*; import flash.net.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ if (Security.sandboxType == "localWithFile"){ return (null); }; var _local3:MochiBot = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); var _local4 = "http://core.mochibot.com/my/core.swf"; var _local5:URLVariables = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; var _local6:String = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; var _local7:URLRequest = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; var _local8:Loader = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 234
//Parking_In (Parking_In) package { import flash.media.*; public dynamic class Parking_In extends Sound { } }//package
Section 235
//Parking_Out (Parking_Out) package { import flash.media.*; public dynamic class Parking_Out extends Sound { } }//package
Section 236
//Police_Break (Police_Break) package { import flash.media.*; public dynamic class Police_Break extends Sound { } }//package
Section 237
//Police_Start (Police_Start) package { import flash.media.*; public dynamic class Police_Start extends Sound { } }//package
Section 238
//RedLineClip (RedLineClip) package { import flash.display.*; public dynamic class RedLineClip extends MovieClip { } }//package
Section 239
//RemoveEffect (RemoveEffect) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class RemoveEffect extends MovieClip { public function RemoveEffect(){ addFrameScript(14, frame15); } function frame15(){ stop(); if (parent){ parent.removeChild(this); }; } } }//package
Section 240
//SelectEffect (SelectEffect) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.external.*; import flash.system.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.text.*; import flash.ui.*; public dynamic class SelectEffect extends MovieClip { public function SelectEffect(){ addFrameScript(19, frame20); } function frame20(){ stop(); if (parent){ parent.removeChild(this); }; } } }//package
Section 241
//sfxBell (sfxBell) package { import flash.media.*; public dynamic class sfxBell extends Sound { } }//package
Section 242
//sfxBounce (sfxBounce) package { import flash.media.*; public dynamic class sfxBounce extends Sound { } }//package
Section 243
//WaterHolderB (WaterHolderB) package { import flash.display.*; import com.midasplayer.extras.*; public dynamic class WaterHolderB extends MovieClip { public var BLUE:Water; } }//package
Section 244
//WaterHolderG (WaterHolderG) package { import flash.display.*; import com.midasplayer.extras.*; public dynamic class WaterHolderG extends MovieClip { public var GREEN:Water; } }//package
Section 245
//WaterHolderR (WaterHolderR) package { import flash.display.*; import com.midasplayer.extras.*; public dynamic class WaterHolderR extends MovieClip { public var RED:Water; } }//package

Library Items

Symbol 1 Sound {Police_Break}
Symbol 2 Sound {sfxBounce}
Symbol 3 Sound {sfxBell}
Symbol 4 GraphicUsed by:5
Symbol 5 MovieClipUses:4Used by:9
Symbol 6 FontUsed by:7 8 410
Symbol 7 EditableTextUses:6Used by:9
Symbol 8 EditableTextUses:6Used by:9
Symbol 9 MovieClip {Objects.TalkClip}Uses:5 7 8
Symbol 10 GraphicUsed by:11 35
Symbol 11 MovieClip {gui.BonusStar}Uses:10
Symbol 12 GraphicUsed by:19 23 26
Symbol 13 GraphicUsed by:19 23 26 112
Symbol 14 GraphicUsed by:19 23 26
Symbol 15 GraphicUsed by:19 23 26 112
Symbol 16 GraphicUsed by:19 23 26
Symbol 17 Sound {Button_Over}Used by:19 23 26 112 116 121 126 528 792 808 816 821 849 858 867 873 881 893 898  Timeline
Symbol 18 Sound {Button_Click}Used by:19 23 26 112 116 121 126 528 792 808 816 821 849 858 867 873 881 893 898  Timeline
Symbol 19 Button {GMButtonMoreGames}Uses:12 13 14 15 16 17 18Used by:33
Symbol 20 GraphicUsed by:33 106 190
Symbol 21 FontUsed by:22 39 41 42 901 902 908
Symbol 22 TextUses:21Used by:33
Symbol 23 Button {gui.GMButtonWalk}Uses:12 13 14 15 16 17 18Used by:33 906
Symbol 24 FontUsed by:25 28 29 38 40 113 209 529 530 759 791 793 850 851 852 859 876 877 879 882 883 884 885 886 899 907
Symbol 25 TextUses:24Used by:33 906
Symbol 26 Button {gui.GMButtonRestart}Uses:12 13 14 15 16 17 18Used by:33 117
Symbol 27 GraphicUsed by:33 117
Symbol 28 TextUses:24Used by:33 117
Symbol 29 TextUses:24Used by:33
Symbol 30 BitmapUsed by:31
Symbol 31 GraphicUses:30Used by:32
Symbol 32 Button {gui.Funflow2_Button}Uses:31Used by:33 108
Symbol 33 MovieClip {gui.FailLogo}Uses:20 22 23 25 26 27 28 19 29 32
Symbol 34 GraphicUsed by:36
Symbol 35 MovieClip {LevelGoodClip}Uses:10Used by:36
Symbol 36 MovieClipUses:34 35Used by:43
Symbol 37 GraphicUsed by:43
Symbol 38 TextUses:24Used by:43
Symbol 39 EditableTextUses:21Used by:43
Symbol 40 TextUses:24Used by:43
Symbol 41 EditableTextUses:21Used by:43
Symbol 42 EditableTextUses:21Used by:43
Symbol 43 MovieClip {gui.LevelNumber}Uses:36 37 38 39 40 41 42
Symbol 44 GraphicUsed by:45
Symbol 45 MovieClip {RedLineClip}Uses:44
Symbol 46 GraphicUsed by:47
Symbol 47 MovieClip {GreenBarClip}Uses:46
Symbol 48 GraphicUsed by:49 50
Symbol 49 MovieClip {RemoveEffect}Uses:48
Symbol 50 MovieClip {BumEffect}Uses:48
Symbol 51 GraphicUsed by:53
Symbol 52 GraphicUsed by:53
Symbol 53 MovieClipUses:51 52Used by:54
Symbol 54 MovieClip {SelectEffect}Uses:53
Symbol 55 GraphicUsed by:56
Symbol 56 MovieClipUses:55Used by:59
Symbol 57 FontUsed by:58
Symbol 58 EditableTextUses:57Used by:59
Symbol 59 MovieClip {mcBannedSign}Uses:56 58
Symbol 60 GraphicUsed by:61
Symbol 61 MovieClipUses:60Used by:62
Symbol 62 MovieClip {mcLogoHolder}Uses:61
Symbol 63 GraphicUsed by:64
Symbol 64 MovieClip {mcWaterRing}Uses:63
Symbol 65 GraphicUsed by:66
Symbol 66 MovieClip {mcCrownMask}Uses:65
Symbol 67 GraphicUsed by:68
Symbol 68 MovieClip {mcLogoMask}Uses:67
Symbol 69 GraphicUsed by:70
Symbol 70 MovieClipUses:69Used by:75 80 85
Symbol 71 BitmapUsed by:72
Symbol 72 GraphicUses:71Used by:75
Symbol 73 BitmapUsed by:74
Symbol 74 GraphicUses:73Used by:75
Symbol 75 MovieClip {ferryBlue}Uses:70 72 74
Symbol 76 BitmapUsed by:77
Symbol 77 GraphicUses:76Used by:80
Symbol 78 BitmapUsed by:79
Symbol 79 GraphicUses:78Used by:80
Symbol 80 MovieClip {ferryGreen}Uses:70 77 79
Symbol 81 BitmapUsed by:82
Symbol 82 GraphicUses:81Used by:85
Symbol 83 BitmapUsed by:84
Symbol 84 GraphicUses:83Used by:85
Symbol 85 MovieClip {ferryRed}Uses:70 82 84
Symbol 86 GraphicUsed by:87
Symbol 87 MovieClip {mcFerryLine}Uses:86
Symbol 88 BitmapUsed by:89
Symbol 89 GraphicUses:88Used by:90
Symbol 90 MovieClip {mcOtherGames}Uses:89
Symbol 91 BitmapUsed by:92
Symbol 92 GraphicUses:91Used by:93
Symbol 93 MovieClip {mcPlay}Uses:92
Symbol 94 MovieClip {com.midasplayer.extras.WaterLine}
Symbol 95 MovieClip {com.midasplayer.extras.Water}Used by:96 97 98
Symbol 96 MovieClip {WaterHolderB}Uses:95
Symbol 97 MovieClip {WaterHolderG}Uses:95
Symbol 98 MovieClip {WaterHolderR}Uses:95
Symbol 99 GraphicUsed by:100
Symbol 100 MovieClipUses:99Used by:108
Symbol 101 GraphicUsed by:108
Symbol 102 FontUsed by:103 795 796 797 798 799 800 804 810 812 817 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 853 854 855 856 857 860 861 862 863 864 866 872 890 891
Symbol 103 TextUses:102Used by:108
Symbol 104 GraphicUsed by:106
Symbol 105 GraphicUsed by:106
Symbol 106 MovieClipUses:104 20 105Used by:108
Symbol 107 GraphicUsed by:108
Symbol 108 MovieClip {gui.CheckClip}Uses:100 101 103 106 107 32Used by:Timeline
Symbol 109 GraphicUsed by:112
Symbol 110 GraphicUsed by:112 528 792
Symbol 111 GraphicUsed by:112 528 792
Symbol 112 Button {gui.GMButtonMenu}Uses:109 13 110 15 111 17 18Used by:117
Symbol 113 TextUses:24Used by:117
Symbol 114 BitmapUsed by:115
Symbol 115 GraphicUses:114Used by:116
Symbol 116 Button {gui.Funflow1_Button}Uses:115 17 18Used by:117 888  Timeline
Symbol 117 MovieClip {gui.GameMenu}Uses:26 112 113 27 28 116Used by:Timeline
Symbol 118 BitmapUsed by:119
Symbol 119 GraphicUses:118Used by:121
Symbol 120 GraphicUsed by:121
Symbol 121 Button {gui.LikeButton}Uses:119 120 17 18Used by:900
Symbol 122 GraphicUsed by:126
Symbol 123 GraphicUsed by:126 849
Symbol 124 GraphicUsed by:126
Symbol 125 GraphicUsed by:126 849
Symbol 126 Button {gui.StageButton}Uses:122 123 124 125 17 18Used by:874
Symbol 127 GraphicUsed by:128
Symbol 128 MovieClipUses:127Used by:178 268 316 358 376 408 417 419 421 429
Symbol 129 GraphicUsed by:130
Symbol 130 MovieClipUses:129Used by:178 268 316 358 376 408 417 419 421 429
Symbol 131 GraphicUsed by:132 356
Symbol 132 MovieClipUses:131Used by:161 266 314 356 406
Symbol 133 GraphicUsed by:144
Symbol 134 GraphicUsed by:144
Symbol 135 GraphicUsed by:142
Symbol 136 ShapeTweeningUsed by:142
Symbol 137 ShapeTweeningUsed by:142
Symbol 138 GraphicUsed by:142
Symbol 139 ShapeTweeningUsed by:142
Symbol 140 ShapeTweeningUsed by:142
Symbol 141 GraphicUsed by:142
Symbol 142 MovieClipUses:135 136 137 138 139 140 141Used by:144 760
Symbol 143 GraphicUsed by:144
Symbol 144 MovieClip {Vehicles_fla.med_kuzov_5}Uses:133 134 142 143Used by:152 156 158 160
Symbol 145 GraphicUsed by:151
Symbol 146 GraphicUsed by:151
Symbol 147 GraphicUsed by:151
Symbol 148 GraphicUsed by:151
Symbol 149 GraphicUsed by:151
Symbol 150 GraphicUsed by:151
Symbol 151 MovieClipUses:145 146 147 148 149 150Used by:152
Symbol 152 MovieClipUses:144 151Used by:161  Timeline
Symbol 153 GraphicUsed by:156
Symbol 154 GraphicUsed by:156
Symbol 155 GraphicUsed by:156
Symbol 156 MovieClip {Vehicles_fla.Car1_Over_66}Uses:144 153 154 155Used by:161
Symbol 157 GraphicUsed by:158
Symbol 158 MovieClip {Vehicles_fla.Car1_Bum_67}Uses:144 157Used by:161
Symbol 159 GraphicUsed by:160
Symbol 160 MovieClip {Vehicles_fla.Car1_Fall_68}Uses:144 159Used by:161
Symbol 161 MovieClip {Vehicles_fla.Car1_Corpus_65}Uses:132 152 156 158 160Used by:175 420
Symbol 162 ShapeTweeningUsed by:171
Symbol 163 GraphicUsed by:171
Symbol 164 ShapeTweeningUsed by:171
Symbol 165 GraphicUsed by:171
Symbol 166 ShapeTweeningUsed by:171
Symbol 167 ShapeTweeningUsed by:171
Symbol 168 ShapeTweeningUsed by:171
Symbol 169 GraphicUsed by:171
Symbol 170 GraphicUsed by:171
Symbol 171 MovieClipUses:162 163 164 165 166 167 168 169 170Used by:172
Symbol 172 MovieClipUses:171Used by:175 267 315 357 375 407 416 418 420 428
Symbol 173 GraphicUsed by:174
Symbol 174 MovieClipUses:173Used by:175 267 357 367 373 375 414 420 428 430 443 448 451 453 455 457 464 469 471 474 476 477 481 483 487 489 491 494 496 499 502 504 506 509 514 515 516 518 520
Symbol 175 MovieClipUses:161 172 174Used by:178
Symbol 176 GraphicUsed by:177
Symbol 177 MovieClipUses:176Used by:178 421
Symbol 178 MovieClip {Objects.Car1}Uses:128 130 175 177Used by:367 414 455 464 471 476 477 481 487 489 491 499 504 509 514 520
Symbol 179 GraphicUsed by:182
Symbol 180 GraphicUsed by:181
Symbol 181 MovieClipUses:180Used by:182
Symbol 182 MovieClip {Objects.Circle}Uses:179 181Used by:367 451 457 469 491 494 509 520
Symbol 183 GraphicUsed by:184  Timeline
Symbol 184 MovieClipUses:183Used by:Timeline
Symbol 185 GraphicUsed by:435 464 491 494 504 516 520  Timeline
Symbol 186 GraphicUsed by:187
Symbol 187 MovieClipUses:186Used by:Timeline
Symbol 188 GraphicUsed by:190
Symbol 189 GraphicUsed by:190
Symbol 190 MovieClipUses:188 20 189Used by:210  Timeline
Symbol 191 GraphicUsed by:207
Symbol 192 GraphicUsed by:193 535 622
Symbol 193 MovieClipUses:192Used by:207
Symbol 194 GraphicUsed by:207
Symbol 195 GraphicUsed by:196 534 614 616 760
Symbol 196 MovieClipUses:195Used by:207
Symbol 197 GraphicUsed by:207
Symbol 198 GraphicUsed by:207 614 760
Symbol 199 GraphicUsed by:207 614 760
Symbol 200 GraphicUsed by:206 537 614 619 760
Symbol 201 GraphicUsed by:206 537 614 619 760
Symbol 202 GraphicUsed by:206 537 614 619 760
Symbol 203 GraphicUsed by:206 537 614 619 760
Symbol 204 GraphicUsed by:206 537 619
Symbol 205 GraphicUsed by:206 537 619
Symbol 206 MovieClipUses:200 201 202 203 204 205Used by:207
Symbol 207 MovieClipUses:191 193 194 196 197 198 199 206Used by:210
Symbol 208 GraphicUsed by:210
Symbol 209 EditableTextUses:24Used by:210
Symbol 210 MovieClip {gui.Preloader}Uses:207 190 208 209Used by:Timeline
Symbol 211 GraphicUsed by:Timeline
Symbol 212 GraphicUsed by:213
Symbol 213 MovieClipUses:212Used by:217
Symbol 214 GraphicUsed by:217
Symbol 215 GraphicUsed by:216
Symbol 216 MovieClipUses:215Used by:217
Symbol 217 MovieClip {Objects.ParkZone}Uses:213 214 216Used by:367 373 414 430 443 448 451 453 455 457 464 469 471 474 476 477 481 483 487 489 491 494 496 499 502 504 506 509 514 515 516 518 520
Symbol 218 GraphicUsed by:219
Symbol 219 MovieClip {Objects.ReverseLeft}Uses:218Used by:367 435 455 471 476 481 487 502 504 518 520
Symbol 220 GraphicUsed by:221 733
Symbol 221 MovieClipUses:220Used by:268 376
Symbol 222 GraphicUsed by:232
Symbol 223 GraphicUsed by:232
Symbol 224 GraphicUsed by:230
Symbol 225 ShapeTweeningUsed by:230
Symbol 226 ShapeTweeningUsed by:230
Symbol 227 ShapeTweeningUsed by:230
Symbol 228 GraphicUsed by:230
Symbol 229 GraphicUsed by:230
Symbol 230 MovieClipUses:224 225 226 227 228 229Used by:232 259
Symbol 231 GraphicUsed by:232
Symbol 232 MovieClip {Vehicles_fla.fire_truck_kuzov_29}Uses:222 223 230 231Used by:247 256 265
Symbol 233 GraphicUsed by:247
Symbol 234 GraphicUsed by:247
Symbol 235 GraphicUsed by:247
Symbol 236 GraphicUsed by:247
Symbol 237 GraphicUsed by:247
Symbol 238 GraphicUsed by:247
Symbol 239 GraphicUsed by:247
Symbol 240 GraphicUsed by:247
Symbol 241 GraphicUsed by:247
Symbol 242 GraphicUsed by:247
Symbol 243 GraphicUsed by:247
Symbol 244 GraphicUsed by:247
Symbol 245 GraphicUsed by:247
Symbol 246 GraphicUsed by:247
Symbol 247 MovieClipUses:232 233 234 235 236 237 238 239 240 241 242 243 244 245 246Used by:266
Symbol 248 GraphicUsed by:256
Symbol 249 GraphicUsed by:256
Symbol 250 GraphicUsed by:256
Symbol 251 GraphicUsed by:256
Symbol 252 GraphicUsed by:256
Symbol 253 GraphicUsed by:256
Symbol 254 GraphicUsed by:256
Symbol 255 GraphicUsed by:256
Symbol 256 MovieClip {Vehicles_fla.Car3_Over_31}Uses:232 248 249 250 251 252 253 254 255Used by:266
Symbol 257 GraphicUsed by:259
Symbol 258 GraphicUsed by:259
Symbol 259 MovieClip {Vehicles_fla.Tween10_33}Uses:257 258 230Used by:263
Symbol 260 GraphicUsed by:263
Symbol 261 GraphicUsed by:262
Symbol 262 MovieClipUses:261Used by:263
Symbol 263 MovieClip {Vehicles_fla.Car3_Bum_32}Uses:259 260 262Used by:266
Symbol 264 GraphicUsed by:265
Symbol 265 MovieClip {Vehicles_fla.Car3_Fall_35}Uses:232 264Used by:266
Symbol 266 MovieClipUses:132 247 256 263 265Used by:267 375
Symbol 267 MovieClipUses:266 172 174Used by:268
Symbol 268 MovieClip {Objects.Car3}Uses:128 130 221 267Used by:367 443 457 469 474 481 494 496 518
Symbol 269 GraphicUsed by:270
Symbol 270 MovieClip {Objects.BoxStatic}Uses:269Used by:367 373 414 426 430 435 443 448 451 453 455 457 464 469 471 474 476 477 481 483 487 489 491 494 496 499 502 504 506 509 514 515 516 518 520
Symbol 271 GraphicUsed by:272
Symbol 272 MovieClip {Objects.BoxRemovable}Uses:271Used by:367 414 430 435 443 448 451 457 471 474 481 487 502 504 518 520
Symbol 273 GraphicUsed by:274
Symbol 274 MovieClipUses:273Used by:316 417
Symbol 275 GraphicUsed by:280
Symbol 276 GraphicUsed by:280
Symbol 277 GraphicUsed by:278
Symbol 278 MovieClipUses:277Used by:280 385 717 760
Symbol 279 GraphicUsed by:280
Symbol 280 MovieClip {Vehicles_fla.hummer_kuzov_45}Uses:275 276 278 279Used by:304 310 313
Symbol 281 GraphicUsed by:304
Symbol 282 GraphicUsed by:304
Symbol 283 GraphicUsed by:304
Symbol 284 GraphicUsed by:304
Symbol 285 GraphicUsed by:304
Symbol 286 GraphicUsed by:304
Symbol 287 GraphicUsed by:304
Symbol 288 GraphicUsed by:304
Symbol 289 GraphicUsed by:304
Symbol 290 GraphicUsed by:304
Symbol 291 GraphicUsed by:304
Symbol 292 GraphicUsed by:304
Symbol 293 GraphicUsed by:304
Symbol 294 GraphicUsed by:304
Symbol 295 GraphicUsed by:304
Symbol 296 GraphicUsed by:304
Symbol 297 GraphicUsed by:304
Symbol 298 GraphicUsed by:304
Symbol 299 GraphicUsed by:304
Symbol 300 GraphicUsed by:304
Symbol 301 GraphicUsed by:304
Symbol 302 GraphicUsed by:304
Symbol 303 GraphicUsed by:304
Symbol 304 MovieClipUses:280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303Used by:314
Symbol 305 GraphicUsed by:306
Symbol 306 MovieClip {Vehicles_fla.Car5_Over_47}Uses:305Used by:314
Symbol 307 GraphicUsed by:310
Symbol 308 GraphicUsed by:310
Symbol 309 GraphicUsed by:310
Symbol 310 MovieClip {Vehicles_fla.Car5_Bum_48}Uses:280 307 308 309Used by:314
Symbol 311 GraphicUsed by:313
Symbol 312 GraphicUsed by:313
Symbol 313 MovieClip {Vehicles_fla.Car5_Fall_49}Uses:280 311 312Used by:314
Symbol 314 MovieClipUses:132 304 306 310 313Used by:315 416
Symbol 315 MovieClipUses:314 172Used by:316
Symbol 316 MovieClip {Objects.Car5_Back}Uses:128 130 274 315Used by:367 430 443 451 453 457 469 474 477 487 494 496 499 502 504 516 518 520
Symbol 317 GraphicUsed by:318
Symbol 318 MovieClipUses:317Used by:358 429
Symbol 319 GraphicUsed by:321
Symbol 320 GraphicUsed by:321
Symbol 321 MovieClip {Objects.C2_Reskin}Uses:319 320Used by:345 351 353 355
Symbol 322 GraphicUsed by:345 351 353 355
Symbol 323 GraphicUsed by:345 351 353 355
Symbol 324 GraphicUsed by:345 351 353 355
Symbol 325 GraphicUsed by:345
Symbol 326 GraphicUsed by:327
Symbol 327 MovieClipUses:326Used by:345
Symbol 328 GraphicUsed by:345
Symbol 329 GraphicUsed by:345
Symbol 330 GraphicUsed by:345
Symbol 331 GraphicUsed by:345
Symbol 332 GraphicUsed by:345
Symbol 333 GraphicUsed by:345
Symbol 334 GraphicUsed by:345
Symbol 335 GraphicUsed by:345
Symbol 336 GraphicUsed by:345
Symbol 337 GraphicUsed by:345
Symbol 338 GraphicUsed by:345
Symbol 339 GraphicUsed by:345
Symbol 340 GraphicUsed by:345
Symbol 341 GraphicUsed by:345
Symbol 342 GraphicUsed by:345
Symbol 343 GraphicUsed by:345
Symbol 344 GraphicUsed by:345
Symbol 345 MovieClipUses:321 322 323 324 325 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344Used by:356
Symbol 346 GraphicUsed by:351
Symbol 347 GraphicUsed by:351
Symbol 348 GraphicUsed by:351
Symbol 349 GraphicUsed by:351
Symbol 350 GraphicUsed by:351
Symbol 351 MovieClip {Vehicles_fla.Car2_Over_57}Uses:321 322 323 324 346 347 348 349 350Used by:356
Symbol 352 GraphicUsed by:353
Symbol 353 MovieClip {Vehicles_fla.Car2_Bum_58}Uses:321 322 323 324 352Used by:356
Symbol 354 GraphicUsed by:355
Symbol 355 MovieClip {Vehicles_fla.Car2_Fall_59}Uses:321 322 323 324 354Used by:356
Symbol 356 MovieClipUses:132 345 351 353 355 131Used by:357 428
Symbol 357 MovieClipUses:356 172 174Used by:358
Symbol 358 MovieClip {Objects.Car2}Uses:128 130 318 357Used by:367 373 451 457 464 476 481 487 489 491 494 496 499 502 504 506 516
Symbol 359 GraphicUsed by:360
Symbol 360 MovieClipUses:359Used by:361
Symbol 361 MovieClip {Objects.BoxStaticR}Uses:360Used by:367 435 455 464 471 476 481 487 494 499 502 504 506 509 515 516 520
Symbol 362 GraphicUsed by:363
Symbol 363 MovieClip {Objects.StaticTrigger}Uses:362Used by:367 435 455 464 471 476 481 487 494 499 502 504 506 509 515 516 520
Symbol 364 GraphicUsed by:365
Symbol 365 MovieClip {Objects.BoxR}Uses:364Used by:367 430 457 477 481 483 487 491 494 499 504 515 516 520
Symbol 366 GraphicUsed by:367
Symbol 367 MovieClip {Stages.stage_09}Uses:217 174 219 182 268 270 272 316 358 361 363 178 365 366Used by:Timeline
Symbol 368 FontUsed by:369 370 415 422 423 424 425 427 431 432 433 434 447 452 456 472 495 756
Symbol 369 TextUses:368Used by:373
Symbol 370 TextUses:368Used by:373
Symbol 371 GraphicUsed by:372 411
Symbol 372 MovieClipUses:371Used by:373 430 435
Symbol 373 MovieClip {Stages.stage_01}Uses:217 174 270 358 369 370 372Used by:Timeline
Symbol 374 Sound {Block_Remove}Used by:Timeline
Symbol 375 MovieClipUses:266 172 174Used by:376
Symbol 376 MovieClip {Objects.Car3_Back}Uses:128 130 221 375Used by:414 435 453 474 483 518 520
Symbol 377 GraphicUsed by:378
Symbol 378 MovieClip {Objects.Box}Uses:377Used by:414 430 451 469 471 489 494 502 504 509 516
Symbol 379 GraphicUsed by:380
Symbol 380 MovieClip {Objects.ReverseRight}Uses:379Used by:414 430 435 455 471 481 487 502
Symbol 381 GraphicUsed by:382
Symbol 382 MovieClipUses:381Used by:408 419
Symbol 383 GraphicUsed by:385
Symbol 384 GraphicUsed by:385
Symbol 385 MovieClip {Vehicles_fla.street_racer_kuzov_83}Uses:383 384 278Used by:397 401 403 405
Symbol 386 GraphicUsed by:396
Symbol 387 GraphicUsed by:396
Symbol 388 GraphicUsed by:396
Symbol 389 GraphicUsed by:396
Symbol 390 GraphicUsed by:396
Symbol 391 GraphicUsed by:396
Symbol 392 GraphicUsed by:396
Symbol 393 GraphicUsed by:396
Symbol 394 GraphicUsed by:396
Symbol 395 GraphicUsed by:396
Symbol 396 MovieClipUses:386 387 388 389 390 391 392 393 394 395Used by:397
Symbol 397 MovieClipUses:385 396Used by:406
Symbol 398 GraphicUsed by:401
Symbol 399 GraphicUsed by:401
Symbol 400 GraphicUsed by:401
Symbol 401 MovieClip {Vehicles_fla.Car4_Over_85}Uses:385 398 399 400Used by:406
Symbol 402 GraphicUsed by:403
Symbol 403 MovieClip {Vehicles_fla.Car4_Bum_86}Uses:385 402Used by:406
Symbol 404 GraphicUsed by:405
Symbol 405 MovieClip {Vehicles_fla.Car4_Fall_87}Uses:385 404Used by:406
Symbol 406 MovieClipUses:132 397 401 403 405Used by:407 418
Symbol 407 MovieClipUses:406 172Used by:408
Symbol 408 MovieClip {Objects.Car4_Back}Uses:128 130 382 407Used by:414 443 453 487 489 514
Symbol 409 GraphicUsed by:414
Symbol 410 TextUses:6Used by:414
Symbol 411 MovieClipUses:371Used by:414
Symbol 412 GraphicUsed by:413
Symbol 413 MovieClipUses:412Used by:414
Symbol 414 MovieClip {Stages.stage_14}Uses:272 270 376 378 380 217 174 178 408 409 410 411 413Used by:Timeline
Symbol 415 TextUses:368Used by:426
Symbol 416 MovieClipUses:314 172Used by:417
Symbol 417 MovieClip {Objects.Car5}Uses:128 130 274 416Used by:426 435 448 455 464 471 476 481 487 491 515
Symbol 418 MovieClipUses:406 172Used by:419
Symbol 419 MovieClip {Objects.Car4}Uses:128 130 382 418Used by:426 453 483 506 509
Symbol 420 MovieClipUses:161 172 174Used by:421
Symbol 421 MovieClip {Objects.Car1_Back}Uses:128 130 420 177Used by:426 443 457 464 469 471 474 477 520
Symbol 422 TextUses:368Used by:426
Symbol 423 TextUses:368Used by:426
Symbol 424 TextUses:368Used by:426
Symbol 425 TextUses:368Used by:426
Symbol 426 MovieClip {Stages.stage_02}Uses:415 270 417 419 421 422 423 424 425Used by:Timeline
Symbol 427 TextUses:368Used by:430
Symbol 428 MovieClipUses:356 172 174Used by:429
Symbol 429 MovieClip {Objects.Car2_Back}Uses:128 130 318 428Used by:430 443 448 483 487 506 509 515
Symbol 430 MovieClip {Stages.stage_04}Uses:217 174 380 427 372 272 270 429 378 365 316Used by:Timeline
Symbol 431 TextUses:368Used by:435
Symbol 432 TextUses:368Used by:435
Symbol 433 TextUses:368Used by:435
Symbol 434 TextUses:368Used by:435
Symbol 435 MovieClip {Stages.stage_03}Uses:270 376 219 380 361 363 272 372 417 431 432 433 434 185Used by:Timeline
Symbol 436 GraphicUsed by:437
Symbol 437 MovieClip {Objects.BoxStatic2}Uses:436Used by:443 514 515
Symbol 438 GraphicUsed by:441
Symbol 439 GraphicUsed by:440
Symbol 440 MovieClipUses:439Used by:441 445 467
Symbol 441 MovieClip {Objects.Box2R}Uses:438 440Used by:443 451 453 474 518
Symbol 442 GraphicUsed by:443
Symbol 443 MovieClip {Stages.stage_16}Uses:217 174 272 408 270 437 429 421 268 316 441 442Used by:Timeline
Symbol 444 GraphicUsed by:445
Symbol 445 MovieClip {Objects.Box2}Uses:444 440Used by:448 502
Symbol 446 GraphicUsed by:448
Symbol 447 TextUses:368Used by:448
Symbol 448 MovieClip {Stages.stage_06}Uses:217 174 429 270 417 445 272 446 447Used by:Timeline
Symbol 449 Sound {Car_Reverse}Used by:Timeline
Symbol 450 GraphicUsed by:451
Symbol 451 MovieClip {Stages.stage_17}Uses:217 174 272 270 316 358 182 378 441 450Used by:Timeline
Symbol 452 TextUses:368Used by:453
Symbol 453 MovieClip {Stages.stage_07}Uses:452 217 174 316 270 441 408 419 376Used by:Timeline
Symbol 454 Sound {Crush_1}Used by:Timeline
Symbol 455 MovieClip {Stages.stage_18}Uses:217 174 219 380 178 361 270 417 363Used by:Timeline
Symbol 456 TextUses:368Used by:457
Symbol 457 MovieClip {Stages.stage_08}Uses:456 217 174 358 182 270 365 421 268 316 272Used by:Timeline
Symbol 458 Sound {Crush_2}Used by:Timeline
Symbol 459 GraphicUsed by:463
Symbol 460 GraphicUsed by:461
Symbol 461 MovieClipUses:460Used by:463
Symbol 462 GraphicUsed by:463
Symbol 463 MovieClip {Objects.Box3}Uses:459 461 462Used by:464
Symbol 464 MovieClip {Stages.stage_19}Uses:217 174 270 361 363 417 421 178 463 358 185Used by:Timeline
Symbol 465 GraphicUsed by:469
Symbol 466 GraphicUsed by:467
Symbol 467 MovieClip {Objects.Box3R}Uses:466 440Used by:469
Symbol 468 GraphicUsed by:469
Symbol 469 MovieClip {Stages.stage_13}Uses:217 174 465 182 378 270 421 268 316 467 468Used by:Timeline
Symbol 470 Sound {Game_Loose}Used by:Timeline
Symbol 471 MovieClip {Stages.stage_20}Uses:217 174 378 417 363 219 178 380 421 272 270 361Used by:Timeline
Symbol 472 TextUses:368Used by:474
Symbol 473 GraphicUsed by:474
Symbol 474 MovieClip {Stages.stage_10}Uses:472 217 174 270 441 421 268 316 272 376 473Used by:Timeline
Symbol 475 Sound {Game_Music}Used by:Timeline
Symbol 476 MovieClip {Stages.stage_21}Uses:217 174 417 363 219 178 358 270 361Used by:Timeline
Symbol 477 MovieClip {Stages.stage_11}Uses:217 174 270 365 316 421 178Used by:Timeline
Symbol 478 Sound {Game_Win}Used by:Timeline
Symbol 479 GraphicUsed by:481
Symbol 480 GraphicUsed by:481
Symbol 481 MovieClip {Stages.stage_22}Uses:217 174 479 363 178 358 380 270 417 219 268 272 365 361 480Used by:Timeline
Symbol 482 GraphicUsed by:483
Symbol 483 MovieClip {Stages.stage_12}Uses:217 174 270 419 376 429 365 482Used by:Timeline
Symbol 484 Sound {Med_Break}Used by:Timeline
Symbol 485 Sound {Med_Start}Used by:Timeline
Symbol 486 GraphicUsed by:487
Symbol 487 MovieClip {Stages.stage_28}Uses:217 174 417 270 358 429 178 272 365 380 361 363 219 316 408 486Used by:Timeline
Symbol 488 GraphicUsed by:489
Symbol 489 MovieClip {Stages.stage_15}Uses:217 174 270 178 378 408 358 488Used by:Timeline
Symbol 490 Sound {Menu_Music}Used by:Timeline
Symbol 491 MovieClip {Stages.stage_26}Uses:417 270 182 178 185 358 365 217 174Used by:Timeline
Symbol 492 Sound {Parking_In}Used by:Timeline
Symbol 493 GraphicUsed by:494
Symbol 494 MovieClip {Stages.stage_24}Uses:217 174 185 358 270 182 378 365 361 363 316 268 493Used by:Timeline
Symbol 495 TextUses:368Used by:496
Symbol 496 MovieClip {Stages.stage_05}Uses:217 174 358 316 270 268 495Used by:Timeline
Symbol 497 Sound {Parking_Out}Used by:Timeline
Symbol 498 GraphicUsed by:499
Symbol 499 MovieClip {Stages.stage_29}Uses:217 174 358 270 365 361 363 316 178 498Used by:Timeline
Symbol 500 GraphicUsed by:502
Symbol 501 GraphicUsed by:502
Symbol 502 MovieClip {Stages.stage_27}Uses:217 358 270 380 219 445 272 378 316 363 174 361 500 501Used by:Timeline
Symbol 503 GraphicUsed by:504
Symbol 504 MovieClip {Stages.stage_25}Uses:217 174 185 358 270 178 378 272 365 219 316 361 363 503Used by:Timeline
Symbol 505 GraphicUsed by:506
Symbol 506 MovieClip {Stages.stage_23}Uses:217 174 361 270 363 358 419 429 505Used by:Timeline
Symbol 507 Sound {Police_Start}Used by:Timeline
Symbol 508 GraphicUsed by:509
Symbol 509 MovieClip {Stages.stage_30}Uses:217 174 270 363 361 419 429 178 182 378 508Used by:Timeline
Symbol 510 Sound {Game_Restart}Used by:Timeline
Symbol 511 GraphicUsed by:514
Symbol 512 GraphicUsed by:514
Symbol 513 GraphicUsed by:514
Symbol 514 MovieClip {Stages.stage_31}Uses:511 217 174 512 178 270 408 437 513Used by:Timeline
Symbol 515 MovieClip {Stages.stage_32}Uses:217 174 417 270 429 365 361 363 437Used by:Timeline
Symbol 516 MovieClip {Stages.stage_33}Uses:185 217 174 358 361 363 316 270 365 378Used by:Timeline
Symbol 517 GraphicUsed by:518
Symbol 518 MovieClip {Stages.stage_34}Uses:217 174 270 316 272 441 268 376 219 517Used by:Timeline
Symbol 519 GraphicUsed by:520
Symbol 520 MovieClip {Stages.stage_35}Uses:185 217 174 270 219 316 361 363 376 182 421 272 365 178 519Used by:Timeline
Symbol 521 GraphicUsed by:614
Symbol 522 GraphicUsed by:528 792
Symbol 523 GraphicUsed by:524 528 792
Symbol 524 MovieClipUses:523Used by:528 792
Symbol 525 GraphicUsed by:528 792
Symbol 526 GraphicUsed by:528 792
Symbol 527 GraphicUsed by:528 792
Symbol 528 Button {gui.SkipButton}Uses:522 524 525 526 110 527 111 523 17 18Used by:614 760
Symbol 529 TextUses:24Used by:614 760
Symbol 530 TextUses:24Used by:531
Symbol 531 MovieClipUses:530Used by:614
Symbol 532 SoundUsed by:614 760
Symbol 533 GraphicUsed by:614
Symbol 534 MovieClipUses:195Used by:614
Symbol 535 MovieClipUses:192Used by:552 584 614
Symbol 536 GraphicUsed by:614
Symbol 537 MovieClipUses:200 201 202 203 204 205Used by:614
Symbol 538 GraphicUsed by:614
Symbol 539 ShapeTweeningUsed by:614
Symbol 540 GraphicUsed by:614 760
Symbol 541 SoundUsed by:614 760
Symbol 542 GraphicUsed by:552
Symbol 543 GraphicUsed by:552
Symbol 544 GraphicUsed by:552
Symbol 545 GraphicUsed by:552 717
Symbol 546 GraphicUsed by:552
Symbol 547 GraphicUsed by:552
Symbol 548 GraphicUsed by:552
Symbol 549 GraphicUsed by:552
Symbol 550 GraphicUsed by:552
Symbol 551 GraphicUsed by:552
Symbol 552 MovieClipUses:535 542 543 544 545 546 547 548 549 550 551Used by:614
Symbol 553 SoundUsed by:614
Symbol 554 ShapeTweeningUsed by:614
Symbol 555 ShapeTweeningUsed by:614
Symbol 556 GraphicUsed by:614 760
Symbol 557 ShapeTweeningUsed by:614
Symbol 558 ShapeTweeningUsed by:614
Symbol 559 ShapeTweeningUsed by:614
Symbol 560 GraphicUsed by:614
Symbol 561 GraphicUsed by:614
Symbol 562 GraphicUsed by:614
Symbol 563 GraphicUsed by:614
Symbol 564 GraphicUsed by:614
Symbol 565 GraphicUsed by:614
Symbol 566 GraphicUsed by:614
Symbol 567 GraphicUsed by:614
Symbol 568 GraphicUsed by:614
Symbol 569 GraphicUsed by:614
Symbol 570 GraphicUsed by:614
Symbol 571 GraphicUsed by:614
Symbol 572 GraphicUsed by:614
Symbol 573 SoundUsed by:614
Symbol 574 GraphicUsed by:614
Symbol 575 GraphicUsed by:614
Symbol 576 ShapeTweeningUsed by:614
Symbol 577 ShapeTweeningUsed by:614
Symbol 578 ShapeTweeningUsed by:614
Symbol 579 GraphicUsed by:584
Symbol 580 GraphicUsed by:582
Symbol 581 GraphicUsed by:582 733
Symbol 582 MovieClipUses:580 581Used by:584
Symbol 583 GraphicUsed by:584 734
Symbol 584 MovieClipUses:535 579 582 583Used by:614
Symbol 585 SoundUsed by:614 760
Symbol 586 GraphicUsed by:614 760
Symbol 587 GraphicUsed by:588 736
Symbol 588 MovieClipUses:587Used by:614
Symbol 589 GraphicUsed by:614 760
Symbol 590 GraphicUsed by:614 760
Symbol 591 GraphicUsed by:614 760
Symbol 592 GraphicUsed by:593
Symbol 593 MovieClipUses:592Used by:614
Symbol 594 GraphicUsed by:595 739
Symbol 595 MovieClipUses:594Used by:614
Symbol 596 GraphicUsed by:614 760
Symbol 597 GraphicUsed by:614
Symbol 598 GraphicUsed by:614
Symbol 599 GraphicUsed by:614
Symbol 600 GraphicUsed by:614
Symbol 601 GraphicUsed by:614
Symbol 602 GraphicUsed by:614
Symbol 603 GraphicUsed by:614 760
Symbol 604 GraphicUsed by:614 760
Symbol 605 GraphicUsed by:614
Symbol 606 GraphicUsed by:614
Symbol 607 GraphicUsed by:614
Symbol 608 GraphicUsed by:614 760
Symbol 609 GraphicUsed by:614 760
Symbol 610 SoundUsed by:614 760
Symbol 611 ShapeTweeningUsed by:614
Symbol 612 ShapeTweeningUsed by:614
Symbol 613 GraphicUsed by:614 760
Symbol 614 MovieClip {Vehicles_fla.IntroClip_137}Uses:521 528 529 531 532 533 534 535 536 198 199 537 538 539 540 541 552 553 195 200 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 584 201 585 202 203 586 588 589 590 591 593 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613Used by:Timeline
Symbol 615 GraphicUsed by:760
Symbol 616 MovieClipUses:195Used by:760
Symbol 617 GraphicUsed by:760
Symbol 618 GraphicUsed by:760
Symbol 619 MovieClipUses:200 201 202 203 204 205Used by:760
Symbol 620 GraphicUsed by:760
Symbol 621 ShapeTweeningUsed by:760
Symbol 622 MovieClipUses:192Used by:717 734 760
Symbol 623 GraphicUsed by:717
Symbol 624 GraphicUsed by:717
Symbol 625 GraphicUsed by:717
Symbol 626 GraphicUsed by:717
Symbol 627 GraphicUsed by:717
Symbol 628 GraphicUsed by:717
Symbol 629 GraphicUsed by:717
Symbol 630 GraphicUsed by:717
Symbol 631 GraphicUsed by:717
Symbol 632 GraphicUsed by:717
Symbol 633 GraphicUsed by:717
Symbol 634 GraphicUsed by:717
Symbol 635 GraphicUsed by:717
Symbol 636 GraphicUsed by:717
Symbol 637 GraphicUsed by:717
Symbol 638 GraphicUsed by:717
Symbol 639 GraphicUsed by:717
Symbol 640 GraphicUsed by:717
Symbol 641 GraphicUsed by:717
Symbol 642 GraphicUsed by:717
Symbol 643 GraphicUsed by:717
Symbol 644 GraphicUsed by:717
Symbol 645 GraphicUsed by:717
Symbol 646 GraphicUsed by:717
Symbol 647 GraphicUsed by:717
Symbol 648 GraphicUsed by:717
Symbol 649 GraphicUsed by:717
Symbol 650 GraphicUsed by:717
Symbol 651 GraphicUsed by:717
Symbol 652 GraphicUsed by:717
Symbol 653 GraphicUsed by:717
Symbol 654 GraphicUsed by:717
Symbol 655 GraphicUsed by:717
Symbol 656 GraphicUsed by:717
Symbol 657 GraphicUsed by:717
Symbol 658 GraphicUsed by:717
Symbol 659 GraphicUsed by:717
Symbol 660 GraphicUsed by:717
Symbol 661 GraphicUsed by:717
Symbol 662 GraphicUsed by:717
Symbol 663 GraphicUsed by:717
Symbol 664 GraphicUsed by:717
Symbol 665 GraphicUsed by:717
Symbol 666 GraphicUsed by:717
Symbol 667 GraphicUsed by:717
Symbol 668 GraphicUsed by:717
Symbol 669 GraphicUsed by:717
Symbol 670 GraphicUsed by:717
Symbol 671 GraphicUsed by:717
Symbol 672 GraphicUsed by:717
Symbol 673 GraphicUsed by:717
Symbol 674 GraphicUsed by:717
Symbol 675 GraphicUsed by:717
Symbol 676 GraphicUsed by:717
Symbol 677 GraphicUsed by:717
Symbol 678 GraphicUsed by:717
Symbol 679 GraphicUsed by:717
Symbol 680 GraphicUsed by:717
Symbol 681 GraphicUsed by:717
Symbol 682 GraphicUsed by:717
Symbol 683 GraphicUsed by:717
Symbol 684 GraphicUsed by:717
Symbol 685 GraphicUsed by:717
Symbol 686 GraphicUsed by:717
Symbol 687 GraphicUsed by:717
Symbol 688 GraphicUsed by:717
Symbol 689 GraphicUsed by:717
Symbol 690 GraphicUsed by:717
Symbol 691 GraphicUsed by:717
Symbol 692 GraphicUsed by:717
Symbol 693 GraphicUsed by:717
Symbol 694 GraphicUsed by:717
Symbol 695 GraphicUsed by:717
Symbol 696 GraphicUsed by:717
Symbol 697 GraphicUsed by:717 760
Symbol 698 GraphicUsed by:717
Symbol 699 GraphicUsed by:717
Symbol 700 GraphicUsed by:717
Symbol 701 GraphicUsed by:717
Symbol 702 GraphicUsed by:717
Symbol 703 GraphicUsed by:717
Symbol 704 GraphicUsed by:717
Symbol 705 GraphicUsed by:717
Symbol 706 GraphicUsed by:717
Symbol 707 GraphicUsed by:717
Symbol 708 GraphicUsed by:717
Symbol 709 GraphicUsed by:717
Symbol 710 GraphicUsed by:717
Symbol 711 GraphicUsed by:717
Symbol 712 GraphicUsed by:717
Symbol 713 GraphicUsed by:717
Symbol 714 GraphicUsed by:717
Symbol 715 GraphicUsed by:717
Symbol 716 GraphicUsed by:717
Symbol 717 MovieClipUses:622 623 624 625 278 626 627 628 545 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716Used by:760
Symbol 718 SoundUsed by:760
Symbol 719 GraphicUsed by:760
Symbol 720 GraphicUsed by:760
Symbol 721 GraphicUsed by:760
Symbol 722 ShapeTweeningUsed by:760
Symbol 723 GraphicUsed by:760
Symbol 724 ShapeTweeningUsed by:760
Symbol 725 ShapeTweeningUsed by:760
Symbol 726 ShapeTweeningUsed by:760
Symbol 727 ShapeTweeningUsed by:760
Symbol 728 GraphicUsed by:760
Symbol 729 ShapeTweeningUsed by:760
Symbol 730 ShapeTweeningUsed by:760
Symbol 731 SoundUsed by:760
Symbol 732 GraphicUsed by:734
Symbol 733 MovieClipUses:220 581Used by:734
Symbol 734 MovieClipUses:622 732 733 583Used by:760
Symbol 735 ShapeTweeningUsed by:760
Symbol 736 MovieClipUses:587Used by:760
Symbol 737 GraphicUsed by:738
Symbol 738 MovieClipUses:737Used by:760
Symbol 739 MovieClipUses:594Used by:760
Symbol 740 GraphicUsed by:760
Symbol 741 GraphicUsed by:760
Symbol 742 GraphicUsed by:760
Symbol 743 GraphicUsed by:760
Symbol 744 GraphicUsed by:760
Symbol 745 GraphicUsed by:760
Symbol 746 GraphicUsed by:760
Symbol 747 GraphicUsed by:760
Symbol 748 GraphicUsed by:760
Symbol 749 GraphicUsed by:760
Symbol 750 GraphicUsed by:760
Symbol 751 SoundUsed by:760
Symbol 752 ShapeTweeningUsed by:760
Symbol 753 ShapeTweeningUsed by:760
Symbol 754 ShapeTweeningUsed by:760
Symbol 755 GraphicUsed by:760
Symbol 756 TextUses:368Used by:760
Symbol 757 GraphicUsed by:760
Symbol 758 GraphicUsed by:760
Symbol 759 TextUses:24Used by:760
Symbol 760 MovieClip {Vehicles_fla.FinalClip_150}Uses:615 616 617 142 618 198 199 619 620 621 528 529 532 613 541 717 718 195 200 719 720 721 722 723 724 556 725 726 727 728 729 730 731 734 735 201 202 203 586 736 585 589 591 738 739 590 596 697 740 741 742 743 744 745 746 747 748 749 603 750 604 751 608 610 609 752 753 754 755 622 756 757 278 758 759 540Used by:Timeline
Symbol 761 GraphicUsed by:790
Symbol 762 GraphicUsed by:763
Symbol 763 MovieClipUses:762Used by:790
Symbol 764 GraphicUsed by:790
Symbol 765 GraphicUsed by:766
Symbol 766 MovieClipUses:765Used by:767
Symbol 767 MovieClipUses:766Used by:790
Symbol 768 GraphicUsed by:769
Symbol 769 MovieClipUses:768Used by:770
Symbol 770 MovieClipUses:769Used by:790
Symbol 771 GraphicUsed by:772
Symbol 772 MovieClipUses:771Used by:790
Symbol 773 GraphicUsed by:790
Symbol 774 GraphicUsed by:790
Symbol 775 GraphicUsed by:789
Symbol 776 GraphicUsed by:778
Symbol 777 GraphicUsed by:778
Symbol 778 MovieClipUses:776 777Used by:789
Symbol 779 GraphicUsed by:780
Symbol 780 MovieClipUses:779Used by:789
Symbol 781 GraphicUsed by:789
Symbol 782 GraphicUsed by:788
Symbol 783 GraphicUsed by:784
Symbol 784 MovieClipUses:783Used by:788
Symbol 785 GraphicUsed by:788
Symbol 786 GraphicUsed by:787
Symbol 787 MovieClipUses:786Used by:788
Symbol 788 MovieClipUses:782 784 785 787Used by:789
Symbol 789 MovieClipUses:775 778 780 781 788Used by:790
Symbol 790 MovieClipUses:761 763 764 767 770 772 773 774 789Used by:Timeline
Symbol 791 TextUses:24Used by:Timeline
Symbol 792 ButtonUses:522 524 525 526 110 527 111 523 17 18Used by:888
Symbol 793 TextUses:24Used by:888
Symbol 794 GraphicUsed by:888
Symbol 795 TextUses:102Used by:888
Symbol 796 TextUses:102Used by:888
Symbol 797 TextUses:102Used by:888
Symbol 798 TextUses:102Used by:888
Symbol 799 TextUses:102Used by:888
Symbol 800 TextUses:102Used by:888
Symbol 801 GraphicUsed by:874
Symbol 802 GraphicUsed by:808
Symbol 803 GraphicUsed by:808
Symbol 804 TextUses:102Used by:808
Symbol 805 GraphicUsed by:808
Symbol 806 GraphicUsed by:808
Symbol 807 GraphicUsed by:808
Symbol 808 ButtonUses:802 803 804 805 806 807 17 18Used by:874
Symbol 809 GraphicUsed by:816
Symbol 810 TextUses:102Used by:816
Symbol 811 GraphicUsed by:816
Symbol 812 TextUses:102Used by:816
Symbol 813 GraphicUsed by:816
Symbol 814 GraphicUsed by:816
Symbol 815 GraphicUsed by:816
Symbol 816 Button {gui.SponsorLevelsButton}Uses:809 810 811 812 813 814 815 17 18Used by:874
Symbol 817 TextUses:102Used by:874
Symbol 818 GraphicUsed by:821 858
Symbol 819 GraphicUsed by:821 858 867 873
Symbol 820 GraphicUsed by:821 858
Symbol 821 ButtonUses:818 819 820 17 18Used by:874
Symbol 822 TextUses:102Used by:874
Symbol 823 TextUses:102Used by:874
Symbol 824 TextUses:102Used by:874
Symbol 825 TextUses:102Used by:874
Symbol 826 TextUses:102Used by:874
Symbol 827 TextUses:102Used by:874
Symbol 828 TextUses:102Used by:874
Symbol 829 TextUses:102Used by:874
Symbol 830 TextUses:102Used by:874
Symbol 831 TextUses:102Used by:874
Symbol 832 TextUses:102Used by:874
Symbol 833 TextUses:102Used by:874
Symbol 834 TextUses:102Used by:874
Symbol 835 TextUses:102Used by:874
Symbol 836 TextUses:102Used by:874
Symbol 837 TextUses:102Used by:874
Symbol 838 TextUses:102Used by:874
Symbol 839 TextUses:102Used by:874
Symbol 840 TextUses:102Used by:874
Symbol 841 TextUses:102Used by:874
Symbol 842 TextUses:102Used by:874
Symbol 843 TextUses:102Used by:874
Symbol 844 TextUses:102Used by:874
Symbol 845 TextUses:102Used by:874
Symbol 846 TextUses:102Used by:874
Symbol 847 GraphicUsed by:849
Symbol 848 GraphicUsed by:849
Symbol 849 ButtonUses:847 123 848 125 17 18Used by:874
Symbol 850 TextUses:24Used by:874
Symbol 851 TextUses:24Used by:874
Symbol 852 TextUses:24Used by:874
Symbol 853 TextUses:102Used by:874
Symbol 854 TextUses:102Used by:874
Symbol 855 TextUses:102Used by:874
Symbol 856 TextUses:102Used by:874
Symbol 857 TextUses:102Used by:874
Symbol 858 Button {gui.ReskinButton}Uses:818 819 820 17 18Used by:874
Symbol 859 TextUses:24Used by:874
Symbol 860 TextUses:102Used by:874
Symbol 861 TextUses:102Used by:874
Symbol 862 TextUses:102Used by:874
Symbol 863 TextUses:102Used by:874
Symbol 864 TextUses:102Used by:874
Symbol 865 GraphicUsed by:867
Symbol 866 TextUses:102Used by:867
Symbol 867 ButtonUses:865 866 819 17 18Used by:874
Symbol 868 GraphicUsed by:870
Symbol 869 GraphicUsed by:870
Symbol 870 MovieClip {Vehicles_fla.ReskinSymbol_183}Uses:868 869Used by:874
Symbol 871 GraphicUsed by:873
Symbol 872 TextUses:102Used by:873
Symbol 873 ButtonUses:871 872 819 17 18Used by:874
Symbol 874 MovieClip {gui.LevelsButtonsClip}Uses:801 808 816 817 821 126 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 867 870 873Used by:888
Symbol 875 GraphicUsed by:878
Symbol 876 EditableTextUses:24Used by:878
Symbol 877 TextUses:24Used by:878
Symbol 878 MovieClipUses:875 876 877Used by:888
Symbol 879 TextUses:24Used by:888
Symbol 880 GraphicUsed by:881
Symbol 881 ButtonUses:880 17 18Used by:888
Symbol 882 TextUses:24Used by:888
Symbol 883 TextUses:24Used by:888
Symbol 884 TextUses:24Used by:888
Symbol 885 TextUses:24Used by:887
Symbol 886 TextUses:24Used by:887
Symbol 887 ButtonUses:885 886Used by:888
Symbol 888 MovieClip {gui.MenuClip}Uses:792 793 794 795 796 797 798 799 800 874 878 879 881 116 882 883 884 887Used by:Timeline
Symbol 889 GraphicUsed by:Timeline
Symbol 890 TextUses:102Used by:893
Symbol 891 TextUses:102Used by:893
Symbol 892 GraphicUsed by:893
Symbol 893 Button {gui.VogdButton}Uses:890 891 892 17 18Used by:Timeline
Symbol 894 GraphicUsed by:898
Symbol 895 GraphicUsed by:898
Symbol 896 GraphicUsed by:898
Symbol 897 GraphicUsed by:898
Symbol 898 Button {gui.NextButton}Uses:894 895 896 897 17 18Used by:900
Symbol 899 TextUses:24Used by:900
Symbol 900 MovieClip {gui.WinMenu}Uses:898 899 121Used by:Timeline
Symbol 901 TextUses:21Used by:Timeline
Symbol 902 EditableTextUses:21Used by:Timeline
Symbol 903 GraphicUsed by:905
Symbol 904 GraphicUsed by:905
Symbol 905 MovieClip {gui.SoundButton}Uses:903 904Used by:Timeline
Symbol 906 MovieClip {gui.MenuWalkClip}Uses:23 25Used by:Timeline
Symbol 907 TextUses:24Used by:Timeline
Symbol 908 EditableTextUses:21Used by:Timeline

Instance Names

"adBox"Frame 1Symbol 184 MovieClip
"LoadingBar"Frame 2Symbol 190 MovieClip
"SBack"Frame 64Symbol 790 MovieClip
"WinMenu"Frame 86Symbol 900 MovieClip {gui.WinMenu}
"GameMenu"Frame 86Symbol 117 MovieClip {gui.GameMenu}
"clicks_number_text"Frame 86Symbol 902 EditableText
"SoundButton"Frame 86Symbol 905 MovieClip {gui.SoundButton}
"Checking"Frame 86Symbol 108 MovieClip {gui.CheckClip}
"WinMenu"Frame 118Symbol 900 MovieClip {gui.WinMenu}
"GameMenu"Frame 118Symbol 117 MovieClip {gui.GameMenu}
"clicks_number_text"Frame 118Symbol 908 EditableText
"Checking"Frame 118Symbol 108 MovieClip {gui.CheckClip}
"TText"Symbol 9 MovieClip {Objects.TalkClip} Frame 1Symbol 7 EditableText
"TText"Symbol 9 MovieClip {Objects.TalkClip} Frame 2Symbol 8 EditableText
"bg"Symbol 43 MovieClip {gui.LevelNumber} Frame 1Symbol 36 MovieClip
"level_number_text"Symbol 43 MovieClip {gui.LevelNumber} Frame 1Symbol 39 EditableText
"scores_number_text"Symbol 43 MovieClip {gui.LevelNumber} Frame 1Symbol 41 EditableText
"scores2_number_text"Symbol 43 MovieClip {gui.LevelNumber} Frame 1Symbol 42 EditableText
"bg"Symbol 59 MovieClip {mcBannedSign} Frame 1Symbol 56 MovieClip
"BLUE"Symbol 96 MovieClip {WaterHolderB} Frame 1Symbol 95 MovieClip {com.midasplayer.extras.Water}
"GREEN"Symbol 97 MovieClip {WaterHolderG} Frame 1Symbol 95 MovieClip {com.midasplayer.extras.Water}
"RED"Symbol 98 MovieClip {WaterHolderR} Frame 1Symbol 95 MovieClip {com.midasplayer.extras.Water}
"bar"Symbol 108 MovieClip {gui.CheckClip} Frame 1Symbol 106 MovieClip
"MainMenu"Symbol 117 MovieClip {gui.GameMenu} Frame 1Symbol 112 Button {gui.GMButtonMenu}
"FB"Symbol 117 MovieClip {gui.GameMenu} Frame 1Symbol 116 Button {gui.Funflow1_Button}
"selector"Symbol 161 MovieClip {Vehicles_fla.Car1_Corpus_65} Frame 1Symbol 132 MovieClip
"corpus"Symbol 175 MovieClip Frame 1Symbol 161 MovieClip {Vehicles_fla.Car1_Corpus_65}
"smoke"Symbol 175 MovieClip Frame 1Symbol 172 MovieClip
"parked"Symbol 175 MovieClip Frame 1Symbol 174 MovieClip
"Box"Symbol 178 MovieClip {Objects.Car1} Frame 1Symbol 128 MovieClip
"Wheel1"Symbol 178 MovieClip {Objects.Car1} Frame 1Symbol 130 MovieClip
"Wheel2"Symbol 178 MovieClip {Objects.Car1} Frame 1Symbol 130 MovieClip
"IBox"Symbol 178 MovieClip {Objects.Car1} Frame 1Symbol 175 MovieClip
"IWheel1"Symbol 178 MovieClip {Objects.Car1} Frame 1Symbol 177 MovieClip
"IWheel2"Symbol 178 MovieClip {Objects.Car1} Frame 1Symbol 177 MovieClip
"LoadingBar"Symbol 210 MovieClip {gui.Preloader} Frame 1Symbol 190 MovieClip
"LoadingText"Symbol 210 MovieClip {gui.Preloader} Frame 1Symbol 209 EditableText
"place"Symbol 217 MovieClip {Objects.ParkZone} Frame 1Symbol 213 MovieClip
"park"Symbol 217 MovieClip {Objects.ParkZone} Frame 1Symbol 216 MovieClip
"selector"Symbol 266 MovieClip Frame 1Symbol 132 MovieClip
"corpus"Symbol 267 MovieClip Frame 1Symbol 266 MovieClip
"smoke"Symbol 267 MovieClip Frame 1Symbol 172 MovieClip
"parked"Symbol 267 MovieClip Frame 1Symbol 174 MovieClip
"Box"Symbol 268 MovieClip {Objects.Car3} Frame 1Symbol 128 MovieClip
"Wheel1"Symbol 268 MovieClip {Objects.Car3} Frame 1Symbol 130 MovieClip
"Wheel2"Symbol 268 MovieClip {Objects.Car3} Frame 1Symbol 130 MovieClip
"Wheel3"Symbol 268 MovieClip {Objects.Car3} Frame 1Symbol 130 MovieClip
"IWheel1"Symbol 268 MovieClip {Objects.Car3} Frame 1Symbol 221 MovieClip
"IWheel2"Symbol 268 MovieClip {Objects.Car3} Frame 1Symbol 221 MovieClip
"IWheel3"Symbol 268 MovieClip {Objects.Car3} Frame 1Symbol 221 MovieClip
"IBox"Symbol 268 MovieClip {Objects.Car3} Frame 1Symbol 267 MovieClip
"selector"Symbol 314 MovieClip Frame 1Symbol 132 MovieClip
"corpus"Symbol 315 MovieClip Frame 1Symbol 314 MovieClip
"smoke"Symbol 315 MovieClip Frame 1Symbol 172 MovieClip
"Box"Symbol 316 MovieClip {Objects.Car5_Back} Frame 1Symbol 128 MovieClip
"Wheel1"Symbol 316 MovieClip {Objects.Car5_Back} Frame 1Symbol 130 MovieClip
"Wheel2"Symbol 316 MovieClip {Objects.Car5_Back} Frame 1Symbol 130 MovieClip
"IWheel1"Symbol 316 MovieClip {Objects.Car5_Back} Frame 1Symbol 274 MovieClip
"IWheel2"Symbol 316 MovieClip {Objects.Car5_Back} Frame 1Symbol 274 MovieClip
"IBox"Symbol 316 MovieClip {Objects.Car5_Back} Frame 1Symbol 315 MovieClip
"selector"Symbol 356 MovieClip Frame 1Symbol 132 MovieClip
"corpus"Symbol 357 MovieClip Frame 1Symbol 356 MovieClip
"smoke"Symbol 357 MovieClip Frame 1Symbol 172 MovieClip
"parked"Symbol 357 MovieClip Frame 1Symbol 174 MovieClip
"Box"Symbol 358 MovieClip {Objects.Car2} Frame 1Symbol 128 MovieClip
"Wheel1"Symbol 358 MovieClip {Objects.Car2} Frame 1Symbol 130 MovieClip
"Wheel2"Symbol 358 MovieClip {Objects.Car2} Frame 1Symbol 130 MovieClip
"IWheel1"Symbol 358 MovieClip {Objects.Car2} Frame 1Symbol 318 MovieClip
"IWheel2"Symbol 358 MovieClip {Objects.Car2} Frame 1Symbol 318 MovieClip
"IBox"Symbol 358 MovieClip {Objects.Car2} Frame 1Symbol 357 MovieClip
"Car_01"Symbol 367 MovieClip {Stages.stage_09} Frame 1Symbol 268 MovieClip {Objects.Car3}
"SStatic_01"Symbol 367 MovieClip {Stages.stage_09} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 367 MovieClip {Stages.stage_09} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Car_01"Symbol 373 MovieClip {Stages.stage_01} Frame 1Symbol 358 MovieClip {Objects.Car2}
"Arrow"Symbol 373 MovieClip {Stages.stage_01} Frame 1Symbol 372 MovieClip
"corpus"Symbol 375 MovieClip Frame 1Symbol 266 MovieClip
"smoke"Symbol 375 MovieClip Frame 1Symbol 172 MovieClip
"parked"Symbol 375 MovieClip Frame 1Symbol 174 MovieClip
"Box"Symbol 376 MovieClip {Objects.Car3_Back} Frame 1Symbol 128 MovieClip
"Wheel1"Symbol 376 MovieClip {Objects.Car3_Back} Frame 1Symbol 130 MovieClip
"IWheel1"Symbol 376 MovieClip {Objects.Car3_Back} Frame 1Symbol 221 MovieClip
"Wheel2"Symbol 376 MovieClip {Objects.Car3_Back} Frame 1Symbol 130 MovieClip
"Wheel3"Symbol 376 MovieClip {Objects.Car3_Back} Frame 1Symbol 130 MovieClip
"IWheel2"Symbol 376 MovieClip {Objects.Car3_Back} Frame 1Symbol 221 MovieClip
"IWheel3"Symbol 376 MovieClip {Objects.Car3_Back} Frame 1Symbol 221 MovieClip
"IBox"Symbol 376 MovieClip {Objects.Car3_Back} Frame 1Symbol 375 MovieClip
"selector"Symbol 406 MovieClip Frame 1Symbol 132 MovieClip
"corpus"Symbol 407 MovieClip Frame 1Symbol 406 MovieClip
"smoke"Symbol 407 MovieClip Frame 1Symbol 172 MovieClip
"Box"Symbol 408 MovieClip {Objects.Car4_Back} Frame 1Symbol 128 MovieClip
"Wheel1"Symbol 408 MovieClip {Objects.Car4_Back} Frame 1Symbol 130 MovieClip
"Wheel2"Symbol 408 MovieClip {Objects.Car4_Back} Frame 1Symbol 130 MovieClip
"IWheel2"Symbol 408 MovieClip {Objects.Car4_Back} Frame 1Symbol 382 MovieClip
"IWheel1"Symbol 408 MovieClip {Objects.Car4_Back} Frame 1Symbol 382 MovieClip
"IBox"Symbol 408 MovieClip {Objects.Car4_Back} Frame 1Symbol 407 MovieClip
"Car_02"Symbol 414 MovieClip {Stages.stage_14} Frame 1Symbol 376 MovieClip {Objects.Car3_Back}
"Car_03"Symbol 414 MovieClip {Stages.stage_14} Frame 1Symbol 178 MovieClip {Objects.Car1}
"Car_01"Symbol 414 MovieClip {Stages.stage_14} Frame 1Symbol 408 MovieClip {Objects.Car4_Back}
"Arrow"Symbol 414 MovieClip {Stages.stage_14} Frame 1Symbol 411 MovieClip
"corpus"Symbol 416 MovieClip Frame 1Symbol 314 MovieClip
"smoke"Symbol 416 MovieClip Frame 1Symbol 172 MovieClip
"Box"Symbol 417 MovieClip {Objects.Car5} Frame 1Symbol 128 MovieClip
"Wheel1"Symbol 417 MovieClip {Objects.Car5} Frame 1Symbol 130 MovieClip
"Wheel2"Symbol 417 MovieClip {Objects.Car5} Frame 1Symbol 130 MovieClip
"IWheel1"Symbol 417 MovieClip {Objects.Car5} Frame 1Symbol 274 MovieClip
"IWheel2"Symbol 417 MovieClip {Objects.Car5} Frame 1Symbol 274 MovieClip
"IBox"Symbol 417 MovieClip {Objects.Car5} Frame 1Symbol 416 MovieClip
"corpus"Symbol 418 MovieClip Frame 1Symbol 406 MovieClip
"smoke"Symbol 418 MovieClip Frame 1Symbol 172 MovieClip
"Box"Symbol 419 MovieClip {Objects.Car4} Frame 1Symbol 128 MovieClip
"Wheel1"Symbol 419 MovieClip {Objects.Car4} Frame 1Symbol 130 MovieClip
"Wheel2"Symbol 419 MovieClip {Objects.Car4} Frame 1Symbol 130 MovieClip
"IWheel2"Symbol 419 MovieClip {Objects.Car4} Frame 1Symbol 382 MovieClip
"IWheel1"Symbol 419 MovieClip {Objects.Car4} Frame 1Symbol 382 MovieClip
"IBox"Symbol 419 MovieClip {Objects.Car4} Frame 1Symbol 418 MovieClip
"corpus"Symbol 420 MovieClip Frame 1Symbol 161 MovieClip {Vehicles_fla.Car1_Corpus_65}
"smoke"Symbol 420 MovieClip Frame 1Symbol 172 MovieClip
"parked"Symbol 420 MovieClip Frame 1Symbol 174 MovieClip
"Box"Symbol 421 MovieClip {Objects.Car1_Back} Frame 1Symbol 128 MovieClip
"Wheel1"Symbol 421 MovieClip {Objects.Car1_Back} Frame 1Symbol 130 MovieClip
"Wheel2"Symbol 421 MovieClip {Objects.Car1_Back} Frame 1Symbol 130 MovieClip
"IBox"Symbol 421 MovieClip {Objects.Car1_Back} Frame 1Symbol 420 MovieClip
"IWheel1"Symbol 421 MovieClip {Objects.Car1_Back} Frame 1Symbol 177 MovieClip
"IWheel2"Symbol 421 MovieClip {Objects.Car1_Back} Frame 1Symbol 177 MovieClip
"Car_01"Symbol 426 MovieClip {Stages.stage_02} Frame 1Symbol 421 MovieClip {Objects.Car1_Back}
"corpus"Symbol 428 MovieClip Frame 1Symbol 356 MovieClip
"smoke"Symbol 428 MovieClip Frame 1Symbol 172 MovieClip
"parked"Symbol 428 MovieClip Frame 1Symbol 174 MovieClip
"Box"Symbol 429 MovieClip {Objects.Car2_Back} Frame 1Symbol 128 MovieClip
"Wheel1"Symbol 429 MovieClip {Objects.Car2_Back} Frame 1Symbol 130 MovieClip
"Wheel2"Symbol 429 MovieClip {Objects.Car2_Back} Frame 1Symbol 130 MovieClip
"IWheel1"Symbol 429 MovieClip {Objects.Car2_Back} Frame 1Symbol 318 MovieClip
"IWheel2"Symbol 429 MovieClip {Objects.Car2_Back} Frame 1Symbol 318 MovieClip
"IBox"Symbol 429 MovieClip {Objects.Car2_Back} Frame 1Symbol 428 MovieClip
"Car_01"Symbol 430 MovieClip {Stages.stage_04} Frame 1Symbol 429 MovieClip {Objects.Car2_Back}
"Car_02"Symbol 430 MovieClip {Stages.stage_04} Frame 1Symbol 316 MovieClip {Objects.Car5_Back}
"Car_01"Symbol 435 MovieClip {Stages.stage_03} Frame 1Symbol 376 MovieClip {Objects.Car3_Back}
"SStatic_01"Symbol 435 MovieClip {Stages.stage_03} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 435 MovieClip {Stages.stage_03} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Car_01"Symbol 443 MovieClip {Stages.stage_16} Frame 1Symbol 268 MovieClip {Objects.Car3}
"Car_01"Symbol 448 MovieClip {Stages.stage_06} Frame 1Symbol 429 MovieClip {Objects.Car2_Back}
"Car_01"Symbol 451 MovieClip {Stages.stage_17} Frame 1Symbol 358 MovieClip {Objects.Car2}
"Car_02"Symbol 453 MovieClip {Stages.stage_07} Frame 1Symbol 408 MovieClip {Objects.Car4_Back}
"Car_01"Symbol 453 MovieClip {Stages.stage_07} Frame 1Symbol 376 MovieClip {Objects.Car3_Back}
"Car_01"Symbol 455 MovieClip {Stages.stage_18} Frame 1Symbol 178 MovieClip {Objects.Car1}
"SStatic_01"Symbol 455 MovieClip {Stages.stage_18} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 455 MovieClip {Stages.stage_18} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Car_02"Symbol 455 MovieClip {Stages.stage_18} Frame 1Symbol 178 MovieClip {Objects.Car1}
"Car_02"Symbol 457 MovieClip {Stages.stage_08} Frame 1Symbol 358 MovieClip {Objects.Car2}
"Car_01"Symbol 457 MovieClip {Stages.stage_08} Frame 1Symbol 421 MovieClip {Objects.Car1_Back}
"SStatic_03"Symbol 464 MovieClip {Stages.stage_19} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 464 MovieClip {Stages.stage_19} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Static_02"Symbol 464 MovieClip {Stages.stage_19} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Static_03"Symbol 464 MovieClip {Stages.stage_19} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Car_02"Symbol 464 MovieClip {Stages.stage_19} Frame 1Symbol 421 MovieClip {Objects.Car1_Back}
"Car_01"Symbol 464 MovieClip {Stages.stage_19} Frame 1Symbol 178 MovieClip {Objects.Car1}
"SStatic_01"Symbol 464 MovieClip {Stages.stage_19} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"SStatic_02"Symbol 464 MovieClip {Stages.stage_19} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"Car_01"Symbol 469 MovieClip {Stages.stage_13} Frame 1Symbol 421 MovieClip {Objects.Car1_Back}
"Car_03"Symbol 469 MovieClip {Stages.stage_13} Frame 1Symbol 268 MovieClip {Objects.Car3}
"Car_02"Symbol 469 MovieClip {Stages.stage_13} Frame 1Symbol 316 MovieClip {Objects.Car5_Back}
"Static_01"Symbol 471 MovieClip {Stages.stage_20} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Car_01"Symbol 471 MovieClip {Stages.stage_20} Frame 1Symbol 178 MovieClip {Objects.Car1}
"Car_02"Symbol 471 MovieClip {Stages.stage_20} Frame 1Symbol 421 MovieClip {Objects.Car1_Back}
"SStatic_01"Symbol 471 MovieClip {Stages.stage_20} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"Car_02"Symbol 474 MovieClip {Stages.stage_10} Frame 1Symbol 268 MovieClip {Objects.Car3}
"Car_01"Symbol 474 MovieClip {Stages.stage_10} Frame 1Symbol 376 MovieClip {Objects.Car3_Back}
"Car_03"Symbol 474 MovieClip {Stages.stage_10} Frame 1Symbol 421 MovieClip {Objects.Car1_Back}
"Static_03"Symbol 476 MovieClip {Stages.stage_21} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Car_01"Symbol 476 MovieClip {Stages.stage_21} Frame 1Symbol 178 MovieClip {Objects.Car1}
"Car_02"Symbol 476 MovieClip {Stages.stage_21} Frame 1Symbol 358 MovieClip {Objects.Car2}
"Static_01"Symbol 476 MovieClip {Stages.stage_21} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Static_02"Symbol 476 MovieClip {Stages.stage_21} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"SStatic_02"Symbol 476 MovieClip {Stages.stage_21} Frame 1Symbol 270 MovieClip {Objects.BoxStatic}
"SStatic_03"Symbol 476 MovieClip {Stages.stage_21} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"SStatic_01"Symbol 476 MovieClip {Stages.stage_21} Frame 1Symbol 270 MovieClip {Objects.BoxStatic}
"Car_01"Symbol 477 MovieClip {Stages.stage_11} Frame 1Symbol 421 MovieClip {Objects.Car1_Back}
"Car_02"Symbol 477 MovieClip {Stages.stage_11} Frame 1Symbol 178 MovieClip {Objects.Car1}
"Static_01"Symbol 481 MovieClip {Stages.stage_22} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Car_02"Symbol 481 MovieClip {Stages.stage_22} Frame 1Symbol 358 MovieClip {Objects.Car2}
"Static_02"Symbol 481 MovieClip {Stages.stage_22} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Car_01"Symbol 481 MovieClip {Stages.stage_22} Frame 1Symbol 268 MovieClip {Objects.Car3}
"Static_03"Symbol 481 MovieClip {Stages.stage_22} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"SStatic_01"Symbol 481 MovieClip {Stages.stage_22} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"SStatic_03"Symbol 481 MovieClip {Stages.stage_22} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"SStatic_02"Symbol 481 MovieClip {Stages.stage_22} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"Car_03"Symbol 483 MovieClip {Stages.stage_12} Frame 1Symbol 419 MovieClip {Objects.Car4}
"Car_02"Symbol 483 MovieClip {Stages.stage_12} Frame 1Symbol 376 MovieClip {Objects.Car3_Back}
"Car_01"Symbol 483 MovieClip {Stages.stage_12} Frame 1Symbol 429 MovieClip {Objects.Car2_Back}
"Car_02"Symbol 487 MovieClip {Stages.stage_28} Frame 1Symbol 358 MovieClip {Objects.Car2}
"Car_01"Symbol 487 MovieClip {Stages.stage_28} Frame 1Symbol 429 MovieClip {Objects.Car2_Back}
"Car_03"Symbol 487 MovieClip {Stages.stage_28} Frame 1Symbol 178 MovieClip {Objects.Car1}
"SStatic_01"Symbol 487 MovieClip {Stages.stage_28} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 487 MovieClip {Stages.stage_28} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Car_02"Symbol 489 MovieClip {Stages.stage_15} Frame 1Symbol 178 MovieClip {Objects.Car1}
"Car_01"Symbol 489 MovieClip {Stages.stage_15} Frame 1Symbol 358 MovieClip {Objects.Car2}
"Car_03"Symbol 491 MovieClip {Stages.stage_26} Frame 1Symbol 417 MovieClip {Objects.Car5}
"Ball_01"Symbol 491 MovieClip {Stages.stage_26} Frame 1Symbol 182 MovieClip {Objects.Circle}
"Car_02"Symbol 491 MovieClip {Stages.stage_26} Frame 1Symbol 178 MovieClip {Objects.Car1}
"Car_01"Symbol 491 MovieClip {Stages.stage_26} Frame 1Symbol 358 MovieClip {Objects.Car2}
"Car_04"Symbol 494 MovieClip {Stages.stage_24} Frame 1Symbol 358 MovieClip {Objects.Car2}
"Ball_01"Symbol 494 MovieClip {Stages.stage_24} Frame 1Symbol 182 MovieClip {Objects.Circle}
"SStatic_01"Symbol 494 MovieClip {Stages.stage_24} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 494 MovieClip {Stages.stage_24} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Car_01"Symbol 494 MovieClip {Stages.stage_24} Frame 1Symbol 316 MovieClip {Objects.Car5_Back}
"Car_02"Symbol 494 MovieClip {Stages.stage_24} Frame 1Symbol 268 MovieClip {Objects.Car3}
"Car_03"Symbol 494 MovieClip {Stages.stage_24} Frame 1Symbol 268 MovieClip {Objects.Car3}
"Car_02"Symbol 496 MovieClip {Stages.stage_05} Frame 1Symbol 358 MovieClip {Objects.Car2}
"Car_01"Symbol 496 MovieClip {Stages.stage_05} Frame 1Symbol 268 MovieClip {Objects.Car3}
"Car_01"Symbol 499 MovieClip {Stages.stage_29} Frame 1Symbol 358 MovieClip {Objects.Car2}
"SStatic_01"Symbol 499 MovieClip {Stages.stage_29} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 499 MovieClip {Stages.stage_29} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Car_02"Symbol 499 MovieClip {Stages.stage_29} Frame 1Symbol 178 MovieClip {Objects.Car1}
"Car_01"Symbol 502 MovieClip {Stages.stage_27} Frame 1Symbol 358 MovieClip {Objects.Car2}
"Static_03"Symbol 502 MovieClip {Stages.stage_27} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Car_02"Symbol 502 MovieClip {Stages.stage_27} Frame 1Symbol 358 MovieClip {Objects.Car2}
"SStatic_03"Symbol 502 MovieClip {Stages.stage_27} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"Car_01"Symbol 504 MovieClip {Stages.stage_25} Frame 1Symbol 358 MovieClip {Objects.Car2}
"SStatic_01"Symbol 504 MovieClip {Stages.stage_25} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 504 MovieClip {Stages.stage_25} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"SStatic_04"Symbol 506 MovieClip {Stages.stage_23} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"Static_02"Symbol 506 MovieClip {Stages.stage_23} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Static_01"Symbol 506 MovieClip {Stages.stage_23} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Static_04"Symbol 506 MovieClip {Stages.stage_23} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Static_03"Symbol 506 MovieClip {Stages.stage_23} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Static_05"Symbol 506 MovieClip {Stages.stage_23} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Static_06"Symbol 506 MovieClip {Stages.stage_23} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"SStatic_04"Symbol 506 MovieClip {Stages.stage_23} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"SStatic_06"Symbol 506 MovieClip {Stages.stage_23} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"SStatic_02"Symbol 506 MovieClip {Stages.stage_23} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"SStatic_03"Symbol 506 MovieClip {Stages.stage_23} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"SStatic_01"Symbol 506 MovieClip {Stages.stage_23} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"SStatic_06"Symbol 506 MovieClip {Stages.stage_23} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"SStatic_04"Symbol 506 MovieClip {Stages.stage_23} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"SStatic_01"Symbol 506 MovieClip {Stages.stage_23} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"SStatic_04"Symbol 506 MovieClip {Stages.stage_23} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"Car_03"Symbol 506 MovieClip {Stages.stage_23} Frame 1Symbol 358 MovieClip {Objects.Car2}
"Car_02"Symbol 506 MovieClip {Stages.stage_23} Frame 1Symbol 429 MovieClip {Objects.Car2_Back}
"Car_01"Symbol 506 MovieClip {Stages.stage_23} Frame 1Symbol 429 MovieClip {Objects.Car2_Back}
"Static_01"Symbol 509 MovieClip {Stages.stage_30} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"SStatic_01"Symbol 509 MovieClip {Stages.stage_30} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"Car_01"Symbol 509 MovieClip {Stages.stage_30} Frame 1Symbol 429 MovieClip {Objects.Car2_Back}
"Ball_01"Symbol 509 MovieClip {Stages.stage_30} Frame 1Symbol 182 MovieClip {Objects.Circle}
"Car_01"Symbol 514 MovieClip {Stages.stage_31} Frame 1Symbol 178 MovieClip {Objects.Car1}
"Car_01"Symbol 515 MovieClip {Stages.stage_32} Frame 1Symbol 429 MovieClip {Objects.Car2_Back}
"SStatic_01"Symbol 515 MovieClip {Stages.stage_32} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 515 MovieClip {Stages.stage_32} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Static_02"Symbol 515 MovieClip {Stages.stage_32} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"SStatic_02"Symbol 515 MovieClip {Stages.stage_32} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"Car_01"Symbol 516 MovieClip {Stages.stage_33} Frame 1Symbol 358 MovieClip {Objects.Car2}
"SStatic_01"Symbol 516 MovieClip {Stages.stage_33} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 516 MovieClip {Stages.stage_33} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Car_02"Symbol 518 MovieClip {Stages.stage_34} Frame 1Symbol 268 MovieClip {Objects.Car3}
"Car_01"Symbol 518 MovieClip {Stages.stage_34} Frame 1Symbol 376 MovieClip {Objects.Car3_Back}
"Car_03"Symbol 520 MovieClip {Stages.stage_35} Frame 1Symbol 316 MovieClip {Objects.Car5_Back}
"SStatic_01"Symbol 520 MovieClip {Stages.stage_35} Frame 1Symbol 361 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 520 MovieClip {Stages.stage_35} Frame 1Symbol 363 MovieClip {Objects.StaticTrigger}
"Car_01"Symbol 520 MovieClip {Stages.stage_35} Frame 1Symbol 421 MovieClip {Objects.Car1_Back}
"Car_02"Symbol 520 MovieClip {Stages.stage_35} Frame 1Symbol 178 MovieClip {Objects.Car1}
"BMLevels"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 808 Button
"BSLevels"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 816 Button {gui.SponsorLevelsButton}
"BFinal"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 821 Button
"stage_01"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_02"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_03"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_04"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_05"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_06"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_07"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_08"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_09"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_10"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_11"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_12"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_13"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_14"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_15"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_16"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_17"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_18"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_19"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_20"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_21"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_22"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_23"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_24"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_25"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"BIntro"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 849 Button
"BBack"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 849 Button
"stage_26"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_27"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_28"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_29"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_30"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"BReskin"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 858 Button {gui.ReskinButton}
"stage_31"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_32"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_33"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_34"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"stage_35"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 126 Button {gui.StageButton}
"BReskin2"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 867 Button
"ReskinClip"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 870 MovieClip {Vehicles_fla.ReskinSymbol_183}
"BFinal2"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 873 Button
"TText"Symbol 878 MovieClip Frame 1Symbol 876 EditableText
"BPlay"Symbol 888 MovieClip {gui.MenuClip} Frame 1Symbol 792 Button
"BScores"Symbol 888 MovieClip {gui.MenuClip} Frame 1Symbol 792 Button
"BMoreGames"Symbol 888 MovieClip {gui.MenuClip} Frame 1Symbol 792 Button
"BBack"Symbol 888 MovieClip {gui.MenuClip} Frame 1Symbol 792 Button
"Scores"Symbol 888 MovieClip {gui.MenuClip} Frame 1Symbol 878 MovieClip
"BAddToSite"Symbol 888 MovieClip {gui.MenuClip} Frame 1Symbol 792 Button
"BFacebook"Symbol 888 MovieClip {gui.MenuClip} Frame 1Symbol 881 Button
"BCred"Symbol 888 MovieClip {gui.MenuClip} Frame 1Symbol 887 Button
"MainMenu"Symbol 900 MovieClip {gui.WinMenu} Frame 1Symbol 898 Button {gui.NextButton}

Special Tags

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

Labels

"Loading"Frame 2
"Intro"Frame 41
"Final"Frame 52
"Menu"Frame 64
"LevelSelect"Frame 76
"Game"Frame 86
"Locked"Frame 96
"L1"Frame 108
"off"Symbol 75 MovieClip {ferryBlue} Frame 1
"on"Symbol 75 MovieClip {ferryBlue} Frame 2
"off"Symbol 80 MovieClip {ferryGreen} Frame 1
"on"Symbol 80 MovieClip {ferryGreen} Frame 2
"off"Symbol 85 MovieClip {ferryRed} Frame 1
"on"Symbol 85 MovieClip {ferryRed} Frame 2
"Static"Symbol 161 MovieClip {Vehicles_fla.Car1_Corpus_65} Frame 1
"Over"Symbol 161 MovieClip {Vehicles_fla.Car1_Corpus_65} Frame 10
"Bum"Symbol 161 MovieClip {Vehicles_fla.Car1_Corpus_65} Frame 20
"Fall"Symbol 161 MovieClip {Vehicles_fla.Car1_Corpus_65} Frame 30
"Static"Symbol 266 MovieClip Frame 1
"Over"Symbol 266 MovieClip Frame 10
"Bum"Symbol 266 MovieClip Frame 20
"Fall"Symbol 266 MovieClip Frame 30
"Static"Symbol 314 MovieClip Frame 1
"Over"Symbol 314 MovieClip Frame 10
"Bum"Symbol 314 MovieClip Frame 20
"Fall"Symbol 314 MovieClip Frame 30
"Static"Symbol 356 MovieClip Frame 1
"Over"Symbol 356 MovieClip Frame 10
"Bum"Symbol 356 MovieClip Frame 20
"Fall"Symbol 356 MovieClip Frame 30
"Static"Symbol 406 MovieClip Frame 1
"Over"Symbol 406 MovieClip Frame 10
"Bum"Symbol 406 MovieClip Frame 20
"Fall"Symbol 406 MovieClip Frame 30




http://swfchan.com/19/93514/info.shtml
Created: 26/3 -2019 18:00:10 Last modified: 26/3 -2019 18:00:10 Server time: 06/05 -2024 03:47:24