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

swfchan turned sixteen years old yesterday! (5may2024)

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

galaxochimp.swf

This is the info page for
Flash #115164

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


Text
M

Select  a  Level

Button Text

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

100 %

Loading .....

Yes

Yes

No

No

Are you sure you want to quit
and restart this level?

®

Loading 100%

level templates

level movieclips

sounds

AbcdefgG !!!

hint

new life

BUMP

Level Clear

Life
Bonus

Slow
Bonus

Rapid
Fire

Awards

All levels
complete

Level 3 only
with no lives
lost

Level 4 only with
one or no lives
lost

12 Kinetroids
destroyed

50 000
points or
more

All levels
complete in
one go

Level 1
complete

Best Score 999999999

Galaxochimp

Developed by:

QUIT

RESTART

Shots left

1

Click here to reload

Total Score

12345

Bonus

12345

Level

1

Use the mouse to set direction and
power, then click to launch a chimp.
Collect all the stars to complete the
level!

Fire discs using the mouse

Rotate the board using the left
and right arrow keys (or A and D)

Guide the puck to the target

Keep your puck away from
the blue lines !

Reset level (costs 1 life)

Quit

High
Scores

1
2
3
4
5
6
7
8
9
10

xxx
xxx
xxx
xxx
xxx
xxx
xxx
xxx
xxx
xxx

1234
1234
1234
1234
1234
1234
1234
1234
1234
1234

xxxxxxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxxxxx

Are you sure you want to
quit?

congratulations

You cleared all levels and scored 000 points

Enter your name:

CLOSE

CLOSE

Player Name

Connecting - please wait ......

The number of shots remaining is shown at the top.  You get 3 shots for each level.

Orange platforms are more bouncy.

Teleports allow your chimp to jump between different locations.

Final level!

Get ready - let's get MOVING!!

ActionScript [AS3]

Section 1
//b2BoxDef (Box2D.Collision.Shapes.b2BoxDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2BoxDef extends b2ShapeDef { public var extents:b2Vec2; public function b2BoxDef(){ type = b2Shape.e_boxShape; extents = new b2Vec2(1, 1); } } }//package Box2D.Collision.Shapes
Section 2
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef) package Box2D.Collision.Shapes { public class b2CircleDef extends b2ShapeDef { public var radius:Number; public function b2CircleDef(){ type = b2Shape.e_circleShape; radius = 1; } } }//package Box2D.Collision.Shapes
Section 3
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2CircleShape extends b2Shape { public var m_localPosition:b2Vec2; public var m_radius:Number; public function b2CircleShape(_arg1:b2ShapeDef, _arg2:b2Body, _arg3:b2Vec2){ var _local4:b2CircleDef; var _local5:Number; var _local6:Number; var _local7:b2AABB; var _local8:b2BroadPhase; m_localPosition = new b2Vec2(); super(_arg1, _arg2); _local4 = (_arg1 as b2CircleDef); m_localPosition.Set((_arg1.localPosition.x - _arg3.x), (_arg1.localPosition.y - _arg3.y)); m_type = b2Shape.e_circleShape; m_radius = _local4.radius; m_R.SetM(m_body.m_R); _local5 = ((m_R.col1.x * m_localPosition.x) + (m_R.col2.x * m_localPosition.y)); _local6 = ((m_R.col1.y * m_localPosition.x) + (m_R.col2.y * m_localPosition.y)); m_position.x = (m_body.m_position.x + _local5); m_position.y = (m_body.m_position.y + _local6); m_maxRadius = (Math.sqrt(((_local5 * _local5) + (_local6 * _local6))) + m_radius); _local7 = new b2AABB(); _local7.minVertex.Set((m_position.x - m_radius), (m_position.y - m_radius)); _local7.maxVertex.Set((m_position.x + m_radius), (m_position.y + m_radius)); _local8 = m_body.m_world.m_broadPhase; if (_local8.InRange(_local7)){ m_proxyId = _local8.CreateProxy(_local7, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; if (m_proxyId == b2Pair.b2_nullProxy){ m_body.Freeze(); }; } override public function ResetProxy(_arg1:b2BroadPhase):void{ var _local2:b2Proxy; var _local3:b2AABB; if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _local2 = _arg1.GetProxy(m_proxyId); _arg1.DestroyProxy(m_proxyId); _local2 = null; _local3 = new b2AABB(); _local3.minVertex.Set((m_position.x - m_radius), (m_position.y - m_radius)); _local3.maxVertex.Set((m_position.x + m_radius), (m_position.y + m_radius)); if (_arg1.InRange(_local3)){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; if (m_proxyId == b2Pair.b2_nullProxy){ m_body.Freeze(); }; } override public function QuickSync(_arg1:b2Vec2, _arg2:b2Mat22):void{ m_R.SetM(_arg2); m_position.x = (((_arg2.col1.x * m_localPosition.x) + (_arg2.col2.x * m_localPosition.y)) + _arg1.x); m_position.y = (((_arg2.col1.y * m_localPosition.x) + (_arg2.col2.y * m_localPosition.y)) + _arg1.y); } override public function Support(_arg1:Number, _arg2:Number, _arg3:b2Vec2):void{ var _local4:Number; _local4 = Math.sqrt(((_arg1 * _arg1) + (_arg2 * _arg2))); _arg1 = (_arg1 / _local4); _arg2 = (_arg2 / _local4); _arg3.Set((m_position.x + (m_radius * _arg1)), (m_position.y + (m_radius * _arg2))); } override public function Synchronize(_arg1:b2Vec2, _arg2:b2Mat22, _arg3:b2Vec2, _arg4:b2Mat22):void{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2AABB; var _local12:b2BroadPhase; m_R.SetM(_arg4); m_position.x = (((_arg4.col1.x * m_localPosition.x) + (_arg4.col2.x * m_localPosition.y)) + _arg3.x); m_position.y = (((_arg4.col1.y * m_localPosition.x) + (_arg4.col2.y * m_localPosition.y)) + _arg3.y); if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _local5 = (_arg1.x + ((_arg2.col1.x * m_localPosition.x) + (_arg2.col2.x * m_localPosition.y))); _local6 = (_arg1.y + ((_arg2.col1.y * m_localPosition.x) + (_arg2.col2.y * m_localPosition.y))); _local7 = Math.min(_local5, m_position.x); _local8 = Math.min(_local6, m_position.y); _local9 = Math.max(_local5, m_position.x); _local10 = Math.max(_local6, m_position.y); _local11 = new b2AABB(); _local11.minVertex.Set((_local7 - m_radius), (_local8 - m_radius)); _local11.maxVertex.Set((_local9 + m_radius), (_local10 + m_radius)); _local12 = m_body.m_world.m_broadPhase; if (_local12.InRange(_local11)){ _local12.MoveProxy(m_proxyId, _local11); } else { m_body.Freeze(); }; } override public function TestPoint(_arg1:b2Vec2):Boolean{ var _local2:b2Vec2; _local2 = new b2Vec2(); _local2.SetV(_arg1); _local2.Subtract(m_position); return ((b2Math.b2Dot(_local2, _local2) <= (m_radius * m_radius))); } } }//package Box2D.Collision.Shapes
Section 4
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ mass = 0; center = new b2Vec2(0, 0); I = 0; super(); } } }//package Box2D.Collision.Shapes
Section 5
//b2PolyDef (Box2D.Collision.Shapes.b2PolyDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolyDef extends b2ShapeDef { public var vertexCount:int; public var vertices:Array; public function b2PolyDef(){ var _local1:int; vertices = new Array(b2Settings.b2_maxPolyVertices); super(); type = b2Shape.e_polyShape; vertexCount = 0; _local1 = 0; while (_local1 < b2Settings.b2_maxPolyVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } } }//package Box2D.Collision.Shapes
Section 6
//b2PolyShape (Box2D.Collision.Shapes.b2PolyShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyShape extends b2Shape { public var m_vertices:Array; public var m_localOBB:b2OBB; public var m_normals:Array; public var m_vertexCount:int; private var syncMat:b2Mat22; public var m_coreVertices:Array; public var m_localCentroid:b2Vec2; private var syncAABB:b2AABB; private static var tempVec:b2Vec2 = new b2Vec2(); private static var tAbsR:b2Mat22 = new b2Mat22(); public function b2PolyShape(_arg1:b2ShapeDef, _arg2:b2Body, _arg3:b2Vec2){ var _local4:int; var _local5:Number; var _local6:Number; var _local7:b2Vec2; var _local8:b2AABB; var _local9:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:int; var _local15:int; var _local16:Number; var _local17:Number; var _local18:b2BroadPhase; var _local19:b2BoxDef; var _local20:Number; var _local21:Number; var _local22:b2PolyDef; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:b2Vec2; syncAABB = new b2AABB(); syncMat = new b2Mat22(); m_localCentroid = new b2Vec2(); m_localOBB = new b2OBB(); super(_arg1, _arg2); _local8 = new b2AABB(); m_vertices = new Array(b2Settings.b2_maxPolyVertices); m_coreVertices = new Array(b2Settings.b2_maxPolyVertices); m_normals = new Array(b2Settings.b2_maxPolyVertices); m_type = b2Shape.e_polyShape; _local9 = new b2Mat22(_arg1.localRotation); if (_arg1.type == b2Shape.e_boxShape){ m_localCentroid.x = (_arg1.localPosition.x - _arg3.x); m_localCentroid.y = (_arg1.localPosition.y - _arg3.y); _local19 = (_arg1 as b2BoxDef); m_vertexCount = 4; _local5 = _local19.extents.x; _local6 = _local19.extents.y; _local20 = Math.max(0, (_local5 - (2 * b2Settings.b2_linearSlop))); _local21 = Math.max(0, (_local6 - (2 * b2Settings.b2_linearSlop))); _local7 = (m_vertices[0] = new b2Vec2()); _local7.x = ((_local9.col1.x * _local5) + (_local9.col2.x * _local6)); _local7.y = ((_local9.col1.y * _local5) + (_local9.col2.y * _local6)); _local7 = (m_vertices[1] = new b2Vec2()); _local7.x = ((_local9.col1.x * -(_local5)) + (_local9.col2.x * _local6)); _local7.y = ((_local9.col1.y * -(_local5)) + (_local9.col2.y * _local6)); _local7 = (m_vertices[2] = new b2Vec2()); _local7.x = ((_local9.col1.x * -(_local5)) + (_local9.col2.x * -(_local6))); _local7.y = ((_local9.col1.y * -(_local5)) + (_local9.col2.y * -(_local6))); _local7 = (m_vertices[3] = new b2Vec2()); _local7.x = ((_local9.col1.x * _local5) + (_local9.col2.x * -(_local6))); _local7.y = ((_local9.col1.y * _local5) + (_local9.col2.y * -(_local6))); _local7 = (m_coreVertices[0] = new b2Vec2()); _local7.x = ((_local9.col1.x * _local20) + (_local9.col2.x * _local21)); _local7.y = ((_local9.col1.y * _local20) + (_local9.col2.y * _local21)); _local7 = (m_coreVertices[1] = new b2Vec2()); _local7.x = ((_local9.col1.x * -(_local20)) + (_local9.col2.x * _local21)); _local7.y = ((_local9.col1.y * -(_local20)) + (_local9.col2.y * _local21)); _local7 = (m_coreVertices[2] = new b2Vec2()); _local7.x = ((_local9.col1.x * -(_local20)) + (_local9.col2.x * -(_local21))); _local7.y = ((_local9.col1.y * -(_local20)) + (_local9.col2.y * -(_local21))); _local7 = (m_coreVertices[3] = new b2Vec2()); _local7.x = ((_local9.col1.x * _local20) + (_local9.col2.x * -(_local21))); _local7.y = ((_local9.col1.y * _local20) + (_local9.col2.y * -(_local21))); } else { _local22 = (_arg1 as b2PolyDef); m_vertexCount = _local22.vertexCount; PolyCentroid(_local22.vertices, _local22.vertexCount, tempVec); _local23 = tempVec.x; _local24 = tempVec.y; m_localCentroid.x = ((_arg1.localPosition.x + ((_local9.col1.x * _local23) + (_local9.col2.x * _local24))) - _arg3.x); m_localCentroid.y = ((_arg1.localPosition.y + ((_local9.col1.y * _local23) + (_local9.col2.y * _local24))) - _arg3.y); _local4 = 0; while (_local4 < m_vertexCount) { m_vertices[_local4] = new b2Vec2(); m_coreVertices[_local4] = new b2Vec2(); _local5 = (_local22.vertices[_local4].x - _local23); _local6 = (_local22.vertices[_local4].y - _local24); m_vertices[_local4].x = ((_local9.col1.x * _local5) + (_local9.col2.x * _local6)); m_vertices[_local4].y = ((_local9.col1.y * _local5) + (_local9.col2.y * _local6)); _local25 = m_vertices[_local4].x; _local26 = m_vertices[_local4].y; _local27 = Math.sqrt(((_local25 * _local25) + (_local26 * _local26))); if (_local27 > Number.MIN_VALUE){ _local25 = (_local25 * (1 / _local27)); _local26 = (_local26 * (1 / _local27)); }; m_coreVertices[_local4].x = (m_vertices[_local4].x - ((2 * b2Settings.b2_linearSlop) * _local25)); m_coreVertices[_local4].y = (m_vertices[_local4].y - ((2 * b2Settings.b2_linearSlop) * _local26)); _local4++; }; }; _local10 = Number.MAX_VALUE; _local11 = Number.MAX_VALUE; _local12 = -(Number.MAX_VALUE); _local13 = -(Number.MAX_VALUE); m_maxRadius = 0; _local4 = 0; while (_local4 < m_vertexCount) { _local28 = m_vertices[_local4]; _local10 = Math.min(_local10, _local28.x); _local11 = Math.min(_local11, _local28.y); _local12 = Math.max(_local12, _local28.x); _local13 = Math.max(_local13, _local28.y); m_maxRadius = Math.max(m_maxRadius, _local28.Length()); _local4++; }; m_localOBB.R.SetIdentity(); m_localOBB.center.Set(((_local10 + _local12) * 0.5), ((_local11 + _local13) * 0.5)); m_localOBB.extents.Set(((_local12 - _local10) * 0.5), ((_local13 - _local11) * 0.5)); _local4 = 0; while (_local4 < m_vertexCount) { m_normals[_local4] = new b2Vec2(); _local14 = _local4; _local15 = (((_local4 + 1) < m_vertexCount)) ? (_local4 + 1) : 0; m_normals[_local4].x = (m_vertices[_local15].y - m_vertices[_local14].y); m_normals[_local4].y = -((m_vertices[_local15].x - m_vertices[_local14].x)); m_normals[_local4].Normalize(); _local4++; }; _local4 = 0; while (_local4 < m_vertexCount) { _local14 = _local4; _local15 = (((_local4 + 1) < m_vertexCount)) ? (_local4 + 1) : 0; _local4++; }; m_R.SetM(m_body.m_R); m_position.x = (m_body.m_position.x + ((m_R.col1.x * m_localCentroid.x) + (m_R.col2.x * m_localCentroid.y))); m_position.y = (m_body.m_position.y + ((m_R.col1.y * m_localCentroid.x) + (m_R.col2.y * m_localCentroid.y))); tAbsR.col1.x = ((m_R.col1.x * m_localOBB.R.col1.x) + (m_R.col2.x * m_localOBB.R.col1.y)); tAbsR.col1.y = ((m_R.col1.y * m_localOBB.R.col1.x) + (m_R.col2.y * m_localOBB.R.col1.y)); tAbsR.col2.x = ((m_R.col1.x * m_localOBB.R.col2.x) + (m_R.col2.x * m_localOBB.R.col2.y)); tAbsR.col2.y = ((m_R.col1.y * m_localOBB.R.col2.x) + (m_R.col2.y * m_localOBB.R.col2.y)); tAbsR.Abs(); _local5 = ((tAbsR.col1.x * m_localOBB.extents.x) + (tAbsR.col2.x * m_localOBB.extents.y)); _local6 = ((tAbsR.col1.y * m_localOBB.extents.x) + (tAbsR.col2.y * m_localOBB.extents.y)); _local16 = (m_position.x + ((m_R.col1.x * m_localOBB.center.x) + (m_R.col2.x * m_localOBB.center.y))); _local17 = (m_position.y + ((m_R.col1.y * m_localOBB.center.x) + (m_R.col2.y * m_localOBB.center.y))); _local8.minVertex.x = (_local16 - _local5); _local8.minVertex.y = (_local17 - _local6); _local8.maxVertex.x = (_local16 + _local5); _local8.maxVertex.y = (_local17 + _local6); _local18 = m_body.m_world.m_broadPhase; if (_local18.InRange(_local8)){ m_proxyId = _local18.CreateProxy(_local8, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; if (m_proxyId == b2Pair.b2_nullProxy){ m_body.Freeze(); }; } override public function QuickSync(_arg1:b2Vec2, _arg2:b2Mat22):void{ m_R.SetM(_arg2); m_position.x = (_arg1.x + ((_arg2.col1.x * m_localCentroid.x) + (_arg2.col2.x * m_localCentroid.y))); m_position.y = (_arg1.y + ((_arg2.col1.y * m_localCentroid.x) + (_arg2.col2.y * m_localCentroid.y))); } override public function Support(_arg1:Number, _arg2:Number, _arg3:b2Vec2):void{ var _local4:Number; var _local5:Number; var _local6:int; var _local7:Number; var _local8:int; var _local9:Number; _local4 = ((_arg1 * m_R.col1.x) + (_arg2 * m_R.col1.y)); _local5 = ((_arg1 * m_R.col2.x) + (_arg2 * m_R.col2.y)); _local6 = 0; _local7 = ((m_coreVertices[0].x * _local4) + (m_coreVertices[0].y * _local5)); _local8 = 1; while (_local8 < m_vertexCount) { _local9 = ((m_coreVertices[_local8].x * _local4) + (m_coreVertices[_local8].y * _local5)); if (_local9 > _local7){ _local6 = _local8; _local7 = _local9; }; _local8++; }; _arg3.Set((m_position.x + ((m_R.col1.x * m_coreVertices[_local6].x) + (m_R.col2.x * m_coreVertices[_local6].y))), (m_position.y + ((m_R.col1.y * m_coreVertices[_local6].x) + (m_R.col2.y * m_coreVertices[_local6].y)))); } override public function Synchronize(_arg1:b2Vec2, _arg2:b2Mat22, _arg3:b2Vec2, _arg4:b2Mat22):void{ var _local5:Number; var _local6:Number; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:b2BroadPhase; m_R.SetM(_arg4); m_position.x = (m_body.m_position.x + ((_arg4.col1.x * m_localCentroid.x) + (_arg4.col2.x * m_localCentroid.y))); m_position.y = (m_body.m_position.y + ((_arg4.col1.y * m_localCentroid.x) + (_arg4.col2.y * m_localCentroid.y))); if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _local7 = _arg2.col1; _local8 = _arg2.col2; _local9 = m_localOBB.R.col1; _local10 = m_localOBB.R.col2; syncMat.col1.x = ((_local7.x * _local9.x) + (_local8.x * _local9.y)); syncMat.col1.y = ((_local7.y * _local9.x) + (_local8.y * _local9.y)); syncMat.col2.x = ((_local7.x * _local10.x) + (_local8.x * _local10.y)); syncMat.col2.y = ((_local7.y * _local10.x) + (_local8.y * _local10.y)); syncMat.Abs(); _local5 = (m_localCentroid.x + m_localOBB.center.x); _local6 = (m_localCentroid.y + m_localOBB.center.y); _local11 = (_arg1.x + ((_arg2.col1.x * _local5) + (_arg2.col2.x * _local6))); _local12 = (_arg1.y + ((_arg2.col1.y * _local5) + (_arg2.col2.y * _local6))); _local5 = ((syncMat.col1.x * m_localOBB.extents.x) + (syncMat.col2.x * m_localOBB.extents.y)); _local6 = ((syncMat.col1.y * m_localOBB.extents.x) + (syncMat.col2.y * m_localOBB.extents.y)); syncAABB.minVertex.x = (_local11 - _local5); syncAABB.minVertex.y = (_local12 - _local6); syncAABB.maxVertex.x = (_local11 + _local5); syncAABB.maxVertex.y = (_local12 + _local6); _local7 = _arg4.col1; _local8 = _arg4.col2; _local9 = m_localOBB.R.col1; _local10 = m_localOBB.R.col2; syncMat.col1.x = ((_local7.x * _local9.x) + (_local8.x * _local9.y)); syncMat.col1.y = ((_local7.y * _local9.x) + (_local8.y * _local9.y)); syncMat.col2.x = ((_local7.x * _local10.x) + (_local8.x * _local10.y)); syncMat.col2.y = ((_local7.y * _local10.x) + (_local8.y * _local10.y)); syncMat.Abs(); _local5 = (m_localCentroid.x + m_localOBB.center.x); _local6 = (m_localCentroid.y + m_localOBB.center.y); _local11 = (_arg3.x + ((_arg4.col1.x * _local5) + (_arg4.col2.x * _local6))); _local12 = (_arg3.y + ((_arg4.col1.y * _local5) + (_arg4.col2.y * _local6))); _local5 = ((syncMat.col1.x * m_localOBB.extents.x) + (syncMat.col2.x * m_localOBB.extents.y)); _local6 = ((syncMat.col1.y * m_localOBB.extents.x) + (syncMat.col2.y * m_localOBB.extents.y)); syncAABB.minVertex.x = Math.min(syncAABB.minVertex.x, (_local11 - _local5)); syncAABB.minVertex.y = Math.min(syncAABB.minVertex.y, (_local12 - _local6)); syncAABB.maxVertex.x = Math.max(syncAABB.maxVertex.x, (_local11 + _local5)); syncAABB.maxVertex.y = Math.max(syncAABB.maxVertex.y, (_local12 + _local6)); _local13 = m_body.m_world.m_broadPhase; if (_local13.InRange(syncAABB)){ _local13.MoveProxy(m_proxyId, syncAABB); } else { m_body.Freeze(); }; } override public function TestPoint(_arg1:b2Vec2):Boolean{ var _local2:b2Vec2; var _local3:int; var _local4:b2Vec2; var _local5:Number; _local2 = new b2Vec2(); _local2.SetV(_arg1); _local2.Subtract(m_position); _local2.MulTM(m_R); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = new b2Vec2(); _local4.SetV(_local2); _local4.Subtract(m_vertices[_local3]); _local5 = b2Math.b2Dot(m_normals[_local3], _local4); if (_local5 > 0){ return (false); }; _local3++; }; return (true); } override public function ResetProxy(_arg1:b2BroadPhase):void{ var _local2:b2Proxy; var _local3:b2Mat22; var _local4:b2Mat22; var _local5:b2Vec2; var _local6:b2Vec2; var _local7:b2AABB; if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _local2 = _arg1.GetProxy(m_proxyId); _arg1.DestroyProxy(m_proxyId); _local2 = null; _local3 = b2Math.b2MulMM(m_R, m_localOBB.R); _local4 = b2Math.b2AbsM(_local3); _local5 = b2Math.b2MulMV(_local4, m_localOBB.extents); _local6 = b2Math.b2MulMV(m_R, m_localOBB.center); _local6.Add(m_position); _local7 = new b2AABB(); _local7.minVertex.SetV(_local6); _local7.minVertex.Subtract(_local5); _local7.maxVertex.SetV(_local6); _local7.maxVertex.Add(_local5); if (_arg1.InRange(_local7)){ m_proxyId = _arg1.CreateProxy(_local7, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; if (m_proxyId == b2Pair.b2_nullProxy){ m_body.Freeze(); }; } } }//package Box2D.Collision.Shapes
Section 7
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Shape { public var m_body:b2Body; public var m_maxRadius:Number; public var m_next:b2Shape; public var m_R:b2Mat22; public var m_type:int; public var m_friction:Number; public var m_proxyId:uint; public var m_maskBits:uint; public var m_groupIndex:int; public var m_userData;// = null public var m_restitution:Number; public var m_position:b2Vec2; public var m_categoryBits:uint; public static const e_boxShape:int = 1; public static const e_unknownShape:int = -1; public static const e_shapeTypeCount:int = 4; public static const e_circleShape:int = 0; public static const e_meshShape:int = 3; public static const e_polyShape:int = 2; public function b2Shape(_arg1:b2ShapeDef, _arg2:b2Body){ m_R = new b2Mat22(); m_position = new b2Vec2(); m_userData = null; super(); m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_body = _arg2; m_proxyId = b2Pair.b2_nullProxy; m_maxRadius = 0; m_categoryBits = _arg1.categoryBits; m_maskBits = _arg1.maskBits; m_groupIndex = _arg1.groupIndex; } public function GetMaxRadius():Number{ return (m_maxRadius); } public function GetPosition():b2Vec2{ return (m_position); } public function QuickSync(_arg1:b2Vec2, _arg2:b2Mat22):void{ } public function GetNext():b2Shape{ return (m_next); } public function GetType():int{ return (m_type); } public function GetUserData(){ return (m_userData); } public function Support(_arg1:Number, _arg2:Number, _arg3:b2Vec2):void{ } public function Synchronize(_arg1:b2Vec2, _arg2:b2Mat22, _arg3:b2Vec2, _arg4:b2Mat22):void{ } public function DestroyProxy():void{ if (m_proxyId != b2Pair.b2_nullProxy){ m_body.m_world.m_broadPhase.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function GetRotationMatrix():b2Mat22{ return (m_R); } public function GetBody():b2Body{ return (m_body); } public function TestPoint(_arg1:b2Vec2):Boolean{ return (false); } public function ResetProxy(_arg1:b2BroadPhase):void{ } public static function Destroy(_arg1:b2Shape):void{ if (_arg1.m_proxyId != b2Pair.b2_nullProxy){ _arg1.m_body.m_world.m_broadPhase.DestroyProxy(_arg1.m_proxyId); }; } public static function PolyMass(_arg1:b2MassData, _arg2:Array, _arg3:int, _arg4:Number):void{ var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:b2Vec2; var _local9:Number; var _local10:int; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local14:b2Vec2; var _local15:b2Vec2; var _local16:Number; var _local17:Number; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local5 = new b2Vec2(); _local5.SetZero(); _local6 = 0; _local7 = 0; _local8 = new b2Vec2(0, 0); _local9 = (1 / 3); _local10 = 0; while (_local10 < _arg3) { _local11 = _local8; _local12 = _arg2[_local10]; _local13 = (((_local10 + 1) < _arg3)) ? _arg2[(_local10 + 1)] : _arg2[0]; _local14 = b2Math.SubtractVV(_local12, _local11); _local15 = b2Math.SubtractVV(_local13, _local11); _local16 = b2Math.b2CrossVV(_local14, _local15); _local17 = (0.5 * _local16); _local6 = (_local6 + _local17); _local18 = new b2Vec2(); _local18.SetV(_local11); _local18.Add(_local12); _local18.Add(_local13); _local18.Multiply((_local9 * _local17)); _local5.Add(_local18); _local19 = _local11.x; _local20 = _local11.y; _local21 = _local14.x; _local22 = _local14.y; _local23 = _local15.x; _local24 = _local15.y; _local25 = ((_local9 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local26 = ((_local9 * ((0.25 * (((_local22 * _local22) + (_local24 * _local22)) + (_local24 * _local24))) + ((_local20 * _local22) + (_local20 * _local24)))) + ((0.5 * _local20) * _local20)); _local7 = (_local7 + (_local16 * (_local25 + _local26))); _local10++; }; _arg1.mass = (_arg4 * _local6); _local5.Multiply((1 / _local6)); _arg1.center = _local5; _local7 = (_arg4 * (_local7 - (_local6 * b2Math.b2Dot(_local5, _local5)))); _arg1.I = _local7; } public static function PolyCentroid(_arg1:Array, _arg2:int, _arg3:b2Vec2):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:int; 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; _local4 = 0; _local5 = 0; _local6 = 0; _local7 = 0; _local8 = 0; _local9 = (1 / 3); _local10 = 0; while (_local10 < _arg2) { _local11 = _local7; _local12 = _local8; _local13 = _arg1[_local10].x; _local14 = _arg1[_local10].y; _local15 = (((_local10 + 1) < _arg2)) ? _arg1[(_local10 + 1)].x : _arg1[0].x; _local16 = (((_local10 + 1) < _arg2)) ? _arg1[(_local10 + 1)].y : _arg1[0].y; _local17 = (_local13 - _local11); _local18 = (_local14 - _local12); _local19 = (_local15 - _local11); _local20 = (_local16 - _local12); _local21 = ((_local17 * _local20) - (_local18 * _local19)); _local22 = (0.5 * _local21); _local6 = (_local6 + _local22); _local4 = (_local4 + ((_local22 * _local9) * ((_local11 + _local13) + _local15))); _local5 = (_local5 + ((_local22 * _local9) * ((_local12 + _local14) + _local16))); _local10++; }; _local4 = (_local4 * (1 / _local6)); _local5 = (_local5 * (1 / _local6)); _arg3.Set(_local4, _local5); } public static function Create(_arg1:b2ShapeDef, _arg2:b2Body, _arg3:b2Vec2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1, _arg2, _arg3)); case e_boxShape: case e_polyShape: return (new b2PolyShape(_arg1, _arg2, _arg3)); }; 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 groupIndex:int; public var categoryBits:int; public var localRotation:Number; public var restitution:Number; public var userData;// = null public var density:Number; public var maskBits:int; public var type:int; public var localPosition:b2Vec2; public var friction:Number; public function b2ShapeDef(){ userData = null; super(); type = b2Shape.e_unknownShape; userData = null; localPosition = new b2Vec2(0, 0); localRotation = 0; friction = 0.2; restitution = 0; density = 0; categoryBits = 1; maskBits = 0xFFFF; groupIndex = 0; } public function ComputeMass(_arg1:b2MassData):void{ var _local2:b2CircleDef; var _local3:b2BoxDef; var _local4:b2PolyDef; _arg1.center = new b2Vec2(0, 0); if (density == 0){ _arg1.mass = 0; _arg1.center.Set(0, 0); _arg1.I = 0; }; switch (type){ case b2Shape.e_circleShape: _local2 = (this as b2CircleDef); _arg1.mass = (((density * b2Settings.b2_pi) * _local2.radius) * _local2.radius); _arg1.center.Set(0, 0); _arg1.I = (((0.5 * _arg1.mass) * _local2.radius) * _local2.radius); break; case b2Shape.e_boxShape: _local3 = (this as b2BoxDef); _arg1.mass = (((4 * density) * _local3.extents.x) * _local3.extents.y); _arg1.center.Set(0, 0); _arg1.I = ((_arg1.mass / 3) * b2Math.b2Dot(_local3.extents, _local3.extents)); break; case b2Shape.e_polyShape: _local4 = (this as b2PolyDef); b2Shape.PolyMass(_arg1, _local4.vertices, _local4.vertexCount, density); break; default: _arg1.mass = 0; _arg1.center.Set(0, 0); _arg1.I = 0; break; }; } } }//package Box2D.Collision.Shapes
Section 9
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var minVertex:b2Vec2; public var maxVertex:b2Vec2; public function b2AABB(){ minVertex = new b2Vec2(); maxVertex = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number; var _local2:Number; var _local3:Boolean; _local1 = maxVertex.x; _local2 = maxVertex.y; _local1 = maxVertex.x; _local2 = maxVertex.y; _local1 = (_local1 - minVertex.x); _local2 = (_local2 - minVertex.y); _local3 = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (minVertex.IsValid()))) && (maxVertex.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 10
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var proxyId:uint; public var stabbingCount:uint; public var value:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint; var _local3:uint; var _local4:uint; _local2 = value; _local3 = proxyId; _local4 = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//package Box2D.Collision
Section 11
//b2BoundValues (Box2D.Collision.b2BoundValues) package Box2D.Collision { public class b2BoundValues { public var lowerValues:Array; public var upperValues:Array; public function b2BoundValues(){ lowerValues = [0, 0]; upperValues = [0, 0]; super(); } } }//package Box2D.Collision
Section 12
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; public var m_bounds:Array; public var m_freeProxy:uint; public var m_proxyCount:int; public var m_proxyPool:Array; public var m_queryResultCount:int; public var m_pairManager:b2PairManager; public var m_timeStamp:uint; public var m_queryResults:Array; public static const b2_nullEdge:uint = b2Settings.USHRT_MAX; public static const b2_invalid:uint = b2Settings.USHRT_MAX; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local4:Number; var _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; _local4 = _arg1.maxVertex.x; _local5 = _arg1.maxVertex.y; _local4 = (_local4 - _arg1.minVertex.x); _local5 = (_local5 - _arg1.minVertex.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[(b2Settings.b2_maxProxies - 1)] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local4:Array; var _local5:Array; var _local6:uint; var _local7:uint; var _local8:Array; var _local9:Array; var _local10:int; var _local11:int; var _local12:b2Proxy; _local4 = new Array(); _local5 = new Array(); ComputeBounds(_local4, _local5, _arg1); _local8 = [_local6]; _local9 = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); _local10 = 0; _local11 = 0; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Commit():void{ m_pairManager.Commit(); } public function GetProxy(_arg1:int):b2Proxy{ if ((((_arg1 == b2Pair.b2_nullProxy)) || ((m_proxyPool[_arg1].IsValid() == false)))){ return (null); }; return (m_proxyPool[_arg1]); } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { m_proxyPool[_local1].timeStamp = 0; _local1++; }; m_timeStamp = 1; } else { m_timeStamp++; }; } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local8:uint; var _local9:uint; var _local10:uint; var _local11:int; var _local12:int; var _local13:b2Proxy; _local8 = BinarySearch(_arg5, _arg6, _arg3); _local9 = BinarySearch(_arg5, _arg6, _arg4); _local10 = _local8; while (_local10 < _local9) { if (_arg5[_local10].IsLower()){ IncrementOverlapCount(_arg5[_local10].proxyId); }; _local10++; }; if (_local8 > 0){ _local11 = (_local8 - 1); _local12 = _arg5[_local11].stabbingCount; while (_local12) { if (_arg5[_local11].IsLower()){ _local13 = m_proxyPool[_arg5[_local11].proxyId]; if (_local8 <= _local13.upperBounds[_arg7]){ IncrementOverlapCount(_arg5[_local11].proxyId); _local12--; }; }; _local11--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; if (_local4[_arg1.lowerBounds[_local3]].value > _local4[_arg2.upperBounds[_local3]].value){ return (false); }; if (_local4[_arg1.upperBounds[_local3]].value < _local4[_arg2.lowerBounds[_local3]].value){ return (false); }; _local3++; }; return (true); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local4 = _arg3.minVertex.x; _local5 = _arg3.minVertex.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.maxVertex.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.maxVertex.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.minVertex.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.minVertex.y); _local6 = _arg3.maxVertex.x; _local7 = _arg3.maxVertex.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.maxVertex.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.maxVertex.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.minVertex.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.minVertex.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.minVertex.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.minVertex.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.minVertex.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.minVertex.y))) & 0xFFFF) | 1); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local5:uint; var _local6:uint; var _local7:Array; var _local8:Array; var _local9:int; var _local10:int; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:int; var _local22:b2Proxy; _local5 = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; _local6 = (2 * m_proxyCount); _local7 = new Array(); _local8 = new Array(); ComputeBounds(_local7, _local8, _arg1); _local9 = 0; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[(_local13 + _local17)]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local21 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[(_local21 + _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[(_local12 + _local17)]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local21 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[(_local21 + _local17)]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local11[_local12].value = _local7[_local9]; _local11[_local12].proxyId = _local5; _local11[_local13].value = _local8[_local9]; _local11[_local13].proxyId = _local5; _local11[_local12].stabbingCount = ((_local12 == 0)) ? 0 : _local11[(_local12 - 1)].stabbingCount; _local11[_local13].stabbingCount = _local11[(_local13 - 1)].stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local11[_local3].stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local22 = m_proxyPool[_local11[_local3].proxyId]; if (_local11[_local3].IsLower()){ _local22.lowerBounds[_local9] = _local3; } else { _local22.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; _local10 = 0; while (_local10 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]); _local10++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local5); } public function DestroyProxy(_arg1:uint):void{ var _local2:b2Proxy; var _local3:int; var _local4:int; var _local5:int; var _local6:Array; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:uint; var _local11:Array; var _local12:int; var _local13:int; var _local14:b2Bound; var _local15:b2Bound; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; _local2 = m_proxyPool[_arg1]; _local3 = (2 * m_proxyCount); _local4 = 0; while (_local4 < 2) { _local6 = m_bounds[_local4]; _local7 = _local2.lowerBounds[_local4]; _local8 = _local2.upperBounds[_local4]; _local9 = _local6[_local7].value; _local10 = _local6[_local8].value; _local11 = new Array(); _local13 = ((_local8 - _local7) - 1); _local12 = 0; while (_local12 < _local13) { _local11[_local12] = new b2Bound(); _local14 = _local11[_local12]; _local15 = _local6[((_local7 + 1) + _local12)]; _local14.value = _local15.value; _local14.proxyId = _local15.proxyId; _local14.stabbingCount = _local15.stabbingCount; _local12++; }; _local13 = _local11.length; _local16 = _local7; _local12 = 0; while (_local12 < _local13) { _local15 = _local11[_local12]; _local14 = _local6[(_local16 + _local12)]; _local14.value = _local15.value; _local14.proxyId = _local15.proxyId; _local14.stabbingCount = _local15.stabbingCount; _local12++; }; _local11 = new Array(); _local13 = ((_local3 - _local8) - 1); _local12 = 0; while (_local12 < _local13) { _local11[_local12] = new b2Bound(); _local14 = _local11[_local12]; _local15 = _local6[((_local8 + 1) + _local12)]; _local14.value = _local15.value; _local14.proxyId = _local15.proxyId; _local14.stabbingCount = _local15.stabbingCount; _local12++; }; _local13 = _local11.length; _local16 = (_local8 - 1); _local12 = 0; while (_local12 < _local13) { _local15 = _local11[_local12]; _local14 = _local6[(_local16 + _local12)]; _local14.value = _local15.value; _local14.proxyId = _local15.proxyId; _local14.stabbingCount = _local15.stabbingCount; _local12++; }; _local13 = (_local3 - 2); _local17 = _local7; while (_local17 < _local13) { _local19 = m_proxyPool[_local6[_local17].proxyId]; if (_local6[_local17].IsLower()){ _local19.lowerBounds[_local4] = _local17; } else { _local19.upperBounds[_local4] = _local17; }; _local17++; }; _local13 = (_local8 - 1); _local18 = _local7; while (_local18 < _local13) { _local6[_local18].stabbingCount--; _local18++; }; Query([0], [0], _local9, _local10, _local6, (_local3 - 2), _local4); _local4++; }; _local5 = 0; while (_local5 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local5]); _local5++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local2.userData = null; _local2.overlapCount = b2_invalid; _local2.lowerBounds[0] = b2_invalid; _local2.lowerBounds[1] = b2_invalid; _local2.upperBounds[0] = b2_invalid; _local2.upperBounds[1] = b2_invalid; _local2.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; if (_arg1.lowerValues[_local3] > _local4[_arg2.upperBounds[_local3]].value){ return (false); }; if (_arg1.upperValues[_local3] < _local4[_arg2.lowerBounds[_local3]].value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local5:int; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; _local5 = 0; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy; _local2 = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } public function InRange(_arg1:b2AABB):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = _arg1.minVertex.x; _local3 = _arg1.minVertex.y; _local2 = (_local2 - m_worldAABB.maxVertex.x); _local3 = (_local3 - m_worldAABB.maxVertex.y); _local4 = m_worldAABB.minVertex.x; _local5 = m_worldAABB.minVertex.y; _local4 = (_local4 - _arg1.maxVertex.x); _local5 = (_local5 - _arg1.maxVertex.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:uint; var _local4:uint; var _local5:b2Bound; var _local6:b2Bound; var _local7:b2Bound; var _local8:uint; var _local9:b2Proxy; var _local10:uint; var _local11:b2Proxy; var _local12:b2BoundValues; var _local13:b2BoundValues; var _local14:Array; var _local15:uint; var _local16:uint; var _local17:uint; var _local18:uint; var _local19:int; var _local20:int; var _local21:uint; var _local22:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; _local10 = (2 * m_proxyCount); _local11 = m_proxyPool[_arg1]; _local12 = new b2BoundValues(); ComputeBounds(_local12.lowerValues, _local12.upperValues, _arg2); _local13 = new b2BoundValues(); _local3 = 0; while (_local3 < 2) { _local13.lowerValues[_local3] = m_bounds[_local3][_local11.lowerBounds[_local3]].value; _local13.upperValues[_local3] = m_bounds[_local3][_local11.upperBounds[_local3]].value; _local3++; }; _local3 = 0; while (_local3 < 2) { _local14 = m_bounds[_local3]; _local15 = _local11.lowerBounds[_local3]; _local16 = _local11.upperBounds[_local3]; _local17 = _local12.lowerValues[_local3]; _local18 = _local12.upperValues[_local3]; _local19 = (_local17 - _local14[_local15].value); _local20 = (_local18 - _local14[_local16].value); _local14[_local15].value = _local17; _local14[_local16].value = _local18; if (_local19 < 0){ _local4 = _local15; while ((((_local4 > 0)) && ((_local17 < _local14[(_local4 - 1)].value)))) { _local5 = _local14[_local4]; _local6 = _local14[(_local4 - 1)]; _local21 = _local6.proxyId; _local22 = m_proxyPool[_local6.proxyId]; _local6.stabbingCount++; if (_local6.IsUpper() == true){ if (TestOverlap(_local12, _local22)){ m_pairManager.AddBufferedPair(_arg1, _local21); }; var _local23 = _local22.upperBounds; var _local24 = _local3; var _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.stabbingCount++; } else { _local23 = _local22.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.stabbingCount--; }; _local23 = _local11.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.Swap(_local6); _local4--; }; }; if (_local20 > 0){ _local4 = _local16; while ((((_local4 < (_local10 - 1))) && ((_local14[(_local4 + 1)].value <= _local18)))) { _local5 = _local14[_local4]; _local7 = _local14[(_local4 + 1)]; _local8 = _local7.proxyId; _local9 = m_proxyPool[_local8]; _local7.stabbingCount++; if (_local7.IsLower() == true){ if (TestOverlap(_local12, _local9)){ m_pairManager.AddBufferedPair(_arg1, _local8); }; _local23 = _local9.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.stabbingCount++; } else { _local23 = _local9.upperBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.stabbingCount--; }; _local23 = _local11.upperBounds; _local24 = _local3; _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.Swap(_local7); _local4++; }; }; if (_local19 > 0){ _local4 = _local15; while ((((_local4 < (_local10 - 1))) && ((_local14[(_local4 + 1)].value <= _local17)))) { _local5 = _local14[_local4]; _local7 = _local14[(_local4 + 1)]; _local8 = _local7.proxyId; _local9 = m_proxyPool[_local8]; _local7.stabbingCount--; if (_local7.IsUpper()){ if (TestOverlap(_local13, _local9)){ m_pairManager.RemoveBufferedPair(_arg1, _local8); }; _local23 = _local9.upperBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.stabbingCount--; } else { _local23 = _local9.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.stabbingCount++; }; _local23 = _local11.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.Swap(_local7); _local4++; }; }; if (_local20 < 0){ _local4 = _local16; while ((((_local4 > 0)) && ((_local18 < _local14[(_local4 - 1)].value)))) { _local5 = _local14[_local4]; _local6 = _local14[(_local4 - 1)]; _local21 = _local6.proxyId; _local22 = m_proxyPool[_local21]; _local6.stabbingCount--; if (_local6.IsLower() == true){ if (TestOverlap(_local13, _local22)){ m_pairManager.RemoveBufferedPair(_arg1, _local21); }; _local23 = _local22.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.stabbingCount--; } else { _local23 = _local22.upperBounds; _local24 = _local3; _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.stabbingCount++; }; _local23 = _local11.upperBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.Swap(_local6); _local4--; }; }; _local3++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local4:int; var _local5:int; var _local6:int; _local4 = 0; _local5 = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); if (_arg1[_local6].value > _arg3){ _local5 = (_local6 - 1); } else { if (_arg1[_local6].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:b2PolyShape, _arg2:int, _arg3:b2PolyShape):Number{ var _local4:Array; var _local5:int; var _local6:Array; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:Number; var _local12:Number; var _local13:int; var _local14:Number; var _local15:int; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:b2Vec2; var _local22:Number; _local4 = _arg1.m_vertices; _local5 = _arg3.m_vertexCount; _local6 = _arg3.m_vertices; _local7 = _arg1.m_normals[_arg2].x; _local8 = _arg1.m_normals[_arg2].y; _local9 = _local7; _local10 = _arg1.m_R; _local7 = ((_local10.col1.x * _local9) + (_local10.col2.x * _local8)); _local8 = ((_local10.col1.y * _local9) + (_local10.col2.y * _local8)); _local11 = _local7; _local12 = _local8; _local10 = _arg3.m_R; _local9 = ((_local11 * _local10.col1.x) + (_local12 * _local10.col1.y)); _local12 = ((_local11 * _local10.col2.x) + (_local12 * _local10.col2.y)); _local11 = _local9; _local13 = 0; _local14 = Number.MAX_VALUE; _local15 = 0; while (_local15 < _local5) { _local21 = _local6[_local15]; _local22 = ((_local21.x * _local11) + (_local21.y * _local12)); if (_local22 < _local14){ _local14 = _local22; _local13 = _local15; }; _local15++; }; _local10 = _arg1.m_R; _local16 = (_arg1.m_position.x + ((_local10.col1.x * _local4[_arg2].x) + (_local10.col2.x * _local4[_arg2].y))); _local17 = (_arg1.m_position.y + ((_local10.col1.y * _local4[_arg2].x) + (_local10.col2.y * _local4[_arg2].y))); _local10 = _arg3.m_R; _local18 = (_arg3.m_position.x + ((_local10.col1.x * _local6[_local13].x) + (_local10.col2.x * _local6[_local13].y))); _local19 = (_arg3.m_position.y + ((_local10.col1.y * _local6[_local13].x) + (_local10.col2.y * _local6[_local13].y))); _local18 = (_local18 - _local16); _local19 = (_local19 - _local17); _local20 = ((_local18 * _local7) + (_local19 * _local8)); return (_local20); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local3 = _arg2.minVertex; _local4 = _arg1.maxVertex; _local5 = (_local3.x - _local4.x); _local6 = (_local3.y - _local4.y); _local3 = _arg1.minVertex; _local4 = _arg2.maxVertex; _local7 = (_local3.x - _local4.x); _local8 = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolyShape, _arg3:int, _arg4:b2PolyShape):void{ var _local5:int; var _local6:Array; var _local7:int; var _local8:Array; var _local9:int; var _local10:int; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:b2Mat22; var _local19:Number; var _local20:Number; var _local21:int; var _local22:int; var _local23:Number; var _local24:int; var _local25:ClipVertex; var _local26:int; var _local27:int; var _local28:Number; var _local29:Number; var _local30:Number; _local5 = _arg2.m_vertexCount; _local6 = _arg2.m_vertices; _local7 = _arg4.m_vertexCount; _local8 = _arg4.m_vertices; _local9 = _arg3; _local10 = (((_arg3 + 1) == _local5)) ? 0 : (_arg3 + 1); _local11 = _local6[_local10]; _local12 = _local11.x; _local13 = _local11.y; _local11 = _local6[_local9]; _local12 = (_local12 - _local11.x); _local13 = (_local13 - _local11.y); _local14 = _local12; _local12 = _local13; _local13 = -(_local14); _local15 = (1 / Math.sqrt(((_local12 * _local12) + (_local13 * _local13)))); _local12 = (_local12 * _local15); _local13 = (_local13 * _local15); _local16 = _local12; _local17 = _local13; _local14 = _local16; _local18 = _arg2.m_R; _local16 = ((_local18.col1.x * _local14) + (_local18.col2.x * _local17)); _local17 = ((_local18.col1.y * _local14) + (_local18.col2.y * _local17)); _local19 = _local16; _local20 = _local17; _local18 = _arg4.m_R; _local14 = ((_local19 * _local18.col1.x) + (_local20 * _local18.col1.y)); _local20 = ((_local19 * _local18.col2.x) + (_local20 * _local18.col2.y)); _local19 = _local14; _local23 = Number.MAX_VALUE; _local24 = 0; while (_local24 < _local7) { _local26 = _local24; _local27 = (((_local24 + 1) < _local7)) ? (_local24 + 1) : 0; _local11 = _local8[_local27]; _local28 = _local11.x; _local29 = _local11.y; _local11 = _local8[_local26]; _local28 = (_local28 - _local11.x); _local29 = (_local29 - _local11.y); _local14 = _local28; _local28 = _local29; _local29 = -(_local14); _local15 = (1 / Math.sqrt(((_local28 * _local28) + (_local29 * _local29)))); _local28 = (_local28 * _local15); _local29 = (_local29 * _local15); _local30 = ((_local28 * _local19) + (_local29 * _local20)); if (_local30 < _local23){ _local23 = _local30; _local21 = _local26; _local22 = _local27; }; _local24++; }; _local25 = _arg1[0]; _local11 = _local25.v; _local11.SetV(_local8[_local21]); _local11.MulM(_arg4.m_R); _local11.Add(_arg4.m_position); _local25.id.features.referenceFace = _arg3; _local25.id.features.incidentEdge = _local21; _local25.id.features.incidentVertex = _local21; _local25 = _arg1[1]; _local11 = _local25.v; _local11.SetV(_local8[_local22]); _local11.MulM(_arg4.m_R); _local11.Add(_arg4.m_position); _local25.id.features.referenceFace = _arg3; _local25.id.features.incidentEdge = _local21; _local25.id.features.incidentVertex = _local22; } public static function b2CollidePolyAndCircle(_arg1:b2Manifold, _arg2:b2PolyShape, _arg3:b2CircleShape, _arg4:Boolean):void{ var _local5:b2ContactPoint; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:Number; var _local12:Number; var _local13:int; var _local14:Number; var _local15:Number; var _local16:int; var _local17:int; var _local18:int; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:b2Vec2; _arg1.pointCount = 0; _local8 = (_arg3.m_position.x - _arg2.m_position.x); _local9 = (_arg3.m_position.y - _arg2.m_position.y); _local10 = _arg2.m_R; _local11 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local9 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = _local11; _local13 = 0; _local14 = -(Number.MAX_VALUE); _local15 = _arg3.m_radius; _local16 = 0; while (_local16 < _arg2.m_vertexCount) { _local25 = ((_arg2.m_normals[_local16].x * (_local8 - _arg2.m_vertices[_local16].x)) + (_arg2.m_normals[_local16].y * (_local9 - _arg2.m_vertices[_local16].y))); if (_local25 > _local15){ return; }; if (_local25 > _local14){ _local14 = _local25; _local13 = _local16; }; _local16++; }; if (_local14 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local26 = _arg2.m_normals[_local13]; _arg1.normal.x = ((_local10.col1.x * _local26.x) + (_local10.col2.x * _local26.y)); _arg1.normal.y = ((_local10.col1.y * _local26.x) + (_local10.col2.y * _local26.y)); _local5 = _arg1.points[0]; _local5.id.features.incidentEdge = _local13; _local5.id.features.incidentVertex = b2_nullFeature; _local5.id.features.referenceFace = b2_nullFeature; _local5.id.features.flip = 0; _local5.position.x = (_arg3.m_position.x - (_local15 * _arg1.normal.x)); _local5.position.y = (_arg3.m_position.y - (_local15 * _arg1.normal.y)); _local5.separation = (_local14 - _local15); return; }; _local17 = _local13; _local18 = (((_local17 + 1) < _arg2.m_vertexCount)) ? (_local17 + 1) : 0; _local19 = (_arg2.m_vertices[_local18].x - _arg2.m_vertices[_local17].x); _local20 = (_arg2.m_vertices[_local18].y - _arg2.m_vertices[_local17].y); _local21 = Math.sqrt(((_local19 * _local19) + (_local20 * _local20))); _local19 = (_local19 / _local21); _local20 = (_local20 / _local21); if (_local21 < Number.MIN_VALUE){ _local6 = (_local8 - _arg2.m_vertices[_local17].x); _local7 = (_local9 - _arg2.m_vertices[_local17].y); _local12 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); _local6 = (_local6 / _local12); _local7 = (_local7 / _local12); if (_local12 > _local15){ return; }; _arg1.pointCount = 1; _arg1.normal.Set(((_local10.col1.x * _local6) + (_local10.col2.x * _local7)), ((_local10.col1.y * _local6) + (_local10.col2.y * _local7))); _local5 = _arg1.points[0]; _local5.id.features.incidentEdge = b2_nullFeature; _local5.id.features.incidentVertex = _local17; _local5.id.features.referenceFace = b2_nullFeature; _local5.id.features.flip = 0; _local5.position.x = (_arg3.m_position.x - (_local15 * _arg1.normal.x)); _local5.position.y = (_arg3.m_position.y - (_local15 * _arg1.normal.y)); _local5.separation = (_local12 - _local15); return; }; _local22 = (((_local8 - _arg2.m_vertices[_local17].x) * _local19) + ((_local9 - _arg2.m_vertices[_local17].y) * _local20)); _local5 = _arg1.points[0]; _local5.id.features.incidentEdge = b2_nullFeature; _local5.id.features.incidentVertex = b2_nullFeature; _local5.id.features.referenceFace = b2_nullFeature; _local5.id.features.flip = 0; if (_local22 <= 0){ _local23 = _arg2.m_vertices[_local17].x; _local24 = _arg2.m_vertices[_local17].y; _local5.id.features.incidentVertex = _local17; } else { if (_local22 >= _local21){ _local23 = _arg2.m_vertices[_local18].x; _local24 = _arg2.m_vertices[_local18].y; _local5.id.features.incidentVertex = _local18; } else { _local23 = ((_local19 * _local22) + _arg2.m_vertices[_local17].x); _local24 = ((_local20 * _local22) + _arg2.m_vertices[_local17].y); _local5.id.features.incidentEdge = _local17; }; }; _local6 = (_local8 - _local23); _local7 = (_local9 - _local24); _local12 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); _local6 = (_local6 / _local12); _local7 = (_local7 / _local12); if (_local12 > _local15){ return; }; _arg1.pointCount = 1; _arg1.normal.Set(((_local10.col1.x * _local6) + (_local10.col2.x * _local7)), ((_local10.col1.y * _local6) + (_local10.col2.y * _local7))); _local5.position.x = (_arg3.m_position.x - (_local15 * _arg1.normal.x)); _local5.position.y = (_arg3.m_position.y - (_local15 * _arg1.normal.y)); _local5.separation = (_local12 - _local15); } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolyShape, _arg3:b2PolyShape, _arg4:Boolean):Number{ var _local5:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:int; var _local11:Number; var _local12:int; var _local13:Number; var _local14:int; var _local15:Number; var _local16:int; var _local17:Number; var _local18:int; var _local19:Number; var _local20:int; var _local21:Number; _local5 = _arg2.m_vertexCount; _local6 = (_arg3.m_position.x - _arg2.m_position.x); _local7 = (_arg3.m_position.y - _arg2.m_position.y); _local8 = ((_local6 * _arg2.m_R.col1.x) + (_local7 * _arg2.m_R.col1.y)); _local9 = ((_local6 * _arg2.m_R.col2.x) + (_local7 * _arg2.m_R.col2.y)); _local10 = 0; _local11 = -(Number.MAX_VALUE); _local12 = 0; while (_local12 < _local5) { _local21 = ((_arg2.m_normals[_local12].x * _local8) + (_arg2.m_normals[_local12].y * _local9)); if (_local21 > _local11){ _local11 = _local21; _local10 = _local12; }; _local12++; }; _local13 = EdgeSeparation(_arg2, _local10, _arg3); if ((((_local13 > 0)) && ((_arg4 == false)))){ return (_local13); }; _local14 = (((_local10 - 1) >= 0)) ? (_local10 - 1) : (_local5 - 1); _local15 = EdgeSeparation(_arg2, _local14, _arg3); if ((((_local15 > 0)) && ((_arg4 == false)))){ return (_local15); }; _local16 = (((_local10 + 1) < _local5)) ? (_local10 + 1) : 0; _local17 = EdgeSeparation(_arg2, _local16, _arg3); if ((((_local17 > 0)) && ((_arg4 == false)))){ return (_local17); }; if ((((_local15 > _local13)) && ((_local15 > _local17)))){ _local20 = -1; _local18 = _local14; _local19 = _local15; } else { if (_local17 > _local13){ _local20 = 1; _local18 = _local16; _local19 = _local17; } else { _arg1[0] = _local10; return (_local13); }; }; while (true) { if (_local20 == -1){ _local10 = (((_local18 - 1) >= 0)) ? (_local18 - 1) : (_local5 - 1); } else { _local10 = (((_local18 + 1) < _local5)) ? (_local18 + 1) : 0; }; _local13 = EdgeSeparation(_arg2, _local10, _arg3); if ((((_local13 > 0)) && ((_arg4 == false)))){ return (_local13); }; if (_local13 > _local19){ _local18 = _local10; _local19 = _local13; } else { break; }; }; _arg1[0] = _local18; return (_local19); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:int; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; _local5 = 0; _local6 = _arg2[0].v; _local7 = _arg2[1].v; _local8 = (b2Math.b2Dot(_arg3, _arg2[0].v) - _arg4); _local9 = (b2Math.b2Dot(_arg3, _arg2[1].v) - _arg4); if (_local8 <= 0){ var _temp1 = _local5; _local5 = (_local5 + 1); var _local12 = _temp1; _arg1[_local12] = _arg2[0]; }; if (_local9 <= 0){ var _temp2 = _local5; _local5 = (_local5 + 1); _local12 = _temp2; _arg1[_local12] = _arg2[1]; }; if ((_local8 * _local9) < 0){ _local10 = (_local8 / (_local8 - _local9)); _local11 = _arg1[_local5].v; _local11.x = (_local6.x + (_local10 * (_local7.x - _local6.x))); _local11.y = (_local6.y + (_local10 * (_local7.y - _local6.y))); if (_local8 > 0){ _arg1[_local5].id = _arg2[0].id; } else { _arg1[_local5].id = _arg2[1].id; }; _local5++; }; return (_local5); } public static function b2CollidePoly(_arg1:b2Manifold, _arg2:b2PolyShape, _arg3:b2PolyShape, _arg4:Boolean):void{ var _local5:int; var _local6:Array; var _local7:Number; var _local8:int; var _local9:Array; var _local10:Number; var _local11:b2PolyShape; var _local12:b2PolyShape; var _local13:int; var _local14:int; var _local15:Number; var _local16:Number; var _local17:Array; var _local18:int; var _local19:Array; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:b2Mat22; 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:Array; var _local39:Array; var _local40:int; var _local41:int; var _local42:int; var _local43:b2Vec2; var _local44:Number; var _local45:b2ContactPoint; _arg1.pointCount = 0; _local5 = 0; _local6 = [_local5]; _local7 = FindMaxSeparation(_local6, _arg2, _arg3, _arg4); _local5 = _local6[0]; if ((((_local7 > 0)) && ((_arg4 == false)))){ return; }; _local8 = 0; _local9 = [_local8]; _local10 = FindMaxSeparation(_local9, _arg3, _arg2, _arg4); _local8 = _local9[0]; if ((((_local10 > 0)) && ((_arg4 == false)))){ return; }; _local15 = 0.98; _local16 = 0.001; if (_local10 > ((_local15 * _local7) + _local16)){ _local11 = _arg3; _local12 = _arg2; _local13 = _local8; _local14 = 1; } else { _local11 = _arg2; _local12 = _arg3; _local13 = _local5; _local14 = 0; }; _local17 = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local17, _local11, _local13, _local12); _local18 = _local11.m_vertexCount; _local19 = _local11.m_vertices; _local20 = _local19[_local13]; _local21 = (((_local13 + 1) < _local18)) ? _local19[(_local13 + 1)] : _local19[0]; _local22 = (_local21.x - _local20.x); _local23 = (_local21.y - _local20.y); _local24 = (_local21.x - _local20.x); _local25 = (_local21.y - _local20.y); _local26 = _local24; _local27 = _local11.m_R; _local24 = ((_local27.col1.x * _local26) + (_local27.col2.x * _local25)); _local25 = ((_local27.col1.y * _local26) + (_local27.col2.y * _local25)); _local28 = (1 / Math.sqrt(((_local24 * _local24) + (_local25 * _local25)))); _local24 = (_local24 * _local28); _local25 = (_local25 * _local28); _local29 = _local24; _local30 = _local25; _local26 = _local29; _local29 = _local30; _local30 = -(_local26); _local31 = _local20.x; _local32 = _local20.y; _local26 = _local31; _local27 = _local11.m_R; _local31 = ((_local27.col1.x * _local26) + (_local27.col2.x * _local32)); _local32 = ((_local27.col1.y * _local26) + (_local27.col2.y * _local32)); _local31 = (_local31 + _local11.m_position.x); _local32 = (_local32 + _local11.m_position.y); _local33 = _local21.x; _local34 = _local21.y; _local26 = _local33; _local27 = _local11.m_R; _local33 = ((_local27.col1.x * _local26) + (_local27.col2.x * _local34)); _local34 = ((_local27.col1.y * _local26) + (_local27.col2.y * _local34)); _local33 = (_local33 + _local11.m_position.x); _local34 = (_local34 + _local11.m_position.y); _local35 = ((_local29 * _local31) + (_local30 * _local32)); _local36 = -(((_local24 * _local31) + (_local25 * _local32))); _local37 = ((_local24 * _local33) + (_local25 * _local34)); _local38 = [new ClipVertex(), new ClipVertex()]; _local39 = [new ClipVertex(), new ClipVertex()]; b2CollidePolyTempVec.Set(-(_local24), -(_local25)); _local40 = ClipSegmentToLine(_local38, _local17, b2CollidePolyTempVec, _local36); if (_local40 < 2){ return; }; b2CollidePolyTempVec.Set(_local24, _local25); _local40 = ClipSegmentToLine(_local39, _local38, b2CollidePolyTempVec, _local37); if (_local40 < 2){ return; }; if (_local14){ _arg1.normal.Set(-(_local29), -(_local30)); } else { _arg1.normal.Set(_local29, _local30); }; _local41 = 0; _local42 = 0; while (_local42 < b2Settings.b2_maxManifoldPoints) { _local43 = _local39[_local42].v; _local44 = (((_local29 * _local43.x) + (_local30 * _local43.y)) - _local35); if ((((_local44 <= 0)) || ((_arg4 == true)))){ _local45 = _arg1.points[_local41]; _local45.separation = _local44; _local45.position.SetV(_local39[_local42].v); _local45.id.Set(_local39[_local42].id); _local45.id.features.flip = _local14; _local41++; }; _local42++; }; _arg1.pointCount = _local41; } public static function b2CollideCircle(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2CircleShape, _arg4:Boolean):void{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2ContactPoint; var _local11:Number; var _local12:Number; _arg1.pointCount = 0; _local5 = (_arg3.m_position.x - _arg2.m_position.x); _local6 = (_arg3.m_position.y - _arg2.m_position.y); _local7 = ((_local5 * _local5) + (_local6 * _local6)); _local8 = (_arg2.m_radius + _arg3.m_radius); if ((((_local7 > (_local8 * _local8))) && ((_arg4 == false)))){ return; }; if (_local7 < Number.MIN_VALUE){ _local9 = -(_local8); _arg1.normal.Set(0, 1); } else { _local11 = Math.sqrt(_local7); _local9 = (_local11 - _local8); _local12 = (1 / _local11); _arg1.normal.x = (_local12 * _local5); _arg1.normal.y = (_local12 * _local6); }; _arg1.pointCount = 1; _local10 = _arg1.points[0]; _local10.id.key = 0; _local10.separation = _local9; _local10.position.x = (_arg3.m_position.x - (_arg3.m_radius * _arg1.normal.x)); _local10.position.y = (_arg3.m_position.y - (_arg3.m_radius * _arg1.normal.y)); } } }//package Box2D.Collision
Section 15
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var _key:uint; public var features:Features; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID; _local1 = new b2ContactID(); _local1.key = key; return (_local1); } public function get key():uint{ return (_key); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceFace = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } } }//package Box2D.Collision
Section 16
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ContactPoint { public var separation:Number; public var position:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ContactPoint(){ position = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 17
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var points:Array; public var pointCount:int; public var normal:b2Vec2; public function b2Manifold(){ var _local1:int; super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactPoint(); _local1++; }; normal = new b2Vec2(); } } }//package Box2D.Collision
Section 18
//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 19
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { public class b2Pair { public var userData;// = null public var proxyId1:uint; public var proxyId2:uint; public var status:uint; public var next:uint; public static var e_pairFinal:uint = 4; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairRemoved:uint = 2; public static var b2_nullPair:uint = 0xFFFF; public static var e_pairBuffered:uint = 1; public static var b2_nullProxy:uint = 0xFFFF; public static var b2_tableCapacity:int = 8192; public function b2Pair(){ userData = null; super(); } public function SetBuffered():void{ status = (status | e_pairBuffered); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } } }//package Box2D.Collision
Section 20
//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 21
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PairManager { public var m_pairCount:int; public var m_pairBuffer:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_hashTable:Array; public var m_broadPhase:b2BroadPhase; public var m_freePair:uint; public function b2PairManager(){ var _local1:uint; super(); m_hashTable = new Array(b2Pair.b2_tableCapacity); _local1 = 0; while (_local1 < b2Pair.b2_tableCapacity) { m_hashTable[_local1] = b2Pair.b2_nullPair; _local1++; }; m_pairs = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1] = new b2Pair(); _local1++; }; m_pairBuffer = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairBuffer[_local1] = new b2BufferedPair(); _local1++; }; _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy; m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy; m_pairs[_local1].userData = null; m_pairs[_local1].status = 0; m_pairs[_local1].next = (_local1 + 1); _local1++; }; m_pairs[(b2Settings.b2_maxPairs - 1)].next = b2Pair.b2_nullPair; m_pairCount = 0; } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:uint; _local4 = m_hashTable[_arg3]; while (((!((_local4 == b2Pair.b2_nullPair))) && ((Equals(m_pairs[_local4], _arg1, _arg2) == false)))) { _local4 = m_pairs[_local4].next; }; if (_local4 == b2Pair.b2_nullPair){ return (null); }; return (m_pairs[_local4]); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:int; var _local2:int; var _local3:Array; var _local4:b2Pair; var _local5:b2Proxy; var _local6:b2Proxy; _local2 = 0; _local3 = m_broadPhase.m_proxyPool; _local1 = 0; while (_local1 < m_pairBufferCount) { _local4 = Find(m_pairBuffer[_local1].proxyId1, m_pairBuffer[_local1].proxyId2); _local4.ClearBuffered(); _local5 = _local3[_local4.proxyId1]; _local6 = _local3[_local4.proxyId2]; if (_local4.IsRemoved()){ if (_local4.IsFinal() == true){ m_callback.PairRemoved(_local5.userData, _local6.userData, _local4.userData); }; m_pairBuffer[_local2].proxyId1 = _local4.proxyId1; m_pairBuffer[_local2].proxyId2 = _local4.proxyId2; _local2++; } else { if (_local4.IsFinal() == false){ _local4.userData = m_callback.PairAdded(_local5.userData, _local6.userData); _local4.SetFinal(); }; }; _local1++; }; _local1 = 0; while (_local1 < _local2) { RemovePair(m_pairBuffer[_local1].proxyId1, m_pairBuffer[_local1].proxyId2); _local1++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2Pair; _local3 = Find(_arg1, _arg2); if (_local3 == null){ return; }; if (_local3.IsBuffered() == false){ _local3.SetBuffered(); m_pairBuffer[m_pairBufferCount].proxyId1 = _local3.proxyId1; m_pairBuffer[m_pairBufferCount].proxyId2 = _local3.proxyId2; m_pairBufferCount++; }; _local3.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:uint; var _local4:uint; var _local5:b2Pair; var _local6:uint; var _local7:uint; var _local8:b2Pair; var _local9:*; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local4 = m_hashTable[_local3]; _local5 = null; while (_local4 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local4], _arg1, _arg2)){ _local7 = _local4; if (_local5){ _local5.next = m_pairs[_local4].next; } else { m_hashTable[_local3] = m_pairs[_local4].next; }; _local8 = m_pairs[_local7]; _local9 = _local8.userData; _local8.next = m_freePair; _local8.proxyId1 = b2Pair.b2_nullProxy; _local8.proxyId2 = b2Pair.b2_nullProxy; _local8.userData = null; _local8.status = 0; m_freePair = _local7; m_pairCount--; return (_local9); } else { _local5 = m_pairs[_local4]; _local4 = _local5.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:b2Pair; _local3 = AddPair(_arg1, _arg2); if (_local3.IsBuffered() == false){ _local3.SetBuffered(); m_pairBuffer[m_pairBufferCount].proxyId1 = _local3.proxyId1; m_pairBuffer[m_pairBufferCount].proxyId2 = _local3.proxyId2; m_pairBufferCount++; }; _local3.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:b2Pair; var _local5:uint; var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; _local5 = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function ValidateTable():void{ } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } public static function Hash(_arg1:uint, _arg2:uint):uint{ var _local3:uint; _local3 = (((_arg2 << 16) & 4294901760) | _arg1); _local3 = (~(_local3) + ((_local3 << 15) & 4294934528)); _local3 = (_local3 ^ ((_local3 >> 12) & 1048575)); _local3 = (_local3 + ((_local3 << 2) & 4294967292)); _local3 = (_local3 ^ ((_local3 >> 4) & 268435455)); _local3 = (_local3 * 2057); _local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF)); return (_local3); } public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{ return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3)))); } } }//package Box2D.Collision
Section 22
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var lowerBounds:Array; public var upperBounds:Array; public var userData;// = null public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; userData = null; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } } }//package Box2D.Collision
Section 23
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var v:b2Vec2; public var id:b2ContactID; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 24
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceFace:int; public var _incidentEdge:int; public var _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceFace():int{ return (_referenceFace); } 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 referenceFace(_arg1:int):void{ _referenceFace = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceFace & 0xFF)); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.Collision
Section 25
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function Set(_arg1:Number):void{ var _local2:Number; var _local3:Number; _local2 = Math.cos(_arg1); _local3 = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = col1.x; _local3 = col2.x; _local4 = col1.y; _local5 = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = col1.x; _local5 = col2.x; _local6 = col1.y; _local7 = col2.y; _local8 = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 26
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:*; _local3 = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22; _local2 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2; _local2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2Mat22; _local3 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); _local4 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); _local5 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean; _local2 = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } }//package Box2D.Common.Math
Section 27
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var x:Number; public var y:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function 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 Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function SetZero():void{ x = 0; y = 0; } public function CrossVF(_arg1:Number):void{ var _local2:Number; _local2 = 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 Abs():void{ x = Math.abs(x); y = Math.abs(y); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function MulM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function Normalize():Number{ var _local1:Number; var _local2:Number; _local1 = Length(); if (_local1 < Number.MIN_VALUE){ return (0); }; _local2 = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function CrossFV(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 28
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const b2_lengthUnitsPerMeter:Number = 30; public static const b2_angularSleepTolerance:Number = 0.0111111111111111; public static const b2_linearSleepTolerance:Number = 0.3; public static const b2_angularSlop:Number = 0.0349065850398866; public static const b2_linearSlop:Number = 0.15; public static const b2_pi:Number = 3.14159265358979; public static const b2_maxShapesPerBody:int = 64; public static const b2_maxProxies:int = 0x0400; public static const b2_velocityThreshold:Number = 30; public static const b2_timeToSleep:Number = 0.5; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_maxPairs:int = 8192; public static const b2_maxManifoldPoints:int = 2; public static const b2_massUnitsPerKilogram:Number = 1; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const USHRT_MAX:int = 0xFFFF; public static const b2_maxLinearCorrection:Number = 6; public static const b2_maxPolyVertices:int = 8; public static const b2_timeUnitsPerSecond:Number = 1; public static function b2Assert(_arg1:Boolean):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 29
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { public var m_manifold:Array; public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifold = [new b2Manifold()]; super(_arg1, _arg2); m_manifold[0].pointCount = 0; m_manifold[0].points[0].normalImpulse = 0; m_manifold[0].points[0].tangentImpulse = 0; } override public function GetManifolds():Array{ return (m_manifold); } override public function Evaluate():void{ b2Collision.b2CollideCircle(m_manifold[0], (m_shape1 as b2CircleShape), (m_shape2 as b2CircleShape), false); if (m_manifold[0].pointCount > 0){ m_manifoldCount = 1; } else { m_manifoldCount = 0; }; } 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 30
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Contact { public var m_shape1:b2Shape; public var m_shape2:b2Shape; public var m_prev:b2Contact; public var m_next:b2Contact; public var m_friction:Number; public var m_manifoldCount:int; public var m_node1:b2ContactNode; public var m_node2:b2ContactNode; public var m_restitution:Number; public var m_flags:uint; public static var s_registers:Array; public static var s_initialized:Boolean = false; public static var e_islandFlag:uint = 1; public static var e_destroyFlag:uint = 2; public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){ m_node1 = new b2ContactNode(); m_node2 = new b2ContactNode(); super(); m_flags = 0; if (((!(_arg1)) || (!(_arg2)))){ m_shape1 = null; m_shape2 = null; return; }; m_shape1 = _arg1; m_shape2 = _arg2; m_manifoldCount = 0; m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction)); m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution); m_prev = null; m_next = null; m_node1.contact = null; m_node1.prev = null; m_node1.next = null; m_node1.other = null; m_node2.contact = null; m_node2.prev = null; m_node2.next = null; m_node2.other = null; } public function GetShape1():b2Shape{ return (m_shape1); } public function GetNext():b2Contact{ return (m_next); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function GetManifolds():Array{ return (null); } public function Evaluate():void{ } public static function InitializeRegisters():void{ var _local1:int; var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); _local1 = 0; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polyShape, b2Shape.e_circleShape); AddType(b2PolyContact.Create, b2PolyContact.Destroy, b2Shape.e_polyShape, b2Shape.e_polyShape); } public static function Destroy(_arg1:b2Contact, _arg2):void{ var _local3:int; var _local4:int; var _local5:*; if (_arg1.GetManifoldCount() > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; _local3 = _arg1.m_shape1.m_type; _local4 = _arg1.m_shape2.m_type; _local5 = s_registers[_local3][_local4].destroyFcn; _local5(_arg1, _arg2); } public static function AddType(_arg1, _arg2, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local4:int; var _local5:int; var _local6:*; var _local7:b2Contact; var _local8:int; var _local9:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; _local4 = _arg1.m_type; _local5 = _arg2.m_type; _local6 = s_registers[_local4][_local5].createFcn; if (_local6){ if (s_registers[_local4][_local5].primary){ return (_local6(_arg1, _arg2, _arg3)); }; _local7 = _local6(_arg2, _arg1, _arg3); _local8 = 0; while (_local8 < _local7.GetManifoldCount()) { _local9 = _local7.GetManifolds()[_local8]; _local7.GetManifolds()[_local8].normal = _local9.normal.Negative(); _local8++; }; return (_local7); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 31
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var normal:b2Vec2; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ var _local1:int; normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 32
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var separation:Number; public var positionImpulse:Number; public var normalImpulse:Number; public var tangentImpulse:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var tangentMass:Number; public var normalMass:Number; public var velocityBias:Number; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 33
//b2ContactNode (Box2D.Dynamics.Contacts.b2ContactNode) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactNode { public var next:b2ContactNode; public var other:b2Body; public var contact:b2Contact; public var prev:b2ContactNode; } }//package Box2D.Dynamics.Contacts
Section 34
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn; public var destroyFcn; } }//package Box2D.Dynamics.Contacts
Section 35
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactSolver { public var m_constraintCount:int; public var m_constraints:Array; public var m_allocator; public function b2ContactSolver(_arg1:Array, _arg2:int, _arg3){ var _local4:int; var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; var _local8:b2Contact; var _local9:b2Body; var _local10:b2Body; var _local11:int; var _local12:Array; 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:int; var _local22:b2Manifold; var _local23:Number; var _local24:Number; var _local25:b2ContactConstraint; var _local26:uint; var _local27:b2ContactPoint; var _local28:b2ContactConstraintPoint; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; m_constraints = new Array(); super(); m_allocator = _arg3; m_constraintCount = 0; _local4 = 0; while (_local4 < _arg2) { m_constraintCount = (m_constraintCount + _arg1[_local4].GetManifoldCount()); _local4++; }; _local4 = 0; while (_local4 < m_constraintCount) { m_constraints[_local4] = new b2ContactConstraint(); _local4++; }; _local7 = 0; _local4 = 0; while (_local4 < _arg2) { _local8 = _arg1[_local4]; _local9 = _local8.m_shape1.m_body; _local10 = _local8.m_shape2.m_body; _local11 = _local8.GetManifoldCount(); _local12 = _local8.GetManifolds(); _local13 = _local8.m_friction; _local14 = _local8.m_restitution; _local15 = _local9.m_linearVelocity.x; _local16 = _local9.m_linearVelocity.y; _local17 = _local10.m_linearVelocity.x; _local18 = _local10.m_linearVelocity.y; _local19 = _local9.m_angularVelocity; _local20 = _local10.m_angularVelocity; _local21 = 0; while (_local21 < _local11) { _local22 = _local12[_local21]; _local23 = _local22.normal.x; _local24 = _local22.normal.y; _local25 = m_constraints[_local7]; _local25.body1 = _local9; _local25.body2 = _local10; _local25.manifold = _local22; _local25.normal.x = _local23; _local25.normal.y = _local24; _local25.pointCount = _local22.pointCount; _local25.friction = _local13; _local25.restitution = _local14; _local26 = 0; while (_local26 < _local25.pointCount) { _local27 = _local22.points[_local26]; _local28 = _local25.points[_local26]; _local28.normalImpulse = _local27.normalImpulse; _local28.tangentImpulse = _local27.tangentImpulse; _local28.separation = _local27.separation; _local29 = (_local27.position.x - _local9.m_position.x); _local30 = (_local27.position.y - _local9.m_position.y); _local31 = (_local27.position.x - _local10.m_position.x); _local32 = (_local27.position.y - _local10.m_position.y); _local5 = _local28.localAnchor1; _local6 = _local9.m_R; _local5.x = ((_local29 * _local6.col1.x) + (_local30 * _local6.col1.y)); _local5.y = ((_local29 * _local6.col2.x) + (_local30 * _local6.col2.y)); _local5 = _local28.localAnchor2; _local6 = _local10.m_R; _local5.x = ((_local31 * _local6.col1.x) + (_local32 * _local6.col1.y)); _local5.y = ((_local31 * _local6.col2.x) + (_local32 * _local6.col2.y)); _local33 = ((_local29 * _local29) + (_local30 * _local30)); _local34 = ((_local31 * _local31) + (_local32 * _local32)); _local35 = ((_local29 * _local23) + (_local30 * _local24)); _local36 = ((_local31 * _local23) + (_local32 * _local24)); _local37 = (_local9.m_invMass + _local10.m_invMass); _local37 = (_local37 + ((_local9.m_invI * (_local33 - (_local35 * _local35))) + (_local10.m_invI * (_local34 - (_local36 * _local36))))); _local28.normalMass = (1 / _local37); _local38 = _local24; _local39 = -(_local23); _local40 = ((_local29 * _local38) + (_local30 * _local39)); _local41 = ((_local31 * _local38) + (_local32 * _local39)); _local42 = (_local9.m_invMass + _local10.m_invMass); _local42 = (_local42 + ((_local9.m_invI * (_local33 - (_local40 * _local40))) + (_local10.m_invI * (_local34 - (_local41 * _local41))))); _local28.tangentMass = (1 / _local42); _local28.velocityBias = 0; if (_local28.separation > 0){ _local28.velocityBias = (-60 * _local28.separation); }; _local43 = (((_local17 + (-(_local20) * _local32)) - _local15) - (-(_local19) * _local30)); _local44 = (((_local18 + (_local20 * _local31)) - _local16) - (_local19 * _local29)); _local45 = ((_local25.normal.x * _local43) + (_local25.normal.y * _local44)); if (_local45 < -(b2Settings.b2_velocityThreshold)){ _local28.velocityBias = (_local28.velocityBias + (-(_local25.restitution) * _local45)); }; _local26++; }; _local7++; _local21++; }; _local4++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:int; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:int; var _local22:int; var _local23:b2ContactConstraintPoint; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; _local2 = 0; _local5 = 0; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_position; _local10 = _local7.m_rotation; _local11 = _local8.m_position; _local12 = _local8.m_rotation; _local13 = _local7.m_invMass; _local14 = _local7.m_invI; _local15 = _local8.m_invMass; _local16 = _local8.m_invI; _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local18; _local20 = -(_local17); _local21 = _local6.pointCount; _local22 = 0; while (_local22 < _local21) { _local23 = _local6.points[_local22]; _local3 = _local7.m_R; _local4 = _local23.localAnchor1; _local24 = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local25 = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local3 = _local8.m_R; _local4 = _local23.localAnchor2; _local26 = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local27 = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local28 = (_local9.x + _local24); _local29 = (_local9.y + _local25); _local30 = (_local11.x + _local26); _local31 = (_local11.y + _local27); _local32 = (_local30 - _local28); _local33 = (_local31 - _local29); _local34 = (((_local32 * _local17) + (_local33 * _local18)) + _local23.separation); _local2 = b2Math.b2Min(_local2, _local34); _local35 = (_arg1 * b2Math.b2Clamp((_local34 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local36 = (-(_local23.normalMass) * _local35); _local37 = _local23.positionImpulse; _local23.positionImpulse = b2Math.b2Max((_local37 + _local36), 0); _local36 = (_local23.positionImpulse - _local37); _local38 = (_local36 * _local17); _local39 = (_local36 * _local18); _local9.x = (_local9.x - (_local13 * _local38)); _local9.y = (_local9.y - (_local13 * _local39)); _local10 = (_local10 - (_local14 * ((_local24 * _local39) - (_local25 * _local38)))); _local7.m_R.Set(_local10); _local11.x = (_local11.x + (_local15 * _local38)); _local11.y = (_local11.y + (_local15 * _local39)); _local12 = (_local12 + (_local16 * ((_local26 * _local39) - (_local27 * _local38)))); _local8.m_R.Set(_local12); _local22++; }; _local7.m_rotation = _local10; _local8.m_rotation = _local12; _local5++; }; return ((_local2 >= -(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:b2Mat22; var _local14:b2Vec2; var _local15:int; var _local16:b2ContactConstraint; var _local17:b2Body; var _local18:b2Body; var _local19:Number; var _local20:b2Vec2; var _local21:Number; var _local22:b2Vec2; 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:int; var _local32:Number; var _local33:Number; var _local34:Number; _local15 = 0; while (_local15 < m_constraintCount) { _local16 = m_constraints[_local15]; _local17 = _local16.body1; _local18 = _local16.body2; _local19 = _local17.m_angularVelocity; _local20 = _local17.m_linearVelocity; _local21 = _local18.m_angularVelocity; _local22 = _local18.m_linearVelocity; _local23 = _local17.m_invMass; _local24 = _local17.m_invI; _local25 = _local18.m_invMass; _local26 = _local18.m_invI; _local27 = _local16.normal.x; _local28 = _local16.normal.y; _local29 = _local28; _local30 = -(_local27); _local31 = _local16.pointCount; _local1 = 0; while (_local1 < _local31) { _local2 = _local16.points[_local1]; _local13 = _local17.m_R; _local14 = _local2.localAnchor1; _local3 = ((_local13.col1.x * _local14.x) + (_local13.col2.x * _local14.y)); _local4 = ((_local13.col1.y * _local14.x) + (_local13.col2.y * _local14.y)); _local13 = _local18.m_R; _local14 = _local2.localAnchor2; _local5 = ((_local13.col1.x * _local14.x) + (_local13.col2.x * _local14.y)); _local6 = ((_local13.col1.y * _local14.x) + (_local13.col2.y * _local14.y)); _local7 = (((_local22.x + (-(_local21) * _local6)) - _local20.x) - (-(_local19) * _local4)); _local8 = (((_local22.y + (_local21 * _local5)) - _local20.y) - (_local19 * _local3)); _local32 = ((_local7 * _local27) + (_local8 * _local28)); _local9 = (-(_local2.normalMass) * (_local32 - _local2.velocityBias)); _local10 = b2Math.b2Max((_local2.normalImpulse + _local9), 0); _local9 = (_local10 - _local2.normalImpulse); _local11 = (_local9 * _local27); _local12 = (_local9 * _local28); _local20.x = (_local20.x - (_local23 * _local11)); _local20.y = (_local20.y - (_local23 * _local12)); _local19 = (_local19 - (_local24 * ((_local3 * _local12) - (_local4 * _local11)))); _local22.x = (_local22.x + (_local25 * _local11)); _local22.y = (_local22.y + (_local25 * _local12)); _local21 = (_local21 + (_local26 * ((_local5 * _local12) - (_local6 * _local11)))); _local2.normalImpulse = _local10; _local7 = (((_local22.x + (-(_local21) * _local6)) - _local20.x) - (-(_local19) * _local4)); _local8 = (((_local22.y + (_local21 * _local5)) - _local20.y) - (_local19 * _local3)); _local33 = ((_local7 * _local29) + (_local8 * _local30)); _local9 = (_local2.tangentMass * -(_local33)); _local34 = (_local16.friction * _local2.normalImpulse); _local10 = b2Math.b2Clamp((_local2.tangentImpulse + _local9), -(_local34), _local34); _local9 = (_local10 - _local2.tangentImpulse); _local11 = (_local9 * _local29); _local12 = (_local9 * _local30); _local20.x = (_local20.x - (_local23 * _local11)); _local20.y = (_local20.y - (_local23 * _local12)); _local19 = (_local19 - (_local24 * ((_local3 * _local12) - (_local4 * _local11)))); _local22.x = (_local22.x + (_local25 * _local11)); _local22.y = (_local22.y + (_local25 * _local12)); _local21 = (_local21 + (_local26 * ((_local5 * _local12) - (_local6 * _local11)))); _local2.tangentImpulse = _local10; _local1++; }; _local17.m_angularVelocity = _local19; _local18.m_angularVelocity = _local21; _local15++; }; } public function PreSolve():void{ var _local1:b2Vec2; var _local2:b2Vec2; var _local3:b2Mat22; var _local4:int; var _local5:b2ContactConstraint; var _local6:b2Body; var _local7:b2Body; 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:int; var _local17:int; var _local18:b2ContactConstraintPoint; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2ContactConstraintPoint; _local4 = 0; while (_local4 < m_constraintCount) { _local5 = m_constraints[_local4]; _local6 = _local5.body1; _local7 = _local5.body2; _local8 = _local6.m_invMass; _local9 = _local6.m_invI; _local10 = _local7.m_invMass; _local11 = _local7.m_invI; _local12 = _local5.normal.x; _local13 = _local5.normal.y; _local14 = _local13; _local15 = -(_local12); if (b2World.s_enableWarmStarting){ _local17 = _local5.pointCount; _local16 = 0; while (_local16 < _local17) { _local18 = _local5.points[_local16]; _local19 = ((_local18.normalImpulse * _local12) + (_local18.tangentImpulse * _local14)); _local20 = ((_local18.normalImpulse * _local13) + (_local18.tangentImpulse * _local15)); _local3 = _local6.m_R; _local1 = _local18.localAnchor1; _local21 = ((_local3.col1.x * _local1.x) + (_local3.col2.x * _local1.y)); _local22 = ((_local3.col1.y * _local1.x) + (_local3.col2.y * _local1.y)); _local3 = _local7.m_R; _local1 = _local18.localAnchor2; _local23 = ((_local3.col1.x * _local1.x) + (_local3.col2.x * _local1.y)); _local24 = ((_local3.col1.y * _local1.x) + (_local3.col2.y * _local1.y)); _local6.m_angularVelocity = (_local6.m_angularVelocity - (_local9 * ((_local21 * _local20) - (_local22 * _local19)))); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x - (_local8 * _local19)); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y - (_local8 * _local20)); _local7.m_angularVelocity = (_local7.m_angularVelocity + (_local11 * ((_local23 * _local20) - (_local24 * _local19)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x + (_local10 * _local19)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y + (_local10 * _local20)); _local18.positionImpulse = 0; _local16++; }; } else { _local17 = _local5.pointCount; _local16 = 0; while (_local16 < _local17) { _local25 = _local5.points[_local16]; _local25.normalImpulse = 0; _local25.tangentImpulse = 0; _local25.positionImpulse = 0; _local16++; }; }; _local4++; }; } public function PostSolve():void{ var _local1:int; var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ContactPoint; var _local6:b2ContactConstraintPoint; _local1 = 0; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 36
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { public class b2NullContact extends b2Contact { public function b2NullContact():void{ } override public function GetManifolds():Array{ return (null); } override public function Evaluate():void{ } } }//package Box2D.Dynamics.Contacts
Section 37
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { public var m_manifold:Array; public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifold = [new b2Manifold()]; super(_arg1, _arg2); b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polyShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold[0].pointCount = 0; m_manifold[0].points[0].normalImpulse = 0; m_manifold[0].points[0].tangentImpulse = 0; } override public function GetManifolds():Array{ return (m_manifold); } override public function Evaluate():void{ b2Collision.b2CollidePolyAndCircle(m_manifold[0], (m_shape1 as b2PolyShape), (m_shape2 as b2CircleShape), false); if (m_manifold[0].pointCount > 0){ m_manifoldCount = 1; } else { m_manifoldCount = 0; }; } 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 38
//b2PolyContact (Box2D.Dynamics.Contacts.b2PolyContact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyContact extends b2Contact { public var m_manifold:Array; private var m0:b2Manifold; public function b2PolyContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifold = [new b2Manifold()]; super(_arg1, _arg2); m_manifold[0].pointCount = 0; } override public function GetManifolds():Array{ return (m_manifold); } override public function Evaluate():void{ var _local1:b2Manifold; var _local2:Array; var _local3:int; var _local4:b2ContactPoint; var _local5:b2ContactPoint; var _local6:Array; var _local7:int; var _local8:b2ContactPoint; var _local9:uint; var _local10:int; var _local11:b2ContactPoint; var _local12:b2ContactID; _local1 = m_manifold[0]; _local2 = m0.points; _local3 = 0; while (_local3 < _local1.pointCount) { _local4 = _local2[_local3]; _local5 = _local1.points[_local3]; _local4.normalImpulse = _local5.normalImpulse; _local4.tangentImpulse = _local5.tangentImpulse; _local4.id = _local5.id.Copy(); _local3++; }; m0.pointCount = _local1.pointCount; b2Collision.b2CollidePoly(_local1, (m_shape1 as b2PolyShape), (m_shape2 as b2PolyShape), false); if (_local1.pointCount > 0){ _local6 = [false, false]; _local7 = 0; while (_local7 < _local1.pointCount) { _local8 = _local1.points[_local7]; _local8.normalImpulse = 0; _local8.tangentImpulse = 0; _local9 = _local8.id.key; _local10 = 0; while (_local10 < m0.pointCount) { if (_local6[_local10] == true){ } else { _local11 = m0.points[_local10]; _local12 = _local11.id; if (_local12.key == _local9){ _local6[_local10] = true; _local8.normalImpulse = _local11.normalImpulse; _local8.tangentImpulse = _local11.tangentImpulse; break; }; }; _local10++; }; _local7++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 39
//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_localAnchor2:b2Vec2; public var m_mass:Number; public var m_localAnchor1:b2Vec2; public var m_u:b2Vec2; public var m_impulse: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); _local2 = m_body1.m_R; _local3 = (_arg1.anchorPoint1.x - m_body1.m_position.x); _local4 = (_arg1.anchorPoint1.y - m_body1.m_position.y); m_localAnchor1.x = ((_local3 * _local2.col1.x) + (_local4 * _local2.col1.y)); m_localAnchor1.y = ((_local3 * _local2.col2.x) + (_local4 * _local2.col2.y)); _local2 = m_body2.m_R; _local3 = (_arg1.anchorPoint2.x - m_body2.m_position.x); _local4 = (_arg1.anchorPoint2.y - m_body2.m_position.y); m_localAnchor2.x = ((_local3 * _local2.col1.x) + (_local4 * _local2.col1.y)); m_localAnchor2.y = ((_local3 * _local2.col2.x) + (_local4 * _local2.col2.y)); _local3 = (_arg1.anchorPoint2.x - _arg1.anchorPoint1.x); _local4 = (_arg1.anchorPoint2.y - _arg1.anchorPoint1.y); m_length = Math.sqrt(((_local3 * _local3) + (_local4 * _local4))); m_impulse = 0; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; 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; _local2 = m_body1.m_R; _local3 = ((_local2.col1.x * m_localAnchor1.x) + (_local2.col2.x * m_localAnchor1.y)); _local4 = ((_local2.col1.y * m_localAnchor1.x) + (_local2.col2.y * m_localAnchor1.y)); _local2 = m_body2.m_R; _local5 = ((_local2.col1.x * m_localAnchor2.x) + (_local2.col2.x * m_localAnchor2.y)); _local6 = ((_local2.col1.y * m_localAnchor2.x) + (_local2.col2.y * m_localAnchor2.y)); _local7 = (m_body1.m_linearVelocity.x + (-(m_body1.m_angularVelocity) * _local4)); _local8 = (m_body1.m_linearVelocity.y + (m_body1.m_angularVelocity * _local3)); _local9 = (m_body2.m_linearVelocity.x + (-(m_body2.m_angularVelocity) * _local6)); _local10 = (m_body2.m_linearVelocity.y + (m_body2.m_angularVelocity * _local5)); _local11 = ((m_u.x * (_local9 - _local7)) + (m_u.y * (_local10 - _local8))); _local12 = (-(m_mass) * _local11); m_impulse = (m_impulse + _local12); _local13 = (_local12 * m_u.x); _local14 = (_local12 * m_u.y); m_body1.m_linearVelocity.x = (m_body1.m_linearVelocity.x - (m_body1.m_invMass * _local13)); m_body1.m_linearVelocity.y = (m_body1.m_linearVelocity.y - (m_body1.m_invMass * _local14)); m_body1.m_angularVelocity = (m_body1.m_angularVelocity - (m_body1.m_invI * ((_local3 * _local14) - (_local4 * _local13)))); m_body2.m_linearVelocity.x = (m_body2.m_linearVelocity.x + (m_body2.m_invMass * _local13)); m_body2.m_linearVelocity.y = (m_body2.m_linearVelocity.y + (m_body2.m_invMass * _local14)); m_body2.m_angularVelocity = (m_body2.m_angularVelocity + (m_body2.m_invI * ((_local5 * _local14) - (_local6 * _local13)))); } override public function GetAnchor1():b2Vec2{ return (b2Math.AddVV(m_body1.m_position, b2Math.b2MulMV(m_body1.m_R, m_localAnchor1))); } override public function GetAnchor2():b2Vec2{ return (b2Math.AddVV(m_body2.m_position, b2Math.b2MulMV(m_body2.m_R, m_localAnchor2))); } override public function PrepareVelocitySolver():void{ var _local1:b2Mat22; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local1 = m_body1.m_R; _local2 = ((_local1.col1.x * m_localAnchor1.x) + (_local1.col2.x * m_localAnchor1.y)); _local3 = ((_local1.col1.y * m_localAnchor1.x) + (_local1.col2.y * m_localAnchor1.y)); _local1 = m_body2.m_R; _local4 = ((_local1.col1.x * m_localAnchor2.x) + (_local1.col2.x * m_localAnchor2.y)); _local5 = ((_local1.col1.y * m_localAnchor2.x) + (_local1.col2.y * m_localAnchor2.y)); m_u.x = (((m_body2.m_position.x + _local4) - m_body1.m_position.x) - _local2); m_u.y = (((m_body2.m_position.y + _local5) - m_body1.m_position.y) - _local3); _local6 = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local6 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local6)); } else { m_u.SetZero(); }; _local7 = ((_local2 * m_u.y) - (_local3 * m_u.x)); _local8 = ((_local4 * m_u.y) - (_local5 * m_u.x)); m_mass = (((m_body1.m_invMass + ((m_body1.m_invI * _local7) * _local7)) + m_body2.m_invMass) + ((m_body2.m_invI * _local8) * _local8)); m_mass = (1 / m_mass); if (b2World.s_enableWarmStarting){ _local9 = (m_impulse * m_u.x); _local10 = (m_impulse * m_u.y); m_body1.m_linearVelocity.x = (m_body1.m_linearVelocity.x - (m_body1.m_invMass * _local9)); m_body1.m_linearVelocity.y = (m_body1.m_linearVelocity.y - (m_body1.m_invMass * _local10)); m_body1.m_angularVelocity = (m_body1.m_angularVelocity - (m_body1.m_invI * ((_local2 * _local10) - (_local3 * _local9)))); m_body2.m_linearVelocity.x = (m_body2.m_linearVelocity.x + (m_body2.m_invMass * _local9)); m_body2.m_linearVelocity.y = (m_body2.m_linearVelocity.y + (m_body2.m_invMass * _local10)); m_body2.m_angularVelocity = (m_body2.m_angularVelocity + (m_body2.m_invI * ((_local4 * _local10) - (_local5 * _local9)))); } else { m_impulse = 0; }; } override public function GetReactionTorque(_arg1:Number):Number{ return (0); } override public function GetReactionForce(_arg1:Number):b2Vec2{ var _local2:b2Vec2; _local2 = new b2Vec2(); _local2.SetV(m_u); _local2.Multiply((m_impulse * _arg1)); return (_local2); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; var _local2:Number; 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; _local1 = m_body1.m_R; _local2 = ((_local1.col1.x * m_localAnchor1.x) + (_local1.col2.x * m_localAnchor1.y)); _local3 = ((_local1.col1.y * m_localAnchor1.x) + (_local1.col2.y * m_localAnchor1.y)); _local1 = m_body2.m_R; _local4 = ((_local1.col1.x * m_localAnchor2.x) + (_local1.col2.x * m_localAnchor2.y)); _local5 = ((_local1.col1.y * m_localAnchor2.x) + (_local1.col2.y * m_localAnchor2.y)); _local6 = (((m_body2.m_position.x + _local4) - m_body1.m_position.x) - _local2); _local7 = (((m_body2.m_position.y + _local5) - m_body1.m_position.y) - _local3); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); _local6 = (_local6 / _local8); _local7 = (_local7 / _local8); _local9 = (_local8 - m_length); _local9 = b2Math.b2Clamp(_local9, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local10 = (-(m_mass) * _local9); m_u.Set(_local6, _local7); _local11 = (_local10 * m_u.x); _local12 = (_local10 * m_u.y); m_body1.m_position.x = (m_body1.m_position.x - (m_body1.m_invMass * _local11)); m_body1.m_position.y = (m_body1.m_position.y - (m_body1.m_invMass * _local12)); m_body1.m_rotation = (m_body1.m_rotation - (m_body1.m_invI * ((_local2 * _local12) - (_local3 * _local11)))); m_body2.m_position.x = (m_body2.m_position.x + (m_body2.m_invMass * _local11)); m_body2.m_position.y = (m_body2.m_position.y + (m_body2.m_invMass * _local12)); m_body2.m_rotation = (m_body2.m_rotation + (m_body2.m_invI * ((_local4 * _local12) - (_local5 * _local11)))); m_body1.m_R.Set(m_body1.m_rotation); m_body2.m_R.Set(m_body2.m_rotation); return ((b2Math.b2Abs(_local9) < b2Settings.b2_linearSlop)); } } }//package Box2D.Dynamics.Joints
Section 40
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2DistanceJointDef extends b2JointDef { public var anchorPoint2:b2Vec2; public var anchorPoint1:b2Vec2; public function b2DistanceJointDef(){ anchorPoint1 = new b2Vec2(); anchorPoint2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; } } }//package Box2D.Dynamics.Joints
Section 41
//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_impulse:Number; public var m_mass:Number; public var m_prismatic1:b2PrismaticJoint; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_ground2:b2Body; public var m_constant:Number; public var m_revolute1:b2RevoluteJoint; public var m_revolute2:b2RevoluteJoint; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_ratio:Number; public var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local2:Number; var _local3:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); 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 (_arg1.joint1.m_type == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local2 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local2 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_arg1.joint2.m_type == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local3 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local3 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local2 + (m_ratio * _local3)); m_impulse = 0; } override public function GetAnchor1():b2Vec2{ var _local1:b2Mat22; _local1 = m_body1.m_R; return (new b2Vec2((m_body1.m_position.x + ((_local1.col1.x * m_localAnchor1.x) + (_local1.col2.x * m_localAnchor1.y))), (m_body1.m_position.y + ((_local1.col1.y * m_localAnchor1.x) + (_local1.col2.y * m_localAnchor1.y))))); } override public function GetAnchor2():b2Vec2{ var _local1:b2Mat22; _local1 = m_body2.m_R; return (new b2Vec2((m_body2.m_position.x + ((_local1.col1.x * m_localAnchor2.x) + (_local1.col2.x * m_localAnchor2.y))), (m_body2.m_position.y + ((_local1.col1.y * m_localAnchor2.x) + (_local1.col2.y * m_localAnchor2.y))))); } override public function PrepareVelocitySolver():void{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:b2Mat22; var _local10:b2Vec2; var _local11:Number; var _local12:Number; _local1 = m_ground1; _local2 = m_ground2; _local3 = m_body1; _local4 = m_body2; _local12 = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local12 = (_local12 + _local3.m_invI); } else { _local9 = _local1.m_R; _local10 = m_prismatic1.m_localXAxis1; _local5 = ((_local9.col1.x * _local10.x) + (_local9.col2.x * _local10.y)); _local6 = ((_local9.col1.y * _local10.x) + (_local9.col2.y * _local10.y)); _local9 = _local3.m_R; _local7 = ((_local9.col1.x * m_localAnchor1.x) + (_local9.col2.x * m_localAnchor1.y)); _local8 = ((_local9.col1.y * m_localAnchor1.x) + (_local9.col2.y * m_localAnchor1.y)); _local11 = ((_local7 * _local6) - (_local8 * _local5)); m_J.linear1.Set(-(_local5), -(_local6)); m_J.angular1 = -(_local11); _local12 = (_local12 + (_local3.m_invMass + ((_local3.m_invI * _local11) * _local11))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local12 = (_local12 + ((m_ratio * m_ratio) * _local4.m_invI)); } else { _local9 = _local2.m_R; _local10 = m_prismatic2.m_localXAxis1; _local5 = ((_local9.col1.x * _local10.x) + (_local9.col2.x * _local10.y)); _local6 = ((_local9.col1.y * _local10.x) + (_local9.col2.y * _local10.y)); _local9 = _local4.m_R; _local7 = ((_local9.col1.x * m_localAnchor2.x) + (_local9.col2.x * m_localAnchor2.y)); _local8 = ((_local9.col1.y * m_localAnchor2.x) + (_local9.col2.y * m_localAnchor2.y)); _local11 = ((_local7 * _local6) - (_local8 * _local5)); m_J.linear2.Set((-(m_ratio) * _local5), (-(m_ratio) * _local6)); m_J.angular2 = (-(m_ratio) * _local11); _local12 = (_local12 + ((m_ratio * m_ratio) * (_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)))); }; m_mass = (1 / _local12); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * m_impulse) * m_J.linear1.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * m_impulse) * m_J.linear1.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * m_impulse) * m_J.angular1)); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * m_impulse) * m_J.linear2.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * m_impulse) * m_J.linear2.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * m_impulse) * m_J.angular2)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2()); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local1 = 0; _local2 = m_body1; _local3 = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; _local6 = (m_constant - (_local4 + (m_ratio * _local5))); _local7 = (-(m_mass) * _local6); _local2.m_position.x = (_local2.m_position.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_position.y = (_local2.m_position.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_rotation = (_local2.m_rotation + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_position.x = (_local3.m_position.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_position.y = (_local3.m_position.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_rotation = (_local3.m_rotation + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.m_R.Set(_local2.m_rotation); _local3.m_R.Set(_local3.m_rotation); return ((_local1 < b2Settings.b2_linearSlop)); } override public function GetReactionTorque(_arg1:Number):Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; _local2 = m_body1; _local3 = m_body2; _local4 = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local5 = (-(m_mass) * _local4); m_impulse = (m_impulse + _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local5) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local5) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local5) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local5) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local5) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local5) * m_J.angular2)); } } }//package Box2D.Dynamics.Joints
Section 42
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint2:b2Joint; public var joint1:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 43
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var linear2:b2Vec2; public var angular2:Number; public var angular1:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 44
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2Joint { public var m_islandFlag:Boolean; public var m_collideConnected:Boolean; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_type:int; public var m_node1:b2JointNode; public var m_node2:b2JointNode; public var m_userData; public var m_body1:b2Body; 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 b2JointNode(); m_node2 = new b2JointNode(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function GetNext():b2Joint{ return (m_next); } public function GetType():int{ return (m_type); } public function GetBody2():b2Body{ return (m_body2); } public function PrepareVelocitySolver():void{ } public function PreparePositionSolver():void{ } public function GetReactionTorque(_arg1:Number):Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce(_arg1:Number):b2Vec2{ return (null); } public function SolvePositionConstraints():Boolean{ return (false); } public function GetBody1():b2Body{ return (m_body1); } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public static function Destroy(_arg1:b2Joint, _arg2):void{ } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; _local3 = null; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } } }//package Box2D.Dynamics.Joints
Section 45
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var collideConnected:Boolean; public var body1:b2Body; public var body2:b2Body; public var userData; public var type:int; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 46
//b2JointNode (Box2D.Dynamics.Joints.b2JointNode) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointNode { public var joint:b2Joint; public var other:b2Body; public var next:b2JointNode; public var prev:b2JointNode; } }//package Box2D.Dynamics.Joints
Section 47
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { public var m_beta:Number; public var m_target:b2Vec2; public var m_impulse:b2Vec2; public var m_ptpMass:b2Mat22; public var m_localAnchor:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K:b2Mat22; public var m_gamma:Number; public var m_C:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_ptpMass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); _local2 = (m_target.x - m_body2.m_position.x); _local3 = (m_target.y - m_body2.m_position.y); m_localAnchor.x = ((_local2 * m_body2.m_R.col1.x) + (_local3 * m_body2.m_R.col1.y)); m_localAnchor.y = ((_local2 * m_body2.m_R.col2.x) + (_local3 * m_body2.m_R.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); _local4 = m_body2.m_mass; _local5 = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); _local6 = (((2 * _local4) * _arg1.dampingRatio) * _local5); _local7 = ((_local4 * _local5) * _local5); m_gamma = (1 / (_local6 + (_arg1.timeStep * _local7))); m_beta = ((_arg1.timeStep * _local7) / (_local6 + (_arg1.timeStep * _local7))); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetAnchor2():b2Vec2{ var _local1:b2Vec2; _local1 = b2Math.b2MulMV(m_body2.m_R, m_localAnchor); _local1.Add(m_body2.m_position); return (_local1); } override public function PrepareVelocitySolver():void{ var _local1:b2Body; var _local2:b2Mat22; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local1 = m_body2; _local2 = _local1.m_R; _local3 = ((_local2.col1.x * m_localAnchor.x) + (_local2.col2.x * m_localAnchor.y)); _local4 = ((_local2.col1.y * m_localAnchor.x) + (_local2.col2.y * m_localAnchor.y)); _local5 = _local1.m_invMass; _local6 = _local1.m_invI; K1.col1.x = _local5; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local5; K2.col1.x = ((_local6 * _local4) * _local4); K2.col2.x = ((-(_local6) * _local3) * _local4); K2.col1.y = ((-(_local6) * _local3) * _local4); K2.col2.y = ((_local6 * _local3) * _local3); 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_ptpMass); m_C.x = ((_local1.m_position.x + _local3) - m_target.x); m_C.y = ((_local1.m_position.y + _local4) - m_target.y); _local1.m_angularVelocity = (_local1.m_angularVelocity * 0.98); _local7 = m_impulse.x; _local8 = m_impulse.y; _local1.m_linearVelocity.x = (_local1.m_linearVelocity.x + (_local5 * _local7)); _local1.m_linearVelocity.y = (_local1.m_linearVelocity.y + (_local5 * _local8)); _local1.m_angularVelocity = (_local1.m_angularVelocity + (_local6 * ((_local3 * _local8) - (_local4 * _local7)))); } override public function GetReactionForce(_arg1:Number):b2Vec2{ var _local2:b2Vec2; _local2 = new b2Vec2(); _local2.SetV(m_impulse); _local2.Multiply(_arg1); return (_local2); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function GetReactionTorque(_arg1:Number):Number{ return (0); } public function SetTarget(_arg1:b2Vec2):void{ m_body2.WakeUp(); m_target = _arg1; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local2 = m_body2; _local3 = _local2.m_R; _local4 = ((_local3.col1.x * m_localAnchor.x) + (_local3.col2.x * m_localAnchor.y)); _local5 = ((_local3.col1.y * m_localAnchor.x) + (_local3.col2.y * m_localAnchor.y)); _local6 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local5)); _local7 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local4)); _local3 = m_ptpMass; _local8 = ((_local6 + ((m_beta * _arg1.inv_dt) * m_C.x)) + (m_gamma * m_impulse.x)); _local9 = ((_local7 + ((m_beta * _arg1.inv_dt) * m_C.y)) + (m_gamma * m_impulse.y)); _local10 = -(((_local3.col1.x * _local8) + (_local3.col2.x * _local9))); _local11 = -(((_local3.col1.y * _local8) + (_local3.col2.y * _local9))); _local12 = m_impulse.x; _local13 = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); _local14 = m_impulse.Length(); if (_local14 > (_arg1.dt * m_maxForce)){ m_impulse.Multiply(((_arg1.dt * m_maxForce) / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local10)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local11)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local4 * _local11) - (_local5 * _local10)))); } } }//package Box2D.Dynamics.Joints
Section 48
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var frequencyHz:Number; public var dampingRatio:Number; public var maxForce:Number; public var target:b2Vec2; public var timeStep:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; timeStep = (1 / 60); } } }//package Box2D.Dynamics.Joints
Section 49
//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_initialAngle:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_enableLimit:Boolean; public var m_maxMotorForce:Number; public var m_angularMass:Number; public var m_localYAxis1:b2Vec2; public var m_linearImpulse:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_motorMass:Number; public var m_limitState:int; public var m_linearMass:Number; public var m_upperTranslation:Number; public var m_angularImpulse:Number; public var m_motorImpulse:Number; public var m_motorJacobian:b2Jacobian; public var m_limitImpulse:Number; public var m_motorSpeed:Number; public var m_enableMotor:Boolean; public var m_limitPositionImpulse:Number; 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); _local2 = m_body1.m_R; _local3 = (_arg1.anchorPoint.x - m_body1.m_position.x); _local4 = (_arg1.anchorPoint.y - m_body1.m_position.y); m_localAnchor1.Set(((_local3 * _local2.col1.x) + (_local4 * _local2.col1.y)), ((_local3 * _local2.col2.x) + (_local4 * _local2.col2.y))); _local2 = m_body2.m_R; _local3 = (_arg1.anchorPoint.x - m_body2.m_position.x); _local4 = (_arg1.anchorPoint.y - m_body2.m_position.y); m_localAnchor2.Set(((_local3 * _local2.col1.x) + (_local4 * _local2.col1.y)), ((_local3 * _local2.col2.x) + (_local4 * _local2.col2.y))); _local2 = m_body1.m_R; _local3 = _arg1.axis.x; _local4 = _arg1.axis.y; m_localXAxis1.Set(((_local3 * _local2.col1.x) + (_local4 * _local2.col1.y)), ((_local3 * _local2.col2.x) + (_local4 * _local2.col2.y))); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_initialAngle = (m_body2.m_rotation - m_body1.m_rotation); m_linearJacobian.SetZero(); m_linearMass = 0; m_linearImpulse = 0; m_angularMass = 0; m_angularImpulse = 0; m_motorJacobian.SetZero(); m_motorMass = 0; m_motorImpulse = 0; m_limitImpulse = 0; m_limitPositionImpulse = 0; m_lowerTranslation = _arg1.lowerTranslation; m_upperTranslation = _arg1.upperTranslation; m_maxMotorForce = _arg1.motorForce; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ var _local1:b2Body; var _local2:b2Vec2; _local1 = m_body1; _local2 = new b2Vec2(); _local2.SetV(m_localAnchor1); _local2.MulM(_local1.m_R); _local2.Add(_local1.m_position); return (_local2); } override public function GetAnchor2():b2Vec2{ var _local1:b2Body; var _local2:b2Vec2; _local1 = m_body2; _local2 = new b2Vec2(); _local2.SetV(m_localAnchor2); _local2.MulM(_local1.m_R); _local2.Add(_local1.m_position); return (_local2); } override public function PrepareVelocitySolver():void{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local1 = m_body1; _local2 = m_body2; _local3 = _local1.m_R; _local4 = ((_local3.col1.x * m_localAnchor1.x) + (_local3.col2.x * m_localAnchor1.y)); _local5 = ((_local3.col1.y * m_localAnchor1.x) + (_local3.col2.y * m_localAnchor1.y)); _local3 = _local2.m_R; _local6 = ((_local3.col1.x * m_localAnchor2.x) + (_local3.col2.x * m_localAnchor2.y)); _local7 = ((_local3.col1.y * m_localAnchor2.x) + (_local3.col2.y * m_localAnchor2.y)); _local8 = _local1.m_invMass; _local9 = _local2.m_invMass; _local10 = _local1.m_invI; _local11 = _local2.m_invI; _local3 = _local1.m_R; _local12 = ((_local3.col1.x * m_localYAxis1.x) + (_local3.col2.x * m_localYAxis1.y)); _local13 = ((_local3.col1.y * m_localYAxis1.x) + (_local3.col2.y * m_localYAxis1.y)); _local14 = ((_local2.m_position.x + _local6) - _local1.m_position.x); _local15 = ((_local2.m_position.y + _local7) - _local1.m_position.y); m_linearJacobian.linear1.x = -(_local12); m_linearJacobian.linear1.y = -(_local13); m_linearJacobian.linear2.x = _local12; m_linearJacobian.linear2.y = _local13; m_linearJacobian.angular1 = -(((_local14 * _local13) - (_local15 * _local12))); m_linearJacobian.angular2 = ((_local6 * _local13) - (_local7 * _local12)); m_linearMass = (((_local8 + ((_local10 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local9) + ((_local11 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (1 / (_local10 + _local11)); if (((m_enableLimit) || (m_enableMotor))){ _local3 = _local1.m_R; _local16 = ((_local3.col1.x * m_localXAxis1.x) + (_local3.col2.x * m_localXAxis1.y)); _local17 = ((_local3.col1.y * m_localXAxis1.x) + (_local3.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local16); m_motorJacobian.linear1.y = -(_local17); m_motorJacobian.linear2.x = _local16; m_motorJacobian.linear2.y = _local17; m_motorJacobian.angular1 = -(((_local14 * _local17) - (_local15 * _local16))); m_motorJacobian.angular2 = ((_local6 * _local17) - (_local7 * _local16)); m_motorMass = (((_local8 + ((_local10 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local9) + ((_local11 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local18 = (_local14 - _local4); _local19 = (_local15 - _local5); _local20 = ((_local16 * _local18) + (_local17 * _local19)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local20 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitImpulse = 0; }; m_limitState = e_atLowerLimit; } else { if (_local20 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitImpulse = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitImpulse = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorImpulse = 0; }; if (m_enableLimit == false){ m_limitImpulse = 0; }; if (b2World.s_enableWarmStarting){ _local21 = ((m_linearImpulse * m_linearJacobian.linear1.x) + ((m_motorImpulse + m_limitImpulse) * m_motorJacobian.linear1.x)); _local22 = ((m_linearImpulse * m_linearJacobian.linear1.y) + ((m_motorImpulse + m_limitImpulse) * m_motorJacobian.linear1.y)); _local23 = ((m_linearImpulse * m_linearJacobian.linear2.x) + ((m_motorImpulse + m_limitImpulse) * m_motorJacobian.linear2.x)); _local24 = ((m_linearImpulse * m_linearJacobian.linear2.y) + ((m_motorImpulse + m_limitImpulse) * m_motorJacobian.linear2.y)); _local25 = (((m_linearImpulse * m_linearJacobian.angular1) - m_angularImpulse) + ((m_motorImpulse + m_limitImpulse) * m_motorJacobian.angular1)); _local26 = (((m_linearImpulse * m_linearJacobian.angular2) + m_angularImpulse) + ((m_motorImpulse + m_limitImpulse) * m_motorJacobian.angular2)); _local1.m_linearVelocity.x = (_local1.m_linearVelocity.x + (_local8 * _local21)); _local1.m_linearVelocity.y = (_local1.m_linearVelocity.y + (_local8 * _local22)); _local1.m_angularVelocity = (_local1.m_angularVelocity + (_local10 * _local25)); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local9 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local9 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local11 * _local26)); } else { m_linearImpulse = 0; m_angularImpulse = 0; m_limitImpulse = 0; m_motorImpulse = 0; }; m_limitPositionImpulse = 0; } public function GetJointTranslation():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local1 = m_body1; _local2 = m_body2; _local3 = _local1.m_R; _local4 = ((_local3.col1.x * m_localAnchor1.x) + (_local3.col2.x * m_localAnchor1.y)); _local5 = ((_local3.col1.y * m_localAnchor1.x) + (_local3.col2.y * m_localAnchor1.y)); _local3 = _local2.m_R; _local6 = ((_local3.col1.x * m_localAnchor2.x) + (_local3.col2.x * m_localAnchor2.y)); _local7 = ((_local3.col1.y * m_localAnchor2.x) + (_local3.col2.y * m_localAnchor2.y)); _local8 = (_local1.m_position.x + _local4); _local9 = (_local1.m_position.y + _local5); _local10 = (_local2.m_position.x + _local6); _local11 = (_local2.m_position.y + _local7); _local12 = (_local10 - _local8); _local13 = (_local11 - _local9); _local3 = _local1.m_R; _local14 = ((_local3.col1.x * m_localXAxis1.x) + (_local3.col2.x * m_localXAxis1.y)); _local15 = ((_local3.col1.y * m_localXAxis1.x) + (_local3.col2.y * m_localXAxis1.y)); _local16 = ((_local14 * _local12) + (_local15 * _local13)); return (_local16); } override public function GetReactionForce(_arg1:Number):b2Vec2{ var _local2:Number; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local2 = (_arg1 * m_limitImpulse); _local3 = m_body1.m_R; _local4 = (_local2 * ((_local3.col1.x * m_localXAxis1.x) + (_local3.col2.x * m_localXAxis1.y))); _local5 = (_local2 * ((_local3.col1.y * m_localXAxis1.x) + (_local3.col2.y * m_localXAxis1.y))); _local6 = (_local2 * ((_local3.col1.x * m_localYAxis1.x) + (_local3.col2.x * m_localYAxis1.y))); _local7 = (_local2 * ((_local3.col1.y * m_localYAxis1.x) + (_local3.col2.y * m_localYAxis1.y))); return (new b2Vec2((_local4 + _local6), (_local5 + _local7))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; _local3 = m_body1; _local4 = m_body2; _local5 = _local3.m_invMass; _local6 = _local4.m_invMass; _local7 = _local3.m_invI; _local8 = _local4.m_invI; _local9 = _local3.m_R; _local10 = ((_local9.col1.x * m_localAnchor1.x) + (_local9.col2.x * m_localAnchor1.y)); _local11 = ((_local9.col1.y * m_localAnchor1.x) + (_local9.col2.y * m_localAnchor1.y)); _local9 = _local4.m_R; _local12 = ((_local9.col1.x * m_localAnchor2.x) + (_local9.col2.x * m_localAnchor2.y)); _local13 = ((_local9.col1.y * m_localAnchor2.x) + (_local9.col2.y * m_localAnchor2.y)); _local14 = (_local3.m_position.x + _local10); _local15 = (_local3.m_position.y + _local11); _local16 = (_local4.m_position.x + _local12); _local17 = (_local4.m_position.y + _local13); _local18 = (_local16 - _local14); _local19 = (_local17 - _local15); _local9 = _local3.m_R; _local20 = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); _local21 = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); _local22 = ((_local20 * _local18) + (_local21 * _local19)); _local22 = b2Math.b2Clamp(_local22, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local23 = (-(m_linearMass) * _local22); _local3.m_position.x = (_local3.m_position.x + ((_local5 * _local23) * m_linearJacobian.linear1.x)); _local3.m_position.y = (_local3.m_position.y + ((_local5 * _local23) * m_linearJacobian.linear1.y)); _local3.m_rotation = (_local3.m_rotation + ((_local7 * _local23) * m_linearJacobian.angular1)); _local4.m_position.x = (_local4.m_position.x + ((_local6 * _local23) * m_linearJacobian.linear2.x)); _local4.m_position.y = (_local4.m_position.y + ((_local6 * _local23) * m_linearJacobian.linear2.y)); _local4.m_rotation = (_local4.m_rotation + ((_local8 * _local23) * m_linearJacobian.angular2)); _local24 = b2Math.b2Abs(_local22); _local25 = ((_local4.m_rotation - _local3.m_rotation) - m_initialAngle); _local25 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_angularMass) * _local25); _local3.m_rotation = (_local3.m_rotation - (_local3.m_invI * _local26)); _local3.m_R.Set(_local3.m_rotation); _local4.m_rotation = (_local4.m_rotation + (_local4.m_invI * _local26)); _local4.m_R.Set(_local4.m_rotation); _local27 = b2Math.b2Abs(_local25); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_R; _local10 = ((_local9.col1.x * m_localAnchor1.x) + (_local9.col2.x * m_localAnchor1.y)); _local11 = ((_local9.col1.y * m_localAnchor1.x) + (_local9.col2.y * m_localAnchor1.y)); _local9 = _local4.m_R; _local12 = ((_local9.col1.x * m_localAnchor2.x) + (_local9.col2.x * m_localAnchor2.y)); _local13 = ((_local9.col1.y * m_localAnchor2.x) + (_local9.col2.y * m_localAnchor2.y)); _local14 = (_local3.m_position.x + _local10); _local15 = (_local3.m_position.y + _local11); _local16 = (_local4.m_position.x + _local12); _local17 = (_local4.m_position.y + _local13); _local18 = (_local16 - _local14); _local19 = (_local17 - _local15); _local9 = _local3.m_R; _local28 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local29 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local30 = ((_local28 * _local18) + (_local29 * _local19)); _local31 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local30, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local31 = (-(m_motorMass) * _local1); _local24 = b2Math.b2Max(_local24, b2Math.b2Abs(_local25)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local30 - m_lowerTranslation); _local24 = b2Math.b2Max(_local24, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local31 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local31), 0); _local31 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local30 - m_upperTranslation); _local24 = b2Math.b2Max(_local24, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local31 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local31), 0); _local31 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_position.x = (_local3.m_position.x + ((_local5 * _local31) * m_motorJacobian.linear1.x)); _local3.m_position.y = (_local3.m_position.y + ((_local5 * _local31) * m_motorJacobian.linear1.y)); _local3.m_rotation = (_local3.m_rotation + ((_local7 * _local31) * m_motorJacobian.angular1)); _local3.m_R.Set(_local3.m_rotation); _local4.m_position.x = (_local4.m_position.x + ((_local6 * _local31) * m_motorJacobian.linear2.x)); _local4.m_position.y = (_local4.m_position.y + ((_local6 * _local31) * m_motorJacobian.linear2.y)); _local4.m_rotation = (_local4.m_rotation + ((_local8 * _local31) * m_motorJacobian.angular2)); _local4.m_R.Set(_local4.m_rotation); }; return ((((_local24 <= b2Settings.b2_linearSlop)) && ((_local27 <= b2Settings.b2_angularSlop)))); } public function GetJointSpeed():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:b2Vec2; var _local17:b2Vec2; var _local18:Number; var _local19:Number; var _local20:Number; _local1 = m_body1; _local2 = m_body2; _local3 = _local1.m_R; _local4 = ((_local3.col1.x * m_localAnchor1.x) + (_local3.col2.x * m_localAnchor1.y)); _local5 = ((_local3.col1.y * m_localAnchor1.x) + (_local3.col2.y * m_localAnchor1.y)); _local3 = _local2.m_R; _local6 = ((_local3.col1.x * m_localAnchor2.x) + (_local3.col2.x * m_localAnchor2.y)); _local7 = ((_local3.col1.y * m_localAnchor2.x) + (_local3.col2.y * m_localAnchor2.y)); _local8 = (_local1.m_position.x + _local4); _local9 = (_local1.m_position.y + _local5); _local10 = (_local2.m_position.x + _local6); _local11 = (_local2.m_position.y + _local7); _local12 = (_local10 - _local8); _local13 = (_local11 - _local9); _local3 = _local1.m_R; _local14 = ((_local3.col1.x * m_localXAxis1.x) + (_local3.col2.x * m_localXAxis1.y)); _local15 = ((_local3.col1.y * m_localXAxis1.x) + (_local3.col2.y * m_localXAxis1.y)); _local16 = _local1.m_linearVelocity; _local17 = _local2.m_linearVelocity; _local18 = _local1.m_angularVelocity; _local19 = _local2.m_angularVelocity; _local20 = (((_local12 * (-(_local18) * _local15)) + (_local13 * (_local18 * _local14))) + ((_local14 * (((_local17.x + (-(_local19) * _local7)) - _local16.x) - (-(_local18) * _local5))) + (_local15 * (((_local17.y + (_local19 * _local6)) - _local16.y) - (_local18 * _local4))))); return (_local20); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetMotorForce(_arg1:Number):Number{ return ((_arg1 * m_motorImpulse)); } public function SetMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } override public function GetReactionTorque(_arg1:Number):Number{ return ((_arg1 * m_angularImpulse)); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_invMass; _local5 = _local3.m_invMass; _local6 = _local2.m_invI; _local7 = _local3.m_invI; _local9 = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local10 = (-(m_linearMass) * _local9); m_linearImpulse = (m_linearImpulse + _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local10) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local10) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local10) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local10) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local10) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local10) * m_linearJacobian.angular2)); _local11 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local12 = (-(m_angularMass) * _local11); m_angularImpulse = (m_angularImpulse + _local12); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local12)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local12)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local13 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local14 = (-(m_motorMass) * _local13); _local15 = m_motorImpulse; m_motorImpulse = b2Math.b2Clamp((m_motorImpulse + _local14), (-(_arg1.dt) * m_maxMotorForce), (_arg1.dt * m_maxMotorForce)); _local14 = (m_motorImpulse - _local15); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local14) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local14) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local14) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local14) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local14) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local14) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local16 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local17 = (-(m_motorMass) * _local16); if (m_limitState == e_equalLimits){ m_limitImpulse = (m_limitImpulse + _local17); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitImpulse; m_limitImpulse = b2Math.b2Max((m_limitImpulse + _local17), 0); _local17 = (m_limitImpulse - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitImpulse; m_limitImpulse = b2Math.b2Min((m_limitImpulse + _local17), 0); _local17 = (m_limitImpulse - _local8); }; }; }; _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local17) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local17) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local17) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local17) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local17) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local17) * m_motorJacobian.angular2)); }; } } }//package Box2D.Dynamics.Joints
Section 50
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2PrismaticJointDef extends b2JointDef { public var motorSpeed:Number; public var anchorPoint:b2Vec2; public var axis:b2Vec2; public var upperTranslation:Number; public var lowerTranslation:Number; public var enableMotor:Boolean; public var motorForce:Number; public var enableLimit:Boolean; public function b2PrismaticJointDef(){ type = b2Joint.e_prismaticJoint; anchorPoint = new b2Vec2(0, 0); axis = new b2Vec2(0, 0); lowerTranslation = 0; upperTranslation = 0; motorForce = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } } }//package Box2D.Dynamics.Joints
Section 51
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_ground:b2Body; public var m_maxLength2:Number; public var m_limitState1:int; public var m_maxLength1:Number; public var m_pulleyImpulse:Number; public var m_limitPositionImpulse1:Number; public var m_constant:Number; public var m_ratio:Number; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_limitPositionImpulse2:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitState2:int; public var m_limitMass2:Number; public var m_limitMass1:Number; public var m_limitImpulse2:Number; public var m_u1:b2Vec2; public var m_u2:b2Vec2; public var m_limitImpulse1:Number; public var m_pulleyMass:Number; public static var b2_minPulleyLength:Number = 30; public function b2PulleyJoint(_arg1:b2PulleyJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8: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.groundPoint1.x - m_ground.m_position.x); m_groundAnchor1.y = (_arg1.groundPoint1.y - m_ground.m_position.y); m_groundAnchor2.x = (_arg1.groundPoint2.x - m_ground.m_position.x); m_groundAnchor2.y = (_arg1.groundPoint2.y - m_ground.m_position.y); _local2 = m_body1.m_R; _local3 = (_arg1.anchorPoint1.x - m_body1.m_position.x); _local4 = (_arg1.anchorPoint1.y - m_body1.m_position.y); m_localAnchor1.x = ((_local3 * _local2.col1.x) + (_local4 * _local2.col1.y)); m_localAnchor1.y = ((_local3 * _local2.col2.x) + (_local4 * _local2.col2.y)); _local2 = m_body2.m_R; _local3 = (_arg1.anchorPoint2.x - m_body2.m_position.x); _local4 = (_arg1.anchorPoint2.y - m_body2.m_position.y); m_localAnchor2.x = ((_local3 * _local2.col1.x) + (_local4 * _local2.col1.y)); m_localAnchor2.y = ((_local3 * _local2.col2.x) + (_local4 * _local2.col2.y)); m_ratio = _arg1.ratio; _local3 = (_arg1.groundPoint1.x - _arg1.anchorPoint1.x); _local4 = (_arg1.groundPoint1.y - _arg1.anchorPoint1.y); _local5 = Math.sqrt(((_local3 * _local3) + (_local4 * _local4))); _local3 = (_arg1.groundPoint2.x - _arg1.anchorPoint2.x); _local4 = (_arg1.groundPoint2.y - _arg1.anchorPoint2.y); _local6 = Math.sqrt(((_local3 * _local3) + (_local4 * _local4))); _local7 = b2Math.b2Max((0.5 * b2_minPulleyLength), _local5); _local8 = b2Math.b2Max((0.5 * b2_minPulleyLength), _local6); m_constant = (_local7 + (m_ratio * _local8)); m_maxLength1 = b2Math.b2Clamp(_arg1.maxLength1, _local7, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.b2Clamp(_arg1.maxLength2, _local8, ((m_constant - b2_minPulleyLength) / m_ratio)); m_pulleyImpulse = 0; m_limitImpulse1 = 0; m_limitImpulse2 = 0; } public function GetLength1():Number{ var _local1:b2Mat22; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.m_R; _local2 = (m_body1.m_position.x + ((_local1.col1.x * m_localAnchor1.x) + (_local1.col2.x * m_localAnchor1.y))); _local3 = (m_body1.m_position.y + ((_local1.col1.y * m_localAnchor1.x) + (_local1.col2.y * m_localAnchor1.y))); _local4 = (_local2 - (m_ground.m_position.x + m_groundAnchor1.x)); _local5 = (_local3 - (m_ground.m_position.y + m_groundAnchor1.y)); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } override public function GetAnchor1():b2Vec2{ var _local1:b2Mat22; _local1 = m_body1.m_R; return (new b2Vec2((m_body1.m_position.x + ((_local1.col1.x * m_localAnchor1.x) + (_local1.col2.x * m_localAnchor1.y))), (m_body1.m_position.y + ((_local1.col1.y * m_localAnchor1.x) + (_local1.col2.y * m_localAnchor1.y))))); } override public function GetAnchor2():b2Vec2{ var _local1:b2Mat22; _local1 = m_body2.m_R; return (new b2Vec2((m_body2.m_position.x + ((_local1.col1.x * m_localAnchor2.x) + (_local1.col2.x * m_localAnchor2.y))), (m_body2.m_position.y + ((_local1.col1.y * m_localAnchor2.x) + (_local1.col2.y * m_localAnchor2.y))))); } override public function PrepareVelocitySolver():void{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; _local1 = m_body1; _local2 = m_body2; _local3 = _local1.m_R; _local4 = ((_local3.col1.x * m_localAnchor1.x) + (_local3.col2.x * m_localAnchor1.y)); _local5 = ((_local3.col1.y * m_localAnchor1.x) + (_local3.col2.y * m_localAnchor1.y)); _local3 = _local2.m_R; _local6 = ((_local3.col1.x * m_localAnchor2.x) + (_local3.col2.x * m_localAnchor2.y)); _local7 = ((_local3.col1.y * m_localAnchor2.x) + (_local3.col2.y * m_localAnchor2.y)); _local8 = (_local1.m_position.x + _local4); _local9 = (_local1.m_position.y + _local5); _local10 = (_local2.m_position.x + _local6); _local11 = (_local2.m_position.y + _local7); _local12 = (m_ground.m_position.x + m_groundAnchor1.x); _local13 = (m_ground.m_position.y + m_groundAnchor1.y); _local14 = (m_ground.m_position.x + m_groundAnchor2.x); _local15 = (m_ground.m_position.y + m_groundAnchor2.y); m_u1.Set((_local8 - _local12), (_local9 - _local13)); m_u2.Set((_local10 - _local14), (_local11 - _local15)); _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(); }; if (_local16 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitImpulse1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local17 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitImpulse2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; _local18 = ((_local4 * m_u1.y) - (_local5 * m_u1.x)); _local19 = ((_local6 * m_u2.y) - (_local7 * m_u2.x)); m_limitMass1 = (_local1.m_invMass + ((_local1.m_invI * _local18) * _local18)); m_limitMass2 = (_local2.m_invMass + ((_local2.m_invI * _local19) * _local19)); 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); _local20 = ((-(m_pulleyImpulse) - m_limitImpulse1) * m_u1.x); _local21 = ((-(m_pulleyImpulse) - m_limitImpulse1) * m_u1.y); _local22 = (((-(m_ratio) * m_pulleyImpulse) - m_limitImpulse2) * m_u2.x); _local23 = (((-(m_ratio) * m_pulleyImpulse) - m_limitImpulse2) * m_u2.y); _local1.m_linearVelocity.x = (_local1.m_linearVelocity.x + (_local1.m_invMass * _local20)); _local1.m_linearVelocity.y = (_local1.m_linearVelocity.y + (_local1.m_invMass * _local21)); _local1.m_angularVelocity = (_local1.m_angularVelocity + (_local1.m_invI * ((_local4 * _local21) - (_local5 * _local20)))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local22)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local23)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local23) - (_local7 * _local22)))); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2()); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; _local1 = m_body1; _local2 = m_body2; _local4 = (m_ground.m_position.x + m_groundAnchor1.x); _local5 = (m_ground.m_position.y + m_groundAnchor1.y); _local6 = (m_ground.m_position.x + m_groundAnchor2.x); _local7 = (m_ground.m_position.y + m_groundAnchor2.y); _local21 = 0; _local3 = _local1.m_R; _local8 = ((_local3.col1.x * m_localAnchor1.x) + (_local3.col2.x * m_localAnchor1.y)); _local9 = ((_local3.col1.y * m_localAnchor1.x) + (_local3.col2.y * m_localAnchor1.y)); _local3 = _local2.m_R; _local10 = ((_local3.col1.x * m_localAnchor2.x) + (_local3.col2.x * m_localAnchor2.y)); _local11 = ((_local3.col1.y * m_localAnchor2.x) + (_local3.col2.y * m_localAnchor2.y)); _local12 = (_local1.m_position.x + _local8); _local13 = (_local1.m_position.y + _local9); _local14 = (_local2.m_position.x + _local10); _local15 = (_local2.m_position.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)); _local21 = b2Math.b2Max(_local21, Math.abs(_local18)); _local18 = b2Math.b2Clamp(_local18, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local19 = (-(m_pulleyMass) * _local18); _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_position.x = (_local1.m_position.x + (_local1.m_invMass * _local12)); _local1.m_position.y = (_local1.m_position.y + (_local1.m_invMass * _local13)); _local1.m_rotation = (_local1.m_rotation + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_position.x = (_local2.m_position.x + (_local2.m_invMass * _local14)); _local2.m_position.y = (_local2.m_position.y + (_local2.m_invMass * _local15)); _local2.m_rotation = (_local2.m_rotation + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.m_R.Set(_local1.m_rotation); _local2.m_R.Set(_local2.m_rotation); if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_R; _local8 = ((_local3.col1.x * m_localAnchor1.x) + (_local3.col2.x * m_localAnchor1.y)); _local9 = ((_local3.col1.y * m_localAnchor1.x) + (_local3.col2.y * m_localAnchor1.y)); _local12 = (_local1.m_position.x + _local8); _local13 = (_local1.m_position.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); _local21 = b2Math.b2Max(_local21, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local20 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_position.x = (_local1.m_position.x + (_local1.m_invMass * _local12)); _local1.m_position.y = (_local1.m_position.y + (_local1.m_invMass * _local13)); _local1.m_rotation = (_local1.m_rotation + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.m_R.Set(_local1.m_rotation); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_R; _local10 = ((_local3.col1.x * m_localAnchor2.x) + (_local3.col2.x * m_localAnchor2.y)); _local11 = ((_local3.col1.y * m_localAnchor2.x) + (_local3.col2.y * m_localAnchor2.y)); _local14 = (_local2.m_position.x + _local10); _local15 = (_local2.m_position.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); _local21 = b2Math.b2Max(_local21, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local20 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local20); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_position.x = (_local2.m_position.x + (_local2.m_invMass * _local14)); _local2.m_position.y = (_local2.m_position.y + (_local2.m_invMass * _local15)); _local2.m_rotation = (_local2.m_rotation + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.m_R.Set(_local2.m_rotation); }; return ((_local21 < b2Settings.b2_linearSlop)); } public function GetGroundPoint1():b2Vec2{ return (new b2Vec2((m_ground.m_position.x + m_groundAnchor1.x), (m_ground.m_position.y + m_groundAnchor1.y))); } public function GetGroundPoint2():b2Vec2{ return (new b2Vec2((m_ground.m_position.x + m_groundAnchor2.x), (m_ground.m_position.y + m_groundAnchor2.y))); } override public function GetReactionTorque(_arg1:Number):Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } public function GetLength2():Number{ var _local1:b2Mat22; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body2.m_R; _local2 = (m_body2.m_position.x + ((_local1.col1.x * m_localAnchor2.x) + (_local1.col2.x * m_localAnchor2.y))); _local3 = (m_body2.m_position.y + ((_local1.col1.y * m_localAnchor2.x) + (_local1.col2.y * m_localAnchor2.y))); _local4 = (_local2 - (m_ground.m_position.x + m_groundAnchor2.x)); _local5 = (_local3 - (m_ground.m_position.y + m_groundAnchor2.y)); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_R; _local5 = ((_local4.col1.x * m_localAnchor1.x) + (_local4.col2.x * m_localAnchor1.y)); _local6 = ((_local4.col1.y * m_localAnchor1.x) + (_local4.col2.y * m_localAnchor1.y)); _local4 = _local3.m_R; _local7 = ((_local4.col1.x * m_localAnchor2.x) + (_local4.col2.x * m_localAnchor2.y)); _local8 = ((_local4.col1.y * m_localAnchor2.x) + (_local4.col2.y * m_localAnchor2.y)); _local9 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local10 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local11 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local8)); _local12 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local7)); _local17 = (-(((m_u1.x * _local9) + (m_u1.y * _local10))) - (m_ratio * ((m_u2.x * _local11) + (m_u2.y * _local12)))); _local18 = (-(m_pulleyMass) * _local17); m_pulleyImpulse = (m_pulleyImpulse + _local18); _local13 = (-(_local18) * m_u1.x); _local14 = (-(_local18) * m_u1.y); _local15 = ((-(m_ratio) * _local18) * m_u2.x); _local16 = ((-(m_ratio) * _local18) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local13)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local14)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local14) - (_local6 * _local13)))); _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 * ((_local7 * _local16) - (_local8 * _local15)))); if (m_limitState1 == e_atUpperLimit){ _local9 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local10 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local17 = -(((m_u1.x * _local9) + (m_u1.y * _local10))); _local18 = (-(m_limitMass1) * _local17); _local19 = m_limitImpulse1; m_limitImpulse1 = b2Math.b2Max(0, (m_limitImpulse1 + _local18)); _local18 = (m_limitImpulse1 - _local19); _local13 = (-(_local18) * m_u1.x); _local14 = (-(_local18) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local13)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local14)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local14) - (_local6 * _local13)))); }; if (m_limitState2 == e_atUpperLimit){ _local11 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local8)); _local12 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local7)); _local17 = -(((m_u2.x * _local11) + (m_u2.y * _local12))); _local18 = (-(m_limitMass2) * _local17); _local19 = m_limitImpulse2; m_limitImpulse2 = b2Math.b2Max(0, (m_limitImpulse2 + _local18)); _local18 = (m_limitImpulse2 - _local19); _local15 = (-(_local18) * m_u2.x); _local16 = (-(_local18) * m_u2.y); _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 * ((_local7 * _local16) - (_local8 * _local15)))); }; } } }//package Box2D.Dynamics.Joints
Section 52
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2PulleyJointDef extends b2JointDef { public var groundPoint1:b2Vec2; public var groundPoint2:b2Vec2; public var ratio:Number; public var maxLength1:Number; public var maxLength2:Number; public var anchorPoint1:b2Vec2; public var anchorPoint2:b2Vec2; public function b2PulleyJointDef(){ groundPoint1 = new b2Vec2(); groundPoint2 = new b2Vec2(); anchorPoint1 = new b2Vec2(); anchorPoint2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundPoint1.Set(-1, 1); groundPoint2.Set(1, 1); anchorPoint1.Set(-1, 0); anchorPoint2.Set(1, 0); maxLength1 = (0.5 * b2PulleyJoint.b2_minPulleyLength); maxLength2 = (0.5 * b2PulleyJoint.b2_minPulleyLength); ratio = 1; collideConnected = true; } } }//package Box2D.Dynamics.Joints
Section 53
//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_intialAngle:Number; public var m_enableLimit:Boolean; public var m_limitState:int; public var m_ptpMass:b2Mat22; 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_limitImpulse:Number; public var m_motorImpulse:Number; public var m_enableMotor:Boolean; public var m_lowerAngle:Number; public var m_limitPositionImpulse:Number; public var m_maxMotorTorque:Number; public var m_upperAngle:Number; public var m_motorSpeed:Number; public var m_ptpImpulse:b2Vec2; public static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_ptpImpulse = new b2Vec2(); m_ptpMass = new b2Mat22(); super(_arg1); _local2 = m_body1.m_R; _local3 = (_arg1.anchorPoint.x - m_body1.m_position.x); _local4 = (_arg1.anchorPoint.y - m_body1.m_position.y); m_localAnchor1.x = ((_local3 * _local2.col1.x) + (_local4 * _local2.col1.y)); m_localAnchor1.y = ((_local3 * _local2.col2.x) + (_local4 * _local2.col2.y)); _local2 = m_body2.m_R; _local3 = (_arg1.anchorPoint.x - m_body2.m_position.x); _local4 = (_arg1.anchorPoint.y - m_body2.m_position.y); m_localAnchor2.x = ((_local3 * _local2.col1.x) + (_local4 * _local2.col1.y)); m_localAnchor2.y = ((_local3 * _local2.col2.x) + (_local4 * _local2.col2.y)); m_intialAngle = (m_body2.m_rotation - m_body1.m_rotation); m_ptpImpulse.Set(0, 0); m_motorImpulse = 0; m_limitImpulse = 0; m_limitPositionImpulse = 0; m_lowerAngle = _arg1.lowerAngle; m_upperAngle = _arg1.upperAngle; m_maxMotorTorque = _arg1.motorTorque; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ var _local1:b2Mat22; _local1 = m_body1.m_R; return (new b2Vec2((m_body1.m_position.x + ((_local1.col1.x * m_localAnchor1.x) + (_local1.col2.x * m_localAnchor1.y))), (m_body1.m_position.y + ((_local1.col1.y * m_localAnchor1.x) + (_local1.col2.y * m_localAnchor1.y))))); } override public function GetAnchor2():b2Vec2{ var _local1:b2Mat22; _local1 = m_body2.m_R; return (new b2Vec2((m_body2.m_position.x + ((_local1.col1.x * m_localAnchor2.x) + (_local1.col2.x * m_localAnchor2.y))), (m_body2.m_position.y + ((_local1.col1.y * m_localAnchor2.x) + (_local1.col2.y * m_localAnchor2.y))))); } override public function PrepareVelocitySolver():void{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; _local1 = m_body1; _local2 = m_body2; _local3 = _local1.m_R; _local4 = ((_local3.col1.x * m_localAnchor1.x) + (_local3.col2.x * m_localAnchor1.y)); _local5 = ((_local3.col1.y * m_localAnchor1.x) + (_local3.col2.y * m_localAnchor1.y)); _local3 = _local2.m_R; _local6 = ((_local3.col1.x * m_localAnchor2.x) + (_local3.col2.x * m_localAnchor2.y)); _local7 = ((_local3.col1.y * m_localAnchor2.x) + (_local3.col2.y * m_localAnchor2.y)); _local8 = _local1.m_invMass; _local9 = _local2.m_invMass; _local10 = _local1.m_invI; _local11 = _local2.m_invI; K1.col1.x = (_local8 + _local9); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local8 + _local9); K2.col1.x = ((_local10 * _local5) * _local5); K2.col2.x = ((-(_local10) * _local4) * _local5); K2.col1.y = ((-(_local10) * _local4) * _local5); K2.col2.y = ((_local10 * _local4) * _local4); K3.col1.x = ((_local11 * _local7) * _local7); K3.col2.x = ((-(_local11) * _local6) * _local7); K3.col1.y = ((-(_local11) * _local6) * _local7); K3.col2.y = ((_local11 * _local6) * _local6); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_ptpMass); m_motorMass = (1 / (_local10 + _local11)); if (m_enableMotor == false){ m_motorImpulse = 0; }; if (m_enableLimit){ _local12 = ((_local2.m_rotation - _local1.m_rotation) - m_intialAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local12 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitImpulse = 0; }; m_limitState = e_atLowerLimit; } else { if (_local12 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitImpulse = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitImpulse = 0; }; }; }; } else { m_limitImpulse = 0; }; if (b2World.s_enableWarmStarting){ _local1.m_linearVelocity.x = (_local1.m_linearVelocity.x - (_local8 * m_ptpImpulse.x)); _local1.m_linearVelocity.y = (_local1.m_linearVelocity.y - (_local8 * m_ptpImpulse.y)); _local1.m_angularVelocity = (_local1.m_angularVelocity - (_local10 * ((((_local4 * m_ptpImpulse.y) - (_local5 * m_ptpImpulse.x)) + m_motorImpulse) + m_limitImpulse))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local9 * m_ptpImpulse.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local9 * m_ptpImpulse.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local11 * ((((_local6 * m_ptpImpulse.y) - (_local7 * m_ptpImpulse.x)) + m_motorImpulse) + m_limitImpulse))); } else { m_ptpImpulse.SetZero(); m_motorImpulse = 0; m_limitImpulse = 0; }; m_limitPositionImpulse = 0; } override public function GetReactionForce(_arg1:Number):b2Vec2{ var _local2:b2Vec2; _local2 = m_ptpImpulse.Copy(); _local2.Multiply(_arg1); return (_local2); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _local3 = m_body1; _local4 = m_body2; _local5 = 0; _local6 = _local3.m_R; _local7 = ((_local6.col1.x * m_localAnchor1.x) + (_local6.col2.x * m_localAnchor1.y)); _local8 = ((_local6.col1.y * m_localAnchor1.x) + (_local6.col2.y * m_localAnchor1.y)); _local6 = _local4.m_R; _local9 = ((_local6.col1.x * m_localAnchor2.x) + (_local6.col2.x * m_localAnchor2.y)); _local10 = ((_local6.col1.y * m_localAnchor2.x) + (_local6.col2.y * m_localAnchor2.y)); _local11 = (_local3.m_position.x + _local7); _local12 = (_local3.m_position.y + _local8); _local13 = (_local4.m_position.x + _local9); _local14 = (_local4.m_position.y + _local10); _local15 = (_local13 - _local11); _local16 = (_local14 - _local12); _local5 = Math.sqrt(((_local15 * _local15) + (_local16 * _local16))); _local17 = _local3.m_invMass; _local18 = _local4.m_invMass; _local19 = _local3.m_invI; _local20 = _local4.m_invI; K1.col1.x = (_local17 + _local18); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local17 + _local18); K2.col1.x = ((_local19 * _local8) * _local8); K2.col2.x = ((-(_local19) * _local7) * _local8); K2.col1.y = ((-(_local19) * _local7) * _local8); K2.col2.y = ((_local19 * _local7) * _local7); K3.col1.x = ((_local20 * _local10) * _local10); K3.col2.x = ((-(_local20) * _local9) * _local10); K3.col1.y = ((-(_local20) * _local9) * _local10); K3.col2.y = ((_local20 * _local9) * _local9); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local15), -(_local16)); _local21 = tImpulse.x; _local22 = tImpulse.y; _local3.m_position.x = (_local3.m_position.x - (_local3.m_invMass * _local21)); _local3.m_position.y = (_local3.m_position.y - (_local3.m_invMass * _local22)); _local3.m_rotation = (_local3.m_rotation - (_local3.m_invI * ((_local7 * _local22) - (_local8 * _local21)))); _local3.m_R.Set(_local3.m_rotation); _local4.m_position.x = (_local4.m_position.x + (_local4.m_invMass * _local21)); _local4.m_position.y = (_local4.m_position.y + (_local4.m_invMass * _local22)); _local4.m_rotation = (_local4.m_rotation + (_local4.m_invI * ((_local9 * _local22) - (_local10 * _local21)))); _local4.m_R.Set(_local4.m_rotation); _local23 = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local24 = ((_local4.m_rotation - _local3.m_rotation) - m_intialAngle); _local25 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local24, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local25 = (-(m_motorMass) * _local2); _local23 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local24 - m_lowerAngle); _local23 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local25 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local25), 0); _local25 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local24 - m_upperAngle); _local23 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local25 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local25), 0); _local25 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_rotation = (_local3.m_rotation - (_local3.m_invI * _local25)); _local3.m_R.Set(_local3.m_rotation); _local4.m_rotation = (_local4.m_rotation + (_local4.m_invI * _local25)); _local4.m_R.Set(_local4.m_rotation); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local23 <= b2Settings.b2_angularSlop)))); } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function SetMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetJointAngle():Number{ return ((m_body2.m_rotation - m_body1.m_rotation)); } public function GetMotorTorque(_arg1:Number):Number{ return ((_arg1 * m_motorImpulse)); } override public function GetReactionTorque(_arg1:Number):Number{ return ((_arg1 * m_limitImpulse)); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_R; _local5 = ((_local4.col1.x * m_localAnchor1.x) + (_local4.col2.x * m_localAnchor1.y)); _local6 = ((_local4.col1.y * m_localAnchor1.x) + (_local4.col2.y * m_localAnchor1.y)); _local4 = _local3.m_R; _local7 = ((_local4.col1.x * m_localAnchor2.x) + (_local4.col2.x * m_localAnchor2.y)); _local8 = ((_local4.col1.y * m_localAnchor2.x) + (_local4.col2.y * m_localAnchor2.y)); _local10 = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local8)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local6)); _local11 = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local7)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local5)); _local12 = -(((m_ptpMass.col1.x * _local10) + (m_ptpMass.col2.x * _local11))); _local13 = -(((m_ptpMass.col1.y * _local10) + (m_ptpMass.col2.y * _local11))); m_ptpImpulse.x = (m_ptpImpulse.x + _local12); m_ptpImpulse.y = (m_ptpImpulse.y + _local13); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local12)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local13)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local5 * _local13) - (_local6 * _local12)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local12)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local13)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local7 * _local13) - (_local8 * _local12)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local14 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local15 = (-(m_motorMass) * _local14); _local16 = m_motorImpulse; m_motorImpulse = b2Math.b2Clamp((m_motorImpulse + _local15), (-(_arg1.dt) * m_maxMotorTorque), (_arg1.dt * m_maxMotorTorque)); _local15 = (m_motorImpulse - _local16); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * _local15)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * _local15)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local17 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local18 = (-(m_motorMass) * _local17); if (m_limitState == e_equalLimits){ m_limitImpulse = (m_limitImpulse + _local18); } else { if (m_limitState == e_atLowerLimit){ _local9 = m_limitImpulse; m_limitImpulse = b2Math.b2Max((m_limitImpulse + _local18), 0); _local18 = (m_limitImpulse - _local9); } else { if (m_limitState == e_atUpperLimit){ _local9 = m_limitImpulse; m_limitImpulse = b2Math.b2Min((m_limitImpulse + _local18), 0); _local18 = (m_limitImpulse - _local9); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * _local18)); }; } } }//package Box2D.Dynamics.Joints
Section 54
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2RevoluteJointDef extends b2JointDef { public var upperAngle:Number; public var lowerAngle:Number; public var motorSpeed:Number; public var anchorPoint:b2Vec2; public var motorTorque:Number; public var enableMotor:Boolean; public var enableLimit:Boolean; public function b2RevoluteJointDef(){ type = b2Joint.e_revoluteJoint; anchorPoint = new b2Vec2(0, 0); lowerAngle = 0; upperAngle = 0; motorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } } }//package Box2D.Dynamics.Joints
Section 55
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; public class b2Body { public var m_next:b2Body; public var m_mass:Number; public var m_contactList:b2ContactNode; public var m_angularVelocity:Number; public var m_rotation:Number; public var m_shapeList:b2Shape; public var m_R:b2Mat22; public var m_force:b2Vec2; public var m_torque:Number; public var m_rotation0:Number; public var m_userData; public var m_linearVelocity:b2Vec2; public var m_invMass:Number; public var m_position:b2Vec2; public var m_flags:uint; public var m_invI:Number; public var m_linearDamping:Number; public var m_prev:b2Body; public var m_world:b2World; public var m_angularDamping:Number; public var m_position0:b2Vec2; private var sMat0:b2Mat22; public var m_center:b2Vec2; public var m_sleepTime:Number; public var m_shapeCount:int; public var m_I:Number; public var m_jointList:b2JointNode; public static var e_frozenFlag:uint = 2; public static var e_sleepFlag:uint = 8; public static var e_islandFlag:uint = 4; public static var e_destroyFlag:uint = 32; public static var e_allowSleepFlag:uint = 16; public static var e_staticFlag:uint = 1; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ var _local3:int; var _local4:b2ShapeDef; var _local5:b2MassData; var _local6:Array; var _local7:b2Vec2; var _local8:b2Shape; sMat0 = new b2Mat22(); m_position = new b2Vec2(); m_R = new b2Mat22(0); m_position0 = new b2Vec2(); super(); m_flags = 0; m_position.SetV(_arg1.position); m_rotation = _arg1.rotation; m_R.Set(m_rotation); m_position0.SetV(m_position); m_rotation0 = m_rotation; m_world = _arg2; m_linearDamping = b2Math.b2Clamp((1 - _arg1.linearDamping), 0, 1); m_angularDamping = b2Math.b2Clamp((1 - _arg1.angularDamping), 0, 1); m_force = new b2Vec2(0, 0); m_torque = 0; m_mass = 0; _local6 = new Array(b2Settings.b2_maxShapesPerBody); _local3 = 0; while (_local3 < b2Settings.b2_maxShapesPerBody) { _local6[_local3] = new b2MassData(); _local3++; }; m_shapeCount = 0; m_center = new b2Vec2(0, 0); _local3 = 0; while (_local3 < b2Settings.b2_maxShapesPerBody) { _local4 = _arg1.shapes[_local3]; if (_local4 == null){ break; }; _local5 = _local6[_local3]; _local4.ComputeMass(_local5); m_mass = (m_mass + _local5.mass); m_center.x = (m_center.x + (_local5.mass * (_local4.localPosition.x + _local5.center.x))); m_center.y = (m_center.y + (_local5.mass * (_local4.localPosition.y + _local5.center.y))); m_shapeCount++; _local3++; }; if (m_mass > 0){ m_center.Multiply((1 / m_mass)); m_position.Add(b2Math.b2MulMV(m_R, m_center)); } else { m_flags = (m_flags | e_staticFlag); }; m_I = 0; _local3 = 0; while (_local3 < m_shapeCount) { _local4 = _arg1.shapes[_local3]; _local5 = _local6[_local3]; m_I = (m_I + _local5.I); _local7 = b2Math.SubtractVV(b2Math.AddVV(_local4.localPosition, _local5.center), m_center); m_I = (m_I + (_local5.mass * b2Math.b2Dot(_local7, _local7))); _local3++; }; if (m_mass > 0){ m_invMass = (1 / m_mass); } else { m_invMass = 0; }; if ((((m_I > 0)) && ((_arg1.preventRotation == false)))){ m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_linearVelocity = b2Math.AddVV(_arg1.linearVelocity, b2Math.b2CrossFV(_arg1.angularVelocity, m_center)); m_angularVelocity = _arg1.angularVelocity; m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_shapeList = null; _local3 = 0; while (_local3 < m_shapeCount) { _local4 = _arg1.shapes[_local3]; _local8 = b2Shape.Create(_local4, this, m_center); _local8.m_next = m_shapeList; m_shapeList = _local8; _local3++; }; m_sleepTime = 0; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; if ((((m_flags & e_sleepFlag)) || ((m_invMass == 0)))){ m_linearVelocity.Set(0, 0); m_angularVelocity = 0; }; m_userData = _arg1.userData; } public function SetCenterPosition(_arg1:b2Vec2, _arg2:Number):void{ var _local3:b2Shape; if (IsFrozen()){ return; }; m_rotation = _arg2; m_R.Set(m_rotation); m_position.SetV(_arg1); m_position0.SetV(m_position); m_rotation0 = m_rotation; _local3 = m_shapeList; while (_local3 != null) { _local3.Synchronize(m_position, m_R, m_position, m_R); _local3 = _local3.m_next; }; m_world.m_broadPhase.Commit(); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.AddVV(m_position, b2Math.b2MulMV(m_R, _arg1))); } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function QuickSyncShapes():void{ var _local1:b2Shape; _local1 = m_shapeList; while (_local1 != null) { _local1.QuickSync(m_position, m_R); _local1 = _local1.m_next; }; } public function GetInertia():Number{ return (m_I); } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_R, _arg1)); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function GetJointList():b2JointNode{ return (m_jointList); } public function GetRotationMatrix():b2Mat22{ return (m_R); } public function Freeze():void{ var _local1:b2Shape; m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local1 = m_shapeList; while (_local1 != null) { _local1.DestroyProxy(); _local1 = _local1.m_next; }; } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SynchronizeShapes():void{ var _local1:b2Shape; sMat0.Set(m_rotation0); _local1 = m_shapeList; while (_local1 != null) { _local1.Synchronize(m_position0, sMat0, m_position, m_R); _local1 = _local1.m_next; }; } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping() == false){ m_force.Add(_arg1); m_torque = (m_torque + b2Math.b2CrossVV(b2Math.SubtractVV(_arg2, m_position), _arg1)); }; } public function GetOriginPosition():b2Vec2{ return (b2Math.SubtractVV(m_position, b2Math.b2MulMV(m_R, m_center))); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping() == false){ m_linearVelocity.Add(b2Math.MulFV(m_invMass, _arg1)); m_angularVelocity = (m_angularVelocity + (m_invI * b2Math.b2CrossVV(b2Math.SubtractVV(_arg2, m_position), _arg1))); }; } public function GetContactList():b2ContactNode{ return (m_contactList); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function GetMass():Number{ return (m_mass); } public function GetShapeList():b2Shape{ return (m_shapeList); } public function SetOriginPosition(_arg1:b2Vec2, _arg2:Number):void{ var _local3:b2Shape; if (IsFrozen()){ return; }; m_rotation = _arg2; m_R.Set(m_rotation); m_position = b2Math.AddVV(_arg1, b2Math.b2MulMV(m_R, m_center)); m_position0.SetV(m_position); m_rotation0 = m_rotation; _local3 = m_shapeList; while (_local3 != null) { _local3.Synchronize(m_position, m_R, m_position, m_R); _local3 = _local3.m_next; }; m_world.m_broadPhase.Commit(); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_R, b2Math.SubtractVV(_arg1, m_position))); } public function GetRotation():Number{ return (m_rotation); } public function IsStatic():Boolean{ return (((m_flags & e_staticFlag) == e_staticFlag)); } public function Destroy():void{ var _local1:b2Shape; var _local2:b2Shape; _local1 = m_shapeList; while (_local1) { _local2 = _local1; _local1 = _local1.m_next; b2Shape.Destroy(_local2); }; } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_R, _arg1)); } public function GetNext():b2Body{ return (m_next); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointNode; _local2 = m_jointList; while (_local2 != null) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function GetUserData(){ return (m_userData); } public function GetCenterPosition():b2Vec2{ return (m_position); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping() == false){ m_torque = (m_torque + _arg1); }; } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } } }//package Box2D.Dynamics
Section 56
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2BodyDef { public var angularDamping:Number; public var rotation:Number; public var allowSleep:Boolean; public var userData; public var linearDamping:Number; public var angularVelocity:Number; public var linearVelocity:b2Vec2; public var position:b2Vec2; public var shapes:Array; public var isSleeping:Boolean; public var preventRotation:Boolean; public function b2BodyDef(){ var _local1:int; shapes = new Array(); super(); userData = null; _local1 = 0; while (_local1 < b2Settings.b2_maxShapesPerBody) { shapes[_local1] = null; _local1++; }; position = new b2Vec2(0, 0); rotation = 0; linearVelocity = new b2Vec2(0, 0); angularVelocity = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; preventRotation = false; } public function AddShape(_arg1:b2ShapeDef):void{ var _local2:int; _local2 = 0; while (_local2 < b2Settings.b2_maxShapesPerBody) { if (shapes[_local2] == null){ shapes[_local2] = _arg1; break; }; _local2++; }; } } }//package Box2D.Dynamics
Section 57
//b2CollisionFilter (Box2D.Dynamics.b2CollisionFilter) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; public class b2CollisionFilter { public static var b2_defaultFilter:b2CollisionFilter = new (b2CollisionFilter); ; public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:Boolean; if ((((_arg1.m_groupIndex == _arg2.m_groupIndex)) && (!((_arg1.m_groupIndex == 0))))){ return ((_arg1.m_groupIndex > 0)); }; _local3 = ((!(((_arg1.m_maskBits & _arg2.m_categoryBits) == 0))) && (!(((_arg1.m_categoryBits & _arg2.m_maskBits) == 0)))); return (_local3); } } }//package Box2D.Dynamics
Section 58
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } public function Collide():void{ var _local1:b2Body; var _local2:b2Body; var _local3:b2ContactNode; var _local4:b2ContactNode; var _local5:b2Contact; var _local6:int; var _local7:int; _local5 = m_world.m_contactList; while (_local5 != null) { if (((_local5.m_shape1.m_body.IsSleeping()) && (_local5.m_shape2.m_body.IsSleeping()))){ } else { _local6 = _local5.GetManifoldCount(); _local5.Evaluate(); _local7 = _local5.GetManifoldCount(); if ((((_local6 == 0)) && ((_local7 > 0)))){ _local1 = _local5.m_shape1.m_body; _local2 = _local5.m_shape2.m_body; _local3 = _local5.m_node1; _local4 = _local5.m_node2; _local3.contact = _local5; _local3.other = _local2; _local3.prev = null; _local3.next = _local1.m_contactList; if (_local3.next != null){ _local3.next.prev = _local5.m_node1; }; _local1.m_contactList = _local5.m_node1; _local4.contact = _local5; _local4.other = _local1; _local4.prev = null; _local4.next = _local2.m_contactList; if (_local4.next != null){ _local4.next.prev = _local4; }; _local2.m_contactList = _local4; } else { if ((((_local6 > 0)) && ((_local7 == 0)))){ _local1 = _local5.m_shape1.m_body; _local2 = _local5.m_shape2.m_body; _local3 = _local5.m_node1; _local4 = _local5.m_node2; if (_local3.prev){ _local3.prev.next = _local3.next; }; if (_local3.next){ _local3.next.prev = _local3.prev; }; if (_local3 == _local1.m_contactList){ _local1.m_contactList = _local3.next; }; _local3.prev = null; _local3.next = null; if (_local4.prev){ _local4.prev.next = _local4.next; }; if (_local4.next){ _local4.next.prev = _local4.prev; }; if (_local4 == _local2.m_contactList){ _local2.m_contactList = _local4.next; }; _local4.prev = null; _local4.next = null; }; }; }; _local5 = _local5.m_next; }; } public function DestroyContact(_arg1:b2Contact):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2ContactNode; var _local5:b2ContactNode; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; if (_arg1.GetManifoldCount() > 0){ _local2 = _arg1.m_shape1.m_body; _local3 = _arg1.m_shape2.m_body; _local4 = _arg1.m_node1; _local5 = _arg1.m_node2; _local2.WakeUp(); _local3.WakeUp(); if (_local4.prev){ _local4.prev.next = _local4.next; }; if (_local4.next){ _local4.next.prev = _local4.prev; }; if (_local4 == _local2.m_contactList){ _local2.m_contactList = _local4.next; }; _local4.prev = null; _local4.next = null; if (_local5.prev){ _local5.prev.next = _local5.next; }; if (_local5.next){ _local5.next.prev = _local5.prev; }; if (_local5 == _local3.m_contactList){ _local3.m_contactList = _local5.next; }; _local5.prev = null; _local5.next = null; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2Contact; var _local8:b2Shape; var _local9:b2Body; _local3 = (_arg1 as b2Shape); _local4 = (_arg2 as b2Shape); _local5 = _local3.m_body; _local6 = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_filter == null))) && ((m_world.m_filter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; if (_local6.m_invMass == 0){ _local8 = _local3; _local3 = _local4; _local4 = _local8; _local9 = _local5; _local5 = _local6; _local6 = _local9; }; _local7 = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _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; m_world.m_contactCount++; return (_local7); } public function CleanContactList():void{ var _local1:b2Contact; var _local2:b2Contact; _local1 = m_world.m_contactList; while (_local1 != null) { _local2 = _local1; _local1 = _local1.m_next; if ((_local2.m_flags & b2Contact.e_destroyFlag)){ DestroyContact(_local2); _local2 = null; }; }; } override public function PairRemoved(_arg1, _arg2, _arg3):void{ var _local4:b2Contact; if (_arg3 == null){ return; }; _local4 = (_arg3 as b2Contact); if (_local4 != m_nullContact){ if (m_destroyImmediate == true){ DestroyContact(_local4); _local4 = null; } else { _local4.m_flags = (_local4.m_flags | b2Contact.e_destroyFlag); }; }; } } }//package Box2D.Dynamics
Section 59
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Contacts.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; public class b2Island { public var m_positionError:Number; 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; public static var m_positionIterationCount:uint; public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4):void{ var _local5:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_bodies = new Array(_arg1); _local5 = 0; while (_local5 < _arg1) { m_bodies[_local5] = null; _local5++; }; m_contacts = new Array(_arg2); _local5 = 0; while (_local5 < _arg2) { m_contacts[_local5] = null; _local5++; }; m_joints = new Array(_arg3); _local5 = 0; while (_local5 < _arg3) { m_joints[_local5] = null; _local5++; }; m_allocator = _arg4; } 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 Solve(_arg1:b2TimeStep, _arg2:b2Vec2):void{ var _local3:int; var _local4:b2Body; var _local5:b2ContactSolver; var _local6:int; var _local7:Boolean; var _local8:Boolean; var _local9:Boolean; _local3 = 0; while (_local3 < m_bodyCount) { _local4 = m_bodies[_local3]; if (_local4.m_invMass == 0){ } else { _local4.m_linearVelocity.Add(b2Math.MulFV(_arg1.dt, b2Math.AddVV(_arg2, b2Math.MulFV(_local4.m_invMass, _local4.m_force)))); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_arg1.dt * _local4.m_invI) * _local4.m_torque)); _local4.m_linearVelocity.Multiply(_local4.m_linearDamping); _local4.m_angularVelocity = (_local4.m_angularVelocity * _local4.m_angularDamping); _local4.m_position0.SetV(_local4.m_position); _local4.m_rotation0 = _local4.m_rotation; }; _local3++; }; _local5 = new b2ContactSolver(m_contacts, m_contactCount, m_allocator); _local5.PreSolve(); _local3 = 0; while (_local3 < m_jointCount) { m_joints[_local3].PrepareVelocitySolver(); _local3++; }; _local3 = 0; while (_local3 < _arg1.iterations) { _local5.SolveVelocityConstraints(); _local6 = 0; while (_local6 < m_jointCount) { m_joints[_local6].SolveVelocityConstraints(_arg1); _local6++; }; _local3++; }; _local3 = 0; while (_local3 < m_bodyCount) { _local4 = m_bodies[_local3]; if (_local4.m_invMass == 0){ } else { _local4.m_position.x = (_local4.m_position.x + (_arg1.dt * _local4.m_linearVelocity.x)); _local4.m_position.y = (_local4.m_position.y + (_arg1.dt * _local4.m_linearVelocity.y)); _local4.m_rotation = (_local4.m_rotation + (_arg1.dt * _local4.m_angularVelocity)); _local4.m_R.Set(_local4.m_rotation); }; _local3++; }; _local3 = 0; while (_local3 < m_jointCount) { m_joints[_local3].PreparePositionSolver(); _local3++; }; if (b2World.s_enablePositionCorrection){ m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.iterations) { _local7 = _local5.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local8 = true; _local3 = 0; while (_local3 < m_jointCount) { _local9 = m_joints[_local3].SolvePositionConstraints(); _local8 = ((_local8) && (_local9)); _local3++; }; if (((_local7) && (_local8))){ break; }; m_positionIterationCount++; }; }; _local5.PostSolve(); _local3 = 0; while (_local3 < m_bodyCount) { _local4 = m_bodies[_local3]; if (_local4.m_invMass == 0){ } else { _local4.m_R.Set(_local4.m_rotation); _local4.SynchronizeShapes(); _local4.m_force.Set(0, 0); _local4.m_torque = 0; }; _local3++; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function UpdateSleep(_arg1:Number):void{ var _local2:int; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; _local4 = Number.MAX_VALUE; _local5 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local6 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local2 = 0; while (_local2 < m_bodyCount) { _local3 = m_bodies[_local2]; if (_local3.m_invMass == 0){ } else { if ((_local3.m_flags & b2Body.e_allowSleepFlag) == 0){ _local3.m_sleepTime = 0; _local4 = 0; }; if (((((((_local3.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local3.m_angularVelocity * _local3.m_angularVelocity) > _local6)))) || ((b2Math.b2Dot(_local3.m_linearVelocity, _local3.m_linearVelocity) > _local5)))){ _local3.m_sleepTime = 0; _local4 = 0; } else { _local3.m_sleepTime = (_local3.m_sleepTime + _arg1); _local4 = b2Math.b2Min(_local4, _local3.m_sleepTime); }; }; _local2++; }; if (_local4 >= b2Settings.b2_timeToSleep){ _local2 = 0; while (_local2 < m_bodyCount) { _local3 = m_bodies[_local2]; _local3.m_flags = (_local3.m_flags | b2Body.e_sleepFlag); _local2++; }; }; } } }//package Box2D.Dynamics
Section 60
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var dt:Number; public var iterations:int; public var inv_dt:Number; } }//package Box2D.Dynamics
Section 61
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; public class b2World { public var m_filter:b2CollisionFilter; public var m_blockAllocator; public var m_contactList:b2Contact; public var m_broadPhase:b2BroadPhase; public var m_allowSleep:Boolean; public var m_jointCount:int; public var m_bodyCount:int; public var m_listener:b2WorldListener; private var step:b2TimeStep; public var m_positionIterationCount:int; public var m_groundBody:b2Body; public var m_contactCount:int; public var m_bodyDestroyList:b2Body; public var m_bodyList:b2Body; public var m_stackAllocator; public var m_gravity:b2Vec2; public var m_jointList:b2Joint; public var m_contactManager:b2ContactManager; public static var s_enableWarmStarting:int = 1; public static var s_enablePositionCorrection:int = 1; public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ var _local4:b2BodyDef; step = new b2TimeStep(); m_contactManager = new b2ContactManager(); super(); m_listener = null; m_filter = b2CollisionFilter.b2_defaultFilter; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_bodyDestroyList = null; m_allowSleep = _arg3; m_gravity = _arg2; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); _local4 = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function SetListener(_arg1:b2WorldListener):void{ m_listener = _arg1; } public function DestroyBody(_arg1:b2Body):void{ if ((_arg1.m_flags & b2Body.e_destroyFlag)){ return; }; 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; }; _arg1.m_flags = (_arg1.m_flags | b2Body.e_destroyFlag); m_bodyCount--; _arg1.m_prev = null; _arg1.m_next = m_bodyDestroyList; m_bodyDestroyList = _arg1; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array; var _local5:int; var _local6:int; _local4 = new Array(); _local5 = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); _local6 = 0; while (_local6 < _local5) { _arg2[_local6] = (_local4[_local6] as b2Shape); _local6++; }; return (_local5); } public function CleanBodyList():void{ var _local1:b2Body; var _local2:b2Body; var _local3:b2JointNode; var _local4:b2JointNode; m_contactManager.m_destroyImmediate = true; _local1 = m_bodyDestroyList; while (_local1) { _local2 = _local1; _local1 = _local1.m_next; _local3 = _local2.m_jointList; while (_local3) { _local4 = _local3; _local3 = _local3.next; if (m_listener){ m_listener.NotifyJointDestroyed(_local4.joint); }; DestroyJoint(_local4.joint); }; _local2.Destroy(); }; m_bodyDestroyList = null; m_contactManager.m_destroyImmediate = false; } public function GetJointList():b2Joint{ return (m_jointList); } public function GetBodyList():b2Body{ return (m_bodyList); } public function GetContactList():b2Contact{ return (m_contactList); } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local2:b2Joint; var _local3:b2Body; var _local4:b2Shape; _local2 = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.ResetProxy(m_broadPhase); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local2:Boolean; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:b2Shape; _local2 = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; _local3 = _arg1.m_body1; _local4 = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.ResetProxy(m_broadPhase); _local6 = _local6.m_next; }; }; } public function SetFilter(_arg1:b2CollisionFilter):void{ m_filter = _arg1; } public function CreateBody(_arg1:b2BodyDef):b2Body{ var _local2:b2Body; _local2 = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function Step(_arg1:Number, _arg2:int):void{ var _local3:b2Body; var _local4:b2Body; var _local5:b2Island; var _local6:b2Contact; var _local7:b2Joint; var _local8:int; var _local9:Array; var _local10:int; var _local11:b2Body; var _local12:int; var _local13:int; var _local14:b2ContactNode; var _local15:b2JointNode; var _local16:uint; step.dt = _arg1; step.iterations = _arg2; if (_arg1 > 0){ step.inv_dt = (1 / _arg1); } else { step.inv_dt = 0; }; m_positionIterationCount = 0; m_contactManager.CleanContactList(); CleanBodyList(); m_contactManager.Collide(); _local5 = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator); _local3 = m_bodyList; while (_local3 != null) { _local3.m_flags = (_local3.m_flags & ~(b2Body.e_islandFlag)); _local3 = _local3.m_next; }; _local6 = m_contactList; while (_local6 != null) { _local6.m_flags = (_local6.m_flags & ~(b2Contact.e_islandFlag)); _local6 = _local6.m_next; }; _local7 = m_jointList; while (_local7 != null) { _local7.m_islandFlag = false; _local7 = _local7.m_next; }; _local8 = m_bodyCount; _local9 = new Array(m_bodyCount); _local10 = 0; while (_local10 < m_bodyCount) { _local9[_local10] = null; _local10++; }; _local11 = m_bodyList; while (_local11 != null) { if ((_local11.m_flags & (((b2Body.e_staticFlag | b2Body.e_islandFlag) | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { _local5.Clear(); _local12 = 0; var _temp1 = _local12; _local12 = (_local12 + 1); var _local17 = _temp1; _local9[_local17] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); while (_local12 > 0) { --_local12; _local3 = _local9[_local12]; _local5.AddBody(_local3); _local3.m_flags = (_local3.m_flags & ~(b2Body.e_sleepFlag)); if ((_local3.m_flags & b2Body.e_staticFlag)){ } else { _local14 = _local3.m_contactList; while (_local14 != null) { if ((_local14.contact.m_flags & b2Contact.e_islandFlag)){ } else { _local5.AddContact(_local14.contact); _local14.contact.m_flags = (_local14.contact.m_flags | b2Contact.e_islandFlag); _local4 = _local14.other; if ((_local4.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local12; _local12 = (_local12 + 1); var _local18 = _temp2; _local9[_local18] = _local4; _local4.m_flags = (_local4.m_flags | b2Body.e_islandFlag); }; }; _local14 = _local14.next; }; _local15 = _local3.m_jointList; while (_local15 != null) { if (_local15.joint.m_islandFlag == true){ } else { _local5.AddJoint(_local15.joint); _local15.joint.m_islandFlag = true; _local4 = _local15.other; if ((_local4.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local12; _local12 = (_local12 + 1); _local18 = _temp3; _local9[_local18] = _local4; _local4.m_flags = (_local4.m_flags | b2Body.e_islandFlag); }; }; _local15 = _local15.next; }; }; }; _local5.Solve(step, m_gravity); m_positionIterationCount = b2Math.b2Max(m_positionIterationCount, b2Island.m_positionIterationCount); if (m_allowSleep){ _local5.UpdateSleep(_arg1); }; _local13 = 0; while (_local13 < _local5.m_bodyCount) { _local3 = _local5.m_bodies[_local13]; if ((_local3.m_flags & b2Body.e_staticFlag)){ _local3.m_flags = (_local3.m_flags & ~(b2Body.e_islandFlag)); }; if (((_local3.IsFrozen()) && (m_listener))){ _local16 = m_listener.NotifyBoundaryViolated(_local3); if (_local16 == b2WorldListener.b2_destroyBody){ DestroyBody(_local3); _local3 = null; _local5.m_bodies[_local13] = null; }; }; _local13++; }; }; _local11 = _local11.m_next; }; m_broadPhase.Commit(); } } }//package Box2D.Dynamics
Section 62
//b2WorldListener (Box2D.Dynamics.b2WorldListener) package Box2D.Dynamics { import Box2D.Dynamics.Joints.*; public class b2WorldListener { public static var b2_freezeBody:uint = 0; public static var b2_destroyBody:uint = 1; public function NotifyBoundaryViolated(_arg1:b2Body):uint{ return (b2_freezeBody); } public function NotifyJointDestroyed(_arg1:b2Joint):void{ } } }//package Box2D.Dynamics
Section 63
//AdLoader (CPMStar.AdLoader) package CPMStar { import flash.events.*; import flash.display.*; import flash.net.*; import flash.system.*; public class AdLoader extends Sprite { private var contentspotid:String; private var cpmstarLoader:Loader; public function AdLoader(_arg1:String){ this.contentspotid = _arg1; addEventListener(Event.ADDED, addedHandler); } private function addedHandler(_arg1:Event):void{ var _local2:String; var _local3:DisplayObjectContainer; removeEventListener(Event.ADDED, addedHandler); Security.allowDomain("server.cpmstar.com"); _local2 = "http://server.cpmstar.com/adviewas3.swf"; _local3 = parent; cpmstarLoader = new Loader(); cpmstarLoader.contentLoaderInfo.addEventListener(Event.INIT, dispatchHandler); cpmstarLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, dispatchHandler); cpmstarLoader.load(new URLRequest(((_local2 + "?contentspotid=") + contentspotid))); addChild(cpmstarLoader); } private function dispatchHandler(_arg1:Event):void{ dispatchEvent(_arg1); } } }//package CPMStar
Section 64
//None (fl.transitions.easing.None) package fl.transitions.easing { public class None { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } } }//package fl.transitions.easing
Section 65
//Strong (fl.transitions.easing.Strong) package fl.transitions.easing { public class Strong { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2)); } } }//package fl.transitions.easing
Section 66
//Tween (fl.transitions.Tween) package fl.transitions { import flash.events.*; import flash.display.*; import flash.utils.*; public class Tween extends EventDispatcher { private var _position:Number;// = NAN public var prevTime:Number;// = NAN public var prevPos:Number;// = NAN public var isPlaying:Boolean;// = false public var begin:Number;// = NAN private var _fps:Number;// = NAN private var _time:Number;// = NAN public var change:Number;// = NAN private var _finish:Number;// = NAN public var looping:Boolean;// = false private var _intervalID:uint;// = 0 public var func:Function; private var _timer:Timer;// = null private var _startTime:Number;// = NAN public var prop:String;// = "" private var _duration:Number;// = NAN public var obj:Object;// = null public var useSeconds:Boolean;// = false protected static var _mc:MovieClip = new MovieClip(); public function Tween(_arg1:Object, _arg2:String, _arg3:Function, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean=false){ isPlaying = false; obj = null; prop = ""; func = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); }; begin = NaN; change = NaN; useSeconds = false; prevTime = NaN; prevPos = NaN; looping = false; _duration = NaN; _time = NaN; _fps = NaN; _position = NaN; _startTime = NaN; _intervalID = 0; _finish = NaN; _timer = null; super(); if (!arguments.length){ return; }; this.obj = _arg1; this.prop = _arg2; this.begin = _arg4; this.position = _arg4; this.duration = _arg6; this.useSeconds = _arg7; if ((_arg3 is Function)){ this.func = _arg3; }; this.finish = _arg5; this._timer = new Timer(100); this.start(); } public function continueTo(_arg1:Number, _arg2:Number):void{ this.begin = this.position; this.finish = _arg1; if (!isNaN(_arg2)){ this.duration = _arg2; }; this.start(); } public function stop():void{ this.stopEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_STOP, this._time, this._position)); } private function fixTime():void{ if (this.useSeconds){ this._startTime = (getTimer() - (this._time * 1000)); }; } public function set FPS(_arg1:Number):void{ var _local2:Boolean; _local2 = this.isPlaying; this.stopEnterFrame(); this._fps = _arg1; if (_local2){ this.startEnterFrame(); }; } public function get finish():Number{ return ((this.begin + this.change)); } public function get duration():Number{ return (this._duration); } protected function startEnterFrame():void{ var _local1:Number; if (isNaN(this._fps)){ _mc.addEventListener(Event.ENTER_FRAME, this.onEnterFrame, false, 0, true); } else { _local1 = (1000 / this._fps); this._timer.delay = _local1; this._timer.addEventListener(TimerEvent.TIMER, this.timerHandler, false, 0, true); this._timer.start(); }; this.isPlaying = true; } public function set time(_arg1:Number):void{ this.prevTime = this._time; if (_arg1 > this.duration){ if (this.looping){ this.rewind((_arg1 - this._duration)); this.update(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_LOOP, this._time, this._position)); } else { if (this.useSeconds){ this._time = this._duration; this.update(); }; this.stop(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_FINISH, this._time, this._position)); }; } else { if (_arg1 < 0){ this.rewind(); this.update(); } else { this._time = _arg1; this.update(); }; }; } protected function stopEnterFrame():void{ if (isNaN(this._fps)){ _mc.removeEventListener(Event.ENTER_FRAME, this.onEnterFrame); } else { this._timer.stop(); }; this.isPlaying = false; } public function getPosition(_arg1:Number=NaN):Number{ if (isNaN(_arg1)){ _arg1 = this._time; }; return (this.func(_arg1, this.begin, this.change, this._duration)); } public function set finish(_arg1:Number):void{ this.change = (_arg1 - this.begin); } public function set duration(_arg1:Number):void{ this._duration = ((_arg1)<=0) ? Infinity : _arg1; } public function setPosition(_arg1:Number):void{ this.prevPos = this._position; if (this.prop.length){ this.obj[this.prop] = (this._position = _arg1); }; this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_CHANGE, this._time, this._position)); } public function resume():void{ this.fixTime(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_RESUME, this._time, this._position)); } public function fforward():void{ this.time = this._duration; this.fixTime(); } protected function onEnterFrame(_arg1:Event):void{ this.nextFrame(); } public function get position():Number{ return (this.getPosition(this._time)); } public function yoyo():void{ this.continueTo(this.begin, this.time); } public function nextFrame():void{ if (this.useSeconds){ this.time = ((getTimer() - this._startTime) / 1000); } else { this.time = (this._time + 1); }; } protected function timerHandler(_arg1:TimerEvent):void{ this.nextFrame(); _arg1.updateAfterEvent(); } public function get FPS():Number{ return (this._fps); } public function rewind(_arg1:Number=0):void{ this._time = _arg1; this.fixTime(); this.update(); } public function set position(_arg1:Number):void{ this.setPosition(_arg1); } public function get time():Number{ return (this._time); } private function update():void{ this.setPosition(this.getPosition(this._time)); } public function start():void{ this.rewind(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_START, this._time, this._position)); } public function prevFrame():void{ if (!this.useSeconds){ this.time = (this._time - 1); }; } } }//package fl.transitions
Section 67
//TweenEvent (fl.transitions.TweenEvent) package fl.transitions { import flash.events.*; public class TweenEvent extends Event { public var time:Number;// = NAN public var position:Number;// = NAN public static const MOTION_START:String = "motionStart"; public static const MOTION_STOP:String = "motionStop"; public static const MOTION_LOOP:String = "motionLoop"; public static const MOTION_CHANGE:String = "motionChange"; public static const MOTION_FINISH:String = "motionFinish"; public static const MOTION_RESUME:String = "motionResume"; public function TweenEvent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Boolean=false){ time = NaN; position = NaN; super(_arg1, _arg4, _arg5); this.time = _arg2; this.position = _arg3; } override public function clone():Event{ return (new TweenEvent(this.type, this.time, this.position, this.bubbles, this.cancelable)); } } }//package fl.transitions
Section 68
//arcadetown_splash_16 (galaxochimp_fla.arcadetown_splash_16) package galaxochimp_fla { import flash.display.*; public dynamic class arcadetown_splash_16 extends MovieClip { public function arcadetown_splash_16(){ addFrameScript(89, frame90); } function frame90(){ MovieClip(parent).nextFrame(); } } }//package galaxochimp_fla
Section 69
//awardCup_mc_107 (galaxochimp_fla.awardCup_mc_107) package galaxochimp_fla { import flash.display.*; public dynamic class awardCup_mc_107 extends MovieClip { public function awardCup_mc_107(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package galaxochimp_fla
Section 70
//awardGun_mc_115 (galaxochimp_fla.awardGun_mc_115) package galaxochimp_fla { import flash.display.*; public dynamic class awardGun_mc_115 extends MovieClip { public function awardGun_mc_115(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package galaxochimp_fla
Section 71
//awardKinetroid_mc_109 (galaxochimp_fla.awardKinetroid_mc_109) package galaxochimp_fla { import flash.display.*; public dynamic class awardKinetroid_mc_109 extends MovieClip { public function awardKinetroid_mc_109(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package galaxochimp_fla
Section 72
//awardShield3_mc_110 (galaxochimp_fla.awardShield3_mc_110) package galaxochimp_fla { import flash.display.*; public dynamic class awardShield3_mc_110 extends MovieClip { public function awardShield3_mc_110(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package galaxochimp_fla
Section 73
//awardShield4_mc_114 (galaxochimp_fla.awardShield4_mc_114) package galaxochimp_fla { import flash.display.*; public dynamic class awardShield4_mc_114 extends MovieClip { public function awardShield4_mc_114(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package galaxochimp_fla
Section 74
//awardStar_mc_113 (galaxochimp_fla.awardStar_mc_113) package galaxochimp_fla { import flash.display.*; public dynamic class awardStar_mc_113 extends MovieClip { public function awardStar_mc_113(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package galaxochimp_fla
Section 75
//awardThumbsUp_mc_106 (galaxochimp_fla.awardThumbsUp_mc_106) package galaxochimp_fla { import flash.display.*; public dynamic class awardThumbsUp_mc_106 extends MovieClip { public function awardThumbsUp_mc_106(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package galaxochimp_fla
Section 76
//bumperLight_84 (galaxochimp_fla.bumperLight_84) package galaxochimp_fla { import flash.display.*; public dynamic class bumperLight_84 extends MovieClip { public function bumperLight_84(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package galaxochimp_fla
Section 77
//CB_button_mc_5 (galaxochimp_fla.CB_button_mc_5) package galaxochimp_fla { import flash.display.*; import flash.text.*; public dynamic class CB_button_mc_5 extends MovieClip { public var char:String; public var txt:String; public var n:uint; public var buttonText:TextField; public var newText:String; public function CB_button_mc_5(){ addFrameScript(0, frame1); } function frame1(){ stop(); txt = this.name; newText = ""; n = 0; while (n < txt.length) { char = txt.charAt(n); if (char != "_"){ newText = (newText + char); } else { newText = (newText + " "); }; n++; }; buttonText.text = newText; buttonText.mouseEnabled = false; } } }//package galaxochimp_fla
Section 78
//credits_mc_137 (galaxochimp_fla.credits_mc_137) package galaxochimp_fla { import flash.display.*; public dynamic class credits_mc_137 extends MovieClip { public var andromedusButton:SimpleButton; public var _Close_:MovieClip; } }//package galaxochimp_fla
Section 79
//help_mc_156 (galaxochimp_fla.help_mc_156) package galaxochimp_fla { import flash.display.*; public dynamic class help_mc_156 extends MovieClip { public var _Close_:MovieClip; } }//package galaxochimp_fla
Section 80
//level11_175 (galaxochimp_fla.level11_175) package galaxochimp_fla { import flash.display.*; import flash.text.*; public dynamic class level11_175 extends MovieClip { public var hint1:TextField; } }//package galaxochimp_fla
Section 81
//level19_192 (galaxochimp_fla.level19_192) package galaxochimp_fla { import flash.display.*; import flash.text.*; public dynamic class level19_192 extends MovieClip { public var hint1:TextField; } }//package galaxochimp_fla
Section 82
//level3_167 (galaxochimp_fla.level3_167) package galaxochimp_fla { import flash.display.*; import flash.text.*; public dynamic class level3_167 extends MovieClip { public var hint1:TextField; } }//package galaxochimp_fla
Section 83
//level4_170 (galaxochimp_fla.level4_170) package galaxochimp_fla { import flash.display.*; import flash.text.*; public dynamic class level4_170 extends MovieClip { public var hint1:TextField; } }//package galaxochimp_fla
Section 84
//level53_225 (galaxochimp_fla.level53_225) package galaxochimp_fla { import flash.display.*; import flash.text.*; public dynamic class level53_225 extends MovieClip { public var hint1:TextField; } }//package galaxochimp_fla
Section 85
//levelButtonHolder_mc_251 (galaxochimp_fla.levelButtonHolder_mc_251) package galaxochimp_fla { import flash.display.*; public dynamic class levelButtonHolder_mc_251 extends MovieClip { public var level1:levelThumb; public var level2:levelThumb; public var level4:levelThumb; public var level5:levelThumb; public var level6:levelThumb; public var level7:levelThumb; public var level9:levelThumb; public var level3:levelThumb; public var level8:levelThumb; public var level13:levelThumb; public var level14:levelThumb; public var level15:levelThumb; public var level16:levelThumb; public var level19:levelThumb; public var level17:levelThumb; public var level11:levelThumb; public var level18:levelThumb; public var level10:levelThumb; public var level12:levelThumb; public var level20:levelThumb; } }//package galaxochimp_fla
Section 86
//MainTimeline (galaxochimp_fla.MainTimeline) package galaxochimp_fla { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import flash.events.*; import flash.display.*; import fl.transitions.*; import flash.net.*; import fl.transitions.easing.*; import Box2D.Common.*; import flash.utils.*; import flash.media.*; import CPMStar.*; import flash.text.*; import flash.geom.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.ui.*; import flash.xml.*; public dynamic class MainTimeline extends MovieClip { public var puckYellow:MovieClip; public var buttonDistToTarget:Number; public var m_physScale:Number; public var gloss:gloss_mc; public var placing:Boolean; public var arrow:MovieClip; public var bonus:int; public var stageAssets:MovieClip; public var ad:DisplayObject; public var backgroundCanvas:Sprite; public var startOfLevelScore:uint; public var puckRed:MovieClip; public var scrolled:Number; public var bonusTweenArray:Array; public var gameCanvas:Sprite; public var myPreloader:MovieClip; public var buttonSpeed:Number; public var bonusSound:notes; public var retrying:Boolean; public var highscores:highscores_mc; public var m_iterations:int; public var rapidFireCounter:uint; public var numberOfStages:uint; public var waitForMouseUp:Boolean; public var tickerSection:uint; public var killed:Boolean; public var fireSound:fire; public var upKeyDown:Boolean; public var finished:Boolean; public var numberOfLevels; public var crosshairs:crosshairs_mc; public var bubbleSpeedX:Number; public var downKeyDown:Boolean; public var onKong:Boolean; public var CPMStarContentSpotID:String; public var teleportPair:uint; public var delayStart:Boolean; public var cleaned:Boolean; public var bubbleSpeedY:Number; public var background1:MovieClip; public var background2:MovieClip; public var background3:MovieClip; public var background4:MovieClip; public var glints:glints_mc; public var livesLost:uint; public var fadePuckIn:Boolean; public var submitSuccess:Boolean; public var fpsCounter:Number; public var fps:Number; public var gameZoneRadius:Number; public var gameoverSound:gameover; public var hsLoader:URLLoader; public var lives:int; public var checkForCollisions:Boolean; public var numberOfEGs:uint; public var launchSound:launch; public var levelsPlayed:uint; public var sky:blueGradient_mc; public var confirmQuit:confirmQuit_mc; public var puckArray:Array; public var currentURL:String; public var gui:gui_mc; public var levelOffset:int; public var securityOn:Boolean; public var chimeSound:chime; public var soundToggle:soundToggle_mc; public var highestLevel:uint; public var aim:Boolean; public var m_world:b2World; public var blackScreen:blackScreen_mc; public var gun:gun_mc; public var menu:menu_mc; public var targetRed:targetRed_mc; public var targetYellow:targetYellow_mc; public var preventFiring:Boolean; public var wallSound:wall; public var gameRunning:Boolean; public var tickerArray:Array; public var scrollSpeed:Number; public var ground:MovieClip; public var currentLevel:uint; public var lastButtonPressed:String; public var bonusLifeInterval:uint; public var leftKeyDown:Boolean; public var instructions:instructions_mc; public var levelSelect:levelSelect_mc; public var newGame:Boolean; public var awards:awards_mc; public var currentURL2:String; public var fpsElapsedTime:Number; public var startLives:int; public var counterMax:uint; public var myBall:b2Body; public var numberOfPucks:uint; public var targetBlue:targetBlue_mc; public var hintBox:hintBox_mc; public var puckGreen:MovieClip; public var lastBody2:b2Body; public var centre:Point; public var storeBallY:int; public var numberOfTargets:uint; public var rightKeyDown:Boolean; public var maxAngVel:Number; public var lastBody1:b2Body; public var projectCanvas:Sprite; public var teleportArray:Array; public var targetsReached:uint; public var mouseIsDown:Boolean; public var adjusting:Boolean; public var musicSound; public var musicToggle:musicToggle_mc; public var targetSound:target; public var counter:uint; public var torque:Number; public var alwaysUnlocked:uint; public var slowBarStartValue:Number; public var oldArrow:MovieClip; public var fadeInTween:Tween; public var levelButtonStart:Number; public var slowBarValue:Number; public var kinetroidsDestroyed:uint; public var metalSound:metal; public var myBallRadius:uint; public var crosshairsOn:Boolean; public var numberOfHintBoxes:uint; public var debug:debug_mc; public var ballSound:ball; public var tickerPresent:Boolean; public var levelInfo:levelInfo_mc; public var discsUsed:uint; public var so:SharedObject; public var grav:Number; public var allowedURL2:String; public var confirmReset:confirmReset_mc; public var fadeOutTween:Tween; public var targetReached:Boolean; public var impulseSize:Number; public var score:uint; public var winSound:win; public var flying:Boolean; public var hint:Array; public var allowedURL:String; public var adBox:MovieClip; public var allowedLocal:String; public var gunShadow:gunShadow_mc; public var tweenArray:Array; public var gunCanvas:Sprite; public var musicTransform:SoundTransform; public var m_timeStep:Number; public var rapidFireOn:Boolean; public var hotspot:SimpleButton; public var egArray:Array; public var blackOut:blackScreen_mc; public var musicOn:Boolean; public var gunSpeed:Number; public var lastLevelReached:Boolean; public var hintBoxArray:Array; public var _Continue_:MovieClip; public var explosionSound:shimmer; public var arrowLeftDownFlag:Boolean; public var bestScore:uint; public var ticker:ticker_mc; public var musicChannel:SoundChannel; public var puckBlue:MovieClip; public var maxBallY:int; public var stillCounter:int; public var starArray:Array; public var gameWon:Boolean; public var disableReset:Boolean; public var targetArray:Array; public var soundOn:Boolean; public var hintBoxExists:Boolean; public var gameover2Sound:gameover2; public var myBallArray:Array; public var fpsNewTime:Number; public var fpsStartTime:Number; public var groundCreated:Boolean; public var rotationSpeed:Number; public var travelator:Array; public var tickerStart:Number; public var numberOfTeleports:uint; public var bonusLifeScore:uint; public var arcadeTown:SimpleButton; public var sideWall:Array; public var arrowRightDownFlag:Boolean; public var numberOfTravelators:uint; public var gameOver:Boolean; public var scrollSpeedScale:Number; public var gameOverScreen:gameOverScreen_mc; public var bonusTweenNumber:uint; public var targetGreen:targetGreen_mc; public function MainTimeline(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4); } public function makeBumper(_arg1:Number, _arg2:Number):void{ var _local3:*; var _local4:*; _local3 = new b2BodyDef(); _local4 = new b2CircleDef(); _local4.radius = 25; _local4.friction = 1; _local4.density = 0; _local4.restitution = 1; _local3.AddShape(_local4); _local3.userData = new bumper_mc(); _local3.userData.cacheAsBitmap = true; _local3.position.Set(_arg1, _arg2); _local3.userData.width = 54.2; _local3.userData.height = 54.2; _local3.userData.x = _arg1; _local3.userData.y = _arg2; _local3.userData.id = "bumper"; gameCanvas.addChild(_local3.userData); m_world.CreateBody(_local3); } public function soundUp(_arg1:MouseEvent):void{ if (soundOn == true){ soundToggle.gotoAndStop("onUp"); } else { soundToggle.gotoAndStop("offUp"); }; } public function loader(_arg1:Event){ var _local2:Number; var _local3:*; var _local4:*; var _local5:*; if (counter < counterMax){ counter++; } else { counter = counterMax; }; _local2 = ((100 * counter) / counterMax); _local3 = stage.loaderInfo.bytesTotal; _local4 = stage.loaderInfo.bytesLoaded; _local5 = Math.round(((_local4 * 100) / _local3)); myPreloader.loadingBar.width = (2 * (_local5 + _local2)); myPreloader.loadingText.text = (("Loading: " + String(Math.round(((_local5 + _local2) / 2)))) + "%"); if ((((((_local4 >= _local3)) && ((finished == false)))) && ((counter >= counterMax)))){ myPreloader.loadingText.text = "Loading: 100%"; finished = true; end_preload(); }; } public function fadeToMenu(_arg1:MouseEvent):void{ levelSelect._Back_.removeEventListener(MouseEvent.MOUSE_DOWN, fadeToMenu); fadeInOut(); setTimeout(returnToMenu, 500); } public function gotoNextFrame():void{ removeChild(adBox); nextFrame(); } public function submit(_arg1:String, _arg2:Number):URLLoader{ var _local3:URLVariables; var _local4:URLRequest; var _local5:URLLoader; _local3 = new URLVariables(); _local3.hsname = _arg1; _local3.score = String(_arg2); _local4 = new URLRequest("http://www.andromedus.com/scripts/insert_score.php"); _local4.data = _local3; _local4.method = URLRequestMethod.POST; _local5 = new URLLoader(); _local5.dataFormat = URLLoaderDataFormat.TEXT; _local5.load(_local4); return (_local5); } public function moveSideWalls():void{ sideWall[1].SetCenterPosition(new b2Vec2(-295, (-(gameCanvas.y) + 300)), 0); sideWall[2].SetCenterPosition(new b2Vec2(295, (-(gameCanvas.y) + 300)), 0); } public function resetVars():void{ bonus = 0; discsUsed = 0; gameWon = false; gameRunning = true; gameOver = false; targetsReached = 0; leftKeyDown = false; rightKeyDown = false; checkForCollisions = true; tweenArray = new Array(); numberOfTravelators = 0; travelator = new Array(); bonusTweenArray = new Array(); bonusTweenNumber = 0; disableReset = false; startOfLevelScore = score; livesLost = 0; } public function removeMenu():void{ menu.removeEventListener(Event.ENTER_FRAME, moveBubble); menu._Play_.removeEventListener(MouseEvent.MOUSE_DOWN, fadeInLevelSelect); menu._Hiscores_.removeEventListener(MouseEvent.MOUSE_DOWN, showScores); menu._Download_Game_.removeEventListener(MouseEvent.MOUSE_DOWN, gotoFullScreen); menu._More_Games_.removeEventListener(MouseEvent.MOUSE_DOWN, gotoArcadeTown); menu._Add_to_Website_.removeEventListener(MouseEvent.MOUSE_DOWN, hostGame); menu.arcadeTown.removeEventListener(MouseEvent.MOUSE_DOWN, gotoArcadeTown); menu._Credits_.removeEventListener(MouseEvent.MOUSE_DOWN, showCredits); projectCanvas.removeChild(menu); } public function placeStar():void{ myBall.m_userData.x = myBall.m_userData.startX; myBall.m_userData.y = myBall.m_userData.startY; } public function displayGameOverMessages():void{ crosshairsOn = false; Mouse.show(); crosshairs.visible = false; gui.score.text = String(score); gui.bonus.text = String(bonus); gui.lives.text = String(lives); if (gameWon == false){ gameOverScreen.message1.text = "Game Over"; gameOverScreen.cup1.visible = false; gameOverScreen.cup2.visible = false; } else { gameOverScreen.message1.text = "Congratulations"; gameOverScreen.cup1.visible = true; gameOverScreen.cup2.visible = true; gameOverScreen._Try_Again_.visible = false; if (soundOn == true){ winSound.play(); }; }; if (gameWon == false){ gameOverScreen.message2.text = ("Your score: " + String(score)); } else { gameOverScreen.message2.text = (("You cleared all levels and scored " + String(score)) + ". Awesome!"); }; } public function makePuck(_arg1:Number, _arg2:Number, _arg3:String, _arg4:Number){ var _local5:*; var _local6:*; var _local7:roundShadow_mc; var _local8:highlight_mc; numberOfPucks++; _local5 = new b2BodyDef(); _local6 = new b2CircleDef(); _local6.radius = (_arg4 / 2); _local6.friction = 0.15; _local6.density = 0; _local6.restitution = 1; _local6.categoryBits = 2; _local5.AddShape(_local6); if (_arg3 == "yellow"){ _local5.userData = new puckYellow_mc(); _local5.userData.color = "yellow"; }; if (_arg3 == "blue"){ _local5.userData = new puckBlue_mc(); _local5.userData.color = "blue"; }; if (_arg3 == "red"){ _local5.userData = new puckRed_mc(); _local5.userData.color = "red"; }; if (_arg3 == "green"){ _local5.userData = new puckGreen_mc(); _local5.userData.color = "green"; }; puckArray[numberOfPucks] = _local5.userData; puckArray[numberOfPucks].arrayPosition = numberOfPucks; puckArray[numberOfPucks].active = true; _local5.userData.id = "puck"; _local5.userData.startX = _arg1; _local5.userData.startY = _arg2; _local5.linearDamping = 0.02; _local5.angularDamping = 0.02; _local5.position.Set(_arg1, _arg2); _local5.userData.x = _arg1; _local5.userData.y = _arg2; _local5.userData.width = (_local6.radius * 2); _local5.userData.height = (_local6.radius * 2); _local5.userData.roundShadow = new roundShadow_mc(); _local5.userData.roundShadow.alpha = 0.4; _local5.userData.roundShadow.width = (_local6.radius * 2); _local5.userData.roundShadow.height = (_local6.radius * 2); gameCanvas.addChildAt(_local5.userData.roundShadow, 0); gameCanvas.addChild(_local5.userData); _local5.userData.highlight = new highlight_mc(); _local5.userData.highlight.width = (_local6.radius * 1.7); _local5.userData.highlight.height = (_local6.radius * 1.7); _local5.userData.highlight.alpha = 0.6; gameCanvas.addChild(_local5.userData.highlight); _local5.userData.body = m_world.CreateBody(_local5); } public function makeLifeBonus(_arg1:Number, _arg2:Number):void{ var _local3:*; var _local4:*; _local3 = new b2BodyDef(); _local4 = new b2CircleDef(); _local4.radius = 23; _local4.friction = 1; _local4.density = 0; _local4.restitution = 0.2; _local3.AddShape(_local4); _local3.userData = new lifeBonus_mc(); _local3.userData.cacheAsBitmap = true; _local3.position.Set(_arg1, _arg2); _local3.userData.width = 50; _local3.userData.height = 50; _local3.userData.x = _arg1; _local3.userData.y = _arg2; _local3.userData.id = "lifeBonus"; gameCanvas.addChild(_local3.userData); m_world.CreateBody(_local3); } public function removeInstructions(_arg1:MouseEvent):void{ instructions.menuButton.removeEventListener(MouseEvent.MOUSE_DOWN, removeInstructions); instructions.guiInstance.quitButton.removeEventListener(MouseEvent.MOUSE_DOWN, removeInstructions); projectCanvas.removeChild(instructions); showMenu(); ticker.visible = true; } public function nextLevel():void{ } public function scrollTicker(_arg1:Event):void{ ticker.mc.textField.x = (ticker.mc.textField.x - 3); if (ticker.mc.textField.x < (tickerStart - ticker.mc.textField.width)){ ticker.mc.textField.x = (tickerStart + 600); tickerSection++; if (tickerSection >= tickerArray.length){ tickerSection = 0; }; ticker.mc.textField.text = tickerArray[tickerSection]; ticker.mc.textField.autoSize = TextFieldAutoSize.LEFT; }; } public function adjustingComplete(_arg1:TweenEvent):void{ adjusting = false; } function frame2(){ hotspot.addEventListener(MouseEvent.MOUSE_DOWN, gotoArcadeTown); } function frame3(){ play(); stageAssets.visible = false; } public function showGameOverScreen():void{ gameRunning = false; checkAwardsLevelIncomplete(); gameOverScreen = new gameOverScreen_mc(); projectCanvas.addChild(gameOverScreen); gameOverScreen.submissionScreen.visible = false; displayGameOverMessages(); gameOverScreen._Menu_.addEventListener(MouseEvent.MOUSE_DOWN, removeGameOverScreen); gameOverScreen._Try_Again_.addEventListener(MouseEvent.MOUSE_DOWN, retryLevel); gameOverScreen._More_Games_.addEventListener(MouseEvent.MOUSE_DOWN, gotoArcadeTown); gameOverScreen._Submit_Score_.addEventListener(MouseEvent.MOUSE_DOWN, showScoreSubmissionScreen); gameOverScreen.arcadeTown.addEventListener(MouseEvent.MOUSE_DOWN, gotoArcadeTown); } public function makeSlowBonus(_arg1:Number, _arg2:Number):void{ var _local3:*; var _local4:*; _local3 = new b2BodyDef(); _local4 = new b2CircleDef(); _local4.radius = 23; _local4.friction = 1; _local4.density = 0; _local4.restitution = 1; _local3.AddShape(_local4); _local3.userData = new slowBonus_mc(); _local3.userData.cacheAsBitmap = true; _local3.position.Set(_arg1, _arg2); _local3.userData.width = 50; _local3.userData.height = 50; _local3.userData.x = _arg1; _local3.userData.y = _arg2; _local3.userData.id = "slowBonus"; gameCanvas.addChild(_local3.userData); m_world.CreateBody(_local3); } public function keyDownHandler(_arg1:KeyboardEvent):void{ if ((((_arg1.keyCode == Keyboard.LEFT)) || ((_arg1.keyCode == 65)))){ leftKeyDown = true; }; if ((((_arg1.keyCode == Keyboard.RIGHT)) || ((_arg1.keyCode == 68)))){ rightKeyDown = true; }; if ((((_arg1.keyCode == Keyboard.UP)) || ((_arg1.keyCode == 87)))){ upKeyDown = true; }; if ((((_arg1.keyCode == Keyboard.DOWN)) || ((_arg1.keyCode == 83)))){ downKeyDown = true; }; } function frame1(){ stop(); _Continue_.visible = false; stage.frameRate = 30; currentURL2 = stage.loaderInfo.url; allowedURL2 = "kongregate.com"; onKong = false; if (currentURL2.indexOf(allowedURL2, 0) != -1){ onKong = true; }; if (onKong == false){ CPMStarContentSpotID = "2866Q00AFE281"; ad = new AdLoader(CPMStarContentSpotID); adBox.addChild(ad); } else { adBox.visible = false; arcadeTown.y = (arcadeTown.y + 170); }; arcadeTown.addEventListener(MouseEvent.MOUSE_DOWN, gotoArcadeTown); finished = false; addEventListener(Event.ENTER_FRAME, loader); counter = 0; counterMax = 300; } function frame4(){ stop(); fps = 0; fpsStartTime = 0; fpsNewTime = 0; fpsElapsedTime = 0; fpsCounter = 0; grav = 100; maxAngVel = 3000; torque = 30000000; levelButtonStart = 0; buttonSpeed = 0; buttonDistToTarget = 0; rotationSpeed = 2; gameZoneRadius = 215; tickerStart = 0; gunSpeed = 8; scrollSpeed = 0.6; scrollSpeedScale = 1; slowBarValue = 0; slowBarStartValue = 418; scrolled = 0; bubbleSpeedX = 2; bubbleSpeedY = 2; impulseSize = 0; numberOfLevels = 20; currentLevel = 1; highestLevel = 1; so = SharedObject.getLocal("highestLevel"); if (((!((so.data.highestLevel == undefined))) && (!((so.data.highestLevel == null))))){ highestLevel = so.data.highestLevel; }; if (highestLevel < 1){ highestLevel = 1; }; alwaysUnlocked = 1; score = 0; bestScore = 0; if (((!((so.data.bestScore == undefined))) && (!((so.data.bestScore == null))))){ bestScore = so.data.bestScore; }; if (bestScore < 0){ bestScore = 0; }; kinetroidsDestroyed = 0; livesLost = 0; startOfLevelScore = 0; bonusLifeScore = 0; bonusLifeInterval = 20000; numberOfPucks = 0; numberOfTargets = 0; lives = 0; startLives = 3; targetsReached = 0; numberOfTravelators = 0; bonus = 0; discsUsed = 0; bonusTweenNumber = 0; tickerSection = 0; levelsPlayed = 0; levelOffset = 0; numberOfHintBoxes = 0; numberOfTeleports = 0; teleportPair = 0; numberOfEGs = 0; rapidFireCounter = 0; numberOfStages = 6; myBallRadius = 35; storeBallY = 0; maxBallY = 0; stillCounter = 0; lastButtonPressed = ""; gameRunning = false; gameOver = false; gameWon = false; submitSuccess = false; arrowLeftDownFlag = false; arrowRightDownFlag = false; adjusting = false; leftKeyDown = false; rightKeyDown = false; upKeyDown = false; downKeyDown = false; mouseIsDown = false; preventFiring = false; crosshairsOn = false; cleaned = false; targetReached = false; soundOn = true; musicOn = true; checkForCollisions = false; fadePuckIn = false; hintBoxExists = false; disableReset = false; securityOn = false; rapidFireOn = false; tickerPresent = false; killed = false; placing = false; lastLevelReached = false; groundCreated = false; aim = false; waitForMouseUp = false; flying = false; delayStart = false; newGame = false; retrying = false; m_physScale = 1; m_timeStep = (1 / 30); m_iterations = 10; sideWall = new Array(); teleportArray = new Array(); puckArray = new Array(); targetArray = new Array(); tweenArray = new Array(); travelator = new Array(); hintBoxArray = new Array(); hint = new Array(); bonusTweenArray = new Array(); tickerArray = new Array(); starArray = new Array(); myBallArray = new Array(); tickerArray[0] = "*** It's time for Galaxochimp !! ***"; tickerArray[1] = "*** A game developed by -ANDROMEDUS.COM- ***"; tickerArray[2] = "*** Coding and Design by -RIC- ***"; tickerArray[3] = "*** Art supervisor -MR HOD- ***"; tickerArray[4] = "*** Sponsored by -ARCADE TOWN- ***"; tickerArray[5] = "*** Thanks to -ERIN CATTO- and -SKATEHEAD- ***"; tickerArray[6] = "*** Don't forget to check out more great games at - ARCADE TOWN - ***"; egArray = new Array(); centre = new Point(300, 300); musicChannel = new SoundChannel(); musicTransform = musicChannel.soundTransform; musicSound = new bluedanube(); targetSound = new target(); fireSound = new fire(); ballSound = new ball(); wallSound = new wall(); gameoverSound = new gameover(); gameover2Sound = new gameover2(); explosionSound = new shimmer(); metalSound = new metal(); winSound = new win(); bonusSound = new notes(); chimeSound = new chime(); launchSound = new launch(); currentURL = stage.loaderInfo.url; allowedURL = "andromedus.com"; allowedLocal = "Richard/Documents/"; MochiBot.track(this, "e96d334d"); MochiBot.track(this, "4d949e19"); initialise(); } public function musicOver(_arg1:MouseEvent):void{ if (musicOn == true){ musicToggle.gotoAndStop("onOver"); } else { musicToggle.gotoAndStop("offOver"); }; } public function slideButtonsLeft(_arg1:Event):void{ if (arrowRightDownFlag == true){ if (levelSelect.levelButtonHolder.x > (levelButtonStart - (levelSelect.levelButtonHolder.width - 350))){ levelSelect.levelButtonHolder.x = (levelSelect.levelButtonHolder.x - 8); }; }; } public function submitCompleteHandler(_arg1:Event):void{ submitSuccess = true; gameOverScreen.message3.text = "Score submitted!"; hsLoader.removeEventListener(Event.COMPLETE, submitCompleteHandler); } public function checkLevelComplete():void{ var _local1:uint; var _local2:uint; _local1 = 0; _local2 = 0; while (_local2 < starArray.length) { if (starArray[_local2].visible == true){ _local1++; }; _local2++; }; if (_local1 <= 0){ if (soundOn == true){ targetSound.play(); }; levelComplete(); }; } public function removeHintBox():void{ if (hintBoxExists == true){ projectCanvas.removeChild(hintBox); hintBoxExists = false; }; } public function displayFPS():void{ var _local1:Date; _local1 = new Date(); fpsNewTime = _local1.getTime(); fpsElapsedTime = (fpsNewTime - fpsStartTime); fpsCounter++; if (fpsCounter == 99){ fpsCounter = 0; fps = int((100 / (fpsElapsedTime / 1000))); fpsStartTime = fpsNewTime; }; } public function makeBonusStar(_arg1:Number, _arg2:Number):void{ var _local3:*; _local3 = new bonusStar_mc(); gameCanvas.addChild(_local3); _local3.x = _arg1; _local3.y = _arg2; starArray.push(_local3); } public function arrowLeftDown(_arg1:MouseEvent):void{ arrowLeftDownFlag = true; lastButtonPressed = "left"; } public function addGUI():void{ gunCanvas = new Sprite(); projectCanvas.addChild(gunCanvas); gunCanvas.x = centre.x; gunCanvas.y = centre.y; gunShadow = new gunShadow_mc(); gunShadow.x = 0; gunShadow.y = 240; gunShadow.width = (gunShadow.width * 0.6); gunShadow.height = (gunShadow.height * 0.6); gunCanvas.addChild(gunShadow); gun = new gun_mc(); gun.x = 0; gun.y = gunShadow.y; gun.width = (gun.width * 0.6); gun.height = (gun.height * 0.6); gunCanvas.addChild(gun); gunCanvas.visible = false; gui = new gui_mc(); projectCanvas.addChild(gui); gui.level.text = String(currentLevel); gui.score.text = String(score); gui.lives.text = String(lives); gui.message.visible = false; gui.lineT.alpha = 0; gui.lineB.alpha = 0; gui._Reload_.y = 610; if (currentLevel == 1){ gui.help._Close_.addEventListener(MouseEvent.CLICK, hideHelp); delayStart = true; } else { gui.help.visible = false; }; } public function levelComplete():void{ gui.score.text = String(score); gui.bonus.text = String(bonus); gui.lives.text = String(lives); gameRunning = false; currentLevel++; levelsPlayed++; if (currentLevel > numberOfLevels){ gameWon = true; currentLevel = numberOfLevels; }; if (currentLevel > highestLevel){ highestLevel = currentLevel; so.data.highestLevel = highestLevel; }; if (score > bestScore){ bestScore = score; so.data.bestScore = bestScore; }; fadeInOutSlow(); setTimeout(cleanUp, 2000); setTimeout(showInfo, 2001); } public function showConfirmResetLevel(_arg1:MouseEvent):void{ if ((((((disableReset == false)) && ((gameOver == false)))) && ((gameRunning == true)))){ disableReset = true; gui.resetButton.removeEventListener(MouseEvent.MOUSE_DOWN, showConfirmResetLevel); gameRunning = false; crosshairsOn = false; confirmReset = new confirmReset_mc(); projectCanvas.addChild(confirmReset); delayStart = true; confirmReset.yesButton.addEventListener(MouseEvent.MOUSE_DOWN, resetLevel); confirmReset.noButton.addEventListener(MouseEvent.MOUSE_DOWN, resumeGame2); }; } public function makeWall(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String):void{ var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:*; var _local13:*; var _local14:*; var _local15:*; var _local16:squareShadow_mc; _local7 = 0; if ((((_arg5 < 0)) && ((_arg5 >= -90)))){ _local7 = ((Math.PI / 180) * Math.abs(_arg5)); } else { if ((((_arg5 < -90)) && ((_arg5 >= -180)))){ _local7 = ((Math.PI / 180) * (180 - Math.abs(_arg5))); } else { if ((((_arg5 > 90)) && ((_arg5 <= 180)))){ _local7 = ((Math.PI / 180) * (360 - Math.abs(_arg5))); } else { _local7 = ((Math.PI / 180) * Math.abs(_arg5)); }; }; }; _local8 = Math.cos(_local7); _local9 = Math.sin(_local7); _local10 = _arg3; _local11 = _arg4; _local12 = (((_local11 * _local8) - (_local10 * _local9)) / ((_local8 * _local8) - (_local9 * _local9))); _local13 = ((_local10 - (_local12 * _local9)) / _local8); _local14 = new b2BodyDef(); _local15 = new b2BoxDef(); _local15.extents.Set((_local13 * 0.5), (_local12 * 0.5)); _local15.friction = 0.97; _local15.restitution = 0.6; _local15.density = 0; _local14.position.Set(_arg1, _arg2); _local14.AddShape(_local15); _local14.rotation = ((_arg5 * Math.PI) / 180); if (_arg6 == "h"){ _local14.userData = new wallH_mc(); }; if (_arg6 == "v"){ _local14.userData = new wallV_mc(); }; _local14.userData.width = (_local15.extents.x * 2); _local14.userData.height = (_local15.extents.y * 2); _local14.userData.x = _arg1; _local14.userData.y = _arg2; _local14.userData.rotation = (_local14.rotation * (180 / Math.PI)); _local14.userData.id = "wall"; gameCanvas.addChild(_local14.userData); _local14.userData.squareShadow = new squareShadow_mc(); _local14.userData.squareShadow.width = (_local15.extents.x * 2); _local14.userData.squareShadow.height = (_local15.extents.y * 2); _local14.userData.squareShadow.x = _arg1; _local14.userData.squareShadow.y = _arg2; _local14.userData.squareShadow.rotation = (_local14.rotation * (180 / Math.PI)); gameCanvas.addChildAt(_local14.userData.squareShadow, 0); m_world.CreateBody(_local14); } public function deleteBonusDisplay(_arg1:bonusDisplay_mc):void{ stage.removeChild(_arg1); } public function makeBullet(_arg1:b2Body, _arg2:Number, _arg3:Number):b2Body{ var _local4:*; var _local5:*; var _local6:roundShadow_mc; var _local7:Tween; var _local8:Tween; _local4 = new b2BodyDef(); _local5 = new b2CircleDef(); _local5.radius = 7; _local5.friction = 1; _local5.density = 2; _local5.restitution = 1; _local4.AddShape(_local5); _local4.userData = new bullet_mc(); _local4.position.Set(_arg2, _arg3); _local4.linearDamping = 0.015; _local4.angularDamping = 0.02; _local4.userData.width = (_local5.radius * 2); _local4.userData.height = (_local5.radius * 2); _local4.userData.x = _arg2; _local4.userData.y = _arg3; _local4.userData.id = "bullet"; gameCanvas.addChild(_local4.userData); _local4.userData.roundShadow = new roundShadow_mc(); _local4.userData.roundShadow.width = (_local5.radius * 2.2); _local4.userData.roundShadow.height = (_local5.radius * 2.2); _local4.userData.roundShadow.x = _arg2; _local4.userData.roundShadow.y = _arg3; _local4.userData.roundShadow.alpha = 0.4; gameCanvas.addChildAt(_local4.userData.roundShadow, 1); _arg1 = m_world.CreateBody(_local4); setTimeout(deleteBody, 5000, _arg1); _local7 = new Tween(_arg1.m_userData, "alpha", Strong.easeIn, 1, 0, 5, true); _local8 = new Tween(_arg1.m_userData.roundShadow, "alpha", Strong.easeIn, 0.4, 0, 5, true); tweenArray.push(_local7); tweenArray.push(_local8); return (_arg1); } public function makeBox(_arg1:Number, _arg2:Number):void{ var _local3:*; var _local4:*; var _local5:squareShadow_mc; _local3 = new b2BodyDef(); _local4 = new b2BoxDef(); _local4.categoryBits = 2; _local4.extents.Set(10, 10); _local4.friction = 0.02; _local4.density = 1; _local4.restitution = 1; _local3.AddShape(_local4); _local3.userData = new box_mc(); _local3.position.Set(_arg1, _arg2); _local3.linearDamping = 0; _local3.angularDamping = 0.02; _local3.userData.width = (_local4.extents.x * 2); _local3.userData.height = (_local4.extents.y * 2); _local3.userData.x = _arg1; _local3.userData.y = _arg2; _local3.userData.id = "box"; gameCanvas.addChild(_local3.userData); _local3.userData.squareShadow = new squareShadow_mc(); _local3.userData.squareShadow.width = (_local4.extents.x * 2); _local3.userData.squareShadow.height = (_local4.extents.y * 2); _local3.userData.squareShadow.alpha = 0.4; gameCanvas.addChildAt(_local3.userData.squareShadow, 0); m_world.CreateBody(_local3); } public function hideCredits(_arg1:MouseEvent):void{ menu._Credits_.addEventListener(MouseEvent.MOUSE_DOWN, showCredits); menu.credits.visible = false; menu.credits._Close_.removeEventListener(MouseEvent.MOUSE_DOWN, hideCredits); menu.credits.andromedusButton.removeEventListener(MouseEvent.MOUSE_DOWN, gotoAndromedus); } public function adjustButtons(_arg1:Event):void{ var _local2:*; if ((((((arrowRightDownFlag == false)) && ((arrowLeftDownFlag == false)))) && (!((lastButtonPressed == "none"))))){ adjusting = true; levelSelect.levelButtonHolder.x = (levelSelect.levelButtonHolder.x + buttonSpeed); _local2 = (levelButtonStart / 2); if (lastButtonPressed == "left"){ buttonDistToTarget = ((-(_local2) + (Math.floor((((levelSelect.levelButtonHolder.x + _local2) + 75) / 75)) * 75)) - levelSelect.levelButtonHolder.x); }; if (lastButtonPressed == "right"){ buttonDistToTarget = ((_local2 + levelSelect.levelButtonHolder.x) - (Math.ceil((((levelSelect.levelButtonHolder.x + _local2) - 75) / 75)) * 75)); }; if (lastButtonPressed == "left"){ buttonSpeed = (1 + ((7 * buttonDistToTarget) / 75)); }; if (lastButtonPressed == "right"){ buttonSpeed = (-1 - ((7 * buttonDistToTarget) / 75)); }; if (Math.abs(buttonDistToTarget) < 3){ levelSelect.levelButtonHolder.x = (-(_local2) + (Math.round(((levelSelect.levelButtonHolder.x + _local2) / 75)) * 75)); lastButtonPressed = "none"; adjusting = false; }; if (levelSelect.levelButtonHolder.x < (levelButtonStart - (levelSelect.levelButtonHolder.width - 350))){ levelSelect.levelButtonHolder.x = (levelButtonStart - (levelSelect.levelButtonHolder.width - 350)); }; if (levelSelect.levelButtonHolder.x > levelButtonStart){ levelSelect.levelButtonHolder.x = levelButtonStart; }; }; } public function removeInactiveObjects():void{ var _local1:uint; var _local2:uint; var _local3:DisplayObject; var _local4:*; var _local5:Point; var _local6:Point; _local4 = 0; while (_local4 <= (gameCanvas.numChildren - 1)) { _local3 = gameCanvas.getChildAt(_local4); _local5 = new Point(0, _local3.y); _local6 = gameCanvas.localToGlobal(_local5); if (_local6.y < -50){ _local2 = numberOfTravelators; _local1 = 1; while (_local1 <= _local2) { if (_local3 == travelator[_local1]){ gameCanvas.removeChildAt(_local4); }; _local1++; }; _local2 = numberOfHintBoxes; _local1 = 1; while (_local1 <= _local2) { if (_local3 == hintBoxArray[_local1]){ gameCanvas.removeChildAt(_local4); }; _local1++; }; _local2 = numberOfTeleports; _local1 = 1; while (_local1 <= _local2) { if (_local3 == teleportArray[_local1]){ gameCanvas.removeChildAt(_local4); }; _local1++; }; _local2 = numberOfEGs; _local1 = 1; while (_local1 <= _local2) { if (_local3 == egArray[_local1]){ gameCanvas.removeChildAt(_local4); egArray[_local1].active = false; }; _local1++; }; }; _local4++; }; } public function submitHighscore(_arg1:MouseEvent):void{ gameOverScreen.submitButton.removeEventListener(MouseEvent.MOUSE_DOWN, submitHighscore); gameOverScreen.message3.text = "Connecting: Please wait ..."; hsLoader = submit(gameOverScreen.playerName.text, score); hsLoader.addEventListener(Event.COMPLETE, submitCompleteHandler); setTimeout(submitFail, 15000); } public function keyUpHandler(_arg1:KeyboardEvent):void{ if ((((_arg1.keyCode == Keyboard.LEFT)) || ((_arg1.keyCode == 65)))){ leftKeyDown = false; }; if ((((_arg1.keyCode == Keyboard.RIGHT)) || ((_arg1.keyCode == 68)))){ rightKeyDown = false; }; if ((((_arg1.keyCode == Keyboard.UP)) || ((_arg1.keyCode == 87)))){ upKeyDown = false; }; if ((((_arg1.keyCode == Keyboard.DOWN)) || ((_arg1.keyCode == 83)))){ downKeyDown = false; }; } public function moveEnemies():void{ var _local1:MovieClip; var _local2:b2Body; var _local3:b2Vec2; var _local4:Number; var _local5:uint; var _local6:Number; var _local7:*; var _local8:*; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:*; var _local17:b2Vec2; _local1 = null; _local2 = m_world.m_bodyList; while (_local2) { if ((_local2.m_userData is Sprite)){ if (_local2.m_userData.id == "enemy"){ _local3 = _local2.GetCenterPosition(); _local4 = 100000000; _local5 = 1; while (_local5 <= numberOfPucks) { if (puckArray[_local5].active == true){ _local6 = (((_local3.x - puckArray[_local5].x) * (_local3.x - puckArray[_local5].x)) + ((_local3.y - puckArray[_local5].y) * (_local3.y - puckArray[_local5].y))); if (_local6 < _local4){ _local4 = _local6; _local1 = puckArray[_local5]; }; }; _local5++; }; if (_local1 != null){ _local7 = _local4; _local8 = 3200; _local9 = 0; _local10 = wrapvalue((Math.atan2((_local1.y - _local3.y), (_local1.x - _local3.x)) - (Math.PI / 2))); _local11 = wrapvalue((Math.atan2((_local1.y - (_local1.y - 20)), 0) - (Math.PI / 2))); _local12 = differenceBetweenBearings(_local10, _local11); if ((((_local7 <= _local8)) && ((Math.abs(_local12) > ((30 * Math.PI) / 180))))){ if (_local12 > 0){ _local9 = Math.atan2((_local3.y - _local1.y), (_local3.x - _local1.x)); } else { _local9 = (Math.atan2((_local3.y - _local1.y), (_local3.x - _local1.x)) - Math.PI); }; } else { _local9 = (Math.atan2((_local3.y - _local1.y), (_local3.x - _local1.x)) - (Math.PI / 2)); }; _local13 = _local2.GetRotation(); if (_local13 < 0){ _local13 = (_local13 + (2 * Math.PI)); _local2.SetCenterPosition(_local2.GetCenterPosition(), _local13); }; if (_local13 > (2 * Math.PI)){ _local13 = (_local13 - (2 * Math.PI)); _local2.SetCenterPosition(_local2.GetCenterPosition(), _local13); }; _local14 = _local9; if (_local14 < 0){ _local14 = (_local14 + (2 * Math.PI)); }; if (_local14 > (2 * Math.PI)){ _local14 = (_local14 - (2 * Math.PI)); }; _local15 = (_local14 - _local13); if (_local15 > 0){ if (_local15 > Math.PI){ _local2.SetCenterPosition(_local2.GetCenterPosition(), (_local2.GetRotation() - ((2 * Math.PI) / 180))); } else { _local2.SetCenterPosition(_local2.GetCenterPosition(), (_local2.GetRotation() + ((2 * Math.PI) / 180))); }; }; if (_local15 < 0){ if (_local15 < -(Math.PI)){ _local2.SetCenterPosition(_local2.GetCenterPosition(), (_local2.GetRotation() + ((2 * Math.PI) / 180))); } else { _local2.SetCenterPosition(_local2.GetCenterPosition(), (_local2.GetRotation() - ((2 * Math.PI) / 180))); }; }; _local16 = 400; _local17 = new b2Vec2((_local16 * Math.sin(_local9)), (-(_local16) * Math.cos(_local9))); _local2.ApplyImpulse(_local17, _local2.GetCenterPosition()); }; }; }; _local2 = _local2.m_next; }; } public function mouseUpHandler(_arg1:MouseEvent):void{ mouseIsDown = false; preventFiring = false; waitForMouseUp = false; } public function makeTarget(_arg1:Number, _arg2:Number, _arg3:String):void{ var _local4:MovieClip; numberOfTargets++; if (_arg3 == "yellow"){ targetArray[numberOfTargets] = new targetYellow_mc(); targetArray[numberOfTargets].color = "yellow"; }; if (_arg3 == "blue"){ targetArray[numberOfTargets] = new targetBlue_mc(); targetArray[numberOfTargets].color = "blue"; }; if (_arg3 == "green"){ targetArray[numberOfTargets] = new targetGreen_mc(); targetArray[numberOfTargets].color = "green"; }; if (_arg3 == "red"){ targetArray[numberOfTargets] = new targetRed_mc(); targetArray[numberOfTargets].color = "red"; }; gameCanvas.addChildAt(targetArray[numberOfTargets], 0); targetArray[numberOfTargets].x = _arg1; targetArray[numberOfTargets].y = _arg2; targetArray[numberOfTargets].width = 50; targetArray[numberOfTargets].height = 50; targetArray[numberOfTargets].alpha = 0.6; targetArray[numberOfTargets].fill.visible = false; } public function checkGameOver():void{ var _local1:Boolean; var _local2:uint; _local1 = true; _local2 = 0; while (_local2 < myBallArray.length) { if (myBallArray[_local2].m_userData.visible == true){ _local1 = false; }; _local2++; }; if ((((lives == 0)) && ((_local1 == true)))){ gameOver = true; killed = true; gameRunning = false; }; if ((((gameOver == true)) && ((gameRunning == false)))){ showGameOverScreen(); if (soundOn == true){ gameoverSound.play(); gameover2Sound.play(); }; }; } public function makeRotatorLong(_arg1:Number, _arg2:Number, _arg3:int):void{ var _local4:*; var _local5:*; var _local6:b2Body; var _local7:*; var _local8:*; var _local9:b2Body; var _local10:b2RevoluteJointDef; var _local11:squareShadow_mc; _local4 = new b2BodyDef(); _local5 = new b2BoxDef(); _local5.extents.Set(8, 75); _local5.friction = 1; _local5.density = 1; _local5.restitution = 0.85; _local4.AddShape(_local5); _local4.userData = new rotatorLong_mc(); _local4.position.Set(_arg1, _arg2); _local4.userData.width = (_local5.extents.x * 2); _local4.userData.height = (_local5.extents.y * 2); _local4.userData.x = _arg1; _local4.userData.y = _arg2; _local4.userData.id = "rotator"; gameCanvas.addChild(_local4.userData); _local6 = m_world.CreateBody(_local4); _local7 = new b2BodyDef(); _local8 = new b2BoxDef(); _local8.extents.Set(1, 1); _local8.friction = 1; _local8.density = 0; _local8.restitution = 0.85; _local7.AddShape(_local8); _local7.position.Set(_arg1, _arg2); _local9 = m_world.CreateBody(_local7); _local10 = new b2RevoluteJointDef(); _local10.body1 = _local6; _local10.body2 = _local9; _local10.anchorPoint = _local6.GetCenterPosition(); _local10.enableMotor = true; _local10.motorTorque = 150000000; _local10.motorSpeed = (-1 * _arg3); m_world.CreateJoint(_local10); _local4.userData.squareShadow = new squareShadow_mc(); _local4.userData.squareShadow.width = (_local5.extents.x * 2); _local4.userData.squareShadow.height = (_local5.extents.y * 2); _local4.userData.squareShadow.alpha = 0.4; gameCanvas.addChildAt(_local4.userData.squareShadow, 0); } public function continueGame(_arg1:MouseEvent):void{ gameRunning = true; stage.removeEventListener(MouseEvent.MOUSE_DOWN, continueGame); gui.message.visible = false; } public function createLevelComplete(_arg1:Number, _arg2:Number):void{ var _local3:*; var _local4:*; var _local5:squareShadow_mc; lastLevelReached = true; ground = new ground_mc(); backgroundCanvas.addChildAt(ground, 0); ground.y = 600; groundCreated = true; _local3 = new b2BodyDef(); _local4 = new b2BoxDef(); _local4.extents.Set(100, 20); _local4.friction = 0.15; _local4.restitution = 0.95; _local4.density = 0; _local3.position.Set(_arg1, _arg2); _local3.AddShape(_local4); _local3.userData = new levelComplete_mc(); _local3.userData.width = (_local4.extents.x * 2); _local3.userData.height = (_local4.extents.y * 2); _local3.userData.x = _arg1; _local3.userData.y = _arg2; _local3.userData.id = "levelComplete"; gameCanvas.addChild(_local3.userData); _local3.userData.squareShadow = new squareShadow_mc(); _local3.userData.squareShadow.width = (_local4.extents.x * 2); _local3.userData.squareShadow.height = (_local4.extents.y * 2); _local3.userData.squareShadow.x = (_arg1 + 5); _local3.userData.squareShadow.y = (_arg2 + 5); gameCanvas.addChildAt(_local3.userData.squareShadow, 0); m_world.CreateBody(_local3); } public function showInstructions(_arg1:MouseEvent):void{ removeMenu(); ticker.visible = false; soundToggle.x = 82; soundToggle.y = 533; musicToggle.x = 53; musicToggle.y = 525; instructions = new instructions_mc(); projectCanvas.addChild(instructions); instructions.menuButton.addEventListener(MouseEvent.MOUSE_DOWN, removeInstructions); instructions.guiInstance.quitButton.addEventListener(MouseEvent.MOUSE_DOWN, removeInstructions); } public function createHintBox(_arg1:Number, _arg2:Number, _arg3:MovieClip):void{ var _local4:MovieClip; numberOfHintBoxes++; _local4 = new hintBox_mc(); hintBoxArray[numberOfHintBoxes] = _local4; gameCanvas.addChild(hintBoxArray[numberOfHintBoxes]); hintBoxArray[numberOfHintBoxes].mouseEnabled = false; hintBoxArray[numberOfHintBoxes].mouseChildren = false; hintBoxExists = true; hintBoxArray[numberOfHintBoxes].x = _arg1; hintBoxArray[numberOfHintBoxes].y = _arg2; hintBoxArray[numberOfHintBoxes].alpha = 1; hintBoxArray[numberOfHintBoxes].message.text = _arg3.hint1.text; } public function updatePhysics():void{ var _local1:b2Body; m_world.Step(m_timeStep, m_iterations); _local1 = m_world.m_bodyList; while (_local1) { if ((_local1.m_userData is Sprite)){ if (_local1.m_userData.id == "movingLine"){ _local1.SetCenterPosition(new b2Vec2((_local1.m_position.x + _local1.m_userData.speed), _local1.m_position.y), (Math.PI / 2)); if (_local1.m_position.x >= 240){ _local1.SetCenterPosition(new b2Vec2(240, _local1.m_position.y), (Math.PI / 2)); _local1.m_userData.speed = (_local1.m_userData.speed * -1); }; if (_local1.m_position.x <= -240){ _local1.SetCenterPosition(new b2Vec2(-240, _local1.m_position.y), (Math.PI / 2)); _local1.m_userData.speed = (_local1.m_userData.speed * -1); }; }; _local1.m_userData.x = _local1.m_position.x; _local1.m_userData.y = _local1.m_position.y; if (((((((!((_local1.m_userData.id == "wall"))) && (!((_local1.m_userData.id == "puck"))))) && (!((_local1.m_userData.id == "bullet"))))) && (!((_local1.m_userData.id == "myBall"))))){ _local1.m_userData.rotation = (_local1.m_rotation * (180 / Math.PI)); }; if (_local1.m_userData.id == "myBall"){ if (_local1.m_userData.visible == true){ _local1.m_userData.monkey.rotation = (_local1.m_rotation * (180 / Math.PI)); }; }; if (_local1.m_userData.hasOwnProperty("roundShadow") == true){ _local1.m_userData.roundShadow.x = _local1.m_position.x; _local1.m_userData.roundShadow.y = _local1.m_position.y; }; if ((((_local1.m_userData.hasOwnProperty("squareShadow") == true)) && (!((_local1.m_userData.id == "wall"))))){ _local1.m_userData.squareShadow.x = _local1.GetCenterPosition().x; _local1.m_userData.squareShadow.y = _local1.GetCenterPosition().y; _local1.m_userData.squareShadow.rotation = (_local1.m_rotation * (180 / Math.PI)); }; if (_local1.m_userData.hasOwnProperty("highlight") == true){ _local1.m_userData.highlight.x = _local1.m_userData.x; _local1.m_userData.highlight.y = _local1.m_userData.y; }; }; _local1 = _local1.m_next; }; } public function submitScore(_arg1:MouseEvent):void{ var _local2:String; var _local3:*; var _local4:String; var _local5:URLRequest; if (((!((gameOverScreen.submissionScreen.playerName.text == ""))) && (!((gameOverScreen.submissionScreen.playerName.text == "Player Name"))))){ _local2 = ((gameOverScreen.submissionScreen.playerName.text + "|") + String(score)); _local3 = EncrpytString(_local2); trace(_local3); _local4 = ("http://www.arcadetown.com/galaxochimp/hs.asp?" + _local3); _local5 = new URLRequest(_local4); navigateToURL(_local5); gameOverScreen.submissionScreen._Submit_.removeEventListener(MouseEvent.MOUSE_DOWN, submitScore); gameOverScreen.submissionScreen.close.removeEventListener(MouseEvent.MOUSE_DOWN, removeScoreSubmissionScreen); gameOverScreen.submissionScreen.visible = false; gameOverScreen._Submit_Score_.visible = false; } else { gameOverScreen.submissionScreen.message.text = "Please enter a name!"; }; } public function showInfo():void{ var _local1:uint; levelInfo = new levelInfo_mc(); projectCanvas.addChild(levelInfo); if (newGame == true){ levelInfo.m1.text = (("Level " + String(currentLevel)) + ". Good luck!"); levelInfo.m2.text = ""; levelInfo.m3.text = ""; levelInfo.m4.text = ""; newGame = false; levelInfo._More_Games_.visible = false; levelInfo.arcadeTown.visible = false; } else { if (retrying == false){ levelInfo.m1.text = ("Previous score: " + String(score)); levelInfo.m2.text = ("Bonuses collected: " + String(bonus)); _local1 = (lives * 100); levelInfo.m3.text = ("Unused shot bonus: " + String(_local1)); score = (score + (bonus + _local1)); levelInfo.m4.text = ("New score: " + String(score)); levelInfo._More_Games_.addEventListener(MouseEvent.MOUSE_DOWN, gotoArcadeTown); levelInfo.arcadeTown.addEventListener(MouseEvent.MOUSE_DOWN, gotoArcadeTown); } else { levelInfo.m1.text = ("Current score: " + String(score)); levelInfo.m2.text = ""; levelInfo.m3.text = (("Now retrying level " + String(currentLevel)) + "."); levelInfo.m4.text = ""; levelInfo._More_Games_.addEventListener(MouseEvent.MOUSE_DOWN, gotoArcadeTown); levelInfo.arcadeTown.addEventListener(MouseEvent.MOUSE_DOWN, gotoArcadeTown); retrying = false; }; }; levelInfo._Continue_.addEventListener(MouseEvent.MOUSE_DOWN, fadeInfoOut); } public function gotoAndromedus(_arg1:MouseEvent):void{ var _local2:String; var _local3:URLRequest; _local2 = "http://www.andromedus.com"; _local3 = new URLRequest(_local2); navigateToURL(_local3); } public function playIntroMusic():void{ } public function gotoKinetikz2(_arg1:MouseEvent):void{ var _local2:String; var _local3:URLRequest; _local2 = "http://armorgames.com/play/1953/kinetikz-2"; _local3 = new URLRequest(_local2); navigateToURL(_local3); } public function increaseScore():void{ var _local1:int; if (myBall.m_userData.y > maxBallY){ _local1 = (myBall.m_userData.y - storeBallY); if (_local1 > 0){ score = (score + _local1); }; }; storeBallY = myBall.m_userData.y; if (storeBallY > maxBallY){ maxBallY = storeBallY; }; } public function makeMyBall(_arg1:Number, _arg2:Number){ var _local3:*; var _local4:*; _local3 = new b2BodyDef(); _local4 = new b2CircleDef(); _local4.radius = myBallRadius; _local4.friction = 0.05; _local4.density = 0.7; _local4.restitution = 0.6; _local4.categoryBits = 2; _local3.AddShape(_local4); _local3.userData = new myBall_mc(); _local3.userData.monkey.monkeyAnim.gotoAndStop(1); _local3.userData.id = "myBall"; _local3.userData.startX = _arg1; _local3.userData.startY = _arg2; _local3.userData.fired = false; _local3.linearDamping = 0.008; _local3.angularDamping = 0.01; _local3.position.Set(_arg1, _arg2); _local3.userData.x = _arg1; _local3.userData.y = _arg2; _local3.userData.width = (_local3.userData.width * ((myBallRadius * 2) / 100)); _local3.userData.height = (_local3.userData.height * ((myBallRadius * 2) / 100)); gameCanvas.addChild(_local3.userData); myBall = m_world.CreateBody(_local3); myBallArray.push(myBall); } public function showScores(_arg1:MouseEvent):void{ var _local2:String; var _local3:URLRequest; _local2 = "http://www.arcadetown.com/galaxochimp/view_high_scores.asp"; _local3 = new URLRequest(_local2); navigateToURL(_local3); } public function moveBall():void{ if (leftKeyDown == true){ myBall.WakeUp(); myBall.ApplyTorque(-(torque)); myBall.ApplyForce(new b2Vec2(-100000, 0), myBall.GetCenterPosition()); }; if (rightKeyDown == true){ myBall.WakeUp(); myBall.ApplyTorque(torque); myBall.ApplyForce(new b2Vec2(100000, 0), myBall.GetCenterPosition()); }; if (myBall.GetAngularVelocity() > maxAngVel){ myBall.SetAngularVelocity(maxAngVel); }; if (myBall.GetAngularVelocity() < -(maxAngVel)){ myBall.SetAngularVelocity(-(maxAngVel)); }; } public function hideReload():void{ } public function gotoArcadeTown(_arg1:MouseEvent):void{ var _local2:String; var _local3:URLRequest; _local2 = "http://www.arcadetown.com/index.asp?gameid=galaxochimp"; _local3 = new URLRequest(_local2); navigateToURL(_local3); } public function removeMonkey(_arg1:b2Body):void{ _arg1.SetCenterPosition(new b2Vec2(1000, 1000), 0); _arg1.m_userData.visible = false; } public function reload():void{ makeMyBall(myBall.m_userData.startX, myBall.m_userData.startY); aim = true; gameCanvas.swapChildren(arrow, myBall.m_userData); } public function createTravelator(_arg1:Number, _arg2:Number, _arg3:String):void{ var _local4:travelatorRight_mc; var _local5:travelatorLeft_mc; var _local6:travelatorDown_mc; var _local7:travelatorUp_mc; numberOfTravelators++; if (_arg3 == "right"){ _local4 = new travelatorRight_mc(); travelator[numberOfTravelators] = _local4; }; if (_arg3 == "left"){ _local5 = new travelatorLeft_mc(); travelator[numberOfTravelators] = _local5; }; if (_arg3 == "down"){ _local6 = new travelatorDown_mc(); travelator[numberOfTravelators] = _local6; }; if (_arg3 == "up"){ _local7 = new travelatorUp_mc(); travelator[numberOfTravelators] = _local7; }; gameCanvas.addChildAt(travelator[numberOfTravelators], 0); travelator[numberOfTravelators].x = _arg1; travelator[numberOfTravelators].y = _arg2; if ((((_arg3 == "left")) || ((_arg3 == "right")))){ travelator[numberOfTravelators].width = 100; travelator[numberOfTravelators].height = 30; } else { travelator[numberOfTravelators].width = 30; travelator[numberOfTravelators].height = 100; }; travelator[numberOfTravelators].variety = _arg3; } public function fadeInfoOut(_arg1:MouseEvent):void{ fadeInOut(); setTimeout(removeInfo, 500); if (gameWon == false){ setTimeout(initialiseGame, 501); } else { setTimeout(showGameOverScreen, 501); }; } public function processGameFunctions():void{ displayFPS(); updatePhysics(); checkCollisions(); aimArrow(); moveBall(); updateCrosshairs(); updateGUI(); moveEnemies(); controlEGs(); checkNonPhysicsCollisions(); checkStarCollisions(); checkMonkeyDead(); checkLevelComplete(); checkGameOver(); } public function controlEGs():void{ var _local1:*; var _local2:uint; var _local3:MovieClip; var _local4:Number; var _local5:Number; _local1 = myBall.m_userData; _local2 = 1; while (_local2 <= numberOfEGs) { _local3 = egArray[_local2]; if (_local3.active == true){ _local4 = 0; _local5 = (_local3.y - _local1.y); if (_local5 > 0){ _local5 = 0; }; _local4 = (Math.atan2(_local5, (_local3.x - _local1.x)) - (Math.PI / 2)); _local3.rotation = ((_local4 * 180) / Math.PI); if (_local3.counter == 0){ fireEnemyBullet(_local3); }; _local3.counter++; if (_local3.counter >= 40){ _local3.counter = 0; }; }; _local2++; }; } public function flashScoreOff():void{ gui.lives.visible = false; } public function arrowRightUp(_arg1:MouseEvent):void{ arrowRightDownFlag = false; } public function createEnemyGun(_arg1:Number, _arg2:Number):void{ numberOfEGs++; egArray[numberOfEGs] = new enemyGun_mc(); gameCanvas.addChildAt(egArray[numberOfEGs], 0); egArray[numberOfEGs].x = _arg1; egArray[numberOfEGs].y = _arg2; egArray[numberOfEGs].width = (egArray[numberOfEGs].width * 0.6); egArray[numberOfEGs].height = (egArray[numberOfEGs].height * 0.6); egArray[numberOfEGs].counter = 0; egArray[numberOfEGs].active = true; } public function hostGame(_arg1:MouseEvent):void{ var _local2:String; var _local3:URLRequest; _local2 = "http://www.arcadetown.com/free_content/index.asp"; _local3 = new URLRequest(_local2); navigateToURL(_local3); } public function aimGun(){ } public function makeIce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):void{ var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:*; var _local13:*; var _local14:*; var _local15:squareShadow_mc; _local6 = 0; if ((((_arg5 < 0)) && ((_arg5 >= -90)))){ _local6 = ((Math.PI / 180) * Math.abs(_arg5)); } else { if ((((_arg5 < -90)) && ((_arg5 >= -180)))){ _local6 = ((Math.PI / 180) * (180 - Math.abs(_arg5))); } else { if ((((_arg5 > 90)) && ((_arg5 <= 180)))){ _local6 = ((Math.PI / 180) * (360 - Math.abs(_arg5))); } else { _local6 = ((Math.PI / 180) * Math.abs(_arg5)); }; }; }; _local7 = Math.cos(_local6); _local8 = Math.sin(_local6); _local9 = _arg3; _local10 = _arg4; _local11 = (((_local10 * _local7) - (_local9 * _local8)) / ((_local7 * _local7) - (_local8 * _local8))); _local12 = ((_local9 - (_local11 * _local8)) / _local7); _local13 = new b2BodyDef(); _local14 = new b2BoxDef(); _local14.extents.Set((_local12 * 0.5), (_local11 * 0.5)); _local14.friction = 0.1; _local14.restitution = 0.1; _local14.density = 0; _local13.position.Set(_arg1, _arg2); _local13.AddShape(_local14); _local13.rotation = ((_arg5 * Math.PI) / 180); _local13.userData = new ice_mc(); _local13.userData.width = (_local14.extents.x * 2); _local13.userData.height = (_local14.extents.y * 2); _local13.userData.x = _arg1; _local13.userData.y = _arg2; _local13.userData.rotation = (_local13.rotation * (180 / Math.PI)); _local13.userData.id = "wall"; gameCanvas.addChild(_local13.userData); _local13.userData.squareShadow = new squareShadow_mc(); _local13.userData.squareShadow.width = (_local14.extents.x * 2); _local13.userData.squareShadow.height = (_local14.extents.y * 2); _local13.userData.squareShadow.x = _arg1; _local13.userData.squareShadow.y = _arg2; _local13.userData.squareShadow.rotation = (_local13.rotation * (180 / Math.PI)); gameCanvas.addChildAt(_local13.userData.squareShadow, 0); m_world.CreateBody(_local13); } public function disableControls():void{ stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); stage.removeEventListener(KeyboardEvent.KEY_UP, keyUpHandler); stage.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); stage.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); } public function retryLevel(_arg1:MouseEvent):void{ submitSuccess = false; gameOverScreen._Menu_.removeEventListener(MouseEvent.MOUSE_DOWN, removeGameOverScreen); gameOverScreen._Try_Again_.removeEventListener(MouseEvent.MOUSE_DOWN, retryLevel); gameOverScreen._Submit_Score_.removeEventListener(MouseEvent.MOUSE_DOWN, submitScore); projectCanvas.removeChild(gameOverScreen); if (gameWon == false){ cleanUp(); } else { gameWon = false; }; setInitialVariables(); retrying = true; showInfo(); } public function fadeInAwards(_arg1:MouseEvent):void{ fadeInOut(); setTimeout(removeMenu, 500); setTimeout(showAwards, 501); } public function makeRotator(_arg1:Number, _arg2:Number):void{ var _local3:*; var _local4:*; var _local5:b2Body; var _local6:*; var _local7:*; var _local8:b2Body; var _local9:b2RevoluteJointDef; var _local10:squareShadow_mc; _local3 = new b2BodyDef(); _local4 = new b2BoxDef(); _local4.extents.Set(25, 25); _local4.friction = 1; _local4.density = 1; _local4.restitution = 0.85; _local3.AddShape(_local4); _local3.userData = new rotator_mc(); _local3.position.Set(_arg1, _arg2); _local3.userData.width = (_local4.extents.x * 2); _local3.userData.height = (_local4.extents.y * 2); _local3.userData.x = _arg1; _local3.userData.y = _arg2; _local3.userData.id = "rotator"; gameCanvas.addChild(_local3.userData); _local5 = m_world.CreateBody(_local3); _local6 = new b2BodyDef(); _local7 = new b2BoxDef(); _local7.extents.Set(1, 1); _local7.friction = 1; _local7.density = 0; _local7.restitution = 0.85; _local6.AddShape(_local7); _local6.position.Set(_arg1, _arg2); _local8 = m_world.CreateBody(_local6); _local9 = new b2RevoluteJointDef(); _local9.body1 = _local5; _local9.body2 = _local8; _local9.anchorPoint = _local5.GetCenterPosition(); _local9.enableMotor = true; _local9.motorTorque = 150000000; _local9.motorSpeed = -4; m_world.CreateJoint(_local9); _local3.userData.squareShadow = new squareShadow_mc(); _local3.userData.squareShadow.width = (_local4.extents.x * 2); _local3.userData.squareShadow.height = (_local4.extents.y * 2); _local3.userData.squareShadow.alpha = 0.4; gameCanvas.addChildAt(_local3.userData.squareShadow, 0); } public function gameLoop(_arg1:Event):void{ if (gameRunning == true){ processGameFunctions(); }; } public function gotoFullScreen(_arg1:MouseEvent):void{ var _local2:String; var _local3:URLRequest; _local2 = "http://www.arcadetown.com/galaxochimp/download.asp"; _local3 = new URLRequest(_local2); navigateToURL(_local3); } public function aimArrow():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:*; var _local5:Number; var _local6:b2Vec2; var _local7:explosion_mc; var _local8:Tween; if (aim == true){ arrow.x = myBall.m_userData.startX; arrow.y = myBall.m_userData.startY; if (delayStart == true){ myBall.m_userData.x = arrow.x; myBall.m_userData.y = (arrow.y - 50); myBall.SetCenterPosition(new b2Vec2(myBall.m_userData.x, myBall.m_userData.y), 0); }; myBall.SetLinearVelocity(new b2Vec2(0, 0)); arrow.turret.scalableArrow.visible = true; if ((((mouseIsDown == false)) && ((delayStart == false)))){ myBall.m_userData.monkey.monkeyAnim.gotoAndStop(1); _local1 = (gameCanvas.mouseX - arrow.x); _local2 = (gameCanvas.mouseY - arrow.y); _local3 = (Math.sqrt(((_local1 * _local1) + (_local2 * _local2))) - 50); if (_local3 > 200){ _local3 = 200; }; if (_local3 < 20){ _local3 = 20; }; arrow.turret.rotation = 0; arrow.turret.scalableArrow.height = _local3; oldArrow.storeWidth = arrow.turret.scalableArrow.height; impulseSize = (_local3 / 2); _local4 = Math.atan2(_local2, _local1); arrow.turret.rotation = (((180 / Math.PI) * _local4) + 90); myBall.m_userData.x = (arrow.x + (50 * Math.cos(_local4))); myBall.m_userData.y = (arrow.y + (50 * Math.sin(_local4))); myBall.SetCenterPosition(new b2Vec2(myBall.m_userData.x, myBall.m_userData.y), ((Math.PI / 180) * arrow.turret.rotation)); }; if ((((((((mouseIsDown == true)) && ((stage.mouseY > 50)))) && ((stage.mouseY < 550)))) && ((delayStart == false)))){ myBall.m_userData.fired = true; _local5 = 18000; _local6 = new b2Vec2(((_local5 * impulseSize) * Math.cos((((arrow.turret.rotation - 90) * Math.PI) / 180))), ((_local5 * impulseSize) * Math.sin((((arrow.turret.rotation - 90) * Math.PI) / 180)))); myBall.WakeUp(); myBall.ApplyImpulse(_local6, myBall.GetCenterPosition()); myBall.m_userData.monkey.monkeyAnim.gotoAndStop(2); _local7 = new explosion_mc(); gameCanvas.addChild(_local7); if (soundOn == true){ launchSound.play(); }; _local7.x = myBall.m_userData.x; _local7.y = myBall.m_userData.y; _local7.width = (_local7.width * 0.5); _local7.height = (_local7.height * 0.5); myBall.m_userData.monkey.flame.alpha = 1; _local8 = new Tween(myBall.m_userData.monkey.flame, "alpha", None.easeNone, 1, 0, 2, true); tweenArray.push(_local8); aim = false; flying = true; arrow.turret.scalableArrow.visible = false; oldArrow.x = arrow.x; oldArrow.y = arrow.y; oldArrow.visible = true; oldArrow.turret.rotation = 0; oldArrow.turret.scalableArrow.height = oldArrow.storeWidth; oldArrow.turret.rotation = arrow.turret.rotation; lives--; if (lives > 0){ setTimeout(reload, 2000); }; }; }; } public function deleteBody(_arg1):void{ if (cleaned == false){ if (_arg1.hasOwnProperty("m_userData")){ if (_arg1.m_userData != null){ if (_arg1.m_userData.hasOwnProperty("roundShadow")){ gameCanvas.removeChild(_arg1.m_userData.roundShadow); }; if (_arg1.m_userData.hasOwnProperty("squareShadow")){ gameCanvas.removeChild(_arg1.m_userData.squareShadow); }; if (_arg1.m_userData.hasOwnProperty("highlight")){ gameCanvas.removeChild(_arg1.m_userData.highlight); }; gameCanvas.removeChild(_arg1.m_userData); _arg1.m_userData = null; m_world.DestroyBody(_arg1); }; }; }; } public function makeMovingLine(_arg1:Number, _arg2:Number):void{ var _local3:*; var _local4:*; var _local5:*; _local3 = new b2BodyDef(); _local4 = new b2BoxDef(); _local4.extents.Set(5, 50); _local4.friction = 0.15; _local4.restitution = 0.2; _local4.density = 0; _local3.position.Set(_arg1, _arg2); _local3.AddShape(_local4); _local3.userData = new movingLine_mc(); _local3.userData.width = 10; _local3.userData.height = 100; _local3.userData.x = _arg1; _local3.userData.y = _arg2; _local3.userData.id = "movingLine"; _local3.userData.speed = 1; gameCanvas.addChild(_local3.userData); _local5 = m_world.CreateBody(_local3); } public function resumeGame(_arg1:MouseEvent):void{ disableReset = false; gameRunning = true; crosshairsOn = true; projectCanvas.removeChild(confirmQuit); confirmQuit.yesButton.removeEventListener(MouseEvent.MOUSE_DOWN, quitGame); confirmQuit.noButton.removeEventListener(MouseEvent.MOUSE_DOWN, resumeGame); gui.quitButton.addEventListener(MouseEvent.MOUSE_DOWN, showConfirmQuit); stage.focus = stage; setTimeout(setDelay, 500); } public function checkMonkeyDead():void{ var _local1:uint; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Point; var _local6:Point; var _local7:explosion_mc; _local1 = 0; while (_local1 < myBallArray.length) { if ((((myBallArray[_local1].m_userData.visible == true)) && ((myBallArray[_local1].m_userData.fired == true)))){ _local2 = Math.abs(myBallArray[_local1].GetLinearVelocity().x); _local3 = Math.abs(myBallArray[_local1].GetLinearVelocity().y); _local4 = ((_local2 * _local2) + (_local3 * _local3)); if (_local4 < 100){ stillCounter++; } else { stillCounter = 0; }; if (stillCounter >= 50){ removeMonkey(myBallArray[_local1]); }; _local5 = new Point(myBallArray[_local1].m_userData.x, myBallArray[_local1].m_userData.y); _local6 = gameCanvas.localToGlobal(_local5); if ((((((((_local6.y < 0)) || ((_local6.y > 600)))) || ((_local6.x > 600)))) || ((_local6.x < 0)))){ _local7 = new explosion_mc(); gameCanvas.addChild(_local7); if (soundOn == true){ explosionSound.play(); chimeSound.play(); }; _local7.x = _local5.x; _local7.y = _local5.y; _local7.width = (_local7.width * 0.5); _local7.height = (_local7.height * 0.5); removeMonkey(myBallArray[_local1]); }; }; _local1++; }; } public function showConfirmQuit(_arg1:MouseEvent):void{ if ((((disableReset == false)) && ((gameOver == false)))){ disableReset = true; gameRunning = false; crosshairsOn = false; gui.quitButton.removeEventListener(MouseEvent.MOUSE_DOWN, showConfirmQuit); confirmQuit = new confirmQuit_mc(); projectCanvas.addChild(confirmQuit); confirmQuit.yesButton.addEventListener(MouseEvent.MOUSE_DOWN, quitGame); confirmQuit.noButton.addEventListener(MouseEvent.MOUSE_DOWN, resumeGame); delayStart = true; }; } public function loseBlack():void{ stage.removeChild(blackScreen); } public function flashScoreOn():void{ gui.lives.visible = true; } public function removeGameOverScreen(_arg1:MouseEvent):void{ submitSuccess = false; gameOverScreen._Menu_.removeEventListener(MouseEvent.MOUSE_DOWN, removeGameOverScreen); gameOverScreen._Try_Again_.removeEventListener(MouseEvent.MOUSE_DOWN, retryLevel); gameOverScreen._More_Games_.removeEventListener(MouseEvent.MOUSE_DOWN, gotoArcadeTown); gameOverScreen._Submit_Score_.removeEventListener(MouseEvent.MOUSE_DOWN, showScoreSubmissionScreen); gameOverScreen.arcadeTown.removeEventListener(MouseEvent.MOUSE_DOWN, gotoArcadeTown); setTimeout(removeGameOverScreenPartTwo, 1000); exitGame(); } public function initialiseSoundToggle():void{ soundToggle.addEventListener(MouseEvent.MOUSE_OVER, soundOver); soundToggle.addEventListener(MouseEvent.MOUSE_OUT, soundUp); soundToggle.addEventListener(MouseEvent.MOUSE_DOWN, toggleSound); } public function setupArrays(){ } public function showMenu():void{ soundToggle.x = 545; soundToggle.y = 562; musicToggle.x = 520; musicToggle.y = 560; menu = new menu_mc(); projectCanvas.addChild(menu); menu.monkeyBubble.monkey.monkey.flame.visible = false; menu.credits.visible = false; if (securityOn == true){ if (((!((currentURL.indexOf(allowedURL, 0) == -1))) || (!((currentURL.indexOf(allowedLocal, 0) == -1))))){ menu._Play_.addEventListener(MouseEvent.MOUSE_DOWN, fadeInLevelSelect); } else { menu.warningMessage.text = "Please go to andromedus.com to host this game"; }; } else { menu._Play_.addEventListener(MouseEvent.MOUSE_DOWN, fadeInLevelSelect); }; menu._Hiscores_.addEventListener(MouseEvent.MOUSE_DOWN, showScores); menu._Download_Game_.addEventListener(MouseEvent.MOUSE_DOWN, gotoFullScreen); menu._More_Games_.addEventListener(MouseEvent.MOUSE_DOWN, gotoArcadeTown); menu._Add_to_Website_.addEventListener(MouseEvent.MOUSE_DOWN, hostGame); menu.arcadeTown.addEventListener(MouseEvent.MOUSE_DOWN, gotoArcadeTown); menu._Credits_.addEventListener(MouseEvent.MOUSE_DOWN, showCredits); if (tickerPresent == false){ addTicker(); }; ticker.visible = true; menu.addEventListener(Event.ENTER_FRAME, moveBubble); } public function fadeInLevelSelect(_arg1:MouseEvent):void{ fadeInOut(); setTimeout(removeMenu, 500); setTimeout(showLevelSelect, 501); } public function removeBlackScreen(_arg1:TweenEvent):void{ fadeOutTween.removeEventListener(TweenEvent.MOTION_FINISH, removeBlackScreen); stage.removeChild(blackScreen); } public function exitGame():void{ gameRunning = false; fadeInOut(); setTimeout(cleanUp, 500); gameWon = false; setTimeout(showMenu, 501); } public function toggleSound(_arg1:MouseEvent):void{ if (soundOn == true){ soundOn = false; soundToggle.gotoAndStop("offOver"); } else { soundOn = true; soundToggle.gotoAndStop("onOver"); }; } public function playSound(_arg1:b2Body, _arg2:b2Body){ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:b2Vec2; var _local10:b2Vec2; if (((_arg1.hasOwnProperty("m_userData")) && (_arg2.hasOwnProperty("m_userData")))){ if (((!((_arg1.m_userData == null))) && (!((_arg2.m_userData == null))))){ if ((((((_arg1 == lastBody1)) && ((_arg2 == lastBody2)))) || ((((_arg1 == lastBody2)) && ((_arg2 == lastBody1)))))){ } else { _local3 = 0; _local4 = 0; _local5 = 0; _local6 = 0; _local7 = 0; _local8 = 0; _local9 = _arg1.GetLinearVelocity(); _local10 = _arg2.GetLinearVelocity(); _local3 = _local9.x; _local4 = _local9.y; _local5 = _local10.x; _local6 = _local10.y; _local7 = Math.abs((_local5 - _local3)); _local8 = Math.abs((_local6 - _local4)); if ((((_local7 > 5)) && ((_local8 > 5)))){ if ((((_arg1.m_userData.id == "wall")) || ((_arg2.m_userData.id == "wall")))){ wallSound.play(); } else { if ((((_arg1.m_userData.id == "puck")) || ((_arg2.m_userData.id == "puck")))){ metalSound.play(); } else { if ((((_arg1.m_userData.id == "enemy")) || ((_arg2.m_userData.id == "enemy")))){ } else { ballSound.play(); }; }; }; lastBody1 = _arg1; lastBody2 = _arg2; }; }; }; }; } public function gotoKinetikz(_arg1:MouseEvent):void{ var _local2:String; var _local3:URLRequest; _local2 = "http://armorgames.com/play/1032/kinetikz"; _local3 = new URLRequest(_local2); navigateToURL(_local3); } public function resumeGame2(_arg1:MouseEvent):void{ disableReset = false; gameRunning = true; crosshairsOn = true; projectCanvas.removeChild(confirmReset); confirmReset.yesButton.removeEventListener(MouseEvent.MOUSE_DOWN, resetLevel); confirmReset.noButton.removeEventListener(MouseEvent.MOUSE_DOWN, resumeGame2); gui.resetButton.addEventListener(MouseEvent.MOUSE_DOWN, showConfirmResetLevel); stage.focus = stage; setTimeout(setDelay, 500); } public function showLevelSelect():void{ score = 0; newGame = true; ticker.visible = false; levelSelect = new levelSelect_mc(); projectCanvas.addChild(levelSelect); levelSelect._Back_.addEventListener(MouseEvent.MOUSE_DOWN, fadeToMenu); levelSelect.levelButtonHolder.addEventListener(MouseEvent.MOUSE_DOWN, selectLevel); lockLevels(); } public function makeEnemy(_arg1:Number, _arg2:Number):void{ var _local3:*; var _local4:*; var _local5:roundShadow_mc; _local3 = new b2BodyDef(); _local4 = new b2CircleDef(); _local4.categoryBits = 2; _local4.radius = 10; _local4.friction = 1; _local4.density = 1; _local4.restitution = 0.85; _local3.AddShape(_local4); _local3.userData = new enemy_mc(); _local3.position.Set(_arg1, _arg2); _local3.linearDamping = 0.03; _local3.angularDamping = 0.02; _local3.userData.width = (_local4.radius * 2); _local3.userData.height = (_local4.radius * 2); _local3.userData.x = _arg1; _local3.userData.y = _arg2; _local3.userData.id = "enemy"; gameCanvas.addChild(_local3.userData); _local3.userData.roundShadow = new roundShadow_mc(); _local3.userData.roundShadow.width = (_local4.radius * 2); _local3.userData.roundShadow.height = (_local4.radius * 2); gameCanvas.addChildAt(_local3.userData.roundShadow, 0); m_world.CreateBody(_local3); } public function mouseDownHandler(_arg1:MouseEvent):void{ mouseIsDown = true; rapidFireCounter = 0; } public function storeHints():void{ hint[1] = "Use the mouse to aim and fire bullets at objects on the screen."; hint[2] = "Use the left and right arrow keys (or A and D) to move your cannon left or right"; hint[3] = ""; hint[4] = "Watch out for Kinetroids - they will try to push your puck over the blue lines!"; hint[5] = "Use the up arrow (or W) to increase the vertical speed"; hint[6] = "Get more points for firing less discs"; hint[7] = "Get each puck to the target with the same colour."; hint[8] = "Get a new life for every 4000 points"; hint[9] = "There are 30 levels - can you clear them all?"; hint[30] = "Final level !!"; } public function enableSkimming(_arg1, _arg2):void{ var _local3:b2ContactNode; var _local4:b2Contact; var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:b2Vec2; var _local10:b2Manifold; var _local11:b2ContactPoint; var _local12:b2Vec2; var _local13:b2ContactNode; var _local14:b2Contact; var _local15:b2Vec2; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:b2Vec2; var _local20:b2Manifold; var _local21:b2ContactPoint; var _local22:b2Vec2; if (_arg1.hasOwnProperty("m_userData") == true){ if (_arg2.hasOwnProperty("m_userData") == true){ if (_arg1.m_userData != null){ if (_arg2.m_userData != null){ if ((((_arg1.m_userData.id == "puck")) && ((_arg2.m_userData.id == "bullet")))){ _local3 = _arg1.GetContactList(); _local4 = _local3.contact; if (_local4.GetManifoldCount() > 0){ _local10 = (_local4.GetManifolds()[0] as b2Manifold); _local11 = (_local10.points[0] as b2ContactPoint); _local12 = _local11.position; }; _local5 = new b2Vec2((_local12.x - _arg1.m_position.x), (_local12.y - _arg1.m_position.y)); _local6 = _local5.Length(); _local7 = ((-2000 * _local5.x) / _local6); _local8 = ((-2000 * _local5.y) / _local6); _local9 = new b2Vec2(_local7, _local8); _arg1.ApplyImpulse(_local9, _arg1.GetCenterPosition()); }; if ((((_arg2.m_userData.id == "puck")) && ((_arg1.m_userData.id == "bullet")))){ _local13 = _arg2.GetContactList(); _local14 = _local13.contact; if (_local14.GetManifoldCount() > 0){ _local20 = (_local14.GetManifolds()[0] as b2Manifold); _local21 = (_local20.points[0] as b2ContactPoint); _local22 = _local21.position; }; _local15 = new b2Vec2((_local22.x - _arg2.m_position.x), (_local22.y - _arg2.m_position.y)); _local16 = _local15.Length(); _local17 = ((-2000 * _local15.x) / _local16); _local18 = ((-2000 * _local15.y) / _local16); _local19 = new b2Vec2(_local17, _local18); _arg2.ApplyImpulse(_local19, _arg2.GetCenterPosition()); }; }; }; }; }; } public function fadeInOutSlow():void{ var _local1:Tween; blackScreen = new blackScreen_mc(); blackScreen.alpha = 0; stage.addChild(blackScreen); _local1 = new Tween(blackScreen, "alpha", None.easeNone, 0, 1, 2, true); setTimeout(fadeOut, 2010); } public function setGameOver():void{ gameOver = true; } public function createSides():void{ var _local1:*; var _local2:*; var _local3:uint; var _local4:b2Body; _local1 = new b2BodyDef(); _local2 = new b2BoxDef(); _local3 = 1; while (_local3 <= 2) { _local2.extents.Set(5, 300); _local2.friction = 0.15; _local2.restitution = 1; _local2.density = 0; if (_local3 == 1){ _local1.position.Set(-300, 0); } else { _local1.position.Set(295, 0); }; _local1.AddShape(_local2); _local1.userData = new wallV_mc(); _local1.userData.alpha = 0; _local1.userData.width = (_local2.extents.x * 2); _local1.userData.height = (_local2.extents.y * 2); _local1.userData.id = "sideWall"; gameCanvas.addChild(_local1.userData); _local1.userData.squareShadow = new squareShadow_mc(); _local1.userData.squareShadow.width = (_local2.extents.x * 2); _local1.userData.squareShadow.height = (_local2.extents.y * 2); _local1.userData.squareShadow.x = _local1.position.x; _local1.userData.squareShadow.y = _local1.position.y; _local4 = m_world.CreateBody(_local1); sideWall[_local3] = _local4; _local3++; }; } public function lockLevels():void{ var _local1:int; var _local2:String; var _local3:*; var _local4:DisplayObject; var _local5:padlock_mc; var _local6:DropShadowFilter; _local1 = 0; _local3 = 0; while (_local3 < levelSelect.levelButtonHolder.numChildren) { _local4 = levelSelect.levelButtonHolder.getChildAt(_local3); if ((_local4 is levelThumb)){ _local1++; if ((((((_local1 > alwaysUnlocked)) && ((_local1 > highestLevel)))) && ((_local4.visible == true)))){ _local5 = new padlock_mc(); levelSelect.levelButtonHolder.addChild(_local5); _local6 = new DropShadowFilter(); _local6.distance = 3; _local6.angle = 45; _local6.strength = 0.8; _local5.filters = [_local6]; _local5.mouseEnabled = false; _local5.x = _local4.x; _local5.y = _local4.y; }; }; _local3++; }; } public function removeLevelSelect():void{ projectCanvas.removeChild(levelSelect); levelSelect._Back_.removeEventListener(MouseEvent.MOUSE_DOWN, removeLevelSelect); } public function arrowLeftUp(_arg1:MouseEvent):void{ arrowLeftDownFlag = false; } public function showScoreSubmissionScreen(_arg1:MouseEvent):void{ gameOverScreen.submissionScreen.visible = true; gameOverScreen.submissionScreen.message.text = ""; gameOverScreen.submissionScreen._Submit_.addEventListener(MouseEvent.MOUSE_DOWN, submitScore); gameOverScreen.submissionScreen.close.addEventListener(MouseEvent.MOUSE_DOWN, removeScoreSubmissionScreen); } public function scrollGameCanvas(){ } public function soundOver(_arg1:MouseEvent):void{ if (soundOn == true){ soundToggle.gotoAndStop("onOver"); } else { soundToggle.gotoAndStop("offOver"); }; } public function setDelay():void{ delayStart = false; } public function end_preload():void{ removeEventListener(Event.ENTER_FRAME, loader); _Continue_.visible = true; if (onKong == false){ _Continue_.addEventListener(MouseEvent.MOUSE_DOWN, removeAd); } else { nextFrame(); }; } public function initialiseMusicToggle():void{ musicToggle.addEventListener(MouseEvent.MOUSE_OVER, musicOver); musicToggle.addEventListener(MouseEvent.MOUSE_OUT, musicUp); musicToggle.addEventListener(MouseEvent.MOUSE_DOWN, toggleMusic); } public function collectStar(_arg1:MovieClip):void{ var _local2:annihilationEffect_mc; var _local3:bonusDisplay_mc; var _local4:Number; _local2 = new annihilationEffect_mc(); gameCanvas.addChild(_local2); if (soundOn == true){ chimeSound.play(); }; _local2.x = _arg1.x; _local2.y = _arg1.y; _local2.width = (_local2.width * 0.5); _local2.height = (_local2.height * 0.5); _local3 = new bonusDisplay_mc(); gameCanvas.addChild(_local3); _local4 = 100; bonus = (bonus + _local4); _local3.textField.text = String(_local4); _local3.x = _local2.x; _local3.y = _local2.y; _arg1.visible = false; } public function fireEnemyBullet(_arg1:MovieClip):void{ var _local2:b2Body; var _local3:Number; var _local4:*; var _local5:b2Vec2; _local2 = makeEnemyBullet(_local2, _arg1.x, _arg1.y); _local3 = ((_arg1.rotation * Math.PI) / 180); _local4 = 100000; _local5 = new b2Vec2((_local4 * Math.sin(_local3)), (-(_local4) * Math.cos(_local3))); _local2.ApplyImpulse(_local5, _local2.GetCenterPosition()); if (soundOn == true){ fireSound.play(); }; } public function initialiseControls():void{ stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); stage.focus = stage; } public function checkCollisions():void{ var _local1:b2Contact; var _local2:b2Body; var _local3:b2Body; if (checkForCollisions == true){ _local1 = m_world.GetContactList(); while (_local1) { if (_local1.GetManifoldCount() > 0){ _local2 = _local1.GetShape1().GetBody(); _local3 = _local1.GetShape2().GetBody(); if (soundOn == true){ playSound(_local2, _local3); }; preventSticking(_local2, _local3); enableSkimming(_local2, _local3); checkPuckAnnihilation(_local2, _local3); triggerBumpers(_local2, _local3); addLife(_local2, _local3); }; _local1 = _local1.GetNext(); }; }; } public function checkStarCollisions():void{ var _local1:Number; var _local2:uint; var _local3:uint; var _local4:Number; var _local5:Number; var _local6:Number; _local1 = ((21 + myBallRadius) * (21 + myBallRadius)); _local2 = 0; while (_local2 < myBallArray.length) { _local3 = 0; while (_local3 < starArray.length) { if (starArray[_local3].visible == true){ _local4 = (myBallArray[_local2].m_userData.x - starArray[_local3].x); _local5 = (myBallArray[_local2].m_userData.y - starArray[_local3].y); _local6 = ((_local4 * _local4) + (_local5 * _local5)); if (_local6 <= _local1){ collectStar(starArray[_local3]); }; }; _local3++; }; _local2++; }; } public function initialise():void{ projectCanvas = new Sprite(); stage.addChild(projectCanvas); crosshairs = new crosshairs_mc(); stage.addChild(crosshairs); crosshairs.visible = false; setupArrays(); soundToggle = new soundToggle_mc(); stage.addChild(soundToggle); musicToggle = new musicToggle_mc(); stage.addChild(musicToggle); showMenu(); initialiseSoundToggle(); initialiseMusicToggle(); musicChannel = musicSound.play(0, 100); storeHints(); blackScreen = new blackScreen_mc(); stage.addChild(blackScreen); setTimeout(loseBlack, 1500); } public function onConnectError(_arg1:String):void{ } public function cleanUp():void{ cleaned = true; crosshairsOn = false; Mouse.show(); crosshairs.visible = false; cleanPhysics(); stage.removeEventListener(Event.ENTER_FRAME, gameLoop); stage.removeEventListener(MouseEvent.MOUSE_DOWN, fireBullet); gui.resetButton.removeEventListener(MouseEvent.MOUSE_DOWN, resetLevel); gui.quitButton.removeEventListener(MouseEvent.MOUSE_DOWN, showConfirmQuit); projectCanvas.removeChild(gui); projectCanvas.removeChild(gameCanvas); projectCanvas.removeChild(backgroundCanvas); projectCanvas.removeChild(gunCanvas); stage.removeChild(debug); disableControls(); numberOfPucks = 0; puckArray = new Array(); numberOfTargets = 0; targetArray = new Array(); teleportArray = new Array(); numberOfTeleports = 0; teleportPair = 0; numberOfHintBoxes = 0; hintBoxArray = new Array(); tweenArray = new Array(); sideWall = new Array(); numberOfEGs = 0; egArray = new Array(); starArray = new Array(); mouseIsDown = false; rapidFireOn = false; scrolled = 0; killed = false; placing = false; storeBallY = 0; maxBallY = 0; lastLevelReached = false; groundCreated = false; aim = false; stillCounter = 0; delayStart = false; myBallArray = new Array(); } public function fadeInOut():void{ var _local1:Tween; blackScreen = new blackScreen_mc(); blackScreen.alpha = 0; stage.addChild(blackScreen); _local1 = new Tween(blackScreen, "alpha", None.easeNone, 0, 1, 0.5, true); setTimeout(fadeOut, 510); } public function updateCrosshairs():void{ } public function arrowRightDown(_arg1:MouseEvent):void{ arrowRightDownFlag = true; lastButtonPressed = "right"; } public function fadeOutBlackScreen(_arg1:TweenEvent):void{ fadeInTween.removeEventListener(TweenEvent.MOTION_FINISH, fadeOutBlackScreen); removeLevelSelect(); ticker.removeEventListener(Event.ENTER_FRAME, scrollTicker); projectCanvas.removeChild(ticker); tickerPresent = false; setInitialVariables(); showInfo(); fadeOutTween = new Tween(blackScreen, "alpha", None.easeNone, 1, 0, 0.5, true); fadeOutTween.addEventListener(TweenEvent.MOTION_FINISH, removeBlackScreen); } public function quitGame(_arg1:MouseEvent):void{ projectCanvas.removeChild(confirmQuit); confirmQuit.yesButton.removeEventListener(MouseEvent.MOUSE_DOWN, quitGame); confirmQuit.noButton.removeEventListener(MouseEvent.MOUSE_DOWN, resumeGame); exitGame(); } public function scrollLevelButtons():void{ levelSelect.addEventListener(Event.ENTER_FRAME, slideButtonsLeft); levelSelect.addEventListener(Event.ENTER_FRAME, slideButtonsRight); levelSelect.addEventListener(Event.ENTER_FRAME, adjustButtons); levelSelect.arrowLeft.addEventListener(MouseEvent.MOUSE_DOWN, arrowLeftDown); levelSelect.arrowRight.addEventListener(MouseEvent.MOUSE_DOWN, arrowRightDown); levelSelect.arrowLeft.addEventListener(MouseEvent.MOUSE_UP, arrowLeftUp); levelSelect.arrowRight.addEventListener(MouseEvent.MOUSE_UP, arrowRightUp); levelSelect.arrowLeft.addEventListener(MouseEvent.MOUSE_OUT, arrowLeftUp); levelSelect.arrowRight.addEventListener(MouseEvent.MOUSE_OUT, arrowRightUp); } public function removeGameOverScreenPartTwo():void{ projectCanvas.removeChild(gameOverScreen); } public function checkTargetReached():void{ } public function showReload():void{ } public function showCredits(_arg1:MouseEvent):void{ menu._Credits_.removeEventListener(MouseEvent.MOUSE_DOWN, showCredits); menu.credits.visible = true; menu.credits._Close_.addEventListener(MouseEvent.MOUSE_DOWN, hideCredits); menu.credits.andromedusButton.addEventListener(MouseEvent.MOUSE_DOWN, gotoAndromedus); } public function makeLine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):void{ var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:*; var _local13:*; var _local14:*; _local6 = 0; if ((((_arg5 < 0)) && ((_arg5 >= -90)))){ _local6 = ((Math.PI / 180) * Math.abs(_arg5)); } else { if ((((_arg5 < -90)) && ((_arg5 >= -180)))){ _local6 = ((Math.PI / 180) * (180 - Math.abs(_arg5))); } else { if ((((_arg5 > 90)) && ((_arg5 <= 180)))){ _local6 = ((Math.PI / 180) * (360 - Math.abs(_arg5))); } else { _local6 = ((Math.PI / 180) * Math.abs(_arg5)); }; }; }; _local7 = Math.cos(_local6); _local8 = Math.sin(_local6); _local9 = _arg3; _local10 = _arg4; _local11 = (((_local10 * _local7) - (_local9 * _local8)) / ((_local7 * _local7) - (_local8 * _local8))); _local12 = ((_local9 - (_local11 * _local8)) / _local7); _local13 = new b2BodyDef(); _local14 = new b2BoxDef(); _local14.extents.Set((_local12 * 0.5), (_local11 * 0.5)); _local14.friction = 0; _local14.restitution = 1.05; _local14.density = 0; _local13.position.Set(_arg1, _arg2); _local13.AddShape(_local14); _local13.rotation = ((_arg5 * Math.PI) / 180); _local13.userData = new line_mc(); _local13.userData.width = (_local14.extents.x * 2); _local13.userData.height = (_local14.extents.y * 2); _local13.userData.x = _arg1; _local13.userData.y = _arg2; _local13.userData.id = "line"; gameCanvas.addChild(_local13.userData); m_world.CreateBody(_local13); } public function checkNonPhysicsCollisions():void{ var _local1:b2Body; var _local2:*; var _local3:MovieClip; var _local4:b2Vec2; var _local5:b2Vec2; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:uint; var _local9:uint; var _local10:*; var _local11:Number; var _local12:Number; _local1 = m_world.m_bodyList; _local2 = m_world.m_bodyCount; _local4 = new b2Vec2(200, 0); _local5 = new b2Vec2(-200, 0); _local6 = new b2Vec2(0, 200); _local7 = new b2Vec2(0, -200); _local8 = 0; _local9 = 0; _local10 = 0; while (_local10 < (_local2 - 1)) { if (numberOfTravelators > 0){ _local8 = 1; while (_local8 <= numberOfTravelators) { if (_local1.hasOwnProperty("m_userData") == true){ if (_local1.m_userData != null){ if ((((((((((((_local1.m_userData.hitTestObject(travelator[_local8].hitZone1) == true)) || ((_local1.m_userData.hitTestObject(travelator[_local8].hitZone2) == true)))) || ((_local1.m_userData.hitTestObject(travelator[_local8].hitZone3) == true)))) || ((_local1.m_userData.hitTestObject(travelator[_local8].hitZone4) == true)))) || ((_local1.m_userData.hitTestObject(travelator[_local8].hitZone5) == true)))) || ((_local1.m_userData.hitTestObject(travelator[_local8].hitZone6) == true)))){ if (travelator[_local8].variety == "left"){ _local1.SetLinearVelocity(_local5); }; if (travelator[_local8].variety == "right"){ _local1.SetLinearVelocity(_local4); }; if (travelator[_local8].variety == "down"){ _local1.SetLinearVelocity(_local6); }; if (travelator[_local8].variety == "up"){ _local1.SetLinearVelocity(_local7); }; }; }; }; _local8++; }; }; if (numberOfTeleports > 0){ _local8 = 1; while (_local8 <= numberOfTeleports) { if (teleportArray[_local8].variety == "in"){ if (_local1.hasOwnProperty("m_userData") == true){ if (_local1.m_userData != null){ if (((!((_local1.m_userData.id == "wall"))) && (!((_local1.m_userData.id == "line"))))){ _local11 = (((_local1.m_userData.x - teleportArray[_local8].x) * (_local1.m_userData.x - teleportArray[_local8].x)) + ((_local1.m_userData.y - teleportArray[_local8].y) * (_local1.m_userData.y - teleportArray[_local8].y))); _local12 = ((teleportArray[_local8].width / 2) + (_local1.m_userData.width / 2)); if (_local11 <= (_local12 * _local12)){ _local1.m_position.x = teleportArray[_local8].pair.x; _local1.m_position.y = teleportArray[_local8].pair.y; }; }; }; }; }; _local8++; }; }; _local1 = _local1.m_next; _local10++; }; } public function makeRapidFire(_arg1:Number, _arg2:Number):void{ var _local3:*; var _local4:*; if (rapidFireOn == false){ _local3 = new b2BodyDef(); _local4 = new b2CircleDef(); _local4.radius = 23; _local4.friction = 1; _local4.density = 0; _local4.restitution = 1; _local3.AddShape(_local4); _local3.userData = new rapidFire_mc(); _local3.userData.cacheAsBitmap = true; _local3.position.Set(_arg1, _arg2); _local3.userData.width = 50; _local3.userData.height = 50; _local3.userData.x = _arg1; _local3.userData.y = _arg2; _local3.userData.id = "rapidFire"; gameCanvas.addChild(_local3.userData); m_world.CreateBody(_local3); }; } public function addTicker():void{ tickerPresent = true; tickerSection = 0; ticker = new ticker_mc(); projectCanvas.addChild(ticker); ticker.x = 0; ticker.y = 500; tickerStart = ticker.mc.textField.x; ticker.mc.textField.x = (tickerStart + 600); ticker.mc.textField.text = tickerArray[tickerSection]; ticker.mc.textField.autoSize = TextFieldAutoSize.LEFT; ticker.addEventListener(Event.ENTER_FRAME, scrollTicker); } public function setCurrentLevel():void{ } public function showAwards():void{ } public function setInitialVariables():void{ gameWon = false; bonusLifeScore = bonusLifeInterval; lives = startLives; levelsPlayed = 0; kinetroidsDestroyed = 0; } public function showHighscores(){ } public function positionLevelButtons():void{ } public function fireBullet():void{ var _local1:Boolean; var _local2:b2Body; var _local3:Point; var _local4:Point; var _local5:Point; var _local6:Number; var _local7:*; var _local8:b2Vec2; _local1 = false; if (rapidFireOn == true){ if (rapidFireCounter >= 5){ rapidFireCounter = 0; }; if (rapidFireCounter == 0){ _local1 = true; }; rapidFireCounter++; }; if (mouseIsDown == true){ if ((((((rapidFireOn == false)) && ((preventFiring == false)))) || ((_local1 == true)))){ if (crosshairs.visible == true){ preventFiring = true; _local3 = new Point(gun.x, gun.y); _local4 = gunCanvas.localToGlobal(_local3); _local5 = gameCanvas.globalToLocal(_local4); _local2 = makeBullet(_local2, _local5.x, _local5.y); _local6 = (((gun.turret.rotation * Math.PI) / 180) - ((gameCanvas.rotation * Math.PI) / 180)); _local7 = 100000; _local8 = new b2Vec2((_local7 * Math.sin(_local6)), (-(_local7) * Math.cos(_local6))); _local2.ApplyImpulse(_local8, _local2.GetCenterPosition()); if (soundOn == true){ fireSound.play(); }; discsUsed++; }; }; }; } public function toggleMusic(_arg1:MouseEvent):void{ if (musicOn == true){ musicOn = false; musicToggle.gotoAndStop("offOver"); musicTransform.volume = 0; musicChannel.soundTransform = musicTransform; } else { musicOn = true; musicToggle.gotoAndStop("onOver"); musicTransform.volume = 1; musicChannel.soundTransform = musicTransform; }; } public function fadeOut():void{ fadeOutTween = new Tween(blackScreen, "alpha", None.easeNone, 1, 0, 0.5, true); fadeOutTween.addEventListener(TweenEvent.MOTION_FINISH, removeBlackScreen); } public function makeTeleport(_arg1:Number, _arg2:Number, _arg3:String){ numberOfTeleports++; if (_arg3 == "in"){ teleportArray[numberOfTeleports] = new teleportIn_mc(); }; if (_arg3 == "out"){ teleportArray[numberOfTeleports] = new teleportOut_mc(); }; teleportArray[numberOfTeleports].x = _arg1; teleportArray[numberOfTeleports].y = _arg2; teleportArray[numberOfTeleports].variety = _arg3; gameCanvas.addChildAt(teleportArray[numberOfTeleports], 0); teleportPair++; if (teleportPair == 2){ teleportArray[numberOfTeleports].pair = teleportArray[(numberOfTeleports - 1)]; teleportArray[(numberOfTeleports - 1)].pair = teleportArray[numberOfTeleports]; teleportPair = 0; }; } public function addLife(_arg1, _arg2):void{ var _local3:b2Body; var _local4:b2Body; var _local5:bonusDisplay_mc; var _local6:annihilationEffect_mc; if (_arg1.hasOwnProperty("m_userData") == true){ if (_arg2.hasOwnProperty("m_userData") == true){ if (_arg1.m_userData != null){ if (_arg2.m_userData != null){ if ((((_arg1.m_userData.id == "lifeBonus")) || ((_arg2.m_userData.id == "lifeBonus")))){ if ((((_arg1.m_userData.id == "myBall")) || ((_arg2.m_userData.id == "myBall")))){ if (_arg1.m_userData.id == "lifeBonus"){ _local3 = _arg1; _local4 = _arg2; } else { _local3 = _arg2; _local4 = _arg1; }; lives++; if (soundOn == true){ bonusSound.play(); }; setTimeout(flashScoreOff, 200); setTimeout(flashScoreOn, 400); setTimeout(flashScoreOff, 600); setTimeout(flashScoreOn, 800); setTimeout(flashScoreOff, 1000); setTimeout(flashScoreOn, 1200); setTimeout(flashScoreOff, 1400); setTimeout(flashScoreOn, 1600); _local5 = new bonusDisplay_mc(); gameCanvas.addChild(_local5); _local5.textField.text = "+1 life"; _local5.x = _local3.m_userData.x; _local5.y = _local3.m_userData.y; _local6 = new annihilationEffect_mc(); gameCanvas.addChild(_local6); _local6.x = _local3.m_userData.x; _local6.y = _local3.m_userData.y; _local6.width = (_local6.width * 0.5); _local6.height = (_local6.height * 0.5); deleteBody(_local3); }; }; }; }; }; }; } public function initialiseGame():void{ var _local1:*; var _local2:Date; backgroundCanvas = new Sprite(); projectCanvas.addChild(backgroundCanvas); _local1 = new background_mc(); backgroundCanvas.addChild(_local1); _local1.y = 0; gameCanvas = new Sprite(); gameCanvas.x = centre.x; gameCanvas.y = centre.y; projectCanvas.addChild(gameCanvas); resetVars(); initialisePhysics(); createLevel(currentLevel, 0); arrow = new arrow_mc(); gameCanvas.addChild(arrow); arrow.visible = true; oldArrow = new arrow_mc(); gameCanvas.addChild(oldArrow); oldArrow.visible = false; oldArrow.alpha = 0.5; oldArrow.base.visible = false; oldArrow.turret.top.visible = false; aim = true; debug = new debug_mc(); stage.addChild(debug); debug.visible = false; addGUI(); gui.quitButton.addEventListener(MouseEvent.MOUSE_DOWN, showConfirmQuit); gui.resetButton.addEventListener(MouseEvent.MOUSE_DOWN, showConfirmResetLevel); _local2 = new Date(); fpsStartTime = _local2.getTime(); stage.addEventListener(Event.ENTER_FRAME, gameLoop, false, 0, true); initialiseControls(); crosshairsOn = true; cleaned = false; lives = 3; } public function checkAwardsLevelIncomplete():void{ } public function submitFail():void{ if (submitSuccess == false){ gameOverScreen.message3.text = "Sorry, could not connect. Try submitting again."; hsLoader.removeEventListener(Event.COMPLETE, submitCompleteHandler); gameOverScreen.submitButton.addEventListener(MouseEvent.MOUSE_DOWN, submitHighscore); }; } public function removeAwards():void{ awards.menuButton.removeEventListener(MouseEvent.MOUSE_DOWN, fadeOutAwards); projectCanvas.removeChild(awards); showMenu(); ticker.visible = true; } public function gotoArmorBlog(_arg1:MouseEvent):void{ var _local2:String; var _local3:URLRequest; _local2 = "http://www.armorblog.com"; _local3 = new URLRequest(_local2); navigateToURL(_local3); } public function preventSticking(_arg1, _arg2):void{ var _local3:b2ContactNode; var _local4:b2Contact; var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:b2Vec2; var _local10:b2Manifold; var _local11:b2ContactPoint; var _local12:b2Vec2; var _local13:b2ContactNode; var _local14:b2Contact; var _local15:b2Vec2; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:b2Vec2; var _local20:b2Manifold; var _local21:b2ContactPoint; var _local22:b2Vec2; var _local23:b2ContactNode; var _local24:b2Contact; var _local25:b2Vec2; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:b2Vec2; var _local30:b2Manifold; var _local31:b2ContactPoint; var _local32:b2Vec2; var _local33:b2ContactNode; var _local34:b2Contact; var _local35:b2Vec2; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:b2Vec2; var _local40:b2Manifold; var _local41:b2ContactPoint; var _local42:b2Vec2; if (_arg1.hasOwnProperty("m_userData") == true){ if (_arg2.hasOwnProperty("m_userData") == true){ if (_arg1.m_userData != null){ if (_arg2.m_userData != null){ if ((((((_arg1.m_userData.id == "puck")) && ((_arg2.m_userData.id == "wall")))) || ((_arg2.m_userData.id == "sideWall")))){ _local3 = _arg1.GetContactList(); _local4 = _local3.contact; if (_local4.GetManifoldCount() > 0){ _local10 = (_local4.GetManifolds()[0] as b2Manifold); _local11 = (_local10.points[0] as b2ContactPoint); _local12 = _local11.position; }; _local5 = new b2Vec2((_local12.x - _arg1.m_position.x), (_local12.y - _arg1.m_position.y)); _local6 = _local5.Length(); _local7 = ((-2500 * _local5.x) / _local6); _local8 = ((-2500 * _local5.y) / _local6); _local9 = new b2Vec2(_local7, _local8); _arg1.ApplyImpulse(_local9, _arg1.GetCenterPosition()); }; if ((((((_arg2.m_userData.id == "puck")) && ((_arg1.m_userData.id == "wall")))) || ((_arg1.m_userData.id == "sideWall")))){ _local13 = _arg2.GetContactList(); _local14 = _local13.contact; if (_local14.GetManifoldCount() > 0){ _local20 = (_local14.GetManifolds()[0] as b2Manifold); _local21 = (_local20.points[0] as b2ContactPoint); _local22 = _local21.position; }; _local15 = new b2Vec2((_local22.x - _arg2.m_position.x), (_local22.y - _arg2.m_position.y)); _local16 = _local15.Length(); _local17 = ((-2500 * _local15.x) / _local16); _local18 = ((-2500 * _local15.y) / _local16); _local19 = new b2Vec2(_local17, _local18); _arg2.ApplyImpulse(_local19, _arg2.GetCenterPosition()); }; if ((((_arg1.m_userData.id == "bullet")) && ((_arg2.m_userData.id == "wall")))){ _local23 = _arg1.GetContactList(); _local24 = _local23.contact; if (_local24.GetManifoldCount() > 0){ _local30 = (_local24.GetManifolds()[0] as b2Manifold); _local31 = (_local30.points[0] as b2ContactPoint); _local32 = _local31.position; }; _local25 = new b2Vec2((_local32.x - _arg1.m_position.x), (_local32.y - _arg1.m_position.y)); _local26 = _local25.Length(); _local27 = ((-2500 * _local25.x) / _local26); _local28 = ((-2500 * _local25.y) / _local26); _local29 = new b2Vec2(_local27, _local28); _arg1.ApplyImpulse(_local29, _arg1.GetCenterPosition()); }; if ((((_arg2.m_userData.id == "bullet")) && ((_arg1.m_userData.id == "wall")))){ _local33 = _arg2.GetContactList(); _local34 = _local33.contact; if (_local34.GetManifoldCount() > 0){ _local40 = (_local34.GetManifolds()[0] as b2Manifold); _local41 = (_local40.points[0] as b2ContactPoint); _local42 = _local41.position; }; _local35 = new b2Vec2((_local42.x - _arg2.m_position.x), (_local42.y - _arg2.m_position.y)); _local36 = _local35.Length(); _local37 = ((-2500 * _local35.x) / _local36); _local38 = ((-2500 * _local35.y) / _local36); _local39 = new b2Vec2(_local37, _local38); _arg2.ApplyImpulse(_local39, _arg2.GetCenterPosition()); }; }; }; }; }; } public function wrapvalue(_arg1:Number):Number{ if (_arg1 < 0){ _arg1 = (_arg1 + (2 * Math.PI)); }; if (_arg1 > (2 * Math.PI)){ _arg1 = (_arg1 - (2 * Math.PI)); }; return (_arg1); } public function removeInfo():void{ levelInfo._Continue_.removeEventListener(MouseEvent.MOUSE_DOWN, fadeInfoOut); levelInfo._More_Games_.removeEventListener(MouseEvent.MOUSE_DOWN, gotoArcadeTown); levelInfo.arcadeTown.removeEventListener(MouseEvent.MOUSE_DOWN, gotoArcadeTown); projectCanvas.removeChild(levelInfo); } public function removeScoreSubmissionScreen(_arg1:MouseEvent):void{ gameOverScreen.submissionScreen.visible = false; gameOverScreen.submissionScreen._Submit_.removeEventListener(MouseEvent.MOUSE_DOWN, submitScore); gameOverScreen.submissionScreen.close.removeEventListener(MouseEvent.MOUSE_DOWN, removeScoreSubmissionScreen); } public function resetLevel(_arg1:MouseEvent):void{ checkAwardsLevelIncomplete(); projectCanvas.removeChild(confirmReset); confirmReset.yesButton.removeEventListener(MouseEvent.MOUSE_DOWN, resetLevel); confirmReset.noButton.removeEventListener(MouseEvent.MOUSE_DOWN, resumeGame2); cleanUp(); setInitialVariables(); delayStart = true; initialiseGame(); setTimeout(setDelay, 500); } public function slideButtonsRight(_arg1:Event):void{ if (arrowLeftDownFlag == true){ if (levelSelect.levelButtonHolder.x < levelButtonStart){ levelSelect.levelButtonHolder.x = (levelSelect.levelButtonHolder.x + 8); }; }; } public function EncrpytString(_arg1):String{ var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:*; _local2 = "aHfEjcDebChGiAfIjDbEjacD"; _local3 = _local2.length; _local4 = "0"; _local5 = ""; _local6 = _arg1.length; _local7 = 0; _local11 = 0; _local12 = 0; while (_local12 < _local6) { _local8 = _arg1.charCodeAt(_local12); if (_local8 >= 128){ _local8 = "X"; }; _local9 = _local2.charCodeAt(_local7); _local7 = (_local7 + 1); if (_local7 >= _local3){ _local7 = 0; }; _local10 = ((_local8 % 16) + _local9); _local5 = (_local5 + String.fromCharCode(_local10)); _local11 = (_local11 + _local10); _local9 = _local2.charCodeAt(_local7); _local7 = (_local7 + 1); if (_local7 >= _local3){ _local7 = 0; }; _local10 = (Math.floor((_local8 / 16)) + _local9); _local5 = (_local5 + String.fromCharCode(_local10)); _local11 = (_local11 + _local10); _local12++; }; _local11 = (_local11 % 0x0100); _local9 = _local2.charCodeAt(_local7); _local7 = (_local7 + 1); if (_local7 >= _local3){ _local7 = 0; }; _local10 = ((_local11 % 16) + _local9); _local5 = (_local5 + String.fromCharCode(_local10)); _local9 = _local2.charCodeAt(_local7); _local7 = (_local7 + 1); if (_local7 >= _local3){ _local7 = 0; }; _local10 = (Math.floor((_local11 / 16)) + _local9); _local5 = (_local5 + String.fromCharCode(_local10)); return (_local5); } public function triggerBumpers(_arg1, _arg2):void{ var _local3:b2Body; var _local4:b2Body; var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:b2Vec2; if (_arg1.hasOwnProperty("m_userData") == true){ if (_arg2.hasOwnProperty("m_userData") == true){ if (_arg1.m_userData != null){ if (_arg2.m_userData != null){ if ((((_arg1.m_userData.id == "bumper")) || ((_arg2.m_userData.id == "bumper")))){ if (_arg1.m_userData.id == "bumper"){ _local3 = _arg1; _local4 = _arg2; } else { _local3 = _arg2; _local4 = _arg1; }; _local5 = new b2Vec2((_local4.m_position.x - _local3.m_position.x), (_local4.m_position.y - _local3.m_position.y)); _local6 = _local5.Length(); _local7 = ((300000 * _local5.x) / _local6); _local8 = ((300000 * _local5.y) / _local6); _local9 = new b2Vec2(_local7, _local8); _local4.ApplyImpulse(_local9, _local4.GetCenterPosition()); _local3.m_userData.light.gotoAndPlay(2); }; }; }; }; }; } public function initialisePhysics():void{ var _local1:b2AABB; var _local2:b2Vec2; var _local3:Boolean; _local1 = new b2AABB(); _local1.minVertex.Set(-300, -2000); _local1.maxVertex.Set(300, 400); _local2 = new b2Vec2(0, grav); _local3 = true; m_world = new b2World(_local1, _local2, _local3); } public function hideHelp(_arg1:MouseEvent):void{ gui.help._Close_.removeEventListener(MouseEvent.CLICK, hideHelp); gui.help.visible = false; setTimeout(setDelay, 500); } public function musicUp(_arg1:MouseEvent):void{ if (musicOn == true){ musicToggle.gotoAndStop("onUp"); } else { musicToggle.gotoAndStop("offUp"); }; } public function fadeHintBox(){ var _local1:Tween; if (hintBoxExists == true){ _local1 = new Tween(hintBox, "alpha", None.easeNone, 0.7, 0, 2, true); setTimeout(removeHintBox, 2500); tweenArray.push(_local1); }; } public function showHighscoresOnClick(_arg1:MouseEvent):void{ showHighscores(); } public function fadeOutAwards(_arg1:MouseEvent):void{ awards.menuButton.removeEventListener(MouseEvent.MOUSE_DOWN, fadeOutAwards); fadeInOut(); setTimeout(removeAwards, 500); } public function removeInactiveBodies(){ var _local1:b2Body; var _local2:*; var _local3:b2Body; var _local4:Boolean; var _local5:*; var _local6:Point; var _local7:Point; _local1 = m_world.m_bodyList; _local2 = m_world.m_bodyCount; _local4 = false; _local5 = 0; while (_local5 < (_local2 - 1)) { if (_local4 == false){ _local3 = _local1; _local1 = _local1.m_next; if (_local3.hasOwnProperty("m_userData")){ if (_local3.m_userData != null){ _local6 = new Point(0, _local3.m_userData.y); _local7 = gameCanvas.localToGlobal(_local6); if (_local3.m_userData.id == "levelComplete"){ if ((((_local7.y < 300)) && ((_local7.y > 0)))){ trace(("levelEnd.y: " + _local7.y)); _local4 = true; levelComplete(); }; }; if (_local4 == false){ if (_local7.y < -50){ if (_local3.hasOwnProperty("m_userData")){ if (_local3.m_userData != null){ if (_local3.m_userData.hasOwnProperty("roundShadow")){ gameCanvas.removeChild(_local3.m_userData.roundShadow); }; if (_local3.m_userData.hasOwnProperty("squareShadow")){ gameCanvas.removeChild(_local3.m_userData.squareShadow); }; if (_local3.m_userData.hasOwnProperty("highlight") == true){ gameCanvas.removeChild(_local3.m_userData.highlight); }; gameCanvas.removeChild(_local3.m_userData); _local3.m_userData = null; }; }; m_world.DestroyBody(_local3); }; }; }; }; }; _local5++; }; } public function differenceBetweenBearings(_arg1:Number, _arg2:Number){ var _local3:Number; _local3 = (wrapvalue(((_arg1 + Math.PI) - _arg2)) - Math.PI); return (_local3); } public function moveBubble(_arg1:Event):void{ if (menu.monkeyBubble.x > (600 - (menu.monkeyBubble.width / 2))){ bubbleSpeedX = (bubbleSpeedX * -1); menu.monkeyBubble.x = (600 - (menu.monkeyBubble.width / 2)); }; if (menu.monkeyBubble.x < (0 + (menu.monkeyBubble.width / 2))){ bubbleSpeedX = (bubbleSpeedX * -1); menu.monkeyBubble.x = (0 + (menu.monkeyBubble.width / 2)); }; if (menu.monkeyBubble.y > (600 - (menu.monkeyBubble.width / 2))){ bubbleSpeedY = (bubbleSpeedY * -1); menu.monkeyBubble.y = (600 - (menu.monkeyBubble.width / 2)); }; if (menu.monkeyBubble.y < (0 + (menu.monkeyBubble.width / 2))){ bubbleSpeedY = (bubbleSpeedY * -1); menu.monkeyBubble.y = (0 + (menu.monkeyBubble.width / 2)); }; menu.monkeyBubble.x = (menu.monkeyBubble.x + bubbleSpeedX); menu.monkeyBubble.y = (menu.monkeyBubble.y + bubbleSpeedY); menu.monkeyBubble.monkey.rotation = (menu.monkeyBubble.monkey.rotation + 2); } public function moveGun():void{ if (leftKeyDown == true){ gun.x = (gun.x - gunSpeed); }; if (rightKeyDown == true){ gun.x = (gun.x + gunSpeed); }; if (gun.x < -220){ gun.x = -220; }; if (gun.x > 220){ gun.x = 220; }; gunShadow.x = gun.x; } public function cleanPhysics():void{ var _local1:b2Body; var _local2:*; var _local3:b2Body; var _local4:*; _local1 = m_world.m_bodyList; _local2 = m_world.m_bodyCount; _local4 = 0; while (_local4 < (_local2 - 1)) { _local3 = _local1; _local1 = _local1.m_next; m_world.DestroyBody(_local3); if ((((_local3.hasOwnProperty("m_userData") == true)) && (!((_local3.m_userData == null))))){ _local3.m_userData = null; }; _local4++; }; } public function removeAd(_arg1:MouseEvent):void{ removeChild(adBox); _Continue_.removeEventListener(MouseEvent.MOUSE_DOWN, end_preload); nextFrame(); } public function returnToMenu():void{ removeLevelSelect(); showMenu(); ticker.visible = true; } public function disableScrollLevelButtons():void{ levelSelect.removeEventListener(Event.ENTER_FRAME, slideButtonsLeft); levelSelect.removeEventListener(Event.ENTER_FRAME, slideButtonsRight); levelSelect.removeEventListener(Event.ENTER_FRAME, adjustButtons); levelSelect.arrowLeft.removeEventListener(MouseEvent.MOUSE_DOWN, arrowLeftDown); levelSelect.arrowRight.removeEventListener(MouseEvent.MOUSE_DOWN, arrowRightDown); levelSelect.arrowLeft.removeEventListener(MouseEvent.MOUSE_UP, arrowLeftUp); levelSelect.arrowRight.removeEventListener(MouseEvent.MOUSE_UP, arrowRightUp); levelSelect.arrowLeft.removeEventListener(MouseEvent.MOUSE_OUT, arrowLeftUp); levelSelect.arrowRight.removeEventListener(MouseEvent.MOUSE_OUT, arrowRightUp); } public function updateGUI():void{ gui.bonus.text = String(bonus); gui.score.text = String(score); gui.lives.text = String(lives); } public function selectLevel(_arg1:MouseEvent):void{ currentLevel = parseInt(_arg1.target.name.substring("level".length)); if ((((currentLevel <= alwaysUnlocked)) || ((currentLevel <= highestLevel)))){ levelSelect.levelButtonHolder.removeEventListener(MouseEvent.MOUSE_DOWN, selectLevel); blackScreen = new blackScreen_mc(); blackScreen.alpha = 0; stage.addChild(blackScreen); fadeInTween = new Tween(blackScreen, "alpha", None.easeNone, 0, 1, 0.5, true); fadeInTween.addEventListener(TweenEvent.MOTION_FINISH, fadeOutBlackScreen); }; } public function makePivotV(_arg1:Number, _arg2:Number):void{ var _local3:*; var _local4:*; var _local5:b2Body; var _local6:*; var _local7:*; var _local8:b2Body; var _local9:b2RevoluteJointDef; var _local10:squareShadow_mc; _local3 = new b2BodyDef(); _local4 = new b2BoxDef(); _local4.extents.Set(8, 75); _local4.friction = 1; _local4.density = 1; _local4.restitution = 0.2; _local3.AddShape(_local4); _local3.userData = new pivotV_mc(); _local3.position.Set(_arg1, _arg2); _local3.userData.width = (_local4.extents.x * 2); _local3.userData.height = (_local4.extents.y * 2); _local3.userData.x = _arg1; _local3.userData.y = _arg2; _local3.rotation = (Math.PI / 2); _local3.userData.id = "rotator"; gameCanvas.addChild(_local3.userData); _local5 = m_world.CreateBody(_local3); _local6 = new b2BodyDef(); _local7 = new b2BoxDef(); _local7.extents.Set(1, 1); _local7.friction = 1; _local7.density = 0; _local7.restitution = 0.85; _local6.AddShape(_local7); _local6.position.Set(_arg1, _arg2); _local8 = m_world.CreateBody(_local6); _local9 = new b2RevoluteJointDef(); _local9.body1 = _local5; _local9.body2 = _local8; _local9.anchorPoint = _local5.GetCenterPosition(); _local9.enableMotor = false; m_world.CreateJoint(_local9); _local3.userData.squareShadow = new squareShadow_mc(); _local3.userData.squareShadow.width = (_local4.extents.x * 2); _local3.userData.squareShadow.height = (_local4.extents.y * 2); _local3.userData.squareShadow.alpha = 0.4; gameCanvas.addChildAt(_local3.userData.squareShadow, 0); } public function checkPuckAnnihilation(_arg1:b2Body, _arg2:b2Body):void{ var _local3:b2Body; var _local4:annihilationEffect_mc; var _local5:bonusDisplay_mc; var _local6:Number; if (((_arg1.hasOwnProperty("m_userData")) && (_arg2.hasOwnProperty("m_userData")))){ if (((!((_arg1.m_userData == null))) && (!((_arg2.m_userData == null))))){ if ((((((_arg1.m_userData.id == "puck")) && ((_arg2.m_userData.id == "myBall")))) || ((((_arg2.m_userData.id == "puck")) && ((_arg1.m_userData.id == "myBall")))))){ if (_arg1.m_userData.id == "puck"){ _local3 = _arg1; } else { _local3 = _arg2; }; _local4 = new annihilationEffect_mc(); gameCanvas.addChild(_local4); if (soundOn == true){ chimeSound.play(); }; _local4.x = _local3.m_userData.x; _local4.y = _local3.m_userData.y; _local4.width = (_local4.width * 0.5); _local4.height = (_local4.height * 0.5); _local5 = new bonusDisplay_mc(); gameCanvas.addChild(_local5); _local6 = (Math.round((_local3.m_userData.width / 25)) * 25); bonus = (bonus + _local6); _local5.textField.text = String(_local6); _local5.x = _local4.x; _local5.y = _local4.y; _local3.m_userData.active = false; deleteBody(_local3); }; }; }; } public function createLevel(_arg1:uint, _arg2):void{ var _local3:levelContainer_mc; var _local4:*; var _local5:*; var _local6:DisplayObject; _local3 = new levelContainer_mc(); _local4 = _local3.getChildAt((_arg1 - 1)); _local5 = 0; while (_local5 < _local4.numChildren) { _local6 = _local4.getChildAt(_local5); if ((((_local6 is lineH_template)) || ((_local6 is lineV_template)))){ makeLine(_local6.x, (_local6.y + _arg2), _local6.width, _local6.height, _local6.rotation); }; if ((_local6 is movingLine_template)){ makeMovingLine(_local6.x, (_local6.y + _arg2)); }; if ((_local6 is box_template)){ makeBox(_local6.x, (_local6.y + _arg2)); }; if ((_local6 is myBall_template)){ makeMyBall(_local6.x, (_local6.y + _arg2)); }; if ((_local6 is puckYellow_template)){ makePuck(_local6.x, (_local6.y + _arg2), "yellow", _local6.width); }; if ((_local6 is puckBlue_template)){ makePuck(_local6.x, (_local6.y + _arg2), "blue", _local6.width); }; if ((_local6 is puckRed_template)){ makePuck(_local6.x, (_local6.y + _arg2), "red", _local6.width); }; if ((_local6 is puckGreen_template)){ makePuck(_local6.x, (_local6.y + _arg2), "green", _local6.width); }; if ((_local6 is enemy_template)){ makeEnemy(_local6.x, (_local6.y + _arg2)); }; if ((_local6 is teleportIn_template)){ makeTeleport(_local6.x, (_local6.y + _arg2), "in"); }; if ((_local6 is teleportOut_template)){ makeTeleport(_local6.x, (_local6.y + _arg2), "out"); }; if ((_local6 is rotator_template)){ makeRotator(_local6.x, (_local6.y + _arg2)); }; if ((_local6 is rotatorLongC_template)){ makeRotatorLong(_local6.x, (_local6.y + _arg2), 1); }; if ((_local6 is rotatorLongCC_template)){ makeRotatorLong(_local6.x, (_local6.y + _arg2), -1); }; if ((_local6 is pivotV_template)){ makePivotV(_local6.x, (_local6.y + _arg2)); }; if ((_local6 is wallH_template)){ makeWall(_local6.x, (_local6.y + _arg2), _local6.width, _local6.height, _local6.rotation, "h"); }; if ((_local6 is wallV_template)){ makeWall(_local6.x, (_local6.y + _arg2), _local6.width, _local6.height, _local6.rotation, "v"); }; if ((_local6 is ice_template)){ makeIce(_local6.x, (_local6.y + _arg2), _local6.width, _local6.height, _local6.rotation); }; if ((_local6 is levelComplete_template)){ createLevelComplete(_local6.x, (_local6.y + _arg2)); }; if ((_local6 is travelatorRight_template)){ createTravelator(_local6.x, (_local6.y + _arg2), "right"); }; if ((_local6 is travelatorLeft_template)){ createTravelator(_local6.x, (_local6.y + _arg2), "left"); }; if ((_local6 is travelatorUp_template)){ createTravelator(_local6.x, (_local6.y + _arg2), "up"); }; if ((_local6 is travelatorDown_template)){ createTravelator(_local6.x, (_local6.y + _arg2), "down"); }; if ((_local6 is hintBox_template)){ createHintBox(_local6.x, (_local6.y + _arg2), _local4); }; if ((_local6 is enemyGun_template)){ createEnemyGun(_local6.x, (_local6.y + _arg2)); }; if ((_local6 is bumper_template)){ makeBumper(_local6.x, (_local6.y + _arg2)); }; if ((_local6 is lifeBonus_template)){ makeLifeBonus(_local6.x, (_local6.y + _arg2)); }; if ((_local6 is slowBonus_template)){ makeSlowBonus(_local6.x, (_local6.y + _arg2)); }; if ((_local6 is rapidFire_template)){ makeRapidFire(_local6.x, (_local6.y + _arg2)); }; if ((_local6 is bonusStar_template)){ makeBonusStar(_local6.x, _local6.y); }; _local5++; }; } public function makeEnemyBullet(_arg1:b2Body, _arg2:Number, _arg3:Number):b2Body{ var _local4:*; var _local5:*; var _local6:roundShadow_mc; var _local7:Tween; var _local8:Tween; _local4 = new b2BodyDef(); _local5 = new b2CircleDef(); _local5.radius = 7; _local5.friction = 1; _local5.density = 2; _local5.restitution = 1; _local4.AddShape(_local5); _local4.userData = new enemyBullet_mc(); _local4.position.Set(_arg2, _arg3); _local4.linearDamping = 0.015; _local4.angularDamping = 0.02; _local4.userData.width = (_local5.radius * 2); _local4.userData.height = (_local5.radius * 2); _local4.userData.id = "bullet"; _local4.userData.x = _arg2; _local4.userData.y = _arg3; gameCanvas.addChild(_local4.userData); _local4.userData.roundShadow = new roundShadow_mc(); _local4.userData.roundShadow.width = (_local5.radius * 2.2); _local4.userData.roundShadow.height = (_local5.radius * 2.2); _local4.userData.roundShadow.alpha = 0.4; _local4.userData.roundShadow.x = _arg2; _local4.userData.roundShadow.y = _arg3; gameCanvas.addChildAt(_local4.userData.roundShadow, 1); _arg1 = m_world.CreateBody(_local4); setTimeout(deleteBody, 5000, _arg1); _local7 = new Tween(_arg1.m_userData, "alpha", Strong.easeIn, 1, 0, 5, true); _local8 = new Tween(_arg1.m_userData.roundShadow, "alpha", Strong.easeIn, 0.4, 0, 5, true); tweenArray.push(_local7); tweenArray.push(_local8); return (_arg1); } } }//package galaxochimp_fla
Section 87
//mockBackground_mc_157 (galaxochimp_fla.mockBackground_mc_157) package galaxochimp_fla { import flash.display.*; public dynamic class mockBackground_mc_157 extends MovieClip { public var target:targetYellow_mc; } }//package galaxochimp_fla
Section 88
//monkeyAstro_mc_120 (galaxochimp_fla.monkeyAstro_mc_120) package galaxochimp_fla { import flash.display.*; public dynamic class monkeyAstro_mc_120 extends MovieClip { public function monkeyAstro_mc_120(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package galaxochimp_fla
Section 89
//monkeyBubble_mc_135 (galaxochimp_fla.monkeyBubble_mc_135) package galaxochimp_fla { import flash.display.*; public dynamic class monkeyBubble_mc_135 extends MovieClip { public var monkey:MovieClip; } }//package galaxochimp_fla
Section 90
//myPreloader_mc_13 (galaxochimp_fla.myPreloader_mc_13) package galaxochimp_fla { import flash.display.*; import flash.text.*; public dynamic class myPreloader_mc_13 extends MovieClip { public var loadingBar:MovieClip; public var loadingText:TextField; } }//package galaxochimp_fla
Section 91
//newMonkey_mc_119 (galaxochimp_fla.newMonkey_mc_119) package galaxochimp_fla { import flash.display.*; public dynamic class newMonkey_mc_119 extends MovieClip { public var flame:MovieClip; public var monkeyAnim:MovieClip; } }//package galaxochimp_fla
Section 92
//spinningMonkey_mc_136 (galaxochimp_fla.spinningMonkey_mc_136) package galaxochimp_fla { import flash.display.*; public dynamic class spinningMonkey_mc_136 extends MovieClip { public var monkey:MovieClip; } }//package galaxochimp_fla
Section 93
//submissionScreen_mc_162 (galaxochimp_fla.submissionScreen_mc_162) package galaxochimp_fla { import flash.display.*; import flash.text.*; public dynamic class submissionScreen_mc_162 extends MovieClip { public var message:TextField; public var playerName:TextField; public var _Submit_:MovieClip; public var close:SimpleButton; } }//package galaxochimp_fla
Section 94
//textField_mc_56 (galaxochimp_fla.textField_mc_56) package galaxochimp_fla { import flash.display.*; import flash.text.*; public dynamic class textField_mc_56 extends MovieClip { public var textField:TextField; } }//package galaxochimp_fla
Section 95
//turret_mc_23 (galaxochimp_fla.turret_mc_23) package galaxochimp_fla { import flash.display.*; public dynamic class turret_mc_23 extends MovieClip { public var top:MovieClip; public var scalableArrow:MovieClip; } }//package galaxochimp_fla
Section 96
//annihilationEffect_mc (annihilationEffect_mc) package { import flash.display.*; public dynamic class annihilationEffect_mc extends MovieClip { public function annihilationEffect_mc(){ addFrameScript(34, frame35); } function frame35(){ stop(); this.parent.removeChild(this); } } }//package
Section 97
//appleBubble_mc (appleBubble_mc) package { import flash.display.*; public dynamic class appleBubble_mc extends MovieClip { } }//package
Section 98
//arrow_mc (arrow_mc) package { import flash.display.*; public dynamic class arrow_mc extends MovieClip { public var base:MovieClip; public var turret:MovieClip; } }//package
Section 99
//awards_mc (awards_mc) package { import flash.display.*; import flash.text.*; public dynamic class awards_mc extends MovieClip { public var thumbsUp:MovieClip; public var shield4:MovieClip; public var bestScore:TextField; public var kinetroid:MovieClip; public var cup:MovieClip; public var star:MovieClip; public var gun:MovieClip; public var menuButton:SimpleButton; public var titleButton:MovieClip; public var shield3:MovieClip; } }//package
Section 100
//background_mc (background_mc) package { import flash.display.*; public dynamic class background_mc extends MovieClip { } }//package
Section 101
//ball (ball) package { import flash.media.*; public dynamic class ball extends Sound { } }//package
Section 102
//ball_mc (ball_mc) package { import flash.display.*; public dynamic class ball_mc extends MovieClip { } }//package
Section 103
//bananaBubble_mc (bananaBubble_mc) package { import flash.display.*; public dynamic class bananaBubble_mc extends MovieClip { } }//package
Section 104
//bananas_mc (bananas_mc) package { import flash.display.*; public dynamic class bananas_mc extends MovieClip { } }//package
Section 105
//blackScreen_mc (blackScreen_mc) package { import flash.display.*; public dynamic class blackScreen_mc extends MovieClip { } }//package
Section 106
//bluedanube (bluedanube) package { import flash.media.*; public dynamic class bluedanube extends Sound { } }//package
Section 107
//blueGradient_mc (blueGradient_mc) package { import flash.display.*; public dynamic class blueGradient_mc extends MovieClip { } }//package
Section 108
//bonusDisplay_mc (bonusDisplay_mc) package { import flash.display.*; import flash.text.*; public dynamic class bonusDisplay_mc extends MovieClip { public var textField:TextField; public function bonusDisplay_mc(){ addFrameScript(74, frame75); } function frame75(){ stop(); this.parent.removeChild(this); } } }//package
Section 109
//bonusStar_mc (bonusStar_mc) package { import flash.display.*; public dynamic class bonusStar_mc extends MovieClip { } }//package
Section 110
//bonusStar_template (bonusStar_template) package { import flash.display.*; public dynamic class bonusStar_template extends MovieClip { } }//package
Section 111
//box_mc (box_mc) package { import flash.display.*; public dynamic class box_mc extends MovieClip { } }//package
Section 112
//box_template (box_template) package { import flash.display.*; public dynamic class box_template extends MovieClip { } }//package
Section 113
//bullet_mc (bullet_mc) package { import flash.display.*; public dynamic class bullet_mc extends MovieClip { } }//package
Section 114
//bumper_mc (bumper_mc) package { import flash.display.*; public dynamic class bumper_mc extends MovieClip { public var light:MovieClip; } }//package
Section 115
//bumper_template (bumper_template) package { import flash.display.*; public dynamic class bumper_template extends MovieClip { } }//package
Section 116
//chime (chime) package { import flash.media.*; public dynamic class chime extends Sound { } }//package
Section 117
//confirmQuit_mc (confirmQuit_mc) package { import flash.display.*; public dynamic class confirmQuit_mc extends MovieClip { public var noButton:SimpleButton; public var yesButton:SimpleButton; } }//package
Section 118
//confirmReset_mc (confirmReset_mc) package { import flash.display.*; public dynamic class confirmReset_mc extends MovieClip { public var noButton:SimpleButton; public var yesButton:SimpleButton; } }//package
Section 119
//crosshair (crosshair) package { import flash.display.*; public dynamic class crosshair extends MovieClip { } }//package
Section 120
//crosshairs_mc (crosshairs_mc) package { import flash.display.*; public dynamic class crosshairs_mc extends MovieClip { } }//package
Section 121
//debug_mc (debug_mc) package { import flash.display.*; import flash.text.*; public dynamic class debug_mc extends MovieClip { public var txt:TextField; } }//package
Section 122
//enemy_mc (enemy_mc) package { import flash.display.*; public dynamic class enemy_mc extends MovieClip { } }//package
Section 123
//enemy_template (enemy_template) package { import flash.display.*; public dynamic class enemy_template extends MovieClip { } }//package
Section 124
//enemyBullet_mc (enemyBullet_mc) package { import flash.display.*; public dynamic class enemyBullet_mc extends MovieClip { } }//package
Section 125
//enemyGun_mc (enemyGun_mc) package { import flash.display.*; public dynamic class enemyGun_mc extends MovieClip { } }//package
Section 126
//enemyGun_template (enemyGun_template) package { import flash.display.*; public dynamic class enemyGun_template extends MovieClip { } }//package
Section 127
//explosion (explosion) package { import flash.media.*; public dynamic class explosion extends Sound { } }//package
Section 128
//explosion_mc (explosion_mc) package { import flash.display.*; public dynamic class explosion_mc extends MovieClip { public function explosion_mc(){ addFrameScript(30, frame31); } function frame31(){ stop(); this.parent.removeChild(this); } } }//package
Section 129
//fire (fire) package { import flash.media.*; public dynamic class fire extends Sound { } }//package
Section 130
//gameCanvas_mc (gameCanvas_mc) package { import flash.display.*; public dynamic class gameCanvas_mc extends MovieClip { } }//package
Section 131
//gameover (gameover) package { import flash.media.*; public dynamic class gameover extends Sound { } }//package
Section 132
//gameover2 (gameover2) package { import flash.media.*; public dynamic class gameover2 extends Sound { } }//package
Section 133
//gameOverScreen_mc (gameOverScreen_mc) package { import flash.display.*; import flash.text.*; public dynamic class gameOverScreen_mc extends MovieClip { public var submissionScreen:MovieClip; public var message2:TextField; public var _Submit_Score_:MovieClip; public var message1:TextField; public var _More_Games_:MovieClip; public var cup1:MovieClip; public var cup2:MovieClip; public var _Menu_:MovieClip; public var arcadeTown:SimpleButton; public var _Try_Again_:MovieClip; } }//package
Section 134
//glints_mc (glints_mc) package { import flash.display.*; public dynamic class glints_mc extends MovieClip { } }//package
Section 135
//gloss_mc (gloss_mc) package { import flash.display.*; public dynamic class gloss_mc extends MovieClip { } }//package
Section 136
//ground_mc (ground_mc) package { import flash.display.*; public dynamic class ground_mc extends MovieClip { } }//package
Section 137
//gui_mc (gui_mc) package { import flash.display.*; import flash.text.*; public dynamic class gui_mc extends MovieClip { public var lives:TextField; public var bonus:TextField; public var help:MovieClip; public var message:MovieClip; public var quitButton:SimpleButton; public var resetButton:SimpleButton; public var level:TextField; public var _Reload_:MovieClip; public var score:TextField; public var lineB:MovieClip; public var lineT:MovieClip; } }//package
Section 138
//gun_mc (gun_mc) package { import flash.display.*; public dynamic class gun_mc extends MovieClip { public var turret:MovieClip; } }//package
Section 139
//gunShadow_mc (gunShadow_mc) package { import flash.display.*; public dynamic class gunShadow_mc extends MovieClip { } }//package
Section 140
//highlight_mc (highlight_mc) package { import flash.display.*; public dynamic class highlight_mc extends MovieClip { } }//package
Section 141
//highscores_mc (highscores_mc) package { import flash.display.*; import flash.text.*; public dynamic class highscores_mc extends MovieClip { public var nameDisplay:TextField; public var scoreDisplay:TextField; public var connectingDisplay:TextField; public var rankDisplay:TextField; } }//package
Section 142
//hintBox_mc (hintBox_mc) package { import flash.display.*; import flash.text.*; public dynamic class hintBox_mc extends MovieClip { public var message:TextField; } }//package
Section 143
//hintBox_template (hintBox_template) package { import flash.display.*; public dynamic class hintBox_template extends MovieClip { } }//package
Section 144
//ice_mc (ice_mc) package { import flash.display.*; public dynamic class ice_mc extends MovieClip { } }//package
Section 145
//ice_template (ice_template) package { import flash.display.*; public dynamic class ice_template extends MovieClip { } }//package
Section 146
//instructions_mc (instructions_mc) package { import flash.events.*; import flash.display.*; import flash.net.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.geom.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.ui.*; import flash.xml.*; public dynamic class instructions_mc extends MovieClip { public var mockBackground:MovieClip; public var menuButton:SimpleButton; public var target:targetYellow_mc; public var guiInstance:gui_mc; public function instructions_mc(){ addFrameScript(0, frame1, 210, frame211, 270, frame271, 410, frame411, 560, frame561); } function frame271(){ target.fill.visible = false; } function frame561(){ stop(); } function frame211(){ mockBackground.target.fill.visible = false; } function frame1(){ target.fill.visible = false; } function frame411(){ target.fill.visible = true; } } }//package
Section 147
//launch (launch) package { import flash.media.*; public dynamic class launch extends Sound { } }//package
Section 148
//letter_mc (letter_mc) package { import flash.display.*; import flash.text.*; public dynamic class letter_mc extends MovieClip { public var letter:TextField; } }//package
Section 149
//levelComplete_mc (levelComplete_mc) package { import flash.display.*; public dynamic class levelComplete_mc extends MovieClip { } }//package
Section 150
//levelComplete_template (levelComplete_template) package { import flash.display.*; public dynamic class levelComplete_template extends MovieClip { } }//package
Section 151
//levelContainer_mc (levelContainer_mc) package { import flash.display.*; public dynamic class levelContainer_mc extends MovieClip { } }//package
Section 152
//levelInfo_mc (levelInfo_mc) package { import flash.display.*; import flash.text.*; public dynamic class levelInfo_mc extends MovieClip { public var _More_Games_:MovieClip; public var m3:TextField; public var m1:TextField; public var m4:TextField; public var m2:TextField; public var arcadeTown:SimpleButton; public var _Continue_:MovieClip; } }//package
Section 153
//levelSelect_mc (levelSelect_mc) package { import flash.display.*; public dynamic class levelSelect_mc extends MovieClip { public var levelButtonHolder:MovieClip; public var _Back_:MovieClip; } }//package
Section 154
//levelThumb (levelThumb) package { import flash.display.*; public dynamic class levelThumb extends SimpleButton { } }//package
Section 155
//lifeBonus_mc (lifeBonus_mc) package { import flash.display.*; public dynamic class lifeBonus_mc extends MovieClip { public var light:MovieClip; } }//package
Section 156
//lifeBonus_template (lifeBonus_template) package { import flash.display.*; public dynamic class lifeBonus_template extends MovieClip { public var light:MovieClip; } }//package
Section 157
//line_mc (line_mc) package { import flash.display.*; public dynamic class line_mc extends MovieClip { } }//package
Section 158
//lineH_template (lineH_template) package { import flash.display.*; public dynamic class lineH_template extends MovieClip { } }//package
Section 159
//lineV_template (lineV_template) package { import flash.display.*; public dynamic class lineV_template extends MovieClip { } }//package
Section 160
//menu_mc (menu_mc) package { import flash.display.*; import flash.text.*; public dynamic class menu_mc extends MovieClip { public var _More_Games_:MovieClip; public var monkeyBubble:MovieClip; public var _Download_Game_:MovieClip; public var _Credits_:MovieClip; public var credits:MovieClip; public var _Hiscores_:MovieClip; public var _Play_:MovieClip; public var arcadeTown:SimpleButton; public var _Add_to_Website_:MovieClip; public var warningMessage:TextField; public function menu_mc(){ addFrameScript(0, frame1); } function frame1(){ } } }//package
Section 161
//metal (metal) package { import flash.media.*; public dynamic class metal extends Sound { } }//package
Section 162
//MochiBot (MochiBot) package { import flash.display.*; import flash.net.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ var _local3:MochiBot; var _local4:String; var _local5:URLVariables; var _local6:String; var _local7:URLRequest; var _local8:Loader; if (Security.sandboxType == "localWithFile"){ return (null); }; _local3 = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); _local4 = "http://core.mochibot.com/my/core.swf"; _local5 = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; _local6 = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; _local7 = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; _local8 = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 163
//movingLine_mc (movingLine_mc) package { import flash.display.*; public dynamic class movingLine_mc extends MovieClip { } }//package
Section 164
//movingLine_template (movingLine_template) package { import flash.display.*; public dynamic class movingLine_template extends MovieClip { } }//package
Section 165
//musicToggle_mc (musicToggle_mc) package { import flash.display.*; public dynamic class musicToggle_mc extends MovieClip { public function musicToggle_mc(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 166
//myBall_mc (myBall_mc) package { import flash.display.*; public dynamic class myBall_mc extends MovieClip { public var monkey:MovieClip; } }//package
Section 167
//myBall_template (myBall_template) package { import flash.display.*; public dynamic class myBall_template extends MovieClip { public var base:MovieClip; public var turret:MovieClip; } }//package
Section 168
//notes (notes) package { import flash.media.*; public dynamic class notes extends Sound { } }//package
Section 169
//padlock_mc (padlock_mc) package { import flash.display.*; public dynamic class padlock_mc extends MovieClip { } }//package
Section 170
//pivotV_mc (pivotV_mc) package { import flash.display.*; public dynamic class pivotV_mc extends MovieClip { } }//package
Section 171
//pivotV_template (pivotV_template) package { import flash.display.*; public dynamic class pivotV_template extends MovieClip { } }//package
Section 172
//preloader_mc (preloader_mc) package { import flash.display.*; import flash.text.*; public dynamic class preloader_mc extends MovieClip { public var loadingBar:MovieClip; public var loadingText:TextField; } }//package
Section 173
//puck_mc (puck_mc) package { import flash.display.*; public dynamic class puck_mc extends MovieClip { } }//package
Section 174
//puckBlue_mc (puckBlue_mc) package { import flash.display.*; public dynamic class puckBlue_mc extends MovieClip { public var hitzone:MovieClip; } }//package
Section 175
//puckBlue_template (puckBlue_template) package { import flash.display.*; public dynamic class puckBlue_template extends MovieClip { } }//package
Section 176
//puckGreen_mc (puckGreen_mc) package { import flash.display.*; public dynamic class puckGreen_mc extends MovieClip { public var hitzone:MovieClip; } }//package
Section 177
//puckGreen_template (puckGreen_template) package { import flash.display.*; public dynamic class puckGreen_template extends MovieClip { } }//package
Section 178
//puckRed_mc (puckRed_mc) package { import flash.display.*; public dynamic class puckRed_mc extends MovieClip { } }//package
Section 179
//puckRed_template (puckRed_template) package { import flash.display.*; public dynamic class puckRed_template extends MovieClip { } }//package
Section 180
//puckYellow_mc (puckYellow_mc) package { import flash.display.*; public dynamic class puckYellow_mc extends MovieClip { } }//package
Section 181
//puckYellow_template (puckYellow_template) package { import flash.display.*; public dynamic class puckYellow_template extends MovieClip { } }//package
Section 182
//rapidFire_mc (rapidFire_mc) package { import flash.display.*; public dynamic class rapidFire_mc extends MovieClip { public var light:MovieClip; } }//package
Section 183
//rapidFire_template (rapidFire_template) package { import flash.display.*; public dynamic class rapidFire_template extends MovieClip { public var light:MovieClip; } }//package
Section 184
//rotator_mc (rotator_mc) package { import flash.display.*; public dynamic class rotator_mc extends MovieClip { } }//package
Section 185
//rotator_template (rotator_template) package { import flash.display.*; public dynamic class rotator_template extends MovieClip { } }//package
Section 186
//rotatorLong_mc (rotatorLong_mc) package { import flash.display.*; public dynamic class rotatorLong_mc extends MovieClip { } }//package
Section 187
//rotatorLongC_template (rotatorLongC_template) package { import flash.display.*; public dynamic class rotatorLongC_template extends MovieClip { } }//package
Section 188
//rotatorLongCC_template (rotatorLongCC_template) package { import flash.display.*; public dynamic class rotatorLongCC_template extends MovieClip { } }//package
Section 189
//roundShadow_mc (roundShadow_mc) package { import flash.display.*; public dynamic class roundShadow_mc extends MovieClip { } }//package
Section 190
//shimmer (shimmer) package { import flash.media.*; public dynamic class shimmer extends Sound { } }//package
Section 191
//slowBonus_mc (slowBonus_mc) package { import flash.display.*; public dynamic class slowBonus_mc extends MovieClip { public var light:MovieClip; } }//package
Section 192
//slowBonus_template (slowBonus_template) package { import flash.display.*; public dynamic class slowBonus_template extends MovieClip { } }//package
Section 193
//soundToggle_mc (soundToggle_mc) package { import flash.display.*; public dynamic class soundToggle_mc extends MovieClip { public function soundToggle_mc(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 194
//squareShadow_mc (squareShadow_mc) package { import flash.display.*; public dynamic class squareShadow_mc extends MovieClip { } }//package
Section 195
//target (target) package { import flash.media.*; public dynamic class target extends Sound { } }//package
Section 196
//targetBlue_mc (targetBlue_mc) package { import flash.display.*; public dynamic class targetBlue_mc extends MovieClip { public var fill:MovieClip; } }//package
Section 197
//targetGreen_mc (targetGreen_mc) package { import flash.display.*; public dynamic class targetGreen_mc extends MovieClip { public var fill:MovieClip; } }//package
Section 198
//targetRed_mc (targetRed_mc) package { import flash.display.*; public dynamic class targetRed_mc extends MovieClip { public var fill:MovieClip; } }//package
Section 199
//targetYellow_mc (targetYellow_mc) package { import flash.display.*; public dynamic class targetYellow_mc extends MovieClip { public var fill:MovieClip; } }//package
Section 200
//teleportIn_mc (teleportIn_mc) package { import flash.display.*; public dynamic class teleportIn_mc extends MovieClip { } }//package
Section 201
//teleportIn_template (teleportIn_template) package { import flash.display.*; public dynamic class teleportIn_template extends MovieClip { } }//package
Section 202
//teleportOut_mc (teleportOut_mc) package { import flash.display.*; public dynamic class teleportOut_mc extends MovieClip { } }//package
Section 203
//teleportOut_template (teleportOut_template) package { import flash.display.*; public dynamic class teleportOut_template extends MovieClip { } }//package
Section 204
//ticker_mc (ticker_mc) package { import flash.display.*; public dynamic class ticker_mc extends MovieClip { public var mc:MovieClip; } }//package
Section 205
//travelatorDown_mc (travelatorDown_mc) package { import flash.display.*; public dynamic class travelatorDown_mc extends MovieClip { public var hitZone1:MovieClip; public var hitZone2:MovieClip; public var hitZone4:MovieClip; public var hitZone5:MovieClip; public var hitZone3:MovieClip; public var hitZone6:MovieClip; } }//package
Section 206
//travelatorDown_template (travelatorDown_template) package { import flash.display.*; public dynamic class travelatorDown_template extends MovieClip { } }//package
Section 207
//travelatorLeft_mc (travelatorLeft_mc) package { import flash.display.*; public dynamic class travelatorLeft_mc extends MovieClip { public var hitZone1:MovieClip; public var hitZone2:MovieClip; public var hitZone4:MovieClip; public var hitZone5:MovieClip; public var hitZone3:MovieClip; public var hitZone6:MovieClip; } }//package
Section 208
//travelatorLeft_template (travelatorLeft_template) package { import flash.display.*; public dynamic class travelatorLeft_template extends MovieClip { } }//package
Section 209
//travelatorRight_mc (travelatorRight_mc) package { import flash.display.*; public dynamic class travelatorRight_mc extends MovieClip { public var hitZone1:MovieClip; public var hitZone2:MovieClip; public var hitZone4:MovieClip; public var hitZone5:MovieClip; public var hitZone3:MovieClip; public var hitZone6:MovieClip; } }//package
Section 210
//travelatorRight_template (travelatorRight_template) package { import flash.display.*; public dynamic class travelatorRight_template extends MovieClip { } }//package
Section 211
//travelatorUp_mc (travelatorUp_mc) package { import flash.display.*; public dynamic class travelatorUp_mc extends MovieClip { public var hitZone1:MovieClip; public var hitZone2:MovieClip; public var hitZone4:MovieClip; public var hitZone5:MovieClip; public var hitZone3:MovieClip; public var hitZone6:MovieClip; } }//package
Section 212
//travelatorUp_template (travelatorUp_template) package { import flash.display.*; public dynamic class travelatorUp_template extends MovieClip { } }//package
Section 213
//wall (wall) package { import flash.media.*; public dynamic class wall extends Sound { } }//package
Section 214
//wallH_mc (wallH_mc) package { import flash.display.*; public dynamic class wallH_mc extends MovieClip { } }//package
Section 215
//wallH_template (wallH_template) package { import flash.display.*; public dynamic class wallH_template extends MovieClip { } }//package
Section 216
//wallV_mc (wallV_mc) package { import flash.display.*; public dynamic class wallV_mc extends MovieClip { } }//package
Section 217
//wallV_template (wallV_template) package { import flash.display.*; public dynamic class wallV_template extends MovieClip { } }//package
Section 218
//win (win) package { import flash.media.*; public dynamic class win extends Sound { } }//package

Library Items

Symbol 1 GraphicUsed by:4
Symbol 2 FontUsed by:3 184 297
Symbol 3 EditableTextUses:2Used by:4
Symbol 4 MovieClip {letter_mc}Uses:1 3
Symbol 5 GraphicUsed by:6
Symbol 6 MovieClip {crosshair}Uses:5
Symbol 7 GraphicUsed by:8
Symbol 8 MovieClip {ball_mc}Uses:7
Symbol 9 GraphicUsed by:10
Symbol 10 MovieClip {puck_mc}Uses:9
Symbol 11 BitmapUsed by:12
Symbol 12 GraphicUses:11Used by:16
Symbol 13 BitmapUsed by:14
Symbol 14 GraphicUses:13Used by:15
Symbol 15 MovieClipUses:14Used by:16
Symbol 16 MovieClip {background_mc}Uses:12 15Used by:80 413 473 584
Symbol 17 FontUsed by:18 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 110 111 113 114 116 127 239 270 309 314 397 425 426 430 431 432 433 434 435 447 474
Symbol 18 TextUses:17Used by:80
Symbol 19 GraphicUsed by:22
Symbol 20 GraphicUsed by:21 29
Symbol 21 MovieClipUses:20Used by:22 27
Symbol 22 MovieClipUses:19 21Used by:23
Symbol 23 MovieClipUses:22Used by:29 80 311 413 429 449 473 489
Symbol 24 GraphicUsed by:27 29
Symbol 25 GraphicUsed by:26 29
Symbol 26 MovieClipUses:25Used by:27
Symbol 27 MovieClipUses:24 26 21Used by:28
Symbol 28 MovieClipUses:27Used by:29
Symbol 29 ButtonUses:23 28 24 25 20Used by:32
Symbol 30 FontUsed by:31 267 406 427 469 470 471 472 477 478 480 481 482 486 487
Symbol 31 EditableTextUses:30Used by:32
Symbol 32 MovieClip {galaxochimp_fla.CB_button_mc_5}Uses:29 31Used by:80 407 413 448 449 473 488 489  Timeline
Symbol 33 BitmapUsed by:34
Symbol 34 GraphicUses:33Used by:55 58
Symbol 35 BitmapUsed by:36
Symbol 36 GraphicUses:35Used by:55
Symbol 37 BitmapUsed by:38
Symbol 38 GraphicUses:37Used by:55
Symbol 39 BitmapUsed by:40
Symbol 40 GraphicUses:39Used by:55
Symbol 41 BitmapUsed by:42
Symbol 42 GraphicUses:41Used by:55
Symbol 43 BitmapUsed by:44
Symbol 44 GraphicUses:43Used by:55
Symbol 45 BitmapUsed by:46
Symbol 46 GraphicUses:45Used by:55
Symbol 47 BitmapUsed by:48
Symbol 48 GraphicUses:47Used by:55
Symbol 49 BitmapUsed by:50
Symbol 50 GraphicUses:49Used by:55
Symbol 51 BitmapUsed by:52
Symbol 52 GraphicUses:51Used by:55
Symbol 53 BitmapUsed by:54
Symbol 54 GraphicUses:53Used by:55
Symbol 55 MovieClipUses:34 36 38 40 42 44 46 48 50 52 54Used by:56 395
Symbol 56 MovieClip {bonusStar_mc}Uses:55Used by:57 584
Symbol 57 MovieClipUses:56Used by:58
Symbol 58 Button {levelThumb}Uses:57 34Used by:79
Symbol 59 TextUses:17Used by:79
Symbol 60 TextUses:17Used by:79
Symbol 61 TextUses:17Used by:79
Symbol 62 TextUses:17Used by:79
Symbol 63 TextUses:17Used by:79
Symbol 64 TextUses:17Used by:79
Symbol 65 TextUses:17Used by:79
Symbol 66 TextUses:17Used by:79
Symbol 67 TextUses:17Used by:79
Symbol 68 TextUses:17Used by:79
Symbol 69 TextUses:17Used by:79
Symbol 70 TextUses:17Used by:79
Symbol 71 TextUses:17Used by:79
Symbol 72 TextUses:17Used by:79
Symbol 73 TextUses:17Used by:79
Symbol 74 TextUses:17Used by:79
Symbol 75 TextUses:17Used by:79
Symbol 76 TextUses:17Used by:79
Symbol 77 TextUses:17Used by:79
Symbol 78 TextUses:17Used by:79
Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251}Uses:58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78Used by:80
Symbol 80 MovieClip {levelSelect_mc}Uses:16 18 32 79 23
Symbol 81 FontUsed by:82
Symbol 82 EditableTextUses:81Used by:88
Symbol 83 FontUsed by:84 450 451 453 454 457 459
Symbol 84 TextUses:83Used by:88
Symbol 85 GraphicUsed by:86
Symbol 86 MovieClipUses:85Used by:88 129
Symbol 87 GraphicUsed by:88
Symbol 88 MovieClip {preloader_mc}Uses:82 84 86 87
Symbol 89 GraphicUsed by:92
Symbol 90 FontUsed by:91 153 154 422 423 464 465 466 467
Symbol 91 EditableTextUses:90Used by:92
Symbol 92 MovieClip {debug_mc}Uses:89 91
Symbol 93 GraphicUsed by:96
Symbol 94 GraphicUsed by:95
Symbol 95 MovieClipUses:94Used by:96
Symbol 96 MovieClipUses:93 95Used by:99
Symbol 97 GraphicUsed by:98
Symbol 98 MovieClipUses:97Used by:99 107 232 236 380
Symbol 99 MovieClip {puckYellow_mc}Uses:96 98Used by:100 452 460 584
Symbol 100 MovieClip {puckYellow_template}Uses:99Used by:514 528 529 533 539 541 543 556 557 584
Symbol 101 GraphicUsed by:102
Symbol 102 MovieClipUses:101Used by:108 233
Symbol 103 GraphicUsed by:106
Symbol 104 GraphicUsed by:105
Symbol 105 MovieClipUses:104Used by:106
Symbol 106 MovieClipUses:103 105Used by:107
Symbol 107 MovieClip {appleBubble_mc}Uses:106 98Used by:108
Symbol 108 MovieClip {puckBlue_mc}Uses:102 107Used by:506 584
Symbol 109 GraphicUsed by:117 475
Symbol 110 TextUses:17Used by:112
Symbol 111 TextUses:17Used by:112
Symbol 112 ButtonUses:110 111Used by:117 475
Symbol 113 TextUses:17Used by:115
Symbol 114 TextUses:17Used by:115
Symbol 115 ButtonUses:113 114Used by:117 475
Symbol 116 TextUses:17Used by:117
Symbol 117 MovieClip {confirmReset_mc}Uses:109 112 115 116Used by:584
Symbol 118 GraphicUsed by:119 126
Symbol 119 MovieClip {blackScreen_mc}Uses:118Used by:584  Timeline
Symbol 120 GraphicUsed by:124 125
Symbol 121 GraphicUsed by:124 125 149
Symbol 122 FontUsed by:123
Symbol 123 TextUses:122Used by:124 125
Symbol 124 MovieClipUses:120 121 123Used by:125
Symbol 125 ButtonUses:124 120 121 123Used by:413 473 489  Timeline
Symbol 126 MovieClipUses:118Used by:Timeline
Symbol 127 EditableTextUses:17Used by:129
Symbol 128 GraphicUsed by:129
Symbol 129 MovieClip {galaxochimp_fla.myPreloader_mc_13}Uses:86 127 128Used by:Timeline
Symbol 130 GraphicUsed by:131
Symbol 131 MovieClip {blueGradient_mc}Uses:130Used by:373 584  Timeline
Symbol 132 GraphicUsed by:149
Symbol 133 GraphicUsed by:149
Symbol 134 GraphicUsed by:149
Symbol 135 GraphicUsed by:149
Symbol 136 GraphicUsed by:149
Symbol 137 GraphicUsed by:149
Symbol 138 GraphicUsed by:149
Symbol 139 GraphicUsed by:149
Symbol 140 GraphicUsed by:149
Symbol 141 GraphicUsed by:149
Symbol 142 GraphicUsed by:149
Symbol 143 GraphicUsed by:149
Symbol 144 GraphicUsed by:149
Symbol 145 ShapeTweeningUsed by:149
Symbol 146 GraphicUsed by:149
Symbol 147 GraphicUsed by:149
Symbol 148 GraphicUsed by:149
Symbol 149 MovieClip {galaxochimp_fla.arcadetown_splash_16}Uses:132 121 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148Used by:Timeline
Symbol 150 GraphicUsed by:151
Symbol 151 ButtonUses:150Used by:Timeline
Symbol 152 GraphicUsed by:584
Symbol 153 TextUses:90Used by:584
Symbol 154 TextUses:90Used by:584
Symbol 155 BitmapUsed by:156
Symbol 156 GraphicUses:155Used by:157
Symbol 157 MovieClip {padlock_mc}Uses:156Used by:584
Symbol 158 MovieClip {gameCanvas_mc}Used by:452 460 584  Timeline
Symbol 159 GraphicUsed by:168
Symbol 160 BitmapUsed by:161 286 307
Symbol 161 GraphicUses:160Used by:162
Symbol 162 MovieClip {highlight_mc}Uses:161Used by:168 298 300 317 319 323 328 329 584
Symbol 163 GraphicUsed by:164
Symbol 164 MovieClipUses:163Used by:167
Symbol 165 GraphicUsed by:166
Symbol 166 MovieClipUses:165Used by:167
Symbol 167 MovieClip {galaxochimp_fla.turret_mc_23}Uses:164 166Used by:168 383 394
Symbol 168 MovieClip {gun_mc}Uses:159 162 167Used by:460 584
Symbol 169 GraphicUsed by:170
Symbol 170 MovieClip {box_mc}Uses:169Used by:584
Symbol 171 GraphicUsed by:172
Symbol 172 MovieClip {box_template}Uses:171Used by:501 507 584
Symbol 173 GraphicUsed by:174
Symbol 174 MovieClip {crosshairs_mc}Uses:173Used by:460 584
Symbol 175 GraphicUsed by:176
Symbol 176 MovieClipUses:175Used by:178 183 302 389
Symbol 177 GraphicUsed by:178 302
Symbol 178 MovieClip {pivotV_mc}Uses:176 177Used by:179 584
Symbol 179 MovieClip {pivotV_template}Uses:178Used by:507 532 553 558 584
Symbol 180 GraphicUsed by:181 182
Symbol 181 MovieClip {wallH_template}Uses:180Used by:491 494 495 496 498 499 501 502 503 505 507 508 509 510 513 514 515 516 517 519 521 522 523 524 525 526 529 532 533 534 535 536 538 541 542 543 544 545 547 548 549 553 554 555 556 557 558 560 561 584
Symbol 182 MovieClip {wallV_template}Uses:180Used by:496 499 501 507 508 513 514 519 522 523 524 533 542 556 557 584
Symbol 183 MovieClip {wallH_mc}Uses:176Used by:584
Symbol 184 EditableTextUses:2Used by:199
Symbol 185 Sound {launch}Used by:199
Symbol 186 Sound {chime}Used by:199
Symbol 187 Sound {gameover2}Used by:199
Symbol 188 Sound {shimmer}Used by:199
Symbol 189 Sound {notes}Used by:199
Symbol 190 Sound {win}Used by:199
Symbol 191 Sound {wall}Used by:199
Symbol 192 Sound {target}Used by:199
Symbol 193 Sound {metal}Used by:199
Symbol 194 Sound {fire}Used by:199
Symbol 195 Sound {explosion}Used by:199
Symbol 196 Sound {ball}Used by:199
Symbol 197 Sound {gameover}Used by:199
Symbol 198 Sound {bluedanube}Used by:199
Symbol 199 MovieClipUses:184 185 186 187 188 189 190 191 192 193 194 195 196 197 198Used by:584
Symbol 200 BitmapUsed by:201
Symbol 201 GraphicUses:200Used by:208
Symbol 202 BitmapUsed by:203
Symbol 203 GraphicUses:202Used by:208
Symbol 204 BitmapUsed by:205
Symbol 205 GraphicUses:204Used by:208
Symbol 206 BitmapUsed by:207
Symbol 207 GraphicUses:206Used by:208
Symbol 208 MovieClip {soundToggle_mc}Uses:201 203 205 207Used by:584
Symbol 209 BitmapUsed by:210
Symbol 210 GraphicUses:209Used by:217
Symbol 211 BitmapUsed by:212
Symbol 212 GraphicUses:211Used by:217
Symbol 213 BitmapUsed by:214
Symbol 214 GraphicUses:213Used by:217
Symbol 215 BitmapUsed by:216
Symbol 216 GraphicUses:215Used by:217
Symbol 217 MovieClip {musicToggle_mc}Uses:210 212 214 216Used by:584
Symbol 218 GraphicUsed by:219
Symbol 219 MovieClipUses:218Used by:220 221 222 330 388
Symbol 220 MovieClip {lineH_template}Uses:219Used by:498 501 502 510 526 528 531 535 536 541 550 584
Symbol 221 MovieClip {line_mc}Uses:219Used by:584
Symbol 222 MovieClip {lineV_template}Uses:219Used by:498 502 508 509 584
Symbol 223 GraphicUsed by:224
Symbol 224 MovieClipUses:223Used by:228 229 417 574
Symbol 225 GraphicUsed by:228 229 417 574
Symbol 226 GraphicUsed by:227
Symbol 227 MovieClipUses:226Used by:228 229 417 574
Symbol 228 MovieClip {targetGreen_mc}Uses:224 225 227Used by:584
Symbol 229 MovieClip {targetRed_mc}Uses:224 225 227Used by:584
Symbol 230 GraphicUsed by:231
Symbol 231 MovieClip {bananas_mc}Uses:230Used by:232
Symbol 232 MovieClip {bananaBubble_mc}Uses:231 98Used by:233
Symbol 233 MovieClip {puckGreen_mc}Uses:102 232Used by:237 584
Symbol 234 GraphicUsed by:235
Symbol 235 MovieClipUses:234Used by:236
Symbol 236 MovieClip {puckRed_mc}Uses:235 98Used by:238 584
Symbol 237 MovieClip {puckGreen_template}Uses:233Used by:499 503 516 522 525 526 530 531 536 540 543 550 556 557 584
Symbol 238 MovieClip {puckRed_template}Uses:236Used by:514 515 517 522 524 528 530 531 537 538 540 548 550 558 584
Symbol 239 EditableTextUses:17Used by:240
Symbol 240 MovieClip {galaxochimp_fla.textField_mc_56}Uses:239Used by:241
Symbol 241 MovieClip {ticker_mc}Uses:240Used by:584
Symbol 242 GraphicUsed by:243
Symbol 243 MovieClip {travelatorRight_template}Uses:242Used by:499 514 524 526 584
Symbol 244 GraphicUsed by:245
Symbol 245 MovieClipUses:244Used by:250 257 263 266
Symbol 246 GraphicUsed by:250 257
Symbol 247 GraphicUsed by:250 257 263 266
Symbol 248 GraphicUsed by:250 257
Symbol 249 GraphicUsed by:250 257
Symbol 250 MovieClip {travelatorRight_mc}Uses:245 246 247 248 249Used by:584
Symbol 251 GraphicUsed by:252
Symbol 252 MovieClip {travelatorLeft_template}Uses:251Used by:524 526 584
Symbol 253 GraphicUsed by:254
Symbol 254 MovieClip {travelatorUp_template}Uses:253Used by:499 584
Symbol 255 GraphicUsed by:256
Symbol 256 MovieClip {travelatorDown_template}Uses:255Used by:584
Symbol 257 MovieClip {travelatorLeft_mc}Uses:245 246 247 248 249Used by:584
Symbol 258 GraphicUsed by:263 266
Symbol 259 GraphicUsed by:263 266
Symbol 260 GraphicUsed by:263 266
Symbol 261 GraphicUsed by:263
Symbol 262 GraphicUsed by:263
Symbol 263 MovieClip {travelatorUp_mc}Uses:245 258 247 259 260 261 262Used by:584
Symbol 264 GraphicUsed by:266
Symbol 265 GraphicUsed by:266
Symbol 266 MovieClip {travelatorDown_mc}Uses:245 258 247 259 260 264 265Used by:584
Symbol 267 EditableTextUses:30Used by:268
Symbol 268 MovieClip {hintBox_mc}Uses:267Used by:269 584
Symbol 269 MovieClip {hintBox_template}Uses:268Used by:494 498 505 519 553 584
Symbol 270 EditableTextUses:17Used by:271
Symbol 271 MovieClip {bonusDisplay_mc}Uses:270Used by:584
Symbol 272 BitmapUsed by:273
Symbol 273 GraphicUses:272Used by:274
Symbol 274 MovieClip {gloss_mc}Uses:273Used by:584
Symbol 275 GraphicUsed by:276
Symbol 276 MovieClip {teleportIn_mc}Uses:275Used by:277 584
Symbol 277 MovieClip {teleportIn_template}Uses:276Used by:505 514 533 541 556 584
Symbol 278 GraphicUsed by:279
Symbol 279 MovieClip {teleportOut_mc}Uses:278Used by:280 584
Symbol 280 MovieClip {teleportOut_template}Uses:279Used by:505 514 533 541 556 584
Symbol 281 GraphicUsed by:282
Symbol 282 MovieClipUses:281Used by:283
Symbol 283 MovieClip {annihilationEffect_mc}Uses:282Used by:584
Symbol 284 GraphicUsed by:285
Symbol 285 MovieClip {enemyGun_mc}Uses:284Used by:301 584
Symbol 286 GraphicUses:160Used by:287
Symbol 287 MovieClip {enemyBullet_mc}Uses:286Used by:584
Symbol 288 GraphicUsed by:289
Symbol 289 MovieClipUses:288Used by:290
Symbol 290 MovieClip {roundShadow_mc}Uses:289Used by:298 300 317 319 323 328 329 584
Symbol 291 GraphicUsed by:298
Symbol 292 GraphicUsed by:294
Symbol 293 GraphicUsed by:294
Symbol 294 MovieClip {galaxochimp_fla.bumperLight_84}Uses:292 293Used by:298 317 319 323 328 329
Symbol 295 GraphicUsed by:296
Symbol 296 MovieClipUses:295Used by:298 300
Symbol 297 TextUses:2Used by:298
Symbol 298 MovieClip {bumper_mc}Uses:290 291 294 296 162 297Used by:584
Symbol 299 GraphicUsed by:300
Symbol 300 MovieClip {bumper_template}Uses:290 299 296 162Used by:499 503 509 510 516 519 522 525 528 530 531 536 539 549 584
Symbol 301 MovieClip {enemyGun_template}Uses:285Used by:519 527 531 536 544 558 584
Symbol 302 MovieClip {rotatorLong_mc}Uses:177 176Used by:584
Symbol 303 GraphicUsed by:304
Symbol 304 MovieClip {rotatorLongC_template}Uses:303Used by:514 525 528 536 584
Symbol 305 GraphicUsed by:306
Symbol 306 MovieClip {rotatorLongCC_template}Uses:305Used by:525 584
Symbol 307 GraphicUses:160Used by:308
Symbol 308 MovieClip {bullet_mc}Uses:307Used by:584
Symbol 309 TextUses:17Used by:310
Symbol 310 MovieClipUses:309Used by:311
Symbol 311 MovieClip {levelComplete_mc}Uses:23 310Used by:312 584
Symbol 312 MovieClip {levelComplete_template}Uses:311Used by:529 539 549 560 584
Symbol 313 GraphicUsed by:317
Symbol 314 TextUses:17Used by:315
Symbol 315 MovieClipUses:314Used by:317 319
Symbol 316 GraphicUsed by:317 319 323 329
Symbol 317 MovieClip {lifeBonus_template}Uses:290 313 294 315 162 316Used by:525 538 545 557 584
Symbol 318 GraphicUsed by:319
Symbol 319 MovieClip {lifeBonus_mc}Uses:290 316 294 315 162 318Used by:584
Symbol 320 FontUsed by:321 326 349 372
Symbol 321 TextUses:320Used by:322
Symbol 322 MovieClipUses:321Used by:323
Symbol 323 MovieClip {slowBonus_mc}Uses:290 316 294 322 162Used by:324 584
Symbol 324 MovieClip {slowBonus_template}Uses:323Used by:584
Symbol 325 GraphicUsed by:328
Symbol 326 TextUses:320Used by:327
Symbol 327 MovieClipUses:326Used by:328 329
Symbol 328 MovieClip {rapidFire_template}Uses:290 325 294 327 162Used by:584
Symbol 329 MovieClip {rapidFire_mc}Uses:290 316 294 327 162Used by:584
Symbol 330 MovieClip {movingLine_template}Uses:219Used by:509 515 551 559 584
Symbol 331 BitmapUsed by:332
Symbol 332 GraphicUses:331Used by:335 339 342 345 357 360 363
Symbol 333 BitmapUsed by:334
Symbol 334 GraphicUses:333Used by:335
Symbol 335 MovieClip {galaxochimp_fla.awardThumbsUp_mc_106}Uses:332 334Used by:373
Symbol 336 BitmapUsed by:337
Symbol 337 GraphicUses:336Used by:338
Symbol 338 MovieClipUses:337Used by:339 489
Symbol 339 MovieClip {galaxochimp_fla.awardCup_mc_107}Uses:332 338Used by:373
Symbol 340 BitmapUsed by:341
Symbol 341 GraphicUses:340Used by:342
Symbol 342 MovieClip {galaxochimp_fla.awardKinetroid_mc_109}Uses:332 341Used by:373
Symbol 343 BitmapUsed by:344
Symbol 344 GraphicUses:343Used by:345
Symbol 345 MovieClip {galaxochimp_fla.awardShield3_mc_110}Uses:332 344Used by:373
Symbol 346 BitmapUsed by:347
Symbol 347 GraphicUses:346Used by:348
Symbol 348 MovieClipUses:347Used by:373
Symbol 349 TextUses:320Used by:373
Symbol 350 BitmapUsed by:351
Symbol 351 GraphicUses:350Used by:354
Symbol 352 BitmapUsed by:353
Symbol 353 GraphicUses:352Used by:354
Symbol 354 ButtonUses:351 353Used by:373 460
Symbol 355 BitmapUsed by:356
Symbol 356 GraphicUses:355Used by:357
Symbol 357 MovieClip {galaxochimp_fla.awardStar_mc_113}Uses:332 356Used by:373
Symbol 358 BitmapUsed by:359
Symbol 359 GraphicUses:358Used by:360
Symbol 360 MovieClip {galaxochimp_fla.awardShield4_mc_114}Uses:332 359Used by:373
Symbol 361 BitmapUsed by:362
Symbol 362 GraphicUses:361Used by:363
Symbol 363 MovieClip {galaxochimp_fla.awardGun_mc_115}Uses:332 362Used by:373
Symbol 364 FontUsed by:365 366 367 368 369 370 371
Symbol 365 TextUses:364Used by:373
Symbol 366 TextUses:364Used by:373
Symbol 367 TextUses:364Used by:373
Symbol 368 TextUses:364Used by:373
Symbol 369 TextUses:364Used by:373
Symbol 370 TextUses:364Used by:373
Symbol 371 TextUses:364Used by:373
Symbol 372 EditableTextUses:320Used by:373
Symbol 373 MovieClip {awards_mc}Uses:131 335 339 342 345 348 349 354 357 360 363 365 366 367 368 369 370 371 372Used by:584
Symbol 374 GraphicUsed by:376
Symbol 375 GraphicUsed by:376
Symbol 376 MovieClip {galaxochimp_fla.monkeyAstro_mc_120}Uses:374 375Used by:379
Symbol 377 GraphicUsed by:378
Symbol 378 MovieClipUses:377Used by:379
Symbol 379 MovieClip {galaxochimp_fla.newMonkey_mc_119}Uses:376 378Used by:380 399
Symbol 380 MovieClip {myBall_mc}Uses:379 98Used by:584
Symbol 381 GraphicUsed by:382
Symbol 382 MovieClipUses:381Used by:383 394
Symbol 383 MovieClip {myBall_template}Uses:167 382Used by:491 494 495 496 498 499 501 502 503 505 507 508 509 510 513 514 515 516 517 519 520 530 540 550 584
Symbol 384 GraphicUsed by:385
Symbol 385 MovieClip {ice_mc}Uses:384Used by:584
Symbol 386 GraphicUsed by:387
Symbol 387 MovieClip {ice_template}Uses:386Used by:527 528 529 537 545 546 584
Symbol 388 MovieClip {movingLine_mc}Uses:219Used by:584
Symbol 389 MovieClip {wallV_mc}Uses:176Used by:584
Symbol 390 GraphicUsed by:393
Symbol 391 GraphicUsed by:392
Symbol 392 MovieClipUses:391Used by:393
Symbol 393 MovieClip {ground_mc}Uses:390 392Used by:584
Symbol 394 MovieClip {arrow_mc}Uses:167 382Used by:584
Symbol 395 MovieClip {bonusStar_template}Uses:55Used by:491 494 495 496 498 499 501 502 503 505 507 508 509 510 513 514 515 516 517 519 584
Symbol 396 GraphicUsed by:413
Symbol 397 TextUses:17Used by:413
Symbol 398 GraphicUsed by:413
Symbol 399 MovieClip {galaxochimp_fla.spinningMonkey_mc_136}Uses:379Used by:400
Symbol 400 MovieClip {galaxochimp_fla.monkeyBubble_mc_135}Uses:399Used by:413
Symbol 401 GraphicUsed by:407
Symbol 402 BitmapUsed by:403
Symbol 403 GraphicUses:402Used by:404 405
Symbol 404 MovieClipUses:403Used by:405
Symbol 405 ButtonUses:404 403Used by:407
Symbol 406 EditableTextUses:30Used by:407
Symbol 407 MovieClip {galaxochimp_fla.credits_mc_137}Uses:401 405 406 32Used by:413
Symbol 408 FontUsed by:409
Symbol 409 EditableTextUses:408Used by:413
Symbol 410 GraphicUsed by:411
Symbol 411 MovieClipUses:410Used by:412
Symbol 412 MovieClipUses:411Used by:413
Symbol 413 MovieClip {menu_mc}Uses:16 396 397 398 400 32 407 125 409 412 23Used by:584
Symbol 414 GraphicUsed by:415
Symbol 415 MovieClipUses:414Used by:416
Symbol 416 MovieClip {gunShadow_mc}Uses:415Used by:460 584
Symbol 417 MovieClip {targetYellow_mc}Uses:224 225 227Used by:452 460 584
Symbol 418 GraphicUsed by:419
Symbol 419 MovieClipUses:418Used by:449
Symbol 420 GraphicUsed by:421
Symbol 421 MovieClipUses:420Used by:449
Symbol 422 TextUses:90Used by:449
Symbol 423 TextUses:90Used by:449
Symbol 424 GraphicUsed by:449
Symbol 425 TextUses:17Used by:449
Symbol 426 EditableTextUses:17Used by:449
Symbol 427 TextUses:30Used by:428
Symbol 428 MovieClipUses:427Used by:429
Symbol 429 MovieClipUses:23 428Used by:449
Symbol 430 TextUses:17Used by:449
Symbol 431 EditableTextUses:17Used by:449
Symbol 432 TextUses:17Used by:449
Symbol 433 EditableTextUses:17Used by:449
Symbol 434 TextUses:17Used by:449
Symbol 435 EditableTextUses:17Used by:449
Symbol 436 BitmapUsed by:437
Symbol 437 GraphicUses:436Used by:440
Symbol 438 BitmapUsed by:439
Symbol 439 GraphicUses:438Used by:440
Symbol 440 ButtonUses:437 439Used by:449
Symbol 441 BitmapUsed by:442
Symbol 442 GraphicUses:441Used by:445
Symbol 443 BitmapUsed by:444
Symbol 444 GraphicUses:443Used by:445
Symbol 445 ButtonUses:442 444Used by:449
Symbol 446 GraphicUsed by:448
Symbol 447 TextUses:17Used by:448
Symbol 448 MovieClip {galaxochimp_fla.help_mc_156}Uses:446 32 447Used by:449
Symbol 449 MovieClip {gui_mc}Uses:419 421 23 422 423 424 425 426 429 32 430 431 432 433 434 435 440 445 448Used by:460 584
Symbol 450 TextUses:83Used by:460
Symbol 451 TextUses:83Used by:460
Symbol 452 MovieClip {galaxochimp_fla.mockBackground_mc_157}Uses:158 417 99Used by:460
Symbol 453 TextUses:83Used by:460
Symbol 454 TextUses:83Used by:460
Symbol 455 GraphicUsed by:460
Symbol 456 GraphicUsed by:460
Symbol 457 TextUses:83Used by:460
Symbol 458 GraphicUsed by:460
Symbol 459 TextUses:83Used by:460
Symbol 460 MovieClip {instructions_mc}Uses:158 416 168 417 99 449 174 450 354 451 452 453 454 455 456 457 458 459Used by:584
Symbol 461 FontUsed by:462
Symbol 462 TextUses:461Used by:468
Symbol 463 GraphicUsed by:468
Symbol 464 EditableTextUses:90Used by:468
Symbol 465 EditableTextUses:90Used by:468
Symbol 466 EditableTextUses:90Used by:468
Symbol 467 EditableTextUses:90Used by:468
Symbol 468 MovieClip {highscores_mc}Uses:462 463 464 465 466 467Used by:584
Symbol 469 EditableTextUses:30Used by:473
Symbol 470 EditableTextUses:30Used by:473
Symbol 471 EditableTextUses:30Used by:473
Symbol 472 EditableTextUses:30Used by:473
Symbol 473 MovieClip {levelInfo_mc}Uses:16 32 125 469 470 471 472 23Used by:584
Symbol 474 TextUses:17Used by:475
Symbol 475 MovieClip {confirmQuit_mc}Uses:109 112 115 474Used by:584
Symbol 476 GraphicUsed by:489
Symbol 477 EditableTextUses:30Used by:489
Symbol 478 EditableTextUses:30Used by:489
Symbol 479 GraphicUsed by:488
Symbol 480 TextUses:30Used by:488
Symbol 481 TextUses:30Used by:483
Symbol 482 TextUses:30Used by:483
Symbol 483 ButtonUses:481 482Used by:488
Symbol 484 GraphicUsed by:485 569
Symbol 485 MovieClipUses:484Used by:488
Symbol 486 EditableTextUses:30Used by:488
Symbol 487 EditableTextUses:30Used by:488
Symbol 488 MovieClip {galaxochimp_fla.submissionScreen_mc_162}Uses:479 480 483 485 486 32 487Used by:489
Symbol 489 MovieClip {gameOverScreen_mc}Uses:476 477 338 478 32 125 23 488Used by:584
Symbol 490 GraphicUsed by:491 494 495 496 498 499 502 503 516 517
Symbol 491 MovieClipUses:490 383 181 395Used by:562
Symbol 492 FontUsed by:493 497 504 518 552
Symbol 493 EditableTextUses:492Used by:494
Symbol 494 MovieClip {galaxochimp_fla.level3_167}Uses:490 383 181 395 493 269Used by:562
Symbol 495 MovieClipUses:490 383 181 395Used by:562
Symbol 496 MovieClipUses:490 383 181 395 182Used by:562
Symbol 497 EditableTextUses:492Used by:498
Symbol 498 MovieClip {galaxochimp_fla.level4_170}Uses:490 383 181 220 497 269 395 222Used by:562
Symbol 499 MovieClipUses:490 181 237 243 383 395 182 300 254Used by:562
Symbol 500 GraphicUsed by:501 505 507 508 509 510 513 514 515 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 553 554 555 556 557 558 559 560 561
Symbol 501 MovieClipUses:500 181 383 220 182 172 395Used by:562
Symbol 502 MovieClipUses:490 383 181 220 395 222Used by:562
Symbol 503 MovieClipUses:490 181 237 383 395 300Used by:562
Symbol 504 EditableTextUses:492Used by:505
Symbol 505 MovieClip {galaxochimp_fla.level11_175}Uses:500 181 383 277 280 395 504 269Used by:562
Symbol 506 MovieClip {puckBlue_template}Uses:108Used by:507 516 520 522 523 524 526 536 538 540 541 542 547 548 550 551 560 584
Symbol 507 MovieClipUses:500 182 506 179 172 395 181 383Used by:562
Symbol 508 MovieClipUses:500 181 383 222 395 182Used by:562
Symbol 509 MovieClipUses:500 300 181 383 395 222 330Used by:562
Symbol 510 MovieClipUses:500 383 181 395 300 220Used by:562
Symbol 511 GraphicUsed by:512
Symbol 512 MovieClip {rotator_template}Uses:511Used by:513 531 538 543 584
Symbol 513 MovieClipUses:500 512 181 383 395 182Used by:562
Symbol 514 MovieClipUses:500 181 304 383 277 280 238 100 395 243 182Used by:562
Symbol 515 MovieClipUses:500 238 181 383 330 395Used by:562
Symbol 516 MovieClipUses:490 181 237 383 395 300 506Used by:562
Symbol 517 MovieClipUses:490 238 383 181 395Used by:562
Symbol 518 EditableTextUses:492Used by:519
Symbol 519 MovieClip {galaxochimp_fla.level19_192}Uses:500 181 383 301 395 182 300 518 269Used by:562
Symbol 520 MovieClipUses:500 506 383Used by:562
Symbol 521 MovieClipUses:500 181Used by:562
Symbol 522 MovieClipUses:500 181 237 182 506 238 300Used by:562
Symbol 523 MovieClipUses:500 506 182 181Used by:562
Symbol 524 MovieClipUses:500 243 238 181 506 182 252Used by:562
Symbol 525 MovieClipUses:500 181 304 306 237 317 300Used by:562
Symbol 526 MovieClipUses:500 252 243 181 220 506 237Used by:562
Symbol 527 MovieClipUses:500 301 387Used by:562
Symbol 528 MovieClipUses:500 100 304 238 220 387 300Used by:562
Symbol 529 MovieClipUses:500 181 312 387 100Used by:562
Symbol 530 MovieClipUses:500 237 238 300 383Used by:562
Symbol 531 MovieClipUses:500 237 238 301 300 220 512Used by:562
Symbol 532 MovieClipUses:500 179 181Used by:562
Symbol 533 MovieClipUses:500 181 182 280 277 100Used by:562
Symbol 534 MovieClipUses:500 181Used by:562
Symbol 535 MovieClipUses:500 220 181Used by:562
Symbol 536 MovieClipUses:500 300 220 506 237 304 181 301Used by:562
Symbol 537 MovieClipUses:500 387 238Used by:562
Symbol 538 MovieClipUses:500 238 506 317 181 512Used by:562
Symbol 539 MovieClipUses:500 312 300 100Used by:562
Symbol 540 MovieClipUses:500 506 237 238 383Used by:562
Symbol 541 MovieClipUses:500 506 277 280 220 100 181Used by:562
Symbol 542 MovieClipUses:500 181 182 506Used by:562
Symbol 543 MovieClipUses:500 237 512 100 181Used by:562
Symbol 544 MovieClipUses:500 301 181Used by:562
Symbol 545 MovieClipUses:500 317 181 387Used by:562
Symbol 546 MovieClipUses:500 387Used by:562
Symbol 547 MovieClipUses:500 506 181Used by:562
Symbol 548 MovieClipUses:500 506 238 181Used by:562
Symbol 549 MovieClipUses:500 312 181 300Used by:562
Symbol 550 MovieClipUses:500 506 237 238 383 220Used by:562
Symbol 551 MovieClipUses:500 330 506Used by:562
Symbol 552 EditableTextUses:492Used by:553
Symbol 553 MovieClip {galaxochimp_fla.level53_225}Uses:500 179 552 269 181Used by:562
Symbol 554 MovieClipUses:500 181Used by:562
Symbol 555 MovieClipUses:500 181Used by:562
Symbol 556 MovieClipUses:500 237 182 277 280 181 100Used by:562
Symbol 557 MovieClipUses:500 100 237 181 182 317Used by:562
Symbol 558 MovieClipUses:500 179 301 181 238Used by:562
Symbol 559 MovieClipUses:500 330Used by:562
Symbol 560 MovieClipUses:500 506 312 181Used by:562
Symbol 561 MovieClipUses:500 181Used by:562
Symbol 562 MovieClip {levelContainer_mc}Uses:491 494 495 496 498 499 501 502 503 505 507 508 509 510 513 514 515 516 517 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 553 554 555 556 557 558 559 560 561Used by:584
Symbol 563 GraphicUsed by:564
Symbol 564 MovieClipUses:563Used by:566
Symbol 565 GraphicUsed by:566
Symbol 566 MovieClip {enemy_mc}Uses:564 565Used by:584
Symbol 567 GraphicUsed by:568
Symbol 568 MovieClip {enemy_template}Uses:567Used by:584
Symbol 569 MovieClipUses:484Used by:570
Symbol 570 MovieClip {squareShadow_mc}Uses:569Used by:584
Symbol 571 BitmapUsed by:572
Symbol 572 GraphicUses:571Used by:573
Symbol 573 MovieClip {glints_mc}Uses:572Used by:584
Symbol 574 MovieClip {targetBlue_mc}Uses:224 225 227Used by:584
Symbol 575 GraphicUsed by:576
Symbol 576 MovieClipUses:575Used by:581
Symbol 577 GraphicUsed by:578
Symbol 578 MovieClipUses:577Used by:581
Symbol 579 GraphicUsed by:580
Symbol 580 MovieClipUses:579Used by:581
Symbol 581 MovieClip {explosion_mc}Uses:576 578 580Used by:584
Symbol 582 GraphicUsed by:583
Symbol 583 MovieClip {rotator_mc}Uses:582Used by:584
Symbol 584 MovieClipUses:152 153 154 157 158 168 170 172 174 178 179 181 182 183 199 208 217 220 221 222 228 229 233 236 237 238 241 243 250 252 254 256 257 263 266 268 269 271 117 274 276 277 279 280 283 285 287 298 300 301 302 304 306 308 311 312 317 319 324 323 328 329 330 373 16 380 383 131 385 387 388 389 393 394 56 395 413 460 468 449 473 475 489 562 566 568 570 290 99 162 573 417 574 506 100 108 581 512 583 416 119Used by:Timeline

Instance Names

"blackOut"Frame 1Symbol 119 MovieClip {blackScreen_mc}
"arcadeTown"Frame 1Symbol 125 Button
"adBox"Frame 1Symbol 126 MovieClip
"_Continue_"Frame 1Symbol 32 MovieClip {galaxochimp_fla.CB_button_mc_5}
"myPreloader"Frame 1Symbol 129 MovieClip {galaxochimp_fla.myPreloader_mc_13}
"hotspot"Frame 2Symbol 151 Button
"stageAssets"Frame 3Symbol 584 MovieClip
"letter"Symbol 4 MovieClip {letter_mc} Frame 1Symbol 3 EditableText
"buttonText"Symbol 32 MovieClip {galaxochimp_fla.CB_button_mc_5} Frame 1Symbol 31 EditableText
"level1"Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251} Frame 1Symbol 58 Button {levelThumb}
"level2"Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251} Frame 1Symbol 58 Button {levelThumb}
"level3"Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251} Frame 1Symbol 58 Button {levelThumb}
"level4"Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251} Frame 1Symbol 58 Button {levelThumb}
"level5"Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251} Frame 1Symbol 58 Button {levelThumb}
"level6"Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251} Frame 1Symbol 58 Button {levelThumb}
"level7"Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251} Frame 1Symbol 58 Button {levelThumb}
"level8"Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251} Frame 1Symbol 58 Button {levelThumb}
"level9"Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251} Frame 1Symbol 58 Button {levelThumb}
"level10"Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251} Frame 1Symbol 58 Button {levelThumb}
"level11"Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251} Frame 1Symbol 58 Button {levelThumb}
"level12"Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251} Frame 1Symbol 58 Button {levelThumb}
"level13"Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251} Frame 1Symbol 58 Button {levelThumb}
"level14"Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251} Frame 1Symbol 58 Button {levelThumb}
"level15"Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251} Frame 1Symbol 58 Button {levelThumb}
"level16"Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251} Frame 1Symbol 58 Button {levelThumb}
"level17"Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251} Frame 1Symbol 58 Button {levelThumb}
"level18"Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251} Frame 1Symbol 58 Button {levelThumb}
"level19"Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251} Frame 1Symbol 58 Button {levelThumb}
"level20"Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251} Frame 1Symbol 58 Button {levelThumb}
"_Back_"Symbol 80 MovieClip {levelSelect_mc} Frame 1Symbol 32 MovieClip {galaxochimp_fla.CB_button_mc_5}
"levelButtonHolder"Symbol 80 MovieClip {levelSelect_mc} Frame 1Symbol 79 MovieClip {galaxochimp_fla.levelButtonHolder_mc_251}
"loadingText"Symbol 88 MovieClip {preloader_mc} Frame 1Symbol 82 EditableText
"loadingBar"Symbol 88 MovieClip {preloader_mc} Frame 1Symbol 86 MovieClip
"txt"Symbol 92 MovieClip {debug_mc} Frame 1Symbol 91 EditableText
"hitzone"Symbol 108 MovieClip {puckBlue_mc} Frame 1Symbol 102 MovieClip
"yesButton"Symbol 117 MovieClip {confirmReset_mc} Frame 1Symbol 112 Button
"noButton"Symbol 117 MovieClip {confirmReset_mc} Frame 1Symbol 115 Button
"loadingBar"Symbol 129 MovieClip {galaxochimp_fla.myPreloader_mc_13} Frame 1Symbol 86 MovieClip
"loadingText"Symbol 129 MovieClip {galaxochimp_fla.myPreloader_mc_13} Frame 1Symbol 127 EditableText
"scalableArrow"Symbol 167 MovieClip {galaxochimp_fla.turret_mc_23} Frame 1Symbol 164 MovieClip
"top"Symbol 167 MovieClip {galaxochimp_fla.turret_mc_23} Frame 1Symbol 166 MovieClip
"turret"Symbol 168 MovieClip {gun_mc} Frame 1Symbol 167 MovieClip {galaxochimp_fla.turret_mc_23}
"fill"Symbol 228 MovieClip {targetGreen_mc} Frame 1Symbol 224 MovieClip
"fill"Symbol 229 MovieClip {targetRed_mc} Frame 1Symbol 224 MovieClip
"hitzone"Symbol 233 MovieClip {puckGreen_mc} Frame 1Symbol 102 MovieClip
"textField"Symbol 240 MovieClip {galaxochimp_fla.textField_mc_56} Frame 1Symbol 239 EditableText
"mc"Symbol 241 MovieClip {ticker_mc} Frame 1Symbol 240 MovieClip {galaxochimp_fla.textField_mc_56}
"hitZone1"Symbol 250 MovieClip {travelatorRight_mc} Frame 1Symbol 245 MovieClip
"hitZone2"Symbol 250 MovieClip {travelatorRight_mc} Frame 1Symbol 245 MovieClip
"hitZone3"Symbol 250 MovieClip {travelatorRight_mc} Frame 1Symbol 245 MovieClip
"hitZone4"Symbol 250 MovieClip {travelatorRight_mc} Frame 1Symbol 245 MovieClip
"hitZone5"Symbol 250 MovieClip {travelatorRight_mc} Frame 1Symbol 245 MovieClip
"hitZone6"Symbol 250 MovieClip {travelatorRight_mc} Frame 1Symbol 245 MovieClip
"hitZone1"Symbol 257 MovieClip {travelatorLeft_mc} Frame 1Symbol 245 MovieClip
"hitZone2"Symbol 257 MovieClip {travelatorLeft_mc} Frame 1Symbol 245 MovieClip
"hitZone3"Symbol 257 MovieClip {travelatorLeft_mc} Frame 1Symbol 245 MovieClip
"hitZone4"Symbol 257 MovieClip {travelatorLeft_mc} Frame 1Symbol 245 MovieClip
"hitZone5"Symbol 257 MovieClip {travelatorLeft_mc} Frame 1Symbol 245 MovieClip
"hitZone6"Symbol 257 MovieClip {travelatorLeft_mc} Frame 1Symbol 245 MovieClip
"hitZone1"Symbol 263 MovieClip {travelatorUp_mc} Frame 1Symbol 245 MovieClip
"hitZone2"Symbol 263 MovieClip {travelatorUp_mc} Frame 1Symbol 245 MovieClip
"hitZone3"Symbol 263 MovieClip {travelatorUp_mc} Frame 1Symbol 245 MovieClip
"hitZone4"Symbol 263 MovieClip {travelatorUp_mc} Frame 1Symbol 245 MovieClip
"hitZone5"Symbol 263 MovieClip {travelatorUp_mc} Frame 1Symbol 245 MovieClip
"hitZone6"Symbol 263 MovieClip {travelatorUp_mc} Frame 1Symbol 245 MovieClip
"hitZone1"Symbol 266 MovieClip {travelatorDown_mc} Frame 1Symbol 245 MovieClip
"hitZone2"Symbol 266 MovieClip {travelatorDown_mc} Frame 1Symbol 245 MovieClip
"hitZone3"Symbol 266 MovieClip {travelatorDown_mc} Frame 1Symbol 245 MovieClip
"hitZone4"Symbol 266 MovieClip {travelatorDown_mc} Frame 1Symbol 245 MovieClip
"hitZone5"Symbol 266 MovieClip {travelatorDown_mc} Frame 1Symbol 245 MovieClip
"hitZone6"Symbol 266 MovieClip {travelatorDown_mc} Frame 1Symbol 245 MovieClip
"message"Symbol 268 MovieClip {hintBox_mc} Frame 1Symbol 267 EditableText
"textField"Symbol 271 MovieClip {bonusDisplay_mc} Frame 1Symbol 270 EditableText
"light"Symbol 298 MovieClip {bumper_mc} Frame 1Symbol 294 MovieClip {galaxochimp_fla.bumperLight_84}
"light"Symbol 317 MovieClip {lifeBonus_template} Frame 1Symbol 294 MovieClip {galaxochimp_fla.bumperLight_84}
"light"Symbol 319 MovieClip {lifeBonus_mc} Frame 1Symbol 294 MovieClip {galaxochimp_fla.bumperLight_84}
"light"Symbol 323 MovieClip {slowBonus_mc} Frame 1Symbol 294 MovieClip {galaxochimp_fla.bumperLight_84}
"light"Symbol 328 MovieClip {rapidFire_template} Frame 1Symbol 294 MovieClip {galaxochimp_fla.bumperLight_84}
"light"Symbol 329 MovieClip {rapidFire_mc} Frame 1Symbol 294 MovieClip {galaxochimp_fla.bumperLight_84}
"thumbsUp"Symbol 373 MovieClip {awards_mc} Frame 1Symbol 335 MovieClip {galaxochimp_fla.awardThumbsUp_mc_106}
"cup"Symbol 373 MovieClip {awards_mc} Frame 1Symbol 339 MovieClip {galaxochimp_fla.awardCup_mc_107}
"kinetroid"Symbol 373 MovieClip {awards_mc} Frame 1Symbol 342 MovieClip {galaxochimp_fla.awardKinetroid_mc_109}
"shield3"Symbol 373 MovieClip {awards_mc} Frame 1Symbol 345 MovieClip {galaxochimp_fla.awardShield3_mc_110}
"titleButton"Symbol 373 MovieClip {awards_mc} Frame 1Symbol 348 MovieClip
"menuButton"Symbol 373 MovieClip {awards_mc} Frame 1Symbol 354 Button
"star"Symbol 373 MovieClip {awards_mc} Frame 1Symbol 357 MovieClip {galaxochimp_fla.awardStar_mc_113}
"shield4"Symbol 373 MovieClip {awards_mc} Frame 1Symbol 360 MovieClip {galaxochimp_fla.awardShield4_mc_114}
"gun"Symbol 373 MovieClip {awards_mc} Frame 1Symbol 363 MovieClip {galaxochimp_fla.awardGun_mc_115}
"bestScore"Symbol 373 MovieClip {awards_mc} Frame 1Symbol 372 EditableText
"monkeyAnim"Symbol 379 MovieClip {galaxochimp_fla.newMonkey_mc_119} Frame 1Symbol 376 MovieClip {galaxochimp_fla.monkeyAstro_mc_120}
"flame"Symbol 379 MovieClip {galaxochimp_fla.newMonkey_mc_119} Frame 1Symbol 378 MovieClip
"monkey"Symbol 380 MovieClip {myBall_mc} Frame 1Symbol 379 MovieClip {galaxochimp_fla.newMonkey_mc_119}
"turret"Symbol 383 MovieClip {myBall_template} Frame 1Symbol 167 MovieClip {galaxochimp_fla.turret_mc_23}
"base"Symbol 383 MovieClip {myBall_template} Frame 1Symbol 382 MovieClip
"turret"Symbol 394 MovieClip {arrow_mc} Frame 1Symbol 167 MovieClip {galaxochimp_fla.turret_mc_23}
"base"Symbol 394 MovieClip {arrow_mc} Frame 1Symbol 382 MovieClip
"monkey"Symbol 399 MovieClip {galaxochimp_fla.spinningMonkey_mc_136} Frame 1Symbol 379 MovieClip {galaxochimp_fla.newMonkey_mc_119}
"monkey"Symbol 400 MovieClip {galaxochimp_fla.monkeyBubble_mc_135} Frame 1Symbol 399 MovieClip {galaxochimp_fla.spinningMonkey_mc_136}
"andromedusButton"Symbol 407 MovieClip {galaxochimp_fla.credits_mc_137} Frame 1Symbol 405 Button
"_Close_"Symbol 407 MovieClip {galaxochimp_fla.credits_mc_137} Frame 1Symbol 32 MovieClip {galaxochimp_fla.CB_button_mc_5}
"monkeyBubble"Symbol 413 MovieClip {menu_mc} Frame 1Symbol 400 MovieClip {galaxochimp_fla.monkeyBubble_mc_135}
"_Play_"Symbol 413 MovieClip {menu_mc} Frame 1Symbol 32 MovieClip {galaxochimp_fla.CB_button_mc_5}
"_Hiscores_"Symbol 413 MovieClip {menu_mc} Frame 1Symbol 32 MovieClip {galaxochimp_fla.CB_button_mc_5}
"_More_Games_"Symbol 413 MovieClip {menu_mc} Frame 1Symbol 32 MovieClip {galaxochimp_fla.CB_button_mc_5}
"_Download_Game_"Symbol 413 MovieClip {menu_mc} Frame 1Symbol 32 MovieClip {galaxochimp_fla.CB_button_mc_5}
"_Add_to_Website_"Symbol 413 MovieClip {menu_mc} Frame 1Symbol 32 MovieClip {galaxochimp_fla.CB_button_mc_5}
"_Credits_"Symbol 413 MovieClip {menu_mc} Frame 1Symbol 32 MovieClip {galaxochimp_fla.CB_button_mc_5}
"credits"Symbol 413 MovieClip {menu_mc} Frame 1Symbol 407 MovieClip {galaxochimp_fla.credits_mc_137}
"arcadeTown"Symbol 413 MovieClip {menu_mc} Frame 1Symbol 125 Button
"warningMessage"Symbol 413 MovieClip {menu_mc} Frame 1Symbol 409 EditableText
"fill"Symbol 417 MovieClip {targetYellow_mc} Frame 1Symbol 224 MovieClip
"_Close_"Symbol 448 MovieClip {galaxochimp_fla.help_mc_156} Frame 1Symbol 32 MovieClip {galaxochimp_fla.CB_button_mc_5}
"lineT"Symbol 449 MovieClip {gui_mc} Frame 1Symbol 421 MovieClip
"lineB"Symbol 449 MovieClip {gui_mc} Frame 1Symbol 421 MovieClip
"lives"Symbol 449 MovieClip {gui_mc} Frame 1Symbol 426 EditableText
"message"Symbol 449 MovieClip {gui_mc} Frame 1Symbol 429 MovieClip
"_Reload_"Symbol 449 MovieClip {gui_mc} Frame 1Symbol 32 MovieClip {galaxochimp_fla.CB_button_mc_5}
"score"Symbol 449 MovieClip {gui_mc} Frame 1Symbol 431 EditableText
"bonus"Symbol 449 MovieClip {gui_mc} Frame 1Symbol 433 EditableText
"level"Symbol 449 MovieClip {gui_mc} Frame 1Symbol 435 EditableText
"quitButton"Symbol 449 MovieClip {gui_mc} Frame 1Symbol 440 Button
"resetButton"Symbol 449 MovieClip {gui_mc} Frame 1Symbol 445 Button
"help"Symbol 449 MovieClip {gui_mc} Frame 1Symbol 448 MovieClip {galaxochimp_fla.help_mc_156}
"target"Symbol 452 MovieClip {galaxochimp_fla.mockBackground_mc_157} Frame 1Symbol 417 MovieClip {targetYellow_mc}
"target"Symbol 460 MovieClip {instructions_mc} Frame 1Symbol 417 MovieClip {targetYellow_mc}
"guiInstance"Symbol 460 MovieClip {instructions_mc} Frame 1Symbol 449 MovieClip {gui_mc}
"menuButton"Symbol 460 MovieClip {instructions_mc} Frame 1Symbol 354 Button
"mockBackground"Symbol 460 MovieClip {instructions_mc} Frame 211Symbol 452 MovieClip {galaxochimp_fla.mockBackground_mc_157}
"target"Symbol 460 MovieClip {instructions_mc} Frame 271Symbol 417 MovieClip {targetYellow_mc}
"rankDisplay"Symbol 468 MovieClip {highscores_mc} Frame 1Symbol 464 EditableText
"nameDisplay"Symbol 468 MovieClip {highscores_mc} Frame 1Symbol 465 EditableText
"scoreDisplay"Symbol 468 MovieClip {highscores_mc} Frame 1Symbol 466 EditableText
"connectingDisplay"Symbol 468 MovieClip {highscores_mc} Frame 1Symbol 467 EditableText
"_Continue_"Symbol 473 MovieClip {levelInfo_mc} Frame 1Symbol 32 MovieClip {galaxochimp_fla.CB_button_mc_5}
"_More_Games_"Symbol 473 MovieClip {levelInfo_mc} Frame 1Symbol 32 MovieClip {galaxochimp_fla.CB_button_mc_5}
"arcadeTown"Symbol 473 MovieClip {levelInfo_mc} Frame 1Symbol 125 Button
"m1"Symbol 473 MovieClip {levelInfo_mc} Frame 1Symbol 469 EditableText
"m2"Symbol 473 MovieClip {levelInfo_mc} Frame 1Symbol 470 EditableText
"m3"Symbol 473 MovieClip {levelInfo_mc} Frame 1Symbol 471 EditableText
"m4"Symbol 473 MovieClip {levelInfo_mc} Frame 1Symbol 472 EditableText
"yesButton"Symbol 475 MovieClip {confirmQuit_mc} Frame 1Symbol 112 Button
"noButton"Symbol 475 MovieClip {confirmQuit_mc} Frame 1Symbol 115 Button
"close"Symbol 488 MovieClip {galaxochimp_fla.submissionScreen_mc_162} Frame 1Symbol 483 Button
"playerName"Symbol 488 MovieClip {galaxochimp_fla.submissionScreen_mc_162} Frame 1Symbol 486 EditableText
"_Submit_"Symbol 488 MovieClip {galaxochimp_fla.submissionScreen_mc_162} Frame 1Symbol 32 MovieClip {galaxochimp_fla.CB_button_mc_5}
"message"Symbol 488 MovieClip {galaxochimp_fla.submissionScreen_mc_162} Frame 1Symbol 487 EditableText
"message1"Symbol 489 MovieClip {gameOverScreen_mc} Frame 1Symbol 477 EditableText
"cup1"Symbol 489 MovieClip {gameOverScreen_mc} Frame 1Symbol 338 MovieClip
"cup2"Symbol 489 MovieClip {gameOverScreen_mc} Frame 1Symbol 338 MovieClip
"message2"Symbol 489 MovieClip {gameOverScreen_mc} Frame 1Symbol 478 EditableText
"_Submit_Score_"Symbol 489 MovieClip {gameOverScreen_mc} Frame 1Symbol 32 MovieClip {galaxochimp_fla.CB_button_mc_5}
"_Try_Again_"Symbol 489 MovieClip {gameOverScreen_mc} Frame 1Symbol 32 MovieClip {galaxochimp_fla.CB_button_mc_5}
"_Menu_"Symbol 489 MovieClip {gameOverScreen_mc} Frame 1Symbol 32 MovieClip {galaxochimp_fla.CB_button_mc_5}
"_More_Games_"Symbol 489 MovieClip {gameOverScreen_mc} Frame 1Symbol 32 MovieClip {galaxochimp_fla.CB_button_mc_5}
"arcadeTown"Symbol 489 MovieClip {gameOverScreen_mc} Frame 1Symbol 125 Button
"submissionScreen"Symbol 489 MovieClip {gameOverScreen_mc} Frame 1Symbol 488 MovieClip {galaxochimp_fla.submissionScreen_mc_162}
"hint1"Symbol 494 MovieClip {galaxochimp_fla.level3_167} Frame 1Symbol 493 EditableText
"hint1"Symbol 498 MovieClip {galaxochimp_fla.level4_170} Frame 1Symbol 497 EditableText
"hint1"Symbol 505 MovieClip {galaxochimp_fla.level11_175} Frame 1Symbol 504 EditableText
"hint1"Symbol 519 MovieClip {galaxochimp_fla.level19_192} Frame 1Symbol 518 EditableText
"hint1"Symbol 553 MovieClip {galaxochimp_fla.level53_225} Frame 1Symbol 552 EditableText
"fill"Symbol 574 MovieClip {targetBlue_mc} Frame 1Symbol 224 MovieClip

Special Tags

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

Labels

"onUp"Symbol 208 MovieClip {soundToggle_mc} Frame 1
"onOver"Symbol 208 MovieClip {soundToggle_mc} Frame 3
"offUp"Symbol 208 MovieClip {soundToggle_mc} Frame 5
"offOver"Symbol 208 MovieClip {soundToggle_mc} Frame 7
"onUp"Symbol 217 MovieClip {musicToggle_mc} Frame 1
"onOver"Symbol 217 MovieClip {musicToggle_mc} Frame 3
"offUp"Symbol 217 MovieClip {musicToggle_mc} Frame 5
"offOver"Symbol 217 MovieClip {musicToggle_mc} Frame 7




http://swfchan.com/24/115164/info.shtml
Created: 9/3 -2019 21:03:33 Last modified: 9/3 -2019 21:03:33 Server time: 06/05 -2024 19:43:07