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

<div style="position:absolute;top:-99px;left:-99px;"><img src="https://tools.swfchan.com/stathit.asp?noj=FRM50526499-23DC&rnd=50526499" width="1" height="1"></div>

armorgames vehicles-5879.swf

This is the info page for
Flash #268095

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


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

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

FAIL

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

RESTART (R)

<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.01

Back

Programming:

Idea, Art:

Dmitriy [Assaulter] Fyodorov

Dmitriy [Vogd] Zaletov

Music:

Anton Popov

complete all green levels with stars to unlock this ones

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

Play

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>

walkthrough

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

Instance Names

"LoadingBar"Frame 1Symbol 179 MovieClip
"SBack"Frame 63Symbol 798 MovieClip
"WinMenu"Frame 85Symbol 892 MovieClip {gui.WinMenu}
"GameMenu"Frame 85Symbol 112 MovieClip {gui.GameMenu}
"clicks_number_text"Frame 85Symbol 894 EditableText
"SoundButton"Frame 85Symbol 897 MovieClip {gui.SoundButton}
"Checking"Frame 85Symbol 103 MovieClip {gui.CheckClip}
"WinMenu"Frame 117Symbol 892 MovieClip {gui.WinMenu}
"GameMenu"Frame 117Symbol 112 MovieClip {gui.GameMenu}
"clicks_number_text"Frame 117Symbol 902 EditableText
"Checking"Frame 117Symbol 103 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 34 MovieClip {gui.LevelNumber} Frame 1Symbol 26 MovieClip
"level_number_text"Symbol 34 MovieClip {gui.LevelNumber} Frame 1Symbol 30 EditableText
"scores_number_text"Symbol 34 MovieClip {gui.LevelNumber} Frame 1Symbol 32 EditableText
"scores2_number_text"Symbol 34 MovieClip {gui.LevelNumber} Frame 1Symbol 33 EditableText
"bg"Symbol 50 MovieClip {mcBannedSign} Frame 1Symbol 47 MovieClip
"BLUE"Symbol 87 MovieClip {WaterHolderB} Frame 1Symbol 86 MovieClip {com.midasplayer.extras.Water}
"GREEN"Symbol 88 MovieClip {WaterHolderG} Frame 1Symbol 86 MovieClip {com.midasplayer.extras.Water}
"RED"Symbol 89 MovieClip {WaterHolderR} Frame 1Symbol 86 MovieClip {com.midasplayer.extras.Water}
"bar"Symbol 103 MovieClip {gui.CheckClip} Frame 1Symbol 101 MovieClip
"MainMenu"Symbol 112 MovieClip {gui.GameMenu} Frame 1Symbol 108 Button {gui.GMButtonMenu}
"selector"Symbol 152 MovieClip {Vehicles_ArmorGames_fla.Car1_Corpus_65} Frame 1Symbol 123 MovieClip
"corpus"Symbol 166 MovieClip Frame 1Symbol 152 MovieClip {Vehicles_ArmorGames_fla.Car1_Corpus_65}
"smoke"Symbol 166 MovieClip Frame 1Symbol 163 MovieClip
"parked"Symbol 166 MovieClip Frame 1Symbol 165 MovieClip
"Box"Symbol 169 MovieClip {Objects.Car1} Frame 1Symbol 119 MovieClip
"Wheel1"Symbol 169 MovieClip {Objects.Car1} Frame 1Symbol 121 MovieClip
"Wheel2"Symbol 169 MovieClip {Objects.Car1} Frame 1Symbol 121 MovieClip
"IBox"Symbol 169 MovieClip {Objects.Car1} Frame 1Symbol 166 MovieClip
"IWheel1"Symbol 169 MovieClip {Objects.Car1} Frame 1Symbol 168 MovieClip
"IWheel2"Symbol 169 MovieClip {Objects.Car1} Frame 1Symbol 168 MovieClip
"LoadingBar"Symbol 199 MovieClip {gui.Preloader} Frame 1Symbol 179 MovieClip
"LoadingText"Symbol 199 MovieClip {gui.Preloader} Frame 1Symbol 198 EditableText
"place"Symbol 209 MovieClip {Objects.ParkZone} Frame 1Symbol 205 MovieClip
"park"Symbol 209 MovieClip {Objects.ParkZone} Frame 1Symbol 208 MovieClip
"selector"Symbol 258 MovieClip Frame 1Symbol 123 MovieClip
"corpus"Symbol 259 MovieClip Frame 1Symbol 258 MovieClip
"smoke"Symbol 259 MovieClip Frame 1Symbol 163 MovieClip
"parked"Symbol 259 MovieClip Frame 1Symbol 165 MovieClip
"Box"Symbol 260 MovieClip {Objects.Car3} Frame 1Symbol 119 MovieClip
"Wheel1"Symbol 260 MovieClip {Objects.Car3} Frame 1Symbol 121 MovieClip
"Wheel2"Symbol 260 MovieClip {Objects.Car3} Frame 1Symbol 121 MovieClip
"Wheel3"Symbol 260 MovieClip {Objects.Car3} Frame 1Symbol 121 MovieClip
"IWheel1"Symbol 260 MovieClip {Objects.Car3} Frame 1Symbol 213 MovieClip
"IWheel2"Symbol 260 MovieClip {Objects.Car3} Frame 1Symbol 213 MovieClip
"IWheel3"Symbol 260 MovieClip {Objects.Car3} Frame 1Symbol 213 MovieClip
"IBox"Symbol 260 MovieClip {Objects.Car3} Frame 1Symbol 259 MovieClip
"selector"Symbol 306 MovieClip Frame 1Symbol 123 MovieClip
"corpus"Symbol 307 MovieClip Frame 1Symbol 306 MovieClip
"smoke"Symbol 307 MovieClip Frame 1Symbol 163 MovieClip
"Box"Symbol 308 MovieClip {Objects.Car5_Back} Frame 1Symbol 119 MovieClip
"Wheel1"Symbol 308 MovieClip {Objects.Car5_Back} Frame 1Symbol 121 MovieClip
"Wheel2"Symbol 308 MovieClip {Objects.Car5_Back} Frame 1Symbol 121 MovieClip
"IWheel1"Symbol 308 MovieClip {Objects.Car5_Back} Frame 1Symbol 266 MovieClip
"IWheel2"Symbol 308 MovieClip {Objects.Car5_Back} Frame 1Symbol 266 MovieClip
"IBox"Symbol 308 MovieClip {Objects.Car5_Back} Frame 1Symbol 307 MovieClip
"selector"Symbol 348 MovieClip Frame 1Symbol 123 MovieClip
"corpus"Symbol 349 MovieClip Frame 1Symbol 348 MovieClip
"smoke"Symbol 349 MovieClip Frame 1Symbol 163 MovieClip
"parked"Symbol 349 MovieClip Frame 1Symbol 165 MovieClip
"Box"Symbol 350 MovieClip {Objects.Car2} Frame 1Symbol 119 MovieClip
"Wheel1"Symbol 350 MovieClip {Objects.Car2} Frame 1Symbol 121 MovieClip
"Wheel2"Symbol 350 MovieClip {Objects.Car2} Frame 1Symbol 121 MovieClip
"IWheel1"Symbol 350 MovieClip {Objects.Car2} Frame 1Symbol 310 MovieClip
"IWheel2"Symbol 350 MovieClip {Objects.Car2} Frame 1Symbol 310 MovieClip
"IBox"Symbol 350 MovieClip {Objects.Car2} Frame 1Symbol 349 MovieClip
"Car_01"Symbol 359 MovieClip {Stages.stage_09} Frame 1Symbol 260 MovieClip {Objects.Car3}
"SStatic_01"Symbol 359 MovieClip {Stages.stage_09} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 359 MovieClip {Stages.stage_09} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Car_01"Symbol 365 MovieClip {Stages.stage_01} Frame 1Symbol 350 MovieClip {Objects.Car2}
"Arrow"Symbol 365 MovieClip {Stages.stage_01} Frame 1Symbol 364 MovieClip
"corpus"Symbol 367 MovieClip Frame 1Symbol 258 MovieClip
"smoke"Symbol 367 MovieClip Frame 1Symbol 163 MovieClip
"parked"Symbol 367 MovieClip Frame 1Symbol 165 MovieClip
"Box"Symbol 368 MovieClip {Objects.Car3_Back} Frame 1Symbol 119 MovieClip
"Wheel1"Symbol 368 MovieClip {Objects.Car3_Back} Frame 1Symbol 121 MovieClip
"IWheel1"Symbol 368 MovieClip {Objects.Car3_Back} Frame 1Symbol 213 MovieClip
"Wheel2"Symbol 368 MovieClip {Objects.Car3_Back} Frame 1Symbol 121 MovieClip
"Wheel3"Symbol 368 MovieClip {Objects.Car3_Back} Frame 1Symbol 121 MovieClip
"IWheel2"Symbol 368 MovieClip {Objects.Car3_Back} Frame 1Symbol 213 MovieClip
"IWheel3"Symbol 368 MovieClip {Objects.Car3_Back} Frame 1Symbol 213 MovieClip
"IBox"Symbol 368 MovieClip {Objects.Car3_Back} Frame 1Symbol 367 MovieClip
"selector"Symbol 398 MovieClip Frame 1Symbol 123 MovieClip
"corpus"Symbol 399 MovieClip Frame 1Symbol 398 MovieClip
"smoke"Symbol 399 MovieClip Frame 1Symbol 163 MovieClip
"Box"Symbol 400 MovieClip {Objects.Car4_Back} Frame 1Symbol 119 MovieClip
"Wheel1"Symbol 400 MovieClip {Objects.Car4_Back} Frame 1Symbol 121 MovieClip
"Wheel2"Symbol 400 MovieClip {Objects.Car4_Back} Frame 1Symbol 121 MovieClip
"IWheel2"Symbol 400 MovieClip {Objects.Car4_Back} Frame 1Symbol 374 MovieClip
"IWheel1"Symbol 400 MovieClip {Objects.Car4_Back} Frame 1Symbol 374 MovieClip
"IBox"Symbol 400 MovieClip {Objects.Car4_Back} Frame 1Symbol 399 MovieClip
"Car_02"Symbol 406 MovieClip {Stages.stage_14} Frame 1Symbol 368 MovieClip {Objects.Car3_Back}
"Car_03"Symbol 406 MovieClip {Stages.stage_14} Frame 1Symbol 169 MovieClip {Objects.Car1}
"Car_01"Symbol 406 MovieClip {Stages.stage_14} Frame 1Symbol 400 MovieClip {Objects.Car4_Back}
"Arrow"Symbol 406 MovieClip {Stages.stage_14} Frame 1Symbol 403 MovieClip
"corpus"Symbol 408 MovieClip Frame 1Symbol 306 MovieClip
"smoke"Symbol 408 MovieClip Frame 1Symbol 163 MovieClip
"Box"Symbol 409 MovieClip {Objects.Car5} Frame 1Symbol 119 MovieClip
"Wheel1"Symbol 409 MovieClip {Objects.Car5} Frame 1Symbol 121 MovieClip
"Wheel2"Symbol 409 MovieClip {Objects.Car5} Frame 1Symbol 121 MovieClip
"IWheel1"Symbol 409 MovieClip {Objects.Car5} Frame 1Symbol 266 MovieClip
"IWheel2"Symbol 409 MovieClip {Objects.Car5} Frame 1Symbol 266 MovieClip
"IBox"Symbol 409 MovieClip {Objects.Car5} Frame 1Symbol 408 MovieClip
"corpus"Symbol 410 MovieClip Frame 1Symbol 398 MovieClip
"smoke"Symbol 410 MovieClip Frame 1Symbol 163 MovieClip
"Box"Symbol 411 MovieClip {Objects.Car4} Frame 1Symbol 119 MovieClip
"Wheel1"Symbol 411 MovieClip {Objects.Car4} Frame 1Symbol 121 MovieClip
"Wheel2"Symbol 411 MovieClip {Objects.Car4} Frame 1Symbol 121 MovieClip
"IWheel2"Symbol 411 MovieClip {Objects.Car4} Frame 1Symbol 374 MovieClip
"IWheel1"Symbol 411 MovieClip {Objects.Car4} Frame 1Symbol 374 MovieClip
"IBox"Symbol 411 MovieClip {Objects.Car4} Frame 1Symbol 410 MovieClip
"corpus"Symbol 412 MovieClip Frame 1Symbol 152 MovieClip {Vehicles_ArmorGames_fla.Car1_Corpus_65}
"smoke"Symbol 412 MovieClip Frame 1Symbol 163 MovieClip
"parked"Symbol 412 MovieClip Frame 1Symbol 165 MovieClip
"Box"Symbol 413 MovieClip {Objects.Car1_Back} Frame 1Symbol 119 MovieClip
"Wheel1"Symbol 413 MovieClip {Objects.Car1_Back} Frame 1Symbol 121 MovieClip
"Wheel2"Symbol 413 MovieClip {Objects.Car1_Back} Frame 1Symbol 121 MovieClip
"IBox"Symbol 413 MovieClip {Objects.Car1_Back} Frame 1Symbol 412 MovieClip
"IWheel1"Symbol 413 MovieClip {Objects.Car1_Back} Frame 1Symbol 168 MovieClip
"IWheel2"Symbol 413 MovieClip {Objects.Car1_Back} Frame 1Symbol 168 MovieClip
"Car_01"Symbol 418 MovieClip {Stages.stage_02} Frame 1Symbol 413 MovieClip {Objects.Car1_Back}
"corpus"Symbol 420 MovieClip Frame 1Symbol 348 MovieClip
"smoke"Symbol 420 MovieClip Frame 1Symbol 163 MovieClip
"parked"Symbol 420 MovieClip Frame 1Symbol 165 MovieClip
"Box"Symbol 421 MovieClip {Objects.Car2_Back} Frame 1Symbol 119 MovieClip
"Wheel1"Symbol 421 MovieClip {Objects.Car2_Back} Frame 1Symbol 121 MovieClip
"Wheel2"Symbol 421 MovieClip {Objects.Car2_Back} Frame 1Symbol 121 MovieClip
"IWheel1"Symbol 421 MovieClip {Objects.Car2_Back} Frame 1Symbol 310 MovieClip
"IWheel2"Symbol 421 MovieClip {Objects.Car2_Back} Frame 1Symbol 310 MovieClip
"IBox"Symbol 421 MovieClip {Objects.Car2_Back} Frame 1Symbol 420 MovieClip
"Car_01"Symbol 422 MovieClip {Stages.stage_04} Frame 1Symbol 421 MovieClip {Objects.Car2_Back}
"Car_02"Symbol 422 MovieClip {Stages.stage_04} Frame 1Symbol 308 MovieClip {Objects.Car5_Back}
"Car_01"Symbol 427 MovieClip {Stages.stage_03} Frame 1Symbol 368 MovieClip {Objects.Car3_Back}
"SStatic_01"Symbol 427 MovieClip {Stages.stage_03} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 427 MovieClip {Stages.stage_03} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Car_01"Symbol 435 MovieClip {Stages.stage_16} Frame 1Symbol 260 MovieClip {Objects.Car3}
"Car_01"Symbol 440 MovieClip {Stages.stage_06} Frame 1Symbol 421 MovieClip {Objects.Car2_Back}
"Car_01"Symbol 443 MovieClip {Stages.stage_17} Frame 1Symbol 350 MovieClip {Objects.Car2}
"Car_02"Symbol 445 MovieClip {Stages.stage_07} Frame 1Symbol 400 MovieClip {Objects.Car4_Back}
"Car_01"Symbol 445 MovieClip {Stages.stage_07} Frame 1Symbol 368 MovieClip {Objects.Car3_Back}
"Car_01"Symbol 447 MovieClip {Stages.stage_18} Frame 1Symbol 169 MovieClip {Objects.Car1}
"SStatic_01"Symbol 447 MovieClip {Stages.stage_18} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 447 MovieClip {Stages.stage_18} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Car_02"Symbol 447 MovieClip {Stages.stage_18} Frame 1Symbol 169 MovieClip {Objects.Car1}
"Car_02"Symbol 449 MovieClip {Stages.stage_08} Frame 1Symbol 350 MovieClip {Objects.Car2}
"Car_01"Symbol 449 MovieClip {Stages.stage_08} Frame 1Symbol 413 MovieClip {Objects.Car1_Back}
"SStatic_03"Symbol 456 MovieClip {Stages.stage_19} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 456 MovieClip {Stages.stage_19} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Static_02"Symbol 456 MovieClip {Stages.stage_19} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Static_03"Symbol 456 MovieClip {Stages.stage_19} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Car_02"Symbol 456 MovieClip {Stages.stage_19} Frame 1Symbol 413 MovieClip {Objects.Car1_Back}
"Car_01"Symbol 456 MovieClip {Stages.stage_19} Frame 1Symbol 169 MovieClip {Objects.Car1}
"SStatic_01"Symbol 456 MovieClip {Stages.stage_19} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"SStatic_02"Symbol 456 MovieClip {Stages.stage_19} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"Car_01"Symbol 461 MovieClip {Stages.stage_13} Frame 1Symbol 413 MovieClip {Objects.Car1_Back}
"Car_03"Symbol 461 MovieClip {Stages.stage_13} Frame 1Symbol 260 MovieClip {Objects.Car3}
"Car_02"Symbol 461 MovieClip {Stages.stage_13} Frame 1Symbol 308 MovieClip {Objects.Car5_Back}
"Static_01"Symbol 463 MovieClip {Stages.stage_20} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Car_01"Symbol 463 MovieClip {Stages.stage_20} Frame 1Symbol 169 MovieClip {Objects.Car1}
"Car_02"Symbol 463 MovieClip {Stages.stage_20} Frame 1Symbol 413 MovieClip {Objects.Car1_Back}
"SStatic_01"Symbol 463 MovieClip {Stages.stage_20} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"Car_02"Symbol 466 MovieClip {Stages.stage_10} Frame 1Symbol 260 MovieClip {Objects.Car3}
"Car_01"Symbol 466 MovieClip {Stages.stage_10} Frame 1Symbol 368 MovieClip {Objects.Car3_Back}
"Car_03"Symbol 466 MovieClip {Stages.stage_10} Frame 1Symbol 413 MovieClip {Objects.Car1_Back}
"Static_03"Symbol 468 MovieClip {Stages.stage_21} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Car_01"Symbol 468 MovieClip {Stages.stage_21} Frame 1Symbol 169 MovieClip {Objects.Car1}
"Car_02"Symbol 468 MovieClip {Stages.stage_21} Frame 1Symbol 350 MovieClip {Objects.Car2}
"Static_01"Symbol 468 MovieClip {Stages.stage_21} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Static_02"Symbol 468 MovieClip {Stages.stage_21} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"SStatic_02"Symbol 468 MovieClip {Stages.stage_21} Frame 1Symbol 262 MovieClip {Objects.BoxStatic}
"SStatic_03"Symbol 468 MovieClip {Stages.stage_21} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"SStatic_01"Symbol 468 MovieClip {Stages.stage_21} Frame 1Symbol 262 MovieClip {Objects.BoxStatic}
"Car_01"Symbol 469 MovieClip {Stages.stage_11} Frame 1Symbol 413 MovieClip {Objects.Car1_Back}
"Car_02"Symbol 469 MovieClip {Stages.stage_11} Frame 1Symbol 169 MovieClip {Objects.Car1}
"Static_01"Symbol 473 MovieClip {Stages.stage_22} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Car_02"Symbol 473 MovieClip {Stages.stage_22} Frame 1Symbol 350 MovieClip {Objects.Car2}
"Static_02"Symbol 473 MovieClip {Stages.stage_22} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Car_01"Symbol 473 MovieClip {Stages.stage_22} Frame 1Symbol 260 MovieClip {Objects.Car3}
"Static_03"Symbol 473 MovieClip {Stages.stage_22} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"SStatic_01"Symbol 473 MovieClip {Stages.stage_22} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"SStatic_03"Symbol 473 MovieClip {Stages.stage_22} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"SStatic_02"Symbol 473 MovieClip {Stages.stage_22} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"Car_03"Symbol 475 MovieClip {Stages.stage_12} Frame 1Symbol 411 MovieClip {Objects.Car4}
"Car_02"Symbol 475 MovieClip {Stages.stage_12} Frame 1Symbol 368 MovieClip {Objects.Car3_Back}
"Car_01"Symbol 475 MovieClip {Stages.stage_12} Frame 1Symbol 421 MovieClip {Objects.Car2_Back}
"Car_02"Symbol 479 MovieClip {Stages.stage_28} Frame 1Symbol 350 MovieClip {Objects.Car2}
"Car_01"Symbol 479 MovieClip {Stages.stage_28} Frame 1Symbol 421 MovieClip {Objects.Car2_Back}
"Car_03"Symbol 479 MovieClip {Stages.stage_28} Frame 1Symbol 169 MovieClip {Objects.Car1}
"SStatic_01"Symbol 479 MovieClip {Stages.stage_28} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 479 MovieClip {Stages.stage_28} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Car_02"Symbol 481 MovieClip {Stages.stage_15} Frame 1Symbol 169 MovieClip {Objects.Car1}
"Car_01"Symbol 481 MovieClip {Stages.stage_15} Frame 1Symbol 350 MovieClip {Objects.Car2}
"Car_03"Symbol 483 MovieClip {Stages.stage_26} Frame 1Symbol 409 MovieClip {Objects.Car5}
"Ball_01"Symbol 483 MovieClip {Stages.stage_26} Frame 1Symbol 173 MovieClip {Objects.Circle}
"Car_02"Symbol 483 MovieClip {Stages.stage_26} Frame 1Symbol 169 MovieClip {Objects.Car1}
"Car_01"Symbol 483 MovieClip {Stages.stage_26} Frame 1Symbol 350 MovieClip {Objects.Car2}
"Car_04"Symbol 486 MovieClip {Stages.stage_24} Frame 1Symbol 350 MovieClip {Objects.Car2}
"Ball_01"Symbol 486 MovieClip {Stages.stage_24} Frame 1Symbol 173 MovieClip {Objects.Circle}
"SStatic_01"Symbol 486 MovieClip {Stages.stage_24} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 486 MovieClip {Stages.stage_24} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Car_01"Symbol 486 MovieClip {Stages.stage_24} Frame 1Symbol 308 MovieClip {Objects.Car5_Back}
"Car_02"Symbol 486 MovieClip {Stages.stage_24} Frame 1Symbol 260 MovieClip {Objects.Car3}
"Car_03"Symbol 486 MovieClip {Stages.stage_24} Frame 1Symbol 260 MovieClip {Objects.Car3}
"Car_02"Symbol 488 MovieClip {Stages.stage_05} Frame 1Symbol 350 MovieClip {Objects.Car2}
"Car_01"Symbol 488 MovieClip {Stages.stage_05} Frame 1Symbol 260 MovieClip {Objects.Car3}
"Car_01"Symbol 491 MovieClip {Stages.stage_29} Frame 1Symbol 350 MovieClip {Objects.Car2}
"SStatic_01"Symbol 491 MovieClip {Stages.stage_29} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 491 MovieClip {Stages.stage_29} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Car_02"Symbol 491 MovieClip {Stages.stage_29} Frame 1Symbol 169 MovieClip {Objects.Car1}
"Car_01"Symbol 494 MovieClip {Stages.stage_27} Frame 1Symbol 350 MovieClip {Objects.Car2}
"Static_03"Symbol 494 MovieClip {Stages.stage_27} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Car_02"Symbol 494 MovieClip {Stages.stage_27} Frame 1Symbol 350 MovieClip {Objects.Car2}
"SStatic_03"Symbol 494 MovieClip {Stages.stage_27} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"Car_01"Symbol 496 MovieClip {Stages.stage_25} Frame 1Symbol 350 MovieClip {Objects.Car2}
"SStatic_01"Symbol 496 MovieClip {Stages.stage_25} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 496 MovieClip {Stages.stage_25} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"SStatic_04"Symbol 498 MovieClip {Stages.stage_23} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"Static_02"Symbol 498 MovieClip {Stages.stage_23} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Static_01"Symbol 498 MovieClip {Stages.stage_23} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Static_04"Symbol 498 MovieClip {Stages.stage_23} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Static_03"Symbol 498 MovieClip {Stages.stage_23} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Static_05"Symbol 498 MovieClip {Stages.stage_23} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Static_06"Symbol 498 MovieClip {Stages.stage_23} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"SStatic_04"Symbol 498 MovieClip {Stages.stage_23} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"SStatic_06"Symbol 498 MovieClip {Stages.stage_23} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"SStatic_02"Symbol 498 MovieClip {Stages.stage_23} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"SStatic_03"Symbol 498 MovieClip {Stages.stage_23} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"SStatic_01"Symbol 498 MovieClip {Stages.stage_23} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"SStatic_06"Symbol 498 MovieClip {Stages.stage_23} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"SStatic_04"Symbol 498 MovieClip {Stages.stage_23} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"SStatic_01"Symbol 498 MovieClip {Stages.stage_23} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"SStatic_04"Symbol 498 MovieClip {Stages.stage_23} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"Car_03"Symbol 498 MovieClip {Stages.stage_23} Frame 1Symbol 350 MovieClip {Objects.Car2}
"Car_02"Symbol 498 MovieClip {Stages.stage_23} Frame 1Symbol 421 MovieClip {Objects.Car2_Back}
"Car_01"Symbol 498 MovieClip {Stages.stage_23} Frame 1Symbol 421 MovieClip {Objects.Car2_Back}
"Static_01"Symbol 501 MovieClip {Stages.stage_30} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"SStatic_01"Symbol 501 MovieClip {Stages.stage_30} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"Car_01"Symbol 501 MovieClip {Stages.stage_30} Frame 1Symbol 421 MovieClip {Objects.Car2_Back}
"Ball_01"Symbol 501 MovieClip {Stages.stage_30} Frame 1Symbol 173 MovieClip {Objects.Circle}
"Car_01"Symbol 506 MovieClip {Stages.stage_31} Frame 1Symbol 169 MovieClip {Objects.Car1}
"Car_01"Symbol 507 MovieClip {Stages.stage_32} Frame 1Symbol 421 MovieClip {Objects.Car2_Back}
"SStatic_01"Symbol 507 MovieClip {Stages.stage_32} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 507 MovieClip {Stages.stage_32} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Static_02"Symbol 507 MovieClip {Stages.stage_32} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"SStatic_02"Symbol 507 MovieClip {Stages.stage_32} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"Car_01"Symbol 508 MovieClip {Stages.stage_33} Frame 1Symbol 350 MovieClip {Objects.Car2}
"SStatic_01"Symbol 508 MovieClip {Stages.stage_33} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 508 MovieClip {Stages.stage_33} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Car_02"Symbol 510 MovieClip {Stages.stage_34} Frame 1Symbol 260 MovieClip {Objects.Car3}
"Car_01"Symbol 510 MovieClip {Stages.stage_34} Frame 1Symbol 368 MovieClip {Objects.Car3_Back}
"Car_03"Symbol 512 MovieClip {Stages.stage_35} Frame 1Symbol 308 MovieClip {Objects.Car5_Back}
"SStatic_01"Symbol 512 MovieClip {Stages.stage_35} Frame 1Symbol 353 MovieClip {Objects.BoxStaticR}
"Static_01"Symbol 512 MovieClip {Stages.stage_35} Frame 1Symbol 355 MovieClip {Objects.StaticTrigger}
"Car_01"Symbol 512 MovieClip {Stages.stage_35} Frame 1Symbol 413 MovieClip {Objects.Car1_Back}
"Car_02"Symbol 512 MovieClip {Stages.stage_35} Frame 1Symbol 169 MovieClip {Objects.Car1}
"BMLevels"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 816 Button
"BFinal"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 821 Button
"stage_01"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_02"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_03"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_04"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_05"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_06"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_07"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_08"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_09"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_10"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_11"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_12"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_13"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_14"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_15"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_16"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_17"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_18"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_19"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_20"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_21"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_22"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_23"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_24"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_25"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 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 117 Button {gui.StageButton}
"stage_27"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_28"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_29"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_30"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"BReskin"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 858 Button {gui.ReskinButton}
"stage_31"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_32"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_33"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_34"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"stage_35"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 117 Button {gui.StageButton}
"BReskin2"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 867 Button
"ReskinClip"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 870 MovieClip {Vehicles_ArmorGames_fla.ReskinSymbol_185}
"BFinal2"Symbol 874 MovieClip {gui.LevelsButtonsClip} Frame 1Symbol 873 Button
"BPlay"Symbol 880 MovieClip {gui.MenuClip} Frame 1Symbol 800 Button
"BMoreGames"Symbol 880 MovieClip {gui.MenuClip} Frame 1Symbol 800 Button
"BBack"Symbol 880 MovieClip {gui.MenuClip} Frame 1Symbol 800 Button
"BCred"Symbol 880 MovieClip {gui.MenuClip} Frame 1Symbol 879 Button
"MainMenu"Symbol 892 MovieClip {gui.WinMenu} Frame 1Symbol 890 Button {gui.NextButton}

Special Tags

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

Labels

"Loading"Frame 1
"Sponsor"Frame 39
"Intro"Frame 40
"Final"Frame 51
"Menu"Frame 63
"LevelSelect"Frame 75
"Game"Frame 85
"Locked"Frame 95
"L1"Frame 107
"off"Symbol 66 MovieClip {ferryBlue} Frame 1
"on"Symbol 66 MovieClip {ferryBlue} Frame 2
"off"Symbol 71 MovieClip {ferryGreen} Frame 1
"on"Symbol 71 MovieClip {ferryGreen} Frame 2
"off"Symbol 76 MovieClip {ferryRed} Frame 1
"on"Symbol 76 MovieClip {ferryRed} Frame 2
"Static"Symbol 152 MovieClip {Vehicles_ArmorGames_fla.Car1_Corpus_65} Frame 1
"Over"Symbol 152 MovieClip {Vehicles_ArmorGames_fla.Car1_Corpus_65} Frame 10
"Bum"Symbol 152 MovieClip {Vehicles_ArmorGames_fla.Car1_Corpus_65} Frame 20
"Fall"Symbol 152 MovieClip {Vehicles_ArmorGames_fla.Car1_Corpus_65} Frame 30
"Static"Symbol 258 MovieClip Frame 1
"Over"Symbol 258 MovieClip Frame 10
"Bum"Symbol 258 MovieClip Frame 20
"Fall"Symbol 258 MovieClip Frame 30
"Static"Symbol 306 MovieClip Frame 1
"Over"Symbol 306 MovieClip Frame 10
"Bum"Symbol 306 MovieClip Frame 20
"Fall"Symbol 306 MovieClip Frame 30
"Static"Symbol 348 MovieClip Frame 1
"Over"Symbol 348 MovieClip Frame 10
"Bum"Symbol 348 MovieClip Frame 20
"Fall"Symbol 348 MovieClip Frame 30
"Static"Symbol 398 MovieClip Frame 1
"Over"Symbol 398 MovieClip Frame 10
"Bum"Symbol 398 MovieClip Frame 20
"Fall"Symbol 398 MovieClip Frame 30




https://swfchan.com/54/268095/info.shtml
Created: 13/6 -2026 02:18:24 Last modified: 13/6 -2026 02:18:24 Server time: 23/06 -2026 11:46:44