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

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

Cold-Justice.swf

This is the info page for
Flash #121962

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


Text
Cold Justice is loading ...

0 %

0 / 3987 kB

play

1.05GN

This website is using this game illegally.

<p align="center"><font face="Arial" size="16" color="#000000" letterSpacing="0.000000" kerning="1"><b>http://www.gamesnitro.com/game/cold-justice/</b></font></p>

Copy-paste this URL in your address bar to play Cold Justice

points

1200

walkthrough

bullets

level

20

level

ok

Your mission is to kill all the terrorists

Use your mouse to aim and fire

Your ammunition is limited

1.

2.

resume

help

level selection

music

sfx

submit

ENTER YOUR NAME

YOUR NAME

YOUR TOTAL SCORE

100000

try again

next level

try

again

You killed all the terrorists

Bullets left

Combo kills

Head shots

Explosive kills

6

2

3

3

1000

200

300

30

Level total

2030

YOU CAN DO BETTER

www.GamesNitro.com

Bullets available

5

Bullets for 3 stars

Bullets for 2 stars

Bullets for 1 stars

Your score

1

2

3

1000

29

main menu

TOTAL SCORE : 99,999

cancel

ActionScript [AS3]

Section 1
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2CircleDef extends b2ShapeDef { public var radius:Number; public var localPosition:b2Vec2; public function b2CircleDef(){ localPosition = new b2Vec2(0, 0); super(); type = b2Shape.e_circleShape; radius = 1; } } }//package Box2D.Collision.Shapes
Section 2
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_localPosition:b2Vec2; public var m_radius:Number; public function b2CircleShape(_arg1:b2ShapeDef){ m_localPosition = new b2Vec2(); super(_arg1); var _local2:b2CircleDef = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local10:Number; var _local6:b2Mat22 = _arg1.R; var _local7:Number = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); var _local8:Number = (_arg1.position.y + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); var _local9:Number = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); var _local11:Number = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; var _local12:Number = (_arg4.p2.x - _arg4.p1.x); var _local13:Number = (_arg4.p2.y - _arg4.p1.y); var _local14:Number = ((_local9 * _local12) + (_local10 * _local13)); var _local15:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local16:Number = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; var _local17:Number = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } public function GetRadius():Number{ return (m_radius); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; _local4 = _arg2.R; var _local5:Number = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local6:Number = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; var _local7:Number = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local8:Number = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number = (m_localPosition.x - _arg1.x); var _local3:Number = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22 = _arg2.R; var _local4:Number = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22 = _arg1.R; var _local4:Number = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } } }//package Box2D.Collision.Shapes
Section 3
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2FilterData { public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public var categoryBits:uint;// = 1 public function Copy():b2FilterData{ var _local1:b2FilterData = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 4
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ center = new b2Vec2(0, 0); super(); } } }//package Box2D.Collision.Shapes
Section 5
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertices:Array; public var vertexCount:int; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; var _local1:int; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); if (_arg3){ _local5 = _arg3; _local6 = s_mat; _local6.Set(_arg4); _local7 = 0; while (_local7 < vertexCount) { _arg3 = vertices[_local7]; _arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y))); _arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y))); _arg3.x = _arg1; _local7++; }; }; } public function SetAsBox(_arg1:Number, _arg2:Number):void{ vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); } } }//package Box2D.Collision.Shapes
Section 6
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { public var m_coreVertices:Array; public var m_vertices:Array; private var s_supportVec:b2Vec2; public var m_centroid:b2Vec2; public var m_normals:Array; public var m_obb:b2OBB; public var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local3:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; var _local2:b2PolygonDef = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; var _local4:int = _local3; var _local5:int = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB = s_sweptAABB1; var _local5:b2AABB = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y); _arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y); } public function GetVertices():Array{ return (m_vertices); } public function GetCoreVertices():Array{ return (m_coreVertices); } public function GetCentroid():b2Vec2{ return (m_centroid); } public function GetOBB():b2OBB{ return (m_obb); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_coreVertices[0])); } public function Centroid(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_centroid)); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local20:Number; var _local21:Number; var _local6:Number = 0; var _local7:Number = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; var _local12:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local13:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; var _local14:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local15:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); var _local18 = -1; var _local19:int; while (_local19 < m_vertexCount) { _local11 = m_vertices[_local19]; _local8 = (_local11.x - _local12); _local9 = (_local11.y - _local13); _local11 = m_normals[_local19]; _local20 = ((_local11.x * _local8) + (_local11.y * _local9)); _local21 = ((_local11.x * _local16) + (_local11.y * _local17)); if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){ _local6 = (_local20 / _local21); _local18 = _local19; } else { if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){ _local7 = (_local20 / _local21); }; }; if (_local7 < _local6){ return (false); }; _local19++; }; if (_local18 >= 0){ _arg2[0] = _local6; _local10 = _arg1.R; _local11 = m_normals[_local18]; _arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); return (true); }; return (false); } override public function ComputeMass(_arg1:b2MassData):void{ var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local2:Number = 0; var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; var _local7:Number = 0; var _local8:Number = (1 / 3); var _local9:int; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0]; _local12 = (_local10.x - _local6); _local13 = (_local10.y - _local7); _local14 = (_local11.x - _local6); _local15 = (_local11.y - _local7); _local16 = ((_local12 * _local15) - (_local13 * _local14)); _local17 = (0.5 * _local16); _local4 = (_local4 + _local17); _local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x))); _local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y))); _local18 = _local6; _local19 = _local7; _local20 = _local12; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18)); _local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local5 = (_local5 + (_local16 * (_local24 + _local25))); _local9++; }; _arg1.mass = (m_density * _local4); _local2 = (_local2 * (1 / _local4)); _local3 = (_local3 * (1 / _local4)); _arg1.center.Set(_local2, _local3); _arg1.I = (m_density * _local5); } public function GetNormals():Array{ return (m_normals); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local11:Number; _local5 = _arg1.R; var _local6:Number = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); var _local7:Number = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); var _local8:int; _local4 = m_coreVertices[0]; var _local9:Number = ((_local4.x * _local6) + (_local4.y * _local7)); var _local10 = 1; while (_local10 < m_vertexCount) { _local4 = m_coreVertices[_local10]; _local11 = ((_local4.x * _local6) + (_local4.y * _local7)); if (_local11 > _local9){ _local8 = _local10; _local9 = _local11; }; _local10++; }; _local5 = _arg1.R; _local4 = m_coreVertices[_local8]; s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y))); s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); var _local6:b2Mat22 = _local5; _local4 = m_obb.extents; var _local7:Number = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); var _local8:Number = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; var _local9:Number = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); var _local10:Number = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local4:Number; var _local5:Number; m_sweepRadius = 0; var _local3:int; while (_local3 < m_vertexCount) { _local2 = m_coreVertices[_local3]; _local4 = (_local2.x - _arg1.x); _local5 = (_local2.y - _arg1.y); _local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local4 > m_sweepRadius){ m_sweepRadius = _local4; }; _local3++; }; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local10:Number; var _local4:b2Mat22 = _arg1.R; var _local5:Number = (_arg2.x - _arg1.position.x); var _local6:Number = (_arg2.y - _arg1.position.y); var _local7:Number = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); var _local8:Number = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); var _local9:int; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local7:Number; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; _local7 = (1 / 3); var _local8:int; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; var _local5:Array = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; var _local6:Number = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 7
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Shape { public var m_next:b2Shape; public var m_type:int; public var m_sweepRadius:Number; public var m_density:Number; public var m_filter:b2FilterData; public var m_friction:Number; public var m_isSensor:Boolean; public var m_restitution:Number; public var m_userData; public var m_proxyId:uint; public var m_body:b2Body; public static const e_polygonShape:int = 1; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_shapeTypeCount:int = 2; private static var s_resetAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_proxyAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxyId = b2Pair.b2_nullProxy; m_filter = _arg1.filter.Copy(); m_isSensor = _arg1.isSensor; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetNext():b2Shape{ return (m_next); } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function GetType():int{ return (m_type); } public function GetRestitution():Number{ return (m_restitution); } public function GetFriction():Number{ return (m_friction); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); var _local3:b2AABB = s_resetAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; var _local4:b2AABB = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function ComputeMass(_arg1:b2MassData):void{ } public function IsSensor():Boolean{ return (m_isSensor); } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function GetBody():b2Body{ return (m_body); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB = s_proxyAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public static function Destroy(_arg1:b2Shape, _arg2):void{ } public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } } }//package Box2D.Collision.Shapes
Section 8
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2ShapeDef { public var friction:Number;// = 0.2 public var isSensor:Boolean;// = false public var density:Number;// = 0 public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var type:int; public function b2ShapeDef(){ type = b2Shape.e_unknownShape; filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 9
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var upperBound:b2Vec2; public var lowerBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number = (upperBound.x - lowerBound.x); var _local2:Number = (upperBound.y - lowerBound.y); var _local3:Boolean = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 10
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var value:uint; public var proxyId:uint; public var stabbingCount:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint = value; var _local3:uint = proxyId; var _local4:uint = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//package Box2D.Collision
Section 11
//b2BoundValues (Box2D.Collision.b2BoundValues) package Box2D.Collision { public class b2BoundValues { public var lowerValues:Array; public var upperValues:Array; public function b2BoundValues(){ lowerValues = [0, 0]; upperValues = [0, 0]; super(); } } }//package Box2D.Collision
Section 12
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_bounds:Array; public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; public var m_freeProxy:uint; public var m_proxyCount:int; public var m_proxyPool:Array; public var m_queryResultCount:int; public var m_pairManager:b2PairManager; public var m_timeStamp:uint; public var m_queryResults:Array; public static const b2_nullEdge:uint = b2Settings.USHRT_MAX; public static const b2_invalid:uint = b2Settings.USHRT_MAX; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; var _local4:Number = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); _local3 = 0; while (_local3 < (b2Settings.b2_maxProxies - 1)) { _local6 = new b2Proxy(); m_proxyPool[_local3] = _local6; _local6.SetNext((_local3 + 1)); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; _local3++; }; _local6 = new b2Proxy(); m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local6:uint; var _local7:uint; var _local12:b2Proxy; var _local4:Array = new Array(); var _local5:Array = new Array(); ComputeBounds(_local4, _local5, _arg1); var _local8:Array = [_local6]; var _local9:Array = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); var _local10:int; var _local11:int; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Commit():void{ m_pairManager.Commit(); } public function GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy = m_proxyPool[_arg1]; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){ return (null); }; return (_local2); } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { (m_proxyPool[_local1] as b2Proxy).timeStamp = 0; _local1++; }; m_timeStamp = 1; } else { m_timeStamp++; }; } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local10:b2Bound; var _local12:int; var _local13:int; var _local14:b2Proxy; var _local8:uint = BinarySearch(_arg5, _arg6, _arg3); var _local9:uint = BinarySearch(_arg5, _arg6, _arg4); var _local11:uint = _local8; while (_local11 < _local9) { _local10 = _arg5[_local11]; if (_local10.IsLower()){ IncrementOverlapCount(_local10.proxyId); }; _local11++; }; if (_local8 > 0){ _local12 = (_local8 - 1); _local10 = _arg5[_local12]; _local13 = _local10.stabbingCount; while (_local13) { _local10 = _arg5[_local12]; if (_local10.IsLower()){ _local14 = m_proxyPool[_local10.proxyId]; if (_local8 <= _local14.upperBounds[_arg7]){ IncrementOverlapCount(_local10.proxyId); _local13--; }; }; _local12--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number = _arg3.lowerBound.x; var _local5:Number = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); var _local6:Number = _arg3.upperBound.x; var _local7:Number = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:b2Bound; var _local22:int; var _local23:b2Proxy; var _local5:uint = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; var _local6:uint = (2 * m_proxyCount); var _local7:Array = new Array(); var _local8:Array = new Array(); ComputeBounds(_local7, _local8, _arg1); var _local9:int; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local13 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local16 = new Array(); _local18 = (_local13 - _local12); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local12 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local19 = _local11[_local12]; _local20 = _local11[_local13]; _local19.value = _local7[_local9]; _local19.proxyId = _local5; _local20.value = _local8[_local9]; _local20.proxyId = _local5; _local21 = _local11[int((_local12 - 1))]; _local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount; _local21 = _local11[int((_local13 - 1))]; _local20.stabbingCount = _local21.stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local21 = _local11[_local3]; _local21.stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local19 = _local11[_local3]; _local23 = m_proxyPool[_local19.proxyId]; if (_local19.IsLower()){ _local23.lowerBounds[_local9] = _local3; } else { _local23.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; var _local10:int; while (_local10 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]); _local10++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local5); } public function DestroyProxy(_arg1:uint):void{ var _local2:b2Bound; var _local3:b2Bound; var _local8:Array; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:int; var _local15:int; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; var _local4:b2Proxy = m_proxyPool[_arg1]; var _local5:int = (2 * m_proxyCount); var _local6:int; while (_local6 < 2) { _local8 = m_bounds[_local6]; _local9 = _local4.lowerBounds[_local6]; _local10 = _local4.upperBounds[_local6]; _local2 = _local8[_local9]; _local11 = _local2.value; _local3 = _local8[_local10]; _local12 = _local3.value; _local13 = new Array(); _local15 = ((_local10 - _local9) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local9 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = _local9; _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local13 = new Array(); _local15 = ((_local5 - _local10) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local10 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = (_local10 - 1); _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = (_local5 - 2); _local17 = _local9; while (_local17 < _local15) { _local2 = _local8[_local17]; _local19 = m_proxyPool[_local2.proxyId]; if (_local2.IsLower()){ _local19.lowerBounds[_local6] = _local17; } else { _local19.upperBounds[_local6] = _local17; }; _local17++; }; _local15 = (_local10 - 1); _local18 = _local9; while (_local18 < _local15) { _local2 = _local8[_local18]; _local2.stabbingCount--; _local18++; }; Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6); _local6++; }; var _local7:int; while (_local7 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]); _local7++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local4.userData = null; _local4.overlapCount = b2_invalid; _local4.lowerBounds[0] = b2_invalid; _local4.lowerBounds[1] = b2_invalid; _local4.upperBounds[0] = b2_invalid; _local4.upperBounds[1] = b2_invalid; _local4.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg2.upperBounds[_local3]]; if (_arg1.lowerValues[_local3] > _local5.value){ return (false); }; _local5 = _local4[_arg2.lowerBounds[_local3]]; if (_arg1.upperValues[_local3] < _local5.value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local5:int; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } public function InRange(_arg1:b2AABB):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = _arg1.lowerBound.x; _local3 = _arg1.lowerBound.y; _local2 = (_local2 - m_worldAABB.upperBound.x); _local3 = (_local3 - m_worldAABB.upperBound.y); _local4 = m_worldAABB.lowerBound.x; _local5 = m_worldAABB.lowerBound.y; _local4 = (_local4 - _arg1.upperBound.x); _local5 = (_local5 - _arg1.upperBound.y); _local2 = b2Math.b2Max(_local2, _local4); _local3 = b2Math.b2Max(_local3, _local5); return ((b2Math.b2Max(_local2, _local3) < 0)); } public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{ var _local3:Array; var _local4:int; var _local5:uint; var _local6:uint; var _local7:b2Bound; var _local8:b2Bound; var _local9:b2Bound; var _local10:uint; var _local11:b2Proxy; var _local16:Array; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:uint; var _local21:int; var _local22:int; var _local23:uint; var _local24:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; var _local12:uint = (2 * m_proxyCount); var _local13:b2Proxy = m_proxyPool[_arg1]; var _local14:b2BoundValues = new b2BoundValues(); ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2); var _local15:b2BoundValues = new b2BoundValues(); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5][_local13.lowerBounds[_local5]]; _local15.lowerValues[_local5] = _local7.value; _local7 = m_bounds[_local5][_local13.upperBounds[_local5]]; _local15.upperValues[_local5] = _local7.value; _local5++; }; _local5 = 0; while (_local5 < 2) { _local16 = m_bounds[_local5]; _local17 = _local13.lowerBounds[_local5]; _local18 = _local13.upperBounds[_local5]; _local19 = _local14.lowerValues[_local5]; _local20 = _local14.upperValues[_local5]; _local7 = _local16[_local17]; _local21 = (_local19 - _local7.value); _local7.value = _local19; _local7 = _local16[_local18]; _local22 = (_local20 - _local7.value); _local7.value = _local20; if (_local21 < 0){ _local6 = _local17; while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local8.proxyId]; _local8.stabbingCount++; if (_local8.IsUpper() == true){ if (TestOverlap(_local14, _local24)){ m_pairManager.AddBufferedPair(_arg1, _local23); }; _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; if (_local22 > 0){ _local6 = _local18; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount++; if (_local9.IsLower() == true){ if (TestOverlap(_local14, _local11)){ m_pairManager.AddBufferedPair(_arg1, _local10); }; _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local21 > 0){ _local6 = _local17; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount--; if (_local9.IsUpper()){ if (TestOverlap(_local15, _local11)){ m_pairManager.RemoveBufferedPair(_arg1, _local10); }; _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local22 < 0){ _local6 = _local18; while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local23]; _local8.stabbingCount--; if (_local8.IsLower() == true){ if (TestOverlap(_local15, _local24)){ m_pairManager.RemoveBufferedPair(_arg1, _local23); }; _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; _local5++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local6:int; var _local7:b2Bound; var _local4:int; var _local5:int = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); _local7 = _arg1[_local6]; if (_local7.value > _arg3){ _local5 = (_local6 - 1); } else { if (_local7.value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.Collision
Section 13
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 14
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local11:b2Mat22; var _local12:b2Vec2; var _local25:Number; var _local6:int = _arg1.m_vertexCount; var _local7:Array = _arg1.m_vertices; var _local8:Array = _arg1.m_normals; var _local9:int = _arg4.m_vertexCount; var _local10:Array = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; var _local13:Number = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); var _local14:Number = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; var _local15:Number = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); var _local16:Number = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; var _local20:Number = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local21:Number = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; var _local22:Number = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local23:Number = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); var _local24:Number = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2 = _arg2.lowerBound; var _local4:b2Vec2 = _arg1.upperBound; var _local5:Number = (_local3.x - _local4.x); var _local6:Number = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; var _local7:Number = (_local3.x - _local4.x); var _local8:Number = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local12:b2Mat22; var _local13:b2Vec2; var _local20:ClipVertex; var _local23:Number; var _local7:int = _arg2.m_vertexCount; var _local8:Array = _arg2.m_normals; var _local9:int = _arg5.m_vertexCount; var _local10:Array = _arg5.m_vertices; var _local11:Array = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; var _local14:Number = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); var _local15:Number = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; var _local16:Number = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; var _local21:int = _local17; var _local22:int = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local17:int; var _local18:uint; var _local34:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; var _local7:int; var _local8:Array = [_local7]; var _local9:Number = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; var _local10:int; var _local11:Array = [_local10]; var _local12:Number = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; var _local15:b2XForm = new b2XForm(); var _local16:b2XForm = new b2XForm(); var _local19:Number = 0.98; var _local20:Number = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; var _local21:Array = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); var _local22:int = _local13.m_vertexCount; var _local23:Array = _local13.m_vertices; var _local24:b2Vec2 = _local23[_local17]; var _local25:b2Vec2 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; var _local26:b2Vec2 = b2Math.SubtractVV(_local37, _local25); var _local27:b2Vec2 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); var _local28:b2Vec2 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); var _local29:Number = b2Math.b2Dot(_local28, _local25); var _local30:Number = -(b2Math.b2Dot(_local27, _local25)); var _local31:Number = b2Math.b2Dot(_local27, _local37); var _local32:Array = [new ClipVertex(), new ClipVertex()]; var _local33:Array = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); var _local35:int; var _local36:int; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local8:b2Vec2; var _local9:b2Mat22; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; var _local6:int = _arg2.m_vertexCount; var _local7:Array = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; var _local10:Number = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); var _local11:Number = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); var _local12:Number = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); var _local13:Number = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); var _local14:int; var _local15:Number = -(Number.MAX_VALUE); var _local16:int; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; var _local17:Number = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; var _local18:int = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); var _local19:Number = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; var _local20:int = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; var _local21:Number = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); var _local10:Number = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local18:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; var _local8:Number = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local9:Number = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; var _local10:Number = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local11:Number = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); var _local12:Number = (_local10 - _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local15:Number = _arg2.m_radius; var _local16:Number = _arg4.m_radius; var _local17:Number = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; var _local19:b2ManifoldPoint = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); var _local20:Number = (0.5 * (_local8 + _local10)); var _local21:Number = (0.5 * (_local9 + _local11)); var _local22:Number = (_local20 - _arg3.position.x); var _local23:Number = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local17:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; var _local13:Number = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); var _local14:Number = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; var _local15:Number = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); var _local16:Number = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); var _local18:int; var _local19:Number = -(Number.MAX_VALUE); var _local20:Number = _arg4.m_radius; var _local21:int = _arg2.m_vertexCount; var _local22:Array = _arg2.m_vertices; var _local23:Array = _arg2.m_normals; var _local24:int; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; var _local25:int = _local18; var _local26:int = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; var _local27:b2Vec2 = _local22[_local26]; var _local28:Number = (_local27.x - _local11.x); var _local29:Number = (_local27.y - _local11.y); var _local30:Number = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); var _local31:Number = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } } }//package Box2D.Collision
Section 15
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var _key:uint; public var features:Features; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID = new b2ContactID(); _local1.key = key; return (_local1); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } public function get key():uint{ return (_key); } } }//package Box2D.Collision
Section 16
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2ContactPoint { public var friction:Number; public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var restitution:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public var velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 17
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local4:Number = (100 * Number.MIN_VALUE); var _local5:int; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; var _local8:Array = s_p1s; var _local9:Array = s_p2s; var _local10:Array = s_points; var _local11:int; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); var _local12:Number = 0; var _local13 = 20; var _local14:int; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - _local21) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; var _local9:Number = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local10:Number = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; var _local11:Number = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local12:Number = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:Number = ((_local13 * _local13) + (_local14 * _local14)); var _local16:Number = (_arg3.m_radius - b2Settings.b2_toiSlop); var _local17:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); var _local18:Number = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local35:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; var _local14:b2Vec2 = _arg4[2]; var _local15:Number = _local6.x; var _local16:Number = _local6.y; var _local17:Number = _local7.x; var _local18:Number = _local7.y; var _local19:Number = _local8.x; var _local20:Number = _local8.y; var _local21:Number = (_local17 - _local15); var _local22:Number = (_local18 - _local16); var _local23:Number = (_local19 - _local15); var _local24:Number = (_local20 - _local16); var _local25:Number = (_local19 - _local17); var _local26:Number = (_local20 - _local18); var _local27:Number = -(((_local15 * _local21) + (_local16 * _local22))); var _local28:Number = ((_local17 * _local21) + (_local18 * _local22)); var _local29:Number = -(((_local15 * _local23) + (_local16 * _local24))); var _local30:Number = ((_local19 * _local23) + (_local20 * _local24)); var _local31:Number = -(((_local17 * _local25) + (_local18 * _local26))); var _local32:Number = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; var _local33:Number = ((_local21 * _local24) - (_local22 * _local23)); var _local34:Number = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); var _local36:Number = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; var _local37:Number = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; var _local38:Number = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); var _local39:Number = (_local36 * _local38); var _local40:Number = (_local37 * _local38); var _local41:Number = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local9:b2Point = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local10:Number = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); var _local11:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int = _arg3.m_type; var _local8:int = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local17:Number; var _local6:b2Vec2 = _arg5[0]; var _local7:b2Vec2 = _arg5[1]; var _local8:b2Vec2 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; var _local12:Number = -(_local7.x); var _local13:Number = -(_local7.y); var _local14:Number = (_local6.x - _local7.x); var _local15:Number = (_local6.y - _local7.y); var _local16:Number = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } }//package Box2D.Collision
Section 18
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var pointCount:int;// = 0 public var normal:b2Vec2; public var points:Array; public function b2Manifold(){ points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ pointCount = _arg1.pointCount; var _local2:int; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } public function Reset():void{ var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 19
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var separation:Number; public var localPoint2:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var localPoint1:b2Vec2; public var id:b2ContactID; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } public function Set(_arg1:b2ManifoldPoint):void{ localPoint1.SetV(_arg1.localPoint1); localPoint2.SetV(_arg1.localPoint2); separation = _arg1.separation; normalImpulse = _arg1.normalImpulse; tangentImpulse = _arg1.tangentImpulse; id.key = _arg1.id.key; } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalImpulse = 0; tangentImpulse = 0; id.key = 0; } } }//package Box2D.Collision
Section 20
//b2OBB (Box2D.Collision.b2OBB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2OBB { public var R:b2Mat22; public var center:b2Vec2; public var extents:b2Vec2; public function b2OBB(){ R = new b2Mat22(); center = new b2Vec2(); extents = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 21
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var proxyId1:uint; public var userData;// = null public var proxyId2:uint; public var status:uint; public var next:uint; public static var e_pairFinal:uint = 4; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairRemoved:uint = 2; public static var b2_nullPair:uint = b2Settings.USHRT_MAX; public static var e_pairBuffered:uint = 1; public static var b2_nullProxy:uint = b2Settings.USHRT_MAX; public static var b2_tableCapacity:int = b2Settings.b2_maxPairs; public function SetBuffered():void{ status = (status | e_pairBuffered); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } } }//package Box2D.Collision
Section 22
//b2PairCallback (Box2D.Collision.b2PairCallback) package Box2D.Collision { public class b2PairCallback { public function PairRemoved(_arg1, _arg2, _arg3):void{ } public function PairAdded(_arg1, _arg2){ return (null); } } }//package Box2D.Collision
Section 23
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PairManager { public var m_pairCount:int; public var m_pairBuffer:Array; public var m_hashTable:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_broadPhase:b2BroadPhase; public var m_freePair:uint; public function b2PairManager(){ var _local1:uint; super(); m_hashTable = new Array(b2Pair.b2_tableCapacity); _local1 = 0; while (_local1 < b2Pair.b2_tableCapacity) { m_hashTable[_local1] = b2Pair.b2_nullPair; _local1++; }; m_pairs = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1] = new b2Pair(); _local1++; }; m_pairBuffer = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairBuffer[_local1] = new b2BufferedPair(); _local1++; }; _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy; m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy; m_pairs[_local1].userData = null; m_pairs[_local1].status = 0; m_pairs[_local1].next = (_local1 + 1); _local1++; }; m_pairs[int((b2Settings.b2_maxPairs - 1))].next = b2Pair.b2_nullPair; m_pairCount = 0; m_pairBufferCount = 0; } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:b2Pair; var _local5:uint = m_hashTable[_arg3]; _local4 = m_pairs[_local5]; while (((!((_local5 == b2Pair.b2_nullPair))) && ((Equals(_local4, _arg1, _arg2) == false)))) { _local5 = _local4.next; _local4 = m_pairs[_local5]; }; if (_local5 == b2Pair.b2_nullPair){ return (null); }; return (_local4); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; var _local3:int; var _local4:Array = m_broadPhase.m_proxyPool; _local2 = 0; while (_local2 < m_pairBufferCount) { _local1 = m_pairBuffer[_local2]; _local5 = Find(_local1.proxyId1, _local1.proxyId2); _local5.ClearBuffered(); _local6 = _local4[_local5.proxyId1]; _local7 = _local4[_local5.proxyId2]; if (_local5.IsRemoved()){ if (_local5.IsFinal() == true){ m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData); }; _local1 = m_pairBuffer[_local3]; _local1.proxyId1 = _local5.proxyId1; _local1.proxyId2 = _local5.proxyId2; _local3++; } else { if (_local5.IsFinal() == false){ _local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData); _local5.SetFinal(); }; }; _local2++; }; _local2 = 0; while (_local2 < _local3) { _local1 = m_pairBuffer[_local2]; RemovePair(_local1.proxyId1, _local1.proxyId2); _local2++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = Find(_arg1, _arg2); if (_local4 == null){ return; }; if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; var _local4:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local5:uint = m_hashTable[_local4]; var _local6:b2Pair; while (_local5 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local5], _arg1, _arg2)){ _local8 = _local5; _local3 = m_pairs[_local5]; if (_local6){ _local6.next = _local3.next; } else { m_hashTable[_local4] = _local3.next; }; _local3 = m_pairs[_local8]; _local9 = _local3.userData; _local3.next = m_freePair; _local3.proxyId1 = b2Pair.b2_nullProxy; _local3.proxyId2 = b2Pair.b2_nullProxy; _local3.userData = null; _local3.status = 0; m_freePair = _local8; m_pairCount--; return (_local9); } else { _local6 = m_pairs[_local5]; _local5 = _local6.next; }; }; return (null); } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = AddPair(_arg1, _arg2); if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; var _local5:uint = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function ValidateTable():void{ } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } public static function Hash(_arg1:uint, _arg2:uint):uint{ var _local3:uint = (((_arg2 << 16) & 4294901760) | _arg1); _local3 = (~(_local3) + ((_local3 << 15) & 4294934528)); _local3 = (_local3 ^ ((_local3 >> 12) & 1048575)); _local3 = (_local3 + ((_local3 << 2) & 4294967292)); _local3 = (_local3 ^ ((_local3 >> 4) & 268435455)); _local3 = (_local3 * 2057); _local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF)); return (_local3); } public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{ return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3)))); } } }//package Box2D.Collision
Section 24
//b2Point (Box2D.Collision.b2Point) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Point { public var p:b2Vec2; public function b2Point(){ p = new b2Vec2(); super(); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 25
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var userData;// = null public var lowerBounds:Array; public var upperBounds:Array; public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } } }//package Box2D.Collision
Section 26
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local5:b2Vec2 = _arg3.p1; var _local6:Number = (_arg3.p2.x - _local5.x); var _local7:Number = (_arg3.p2.y - _local5.y); var _local8:Number = (p2.x - p1.x); var _local9:Number = (p2.y - p1.y); var _local10:Number = _local9; var _local11:Number = -(_local8); var _local12:Number = (100 * Number.MIN_VALUE); var _local13:Number = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local6) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.Collision
Section 27
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local7:Number = _arg1.m_sweepRadius; var _local8:Number = _arg3.m_sweepRadius; var _local9:Number = _arg2.t0; var _local10:Number = (_arg2.c.x - _arg2.c0.x); var _local11:Number = (_arg2.c.y - _arg2.c0.y); var _local12:Number = (_arg4.c.x - _arg4.c0.x); var _local13:Number = (_arg4.c.y - _arg4.c0.y); var _local14:Number = (_arg2.a - _arg2.a0); var _local15:Number = (_arg4.a - _arg4.a0); var _local16:Number = 0; var _local17:b2Vec2 = s_p1; var _local18:b2Vec2 = s_p2; var _local19 = 20; var _local20:int; var _local21:Number = 0; var _local22:Number = 0; var _local23:Number = 0; var _local24:Number = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } }//package Box2D.Collision
Section 28
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var id:b2ContactID; public var v:b2Vec2; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 29
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceEdge:int; public var _incidentEdge:int; public var _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get flip():int{ return (_flip); } public function get incidentEdge():int{ return (_incidentEdge); } public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.Collision
Section 30
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { import Box2D.Common.*; public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function Set(_arg1:Number):void{ var _local2:Number; _local2 = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local4:Number; var _local6:Number; _local2 = col1.x; var _local3:Number = col2.x; _local4 = col1.y; var _local5:Number = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number = col1.x; var _local5:Number = col2.x; var _local6:Number = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 31
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = b2MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:* = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); var _local4:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); var _local5:b2Mat22 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } }//package Box2D.Common.Math
Section 32
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { import Box2D.Common.*; public class b2Sweep { public var localCenter:b2Vec2; public var a:Number; public var c:b2Vec2; public var a0:Number; public var c0:b2Vec2; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ var _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; var _local3:b2Mat22 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } }//package Box2D.Common.Math
Section 33
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { import Box2D.Common.*; public class b2Vec2 { public var y:Number; public var x:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function MulM(_arg1:b2Mat22):void{ var _local2:Number = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function SetZero():void{ x = 0; y = 0; } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function Normalize():Number{ var _local1:Number = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; var _local2:Number = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function CrossVF(_arg1:Number):void{ var _local2:Number = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function CrossFV(_arg1:Number):void{ var _local2:Number = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 34
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { import Box2D.Common.*; public class b2XForm { public var position:b2Vec2; public var R:b2Mat22; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } } }//package Box2D.Common.Math
Section 35
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _r:uint;// = 0 private var _g:uint;// = 0 private var _b:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function get color():uint{ return (((_r | (_g << 8)) | (_b << 16))); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } } }//package Box2D.Common
Section 36
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const b2_angularSleepTolerance:Number = 0.0111111111111111; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_angularSlop:Number = 0.0349065850398866; public static const b2_linearSlop:Number = 0.005; public static const b2_pi:Number = 3.14159265358979; public static const b2_maxProxies:int = 0x0200; public static const b2_maxAngularVelocitySquared:Number = 62500; public static const b2_maxPolygonVertices:int = 8; public static const b2_velocityThreshold:Number = 1; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_maxPairs:int = 4096; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_timeToSleep:Number = 0.5; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxAngularVelocity:Number = 250; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const USHRT_MAX:int = 0xFFFF; public static const b2_maxLinearVelocity:Number = 200; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_toiSlop:Number = 0.04; public static const b2_maxLinearVelocitySquared:Number = 40000; public static function b2Assert(_arg1:Boolean):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 37
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local8:b2ManifoldPoint; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); var _local7:b2ContactPoint = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 38
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Contact { public var m_shape1:b2Shape; public var m_shape2:b2Shape; public var m_prev:b2Contact; public var m_toi:Number; public var m_next:b2Contact; public var m_friction:Number; public var m_manifoldCount:int; public var m_node1:b2ContactEdge; public var m_node2:b2ContactEdge; public var m_restitution:Number; public var m_flags:uint; public static var e_toiFlag:uint = 8; public static var e_nonSolidFlag:uint = 1; public static var e_slowFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var s_registers:Array; public static var s_initialized:Boolean = false; public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){ m_node1 = new b2ContactEdge(); m_node2 = new b2ContactEdge(); super(); m_flags = 0; if (((!(_arg1)) || (!(_arg2)))){ m_shape1 = null; m_shape2 = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_nonSolidFlag); }; m_shape1 = _arg1; m_shape2 = _arg2; m_manifoldCount = 0; m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction)); m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution); m_prev = null; m_next = null; m_node1.contact = null; m_node1.prev = null; m_node1.next = null; m_node1.other = null; m_node2.contact = null; m_node2.prev = null; m_node2.next = null; m_node2.other = null; } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetShape1():b2Shape{ return (m_shape1); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetNext():b2Contact{ return (m_next); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function GetManifolds():Array{ return (null); } public function Update(_arg1:b2ContactListener):void{ var _local2:int = m_manifoldCount; Evaluate(_arg1); var _local3:int = m_manifoldCount; var _local4:b2Body = m_shape1.m_body; var _local5:b2Body = m_shape2.m_body; if ((((_local3 == 0)) && ((_local2 > 0)))){ _local4.WakeUp(); _local5.WakeUp(); }; if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } public function Evaluate(_arg1:b2ContactListener):void{ } public static function InitializeRegisters():void{ var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); var _local1:int; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); } public static function Destroy(_arg1:b2Contact, _arg2):void{ if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; var _local3:int = _arg1.m_shape1.m_type; var _local4:int = _arg1.m_shape2.m_type; var _local5:b2ContactRegister = s_registers[_local3][_local4]; var _local6:Function = _local5.destroyFcn; _local6(_arg1, _arg2); } public static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; var _local4:int = _arg1.m_type; var _local5:int = _arg2.m_type; var _local6:b2ContactRegister = s_registers[_local4][_local5]; var _local7:Function = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 39
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var normal:b2Vec2; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 40
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var r2:b2Vec2; public var separation:Number; public var positionImpulse:Number; public var normalImpulse:Number; public var tangentMass:Number; public var equalizedMass:Number; public var tangentImpulse:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var normalMass:Number; public var velocityBias:Number; public var r1:b2Vec2; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 41
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var other:b2Body; public var prev:b2ContactEdge; public var contact:b2Contact; public var next:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 42
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn:Function; public var destroyFcn:Function; } }//package Box2D.Dynamics.Contacts
Section 43
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; public class b2ContactResult { public var position:b2Vec2; public var shape1:b2Shape; public var shape2:b2Shape; public var normalImpulse:Number; public var normal:b2Vec2; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ContactResult(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Dynamics.Contacts
Section 44
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactSolver { public var m_constraintCount:int; public var m_constraints:Array; public var m_allocator; public var m_step:b2TimeStep; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local10:b2Body; var _local11:b2Body; var _local12:int; var _local13:Array; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; var _local23:b2Manifold; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraint; var _local27:uint; var _local28:b2ManifoldPoint; var _local29:b2ContactConstraintPoint; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; m_step = new b2TimeStep(); m_constraints = new Array(); super(); m_step.dt = _arg1.dt; m_step.inv_dt = _arg1.inv_dt; m_step.maxIterations = _arg1.maxIterations; m_allocator = _arg4; m_constraintCount = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; m_constraintCount = (m_constraintCount + _local5.m_manifoldCount); _local6++; }; _local6 = 0; while (_local6 < m_constraintCount) { m_constraints[_local6] = new b2ContactConstraint(); _local6++; }; var _local9:int; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1.m_body; _local11 = _local5.m_shape2.m_body; _local12 = _local5.m_manifoldCount; _local13 = _local5.GetManifolds(); _local14 = _local5.m_friction; _local15 = _local5.m_restitution; _local16 = _local10.m_linearVelocity.x; _local17 = _local10.m_linearVelocity.y; _local18 = _local11.m_linearVelocity.x; _local19 = _local11.m_linearVelocity.y; _local20 = _local10.m_angularVelocity; _local21 = _local11.m_angularVelocity; _local22 = 0; while (_local22 < _local12) { _local23 = _local13[_local22]; _local24 = _local23.normal.x; _local25 = _local23.normal.y; _local26 = m_constraints[_local9]; _local26.body1 = _local10; _local26.body2 = _local11; _local26.manifold = _local23; _local26.normal.x = _local24; _local26.normal.y = _local25; _local26.pointCount = _local23.pointCount; _local26.friction = _local14; _local26.restitution = _local15; _local27 = 0; while (_local27 < _local26.pointCount) { _local28 = _local23.points[_local27]; _local29 = _local26.points[_local27]; _local29.normalImpulse = _local28.normalImpulse; _local29.tangentImpulse = _local28.tangentImpulse; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local8 = _local10.m_xf.R; _local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x); _local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33)); _local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33)); _local32 = _local30; _local29.r1.Set(_local32, _local33); _local8 = _local11.m_xf.R; _local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x); _local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local30; _local29.r2.Set(_local34, _local35); _local36 = ((_local32 * _local32) + (_local33 * _local33)); _local37 = ((_local34 * _local34) + (_local35 * _local35)); _local38 = ((_local32 * _local24) + (_local33 * _local25)); _local39 = ((_local34 * _local24) + (_local35 * _local25)); _local40 = (_local10.m_invMass + _local11.m_invMass); _local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39))))); _local29.normalMass = (1 / _local40); _local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass)); _local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39))))); _local29.equalizedMass = (1 / _local41); _local42 = _local25; _local43 = -(_local24); _local44 = ((_local32 * _local42) + (_local33 * _local43)); _local45 = ((_local34 * _local42) + (_local35 * _local43)); _local46 = (_local10.m_invMass + _local11.m_invMass); _local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45))))); _local29.tangentMass = (1 / _local46); _local29.velocityBias = 0; if (_local29.separation > 0){ _local29.velocityBias = (-60 * _local29.separation); }; _local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33)); _local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32)); _local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47)); }; _local27++; }; _local9++; _local22++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local3:b2Mat22; var _local4:b2Vec2; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local2:Number = 0; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Mat22; var _local18:b2Vec2; var _local20:b2ContactConstraint; var _local21:b2Body; var _local22:b2Body; var _local23:Number; var _local24:Number; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:int; var _local38:Number; var _local19:int; while (_local19 < m_constraintCount) { _local20 = m_constraints[_local19]; _local21 = _local20.body1; _local22 = _local20.body2; _local23 = _local21.m_angularVelocity; _local24 = _local22.m_angularVelocity; _local25 = _local21.m_linearVelocity; _local26 = _local22.m_linearVelocity; _local27 = _local21.m_invMass; _local28 = _local21.m_invI; _local29 = _local22.m_invMass; _local30 = _local22.m_invI; _local31 = _local20.normal.x; _local32 = _local20.normal.y; _local33 = _local32; _local34 = -(_local31); _local35 = _local20.friction; _local37 = _local20.pointCount; _local1 = 0; while (_local1 < _local37) { _local2 = _local20.points[_local1]; _local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y)); _local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x)); _local9 = ((_local7 * _local31) + (_local8 * _local32)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local10 = ((_local7 * _local33) + (_local8 * _local34)); _local12 = (_local2.tangentMass * -(_local10)); _local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0); _local11 = (_local13 - _local2.normalImpulse); _local38 = (_local35 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38); _local12 = (_local14 - _local2.tangentImpulse); _local15 = ((_local11 * _local31) + (_local12 * _local33)); _local16 = ((_local11 * _local32) + (_local12 * _local34)); _local25.x = (_local25.x - (_local27 * _local15)); _local25.y = (_local25.y - (_local27 * _local16)); _local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local26.x = (_local26.x + (_local29 * _local15)); _local26.y = (_local26.y + (_local29 * _local16)); _local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.normalImpulse = _local13; _local2.tangentImpulse = _local14; _local1++; }; _local21.m_angularVelocity = _local23; _local22.m_angularVelocity = _local24; _local19++; }; } public function FinalizeVelocityConstraints():void{ var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; var _local1:int; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 45
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function Evaluate(_arg1:b2ContactListener):void{ } override public function GetManifolds():Array{ return (null); } } }//package Box2D.Dynamics.Contacts
Section 46
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local6:b2Body = m_shape1.m_body; var _local7:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); var _local8:Array = [false, false]; var _local9:b2ContactPoint = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 47
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local7:b2ContactPoint; var _local8:int; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); var _local9:Array = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local9[_local13] == true){ } else { _local4 = m0.points[_local13]; if (_local4.id._key == _local12){ _local9[_local13] = true; _local10.normalImpulse = _local4.normalImpulse; _local10.tangentImpulse = _local4.tangentImpulse; _local11 = true; if (_arg1 != null){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Persist(_local7); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Add(_local7); }; _local8++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local8 = 0; while (_local8 < m0.pointCount) { if (_local9[_local8]){ } else { _local4 = m0.points[_local8]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; _local8++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 48
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_bias:Number; public var m_gamma:Number; public var m_u:b2Vec2; public var m_mass:Number; public var m_impulse:Number; public var m_dampingRatio:Number; public var m_frequencyHz:Number; public var m_length:Number; public function b2DistanceJoint(_arg1:b2DistanceJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; m_inv_dt = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local8:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; m_inv_dt = _arg1.inv_dt; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); var _local10:Number = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; var _local11:Number = ((_local6 * m_u.y) - (_local7 * m_u.x)); var _local12:Number = ((_local8 * m_u.y) - (_local9 * m_u.x)); var _local13:Number = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; if (m_frequencyHz > 0){ return (true); }; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local1 = _local2.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; var _local9:Number = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); var _local10:Number = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); var _local11:Number = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); var _local12:Number = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local13:Number = (-(m_mass) * _local12); m_u.Set(_local9, _local10); var _local14:Number = (_local13 * m_u.x); var _local15:Number = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; _local2 = _local3.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local7:Number = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); var _local11:Number = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); var _local12:Number = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); var _local13:Number = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); var _local14:Number = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); var _local15:Number = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); var _local16:Number = (_local15 * m_u.x); var _local17:Number = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } } }//package Box2D.Dynamics.Joints
Section 49
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2DistanceJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var length:Number; public var dampingRatio:Number; public var localAnchor2:b2Vec2; public var frequencyHz:Number; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); var _local5:Number = (_arg4.x - _arg3.x); var _local6:Number = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.Joints
Section 50
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_ground2:b2Body; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_ratio:Number; public var m_revolute2:b2RevoluteJoint; public var m_force:Number; public var m_mass:Number; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_revolute1:b2RevoluteJoint; public var m_prismatic1:b2PrismaticJoint; public var m_constant:Number; public var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); var _local2:int = _arg1.joint1.m_type; var _local3:int = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.m_body1; m_body1 = _arg1.joint1.m_body2; if (_local2 == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local4 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local4 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_local3 == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local5 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local5 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local4 + (m_ratio * _local5)); m_force = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local15:Number; var _local2:b2Body = m_ground1; var _local3:b2Body = m_ground2; var _local4:b2Body = m_body1; var _local5:b2Body = m_body2; var _local14:Number = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ var _local1:b2Mat22 = m_body2.m_xf.R; var _local2:Number = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); var _local3:Number = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); var _local4:Number = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local4:Number; var _local5:Number; var _local1:Number = 0; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; var _local6:Number = (m_constant - (_local4 + (m_ratio * _local5))); var _local7:Number = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local5:Number = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); var _local6:Number = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } } }//package Box2D.Dynamics.Joints
Section 51
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2GearJointDef extends b2JointDef { public var joint1:b2Joint; public var joint2:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 52
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var linear2:b2Vec2; public var angular1:Number; public var angular2:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 53
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2Joint { public var m_islandFlag:Boolean; public var m_body1:b2Body; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_type:int; public var m_collideConnected:Boolean; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_inv_dt:Number; public var m_userData; public var m_body2:b2Body; public static const e_unknownJoint:int = 0; public static const e_inactiveLimit:int = 0; public static const e_atUpperLimit:int = 2; public static const e_atLowerLimit:int = 1; public static const e_gearJoint:int = 6; public static const e_revoluteJoint:int = 1; public static const e_equalLimits:int = 3; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_prismaticJoint:int = 2; public static const e_mouseJoint:int = 5; public function b2Joint(_arg1:b2JointDef){ m_node1 = new b2JointEdge(); m_node2 = new b2JointEdge(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetBody2():b2Body{ return (m_body2); } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function GetNext():b2Joint{ return (m_next); } public function GetType():int{ return (m_type); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetReactionTorque():Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce():b2Vec2{ return (null); } public function SolvePositionConstraints():Boolean{ return (false); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetBody1():b2Body{ return (m_body1); } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public static function Destroy(_arg1:b2Joint, _arg2):void{ } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } } }//package Box2D.Dynamics.Joints
Section 54
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2JointDef { public var body2:b2Body; public var type:int; public var userData; public var collideConnected:Boolean; public var body1:b2Body; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 55
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; public var joint:b2Joint; } }//package Box2D.Dynamics.Joints
Section 56
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { private var K1:b2Mat22; private var K:b2Mat22; public var m_beta:Number; public var m_mass:b2Mat22; private var K2:b2Mat22; public var m_target:b2Vec2; public var m_gamma:Number; public var m_impulse:b2Vec2; public var m_C:b2Vec2; public var m_localAnchor:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local3:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); var _local2:Number = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); var _local4:b2Mat22 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); var _local5:Number = m_body2.m_mass; var _local6:Number = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); var _local7:Number = (((2 * _local5) * _arg1.dampingRatio) * _local6); var _local8:Number = ((_arg1.timeStep * _local5) * (_local6 * _local6)); m_gamma = (1 / (_local7 + _local8)); m_beta = (_local8 / (_local7 + _local8)); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local7:Number; var _local8:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); var _local9:Number = (_arg1.dt * m_impulse.x); var _local10:Number = (_arg1.dt * m_impulse.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ return (m_impulse); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local2:b2Body = m_body2; _local3 = _local2.m_xf.R; var _local6:Number = (m_localAnchor.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; var _local8:Number = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); var _local9:Number = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y)); var _local10:Number = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); var _local11:Number = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); var _local12:Number = m_impulse.x; var _local13:Number = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); var _local14:Number = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); var _local15:Number = (_arg1.dt * _local10); var _local16:Number = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } } }//package Box2D.Dynamics.Joints
Section 57
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var timeStep:Number; public var target:b2Vec2; public var maxForce:Number; public var dampingRatio:Number; public var frequencyHz:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; timeStep = (1 / 60); } } }//package Box2D.Dynamics.Joints
Section 58
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { public var m_limitForce:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_refAngle:Number; public var m_torque:Number; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_angularMass:Number; public var m_maxMotorForce:Number; public var m_localYAxis1:b2Vec2; public var m_force:Number; public var m_motorMass:Number; public var m_upperTranslation:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitState:int; public var m_linearMass:Number; public var m_motorJacobian:b2Jacobian; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_enableMotor:Boolean; public var m_linearJacobian:b2Jacobian; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_linearJacobian = new b2Jacobian(); m_motorJacobian = new b2Jacobian(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_linearJacobian.SetZero(); m_linearMass = 0; m_force = 0; m_angularMass = 0; m_torque = 0; m_motorJacobian.SetZero(); m_motorMass = 0; m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerTranslation = _arg1.lowerTranslation; m_upperTranslation = _arg1.upperTranslation; m_maxMotorForce = _arg1.maxMotorForce; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local8:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = _local2.m_invMass; var _local5:Number = _local3.m_invMass; var _local6:Number = _local2.m_invI; var _local7:Number = _local3.m_invI; var _local9:Number = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local10:Number = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); var _local11:Number = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); var _local12:Number = (_local3.m_angularVelocity - _local2.m_angularVelocity); var _local13:Number = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); var _local14:Number = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22 = m_body1.m_xf.R; var _local2:Number = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); var _local3:Number = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); var _local4:Number = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); var _local5:Number = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local9:b2Mat22; var _local10:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = _local3.m_invMass; var _local6:Number = _local4.m_invMass; var _local7:Number = _local3.m_invI; var _local8:Number = _local4.m_invI; _local9 = _local3.m_xf.R; var _local11:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local12:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; var _local13:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local14:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; var _local15:Number = (_local3.m_sweep.c.x + _local11); var _local16:Number = (_local3.m_sweep.c.y + _local12); var _local17:Number = (_local4.m_sweep.c.x + _local13); var _local18:Number = (_local4.m_sweep.c.y + _local14); var _local19:Number = (_local17 - _local15); var _local20:Number = (_local18 - _local16); _local9 = _local3.m_xf.R; var _local21:Number = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); var _local22:Number = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); var _local23:Number = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local24:Number = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); var _local25:Number = b2Math.b2Abs(_local23); var _local26:Number = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); var _local27:Number = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local28:Number = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; _local4 = _local2.m_xf.R; var _local14:Number = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); var _local15:Number = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); var _local16:Number = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); var _local17:Number = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorForce():Number{ return (m_motorForce); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } } }//package Box2D.Dynamics.Joints
Section 59
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PrismaticJointDef extends b2JointDef { public var motorSpeed:Number; public var localAxis1:b2Vec2; public var referenceAngle:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var maxMotorForce:Number; public var lowerTranslation:Number; public function b2PrismaticJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxis1.Set(1, 0); referenceAngle = 0; enableLimit = false; lowerTranslation = 0; upperTranslation = 0; enableMotor = false; maxMotorForce = 0; motorSpeed = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 60
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_limitState1:int; public var m_limitState2:int; public var m_ground:b2Body; public var m_maxLength2:Number; public var m_maxLength1:Number; public var m_limitPositionImpulse1:Number; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_constant:Number; public var m_positionImpulse:Number; public var m_state:int; public var m_ratio:Number; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitMass1:Number; public var m_limitMass2:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_limitForce1:Number; public var m_limitForce2:Number; public var m_u2:b2Vec2; public static const b2_minPulleyLength:Number = 2; public function b2PulleyJoint(_arg1:b2PulleyJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u1 = new b2Vec2(); m_u2 = new b2Vec2(); super(_arg1); m_ground = m_body1.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_ratio = _arg1.ratio; m_constant = (_arg1.length1 + (m_ratio * _arg1.length2)); m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio)); m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local3:b2Mat22; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local5:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local6:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local7:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local23:Number = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u1.Set((_local12 - _local4), (_local13 - _local5)); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local16 = m_u1.Length(); _local17 = m_u2.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local16)); } else { m_u1.SetZero(); }; if (_local17 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local17)); } else { m_u2.SetZero(); }; _local18 = ((m_constant - _local16) - (m_ratio * _local17)); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_pulleyMass) * _local18); _local20 = m_positionImpulse; m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19)); _local19 = (m_positionImpulse - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local14 = ((-(m_ratio) * _local19) * m_u2.x); _local15 = ((-(m_ratio) * _local19) * m_u2.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.SynchronizeTransform(); _local2.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); m_u1.Set((_local12 - _local4), (_local13 - _local5)); _local16 = m_u1.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local16)); m_u1.y = (m_u1.y * (1 / _local16)); } else { m_u1.SetZero(); }; _local18 = (m_maxLength1 - _local16); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local21 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local21); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local2.m_sweep.c.x + _local5); var _local11:Number = (_local2.m_sweep.c.y + _local6); var _local12:Number = (_local3.m_sweep.c.x + _local8); var _local13:Number = (_local3.m_sweep.c.y + _local9); var _local14:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local15:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local16:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local17:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); var _local18:Number = m_u1.Length(); var _local19:Number = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; var _local20:Number = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; var _local21:Number = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); var _local22:Number = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function GetReactionTorque():Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } public function GetLength1():Number{ var _local1:b2Vec2 = m_body1.GetWorldPoint(m_localAnchor1); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetLength2():Number{ var _local1:b2Vec2 = m_body2.GetWorldPoint(m_localAnchor2); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.Joints
Section 61
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength1:Number; public var maxLength2:Number; public var length1:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var ratio:Number; public var length2:Number; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); var _local8:Number = (_arg5.x - _arg3.x); var _local9:Number = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); var _local10:Number = (_arg6.x - _arg4.x); var _local11:Number = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; var _local12:Number = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 62
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { public var m_limitForce:Number; public var m_pivotMass:b2Mat22; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_limitState:int; public var m_motorMass:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var K:b2Mat22; public var m_pivotForce:b2Vec2; public var m_enableMotor:Boolean; public var m_referenceAngle:Number; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_upperAngle:Number; public var m_lowerAngle:Number; public var m_maxMotorTorque:Number; public static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_pivotForce = new b2Vec2(); m_pivotMass = new b2Mat22(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_referenceAngle = _arg1.referenceAngle; m_pivotForce.Set(0, 0); m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerAngle = _arg1.lowerAngle; m_upperAngle = _arg1.upperAngle; m_maxMotorTorque = _arg1.maxMotorTorque; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local10:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local11:Number = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); var _local12:Number = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); var _local13:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); var _local14:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); var _local15:Number = (_arg1.dt * _local13); _local16 = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ return (m_pivotForce); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local6:b2Mat22; var _local25:Number; var _local26:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = 0; _local6 = _local3.m_xf.R; var _local7:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local9:Number = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; var _local10:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local11:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; var _local12:Number = (_local3.m_sweep.c.x + _local7); var _local13:Number = (_local3.m_sweep.c.y + _local8); var _local14:Number = (_local4.m_sweep.c.x + _local10); var _local15:Number = (_local4.m_sweep.c.y + _local11); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); var _local18:Number = _local3.m_invMass; var _local19:Number = _local4.m_invMass; var _local20:Number = _local3.m_invI; var _local21:Number = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); var _local22:Number = tImpulse.x; var _local23:Number = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local24:Number = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } public function GetMotorTorque():Number{ return (m_motorForce); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local7:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_limitForce); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } } }//package Box2D.Dynamics.Joints
Section 63
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2RevoluteJointDef extends b2JointDef { public var upperAngle:Number; public var enableMotor:Boolean; public var referenceAngle:Number; public var motorSpeed:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var lowerAngle:Number; public var maxMotorTorque:Number; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 64
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Body { public var m_next:b2Body; public var m_xf:b2XForm; public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var m_shapeList:b2Shape; public var m_force:b2Vec2; public var m_mass:Number; public var m_sweep:b2Sweep; public var m_torque:Number; public var m_userData; public var m_flags:uint; public var m_world:b2World; public var m_prev:b2Body; public var m_invMass:Number; public var m_type:int; public var m_linearDamping:Number; public var m_shapeCount:int; public var m_angularDamping:Number; public var m_invI:Number; public var m_linearVelocity:b2Vec2; public var m_sleepTime:Number; public var m_jointList:b2JointEdge; public var m_I:Number; public static var e_fixedRotationFlag:uint = 64; public static var e_frozenFlag:uint = 2; public static var e_maxTypes:uint = 3; public static var e_sleepFlag:uint = 8; private static var s_massData:b2MassData = new b2MassData(); public static var e_bulletFlag:uint = 32; public static var e_staticType:uint = 1; public static var e_islandFlag:uint = 4; public static var e_allowSleepFlag:uint = 16; private static var s_xf1:b2XForm = new b2XForm(); public static var e_dynamicType:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x - (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.y + (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function SynchronizeTransform():void{ m_xf.R.Set(m_sweep.a); var _local1:b2Mat22 = m_xf.R; var _local2:b2Vec2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function GetInertia():Number{ return (m_I); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; var _local2:Number = 0; var _local3:Number = 0; var _local4:b2MassData = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); var _local5:b2Mat22 = m_xf.R; var _local6:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; var _local7:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function PutToSleep():void{ m_flags = (m_flags | e_sleepFlag); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; } public function GetJointList():b2JointEdge{ return (m_jointList); } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); var _local4:b2Mat22 = m_xf.R; var _local5:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); var _local6:Boolean; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function SynchronizeShapes():Boolean{ var _local4:b2Shape; var _local1:b2XForm = s_xf1; _local1.R.Set(m_sweep.a0); var _local2:b2Mat22 = _local1.R; var _local3:b2Vec2 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); var _local5:Boolean; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x)); m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y)); m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)))); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; var _local5:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetShapeList():b2Shape{ return (m_shapeList); } public function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function CreateShape(_arg1:b2ShapeDef):b2Shape{ var _local2:b2Shape; if (m_world.m_lock == true){ return (null); }; _local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); return (_local2); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge = m_jointList; while (_local2) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function DestroyShape(_arg1:b2Shape):void{ if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); var _local2:b2Shape = m_shapeList; var _local3:b2Shape; var _local4:Boolean; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_shapeList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorld():b2World{ return (m_world); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//package Box2D.Dynamics
Section 65
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2BodyDef { public var angularDamping:Number; public var angle:Number; public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var fixedRotation:Boolean; public var linearDamping:Number; public var massData:b2MassData; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.Dynamics
Section 66
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 67
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.geom.*; import Box2D.Dynamics.Contacts.*; public class b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:*; var _local4:Number; var _local5:*; var _local6:b2FilterData; var _local7:*; var _local8:Object; var _local9:Boolean; var _local10:Point; var _local11:MovieClip; _local5 = _arg1.GetFilterData(); _local6 = _arg2.GetFilterData(); _local3 = _local5.groupIndex; _local4 = _local6.groupIndex; _local7 = (_arg1.GetBody().GetUserData() as Object); _local8 = (_arg2.GetBody().GetUserData() as Object); if ((((_local3 == 1)) || ((_local4 == 1)))){ if (_local3 == 1){ if (_local7.projectile.toExplode){ return (false); }; }; if (_local4 == 1){ if (_local8.projectile.toExplode){ return (false); }; }; if ((((_local3 == 2)) || ((_local4 == 2)))){ return (false); }; if ((((_local3 == 5)) || ((_local4 == 5)))){ return (false); }; if ((((_local3 == 4)) || ((_local4 == 4)))){ return (false); }; if ((((_local3 == 3)) || ((_local4 == 3)))){ if (_local3 == 3){ _local7.killOutlaw(_local8.projectile, true); } else { _local8.killOutlaw(_local7.projectile, true); }; return (false); }; if ((((_local3 == 9)) || ((_local4 == 9)))){ if (_local3 == 9){ _local7.toExplode = true; _local7.parent.registerBulletId(_local8.projectile.objid); } else { _local8.toExplode = true; _local8.parent.registerBulletId(_local7.projectile.objid); }; }; if ((((((((_local3 == 12)) || ((_local4 == 12)))) || ((_local3 == 16)))) || ((_local4 == 16)))){ if ((((_local3 == 12)) || ((_local3 == 16)))){ _local7.toExplode = true; } else { _local8.toExplode = true; }; }; return (true); } else { if ((((_local3 == 5)) || ((_local4 == 5)))){ if (((!((_local3 == 7))) && (!((_local4 == 7))))){ return (false); }; } else { if ((((_local3 == 4)) && ((_local4 == 4)))){ return (false); }; }; }; if ((((((((((((((((_local3 == 10)) || ((_local4 == 10)))) || ((_local3 == 11)))) || ((_local4 == 11)))) || ((_local3 == 13)))) || ((_local4 == 13)))) || ((_local3 == 17)))) || ((_local4 == 17)))){ if ((((_local3 == 3)) || ((_local4 == 3)))){ if (_local3 == 3){ _local7.tryToKillOutlaw(_local8); } else { _local8.tryToKillOutlaw(_local7); }; }; }; if ((((_local3 == 15)) || ((_local4 == 15)))){ if ((((((((_local3 == 16)) || ((_local4 == 16)))) || ((_local3 == 17)))) || ((_local4 == 17)))){ return (false); }; }; if ((((_local3 == 11)) || ((_local4 == 11)))){ if ((((((((_local3 == 13)) || ((_local4 == 13)))) || ((_local3 == 17)))) || ((_local4 == 17)))){ if ((((_local3 == 13)) || ((_local3 == 17)))){ _local7.amplifySpeed(); } else { _local8.amplifySpeed(); }; }; }; return (true); } } }//package Box2D.Dynamics
Section 68
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactListener { public function Add(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Persist(_arg1:b2ContactPoint):void{ } public function Result(_arg1:b2ContactResult):void{ } } }//package Box2D.Dynamics
Section 69
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairRemoved(_arg1, _arg2, _arg3):void{ if (_arg3 == null){ return; }; var _local4:b2Contact = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local7:b2Body; var _local8:b2Body; var _local9:Array; var _local10:b2ContactPoint; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2Vec2; var _local16:b2Vec2; var _local2:b2Shape = _arg1.m_shape1; var _local3:b2Shape = _arg1.m_shape2; var _local4:int = _arg1.m_manifoldCount; if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = _local2.m_body; _local8 = _local3.m_body; _local9 = _arg1.GetManifolds(); _local10 = s_evalCP; _local10.shape1 = _arg1.m_shape1; _local10.shape2 = _arg1.m_shape2; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; var _local5:b2Body = _local2.m_body; var _local6:b2Body = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape = (_arg1 as b2Shape); var _local4:b2Shape = (_arg2 as b2Shape); var _local5:b2Body = _local3.m_body; var _local6:b2Body = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; var _local7:b2Contact = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } public function Collide():void{ var _local2:b2Body; var _local3:b2Body; var _local1:b2Contact = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.Dynamics
Section 70
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_drawFlags:uint; public var m_lineThickness:Number;// = 1 public var m_drawScale:Number;// = 1 public var m_sprite:Sprite; public static var e_coreShapeBit:uint = 4; public static var e_shapeBit:uint = 1; public static var e_centerOfMassBit:uint = 64; public static var e_aabbBit:uint = 8; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_jointBit:uint = 2; public function b2DebugDraw(){ m_drawFlags = 0; } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function GetFlags():uint{ return (m_drawFlags); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } } }//package Box2D.Dynamics
Section 71
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeShape(_arg1:b2Shape):void{ } public function SayGoodbyeJoint(_arg1:b2Joint):void{ } } }//package Box2D.Dynamics
Section 72
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Island { public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies:Array; public var m_joints:Array; public var m_jointCapacity:int; public var m_contactCount:int; public var m_contacts:Array; public var m_contactCapacity:int; public var m_jointCount:int; public var m_allocator; public var m_bodyCount:int; private static var s_reportCR:b2ContactResult = new b2ContactResult(); public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){ var _local6:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; m_bodies = new Array(_arg1); _local6 = 0; while (_local6 < _arg1) { m_bodies[_local6] = null; _local6++; }; m_contacts = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { m_contacts[_local6] = null; _local6++; }; m_joints = new Array(_arg3); _local6 = 0; while (_local6 < _arg3) { m_joints[_local6] = null; _local6++; }; m_positionIterationCount = 0; } public function AddBody(_arg1:b2Body):void{ var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } public function Report(_arg1:Array):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; var _local4:int; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local9:int; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Number; var _local14:Number; var _local15:Number; _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; var _local8:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local8.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local8.SolveVelocityConstraints(); _local9 = 0; while (_local9 < m_jointCount) { _local7 = m_joints[_local9]; _local7.SolveVelocityConstraints(_arg1); _local9++; }; _local5++; }; _local8.FinalizeVelocityConstraints(); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_sweep.c0.SetV(_local6.m_sweep.c); _local6.m_sweep.a0 = _local6.m_sweep.a; _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y)); _local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity)); _local6.SynchronizeTransform(); }; _local5++; }; if (_arg3){ _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local10 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local12 = _local7.SolvePositionConstraints(); _local11 = ((_local11) && (_local12)); _local5++; }; if (((_local10) && (_local11))){ break; }; m_positionIterationCount++; }; }; Report(_local8.m_constraints); if (_arg4){ _local13 = Number.MAX_VALUE; _local14 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local15 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.m_invMass == 0){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local13 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local15)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local14)))){ _local6.m_sleepTime = 0; _local13 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local13 = b2Math.b2Min(_local13, _local6.m_sleepTime); }; }; _local5++; }; if (_local13 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local5:b2Body; var _local6:Boolean; var _local3:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; var _local4:Number = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } }//package Box2D.Dynamics
Section 73
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var warmStarting:Boolean; public var positionCorrection:Boolean; public var dt:Number; public var maxIterations:int; public var dtRatio:Number; public var inv_dt:Number; } }//package Box2D.Dynamics
Section 74
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2World { public var m_inv_dt0:Number; public var m_boundaryListener:b2BoundaryListener; public var m_contactList:b2Contact; public var m_blockAllocator; public var m_contactListener:b2ContactListener; public var m_allowSleep:Boolean; public var m_broadPhase:b2BroadPhase; public var m_destructionListener:b2DestructionListener; public var m_jointCount:int; public var m_bodyCount:int; public var m_lock:Boolean; public var m_positionIterationCount:int; public var m_groundBody:b2Body; public var m_contactCount:int; public var m_debugDraw:b2DebugDraw; public var m_contactFilter:b2ContactFilter; public var m_bodyList:b2Body; public var m_stackAllocator; public var m_jointList:b2Joint; public var m_gravity:b2Vec2; public var m_contactManager:b2ContactManager; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); public static var m_continuousPhysics:Boolean; public static var m_warmStarting:Boolean; private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); public static var m_positionCorrection:Boolean; private static var s_xf:b2XForm = new b2XForm(); public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_positionCorrection = true; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_inv_dt0 = 0; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); var _local4:b2BodyDef = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; var _local2:b2Body = _arg1.m_body1; var _local3:b2Body = _arg1.m_body2; var _local4:b2XForm = _local2.m_xf; var _local5:b2XForm = _local3.m_xf; var _local6:b2Vec2 = _local4.position; var _local7:b2Vec2 = _local5.position; var _local8:b2Vec2 = _arg1.GetAnchor1(); var _local9:b2Vec2 = _arg1.GetAnchor2(); var _local10:b2Color = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } public function DrawDebugData():void{ var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local11:b2XForm; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); var _local1:uint = m_debugDraw.GetFlags(); var _local7:b2Vec2 = new b2Vec2(); var _local8:b2Vec2 = new b2Vec2(); var _local9:b2Vec2 = new b2Vec2(); var _local10:b2Color = new b2Color(0, 0, 0); var _local12:b2AABB = new b2AABB(); var _local13:b2AABB = new b2AABB(); var _local14:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; var _local2:b2JointEdge = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; var _local3:b2Shape = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; var _local5:b2Color = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; }; } public function GetContactCount():int{ return (m_contactCount); } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; var _local3:b2Island = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; var _local4:b2Contact = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; var _local5:b2Joint = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; var _local6:int = m_bodyCount; var _local7:Array = new Array(_local6); var _local8:b2Body = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.m_manifoldCount == 0){ } else { _local3.AddContact(_local12.contact); _local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag); _local11 = _local12.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local9; _local9 = (_local9 + 1); var _local16 = _temp2; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; }; _local12 = _local12.next; }; _local13 = _local2.m_jointList; while (_local13) { if (_local13.joint.m_islandFlag == true){ } else { _local3.AddJoint(_local13.joint); _local13.joint.m_islandFlag = true; _local11 = _local13.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local9; _local9 = (_local9 + 1); _local16 = _temp3; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; _local13 = _local13.next; }; }; }; _local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep); if (_local3.m_positionIterationCount > m_positionIterationCount){ m_positionIterationCount = _local3.m_positionIterationCount; }; _local10 = 0; while (_local10 < _local3.m_bodyCount) { _local2 = _local3.m_bodies[_local10]; if (_local2.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local10++; }; }; }; _local8 = _local8.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local14 = _local2.SynchronizeShapes(); if ((((_local14 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array = new Array(_arg3); var _local5:int = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); var _local6:int; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; var _local8:b2Island = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); var _local9:int = m_bodyCount; var _local10:Array = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.m_shape1; _local4 = _local11.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local19 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local19 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local19); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local19 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local19); }; }; _local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep); if ((((_local18 > 0)) && ((_local18 < 1)))){ _local18 = (((1 - _local18) * _local19) + _local18); if (_local18 > 1){ _local18 = 1; }; }; _local11.m_toi = _local18; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){ _local12 = _local11; _local13 = _local18; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.m_manifoldCount == 0){ } else { _local14 = _local5; if (_local14.IsStatic()){ _local14 = _local6; }; _local8.Clear(); _local15 = 0; var _temp1 = _local15; _local15 = (_local15 + 1); var _local22 = _temp1; _local10[_local22] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local15 > 0) { --_local15; _local2 = _local10[_local15]; _local8.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local8.m_contactCount == _local8.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function GetBodyList():b2Body{ return (m_bodyList); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function Validate():void{ m_broadPhase.Validate(); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetPositionCorrection(_arg1:Boolean):void{ m_positionCorrection = _arg1; } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local3:b2Body; var _local4:b2Shape; var _local2:b2Joint = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local5:b2Body; var _local6:b2Shape; var _local2:Boolean = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; var _local3:b2Body = _arg1.m_body1; var _local4:b2Body = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function CreateBody(_arg1:b2BodyDef):b2Body{ if (m_lock == true){ return (null); }; var _local2:b2Body = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function Step(_arg1:Number, _arg2:int):void{ m_lock = true; var _local3:b2TimeStep = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; _local3.dtRatio = (m_inv_dt0 * _arg1); _local3.positionCorrection = m_positionCorrection; _local3.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((m_continuousPhysics) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_inv_dt0 = _local3.inv_dt; m_lock = false; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } } }//package Box2D.Dynamics
Section 75
//bar_3 (coldjustice_fla.bar_3) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class bar_3 extends MovieClip { public function bar_3(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package coldjustice_fla
Section 76
//body_152 (coldjustice_fla.body_152) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class body_152 extends MovieClip { public function body_152(){ addFrameScript(0, frame1); } public function walkLeft(){ gotoAndStop(3); } function frame1(){ stop(); } public function walkRight(){ gotoAndStop(4); } public function idle1(){ gotoAndStop(1); } public function idle2(){ gotoAndStop(2); } } }//package coldjustice_fla
Section 77
//body_159 (coldjustice_fla.body_159) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class body_159 extends MovieClip { public function body_159(){ addFrameScript(0, frame1); } public function walkLeft(){ gotoAndStop(3); } function frame1(){ stop(); } public function walkRight(){ gotoAndStop(4); } public function idle1(){ gotoAndStop(1); } public function idle2(){ gotoAndStop(2); } } }//package coldjustice_fla
Section 78
//body_166 (coldjustice_fla.body_166) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class body_166 extends MovieClip { public function body_166(){ addFrameScript(0, frame1); } public function walkLeft(){ gotoAndStop(3); } function frame1(){ stop(); } public function walkRight(){ gotoAndStop(4); } public function idle1(){ gotoAndStop(1); } public function idle2(){ gotoAndStop(2); } } }//package coldjustice_fla
Section 79
//bodyanim_62 (coldjustice_fla.bodyanim_62) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class bodyanim_62 extends MovieClip { public function bodyanim_62(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package coldjustice_fla
Section 80
//BrandingMenu_246 (coldjustice_fla.BrandingMenu_246) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class BrandingMenu_246 extends MovieClip { public var click_btn:SimpleButton; public function BrandingMenu_246(){ addFrameScript(0, frame1); } function frame1(){ stop(); click_btn.addEventListener("click", btnClick); } public function btnClick(_arg1:Object=null){ navigateToURL(new URLRequest("http://www.gamesnitro.com"), "_blank"); } } }//package coldjustice_fla
Section 81
//bulletsUi_192 (coldjustice_fla.bulletsUi_192) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class bulletsUi_192 extends MovieClip { public var bullets:Array; public function bulletsUi_192(){ addFrameScript(0, frame1); } public function initBullets(){ var _local2:Number; var _local3:MovieClip; var _local1:Number = g.cLevel.bulletsForLvl; var _local4:Number = 81; var _local5:Number = -4; destroyBullets(); bullets = []; _local2 = 0; while (_local2 < _local1) { _local3 = new bullet_img(); _local3.x = (_local4 + (10 * _local2)); _local3.y = _local5; this.addChild(_local3); bullets.push(_local3); _local2++; }; } function frame1(){ stop(); ui.BulletsUi = this; bullets = []; } public function fire(){ var _local1:Number = bullets.length; var _local2:Array = []; if (_local1 == 0){ return; }; this.removeChild(bullets[(_local1 - 1)]); var _local3:Number = 0; while (_local3 < (_local1 - 1)) { _local2.push(bullets[_local3]); _local3++; }; bullets = _local2; } public function destroyBullets(){ var _local1:Number = 0; while (_local1 < bullets.length) { this.removeChild(bullets[_local1]); _local1++; }; bullets = []; } } }//package coldjustice_fla
Section 82
//currentLevel_194 (coldjustice_fla.currentLevel_194) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class currentLevel_194 extends MovieClip { public var label_txt:TextField; public var label2_txt:TextField; public function currentLevel_194(){ addFrameScript(0, frame1); } function frame1(){ ui.CurrentLevel = this; fonts.apply(label_txt, fonts.Text1); fonts.apply(label2_txt, fonts.Text1); } } }//package coldjustice_fla
Section 83
//cursor_240 (coldjustice_fla.cursor_240) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class cursor_240 extends MovieClip { public function cursor_240(){ addFrameScript(0, frame1); } function frame1(){ } } }//package coldjustice_fla
Section 84
//exp_anim_141 (coldjustice_fla.exp_anim_141) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class exp_anim_141 extends MovieClip { public function exp_anim_141(){ addFrameScript(60, frame61); } function frame61(){ g.cLevel.removeMc(parent); } } }//package coldjustice_fla
Section 85
//gamecontainer_180 (coldjustice_fla.gamecontainer_180) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class gamecontainer_180 extends MovieClip { public function gamecontainer_180(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package coldjustice_fla
Section 86
//gamemenu_179 (coldjustice_fla.gamemenu_179) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class gamemenu_179 extends MovieClip { public var gamecontainer:MovieClip; public var help_mc:MovieClip; public function gamemenu_179(){ addFrameScript(0, frame1, 1, frame2, 9, frame10, 29, frame30, 59, frame60); } public function gotoMenu(){ gotoAndStop("menu"); } function frame1(){ ui.GameMenu = this; Mouse.show(); } public function gotoSelectLevel(){ gotoAndStop("select level"); } function frame30(){ stop(); Mouse.show(); } public function gotoHelp(){ gotoAndStop("help"); } function frame2(){ stop(); Mouse.show(); try { System.gc(); } catch(e:Error) { }; try { new LocalConnection().connect("foo"); new LocalConnection().connect("foo"); } catch(e) { }; } function frame60(){ stop(); } public function restart(){ gotoAndPlay(59); } function frame10(){ stop(); Mouse.show(); help_mc.activate(); } public function backFromInstructions(){ gotoMenu(); } public function gotoPlay(){ gotoAndStop("play"); } } }//package coldjustice_fla
Section 87
//howtoplay_199 (coldjustice_fla.howtoplay_199) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class howtoplay_199 extends MovieClip { public var label1_txt:TextField; public var label2_txt:TextField; public var label3_txt:TextField; public var label4_txt:TextField; public var label5_txt:TextField; public var ok_btn:SimpleButton; public function howtoplay_199(){ addFrameScript(0, frame1); } function frame1(){ stop(); fonts.apply(label1_txt, fonts.Caption3); fonts.apply(label2_txt, fonts.Caption3); fonts.apply(label3_txt, fonts.Caption3); fonts.apply(label4_txt, fonts.Caption3); fonts.apply(label5_txt, fonts.Caption3); ok_btn.addEventListener("click", btnOk); ok_btn.addEventListener("mouseOver", btnOver); } public function btnOver(_arg1:Object=null){ g.JukeBox.btnOver(); } public function btnOk(_arg1:Object=null){ g.JukeBox.btnClick(); parent.deactivate(); } } }//package coldjustice_fla
Section 88
//levelBtn_259 (coldjustice_fla.levelBtn_259) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class levelBtn_259 extends MovieClip { public var zone_mc:SimpleButton; public var lvl_txt:MovieClip; public var medals_mc:MovieClip; public var levelid:Number; public function levelBtn_259(){ addFrameScript(0, frame1); } function frame1(){ stop(); zone_mc.addEventListener("click", playLevel); zone_mc.addEventListener("mouseOver", showMouseOver); } public function playLevel(_arg1:Object=null){ parent.playLevel(levelid); } public function showMouseOver(_arg1:Object=null){ parent.mouseOverLevel(levelid); } } }//package coldjustice_fla
Section 89
//levelMedal_262 (coldjustice_fla.levelMedal_262) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class levelMedal_262 extends MovieClip { public function levelMedal_262(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package coldjustice_fla
Section 90
//levelText_261 (coldjustice_fla.levelText_261) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class levelText_261 extends MovieClip { public var label_txt:TextField; public function levelText_261(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); label_txt.defaultTextFormat = fonts.Button1; } } }//package coldjustice_fla
Section 91
//loading_269 (coldjustice_fla.loading_269) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class loading_269 extends MovieClip { public function loading_269(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 4, frame5, 6, frame7); } function frame1(){ glo.bal.GameLoader = this; } function frame2(){ g.Game.reset(); } function frame3(){ g.Game.init(); } function frame5(){ g.Player.init(); g.Interface.init(); g.Game.ready(); } function frame7(){ stop(); } } }//package coldjustice_fla
Section 92
//menu_247 (coldjustice_fla.menu_247) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class menu_247 extends MovieClip { public var free_btn:SimpleButton; public var gotohelp:Boolean; public var play_btn:SimpleButton; public var more_btn:SimpleButton; public var gotoplay:Boolean; public var help_btn:SimpleButton; public function menu_247(){ addFrameScript(0, frame1, 29, frame30, 64, frame65); } public function disableButtons(){ for (i in BTNS) { BTNS[i].enabled = false; }; } public function enableButtons(){ for (i in BTNS) { BTNS[i].enabled = true; }; } function frame30(){ stop(); } function frame65(){ stop(); if (gotoplay){ ui.GameMenu.gotoSelectLevel(); } else { if (gotohelp){ ui.GameMenu.gotoHelp(); }; }; } public function btnFree(_arg1:Object=null){ Juke.Box.btnClick(); navigateToURL(new URLRequest("http://www.gamesnitro.com/freecontent/"), "_blank"); } public function btnPlay(_arg1:Object=null){ Juke.Box.btnClick(); gotoplay = true; gotohelp = false; gotoAndPlay(31); disableButtons(); } function frame1(){ gotohelp = false; gotoplay = false; BTNS = [play_btn, help_btn, more_btn]; enableButtons(); play_btn.addEventListener("click", btnPlay); help_btn.addEventListener("click", btnHelp); more_btn.addEventListener("click", btnMore); free_btn.addEventListener("click", btnFree); help_btn.addEventListener("mouseOver", btnOver); play_btn.addEventListener("mouseOver", btnOver); more_btn.addEventListener("mouseOver", btnOver); free_btn.addEventListener("mouseOver", btnOver); } public function btnMore(_arg1:Object=null){ Juke.Box.btnClick(); gotohelp = true; gotoplay = false; gotoAndPlay(31); disableButtons(); } public function btnHelp(_arg1:Object=null){ Juke.Box.btnClick(); navigateToURL(new URLRequest("http://www.gamesnitro.com"), "_blank"); } public function btnOver(_arg1:Object=null){ Juke.Box.btnOver(); } } }//package coldjustice_fla
Section 93
//menu_256 (coldjustice_fla.menu_256) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class menu_256 extends MovieClip { public var lvl23_btn:MovieClip; public var lvl24_btn:MovieClip; public var lvl26_btn:MovieClip; public var lvl28_btn:MovieClip; public var lvl29_btn:MovieClip; public var lvl18_btn:MovieClip; public var lvl25_btn:MovieClip; public var lvl27_btn:MovieClip; public var lvl21_btn:MovieClip; public var lvl3_btn:MovieClip; public var selectedCard_mc:MovieClip; public var cancel_btn:SimpleButton; public var silverMedalPoints; public var lvl30_btn:MovieClip; public var BTNS:Array; public var submit_btn:SimpleButton; public var goldMedalPoints; public var bronzeMedalPoints:Number; public var mainMenu_btn:SimpleButton; public var lvl11_btn:MovieClip; public var lvl12_btn:MovieClip; public var lvl13_btn:MovieClip; public var lvl14_btn:MovieClip; public var lvl15_btn:MovieClip; public var lvl17_btn:MovieClip; public var lvl16_btn:MovieClip; public var lvl1_btn:MovieClip; public var lvl2_btn:MovieClip; public var lvl19_btn:MovieClip; public var lvl4_btn:MovieClip; public var lvl5_btn:MovieClip; public var lvl6_btn:MovieClip; public var lvl7_btn:MovieClip; public var lvl8_btn:MovieClip; public var lvl9_btn:MovieClip; public var total_txt:TextField; public var lvl10_btn:MovieClip; public var lvl20_btn:MovieClip; public var lvl22_btn:MovieClip; public function menu_256(){ addFrameScript(1, frame2, 9, frame10, 10, frame11); } function frame2(){ ui.LevelSelection = this; fonts.apply(total_txt, fonts.Text3); BTNS = [lvl1_btn, lvl2_btn, lvl3_btn, lvl4_btn, lvl5_btn, lvl6_btn, lvl7_btn, lvl8_btn, lvl9_btn, lvl10_btn, lvl11_btn, lvl12_btn, lvl13_btn, lvl14_btn, lvl15_btn, lvl16_btn, lvl17_btn, lvl18_btn, lvl19_btn, lvl20_btn, lvl21_btn, lvl22_btn, lvl23_btn, lvl24_btn, lvl25_btn, lvl26_btn, lvl27_btn, lvl28_btn, lvl29_btn, lvl30_btn]; goldMedalPoints = 1600; silverMedalPoints = 800; bronzeMedalPoints = 400; loadGame(); enableButtons(); selectedCard_mc.showLevel(1); init(); submit_btn.addEventListener("click", btnSubmit); mainMenu_btn.addEventListener("click", gotoMainMenu); mainMenu_btn.addEventListener("mouseOver", btnOver); } public function enableButtons(){ var _local1:Number = 0; while (_local1 < BTNS.length) { if (_local1 < g.cGame.cLevel){ BTNS[_local1].alpha = 1; BTNS[_local1].gotoAndStop(1); BTNS[_local1].zone_mc.visible = true; BTNS[_local1].zone_mc.enabled = true; if (g.cGame.LvlPoints[_local1] >= goldMedalPoints){ BTNS[_local1].medals_mc.gotoAndStop(2); } else { if (g.cGame.LvlPoints[_local1] >= silverMedalPoints){ BTNS[_local1].medals_mc.gotoAndStop(3); } else { if (g.cGame.LvlPoints[_local1] >= bronzeMedalPoints){ BTNS[_local1].medals_mc.gotoAndStop(4); } else { BTNS[_local1].medals_mc.gotoAndStop(5); }; }; }; } else { BTNS[_local1].zone_mc.visible = false; BTNS[_local1].zone_mc.enabled = false; BTNS[_local1].alpha = 0.75; BTNS[_local1].gotoAndStop(3); BTNS[_local1].medals_mc.gotoAndStop(1); }; _local1++; }; } public function disableButtons(){ var _local1:Number = 0; for (_local1 in BTNS) { BTNS[_local1].zone_mc.visible = (BTNS[_local1].zone_mc.enabled = false); }; } public function init(){ var _local1:Number; _local1 = 0; while (_local1 < BTNS.length) { BTNS[_local1].levelid = (_local1 + 1); BTNS[_local1].lvl_txt.label_txt.text = String((_local1 + 1)); _local1++; }; total_txt.text = ("TOTAL SCORE : " + numbers.format(GameData.getTotalPoints())); } public function btnSubmit(_arg1:Object=null){ if (GameData.getTotalPoints() > 0){ Juke.Box.btnClick(); gotoAndStop(11); }; } public function mouseOverLevel(_arg1:Number){ var _local2:Number; Juke.Box.btnOver(); selectedCard_mc.showLevel(_arg1); _local2 = 0; while (_local2 < BTNS.length) { if (BTNS[_local2].zone_mc.enabled){ if (BTNS[_local2].levelid == _arg1){ BTNS[_local2].gotoAndStop(2); } else { BTNS[_local2].gotoAndStop(1); }; }; _local2++; }; } public function playLevel(_arg1:Number){ Juke.Box.btnClick(); g.Game.selLevel = _arg1; ui.GameMenu.gotoPlay(); disableButtons(); } public function btnClick(_arg1:Object=null){ gotoAndStop(10); } public function gotoMainMenu(_arg1:Object=null){ Juke.Box.btnClick(); parent.gotoMenu(); } function frame11(){ stop(); cancel_btn.addEventListener("click", btnClick); } public function btnOver(_arg1:Object=null){ Juke.Box.btnOver(); } function frame10(){ stop(); } public function loadGame(){ if (g.Games.length == 0){ g.cGame = new GameData(); g.Games.push(g.cGame); GameData.save(); } else { g.cGame = g.Games[0]; }; } } }//package coldjustice_fla
Section 94
//message_229 (coldjustice_fla.message_229) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class message_229 extends MovieClip { public var msg_xt:TextField; public function message_229(){ addFrameScript(0, frame1, 59, frame60); } function frame1(){ stop(); fonts.apply(msg_xt, fonts.Text3); } function frame60(){ visible = false; } public function showMessage(_arg1:String){ visible = true; msg_xt.text = _arg1; gotoAndPlay(2); } } }//package coldjustice_fla
Section 95
//messageText_197 (coldjustice_fla.messageText_197) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class messageText_197 extends MovieClip { public var label_txt:TextField; public function messageText_197(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); label_txt.defaultTextFormat = fonts.Button1; } } }//package coldjustice_fla
Section 96
//MissionCompleted_233 (coldjustice_fla.MissionCompleted_233) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class MissionCompleted_233 extends MovieClip { public var pts5_txt:TextField; public var trybetter_btn:SimpleButton; public var nextlevel_btn:SimpleButton; public var prev_btn:SimpleButton; public var pts1_txt:TextField; public var pts2_txt:TextField; public var pts3_txt:TextField; public var pts4_txt:TextField; public var qty1_txt:TextField; public var alllevels_btn:SimpleButton; public var label1_txt:TextField; public var qty4_txt:TextField; public var label3_txt:TextField; public var label4_txt:TextField; public var label5_txt:TextField; public var stars_mc:MovieClip; public var gameFinished_txt:TextField; public var label2_txt:TextField; public var qty2_txt:TextField; public var qty3_txt:TextField; public function MissionCompleted_233(){ addFrameScript(0, frame1); } public function btnNextLevel(_arg1:Event){ g.JukeBox.btnClick(); g.Game.selLevel = (g.Game.selLevel + 1); if (g.Game.selLevel > 30){ g.Game.selLevel = 30; gameFinished_txt.visible = true; alllevels_btn.visible = true; gotoAndStop(2); } else { g.cLevel.destroy(); ui.GameMenu.restart(); parent.gotoAndStop(1); }; } public function setPoints(){ qty1_txt.text = String(g.cLevel.points[3][0]); pts1_txt.text = String(g.cLevel.points[3][1]); qty2_txt.text = String(g.cLevel.points[0][0]); pts2_txt.text = String(g.cLevel.points[0][1]); qty3_txt.text = String(g.cLevel.points[1][0]); pts3_txt.text = String(g.cLevel.points[1][1]); qty4_txt.text = String(g.cLevel.points[2][0]); pts4_txt.text = String(g.cLevel.points[2][1]); pts5_txt.text = String(g.cLevel.levelPoints); if (g.cLevel.levelPoints >= g.cLevel.goldMedalPoints){ stars_mc.gotoAndStop(1); stars_mc.label_txt.text = "AWESOME"; } else { if (g.cLevel.levelPoints >= g.cLevel.silverMedalPoints){ stars_mc.gotoAndStop(2); stars_mc.label_txt.text = "GREAT"; trybetter_btn.visible = true; } else { if (g.cLevel.levelPoints >= g.cLevel.bronzeMedalPoints){ stars_mc.gotoAndStop(3); stars_mc.label_txt.text = "GOOD"; } else { stars_mc.gotoAndStop(4); stars_mc.label_txt.text = "YOU CAN DO BETTER"; }; }; }; } public function btnTryBetter(_arg1:Event){ g.JukeBox.btnClick(); g.cLevel.restartLevel(); parent.gotoAndStop(1); } function frame1(){ stop(); fonts.apply(gameFinished_txt, fonts.Text3); fonts.apply(label1_txt, fonts.Text3); fonts.apply(label2_txt, fonts.Text3); fonts.apply(label3_txt, fonts.Text3); fonts.apply(label4_txt, fonts.Text3); fonts.apply(label5_txt, fonts.Text3); fonts.apply(qty1_txt, fonts.Text3); fonts.apply(qty2_txt, fonts.Text3); fonts.apply(qty3_txt, fonts.Text3); fonts.apply(qty4_txt, fonts.Text3); fonts.apply(pts1_txt, fonts.Text3); fonts.apply(pts2_txt, fonts.Text3); fonts.apply(pts3_txt, fonts.Text3); fonts.apply(pts4_txt, fonts.Text3); fonts.apply(pts5_txt, fonts.Text3); gameFinished_txt.visible = false; nextlevel_btn.addEventListener("click", btnNextLevel); prev_btn.addEventListener("click", btnAllLevels); alllevels_btn.addEventListener("click", btnAllLevels); trybetter_btn.addEventListener("click", btnTryBetter); nextlevel_btn.addEventListener("mouseOver", btnOver); prev_btn.addEventListener("mouseOver", btnOver); alllevels_btn.addEventListener("mouseOver", btnOver); trybetter_btn.addEventListener("mouseOver", btnOver); } public function btnOver(_arg1:Object=null){ g.JukeBox.btnOver(); } public function activate(){ visible = true; gameFinished_txt.visible = false; nextlevel_btn.visible = true; alllevels_btn.visible = false; setPoints(); } public function btnAllLevels(_arg1:Event){ g.JukeBox.btnClick(); g.cLevel.destroy(); ui.GameMenu.gotoSelectLevel(); parent.gotoAndStop(1); } } }//package coldjustice_fla
Section 97
//MissionFailed_225 (coldjustice_fla.MissionFailed_225) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class MissionFailed_225 extends MovieClip { public var level_btn:SimpleButton; public var restart_btn:SimpleButton; public function MissionFailed_225(){ addFrameScript(0, frame1); } public function btnOver(_arg1:Object=null){ g.JukeBox.btnOver(); } public function activate(){ visible = true; } function frame1(){ stop(); restart_btn.addEventListener("click", btnRestart); level_btn.addEventListener("click", btnLevel); restart_btn.addEventListener("mouseOver", btnOver); level_btn.addEventListener("mouseOver", btnOver); } public function btnRestart(_arg1:Object=null){ g.JukeBox.btnClick(); trace("ui.MissionFailed->btnRestart"); trace("// Set saved game restart point ..."); g.cLevel.restartLevel(); parent.gotoAndStop(1); } public function btnLevel(_arg1:Object=null){ g.JukeBox.btnClick(); ui.GameMenu.gotoSelectLevel(); parent.gotoAndStop(1); } } }//package coldjustice_fla
Section 98
//pauseMenu_204 (coldjustice_fla.pauseMenu_204) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class pauseMenu_204 extends MovieClip { public var selectLevel_btn:SimpleButton; public var resume_btn:SimpleButton; public var help_btn:SimpleButton; public function pauseMenu_204(){ addFrameScript(0, frame1); } function frame1(){ stop(); resume_btn.addEventListener("click", btnResume); help_btn.addEventListener("click", btnHelp); selectLevel_btn.addEventListener("click", btnSelectLevel); resume_btn.addEventListener("mouseOver", btnOver); help_btn.addEventListener("mouseOver", btnOver); selectLevel_btn.addEventListener("mouseOver", btnOver); } public function btnResume(_arg1:Event){ g.JukeBox.btnClick(); parent.resumePlay(); } public function btnSelectLevel(_arg1:Event){ g.JukeBox.btnClick(); parent.selectLevel(); } public function btnOver(_arg1:Object=null){ g.JukeBox.btnOver(); } public function btnHelp(_arg1:Event){ g.JukeBox.btnClick(); parent.help(); } } }//package coldjustice_fla
Section 99
//pistolFlash_64 (coldjustice_fla.pistolFlash_64) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class pistolFlash_64 extends MovieClip { public function pistolFlash_64(){ addFrameScript(0, frame1, 1, frame2, 4, frame5); } function frame5(){ stop(); } function frame1(){ parent.parent.parent.muzzleFlash_mc = this; } function frame2(){ stop(); } } }//package coldjustice_fla
Section 100
//qigamesmenumc_243 (coldjustice_fla.qigamesmenumc_243) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class qigamesmenumc_243 extends MovieClip { public var dev_btn:SimpleButton; public function qigamesmenumc_243(){ addFrameScript(0, frame1); } public function btnClick(_arg1:Object=null){ navigateToURL(new URLRequest("http://www.qigames.com/shooting/"), "_blank"); spAPI.apiclick("qigames_menu"); } function frame1(){ stop(); dev_btn.addEventListener("click", btnClick); } } }//package coldjustice_fla
Section 101
//selectedLevel_257 (coldjustice_fla.selectedLevel_257) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class selectedLevel_257 extends MovieClip { public var levelImgs_mc:MovieClip; public var score_txt:TextField; public var bul1_txt:TextField; public var bul2_txt:TextField; public var bul3_txt:TextField; public var bul4_txt:TextField; public var label1_txt:TextField; public var label2_txt:TextField; public var label3_txt:TextField; public var label4_txt:TextField; public var label5_txt:TextField; public var stars_mc:MovieClip; public function selectedLevel_257(){ addFrameScript(0, frame1); } public function showLevel(_arg1:Number){ var _local3:*; var _local4:*; var _local5:Number; var _local6:Number; if (_arg1 > g.cGame.cLevel){ return; }; var _local2:Number = g.cGame.LvlPoints[(_arg1 - 1)]; score_txt.text = String(_local2); _local3 = parent.goldMedalPoints; _local4 = parent.silverMedalPoints; _local5 = parent.bronzeMedalPoints; if (_local2 == 0){ stars_mc.gotoAndStop(4); stars_mc.label_txt.text = "NOT PLAYED YET"; } else { if (_local2 >= _local3){ stars_mc.gotoAndStop(1); stars_mc.label_txt.text = "AWESOME"; } else { if (_local2 >= _local4){ stars_mc.gotoAndStop(2); stars_mc.label_txt.text = "GREAT"; } else { if (_local2 >= _local5){ stars_mc.gotoAndStop(3); stars_mc.label_txt.text = "GOOD"; } else { stars_mc.gotoAndStop(4); stars_mc.label_txt.text = "YOU CAN DO BETTER"; }; }; }; }; if (_arg1 > 20){ _local6 = (bulletsAvailable[(_arg1 - 1)] - 3); } else { if (_arg1 > 10){ _local6 = (bulletsAvailable[(_arg1 - 1)] - 4); } else { _local6 = (bulletsAvailable[(_arg1 - 1)] - 5); }; }; bul1_txt.text = bulletsAvailable[(_arg1 - 1)]; bul2_txt.text = _local6; bul3_txt.text = (_local6 + 1); bul4_txt.text = (_local6 + 2); levelImgs_mc.gotoAndStop(_arg1); } function frame1(){ stop(); fonts.apply(label1_txt, fonts.Text3); fonts.apply(label2_txt, fonts.Text3); fonts.apply(label3_txt, fonts.Text3); fonts.apply(label4_txt, fonts.Text3); fonts.apply(label5_txt, fonts.Text3); fonts.apply(bul1_txt, fonts.Text3); fonts.apply(bul2_txt, fonts.Text3); fonts.apply(bul3_txt, fonts.Text3); fonts.apply(bul4_txt, fonts.Text3); fonts.apply(score_txt, fonts.Text3); bulletsAvailable = []; bulletsAvailable.push(6, 8, 8, 8, 8, 7, 10, 8, 9, 9); bulletsAvailable.push(7, 6, 7, 7, 7, 7, 7, 5, 8, 6); bulletsAvailable.push(6, 5, 6, 5, 6, 6, 6, 5, 6, 5); } } }//package coldjustice_fla
Section 102
//selImgs_258 (coldjustice_fla.selImgs_258) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class selImgs_258 extends MovieClip { public function selImgs_258(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package coldjustice_fla
Section 103
//soundcontrol_211 (coldjustice_fla.soundcontrol_211) package coldjustice_fla { import fl.controls.*; import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class soundcontrol_211 extends MovieClip { public var sfx_chk:CheckBox; public var label1_txt:TextField; public var label2_txt:TextField; public var music_chk:CheckBox; public function soundcontrol_211(){ addFrameScript(0, frame1); } function frame1(){ stop(); label1_txt.antiAliasType = "advanced"; label1_txt.embedFonts = true; label1_txt.setTextFormat(fonts.Button1); label2_txt.antiAliasType = "advanced"; label2_txt.embedFonts = true; label2_txt.setTextFormat(fonts.Button1); music_chk.label = ""; music_chk.selected = Boolean(!(g.JukeBox.MUTE_MUSIC)); sfx_chk.label = ""; sfx_chk.selected = Boolean(!(g.JukeBox.MUTE_SFX)); music_chk.focusEnabled = false; sfx_chk.focusEnabled = false; music_chk.tabEnabled = false; sfx_chk.tabEnabled = false; music_chk.addEventListener("click", clickedMusic); sfx_chk.addEventListener("click", clickedSfx); } public function clickedMusic(_arg1:Object=null){ if (mouseY < -10){ music_chk.selected = !(music_chk.selected); }; if (music_chk.selected){ g.JukeBox.musicOn(); } else { g.JukeBox.musicOff(); }; } public function clickedSfx(_arg1:Object=null){ if (mouseY < -10){ sfx_chk.selected = !(sfx_chk.selected); }; if (sfx_chk.selected){ g.JukeBox.sfxOn(); } else { g.JukeBox.sfxOff(); }; } } }//package coldjustice_fla
Section 104
//SplashGamesNitro_173 (coldjustice_fla.SplashGamesNitro_173) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class SplashGamesNitro_173 extends MovieClip { public var splash_btn:SimpleButton; public function SplashGamesNitro_173(){ addFrameScript(0, frame1, 209, frame210); } function frame210(){ stop(); ui.Main.gotoAndStop("splash2"); } public function btnSplash(_arg1:Object=null){ navigateToURL(new URLRequest("http://www.gamesnitro.com"), "_blank"); } function frame1(){ splash_btn.addEventListener("click", btnSplash); } } }//package coldjustice_fla
Section 105
//SplashQiGames_177 (coldjustice_fla.SplashQiGames_177) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class SplashQiGames_177 extends MovieClip { public var splash_btn:SimpleButton; public function SplashQiGames_177(){ addFrameScript(0, frame1, 170, frame171); } public function btnSplash(_arg1:Object=null){ navigateToURL(new URLRequest("http://www.qigames.com/shooting"), "_blank"); } function frame1(){ splash_btn.addEventListener("click", btnSplash); } function frame171(){ stop(); MovieClip(parent).gotoAndStop("game"); } } }//package coldjustice_fla
Section 106
//stars_238 (coldjustice_fla.stars_238) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class stars_238 extends MovieClip { public var label_txt:TextField; public function stars_238(){ addFrameScript(0, frame1); } function frame1(){ stop(); label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Text3); } } }//package coldjustice_fla
Section 107
//startPt_63 (coldjustice_fla.startPt_63) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class startPt_63 extends MovieClip { public function startPt_63(){ addFrameScript(0, frame1); } function frame1(){ stop(); parent.parent.parent.startPoint_mc = this; } } }//package coldjustice_fla
Section 108
//text_10 (coldjustice_fla.text_10) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_10 extends MovieClip { public var label_txt:TextField; public function text_10(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package coldjustice_fla
Section 109
//text_191 (coldjustice_fla.text_191) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_191 extends MovieClip { public var label_txt:TextField; public function text_191(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package coldjustice_fla
Section 110
//text_193 (coldjustice_fla.text_193) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_193 extends MovieClip { public var label_txt:TextField; public function text_193(){ addFrameScript(0, frame1); } function frame1(){ fonts.apply(label_txt, fonts.Button1); } } }//package coldjustice_fla
Section 111
//text_202 (coldjustice_fla.text_202) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_202 extends MovieClip { public var label_txt:TextField; public function text_202(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package coldjustice_fla
Section 112
//text_206 (coldjustice_fla.text_206) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_206 extends MovieClip { public var label_txt:TextField; public function text_206(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package coldjustice_fla
Section 113
//text_208 (coldjustice_fla.text_208) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_208 extends MovieClip { public var label_txt:TextField; public function text_208(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package coldjustice_fla
Section 114
//text_210 (coldjustice_fla.text_210) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_210 extends MovieClip { public var label_txt:TextField; public function text_210(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package coldjustice_fla
Section 115
//text_228 (coldjustice_fla.text_228) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_228 extends MovieClip { public var label_txt:TextField; public function text_228(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package coldjustice_fla
Section 116
//text_231 (coldjustice_fla.text_231) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_231 extends MovieClip { public var label_txt:TextField; public function text_231(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package coldjustice_fla
Section 117
//text_235 (coldjustice_fla.text_235) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_235 extends MovieClip { public var label_txt:TextField; public function text_235(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package coldjustice_fla
Section 118
//text_237 (coldjustice_fla.text_237) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_237 extends MovieClip { public var label_txt:TextField; public var label1_txt:TextField; public function text_237(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); label1_txt.antiAliasType = "advanced"; label1_txt.embedFonts = true; label1_txt.setTextFormat(fonts.Button1); } } }//package coldjustice_fla
Section 119
//text_266 (coldjustice_fla.text_266) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_266 extends MovieClip { public var label_txt:TextField; public function text_266(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package coldjustice_fla
Section 120
//text_268 (coldjustice_fla.text_268) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_268 extends MovieClip { public var label_txt:TextField; public function text_268(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package coldjustice_fla
Section 121
//uiHowToPlay_198 (coldjustice_fla.uiHowToPlay_198) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiHowToPlay_198 extends MovieClip { public function uiHowToPlay_198(){ addFrameScript(0, frame1, 1, frame2, 14, frame15); } function frame15(){ stop(); } public function deactivate(){ gotoAndStop(1); parent.backFromInstructions(); } function frame2(){ } public function activate(){ gotoAndPlay(2); if (g.Interface){ g.Interface.hideStuff(); }; } function frame1(){ stop(); } } }//package coldjustice_fla
Section 122
//uiMissionCompleted_232 (coldjustice_fla.uiMissionCompleted_232) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiMissionCompleted_232 extends MovieClip { public var lastLevelDone:Boolean; public var missioncompleted_mc:MovieClip; public function uiMissionCompleted_232(){ addFrameScript(0, frame1, 2, frame3, 14, frame15); } function frame15(){ stop(); } public function activate(_arg1:Boolean=false){ lastLevelDone = _arg1; gotoAndPlay(2); g.Interface.hideStuff(); } public function deactivate(){ gotoAndStop(1); } function frame1(){ stop(); ui.MissionCompleted = this; } function frame3(){ missioncompleted_mc.activate(); ui.GamePaused.visible = false; } } }//package coldjustice_fla
Section 123
//uiMissionFailed_224 (coldjustice_fla.uiMissionFailed_224) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiMissionFailed_224 extends MovieClip { public function uiMissionFailed_224(){ addFrameScript(0, frame1, 1, frame2, 14, frame15); } function frame15(){ stop(); } public function deactivate(){ gotoAndStop(1); } function frame2(){ ui.GamePaused.visible = false; } public function activate(){ gotoAndPlay(2); g.Interface.hideStuff(); } function frame1(){ stop(); ui.MissionFailed = this; } } }//package coldjustice_fla
Section 124
//uiPauseMenu_203 (coldjustice_fla.uiPauseMenu_203) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiPauseMenu_203 extends MovieClip { public function uiPauseMenu_203(){ addFrameScript(0, frame1, 1, frame2, 14, frame15); } public function resumePlay(){ gotoAndStop(1); parent.resumePlay(); } public function help(){ gotoAndStop(1); parent.gotoHelp(); } public function activate(){ visible = true; gotoAndPlay(2); if (g.Interface){ g.Interface.hideStuff(); }; } public function deactivate(){ } function frame2(){ } public function selectLevel(){ gotoAndStop(1); parent.gotoSelectLevel(); } function frame15(){ stop(); } function frame1(){ stop(); ui.GamePaused = this; } } }//package coldjustice_fla
Section 125
//uiPoints_183 (coldjustice_fla.uiPoints_183) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiPoints_183 extends MovieClip { public var points_txt:TextField; public var label_txt:TextField; public function uiPoints_183(){ addFrameScript(0, frame1); } function frame1(){ ui.Points = this; fonts.apply(label_txt, fonts.Text1); fonts.apply(points_txt, fonts.Text1); label_txt.text = "points "; } public function updatePoints(_arg1){ points_txt.text = _arg1; } } }//package coldjustice_fla
Section 126
//uiSubmitScore_226 (coldjustice_fla.uiSubmitScore_226) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiSubmitScore_226 extends MovieClip { public var score_txt:TextField; public var label_txt:TextField; public var submit_btn:SimpleButton; public var message_txt:MovieClip; public var playerName_txt:TextField; public function uiSubmitScore_226(){ addFrameScript(0, frame1); } function frame1(){ stop(); fonts.apply(label_txt, fonts.Text3); fonts.apply(playerName_txt, fonts.Text3); fonts.apply(score_txt, fonts.Text3); message_txt.visible = false; setScore(); submit_btn.addEventListener("click", btnSubmit); submit_btn.addEventListener("mouseOver", btnOver); } public function btnSubmit(_arg1:Object=null){ Juke.Box.btnClick(); if ((((playerName_txt.text == "YOUR NAME")) || ((playerName_txt.text == "")))){ message_txt.showMessage("ENTER YOUR NAME"); return; }; spAPI.submitScore(playerName_txt.text, GameData.getTotalPoints(), "normal"); if (parent == ui.LevelSelection){ ui.LevelSelection.gotoAndStop(10); }; } public function setScore(){ score_txt.text = numbers.format(GameData.getTotalPoints()); } public function btnOver(_arg1:Object=null){ Juke.Box.btnOver(); } } }//package coldjustice_fla
Section 127
//vizormc_241 (coldjustice_fla.vizormc_241) package coldjustice_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class vizormc_241 extends MovieClip { public function vizormc_241(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package coldjustice_fla
Section 128
//AdLoader (CPMStar.AdLoader) package CPMStar { import flash.display.*; import flash.events.*; import flash.net.*; import flash.system.*; public class AdLoader extends Sprite { private var cpmstarLoader:Loader; private var contentspotid:String; public function AdLoader(_arg1:String){ this.contentspotid = _arg1; addEventListener(Event.ADDED, addedHandler); } private function dispatchHandler(_arg1:Event):void{ dispatchEvent(_arg1); } private function addedHandler(_arg1:Event):void{ removeEventListener(Event.ADDED, addedHandler); Security.allowDomain("server.cpmstar.com"); var _local2 = "http://server.cpmstar.com/adviewas3.swf"; var _local3:DisplayObjectContainer = parent; cpmstarLoader = new Loader(); cpmstarLoader.contentLoaderInfo.addEventListener(Event.INIT, dispatchHandler); cpmstarLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, dispatchHandler); cpmstarLoader.load(new URLRequest(((_local2 + "?contentspotid=") + contentspotid))); addChild(cpmstarLoader); } } }//package CPMStar
Section 129
//BaseButton (fl.controls.BaseButton) package fl.controls { import flash.display.*; import fl.core.*; import flash.events.*; import flash.utils.*; import fl.events.*; public class BaseButton extends UIComponent { protected var pressTimer:Timer; protected var _autoRepeat:Boolean;// = false protected var _selected:Boolean;// = false protected var background:DisplayObject; private var unlockedMouseState:String; protected var mouseState:String; private var _mouseStateLocked:Boolean;// = false private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35}; public function BaseButton(){ buttonMode = true; mouseChildren = false; useHandCursor = false; setupMouseEvents(); setMouseState("up"); pressTimer = new Timer(1, 0); pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true); } override public function get enabled():Boolean{ return (super.enabled); } protected function startPress():void{ if (_autoRepeat){ pressTimer.delay = Number(getStyleValue("repeatDelay")); pressTimer.start(); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function drawLayout():void{ background.width = width; background.height = height; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; mouseEnabled = _arg1; } public function set autoRepeat(_arg1:Boolean):void{ _autoRepeat = _arg1; } protected function mouseEventHandler(_arg1:MouseEvent):void{ if (_arg1.type == MouseEvent.MOUSE_DOWN){ setMouseState("down"); startPress(); } else { if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){ setMouseState("over"); endPress(); } else { if (_arg1.type == MouseEvent.ROLL_OUT){ setMouseState("up"); endPress(); }; }; }; } protected function drawBackground():void{ var _local1:String = (enabled) ? mouseState : "disabled"; if (selected){ _local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1)); }; _local1 = (_local1 + "Skin"); var _local2:DisplayObject = background; background = getDisplayObjectInstance(getStyleValue(_local1)); addChildAt(background, 0); if (((!((_local2 == null))) && (!((_local2 == background))))){ removeChild(_local2); }; } public function get selected():Boolean{ return (_selected); } protected function setupMouseEvents():void{ addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true); } protected function endPress():void{ pressTimer.reset(); } public function set mouseStateLocked(_arg1:Boolean):void{ _mouseStateLocked = _arg1; if (_arg1 == false){ setMouseState(unlockedMouseState); } else { unlockedMouseState = mouseState; }; } public function get autoRepeat():Boolean{ return (_autoRepeat); } public function set selected(_arg1:Boolean):void{ if (_selected == _arg1){ return; }; _selected = _arg1; invalidate(InvalidationType.STATE); } protected function buttonDown(_arg1:TimerEvent):void{ if (!_autoRepeat){ endPress(); return; }; if (pressTimer.currentCount == 1){ pressTimer.delay = Number(getStyleValue("repeatInterval")); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } public function setMouseState(_arg1:String):void{ if (_mouseStateLocked){ unlockedMouseState = _arg1; return; }; if (mouseState == _arg1){ return; }; mouseState = _arg1; invalidate(InvalidationType.STATE); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 130
//Button (fl.controls.Button) package fl.controls { import flash.display.*; import fl.core.*; import fl.managers.*; public class Button extends LabelButton implements IFocusManagerComponent { protected var _emphasized:Boolean;// = false protected var emphasizedBorder:DisplayObject; private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2}; public static var createAccessibilityImplementation:Function; public function set emphasized(_arg1:Boolean):void{ _emphasized = _arg1; invalidate(InvalidationType.STYLES); } override protected function initializeAccessibility():void{ if (Button.createAccessibilityImplementation != null){ Button.createAccessibilityImplementation(this); }; } protected function drawEmphasized():void{ var _local2:Number; if (emphasizedBorder != null){ removeChild(emphasizedBorder); }; emphasizedBorder = null; if (!_emphasized){ return; }; var _local1:Object = getStyleValue("emphasizedSkin"); if (_local1 != null){ emphasizedBorder = getDisplayObjectInstance(_local1); }; if (emphasizedBorder != null){ addChildAt(emphasizedBorder, 0); _local2 = Number(getStyleValue("emphasizedPadding")); emphasizedBorder.x = (emphasizedBorder.y = -(_local2)); emphasizedBorder.width = (width + (_local2 * 2)); emphasizedBorder.height = (height + (_local2 * 2)); }; } public function get emphasized():Boolean{ return (_emphasized); } override protected function draw():void{ if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){ drawEmphasized(); }; super.draw(); if (emphasizedBorder != null){ setChildIndex(emphasizedBorder, (numChildren - 1)); }; } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; var _local3:*; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("emphasizedPadding")); if ((((_local2 < 0)) || (!(_emphasized)))){ _local2 = 0; }; _local3 = getStyleValue("focusRectPadding"); _local3 = ((_local3)==null) ? 2 : _local3; _local3 = (_local3 + _local2); uiFocusRect.x = -(_local3); uiFocusRect.y = -(_local3); uiFocusRect.width = (width + (_local3 * 2)); uiFocusRect.height = (height + (_local3 * 2)); }; } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles)); } } }//package fl.controls
Section 131
//ButtonLabelPlacement (fl.controls.ButtonLabelPlacement) package fl.controls { public class ButtonLabelPlacement { public static const TOP:String = "top"; public static const LEFT:String = "left"; public static const BOTTOM:String = "bottom"; public static const RIGHT:String = "right"; } }//package fl.controls
Section 132
//CheckBox (fl.controls.CheckBox) package fl.controls { import flash.display.*; public class CheckBox extends LabelButton { private static var defaultStyles:Object = {icon:null, upIcon:"CheckBox_upIcon", downIcon:"CheckBox_downIcon", overIcon:"CheckBox_overIcon", disabledIcon:"CheckBox_disabledIcon", selectedDisabledIcon:"CheckBox_selectedDisabledIcon", focusRectSkin:null, focusRectPadding:null, selectedUpIcon:"CheckBox_selectedUpIcon", selectedDownIcon:"CheckBox_selectedDownIcon", selectedOverIcon:"CheckBox_selectedOverIcon", textFormat:null, disabledTextFormat:null, embedFonts:null, textPadding:5}; public static var createAccessibilityImplementation:Function; override protected function drawBackground():void{ } override public function get toggle():Boolean{ return (true); } override protected function initializeAccessibility():void{ if (CheckBox.createAccessibilityImplementation != null){ CheckBox.createAccessibilityImplementation(this); }; } override public function set toggle(_arg1:Boolean):void{ throw (new Error("Warning: You cannot change a CheckBox's toggle.")); } override public function get autoRepeat():Boolean{ return (false); } override public function set autoRepeat(_arg1:Boolean):void{ } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = (background.x - _local2); uiFocusRect.y = (background.y - _local2); uiFocusRect.width = (background.width + (_local2 << 1)); uiFocusRect.height = (background.height + (_local2 << 1)); }; } override protected function configUI():void{ super.configUI(); super.toggle = true; var _local1:Shape = new Shape(); var _local2:Graphics = _local1.graphics; _local2.beginFill(0, 0); _local2.drawRect(0, 0, 100, 100); _local2.endFill(); background = (_local1 as DisplayObject); addChildAt(background, 0); } override protected function drawLayout():void{ super.drawLayout(); var _local1:Number = Number(getStyleValue("textPadding")); switch (_labelPlacement){ case ButtonLabelPlacement.RIGHT: icon.x = _local1; textField.x = (icon.x + (icon.width + _local1)); background.width = ((textField.x + textField.width) + _local1); background.height = (Math.max(textField.height, icon.height) + (_local1 * 2)); break; case ButtonLabelPlacement.LEFT: icon.x = ((width - icon.width) - _local1); textField.x = (((width - icon.width) - (_local1 * 2)) - textField.width); background.width = ((textField.width + icon.width) + (_local1 * 3)); background.height = (Math.max(textField.height, icon.height) + (_local1 * 2)); break; case ButtonLabelPlacement.TOP: case ButtonLabelPlacement.BOTTOM: background.width = (Math.max(textField.width, icon.width) + (_local1 * 2)); background.height = ((textField.height + icon.height) + (_local1 * 3)); break; }; background.x = Math.min((icon.x - _local1), (textField.x - _local1)); background.y = Math.min((icon.y - _local1), (textField.y - _local1)); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 133
//LabelButton (fl.controls.LabelButton) package fl.controls { import flash.display.*; import fl.core.*; import flash.text.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.ui.*; public class LabelButton extends BaseButton implements IFocusManagerComponent { protected var _toggle:Boolean;// = false public var textField:TextField; protected var mode:String;// = "center" protected var _labelPlacement:String;// = "right" protected var oldMouseState:String; protected var _label:String;// = "Label" protected var icon:DisplayObject; private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false}; public static var createAccessibilityImplementation:Function; override protected function draw():void{ if (textField.text != _label){ label = _label; }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); drawIcon(); drawTextFormat(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } override protected function drawLayout():void{ var _local7:Number; var _local8:Number; var _local1:Number = Number(getStyleValue("textPadding")); var _local2:String = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement; textField.height = (textField.textHeight + 4); var _local3:Number = (textField.textWidth + 4); var _local4:Number = (textField.textHeight + 4); var _local5:Number = ((icon)==null) ? 0 : (icon.width + _local1); var _local6:Number = ((icon)==null) ? 0 : (icon.height + _local1); textField.visible = (label.length > 0); if (icon != null){ icon.x = Math.round(((width - icon.width) / 2)); icon.y = Math.round(((height - icon.height) / 2)); }; if (textField.visible == false){ textField.width = 0; textField.height = 0; } else { if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){ _local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1)))); if ((height - 2) > _local4){ _local8 = _local4; } else { _local8 = (height - 2); }; _local3 = _local7; textField.width = _local3; _local4 = _local8; textField.height = _local4; textField.x = Math.round(((width - _local3) / 2)); textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0)); if (icon != null){ icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1)); }; } else { _local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1)))); _local3 = _local7; textField.width = _local3; textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0)); textField.y = Math.round(((height - textField.height) / 2)); if (icon != null){ icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1)); }; }; }; super.drawLayout(); } protected function toggleSelected(_arg1:MouseEvent):void{ selected = !(selected); dispatchEvent(new Event(Event.CHANGE, true)); } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ setMouseState(oldMouseState); oldMouseState = null; endPress(); dispatchEvent(new MouseEvent(MouseEvent.CLICK)); }; } public function get labelPlacement():String{ return (_labelPlacement); } public function get toggle():Boolean{ return (_toggle); } protected function setEmbedFont(){ var _local1:Object = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } override public function get selected():Boolean{ return ((_toggle) ? _selected : false); } override protected function configUI():void{ super.configUI(); textField = new TextField(); textField.type = TextFieldType.DYNAMIC; textField.selectable = false; addChild(textField); } override protected function initializeAccessibility():void{ if (LabelButton.createAccessibilityImplementation != null){ LabelButton.createAccessibilityImplementation(this); }; } public function set labelPlacement(_arg1:String):void{ _labelPlacement = _arg1; invalidate(InvalidationType.SIZE); } protected function drawIcon():void{ var _local1:DisplayObject = icon; var _local2:String = (enabled) ? mouseState : "disabled"; if (selected){ _local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1)); }; _local2 = (_local2 + "Icon"); var _local3:Object = getStyleValue(_local2); if (_local3 == null){ _local3 = getStyleValue("icon"); }; if (_local3 != null){ icon = getDisplayObjectInstance(_local3); }; if (icon != null){ addChildAt(icon, 1); }; if (((!((_local1 == null))) && (!((_local1 == icon))))){ removeChild(_local1); }; } public function set label(_arg1:String):void{ _label = _arg1; if (textField.text != _label){ textField.text = _label; dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE)); }; invalidate(InvalidationType.SIZE); invalidate(InvalidationType.STYLES); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ if (oldMouseState == null){ oldMouseState = mouseState; }; setMouseState("down"); startPress(); }; } public function set toggle(_arg1:Boolean):void{ if (((!(_arg1)) && (super.selected))){ selected = false; }; _toggle = _arg1; if (_toggle){ addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true); } else { removeEventListener(MouseEvent.CLICK, toggleSelected); }; invalidate(InvalidationType.STATE); } override public function set selected(_arg1:Boolean):void{ _selected = _arg1; if (_toggle){ invalidate(InvalidationType.STATE); }; } protected function drawTextFormat():void{ var _local1:Object = UIComponent.getStyleDefinition(); var _local2:TextFormat = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); var _local3:TextFormat = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); } public function get label():String{ return (_label); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition())); } } }//package fl.controls
Section 134
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 135
//InvalidationType (fl.core.InvalidationType) package fl.core { public class InvalidationType { public static const SIZE:String = "size"; public static const ALL:String = "all"; public static const DATA:String = "data"; public static const SCROLL:String = "scroll"; public static const STATE:String = "state"; public static const STYLES:String = "styles"; public static const SELECTED:String = "selected"; public static const RENDERER_STYLES:String = "rendererStyles"; } }//package fl.core
Section 136
//UIComponent (fl.core.UIComponent) package fl.core { import flash.display.*; import flash.text.*; import flash.events.*; import flash.utils.*; import fl.managers.*; import fl.events.*; import flash.system.*; public class UIComponent extends Sprite { protected var _x:Number; protected var _enabled:Boolean;// = true protected var callLaterMethods:Dictionary; private var _mouseFocusEnabled:Boolean;// = true private var tempText:TextField; private var _focusEnabled:Boolean;// = true protected var startHeight:Number; protected var _height:Number; protected var invalidateFlag:Boolean;// = false protected var _oldIMEMode:String;// = null protected var _inspector:Boolean;// = false protected var startWidth:Number; public var focusTarget:IFocusManagerComponent; protected var errorCaught:Boolean;// = false protected var invalidHash:Object; protected var sharedStyles:Object; protected var uiFocusRect:DisplayObject; protected var isLivePreview:Boolean;// = false protected var _imeMode:String;// = null protected var _width:Number; protected var instanceStyles:Object; public var version:String;// = "3.0.0.16" protected var isFocused:Boolean;// = false protected var _y:Number; public static var inCallLaterPhase:Boolean = false; private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)}; public static var createAccessibilityImplementation:Function; private static var focusManagers:Dictionary = new Dictionary(false); public function UIComponent(){ instanceStyles = {}; sharedStyles = {}; invalidHash = {}; callLaterMethods = new Dictionary(); StyleManager.registerInstance(this); configUI(); invalidate(InvalidationType.ALL); tabEnabled = (this is IFocusManagerComponent); focusRect = false; if (tabEnabled){ addEventListener(FocusEvent.FOCUS_IN, focusInHandler); addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler); addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); }; initializeFocusManager(); addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true); } public function getStyle(_arg1:String):Object{ return (instanceStyles[_arg1]); } protected function checkLivePreview():Boolean{ var className:String; if (parent == null){ return (false); }; try { className = getQualifiedClassName(parent); } catch(e:Error) { }; return ((className == "fl.livepreview::LivePreviewParent")); } private function callLaterDispatcher(_arg1:Event):void{ var _local3:Object; if (_arg1.type == Event.ADDED_TO_STAGE){ removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher); stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); return; }; _arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher); if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); return; }; inCallLaterPhase = true; var _local2:Dictionary = callLaterMethods; for (_local3 in _local2) { _local3(); delete _local2[_local3]; }; inCallLaterPhase = false; } protected function validate():void{ invalidHash = {}; } protected function focusOutHandler(_arg1:FocusEvent):void{ if (isOurFocus((_arg1.target as DisplayObject))){ drawFocus(false); isFocused = false; }; } public function set mouseFocusEnabled(_arg1:Boolean):void{ _mouseFocusEnabled = _arg1; } public function getFocus():InteractiveObject{ if (stage){ return (stage.focus); }; return (null); } override public function get height():Number{ return (_height); } private function addedHandler(_arg1:Event):void{ removeEventListener("addedToStage", addedHandler); initializeFocusManager(); } protected function getStyleValue(_arg1:String):Object{ return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]); } public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{ invalidHash[_arg1] = true; if (_arg2){ this.callLater(draw); }; } protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((_arg1 == this)); } public function get enabled():Boolean{ return (_enabled); } protected function getScaleX():Number{ return (super.scaleX); } protected function getScaleY():Number{ return (super.scaleY); } public function get focusEnabled():Boolean{ return (_focusEnabled); } protected function afterComponentParameters():void{ } override public function get scaleY():Number{ return ((height / startHeight)); } protected function setIMEMode(_arg1:Boolean){ var enabled = _arg1; if (_imeMode != null){ if (enabled){ IME.enabled = true; _oldIMEMode = IME.conversionMode; try { if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _imeMode; }; errorCaught = false; } catch(e:Error) { errorCaught = true; throw (new Error(("IME mode not supported: " + _imeMode))); }; } else { if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _oldIMEMode; }; IME.enabled = false; }; }; } protected function draw():void{ if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } override public function set height(_arg1:Number):void{ if (_height == _arg1){ return; }; setSize(width, _arg1); } protected function configUI():void{ isLivePreview = checkLivePreview(); var _local1:Number = rotation; rotation = 0; var _local2:Number = super.width; var _local3:Number = super.height; var _local4 = 1; super.scaleY = _local4; super.scaleX = _local4; setSize(_local2, _local3); move(super.x, super.y); rotation = _local1; startWidth = _local2; startHeight = _local3; if (numChildren > 0){ removeChildAt(0); }; } protected function setScaleY(_arg1:Number):void{ super.scaleY = _arg1; } override public function get scaleX():Number{ return ((width / startWidth)); } protected function setScaleX(_arg1:Number):void{ super.scaleX = _arg1; } private function initializeFocusManager():void{ if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true); } else { createFocusManager(); }; } protected function keyDownHandler(_arg1:KeyboardEvent):void{ } public function set focusManager(_arg1:IFocusManager):void{ UIComponent.focusManagers[this] = _arg1; } public function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } protected function isInvalid(_arg1:String, ... _args):Boolean{ if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){ return (true); }; while (_args.length > 0) { if (invalidHash[_args.pop()]){ return (true); }; }; return (false); } public function setStyle(_arg1:String, _arg2:Object):void{ if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; instanceStyles[_arg1] = _arg2; invalidate(InvalidationType.STYLES); } override public function get visible():Boolean{ return (super.visible); } protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (isOurFocus((_arg1.target as DisplayObject))){ _local2 = focusManager; if (((_local2) && (_local2.showFocusIndicator))){ drawFocus(true); isFocused = true; }; }; } public function get componentInspectorSetting():Boolean{ return (_inspector); } override public function get x():Number{ return ((isNaN(_x)) ? super.x : _x); } override public function get y():Number{ return ((isNaN(_y)) ? super.y : _y); } public function set enabled(_arg1:Boolean):void{ if (_arg1 == _enabled){ return; }; _enabled = _arg1; invalidate(InvalidationType.STATE); } public function setSize(_arg1:Number, _arg2:Number):void{ _width = _arg1; _height = _arg2; invalidate(InvalidationType.SIZE); dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false)); } protected function keyUpHandler(_arg1:KeyboardEvent):void{ } public function setSharedStyle(_arg1:String, _arg2:Object):void{ if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; sharedStyles[_arg1] = _arg2; if (instanceStyles[_arg1] == null){ invalidate(InvalidationType.STYLES); }; } public function set focusEnabled(_arg1:Boolean):void{ _focusEnabled = _arg1; } override public function set width(_arg1:Number):void{ if (_width == _arg1){ return; }; setSize(_arg1, height); } public function setFocus():void{ if (stage){ stage.focus = this; }; } override public function set scaleX(_arg1:Number):void{ setSize((startWidth * _arg1), height); } public function get mouseFocusEnabled():Boolean{ return (_mouseFocusEnabled); } override public function set scaleY(_arg1:Number):void{ setSize(width, (startHeight * _arg1)); } protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{ var skin = _arg1; var classDef:Object; if ((skin is Class)){ return ((new (skin) as DisplayObject)); }; if ((skin is DisplayObject)){ (skin as DisplayObject).x = 0; (skin as DisplayObject).y = 0; return ((skin as DisplayObject)); }; try { classDef = getDefinitionByName(skin.toString()); } catch(e:Error) { try { classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object); } catch(e:Error) { }; }; if (classDef == null){ return (null); }; return ((new (classDef) as DisplayObject)); } protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{ var _local3:String; for (_local3 in _arg2) { _arg1.setStyle(_local3, getStyleValue(_arg2[_local3])); }; } protected function initializeAccessibility():void{ if (UIComponent.createAccessibilityImplementation != null){ UIComponent.createAccessibilityImplementation(this); }; } public function get focusManager():IFocusManager{ var _local1:DisplayObject = this; while (_local1) { if (UIComponent.focusManagers[_local1] != null){ return (IFocusManager(UIComponent.focusManagers[_local1])); }; _local1 = _local1.parent; }; return (null); } override public function get width():Number{ return (_width); } protected function beforeComponentParameters():void{ } protected function callLater(_arg1:Function):void{ if (inCallLaterPhase){ return; }; callLaterMethods[_arg1] = true; if (stage != null){ stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); } else { addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); }; } public function move(_arg1:Number, _arg2:Number):void{ _x = _arg1; _y = _arg2; super.x = Math.round(_arg1); super.y = Math.round(_arg2); dispatchEvent(new ComponentEvent(ComponentEvent.MOVE)); } public function validateNow():void{ invalidate(InvalidationType.ALL, false); draw(); } override public function set visible(_arg1:Boolean):void{ if (super.visible == _arg1){ return; }; super.visible = _arg1; var _local2:String = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE; dispatchEvent(new ComponentEvent(_local2, true)); } protected function createFocusManager():void{ if (focusManagers[stage] == null){ focusManagers[stage] = new FocusManager(stage); }; } protected function hookAccessibility(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, hookAccessibility); initializeAccessibility(); } public function set componentInspectorSetting(_arg1:Boolean):void{ _inspector = _arg1; if (_inspector){ beforeComponentParameters(); } else { afterComponentParameters(); }; } override public function set y(_arg1:Number):void{ move(_x, _arg1); } public function drawFocus(_arg1:Boolean):void{ var _local2:Number; isFocused = _arg1; if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){ removeChild(uiFocusRect); uiFocusRect = null; }; if (_arg1){ uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite); if (uiFocusRect == null){ return; }; _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = -(_local2); uiFocusRect.y = -(_local2); uiFocusRect.width = (width + (_local2 * 2)); uiFocusRect.height = (height + (_local2 * 2)); addChildAt(uiFocusRect, 0); }; } override public function set x(_arg1:Number):void{ move(_arg1, _y); } public function drawNow():void{ draw(); } public static function getStyleDefinition():Object{ return (defaultStyles); } public static function mergeStyles(... _args):Object{ var _local5:Object; var _local6:String; var _local2:Object = {}; var _local3:uint = _args.length; var _local4:uint; while (_local4 < _local3) { _local5 = _args[_local4]; for (_local6 in _local5) { if (_local2[_local6] != null){ } else { _local2[_local6] = _args[_local4][_local6]; }; }; _local4++; }; return (_local2); } } }//package fl.core
Section 137
//ComponentEvent (fl.events.ComponentEvent) package fl.events { import flash.events.*; public class ComponentEvent extends Event { public static const HIDE:String = "hide"; public static const BUTTON_DOWN:String = "buttonDown"; public static const MOVE:String = "move"; public static const RESIZE:String = "resize"; public static const ENTER:String = "enter"; public static const LABEL_CHANGE:String = "labelChange"; public static const SHOW:String = "show"; public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("ComponentEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new ComponentEvent(type, bubbles, cancelable)); } } }//package fl.events
Section 138
//FocusManager (fl.managers.FocusManager) package fl.managers { import fl.controls.*; import flash.display.*; import fl.core.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.ui.*; public class FocusManager implements IFocusManager { private var focusableObjects:Dictionary; private var _showFocusIndicator:Boolean;// = true private var defButton:Button; private var focusableCandidates:Array; private var _form:DisplayObjectContainer; private var _defaultButtonEnabled:Boolean;// = true private var activated:Boolean;// = false private var _defaultButton:Button; private var calculateCandidates:Boolean;// = true private var lastFocus:InteractiveObject; private var lastAction:String; public function FocusManager(_arg1:DisplayObjectContainer){ focusableObjects = new Dictionary(true); if (_arg1 != null){ _form = _arg1; addFocusables(DisplayObject(_arg1)); _arg1.addEventListener(Event.ADDED, addedHandler); _arg1.addEventListener(Event.REMOVED, removedHandler); activate(); }; } public function get showFocusIndicator():Boolean{ return (_showFocusIndicator); } private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{ var _local7:DisplayObject; var _local8:IFocusManagerGroup; var _local9:int; var _local10:DisplayObject; var _local11:IFocusManagerGroup; var _local5:int = focusableCandidates.length; var _local6:int = _arg1; while (true) { if (_arg2){ _arg1--; } else { _arg1++; }; if (_arg3){ if (((_arg2) && ((_arg1 < 0)))){ break; }; if (((!(_arg2)) && ((_arg1 == _local5)))){ break; }; } else { _arg1 = ((_arg1 + _local5) % _local5); if (_local6 == _arg1){ break; }; }; if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){ _local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1])); if ((_local7 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local7); _local9 = 0; while (_local9 < focusableCandidates.length) { _local10 = focusableCandidates[_local9]; if ((_local10 is IFocusManagerGroup)){ _local11 = IFocusManagerGroup(_local10); if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){ _arg1 = _local9; break; }; }; _local9++; }; }; return (_arg1); }; }; return (_arg1); } private function mouseFocusChangeHandler(_arg1:FocusEvent):void{ if ((_arg1.relatedObject is TextField)){ return; }; _arg1.preventDefault(); } public function set form(_arg1:DisplayObjectContainer):void{ _form = _arg1; } private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{ var focusable:IFocusManagerComponent; var io:InteractiveObject; var doc:DisplayObjectContainer; var i:int; var child:DisplayObject; var o = _arg1; var skipTopLevel = _arg2; if (!skipTopLevel){ if ((o is IFocusManagerComponent)){ focusable = IFocusManagerComponent(o); if (focusable.focusEnabled){ if (((focusable.tabEnabled) && (isTabVisible(o)))){ focusableObjects[o] = true; calculateCandidates = true; }; o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; } else { if ((o is InteractiveObject)){ io = (o as InteractiveObject); if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){ focusableObjects[io] = true; calculateCandidates = true; }; io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; }; }; if ((o is DisplayObjectContainer)){ doc = DisplayObjectContainer(o); o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){ i = 0; while (i < doc.numChildren) { try { child = doc.getChildAt(i); if (child != null){ addFocusables(doc.getChildAt(i)); }; } catch(error:SecurityError) { }; i = (i + 1); }; }; }; } private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{ return (_arg1.getChildIndex(_arg2)); } public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{ var _local2:InteractiveObject = _arg1; while (_arg1) { if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){ return (_arg1); }; _arg1 = _arg1.parent; }; return (_local2); } private function focusOutHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject = (_arg1.target as InteractiveObject); } private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{ var _local3:IFocusManagerGroup; if (!isEnabledAndVisible(_arg1)){ return (false); }; if ((_arg1 is IFocusManagerGroup)){ _local3 = IFocusManagerGroup(_arg1); if (_arg2 == _local3.groupName){ return (false); }; }; return (true); } private function setFocusToNextObject(_arg1:FocusEvent):void{ if (!hasFocusableObjects()){ return; }; var _local2:InteractiveObject = getNextFocusManagerComponent(_arg1.shiftKey); if (_local2){ setFocus(_local2); }; } private function sortFocusableObjectsTabIndex():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){ focusableCandidates.push(_local2); }; }; focusableCandidates.sort(sortByTabIndex); } private function removeFocusables(_arg1:DisplayObject):void{ var _local2:Object; var _local3:DisplayObject; if ((_arg1 is DisplayObjectContainer)){ _arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); _arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); for (_local2 in focusableObjects) { _local3 = DisplayObject(_local2); if (DisplayObjectContainer(_arg1).contains(_local3)){ if (_local3 == lastFocus){ lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local2]; calculateCandidates = true; }; }; }; } private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{ while (_arg1 != InteractiveObject(form)) { if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){ return (_arg1); }; _arg1 = _arg1.parent; if (_arg1 == null){ break; }; }; return (null); } public function sendDefaultButtonEvent():void{ defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); } private function addedHandler(_arg1:Event):void{ var _local2:DisplayObject = DisplayObject(_arg1.target); if (_local2.stage){ addFocusables(DisplayObject(_arg1.target)); }; } private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{ var _local3:TextField; var _local4:SimpleButton; var _local2:DisplayObjectContainer = DisplayObject(form).parent; while (_arg1 != _local2) { if ((_arg1 is UIComponent)){ if (!UIComponent(_arg1).enabled){ return (false); }; } else { if ((_arg1 is TextField)){ _local3 = TextField(_arg1); if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){ return (false); }; } else { if ((_arg1 is SimpleButton)){ _local4 = SimpleButton(_arg1); if (!_local4.enabled){ return (false); }; }; }; }; if (!_arg1.visible){ return (false); }; _arg1 = _arg1.parent; }; return (true); } private function tabChildrenChangeHandler(_arg1:Event):void{ if (_arg1.target != _arg1.currentTarget){ return; }; calculateCandidates = true; var _local2:DisplayObjectContainer = DisplayObjectContainer(_arg1.target); if (_local2.tabChildren){ addFocusables(_local2, true); } else { removeFocusables(_local2); }; } private function deactivateHandler(_arg1:Event):void{ var _local2:InteractiveObject = InteractiveObject(_arg1.target); } public function setFocus(_arg1:InteractiveObject):void{ if ((_arg1 is IFocusManagerComponent)){ IFocusManagerComponent(_arg1).setFocus(); } else { form.stage.focus = _arg1; }; } public function getFocus():InteractiveObject{ var _local1:InteractiveObject = form.stage.focus; return (findFocusManagerComponent(_local1)); } private function hasFocusableObjects():Boolean{ var _local1:Object; for (_local1 in focusableObjects) { return (true); }; return (false); } private function tabIndexChangeHandler(_arg1:Event):void{ calculateCandidates = true; } public function set defaultButton(_arg1:Button):void{ var _local2:Button = (_arg1) ? Button(_arg1) : null; if (_local2 != _defaultButton){ if (_defaultButton){ _defaultButton.emphasized = false; }; if (defButton){ defButton.emphasized = false; }; _defaultButton = _local2; defButton = _local2; if (_local2){ _local2.emphasized = true; }; }; } private function sortFocusableObjects():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){ sortFocusableObjectsTabIndex(); return; }; focusableCandidates.push(_local2); }; focusableCandidates.sort(sortByDepth); } private function keyFocusChangeHandler(_arg1:FocusEvent):void{ showFocusIndicator = true; if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){ setFocusToNextObject(_arg1); _arg1.preventDefault(); }; } private function getIndexOfFocusedObject(_arg1:DisplayObject):int{ var _local2:int = focusableCandidates.length; var _local3:int; _local3 = 0; while (_local3 < _local2) { if (focusableCandidates[_local3] == _arg1){ return (_local3); }; _local3++; }; return (-1); } public function hideFocus():void{ } private function removedHandler(_arg1:Event):void{ var _local2:int; var _local4:InteractiveObject; var _local3:DisplayObject = DisplayObject(_arg1.target); if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){ if (_local3 == lastFocus){ IFocusManagerComponent(lastFocus).drawFocus(false); lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local3]; calculateCandidates = true; } else { if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){ _local4 = (_local3 as InteractiveObject); if (_local4){ if (_local4 == lastFocus){ lastFocus = null; }; delete focusableObjects[_local4]; calculateCandidates = true; }; _local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); }; }; removeFocusables(_local3); } private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{ var _local5:int; var _local6:String; var _local7:String; var _local3 = ""; var _local4 = ""; var _local8 = "0000"; var _local9:DisplayObject = DisplayObject(_arg1); var _local10:DisplayObject = DisplayObject(_arg2); while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) { _local5 = getChildIndex(_local9.parent, _local9); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local3 = (_local7 + _local3); _local9 = _local9.parent; }; while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) { _local5 = getChildIndex(_local10.parent, _local10); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local4 = (_local7 + _local4); _local10 = _local10.parent; }; return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0); } public function get defaultButton():Button{ return (_defaultButton); } private function activateHandler(_arg1:Event):void{ var _local2:InteractiveObject = InteractiveObject(_arg1.target); if (lastFocus){ if ((lastFocus is IFocusManagerComponent)){ IFocusManagerComponent(lastFocus).setFocus(); } else { form.stage.focus = lastFocus; }; }; lastAction = "ACTIVATE"; } public function showFocus():void{ } public function set defaultButtonEnabled(_arg1:Boolean):void{ _defaultButtonEnabled = _arg1; } public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{ var _local8:IFocusManagerGroup; if (!hasFocusableObjects()){ return (null); }; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; var _local2:DisplayObject = form.stage.focus; _local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2))); var _local3 = ""; if ((_local2 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local2); _local3 = _local8.groupName; }; var _local4:int = getIndexOfFocusedObject(_local2); var _local5:Boolean; var _local6:int = _local4; if (_local4 == -1){ if (_arg1){ _local4 = focusableCandidates.length; }; _local5 = true; }; var _local7:int = getIndexOfNextObject(_local4, _arg1, _local5, _local3); return (findFocusManagerComponent(focusableCandidates[_local7])); } private function mouseDownHandler(_arg1:MouseEvent):void{ if (_arg1.isDefaultPrevented()){ return; }; var _local2:InteractiveObject = getTopLevelFocusTarget(InteractiveObject(_arg1.target)); if (!_local2){ return; }; showFocusIndicator = false; if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){ setFocus(_local2); }; lastAction = "MOUSEDOWN"; } private function isTabVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer = _arg1.parent; while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) { if (!_local2.tabChildren){ return (false); }; _local2 = _local2.parent; }; return (true); } public function get nextTabIndex():int{ return (0); } private function keyDownHandler(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.TAB){ lastAction = "KEY"; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; }; if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){ sendDefaultButtonEvent(); }; } private function focusInHandler(_arg1:FocusEvent):void{ var _local3:Button; var _local2:InteractiveObject = InteractiveObject(_arg1.target); if (form.contains(_local2)){ lastFocus = findFocusManagerComponent(InteractiveObject(_local2)); if ((lastFocus is Button)){ _local3 = Button(lastFocus); if (defButton){ defButton.emphasized = false; defButton = _local3; _local3.emphasized = true; }; } else { if (((defButton) && (!((defButton == _defaultButton))))){ defButton.emphasized = false; defButton = _defaultButton; _defaultButton.emphasized = true; }; }; }; } private function tabEnabledChangeHandler(_arg1:Event):void{ calculateCandidates = true; var _local2:InteractiveObject = InteractiveObject(_arg1.target); var _local3 = (focusableObjects[_local2] == true); if (_local2.tabEnabled){ if (((!(_local3)) && (isTabVisible(_local2)))){ if (!(_local2 is IFocusManagerComponent)){ _local2.focusRect = false; }; focusableObjects[_local2] = true; }; } else { if (_local3){ delete focusableObjects[_local2]; }; }; } public function set showFocusIndicator(_arg1:Boolean):void{ _showFocusIndicator = _arg1; } public function get form():DisplayObjectContainer{ return (_form); } private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{ return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2)); } public function get defaultButtonEnabled():Boolean{ return (_defaultButtonEnabled); } public function activate():void{ if (activated){ return; }; form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true); form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true); form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true); form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true); form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = true; if (lastFocus){ setFocus(lastFocus); }; } public function deactivate():void{ form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler); form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.removeEventListener(Event.ACTIVATE, activateHandler); form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler); form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = false; } } }//package fl.managers
Section 139
//IFocusManager (fl.managers.IFocusManager) package fl.managers { import fl.controls.*; import flash.display.*; public interface IFocusManager { function getFocus():InteractiveObject; function deactivate():void; function set defaultButton(_arg1:Button):void; function set showFocusIndicator(_arg1:Boolean):void; function get defaultButtonEnabled():Boolean; function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject; function get nextTabIndex():int; function get defaultButton():Button; function get showFocusIndicator():Boolean; function hideFocus():void; function activate():void; function showFocus():void; function set defaultButtonEnabled(_arg1:Boolean):void; function setFocus(_arg1:InteractiveObject):void; function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject; } }//package fl.managers
Section 140
//IFocusManagerComponent (fl.managers.IFocusManagerComponent) package fl.managers { public interface IFocusManagerComponent { function set focusEnabled(_arg1:Boolean):void; function drawFocus(_arg1:Boolean):void; function setFocus():void; function get focusEnabled():Boolean; function get tabEnabled():Boolean; function get tabIndex():int; function get mouseFocusEnabled():Boolean; } }//package fl.managers
Section 141
//IFocusManagerGroup (fl.managers.IFocusManagerGroup) package fl.managers { public interface IFocusManagerGroup { function get groupName():String; function get selected():Boolean; function set groupName(_arg1:String):void; function set selected(_arg1:Boolean):void; } }//package fl.managers
Section 142
//StyleManager (fl.managers.StyleManager) package fl.managers { import fl.core.*; import flash.text.*; import flash.utils.*; public class StyleManager { private var classToInstancesDict:Dictionary; private var globalStyles:Object; private var styleToClassesHash:Object; private var classToStylesDict:Dictionary; private var classToDefaultStylesDict:Dictionary; private static var _instance:StyleManager; public function StyleManager(){ styleToClassesHash = {}; classToInstancesDict = new Dictionary(true); classToStylesDict = new Dictionary(true); classToDefaultStylesDict = new Dictionary(true); globalStyles = UIComponent.getStyleDefinition(); } public static function clearComponentStyle(_arg1:Object, _arg2:String):void{ var _local3:Class = getClassDef(_arg1); var _local4:Object = getInstance().classToStylesDict[_local3]; if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){ delete _local4[_arg2]; invalidateComponentStyle(_local3, _arg2); }; } private static function getClassDef(_arg1:Object):Class{ var component = _arg1; if ((component is Class)){ return ((component as Class)); }; try { return ((getDefinitionByName(getQualifiedClassName(component)) as Class)); } catch(e:Error) { if ((component is UIComponent)){ try { return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class)); } catch(e:Error) { }; }; }; return (null); } public static function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Class = getClassDef(_arg1); var _local5:Object = getInstance().classToStylesDict[_local4]; if (_local5 == null){ _local5 = (getInstance().classToStylesDict[_local4] = {}); }; if (_local5 == _arg3){ return; }; _local5[_arg2] = _arg3; invalidateComponentStyle(_local4, _arg2); } private static function setSharedStyles(_arg1:UIComponent):void{ var _local5:String; var _local2:StyleManager = getInstance(); var _local3:Class = getClassDef(_arg1); var _local4:Object = _local2.classToDefaultStylesDict[_local3]; for (_local5 in _local4) { _arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5)); }; } public static function getComponentStyle(_arg1:Object, _arg2:String):Object{ var _local3:Class = getClassDef(_arg1); var _local4:Object = getInstance().classToStylesDict[_local3]; return (((_local4)==null) ? null : _local4[_arg2]); } private static function getInstance(){ if (_instance == null){ _instance = new (StyleManager); }; return (_instance); } private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{ var _local4:Object; var _local5:UIComponent; var _local3:Dictionary = getInstance().classToInstancesDict[_arg1]; if (_local3 == null){ return; }; for (_local4 in _local3) { _local5 = (_local4 as UIComponent); if (_local5 == null){ } else { _local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2)); }; }; } private static function invalidateStyle(_arg1:String):void{ var _local3:Object; var _local2:Dictionary = getInstance().styleToClassesHash[_arg1]; if (_local2 == null){ return; }; for (_local3 in _local2) { invalidateComponentStyle(Class(_local3), _arg1); }; } public static function registerInstance(_arg1:UIComponent):void{ var target:Class; var defaultStyles:Object; var styleToClasses:Object; var n:String; var instance = _arg1; var inst:StyleManager = getInstance(); var classDef:Class = getClassDef(instance); if (classDef == null){ return; }; if (inst.classToInstancesDict[classDef] == null){ inst.classToInstancesDict[classDef] = new Dictionary(true); target = classDef; while (defaultStyles == null) { if (target["getStyleDefinition"] != null){ defaultStyles = target["getStyleDefinition"](); break; }; try { target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class); } catch(err:Error) { try { target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class); } catch(e:Error) { defaultStyles = UIComponent.getStyleDefinition(); break; }; }; }; styleToClasses = inst.styleToClassesHash; for (n in defaultStyles) { if (styleToClasses[n] == null){ styleToClasses[n] = new Dictionary(true); }; styleToClasses[n][classDef] = true; }; inst.classToDefaultStylesDict[classDef] = defaultStyles; if (inst.classToStylesDict[classDef] == null){ inst.classToStylesDict[classDef] = {}; }; }; inst.classToInstancesDict[classDef][instance] = true; setSharedStyles(instance); } public static function getStyle(_arg1:String):Object{ return (getInstance().globalStyles[_arg1]); } private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{ var _local3:Class = getClassDef(_arg1); var _local4:StyleManager = getInstance(); var _local5:Object = _local4.classToStylesDict[_local3][_arg2]; if (_local5 != null){ return (_local5); }; _local5 = _local4.globalStyles[_arg2]; if (_local5 != null){ return (_local5); }; return (_local4.classToDefaultStylesDict[_local3][_arg2]); } public static function setStyle(_arg1:String, _arg2:Object):void{ var _local3:Object = getInstance().globalStyles; if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; _local3[_arg1] = _arg2; invalidateStyle(_arg1); } } }//package fl.managers
Section 143
//gAnimation (gdk.game.gAnimation) package gdk.game { import gdk.game.*; class gAnimation { public var totaltime:Number; public var obj:Object; public var method:Function; public var time:Object; function gAnimation(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Function=null){ obj = _arg1; totaltime = _arg2; time = _arg3; method = _arg4; } } }//package gdk.game
Section 144
//gGame (gdk.game.gGame) package gdk.game { import flash.display.*; import flash.events.*; import flash.system.*; public class gGame extends Sprite { public var GamePaused:Boolean; public var GameAlive:Boolean; private var KEY4EVTUP:Array; private var ANIMATIONS:Array; private var EVT_TIMER:Number; private var EVT_QUEUE:Array; private var KEY4EVTDOWN:Array; private var KEY2TRACK:Array; public function gGame(){ EVT_TIMER = 0; EVT_QUEUE = []; ANIMATIONS = []; GameAlive = false; GamePaused = false; KEY2TRACK = []; KEY4EVTDOWN = []; KEY4EVTUP = []; stage.addEventListener(KeyboardEvent.KEY_DOWN, evtKeyDown); stage.addEventListener(KeyboardEvent.KEY_UP, evtKeyUp); addEventListener(Event.ENTER_FRAME, evtEnterFrame); } public function resumePlay(){ if (!GamePaused){ return; }; GamePaused = false; } public function cleanUp(_arg1:Object){ evt((10 * 24), cleanUp, this); } public function evtKeyUp(_arg1:KeyboardEvent){ var _local2:*; for (_local2 in KEY2TRACK) { if (KEY2TRACK[_local2].keycode == _arg1.keyCode){ KEY2TRACK[_local2].isdown = false; break; }; }; } public function evtEnterFrame(_arg1:Event){ var _local2:*; var _local3:Number; var _local4:Array; var _local5:gAnimation; if (!GameAlive){ return; }; if (GamePaused){ return; }; eventQueue(); if (ANIMATIONS.length > 0){ _local4 = []; for (_local2 in ANIMATIONS) { _local5 = ANIMATIONS[_local2]; _local5.time++; if (_local5.method == null){ _local5.obj.animate(_local5.time, _local5.totaltime); } else { _local5.method.call(_local5.obj, _local5.time, _local5.totaltime); }; if (_local5.time < _local5.totaltime){ _local4.push(_local5); }; }; ANIMATIONS = _local4; }; nextState(); } public function pausePlay(){ if (GamePaused){ return; }; GamePaused = true; } public function keyDownHandler(_arg1:uint, _arg2:Function, _arg3:Object, _arg4:Object=null){ KEY4EVTDOWN.push({keycode:_arg1, handler:_arg2, obj:_arg3, data:_arg4}); } public function keyUpHandler(_arg1:uint, _arg2:Function, _arg3:Object){ KEY4EVTUP.push({keycode:_arg1, handler:_arg2, obj:_arg3}); } public function animation(_arg1:Object, _arg2:Number, _arg3:Function=null){ ANIMATIONS.push(new gAnimation(_arg1, _arg2, 0, _arg3)); } public function trackKey(_arg1:uint){ KEY2TRACK.push({keycode:_arg1, isdown:false}); } public function isKeyDown(_arg1:uint):Boolean{ var _local2:Object; for each (_local2 in KEY2TRACK) { if ((((_local2.keycode == _arg1)) && (_local2.isdown))){ return (true); }; }; return (false); } protected function onDestroy(){ } public function ready(){ GameAlive = true; GamePaused = false; evt((10 * 24), cleanUp, this); } protected function nextState(){ } public function eventQueue(){ var _local1:gTimedEvent; var _local5:Number; var _local6:Array; EVT_TIMER++; var _local2:Number = 0; var _local3:Array = []; var _local4:Number = EVT_QUEUE.length; _local6 = []; _local5 = 0; while (_local5 < _local4) { _local1 = EVT_QUEUE[_local5]; if (!_local1.cancel){ if (EVT_TIMER >= _local1.t){ _local3.push(_local1); } else { _local6.push(_local1); }; }; _local5++; }; EVT_QUEUE = _local6; for (_local5 in _local3) { _local1 = _local3[_local5]; _local1.method.call(_local1.obj, _local1.data); }; } public function isOneKeyDown(_arg1:Array):Boolean{ var _local2:Object; var _local3:Number; for each (_local2 in KEY2TRACK) { for each (_local3 in _arg1) { if ((((_local2.keycode == _local3)) && (_local2.isdown))){ return (true); }; }; }; return (false); } public function evt(_arg1:Number, _arg2:Function, _arg3:Object=null, _arg4:Object=null){ var _local5:gTimedEvent = new gTimedEvent((EVT_TIMER + _arg1), _arg2, _arg3, _arg4, false); var _local6:Number = EVT_QUEUE.length; var _local7:* = 0; while (_local7 < _local6) { if (_local5.t < EVT_QUEUE[_local7].t){ EVT_QUEUE.splice(_local7, 0, _local5); return; }; _local7++; }; EVT_QUEUE.push(_local5); return (_local5); } public function destroy(){ trace("gGame->destroy()"); GameAlive = false; EVT_QUEUE = []; KEY2TRACK = []; KEY4EVTDOWN = []; KEY4EVTUP = []; ANIMATIONS = []; onDestroy(); try { System.gc(); } catch(e:Error) { trace("no garbage collection ???"); }; } public function evtKeyDown(_arg1:KeyboardEvent){ var _local2:*; for (_local2 in KEY2TRACK) { if (KEY2TRACK[_local2].keycode == _arg1.keyCode){ KEY2TRACK[_local2].isdown = true; break; }; }; for (_local2 in KEY4EVTDOWN) { if (KEY4EVTDOWN[_local2].keycode == _arg1.keyCode){ KEY4EVTDOWN[_local2].handler.call(KEY4EVTDOWN[_local2].obj, KEY4EVTDOWN[_local2].data); break; }; }; } } }//package gdk.game
Section 145
//gTimedEvent (gdk.game.gTimedEvent) package gdk.game { import gdk.game.*; class gTimedEvent { public var method:Function; public var t:Number; public var obj:Object; public var cancel:Boolean; public var data:Object; function gTimedEvent(_arg1:Number, _arg2:Function, _arg3:Object, _arg4:Object=null, _arg5:Boolean=false){ t = _arg1; method = _arg2; obj = _arg3; data = _arg4; cancel = _arg5; } } }//package gdk.game
Section 146
//MochiAd (mochi.as3.MochiAd) package mochi.as3 { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class MochiAd { public static function getVersion():String{ return (MochiServices.getVersion()); } public static function showClickAwayAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:5500, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{ }, ad_finished:function ():void{ }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; chk["onEnterFrame"] = function ():void{ var _local4:Number; if (!this.parent){ delete this.onEnterFrame; return; }; var _local1:Object = this.parent._mochiad_ctr; var _local2:Number = (getTimer() - this.started); var _local3:Boolean; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; _local3 = true; chk.started = getTimer(); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (this.root == null){ _local3 = true; }; if (_local3){ delete this.onEnterFrame; }; }; doOnEnterFrame(chk); } public static function _isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function _allowDomains(_arg1:String):String{ var _local2:String = _arg1.split("/")[2].split(":")[0]; if (Security.sandboxType == "application"){ return (_local2); }; Security.allowDomain("*"); Security.allowDomain(_local2); Security.allowInsecureDomain("*"); Security.allowInsecureDomain(_local2); return (_local2); } public static function unload(_arg1:Object):Boolean{ if (((_arg1.clip) && (_arg1.clip._mochiad))){ _arg1 = _arg1.clip; }; if (_arg1.origFrameRate != undefined){ _arg1.stage.frameRate = _arg1.origFrameRate; }; if (!_arg1._mochiad){ return (false); }; if (_arg1._mochiad._containerLCName != undefined){ _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"}); }; if (_arg1._mochiad.onUnload){ _arg1._mochiad.onUnload(); }; delete _arg1._mochiad_loaded; delete _arg1._mochiad; return (true); } public static function showInterLevelAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:5500, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; var fadeout_time:Number = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = (_arg1 - 250); }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; chk["onEnterFrame"] = function ():void{ var _local4:Number; if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var _local1:Object = this.parent._mochiad_ctr; var _local2:Number = (getTimer() - this.started); var _local3:Boolean; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (_local2 > chk.ad_msec){ _local3 = true; }; if (_local3){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = this.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function _parseOptions(_arg1:Object, _arg2:Object):Object{ var _local4:String; var _local5:Array; var _local6:Number; var _local7:Array; var _local3:Object = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; if (_arg1){ for (_local4 in _arg1) { _local3[_local4] = _arg1[_local4]; }; }; if (_local3.clip == undefined){ throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite.")); }; _arg1 = _local3.clip.loaderInfo.parameters.mochiad_options; if (_arg1){ _local5 = _arg1.split("&"); _local6 = 0; while (_local6 < _local5.length) { _local7 = _local5[_local6].split("="); _local3[unescape(_local7[0])] = unescape(_local7[1]); _local6++; }; }; if (_local3.id == "test"){ trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!"); }; return (_local3); } public static function _cleanup(_arg1:Object):void{ var k:String; var lc:LocalConnection; var f:Function; var mc = _arg1; if (("lc" in mc)){ lc = mc.lc; f = function ():void{ try { lc.client = null; lc.close(); } catch(e:Error) { }; }; setTimeout(f, 0); }; var idx:Number = DisplayObjectContainer(mc).numChildren; while (idx > 0) { idx = (idx - 1); DisplayObjectContainer(mc).removeChildAt(idx); }; for (k in mc) { delete mc[k]; }; } public static function load(_arg1:Object):MovieClip{ var clip:Object; var mc:MovieClip; var k:String; var server:String; var hostname:String; var lc:LocalConnection; var name:String; var loader:Loader; var g:Function; var req:URLRequest; var v:Object; var options = _arg1; var DEFAULTS:Object = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"}; options = MochiAd._parseOptions(options, DEFAULTS); options.swfv = 9; options.mav = MochiAd.getVersion(); clip = options.clip; if (!(clip is DisplayObject)){ trace("Warning: Object passed as container clip not a descendant of the DisplayObject type"); return (null); }; if (MovieClip(clip).stage == null){ trace("Warning: Container clip for ad is not attached to the stage"); return (null); }; if (!MochiAd._isNetworkAvailable()){ return (null); }; try { if (clip._mochiad_loaded){ return (null); }; } catch(e:Error) { throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; var depth:Number = options.depth; delete options.depth; mc = createEmptyMovieClip(clip, "_mochiad", depth); var wh:Array = MochiAd._getRes(options, clip); options.res = ((wh[0] + "x") + wh[1]); options.server = (options.server + options.id); delete options.id; clip._mochiad_loaded = true; if (clip.loaderInfo.loaderURL.indexOf("http") == 0){ options.as3_swf = clip.loaderInfo.loaderURL; } else { trace("[MochiAd] NOTE: Security Sandbox Violation errors below are normal"); }; var lv:URLVariables = new URLVariables(); for (k in options) { v = options[k]; if (!(v is Function)){ lv[k] = v; }; }; server = lv.server; delete lv.server; hostname = _allowDomains(server); lc = new LocalConnection(); lc.client = mc; name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_"); lc.allowDomain("*", "localhost"); lc.allowInsecureDomain("*", "localhost"); lc.connect(name); mc.lc = lc; mc.lcName = name; lv.lc = name; lv.st = getTimer(); mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; loader = new Loader(); g = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); MochiAd.unload(clip); }; loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g); req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime())); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:IOErrorEvent):void{ trace("[MochiAds] Blocked URL"); }); if (!options.skip){ loader.load(req); }; mc.addChild(loader); mc._mochiad_ctr = loader; return (mc); } public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{ var _local4:Array = _arg2.split("."); var _local5:Number = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return (undefined); }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; if (typeof(_arg1[_local4[_local5]]) == "function"){ return (_arg1[_local4[_local5]].apply(_arg1, _arg3)); }; return (undefined); } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{ var _local4:MovieClip = new MovieClip(); if (((false) && (_arg3))){ _arg1.addChildAt(_local4, _arg3); } else { _arg1.addChild(_local4); }; _arg1[_arg2] = _local4; _local4["_name"] = _arg2; return (_local4); } public static function _getRes(_arg1:Object, _arg2:Object):Array{ var _local6:Array; var _local3:Object = _arg2.getBounds(_arg2.root); var _local4:Number = 0; var _local5:Number = 0; if (typeof(_arg1.res) != "undefined"){ _local6 = _arg1.res.split("x"); _local4 = parseFloat(_local6[0]); _local5 = parseFloat(_local6[1]); } else { _local4 = (_local3.right - _local3.left); _local5 = (_local3.top - _local3.bottom); }; if ((((_local4 == 0)) || ((_local5 == 0)))){ _local4 = _arg2.stage.stageWidth; _local5 = _arg2.stage.stageHeight; }; return ([_local4, _local5]); } public static function adShowing(_arg1:Object):void{ _arg1.origFrameRate = _arg1.stage.frameRate; _arg1.stage.frameRate = 30; } public static function getValue(_arg1:Object, _arg2:String):Object{ var _local3:Array = _arg2.split("."); var _local4:Number = 0; while (_local4 < (_local3.length - 1)) { if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){ return (undefined); }; _arg1 = _arg1[_local3[_local4]]; _local4++; }; return (_arg1[_local3[_local4]]); } public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{ var _local4:Object; var _local5:Object; switch (_arg3.id){ case "setValue": MochiAd.setValue(_arg1, _arg3.objectName, _arg3.value); break; case "getValue": _local4 = MochiAd.getValue(_arg1, _arg3.objectName); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4); break; case "runMethod": _local5 = MochiAd.runMethod(_arg1, _arg3.method, _arg3.args); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5); break; default: trace(("[mochiads rpc] unknown rpc id: " + _arg3.id)); }; } public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Array = _arg2.split("."); var _local5:Number = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return; }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; _arg1[_local4[_local5]] = _arg3; } public static function showPreGameAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var complete:Boolean; var unloaded:Boolean; var sendHostProgress:Boolean; var fn:Function; var r:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:5500, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }, ad_progress:function (_arg1:Number):void{ }, progress_override:function (_arg1:Object):Number{ return (NaN); }, bar_offset:0}; options = MochiAd._parseOptions(options, DEFAULTS); if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){ options.ad_started(); fn = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); return; }; clip = options.clip; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; if (options.skip){ ad_timeout = 0; }; delete options.ad_timeout; var fadeout_time:Number = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); var fn:Function = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.x = (w * -0.5); chk.y = (h * -0.5); var bar:MovieClip = createEmptyMovieClip(chk, "_mochiad_bar", 4); if (options.no_progress_bar){ bar.visible = false; delete options.no_progress_bar; } else { bar.x = (10 + options.bar_offset); bar.y = (h - 20); }; var bar_w:Number = ((w - bar.x) - 10); var bar_color:Number = options.color; delete options.color; var bar_background:Number = options.background; delete options.background; var bar_outline:Number = options.outline; delete options.outline; var backing_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 1); var backing:Object = backing_mc.graphics; backing.beginFill(bar_background); backing.moveTo(0, 0); backing.lineTo(bar_w, 0); backing.lineTo(bar_w, 10); backing.lineTo(0, 10); backing.lineTo(0, 0); backing.endFill(); var inside_mc:MovieClip = createEmptyMovieClip(bar, "_inside", 2); var inside:Object = inside_mc.graphics; inside.beginFill(bar_color); inside.moveTo(0, 0); inside.lineTo(bar_w, 0); inside.lineTo(bar_w, 10); inside.lineTo(0, 10); inside.lineTo(0, 0); inside.endFill(); inside_mc.scaleX = 0; var outline_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 3); var outline:Object = outline_mc.graphics; outline.lineStyle(0, bar_outline, 100); outline.moveTo(0, 0); outline.lineTo(bar_w, 0); outline.lineTo(bar_w, 10); outline.lineTo(0, 10); outline.lineTo(0, 0); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.last_pcnt = 0; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; complete = false; unloaded = false; var progress:Number = Math.min(1, options.progress_override(clip)); var f:Function = function (_arg1:Event):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); complete = true; if (unloaded){ MochiAd.unload(clip); }; }; if (!isNaN(progress)){ complete = (progress == 1); } else { if (clip.loaderInfo.bytesLoaded == clip.loaderInfo.bytesTotal){ complete = true; } else { if ((clip.root is MovieClip)){ r = (clip.root as MovieClip); if (r.framesLoaded >= r.totalFrames){ complete = true; } else { clip.loaderInfo.addEventListener(Event.COMPLETE, f); }; } else { clip.loaderInfo.addEventListener(Event.COMPLETE, f); }; }; }; mc.unloadAd = function ():void{ unloaded = true; if (complete){ MochiAd.unload(clip); }; }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = _arg1; }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; mc.rpcTestFn = function (_arg1:String):Object{ trace(("[MOCHIAD rpcTestFn] " + _arg1)); return (_arg1); }; sendHostProgress = false; mc.sendHostLoadProgress = function (_arg1:String):void{ sendHostProgress = true; }; chk["onEnterFrame"] = function ():void{ var _local12:Number; if (((!(this.parent)) || (!(this.parent.parent)))){ delete this["onEnterFrame"]; return; }; var _local1:Object = this.parent.parent.root; var _local2:Object = this.parent._mochiad_ctr; var _local3:Number = (getTimer() - this.started); var _local4:Boolean; var _local5:Number = _local1.loaderInfo.bytesTotal; var _local6:Number = _local1.loaderInfo.bytesLoaded; var _local7:Number = Math.min(1, options.progress_override(_local1)); if (_local7 == 1){ complete = true; }; if (complete){ _local6 = Math.max(1, _local6); _local5 = _local6; }; var _local8:Number = ((100 * _local6) / _local5); if (!isNaN(_local7)){ _local8 = (100 * _local7); }; var _local9:Number = ((100 * _local3) / chk.ad_msec); var _local10:Object = this._mochiad_bar._inside; var _local11:Number = Math.min(100, Math.min(((_local8) || (0)), _local9)); _local11 = Math.max(this.last_pcnt, _local11); this.last_pcnt = _local11; _local10.scaleX = (_local11 * 0.01); options.ad_progress(_local11); if (sendHostProgress){ clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local8}); if (_local8 >= 100){ sendHostProgress = false; }; }; if (!chk.showing){ _local12 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local12 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if ((((_local3 > chk.ad_timeout)) && ((_local8 == 100)))){ options.ad_failed(); _local4 = true; }; }; }; if (_local3 > chk.ad_msec){ _local4 = true; }; if (((complete) && (_local4))){ if (unloaded){ MochiAd.unload(_local1); } else { if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = chk.fadeFunction; }; }; }; }; doOnEnterFrame(chk); } public static function showPreloaderAd(_arg1:Object):void{ trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0"); MochiAd.showPreGameAd(_arg1); } public static function showTimedAd(_arg1:Object):void{ trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0"); MochiAd.showInterLevelAd(_arg1); } public static function doOnEnterFrame(_arg1:MovieClip):void{ var mc = _arg1; var f:Function = function (_arg1:Object):void{ if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){ mc.onEnterFrame(); } else { _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; }; mc.addEventListener(Event.ENTER_FRAME, f); } } }//package mochi.as3
Section 147
//MochiCoins (mochi.as3.MochiCoins) package mochi.as3 { public class MochiCoins { public static const STORE_HIDE:String = "StoreHide"; public static const NO_USER:String = "NoUser"; public static const IO_ERROR:String = "IOError"; public static const ITEM_NEW:String = "ItemNew"; public static const ITEM_OWNED:String = "ItemOwned"; public static const STORE_ITEMS:String = "StoreItems"; public static const ERROR:String = "Error"; public static const STORE_SHOW:String = "StoreShow"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public static var _inventory:MochiInventory; public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function getStoreItems():void{ MochiServices.send("coins_getStoreItems"); } public static function get inventory():MochiInventory{ return (_inventory); } public static function showStore(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("coins_showStore", {options:_arg1}, null, null); } public static function requestFunding(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("social_requestFunding", _arg1); } public static function showItem(_arg1:Object=null):void{ if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){ trace("ERROR: showItem call must pass an Object with an item key"); return; }; MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("coins_showItem", {options:_arg1}, null, null); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function showVideo(_arg1:Object=null):void{ if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){ trace("ERROR: showVideo call must pass an Object with an item key"); return; }; MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("coins_showVideo", {options:_arg1}, null, null); } addEventListener(MochiSocial.LOGGED_IN, function (_arg1:Object):void{ _inventory = new MochiInventory(); }); addEventListener(MochiSocial.LOGGED_OUT, function (_arg1:Object):void{ _inventory = null; }); } }//package mochi.as3
Section 148
//MochiDigits (mochi.as3.MochiDigits) package mochi.as3 { public final class MochiDigits { private var Sibling:MochiDigits; private var Fragment:Number; private var Encoder:Number; public function MochiDigits(_arg1:Number=0, _arg2:uint=0):void{ Encoder = 0; setValue(_arg1, _arg2); } public function reencode():void{ var _local1:uint = int((2147483647 * Math.random())); Fragment = (Fragment ^ (_local1 ^ Encoder)); Encoder = _local1; } public function set value(_arg1:Number):void{ setValue(_arg1); } public function toString():String{ var _local1:String = String.fromCharCode((Fragment ^ Encoder)); if (Sibling != null){ _local1 = (_local1 + Sibling.toString()); }; return (_local1); } public function setValue(_arg1:Number=0, _arg2:uint=0):void{ var _local3:String = _arg1.toString(); var _temp1 = _arg2; _arg2 = (_arg2 + 1); Fragment = (_local3.charCodeAt(_temp1) ^ Encoder); if (_arg2 < _local3.length){ Sibling = new MochiDigits(_arg1, _arg2); } else { Sibling = null; }; reencode(); } public function get value():Number{ return (Number(this.toString())); } public function addValue(_arg1:Number):void{ value = (value + _arg1); } } }//package mochi.as3
Section 149
//MochiEventDispatcher (mochi.as3.MochiEventDispatcher) package mochi.as3 { public class MochiEventDispatcher { private var eventTable:Object; public function MochiEventDispatcher():void{ eventTable = {}; } public function triggerEvent(_arg1:String, _arg2:Object):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ return; }; for (_local3 in eventTable[_arg1]) { var _local6 = eventTable[_arg1]; _local6[_local3](_arg2); }; } public function removeEventListener(_arg1:String, _arg2:Function):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ eventTable[_arg1] = []; return; }; for (_local3 in eventTable[_arg1]) { if (eventTable[_arg1][_local3] != _arg2){ } else { eventTable[_arg1].splice(Number(_local3), 1); }; }; } public function addEventListener(_arg1:String, _arg2:Function):void{ removeEventListener(_arg1, _arg2); eventTable[_arg1].push(_arg2); } } }//package mochi.as3
Section 150
//MochiEvents (mochi.as3.MochiEvents) package mochi.as3 { public class MochiEvents { public static const FORMAT_NONE:String = "NoForm"; public static const ALIGN_BOTTOM_RIGHT:String = "ALIGN_BR"; public static const IO_ERROR:String = "IOError"; public static const FORMAT_SHORT:String = "ShortForm"; public static const ALIGN_TOP_RIGHT:String = "ALIGN_TR"; public static const ALIGN_LEFT:String = "ALIGN_L"; public static const ALIGN_RIGHT:String = "ALIGN_R"; public static const ACHIEVEMENTS_OWNED:String = "AchievementOwned"; public static const ALIGN_BOTTOM_LEFT:String = "ALIGN_BL"; public static const ALIGN_BOTTOM:String = "ALIGN_B"; public static const ACHIEVEMENT_NEW:String = "AchievementReceived"; public static const GAME_ACHIEVEMENTS:String = "GameAchievements"; public static const FORMAT_LONG:String = "LongForm"; public static const ALIGN_TOP:String = "ALIGN_T"; public static const IO_PENDING:String = "IOPending"; public static const ERROR:String = "Error"; public static const ALIGN_TOP_LEFT:String = "ALIGN_TL"; public static const ALIGN_CENTER:String = "ALIGN_C"; private static var gameStart:Number; private static var levelStart:Number; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public static function showAwards(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.stayOnTop(); MochiServices.send("events_showAwards", _arg1); } public static function trackEvent(_arg1:String, _arg2=null):void{ MochiServices.send("events_trackEvent", {tag:_arg1, value:_arg2}, null, null); } public static function getAchievements(_arg1:Object=null):void{ MochiServices.send("events_getAchievements", _arg1); } public static function setNotifications(_arg1:Object):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("events_setNotifications", _arg1, null, null); } public static function endPlay():void{ MochiServices.send("events_clearRoundID", null, null, null); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function startPlay(_arg1:String="gameplay"):void{ MochiServices.send("events_setRoundID", {tag:String(_arg1)}, null, null); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function unlockAchievement(_arg1:Object):void{ MochiServices.send("events_unlockAchievement", _arg1); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function startSession(_arg1:String):void{ MochiServices.send("events_beginSession", {achievementID:_arg1}, null, null); } } }//package mochi.as3
Section 151
//MochiInventory (mochi.as3.MochiInventory) package mochi.as3 { import flash.events.*; import flash.utils.*; public dynamic class MochiInventory extends Proxy { private var _timer:Timer; private var _names:Array; private var _syncID:Number; private var _consumableProperties:Object; private var _storeSync:Object; private var _outstandingID:Number; private var _syncPending:Boolean; public static const READY:String = "InvReady"; public static const ERROR:String = "Error"; public static const IO_ERROR:String = "IoError"; private static const KEY_SALT:String = " syncMaint"; public static const WRITTEN:String = "InvWritten"; public static const NOT_READY:String = "InvNotReady"; public static const VALUE_ERROR:String = "InvValueError"; private static const CONSUMER_KEY:String = "MochiConsumables"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public function MochiInventory():void{ MochiCoins.addEventListener(MochiCoins.ITEM_OWNED, itemOwned); MochiCoins.addEventListener(MochiCoins.ITEM_NEW, newItems); MochiSocial.addEventListener(MochiSocial.LOGGED_IN, loggedIn); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, loggedOut); _storeSync = new Object(); _syncPending = false; _outstandingID = 0; _syncID = 0; _timer = new Timer(1000); _timer.addEventListener(TimerEvent.TIMER, sync); _timer.start(); if (MochiSocial.loggedIn){ loggedIn(); } else { loggedOut(); }; } private function newItems(_arg1:Object):void{ if (!this[(_arg1.id + KEY_SALT)]){ this[(_arg1.id + KEY_SALT)] = 0; }; if (!this[_arg1.id]){ this[_arg1.id] = 0; }; this[(_arg1.id + KEY_SALT)] = (this[(_arg1.id + KEY_SALT)] + _arg1.count); this[_arg1.id] = (this[_arg1.id] + _arg1.count); if (((_arg1.privateProperties) && (_arg1.privateProperties.consumable))){ if (!this[_arg1.privateProperties.tag]){ this[_arg1.privateProperties.tag] = 0; }; this[_arg1.privateProperties.tag] = (this[_arg1.privateProperties.tag] + (_arg1.privateProperties.inc * _arg1.count)); }; } public function release():void{ MochiCoins.removeEventListener(MochiCoins.ITEM_NEW, newItems); MochiSocial.removeEventListener(MochiSocial.LOGGED_IN, loggedIn); MochiSocial.removeEventListener(MochiSocial.LOGGED_OUT, loggedOut); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){ if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return (-1); }; if (_consumableProperties[_arg1]){ return (MochiDigits(_consumableProperties[_arg1]).value); }; return (undefined); } private function loggedIn(_arg1:Object=null):void{ MochiUserData.get(CONSUMER_KEY, getConsumableBag); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function hasProperty(_arg1):Boolean{ if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return (false); }; if (_consumableProperties[_arg1] == undefined){ return (false); }; return (true); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(_arg1:int):int{ return (((_arg1)>=_names.length) ? 0 : (_arg1 + 1)); } private function putConsumableBag(_arg1:MochiUserData):void{ _syncPending = false; if (_arg1.error){ triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error}); _outstandingID = -1; }; triggerEvent(WRITTEN, {}); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{ var _local3:MochiDigits; if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return; }; if (!(_arg2 is Number)){ triggerEvent(ERROR, {type:VALUE_ERROR, error:"Invalid type", arg:_arg2}); return; }; if (_consumableProperties[_arg1]){ _local3 = MochiDigits(_consumableProperties[_arg1]); if (_local3.value == _arg2){ return; }; _local3.value = _arg2; } else { _names.push(_arg1); _consumableProperties[_arg1] = new MochiDigits(_arg2); }; _syncID++; } private function itemOwned(_arg1:Object):void{ _storeSync[_arg1.id] = {properties:_arg1.properties, count:_arg1.count}; } private function sync(_arg1:Event=null):void{ var _local3:String; if (((_syncPending) || ((_syncID == _outstandingID)))){ return; }; _outstandingID = _syncID; var _local2:Object = {}; for (_local3 in _consumableProperties) { _local2[_local3] = MochiDigits(_consumableProperties[_local3]).value; }; MochiUserData.put(CONSUMER_KEY, _local2, putConsumableBag); _syncPending = true; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextName(_arg1:int):String{ return (_names[(_arg1 - 1)]); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function deleteProperty(_arg1):Boolean{ if (!_consumableProperties[_arg1]){ return (false); }; _names.splice(_names.indexOf(_arg1), 1); delete _consumableProperties[_arg1]; return (true); } private function getConsumableBag(_arg1:MochiUserData):void{ var _local2:String; var _local3:Number; if (_arg1.error){ triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error}); return; }; _consumableProperties = {}; _names = new Array(); if (_arg1.data){ for (_local2 in _arg1.data) { _names.push(_local2); _consumableProperties[_local2] = new MochiDigits(_arg1.data[_local2]); }; }; for (_local2 in _storeSync) { _local3 = _storeSync[_local2].count; if (_consumableProperties[(_local2 + KEY_SALT)]){ _local3 = (_local3 - _consumableProperties[(_local2 + KEY_SALT)].value); }; if (_local3 == 0){ } else { newItems({id:_local2, count:_local3, properties:_storeSync[_local2].properties}); }; }; triggerEvent(READY, {}); } private function loggedOut(_arg1:Object=null):void{ _consumableProperties = null; } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } } }//package mochi.as3
Section 152
//MochiServices (mochi.as3.MochiServices) package mochi.as3 { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class MochiServices { public static const CONNECTED:String = "onConnected"; private static var _container:Object; private static var _connected:Boolean = false; private static var _queue:Array; private static var _swfVersion:String; private static var _preserved:Object; public static var netupAttempted:Boolean = false; private static var _sendChannel:LocalConnection; private static var _nextCallbackID:Number; private static var _clip:MovieClip; private static var _loader:Loader; private static var _id:String; private static var _services:String = "services.swf"; private static var _servURL:String = "http://www.mochiads.com/static/lib/services/"; public static var widget:Boolean = false; private static var _timer:Timer; private static var _sendChannelName:String; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); private static var _callbacks:Object; private static var _connecting:Boolean = false; private static var _mochiLocalConnection:MovieClip; private static var _listenChannelName:String = "__ms_"; public static var onError:Object; public static var netup:Boolean = true; private static var _mochiLC:String = "MochiLC.swf"; public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function get connected():Boolean{ return (_connected); } private static function onReceive(_arg1:Object):void{ var methodName:String; var pkg = _arg1; var cb:String = pkg.callbackID; var cblst:Object = _callbacks[cb]; if (!cblst){ return; }; var method:* = cblst.callbackMethod; methodName = ""; var obj:Object = cblst.callbackObject; if (((obj) && ((typeof(method) == "string")))){ methodName = method; if (obj[method] != null){ method = obj[method]; } else { trace((("Error: Method " + method) + " does not exist.")); }; }; if (method != undefined){ try { method.apply(obj, pkg.args); } catch(error:Error) { trace(((("Error invoking callback method '" + methodName) + "': ") + error.toString())); }; } else { if (obj != null){ try { obj(pkg.args); } catch(error:Error) { trace(("Error invoking method on object: " + error.toString())); }; }; }; delete _callbacks[cb]; } public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{ if (_connected){ _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_nextCallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ trace(("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + _arg1)); handleError(_arg2, _arg3, _arg4); flush(true); return; }; _queue.push({methodName:_arg1, args:_arg2, callbackID:_nextCallbackID}); }; if (_clip != null){ if (_callbacks != null){ _callbacks[_nextCallbackID] = {callbackObject:_arg3, callbackMethod:_arg4}; _nextCallbackID++; }; }; } private static function init(_arg1:String, _arg2:Object):void{ _id = _arg1; if (_arg2 != null){ _container = _arg2; loadCommunicator(_arg1, _container); }; } private static function clickMovie(_arg1:String, _arg2:Function):MovieClip{ var _local4:int; var _local14:Loader; var _local3:Array = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23]; var _local5:Array = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3]; var _local6:Array = [0, 64, 0, 0, 0]; var _local7:MovieClip = new MovieClip(); var _local8:LocalConnection = new LocalConnection(); var _local9:String = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().time)); _local8 = new LocalConnection(); _local7.lc = _local8; _local7.click = _arg2; _local8.client = _local7; _local8.connect(_local9); var _local10:ByteArray = new ByteArray(); var _local11:ByteArray = new ByteArray(); _local11.endian = Endian.LITTLE_ENDIAN; _local11.writeShort(1); _local11.writeUTFBytes(((_arg1 + " ") + _local9)); _local11.writeByte(0); var _local12:uint = ((_local3.length + _local11.length) + 4); var _local13:uint = (_local12 + 35); _local10.endian = Endian.LITTLE_ENDIAN; _local10.writeUTFBytes("FWS"); _local10.writeByte(8); _local10.writeUnsignedInt(_local13); for each (_local4 in _local5) { _local10.writeByte(_local4); }; _local10.writeUnsignedInt(_local12); _local10.writeByte(136); _local10.writeShort(_local11.length); _local10.writeBytes(_local11); for each (_local4 in _local3) { _local10.writeByte(_local4); }; for each (_local4 in _local6) { _local10.writeByte(_local4); }; _local14 = new Loader(); _local14.loadBytes(_local10); _local7.addChild(_local14); return (_local7); } private static function detach(_arg1:Event):void{ var _local2:LoaderInfo = LoaderInfo(_arg1.target); _local2.removeEventListener(Event.COMPLETE, detach); _local2.removeEventListener(IOErrorEvent.IO_ERROR, detach); _local2.removeEventListener(Event.COMPLETE, loadLCBridgeComplete); _local2.removeEventListener(IOErrorEvent.IO_ERROR, loadError); } public static function stayOnTop():void{ _container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true); if (_clip != null){ _clip.visible = true; }; } private static function loadLCBridgeComplete(_arg1:Event):void{ var _local2:Loader = LoaderInfo(_arg1.target).loader; _mochiLocalConnection = MovieClip(_local2.content); listen(); } public static function disconnect():void{ if (((_connected) || (_connecting))){ if (_clip != null){ if (_clip.parent != null){ if ((_clip.parent is Sprite)){ Sprite(_clip.parent).removeChild(_clip); _clip = null; }; }; }; _connecting = (_connected = false); flush(true); try { _mochiLocalConnection.close(); } catch(error:Error) { }; }; if (_timer != null){ try { _timer.stop(); _timer.removeEventListener(TimerEvent.TIMER, connectWait); _timer = null; } catch(error:Error) { }; }; } public static function allowDomains(_arg1:String):String{ var _local2:String; if (Security.sandboxType != "application"){ Security.allowDomain("*"); Security.allowInsecureDomain("*"); }; if (_arg1.indexOf("http://") != -1){ _local2 = _arg1.split("/")[2].split(":")[0]; if (Security.sandboxType != "application"){ Security.allowDomain(_local2); Security.allowInsecureDomain(_local2); }; }; return (_local2); } public static function getVersion():String{ return ("3.9.3 as3"); } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); } public static function warnID(_arg1:String, _arg2:Boolean):void{ _arg1 = _arg1.toLowerCase(); if (_arg1.length != 16){ trace((("WARNING: " + (_arg2) ? "board" : "game") + " ID is not the appropriate length")); return; } else { if (_arg1 == "1e113c7239048b3f"){ if (_arg2){ trace("WARNING: Using testing board ID"); } else { trace("WARNING: Using testing board ID as game ID"); }; return; } else { if (_arg1 == "84993a1de4031cd8"){ if (_arg2){ trace("WARNING: Using testing game ID as board ID"); } else { trace("WARNING: Using testing game ID"); }; return; }; }; }; var _local3:Number = 0; while (_local3 < _arg1.length) { switch (_arg1.charAt(_local3)){ case "0": case "1": case "2": case "3": case "4": case "5": case "6": case "7": case "8": case "9": case "a": case "b": case "c": case "d": case "e": case "f": break; default: trace(("WARNING: Board ID contains illegal characters: " + _arg1)); return; }; _local3++; }; } private static function flush(_arg1:Boolean):void{ var _local2:Object; var _local3:Object; if (((_clip) && (_queue))){ while (_queue.length > 0) { _local2 = _queue.shift(); _local3 = null; if (_local2 != null){ if (_local2.callbackID != null){ _local3 = _callbacks[_local2.callbackID]; }; delete _callbacks[_local2.callbackID]; if (((_arg1) && (!((_local3 == null))))){ handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod); }; }; }; }; } public static function get id():String{ return (_id); } private static function onEvent(_arg1:Object):void{ var _local2:String = _arg1.target; var _local3:String = _arg1.event; switch (_local2){ case "services": MochiServices.triggerEvent(_arg1.event, _arg1.args); break; case "events": MochiEvents.triggerEvent(_arg1.event, _arg1.args); break; case "coins": MochiCoins.triggerEvent(_arg1.event, _arg1.args); break; case "social": MochiSocial.triggerEvent(_arg1.event, _arg1.args); break; }; } private static function urlOptions(_arg1:Object):Object{ var _local3:String; var _local4:Array; var _local5:Number; var _local6:Array; var _local2:Object = {}; if (_arg1.stage){ _local3 = _arg1.stage.loaderInfo.parameters.mochiad_options; } else { _local3 = _arg1.loaderInfo.parameters.mochiad_options; }; if (_local3){ _local4 = _local3.split("&"); _local5 = 0; while (_local5 < _local4.length) { _local6 = _local4[_local5].split("="); _local2[unescape(_local6[0])] = unescape(_local6[1]); _local5++; }; }; return (_local2); } public static function addLinkEvent(_arg1:String, _arg2:String, _arg3:DisplayObjectContainer, _arg4:Function=null):void{ var avm1Click:DisplayObject; var x:String; var req:URLRequest; var loader:Loader; var setURL:Function; var err:Function; var complete:Function; var url = _arg1; var burl = _arg2; var btn = _arg3; var onClick = _arg4; var vars:Object = new Object(); vars["mav"] = getVersion(); vars["swfv"] = "9"; vars["swfurl"] = btn.loaderInfo.loaderURL; vars["fv"] = Capabilities.version; vars["os"] = Capabilities.os; vars["lang"] = Capabilities.language; vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY); var s = "?"; var i:Number = 0; for (x in vars) { if (i != 0){ s = (s + "&"); }; i = (i + 1); s = (((s + x) + "=") + escape(vars[x])); }; req = new URLRequest("http://link.mochiads.com/linkping.swf"); loader = new Loader(); setURL = function (_arg1:String):void{ if (avm1Click){ btn.removeChild(avm1Click); }; avm1Click = clickMovie(_arg1, onClick); var _local2:Rectangle = btn.getBounds(btn); btn.addChild(avm1Click); avm1Click.x = _local2.x; avm1Click.y = _local2.y; avm1Click.scaleX = (0.01 * _local2.width); avm1Click.scaleY = (0.01 * _local2.height); }; err = function (_arg1:Object):void{ netup = false; _arg1.target.removeEventListener(_arg1.type, arguments.callee); setURL(burl); }; complete = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; if (netup){ setURL((url + s)); } else { setURL(burl); }; if (!((netupAttempted) || (_connected))){ netupAttempted = true; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.load(req); }; } public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{ if (_clip.parent){ _clip.parent.removeChild(_clip); }; if (_arg1 != null){ if ((_arg1 is DisplayObjectContainer)){ _container = _arg1; }; }; if (_arg2){ if ((_container is DisplayObjectContainer)){ DisplayObjectContainer(_container).addChild(_clip); }; }; } private static function handleError(_arg1:Object, _arg2:Object, _arg3:Object):void{ var args = _arg1; var callbackObject = _arg2; var callbackMethod = _arg3; if (args != null){ if (args.onError != null){ args.onError.apply(null, ["NotConnected"]); }; if (((!((args.options == null))) && (!((args.options.onError == null))))){ args.options.onError.apply(null, ["NotConnected"]); }; }; if (callbackMethod != null){ args = {}; args.error = true; args.errorCode = "NotConnected"; if (((!((callbackObject == null))) && ((callbackMethod is String)))){ try { var _local5 = callbackObject; _local5[callbackMethod](args); } catch(error:Error) { }; } else { if (callbackMethod != null){ try { callbackMethod.apply(args); } catch(error:Error) { }; }; }; }; } private static function loadError(_arg1:Object):void{ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); MochiServices.disconnect(); MochiServices.onError("IOError"); } public static function get childClip():Object{ return (_clip); } private static function initComChannels():void{ if (!_connected){ trace("[SERVICES_API] connected!"); _connecting = false; _connected = true; _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"registerGame", preserved:_preserved, id:_id, version:getVersion(), parentURL:_container.loaderInfo.loaderURL}); _clip.onReceive = onReceive; _clip.onEvent = onEvent; _clip.onError = function ():void{ MochiServices.onError("IOError"); }; while (_queue.length > 0) { _mochiLocalConnection.send(_sendChannelName, "onReceive", _queue.shift()); }; }; } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } private static function listen():void{ _mochiLocalConnection.connect(_listenChannelName); _clip.handshake = function (_arg1:Object):void{ MochiServices.comChannelName = _arg1.newChannel; }; trace("Waiting for MochiAds services to connect..."); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } private static function loadLCBridge(_arg1:Object):void{ var _local2:Loader = new Loader(); var _local3:String = (_servURL + _mochiLC); var _local4:URLRequest = new URLRequest(_local3); _local2.contentLoaderInfo.addEventListener(Event.COMPLETE, detach); _local2.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, detach); _local2.contentLoaderInfo.addEventListener(Event.COMPLETE, loadLCBridgeComplete); _local2.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); _local2.load(_local4); _arg1.addChild(_local2); } public static function set comChannelName(_arg1:String):void{ if (_arg1 != null){ if (_arg1.length > 3){ _sendChannelName = (_arg1 + "_fromgame"); initComChannels(); }; }; } private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{ if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; if (urlOptions(_arg2).servURL){ _servURL = urlOptions(_arg2).servURL; }; var _local3:String = (_servURL + _services); if (urlOptions(_arg2).servicesURL){ _local3 = urlOptions(_arg2).servicesURL; }; _listenChannelName = (_listenChannelName + ((Math.floor(new Date().time) + "_") + Math.floor((Math.random() * 99999)))); MochiServices.allowDomains(_local3); _clip = new MovieClip(); loadLCBridge(_clip); _loader = new Loader(); _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, detach); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, detach); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); var _local4:URLRequest = new URLRequest(_local3); var _local5:URLVariables = new URLVariables(); _local5.listenLC = _listenChannelName; _local5.mochiad_options = _arg2.loaderInfo.parameters.mochiad_options; _local5.api_version = getVersion(); if (widget){ _local5.widget = true; }; _local4.data = _local5; _loader.load(_local4); _clip.addChild(_loader); _sendChannel = new LocalConnection(); _queue = []; _nextCallbackID = 0; _callbacks = {}; _timer = new Timer(10000, 1); _timer.addEventListener(TimerEvent.TIMER, connectWait); _timer.start(); return (_clip); } public static function get clip():Object{ return (_container); } public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{ var id = _arg1; var clip = _arg2; var onError = _arg3; warnID(id, false); if ((clip is DisplayObject)){ if (clip.stage == null){ trace("MochiServices connect requires the containing clip be attached to the stage"); }; if (((!(_connected)) && ((_clip == null)))){ trace("MochiServices Connecting..."); _connecting = true; init(id, clip); }; } else { trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage."); }; if (onError != null){ MochiServices.onError = onError; } else { if (MochiServices.onError == null){ MochiServices.onError = function (_arg1:String):void{ trace(_arg1); }; }; }; } public static function bringToTop(_arg1:Event=null):void{ var e = _arg1; if (((!((MochiServices.clip == null))) && (!((MochiServices.childClip == null))))){ try { if (MochiServices.clip.numChildren > 1){ MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1)); }; } catch(errorObject:Error) { trace("Warning: Depth sort error."); _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); }; }; } public static function connectWait(_arg1:TimerEvent):void{ if (!_connected){ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load. (timeout)"); MochiServices.disconnect(); MochiServices.onError("IOError"); } else { _timer.stop(); _timer.removeEventListener(TimerEvent.TIMER, connectWait); _timer = null; }; } } }//package mochi.as3
Section 153
//MochiSocial (mochi.as3.MochiSocial) package mochi.as3 { public class MochiSocial { public static const LOGGED_IN:String = "LoggedIn"; public static const ACTION_CANCELED:String = "onCancel"; public static const PROPERTIES_SIZE:String = "PropertiesSize"; public static const IO_ERROR:String = "IOError"; public static const NO_USER:String = "NoUser"; public static const FRIEND_LIST:String = "FriendsList"; public static const PROFILE_DATA:String = "ProfileData"; public static const GAMEPLAY_DATA:String = "GameplayData"; public static const ACTION_COMPLETE:String = "onComplete"; public static const LOGIN_SHOW:String = "LoginShow"; public static const PROFILE_HIDE:String = "ProfileHide"; public static const USER_INFO:String = "UserInfo"; public static const PROPERTIES_SAVED:String = "PropertySaved"; public static const WIDGET_LOADED:String = "WidgetLoaded"; public static const ERROR:String = "Error"; public static const LOGGED_OUT:String = "LoggedOut"; public static const PROFILE_SHOW:String = "ProfileShow"; public static const LOGIN_HIDE:String = "LoginHide"; public static const LOGIN_SHOWN:String = "LoginShown"; public static var _user_info:Object = null; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public static function requestFan(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("social_requestFan", _arg1); } public static function postToStream(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("social_postToStream", _arg1); } public static function getFriendsList(_arg1:Object=null):void{ MochiServices.send("social_getFriendsList", _arg1); } public static function requestLogin(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("social_requestLogin", _arg1); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function saveUserProperties(_arg1:Object):void{ MochiServices.send("social_saveUserProperties", _arg1); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function inviteFriends(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("social_inviteFriends", _arg1); } public static function get loggedIn():Boolean{ return (!((_user_info == null))); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function showLoginWidget(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("social_showLoginWidget", {options:_arg1}); } public static function getAPIURL():String{ if (!_user_info){ return (null); }; return (_user_info.api_url); } public static function showProfile(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.stayOnTop(); MochiServices.send("social_showProfile", _arg1); } public static function hideLoginWidget():void{ MochiServices.send("social_hideLoginWidget"); } public static function getAPIToken():String{ if (!_user_info){ return (null); }; return (_user_info.api_token); } MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (_arg1:Object):void{ _user_info = _arg1; }); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (_arg1:Object):void{ _user_info = null; }); } }//package mochi.as3
Section 154
//MochiUserData (mochi.as3.MochiUserData) package mochi.as3 { import flash.events.*; import flash.utils.*; import flash.net.*; public class MochiUserData extends EventDispatcher { public var callback:Function;// = null public var operation:String;// = null public var error:Event;// = null public var data;// = null public var _loader:URLLoader; public var key:String;// = null public function MochiUserData(_arg1:String="", _arg2:Function=null){ this.key = _arg1; this.callback = _arg2; } public function serialize(_arg1):ByteArray{ var _local2:ByteArray = new ByteArray(); _local2.objectEncoding = ObjectEncoding.AMF3; _local2.writeObject(_arg1); _local2.compress(); return (_local2); } public function errorHandler(_arg1:IOErrorEvent):void{ data = null; error = _arg1; if (callback != null){ performCallback(); } else { dispatchEvent(_arg1); }; close(); } public function putEvent(_arg1):void{ request("put", serialize(_arg1)); } public function deserialize(_arg1:ByteArray){ _arg1.objectEncoding = ObjectEncoding.AMF3; _arg1.uncompress(); return (_arg1.readObject()); } public function securityErrorHandler(_arg1:SecurityErrorEvent):void{ errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + _arg1.toString()))); } public function getEvent():void{ request("get", serialize(null)); } override public function toString():String{ return ((((((((("[MochiUserData operation=" + operation) + " key=\"") + key) + "\" data=") + data) + " error=\"") + error) + "\"]")); } public function performCallback():void{ try { callback(this); } catch(e:Error) { trace(("[MochiUserData] exception during callback: " + e)); }; } public function request(_arg1:String, _arg2:ByteArray):void{ var _operation = _arg1; var _data = _arg2; operation = _operation; var api_url:String = MochiSocial.getAPIURL(); var api_token:String = MochiSocial.getAPIToken(); if ((((api_url == null)) || ((api_token == null)))){ errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, "not logged in")); return; }; _loader = new URLLoader(); var args:URLVariables = new URLVariables(); args.op = _operation; args.key = key; var req:URLRequest = new URLRequest((((MochiSocial.getAPIURL() + "/") + "MochiUserData?") + args.toString())); req.method = URLRequestMethod.POST; req.contentType = "application/x-mochi-userdata"; req.requestHeaders = [new URLRequestHeader("x-mochi-services-version", MochiServices.getVersion()), new URLRequestHeader("x-mochi-api-token", api_token)]; req.data = _data; _loader.dataFormat = URLLoaderDataFormat.BINARY; _loader.addEventListener(Event.COMPLETE, completeHandler); _loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); _loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); try { _loader.load(req); } catch(e:SecurityError) { errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + e.toString()))); }; } public function completeHandler(_arg1:Event):void{ var event = _arg1; try { if (_loader.data.length){ data = deserialize(_loader.data); } else { data = null; }; } catch(e:Error) { errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("deserialize error: " + e.toString()))); return; }; if (callback != null){ performCallback(); } else { dispatchEvent(event); }; close(); } public function close():void{ if (_loader){ _loader.removeEventListener(Event.COMPLETE, completeHandler); _loader.removeEventListener(IOErrorEvent.IO_ERROR, errorHandler); _loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); _loader.close(); _loader = null; }; error = null; callback = null; } public static function get(_arg1:String, _arg2:Function):void{ var _local3:MochiUserData = new MochiUserData(_arg1, _arg2); _local3.getEvent(); } public static function put(_arg1:String, _arg2, _arg3:Function):void{ var _local4:MochiUserData = new MochiUserData(_arg1, _arg3); _local4.putEvent(_arg2); } } }//package mochi.as3
Section 155
//AdIntegrator (AdIntegrator) package { import flash.display.*; import flash.text.*; import flash.events.*; import flash.net.*; import flash.external.*; public class AdIntegrator { public static const INTERGI_DOMAIN:String = "intergi.com"; public static const INTERGI_LIVE_LOCATION:String = (("http://cdn." + INTERGI_DOMAIN) + "/"); public static const INTERGI_API_SWF_NAME:String = "AdLoader.swf"; protected static var mAdIntegratorType:int; private static var mTotalAdWidth:int; private static var mGameID:String; private static var mAdURL:String; private static var mAdClip; private static var mCallbacks:Array; private static var mAdLoader:Loader; private static var mInitialized:Boolean = false; private static var mLoadingText:TextField; private static var mAdClipHolder:DisplayObjectContainer; private static var mAdLoaderLocation:String; private static var mTotalAdHeight:int; private static var mAdClipHolderSub:MovieClip; private static var mStopAdImmediate:Boolean; protected static function DebugLogOut(_arg1:Event):void{ trace(_arg1.target.data); } protected static function CheckInitialized():void{ if (!mInitialized){ throw (new Error("Error, not initialized")); }; } protected static function DebugOutput(_arg1:String):void{ ExternalInterface.call("console.log", _arg1); } protected static function LoadAdComplete(_arg1:Event):void{ mAdClip = (_arg1.target.content as DisplayObjectContainer); if (mAdClipHolder == null){ mAdClip.StopAdImmediate = true; mAdClip = null; }; if (mStopAdImmediate){ RemoveCleanupAd(false); } else { mAdClip.AdURL = mAdURL; mAdClip.PermissionToStartAd = true; mAdClip.addEventListener(Event.ENTER_FRAME, CheckAdStatus); mAdClipHolderSub.addChild(mAdClip); mAdClipHolderSub.addEventListener(Event.ENTER_FRAME, CheckAdStatus); }; } protected static function RemoveCleanupAd(_arg1:Boolean):void{ if (mAdClip){ mAdClip.StopAdImmediate = true; if (mAdClipHolderSub){ if (mAdClipHolderSub.contains(mAdClip)){ mAdClipHolderSub.removeChild(mAdClip); mAdClipHolderSub.removeEventListener(Event.ENTER_FRAME, CheckAdStatus); }; if (mAdClipHolder){ mAdClipHolder.removeChild(mAdClipHolderSub); }; }; mAdClip.removeEventListener(Event.ENTER_FRAME, CheckAdStatus); mAdClip = null; }; if (mLoadingText){ mAdClipHolderSub.removeChild(mLoadingText); }; mStopAdImmediate = true; mAdClipHolderSub = null; mAdClipHolder = null; mAdLoader = null; if (mCallbacks["ShowAd"]){ var _local2 = mCallbacks; _local2["ShowAd"](_arg1); }; mCallbacks["ShowAd"] = null; } protected static function ShowAdErrorCallback(_arg1:Event):void{ RemoveCleanupAd(false); } public static function ShowAd(_arg1:DisplayObjectContainer, _arg2:int, _arg3:int, _arg4:Function):void{ CheckInitialized(); if (mCallbacks["ShowAd"] != null){ trace("Error, attempting to ShowAd while already waiting for callback"); return; }; mCallbacks["ShowAd"] = _arg4; mTotalAdWidth = _arg2; mTotalAdHeight = _arg3; mAdClipHolder = _arg1; mAdClipHolderSub = new MovieClip(); mAdClipHolder.addChild(mAdClipHolderSub); mStopAdImmediate = false; mAdLoader = new Loader(); mAdLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, LoadAdComplete); mAdLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ShowAdErrorCallback); var _local5:String = (((((((mAdLoaderLocation + INTERGI_API_SWF_NAME) + "?GameID=") + mGameID) + "&width=") + _arg2) + "&height=") + _arg3); mAdLoader.load(new URLRequest(_local5)); ShowLoadingText(); } protected static function ShowLoadingText():void{ mLoadingText = new TextField(); mLoadingText.text = "While we load your next level, here is a short message from our sponsor."; mLoadingText.width = mTotalAdWidth; mLoadingText.height = 20; mLoadingText.y = ((mTotalAdHeight - mLoadingText.height) / 2); var _local1:TextFormat = mLoadingText.getTextFormat(); _local1.align = "left"; _local1.font = "arial"; _local1.bold = true; _local1.color = 0xFFFFFF; _local1.size = 16; mLoadingText.setTextFormat(_local1); mLoadingText.selectable = false; mAdClipHolderSub.addChild(mLoadingText); } public static function Initialize(_arg1:String, _arg2:String):void{ mGameID = _arg1; mAdURL = _arg2; mCallbacks = new Array(); mAdLoaderLocation = INTERGI_LIVE_LOCATION; mInitialized = true; } protected static function CheckAdStatus(_arg1:Event):void{ if (((mAdClip.hasOwnProperty("MovieFinishedPlaying")) && ((mAdClip.MovieFinishedPlaying == 1)))){ RemoveCleanupAd(mAdClip.AdWasShown); }; } } }//package
Section 156
//aiOutlaw (aiOutlaw) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import flash.geom.*; public class aiOutlaw extends MovieClip { public var FilterGroupBox:Number; public var objectInTheWay:Object; public var BODY:MovieClip; public var CONTACTBOX:MovieClip; public var ALIVE:Boolean; public var ragClass:Class; public var RAGDOLL:OutlawRagdoll; public var speed:Number; public var min_x:Number; public var BOXBODY:b2Body; public var WALKLEFT:Number; public var WALKRIGHT:Number; public var objectVelocity:b2Vec2; public var max_x:Number; public var timer_nextAnim:Number; public var fatalObject:Object; public var IDLE2:Number; public var IDLE1:Number; public var STATE:Number; public function aiOutlaw(){ if (!g.World){ return; }; ALIVE = true; var _local1:Number = 0; var _temp1 = _local1; _local1 = (_local1 + 1); IDLE1 = _temp1; var _temp2 = _local1; _local1 = (_local1 + 1); IDLE2 = _temp2; var _temp3 = _local1; _local1 = (_local1 + 1); WALKLEFT = _temp3; var _temp4 = _local1; _local1 = (_local1 + 1); WALKRIGHT = _temp4; STATE = IDLE1; FilterGroupBox = 3; } public function init(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number){ this.x = _arg1; this.y = _arg2; min_x = _arg3; max_x = _arg4; speed = _arg5; createContactBox(); nextMove(); } public function killOutlaw(_arg1:Object, _arg2:Boolean=false){ var _local4:*; var _local5:Number; if (!ALIVE){ return; }; if (_arg2){ if (_arg1.toExplode){ return; }; }; ALIVE = false; fatalObject = _arg1; objectVelocity = _arg1.getVelocity(); var _local3:Number = 0; if (_arg2){ _local4 = (this.y - 80); _local5 = (this.y - 60); if ((((_arg1.bullet_mc.y >= _local4)) && ((_arg1.bullet_mc.y <= _local5)))){ _local3 = 1; }; }; if (_arg1.objtype == 4){ ui.PointsManager.killed(_arg1.objid, _arg1.objtype, _local3, _arg1.bulletId); } else { ui.PointsManager.killed(_arg1.objid, _arg1.objtype, _local3); }; g.JukeBox.bulletFlesh(); } public function isFatalBullet(_arg1:Object){ if (fatalObject == null){ return (false); }; return ((fatalObject == _arg1)); } public function createContactBox(){ var _local1:b2BodyDef; var _local2:b2PolygonDef; var _local3:Point; _local2 = new b2PolygonDef(); _local2.SetAsBox((CONTACTBOX.width / 60), (CONTACTBOX.height / 60)); _local2.friction = 0.3; _local2.restitution = 0.1; _local2.density = 0; _local2.filter.groupIndex = FilterGroupBox; _local3 = new Point(0, 0); _local3 = CONTACTBOX.localToGlobal(_local3); _local1 = new b2BodyDef(); _local1.position.x = (_local3.x / 30); _local1.position.y = (_local3.y / 30); _local1.userData = this; BOXBODY = g.World.CreateBody(_local1); BOXBODY.CreateShape(_local2); BOXBODY.SetMassFromShapes(); } public function fadeOut(_arg1:Number, _arg2:Number){ } public function tryToKillOutlaw(_arg1:Object){ var _local2:b2Vec2; var _local3:Number; if (!ALIVE){ return; }; _local2 = _arg1.getVelocity(); _local3 = _local2.Length(); objectInTheWay = _arg1; if (_local3 < 1){ if (this.x < _arg1.getXPos()){ goToGivenDirection(1); } else { goToGivenDirection(2); }; } else { killOutlaw(_arg1); }; } public function beginFadeOut(_arg1:Object=null){ } public function createRagdoll(){ RAGDOLL = new ragClass(this.x, (this.y - 55), objectVelocity, this); } public function nextMove(){ var _local1:Number = Math.random(); if (objectInTheWay){ if (this.x < objectInTheWay.getXPos()){ goToGivenDirection(1); } else { goToGivenDirection(2); }; } else { if (_local1 <= 0.33){ STATE = IDLE1; BODY.idle1(); } else { if (_local1 <= 0.66){ if (this.x > min_x){ STATE = WALKLEFT; BODY.walkLeft(); } else { STATE = WALKRIGHT; BODY.walkRight(); }; } else { if (this.x < max_x){ STATE = WALKRIGHT; BODY.walkRight(); } else { STATE = WALKLEFT; BODY.walkLeft(); }; }; }; }; timer_nextAnim = 60; } public function tryToExplode(_arg1:ExplosiveObject){ var _local2:b2Vec2; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:Number; if (!ALIVE){ return; }; _local3 = _arg1.getFatalRadius(); _local4 = this.x; _local5 = (this.y - (BODY.height / 2)); _local6 = (_arg1.x + _local3); _local7 = (_arg1.y + _local3); _local8 = (_arg1.x - _local3); _local9 = (_arg1.y - _local3); if ((((((((_local4 >= _local8)) && ((_local4 <= _local6)))) && ((_local5 >= _local9)))) && ((_local5 <= _local7)))){ ALIVE = false; fatalObject = _arg1; _local10 = Math.atan2((_local5 - _arg1.y), (_local4 - _arg1.x)); _local2 = new b2Vec2((Math.cos(_local10) * 30), (Math.sin(_local10) * 30)); objectVelocity = _local2; ui.PointsManager.killed(_arg1.objid, _arg1.objtype, 0); }; } public function nextState(){ var _local1:b2Vec2; timer_nextAnim--; if (timer_nextAnim <= 0){ nextMove(); }; switch (STATE){ case WALKLEFT: this.x = (this.x - speed); if (this.x <= min_x){ nextMove(); }; break; case WALKRIGHT: this.x = (this.x + speed); if (this.x >= max_x){ nextMove(); }; break; }; var _local2:Point = new Point(0, 0); _local2 = CONTACTBOX.localToGlobal(_local2); _local1 = new b2Vec2((_local2.x / 30), (_local2.y / 30)); BOXBODY.SetXForm(_local1, 0); } public function goToGivenDirection(_arg1:Number){ var _local2:Number = Math.random(); if (_local2 <= 0.33){ STATE = IDLE1; } else { if (_local2 <= 0.66){ STATE = WALKLEFT; } else { STATE = WALKRIGHT; }; }; switch (_arg1){ case 1: if (this.x <= min_x){ STATE = IDLE1; BODY.idle1(); } else { if (_local2 <= 0.5){ STATE = WALKLEFT; BODY.walkLeft(); } else { STATE = IDLE1; BODY.idle1(); }; }; break; case 2: if (this.x >= max_x){ STATE = IDLE1; BODY.idle1(); } else { if (_local2 <= 0.5){ STATE = WALKRIGHT; BODY.walkRight(); } else { STATE = IDLE1; BODY.idle1(); }; }; break; }; timer_nextAnim = 60; } public function splashBlood(){ var _local1:MovieClip; var _local2:*; var _local3:*; var _local4:*; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:b2Vec2; _local3 = Math.atan2(objectVelocity.y, objectVelocity.x); _local7 = (Math.PI * 0.125); _local4 = this.x; _local5 = (this.y - (BODY.height * 0.5)); _local2 = 0; while (_local2 <= 10) { _local6 = ((_local3 - _local7) + ((Math.random() * 2) * _local7)); _local8 = new b2Vec2((Math.cos(_local6) * (5 + _local2)), (Math.sin(_local6) * (5 + _local2))); _local1 = new bloodParticle1(); _local1.createBody(_local4, _local5, _local8); _local2++; }; } public function destroy(_arg1:Object=null){ ALIVE = false; g.World.DestroyBody(BOXBODY); if (this.parent){ this.parent.removeChild(this); }; } public function death(){ ALIVE = false; splashBlood(); createRagdoll(); g.World.DestroyBody(BOXBODY); if (this.parent){ this.parent.removeChild(this); }; } } }//package
Section 157
//aiPlayer (aiPlayer) package { import flash.display.*; import flash.geom.*; import flash.events.*; public class aiPlayer extends MovieClip { public var startR2:Number; public var Shooting:Boolean; private var Game:GameInstance; private var Interface:GameInterface; public var Aiming:Boolean; public var BODY:MovieClip; private var D2R:Number; public var startPoint_mc:MovieClip; public var AimForceMin:Number; public var startR:Number; private var R2D:Number; public var rDeg:Number; public var AimForceMax:Number; public var rRad:Number; public var AimForce:Number; public var startP0:Point; public var muzzleFlash_mc:MovieClip; public var PlaceValid:Boolean; private var cLevel:Level; public var Placing:Boolean; public var aimP0:Point; public var ShootTime:Number; public var Upgrades:Array; public var MouseLoc:Point; public function aiPlayer(){ addFrameScript(0, frame1); g.Player = this; R2D = (180 / Math.PI); D2R = (1 / R2D); AimForceMin = 30; AimForceMax = 45; AimForce = AimForceMax; } public function gameDead(_arg1:Object=null){ trace("aiPlayer->gameDead"); Alive = false; g.Player = null; } public function saveGame(_arg1:Object=null){ trace("aiPlayer->saveGame"); GameData.save(); } public function init(){ Game = g.Game; cLevel = g.cLevel; Interface = g.Interface; Alive = true; Placing = true; PlaceValid = false; Aiming = false; Shooting = false; aimP0 = new Point(0, 0); startP0 = new Point(0, 0); var _local1:Point = new Point(0, 0); startP0 = startPoint_mc.localToGlobal(_local1); Game.keyDownHandler(82, evtRestart, this); } public function victory(){ var _local1:Boolean; if (g.cGame.cLevel <= g.Game.selLevel){ g.cGame.cLevel++; }; if (g.cGame.cLevel > 30){ g.cGame.cLevel = 30; _local1 = true; }; g.cGame.LvlPoints[(g.Game.selLevel - 1)] = g.cLevel.levelPoints; saveGame(); g.Interface.pausePlay(); ui.MissionCompleted.activate(_local1); } public function fire(){ if (g.cLevel.getNbBullets() <= 0){ g.JukeBox.dryFire(); return; }; g.JukeBox.fire(); muzzleFlash_mc.x = startPoint_mc.x; muzzleFlash_mc.y = startPoint_mc.y; muzzleFlash_mc.rotation = (rRad * R2D); muzzleFlash_mc.gotoAndPlay(3); muzzleFlash_mc.visible = true; g.Game.evt(2, sendFire, this); } public function evtRestart(_arg1:Object=null){ g.Interface.btnRestartLevel(_arg1); } public function evtMouseUp(_arg1:Object=null){ if (!Alive){ return; }; fire(); } public function backFromPause(_arg1:Object=null){ g.Game.resumePlay(); } public function evtMouseDown(_arg1:Object=null){ if (!Alive){ return; }; } public function nextState(){ var _local1:Number; if (!Alive){ return; }; MouseLoc = new Point(Interface.mouseX, Interface.mouseY); aimControl(); if ((((rDeg > 60)) && ((rDeg <= 90)))){ rDeg = 60; }; if ((((rDeg > 90)) && ((rDeg < 120)))){ rDeg = 120; }; AimForce = AimForceMax; if ((((rDeg <= 60)) && ((rDeg >= 44)))){ AimForce = AimForceMin; }; if ((((rDeg <= 136)) && ((rDeg >= 120)))){ AimForce = AimForceMin; }; if ((((rDeg <= 60)) && ((rDeg >= 0)))){ _local1 = (30 - (rDeg / 2)); _local1 = Math.round(_local1); if (_local1 < 1){ _local1 = 1; }; if (_local1 > 30){ _local1 = 30; }; BODY.bodyAnim_mc.gotoAndStop(_local1); } else { if ((((rDeg <= 360)) && ((rDeg >= 270)))){ _local1 = (31 + (30 - ((rDeg - 270) / 3))); _local1 = Math.round(_local1); if (_local1 < 31){ _local1 = 31; }; if (_local1 > 60){ _local1 = 60; }; BODY.bodyAnim_mc.gotoAndStop(_local1); } else { if ((((rDeg <= 180)) && ((rDeg >= 120)))){ _local1 = (61 + (30 - ((180 - rDeg) / 2))); _local1 = Math.round(_local1); if (_local1 < 61){ _local1 = 61; }; if (_local1 > 90){ _local1 = 90; }; BODY.bodyAnim_mc.gotoAndStop(_local1); } else { if ((((rDeg <= 270)) && ((rDeg >= 180)))){ _local1 = (91 + (30 - ((270 - rDeg) / 3))); _local1 = Math.round(_local1); if (_local1 < 91){ _local1 = 91; }; if (_local1 > 120){ _local1 = 120; }; BODY.bodyAnim_mc.gotoAndStop(_local1); }; }; }; }; } public function getAimControlDir(){ return (rDeg); } public function aimControl(){ var _local1:*; var _local2:*; var _local3:Number; var _local4:*; var _local5:Number; var _local6:Point; var _local7:MovieClip; var _local8:Point; _local8 = new Point(0, 0); _local8 = BODY.localToGlobal(_local8); _local1 = (MouseLoc.x - _local8.x); _local2 = (MouseLoc.y - _local8.y); _local3 = ((_local1 * _local1) + (_local2 * _local2)); d = Math.sqrt(_local3); rRad = Math.atan2(_local2, _local1); rDeg = (rRad * R2D); if (rDeg < 0){ rDeg = (rDeg + 360); }; } public function missionFailed(_arg1:Object=null){ ui.MissionFailed.activate(); } function frame1(){ stop(); } public function sendFire(_arg1:Object=null){ var _local2:Point; var _local4:Bullet; _local2 = Point.polar(AimForce, rRad); muzzleFlash_mc.visible = false; var _local3:Point = new Point(0, 0); startP0 = startPoint_mc.localToGlobal(_local3); _local4 = new bullet1(startP0.x, startP0.y, _local2); if (g.cLevel){ g.cLevel.playerFire(); }; } public function applyUpgrades(){ } public function evtPauseGame(_arg1:Object){ g.Game.pausePlay(); ui.GamePaused.activate(this); ui.CharacterSheet.visible = false; } public function keySpace(_arg1:Object=null){ if (!Alive){ return; }; } } }//package
Section 158
//BasketBall (BasketBall) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import flash.geom.*; public class BasketBall extends MovieClip { private var body:b2Body; public function BasketBall(){ g.Ball = this; } public function init(_arg1:Point){ var _local2:b2BodyDef; var _local3:b2CircleDef; rotation = 0; _local3 = new b2CircleDef(); _local3.radius = (width / 60); _local3.density = 0.36; _local3.friction = 0.5; _local3.restitution = 0.75; _local3.filter.groupIndex = -1; _local2 = new b2BodyDef(); _local2.position.x = (x / 30); _local2.position.y = (y / 30); _local2.userData = this; _local2.linearDamping = 0.3; _local2.angularDamping = 0.05; body = g.World.CreateBody(_local2); body.CreateShape(_local3); body.SetMassFromShapes(); body.SetLinearVelocity(new b2Vec2(_arg1.x, _arg1.y)); body.SetAngularVelocity(3); } public function destroy(){ if (body){ g.World.DestroyBody(body); }; body = null; } } }//package
Section 159
//blood1 (blood1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class blood1 extends MovieClip { public function blood1(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 160
//bloodParticle (bloodParticle) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.geom.*; import Box2D.Dynamics.Contacts.*; public class bloodParticle extends MovieClip { public var STAINCREATED:Boolean; public var FilterGroup:Number; public var vanishTime:Number; public var ALIVE:Boolean; public var bloodStainClass:Class; public var startX:Number; public var startY:Number; public var particleShape:b2Body; public function bloodParticle(){ if (!g.World){ return; }; ALIVE = true; FilterGroup = 5; STAINCREATED = false; } public function createStain(_arg1:MovieClip){ var _local2:Point; var _local3:MovieClip; if (STAINCREATED){ return; }; STAINCREATED = true; _local3 = new bloodStainClass(); _local2 = new Point(this.x, this.y); _local2 = _arg1.globalToLocal(_local2); _local3.x = _local2.x; _local3.y = _local2.y; _arg1.addChild(_local3); g.cLevel.addBloodStain(_local3); } public function destroy(){ if (!ALIVE){ return; }; ALIVE = false; g.World.DestroyBody(particleShape); if (this.parent){ this.parent.removeChild(this); }; } public function createBody(_arg1:Number, _arg2:Number, _arg3:b2Vec2){ var _local4:b2BodyDef; var _local5:b2CircleDef; var _local6:Point; _local5 = new b2CircleDef(); startX = _arg1; startY = _arg2; m_physScale = 30; _local5.radius = (width / 60); _local5.density = 10; _local5.friction = 1; _local5.restitution = 0; _local5.filter.groupIndex = FilterGroup; _local4 = new b2BodyDef(); _local4.position.x = (startX / m_physScale); _local4.position.y = (startY / m_physScale); _local4.userData = this; g.cLevel.addChild(this); g.cLevel.addParticle(this); particleShape = g.World.CreateBody(_local4); particleShape.CreateShape(_local5); particleShape.SetMassFromShapes(); particleShape.SetLinearVelocity(_arg3); } } }//package
Section 161
//bloodParticle1 (bloodParticle1) package { public class bloodParticle1 extends bloodParticle { public var blocType:String; public function bloodParticle1(){ addFrameScript(0, frame1); super(); vanishTime = 30; bloodStainClass = blood1; } function frame1(){ stop(); blocType = "expparticle"; } } }//package
Section 162
//Bullet (Bullet) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.geom.*; import Box2D.Dynamics.Contacts.*; public class Bullet { public var bulletTrail5_mc:MovieClip; public var m_physScale:Number;// = 30 public var bulletTrail1_mc:MovieClip; public var bulletPositions:Array; public var toSparkle:Boolean; public var fadeOutTime:Number; private var R2D:Number; public var bulletTrail4_mc:MovieClip; public var ALIVE:Boolean; public var objtype:Number; public var startX:Number; public var startY:Number; public var bulletShape:b2Body; public var m_world:b2World; public var bulletTrail3_mc:MovieClip; public var FilterGroup:Number; public var objid:Number; public var bulletTrail6_mc:MovieClip; public var toExplode:Boolean; public var bulletTrail2_mc:MovieClip; public var bullet_mc:MovieClip; public var trailArray:Array; public var toDestroy:Boolean; public static var mouseYWorldPhys:Number; public static var mouseXWorldPhys:Number; public static var mouseYWorld:Number; public static var mouseXWorld:Number; public function Bullet(){ if (!g.World){ return; }; ALIVE = true; toExplode = false; toSparkle = false; toDestroy = false; FilterGroup = 1; g.cLevel.addBullet(this); R2D = (180 / Math.PI); bulletPositions = []; trailArray = []; fadeOutTime = 30; objtype = 1; objid = ((Math.random() + Math.random()) + Math.random()); } public function destroy(){ if (!ALIVE){ return; }; ALIVE = false; g.World.DestroyBody(bulletShape); if (bullet_mc.parent){ bullet_mc.parent.removeChild(bullet_mc); }; destroyTrail(); } public function isOutOfScene():Boolean{ if ((((((bullet_mc.x < 760)) && ((bullet_mc.x > -60)))) && ((bullet_mc.y < 550)))){ return (false); }; return (true); } public function sparkle(){ var _local1:MovieClip; var _local2:*; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:*; var _local7:b2Vec2; toSparkle = false; _local6 = bulletShape.GetLinearVelocity(); _local2 = Math.atan2(_local6.y, _local6.x); _local3 = Math.atan2(-(_local6.y), -(_local6.x)); _local5 = (Math.PI / 4); var _local8:Number = 0; while (_local8 <= 5) { if (Math.random() > 0.5){ _local4 = ((_local2 - _local5) + ((Math.random() * 2) * _local5)); } else { _local4 = ((_local3 - _local5) + ((Math.random() * 2) * _local5)); }; _local7 = new b2Vec2((Math.cos(_local4) * 30), (Math.sin(_local4) * 30)); _local1 = new expParticle2(); _local1.createBody(bullet_mc.x, bullet_mc.y, _local7); _local8++; }; } public function getPos(){ return (new Point(bullet_mc.x, bullet_mc.y)); } public function init(_arg1:Point){ bulletShape.SetLinearVelocity(new b2Vec2(_arg1.x, _arg1.y)); } public function destroyTrail(){ var _local1:Number; var _local2:MovieClip; _local1 = 0; while (_local1 < trailArray.length) { _local2 = trailArray[_local1]; if (_local2.parent){ _local2.parent.removeChild(_local2); }; _local1++; }; } public function updateTrail(){ var _local1:*; var _local2:*; var _local3:Number; bulletPositions.push([bullet_mc.x, bullet_mc.y, bullet_mc.rotation]); _local1 = bulletPositions.length; if (trailArray.length < bulletPositions.length){ _local2 = trailArray.length; } else { _local2 = bulletPositions.length; }; _local3 = 0; while (_local3 < _local2) { trailArray[_local3].x = bulletPositions[((_local1 - _local3) - 1)][0]; trailArray[_local3].y = bulletPositions[((_local1 - _local3) - 1)][1]; trailArray[_local3].rotation = bulletPositions[((_local1 - _local3) - 1)][2]; trailArray[_local3].visible = true; _local3++; }; } public function createBody(){ var _local1:Number; var _local2:b2BodyDef; var _local4:Point; var _local5:*; var _local6:*; var _local7:Number; var _local3:b2CircleDef = new b2CircleDef(); _local5 = 0.05; _local6 = 0; _local7 = 0; _local3.radius = (bullet_mc.width / 60); _local3.density = _local5; _local3.friction = _local6; _local3.restitution = _local7; _local3.filter.groupIndex = FilterGroup; _local2 = new b2BodyDef(); _local4 = new Point((startX / m_physScale), (startY / m_physScale)); _local2.position.Set(_local4.x, _local4.y); _local2.userData = bullet_mc; g.cLevel.addChild(bullet_mc); bulletShape = m_world.CreateBody(_local2); bulletShape.CreateShape(_local3); bulletShape.SetMassFromShapes(); trailArray.push(bulletTrail1_mc, bulletTrail2_mc, bulletTrail3_mc, bulletTrail4_mc, bulletTrail5_mc, bulletTrail6_mc); _local1 = 0; while (_local1 < trailArray.length) { trailArray[_local1].visible = false; trailArray[_local1].alpha = (0.8 - (0.1 * _local1)); g.cLevel.addChild(trailArray[_local1]); _local1++; }; } public function getVelocity(){ return (bulletShape.GetLinearVelocity()); } public function explode(){ var _local1:MovieClip; var _local2:*; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:*; var _local7:b2Vec2; _local6 = bulletShape.GetLinearVelocity(); _local2 = Math.atan2(_local6.y, _local6.x); _local3 = Math.atan2(-(_local6.y), -(_local6.x)); _local5 = (Math.PI / 4); var _local8:Number = 0; while (_local8 <= 10) { if (Math.random() > 0.5){ _local4 = ((_local2 - _local5) + ((Math.random() * 2) * _local5)); } else { _local4 = ((_local3 - _local5) + ((Math.random() * 2) * _local5)); }; _local7 = new b2Vec2((Math.cos(_local4) * 30), (Math.sin(_local4) * 30)); _local1 = new expParticle1(); _local1.createBody(bullet_mc.x, bullet_mc.y, _local7); _local8++; }; destroy(); } public function fadeOutTrail(_arg1:Object=null){ var _local2:Number; fadeOutTime--; if (fadeOutTime <= 0){ destroyTrail(); return; }; var _local3:Number = 0; while (_local3 < trailArray.length) { _local2 = (trailArray[_local3].alpha - 0.05); if (_local2 < 0){ _local2 = 0; }; trailArray[_local3].alpha = _local2; _local3++; }; g.Game.evt(1, fadeOutTrail, this); } public function isToDestroy(_arg1:b2Vec2){ var _local2:Number = _arg1.Length(); if (_local2 < 10){ return (true); }; if ((((((bullet_mc.x < 760)) && ((bullet_mc.x > -60)))) && ((bullet_mc.y < 550)))){ return (false); }; return (true); } } }//package
Section 163
//bullet_img (bullet_img) package { import flash.display.*; public dynamic class bullet_img extends MovieClip { } }//package
Section 164
//bullet1 (bullet1) package { import flash.geom.*; public class bullet1 extends Bullet { public function bullet1(_arg1:Number, _arg2:Number, _arg3:Point){ if (!g.World){ return; }; m_world = g.World; startX = _arg1; startY = _arg2; bullet_mc = new bulletMc1(); bullet_mc.projectile = this; bulletTrail1_mc = new bulletMc1(); bulletTrail2_mc = new bulletMc1_trail(); bulletTrail3_mc = new bulletMc1_trail(); bulletTrail4_mc = new bulletMc1_trail(); bulletTrail5_mc = new bulletMc1_trail(); bulletTrail6_mc = new bulletMc1_trail(); createBody(); init(_arg3); } } }//package
Section 165
//bulletMc1 (bulletMc1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class bulletMc1 extends MovieClip { public var blocType:String; public function bulletMc1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "bullet"; } } }//package
Section 166
//bulletMc1_trail (bulletMc1_trail) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class bulletMc1_trail extends MovieClip { public var blocType:String; public function bulletMc1_trail(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "trail"; } } }//package
Section 167
//CannonLauncher (CannonLauncher) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class CannonLauncher extends MovieClip { public var bar_mc:MovieClip; public var startPoint_mc:MovieClip; public var cannon_mc:MovieClip; public function CannonLauncher(){ if (!g.World){ return; }; g.Cannon = this; } public function nextState(_arg1:Number, _arg2:Number){ cannon_mc.rotation = _arg1; bar_mc.setPct(_arg2); } public function sendFire(){ g.Player.sendFire(); } public function startFire(){ cannon_mc.gotoAndPlay(2); } } }//package
Section 168
//Chain (Chain) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class Chain extends MovieClip { public var m_world:b2World; public var mh1:HangingObject; public var m_physScale:Number;// = 30 public var explodeOnlyOnce:Boolean; public var pieceToExplode:Object; public var alreadyExploded:Boolean; public var jointsToCreate:Array; private var R2D:Number; public var chainPieces:Array; public var tiePieces:Array; public var startY:Number; public var startX:Number; public function Chain(){ if (!g.World){ return; }; R2D = (180 / Math.PI); explodeOnlyOnce = false; alreadyExploded = false; } public function shouldExplode(_arg1:Object){ if (((explodeOnlyOnce) && (alreadyExploded))){ return (false); }; if (explodeOnlyOnce){ if (_arg1 == pieceToExplode){ return (true); }; pieceToExplode.explode(); return (false); }; return (true); } public function createJoints(){ var _local1:Number; var _local2:b2RevoluteJointDef; var _local3:*; var _local4:Object; var _local5:*; var _local6:b2Body; var _local7:b2Vec2; _local2 = new b2RevoluteJointDef(); _local2.enableLimit = true; _local1 = 0; while (_local1 < jointsToCreate.length) { _local3 = jointsToCreate[_local1][0]; _local4 = jointsToCreate[_local1][1]; _local5 = _local3.getBody(); _local6 = _local4.getBody(); _local2.lowerAngle = (-135 / R2D); _local2.upperAngle = (135 / R2D); _local2.Initialize(_local5, _local6, _local5.GetWorldCenter()); g.World.CreateJoint(_local2); _local1++; }; } public function registerBulletId(_arg1:Number){ mh1.bulletId = _arg1; } public function tryToExplodeAll(_arg1:Object){ if (!explodeOnlyOnce){ return; }; if (alreadyExploded){ return; }; alreadyExploded = true; var _local2:Number = 0; while (_local2 < chainPieces.length) { if (chainPieces[_local2]){ if (chainPieces[_local2] != _arg1){ chainPieces[_local2].explode(); }; }; _local2++; }; } public function forceExplosion(_arg1:Object=null){ explodeOnlyOnce = true; if (_arg1 == null){ _arg1 = chainPieces[0]; }; pieceToExplode = _arg1; } } }//package
Section 169
//chain1 (chain1) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class chain1 extends Chain { public var cp1:ChainPiece; public var cp2:ChainPiece; public var cp3:ChainPiece; public var cp4:ChainPiece; public var tp1:TiePiece; public var blocType:String; public function chain1(){ addFrameScript(0, frame1); super(); jointsToCreate = []; jointsToCreate.push([tp1, cp1]); jointsToCreate.push([cp1, cp2]); jointsToCreate.push([cp2, cp3]); jointsToCreate.push([cp3, cp4]); jointsToCreate.push([cp4, mh1]); chainPieces = [cp1, cp2, cp3, cp4]; createJoints(); } function frame1(){ blocType = "chain"; } } }//package
Section 170
//chain10 (chain10) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class chain10 extends Chain { public var cp10:ChainPiece; public var cp1:ChainPiece; public var cp2:ChainPiece; public var cp3:ChainPiece; public var cp4:ChainPiece; public var cp5:ChainPiece; public var cp6:ChainPiece; public var cp8:ChainPiece; public var cp9:ChainPiece; public var cp7:ChainPiece; public var tp1:TiePiece; public var blocType:String; public function chain10(){ addFrameScript(0, frame1); super(); jointsToCreate = []; jointsToCreate.push([tp1, cp1]); jointsToCreate.push([cp1, cp2]); jointsToCreate.push([cp2, cp3]); jointsToCreate.push([cp3, cp4]); jointsToCreate.push([cp4, cp5]); jointsToCreate.push([cp5, cp6]); jointsToCreate.push([cp6, cp7]); jointsToCreate.push([cp7, cp8]); jointsToCreate.push([cp8, cp9]); jointsToCreate.push([cp9, cp10]); jointsToCreate.push([cp10, mh1]); chainPieces = [cp1, cp2, cp3, cp4, cp5, cp6, cp7, cp8, cp9, cp10]; createJoints(); } function frame1(){ blocType = "chain"; } } }//package
Section 171
//chain4 (chain4) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class chain4 extends Chain { public var cp1:ChainPiece; public var cp2:ChainPiece; public var cp3:ChainPiece; public var cp4:ChainPiece; public var cp6:ChainPiece; public var cp8:ChainPiece; public var cp5:ChainPiece; public var tp1:TiePiece; public var tp2:TiePiece; public var blocType:String; public var cp7:ChainPiece; public function chain4(){ addFrameScript(0, frame1); super(); jointsToCreate = []; jointsToCreate.push([tp1, cp1]); jointsToCreate.push([cp1, cp2]); jointsToCreate.push([cp2, cp3]); jointsToCreate.push([cp3, cp4]); jointsToCreate.push([cp4, mh1]); jointsToCreate.push([tp2, cp5]); jointsToCreate.push([cp5, cp6]); jointsToCreate.push([cp6, cp7]); jointsToCreate.push([cp7, cp8]); jointsToCreate.push([cp8, mh1]); chainPieces = [cp1, cp2, cp3, cp4, cp5, cp6, cp7, cp8]; createJoints(); } function frame1(){ blocType = "chain"; } } }//package
Section 172
//chain5 (chain5) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class chain5 extends Chain { public var cp1:ChainPiece; public var cp2:ChainPiece; public var cp3:ChainPiece; public var cp4:ChainPiece; public var cp6:ChainPiece; public var cp5:ChainPiece; public var tp1:TiePiece; public var blocType:String; public function chain5(){ addFrameScript(0, frame1); super(); jointsToCreate = []; jointsToCreate.push([tp1, cp1]); jointsToCreate.push([cp1, cp2]); jointsToCreate.push([cp2, cp3]); jointsToCreate.push([cp3, cp4]); jointsToCreate.push([cp4, cp5]); jointsToCreate.push([cp5, cp6]); jointsToCreate.push([cp6, mh1]); chainPieces = [cp1, cp2, cp3, cp4, cp5, cp6]; createJoints(); } function frame1(){ blocType = "chain"; } } }//package
Section 173
//chain6 (chain6) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class chain6 extends Chain { public var cp10:ChainPiece; public var cp11:ChainPiece; public var cp12:ChainPiece; public var cp1:ChainPiece; public var cp2:ChainPiece; public var cp3:ChainPiece; public var cp4:ChainPiece; public var cp5:ChainPiece; public var cp6:ChainPiece; public var cp8:ChainPiece; public var cp7:ChainPiece; public var cp9:ChainPiece; public var tp1:TiePiece; public var tp2:TiePiece; public var blocType:String; public function chain6(){ addFrameScript(0, frame1); super(); jointsToCreate = []; jointsToCreate.push([tp1, cp1]); jointsToCreate.push([cp1, cp2]); jointsToCreate.push([cp2, cp3]); jointsToCreate.push([cp3, cp4]); jointsToCreate.push([cp4, mh1]); jointsToCreate.push([tp2, cp5]); jointsToCreate.push([cp5, cp6]); jointsToCreate.push([cp6, cp7]); jointsToCreate.push([cp7, cp8]); jointsToCreate.push([cp8, mh1]); chainPieces = [cp1, cp2, cp3, cp4, cp5, cp6, cp7, cp8]; createJoints(); } function frame1(){ blocType = "chain"; } } }//package
Section 174
//chain7 (chain7) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class chain7 extends Chain { public var cp1:ChainPiece; public var cp2:ChainPiece; public var cp3:ChainPiece; public var cp4:ChainPiece; public var cp6:ChainPiece; public var cp5:ChainPiece; public var tp1:TiePiece; public var blocType:String; public function chain7(){ addFrameScript(0, frame1); super(); jointsToCreate = []; jointsToCreate.push([tp1, cp1]); jointsToCreate.push([cp1, cp2]); jointsToCreate.push([cp2, cp3]); jointsToCreate.push([cp3, cp4]); jointsToCreate.push([cp4, cp5]); jointsToCreate.push([cp5, cp6]); jointsToCreate.push([cp6, mh1]); chainPieces = [cp1, cp2, cp3, cp4, cp5, cp6]; createJoints(); } function frame1(){ blocType = "chain"; } } }//package
Section 175
//chain8 (chain8) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class chain8 extends Chain { public var cp1:ChainPiece; public var cp2:ChainPiece; public var cp3:ChainPiece; public var cp4:ChainPiece; public var cp6:ChainPiece; public var cp8:ChainPiece; public var cp5:ChainPiece; public var tp1:TiePiece; public var tp2:TiePiece; public var blocType:String; public var cp7:ChainPiece; public function chain8(){ addFrameScript(0, frame1); super(); jointsToCreate = []; jointsToCreate.push([tp1, cp1]); jointsToCreate.push([cp1, cp2]); jointsToCreate.push([cp2, cp3]); jointsToCreate.push([cp3, cp4]); jointsToCreate.push([cp4, mh1]); jointsToCreate.push([tp2, cp5]); jointsToCreate.push([cp5, cp6]); jointsToCreate.push([cp6, cp7]); jointsToCreate.push([cp7, cp8]); jointsToCreate.push([cp8, mh1]); chainPieces = [cp1, cp2, cp3, cp4, cp5, cp6, cp7, cp8]; createJoints(); } function frame1(){ blocType = "chain"; } } }//package
Section 176
//chain9 (chain9) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class chain9 extends Chain { public var cp11:ChainPiece; public var cp10:ChainPiece; public var cp12:ChainPiece; public var cp1:ChainPiece; public var cp2:ChainPiece; public var cp3:ChainPiece; public var cp4:ChainPiece; public var cp5:ChainPiece; public var cp6:ChainPiece; public var cp8:ChainPiece; public var cp9:ChainPiece; public var cp7:ChainPiece; public var tp1:TiePiece; public var blocType:String; public function chain9(){ addFrameScript(0, frame1); super(); jointsToCreate = []; jointsToCreate.push([tp1, cp1]); jointsToCreate.push([cp1, cp2]); jointsToCreate.push([cp2, cp3]); jointsToCreate.push([cp3, cp4]); jointsToCreate.push([cp4, cp5]); jointsToCreate.push([cp5, cp6]); jointsToCreate.push([cp6, mh1]); chainPieces = [cp1, cp2, cp3, cp4, cp5, cp6]; createJoints(); } function frame1(){ blocType = "chain"; } } }//package
Section 177
//ChainPiece (ChainPiece) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class ChainPiece extends MovieClip { public var m_physScale:Number;// = 30 public var FilterGroup:Number; public var toExplode:Boolean; public var ALIVE:Boolean; public var startX:Number; public var startY:Number; public var chainPolygon:Polygon; public function ChainPiece(){ if (!g.World){ return; }; FilterGroup = 9; toExplode = false; ALIVE = true; } public function explode(){ var _local1:MovieClip; var _local2:*; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:*; var _local7:b2Vec2; if (!ALIVE){ return; }; ALIVE = false; if (parent != null){ parent.tryToExplodeAll(this); }; _local6 = chainPolygon.body.GetLinearVelocity(); _local2 = Math.atan2(_local6.y, _local6.x); _local3 = Math.atan2(-(_local6.y), -(_local6.x)); _local5 = (Math.PI / 4); var _local8:Number = 0; while (_local8 <= 5) { if (Math.random() > 0.5){ _local4 = ((_local2 - _local5) + ((Math.random() * 2) * _local5)); } else { _local4 = ((_local3 - _local5) + ((Math.random() * 2) * _local5)); }; _local7 = new b2Vec2((Math.cos(_local4) * 30), (Math.sin(_local4) * 30)); _local1 = new expParticle3(); _local1.createBody((parent.x + this.x), (parent.y + this.y), _local7); _local8++; }; destroy(); } public function destroy(){ chainPolygon.destroy(); this.parent.removeChild(this); } public function getBody(){ return (chainPolygon.body); } } }//package
Section 178
//chainpiece1 (chainpiece1) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class chainpiece1 extends ChainPiece { public var blocType:String; public function chainpiece1(){ addFrameScript(0, frame1); super(); chainPolygon = new Polygon(4, FilterGroup, 2, 0.8, 0); chainPolygon.polyDef.vertices[0].Set((-5 / 30), (-9 / 30)); chainPolygon.polyDef.vertices[1].Set((5 / 30), (-9 / 30)); chainPolygon.polyDef.vertices[2].Set((5 / 30), (9 / 30)); chainPolygon.polyDef.vertices[3].Set((-5 / 30), (9 / 30)); chainPolygon.x = x; chainPolygon.y = y; chainPolygon.init(this, true); } function frame1(){ stop(); blocType = "chainpiece"; } } }//package
Section 179
//chainpiece2 (chainpiece2) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class chainpiece2 extends ChainPiece { public var blocType:String; public function chainpiece2(){ addFrameScript(0, frame1); super(); chainPolygon = new Polygon(4, FilterGroup, 2, 0.8, 0); chainPolygon.polyDef.vertices[0].Set((-2 / 30), (-9.5 / 30)); chainPolygon.polyDef.vertices[1].Set((2 / 30), (-9.5 / 30)); chainPolygon.polyDef.vertices[2].Set((2 / 30), (9.5 / 30)); chainPolygon.polyDef.vertices[3].Set((-2 / 30), (9.5 / 30)); chainPolygon.x = x; chainPolygon.y = y; chainPolygon.init(this, true); } function frame1(){ stop(); blocType = "chainpiece"; } } }//package
Section 180
//chainpiece3 (chainpiece3) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class chainpiece3 extends ChainPiece { public var blocType:String; public function chainpiece3(){ addFrameScript(0, frame1); super(); chainPolygon = new Polygon(4, FilterGroup, 1, 0.8, 0); chainPolygon.polyDef.vertices[0].Set((-9 / 30), (3 / 30)); chainPolygon.polyDef.vertices[1].Set((3 / 30), (-9 / 30)); chainPolygon.polyDef.vertices[2].Set((9 / 30), (-3 / 30)); chainPolygon.polyDef.vertices[3].Set((-3 / 30), (9 / 30)); chainPolygon.x = x; chainPolygon.y = y; chainPolygon.init(this, true); } function frame1(){ stop(); blocType = "chainpiece"; } } }//package
Section 181
//chainpiece4 (chainpiece4) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class chainpiece4 extends ChainPiece { public var blocType:String; public function chainpiece4(){ addFrameScript(0, frame1); super(); chainPolygon = new Polygon(4, FilterGroup, 1, 0.8, 0); chainPolygon.polyDef.vertices[0].Set((-8 / 30), (5 / 30)); chainPolygon.polyDef.vertices[1].Set((5 / 30), (-8 / 30)); chainPolygon.polyDef.vertices[2].Set((8 / 30), (-5 / 30)); chainPolygon.polyDef.vertices[3].Set((-5 / 30), (8 / 30)); chainPolygon.x = x; chainPolygon.y = y; chainPolygon.init(this, true); } function frame1(){ stop(); blocType = "chainpiece"; } } }//package
Section 182
//chainpiece5 (chainpiece5) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class chainpiece5 extends ChainPiece { public var blocType:String; public function chainpiece5(){ addFrameScript(0, frame1); super(); chainPolygon = new Polygon(4, FilterGroup, 1, 0.8, 0); chainPolygon.polyDef.vertices[0].Set((-8 / 30), (-5 / 30)); chainPolygon.polyDef.vertices[1].Set((-5 / 30), (-9 / 30)); chainPolygon.polyDef.vertices[2].Set((10 / 30), (3 / 30)); chainPolygon.polyDef.vertices[3].Set((3 / 30), (9 / 30)); chainPolygon.x = x; chainPolygon.y = y; chainPolygon.init(this, true); } function frame1(){ stop(); blocType = "chainpiece"; } } }//package
Section 183
//chainpiece6 (chainpiece6) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class chainpiece6 extends ChainPiece { public var blocType:String; public function chainpiece6(){ addFrameScript(0, frame1); super(); chainPolygon = new Polygon(4, FilterGroup, 1, 0.8, 0); chainPolygon.polyDef.vertices[0].Set((-8 / 30), (-5 / 30)); chainPolygon.polyDef.vertices[1].Set((-5 / 30), (-8 / 30)); chainPolygon.polyDef.vertices[2].Set((8 / 30), (5 / 30)); chainPolygon.polyDef.vertices[3].Set((5 / 30), (8 / 30)); chainPolygon.x = x; chainPolygon.y = y; chainPolygon.init(this, true); } function frame1(){ stop(); blocType = "chainpiece"; } } }//package
Section 184
//CheckBox_disabledIcon (CheckBox_disabledIcon) package { import flash.display.*; public dynamic class CheckBox_disabledIcon extends MovieClip { } }//package
Section 185
//CheckBox_downIcon (CheckBox_downIcon) package { import flash.display.*; public dynamic class CheckBox_downIcon extends MovieClip { } }//package
Section 186
//CheckBox_overIcon (CheckBox_overIcon) package { import flash.display.*; public dynamic class CheckBox_overIcon extends MovieClip { } }//package
Section 187
//CheckBox_selectedDisabledIcon (CheckBox_selectedDisabledIcon) package { import flash.display.*; public dynamic class CheckBox_selectedDisabledIcon extends MovieClip { } }//package
Section 188
//CheckBox_selectedDownIcon (CheckBox_selectedDownIcon) package { import flash.display.*; public dynamic class CheckBox_selectedDownIcon extends MovieClip { } }//package
Section 189
//CheckBox_selectedOverIcon (CheckBox_selectedOverIcon) package { import flash.display.*; public dynamic class CheckBox_selectedOverIcon extends MovieClip { } }//package
Section 190
//CheckBox_selectedUpIcon (CheckBox_selectedUpIcon) package { import flash.display.*; public dynamic class CheckBox_selectedUpIcon extends MovieClip { } }//package
Section 191
//CheckBox_upIcon (CheckBox_upIcon) package { import flash.display.*; public dynamic class CheckBox_upIcon extends MovieClip { } }//package
Section 192
//concreteHanging1 (concreteHanging1) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class concreteHanging1 extends HangingObject { public var blocType:String; public function concreteHanging1(){ addFrameScript(0, frame1); super(); hangingPolygon = new Polygon(4, 11, 1.05, 1, 0); hangingPolygon.polyDef.vertices[0].Set((-30 / 30), (-30 / 30)); hangingPolygon.polyDef.vertices[1].Set((30 / 30), (-30 / 30)); hangingPolygon.polyDef.vertices[2].Set((30 / 30), (30 / 30)); hangingPolygon.polyDef.vertices[3].Set((-30 / 30), (30 / 30)); hangingPolygon.x = x; hangingPolygon.y = y; hangingPolygon.init(this, true); body = hangingPolygon.body; } function frame1(){ stop(); blocType = "hangingobject"; } } }//package
Section 193
//concreteHanging2 (concreteHanging2) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import flash.geom.*; public class concreteHanging2 extends HangingObject { public var blocType:String; public function concreteHanging2(){ var _local1:b2BodyDef; var _local2:b2CircleDef; var _local3:Point; addFrameScript(0, frame1); super(); _local2 = new b2CircleDef(); var _local4:Number = 30; _local2.radius = (width / 60); _local2.density = 2; _local2.friction = 0.3; _local2.restitution = 0.3; _local2.filter.groupIndex = 11; _local1 = new b2BodyDef(); _local1.position.x = ((this.parent.x + this.x) / _local4); _local1.position.y = ((this.parent.y + this.y) / _local4); _local1.userData = this; body = g.World.CreateBody(_local1); body.CreateShape(_local2); body.SetMassFromShapes(); } function frame1(){ stop(); blocType = "hangingobject"; } } }//package
Section 194
//concreteSphere1 (concreteSphere1) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.geom.*; import Box2D.Dynamics.Contacts.*; public class concreteSphere1 extends MovingObject { public var blocType:String; public var FilterGroup:Number; public function concreteSphere1(){ var _local1:b2BodyDef; var _local2:b2CircleDef; var _local3:Point; var _local4:Number; super(); addFrameScript(0, frame1); if (!g.World){ return; }; FilterGroup = 13; _local2 = new b2CircleDef(); _local4 = 30; _local2.radius = (width / 60); _local2.density = 1; _local2.friction = 0.3; _local2.restitution = 0.3; _local2.filter.groupIndex = FilterGroup; _local1 = new b2BodyDef(); _local1.position.x = (this.x / _local4); _local1.position.y = (this.y / _local4); _local1.userData = this; body = g.World.CreateBody(_local1); body.CreateShape(_local2); body.SetMassFromShapes(); } function frame1(){ stop(); blocType = "concrete"; } } }//package
Section 195
//concreteSphere2 (concreteSphere2) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.geom.*; import Box2D.Dynamics.Contacts.*; public class concreteSphere2 extends MovingObject { public var blocType:String; public var FilterGroup:Number; public function concreteSphere2(){ var _local1:b2BodyDef; var _local2:b2CircleDef; var _local3:Point; var _local4:Number; super(); addFrameScript(0, frame1); if (!g.World){ return; }; FilterGroup = 13; _local2 = new b2CircleDef(); _local4 = 30; _local2.radius = (width / 60); _local2.density = 1; _local2.friction = 0.3; _local2.restitution = 0.3; _local2.filter.groupIndex = FilterGroup; _local1 = new b2BodyDef(); _local1.position.x = (this.x / _local4); _local1.position.y = (this.y / _local4); _local1.userData = this; body = g.World.CreateBody(_local1); body.CreateShape(_local2); body.SetMassFromShapes(); } function frame1(){ stop(); blocType = "concrete"; } } }//package
Section 196
//concreteSphere3 (concreteSphere3) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.geom.*; import Box2D.Dynamics.Contacts.*; public class concreteSphere3 extends MovingObject { public var blocType:String; public var FilterGroup:Number; public function concreteSphere3(){ var _local1:b2BodyDef; var _local2:b2CircleDef; var _local3:Point; var _local4:Number; super(); addFrameScript(0, frame1); if (!g.World){ return; }; FilterGroup = 13; _local2 = new b2CircleDef(); _local4 = 30; _local2.radius = (width / 60); _local2.density = 0.5; _local2.friction = 0.3; _local2.restitution = 0.3; _local2.filter.groupIndex = FilterGroup; _local1 = new b2BodyDef(); _local1.position.x = (this.x / _local4); _local1.position.y = (this.y / _local4); _local1.userData = this; body = g.World.CreateBody(_local1); body.CreateShape(_local2); body.SetMassFromShapes(); } function frame1(){ stop(); blocType = "concrete"; } } }//package
Section 197
//concreteSphere3_2 (concreteSphere3_2) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.geom.*; import Box2D.Dynamics.Contacts.*; public class concreteSphere3_2 extends MovingObject { public var FilterGroup:Number; public var blocType:String; public function concreteSphere3_2(){ addFrameScript(0, frame1); if (!g.World){ return; }; FilterGroup = 17; } public function init(){ var _local1:b2BodyDef; var _local2:b2CircleDef; var _local3:Point; var _local4:Number; _local2 = new b2CircleDef(); _local4 = 30; _local2.radius = (width / 60); _local2.density = 0.5; _local2.friction = 0.3; _local2.restitution = 0.3; _local2.filter.groupIndex = FilterGroup; _local1 = new b2BodyDef(); _local1.position.x = (this.x / _local4); _local1.position.y = (this.y / _local4); _local1.userData = this; body = g.World.CreateBody(_local1); body.CreateShape(_local2); body.SetMassFromShapes(); } function frame1(){ stop(); blocType = "concrete"; } } }//package
Section 198
//concreteSphere4 (concreteSphere4) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.geom.*; import Box2D.Dynamics.Contacts.*; public class concreteSphere4 extends MovingObject { public var blocType:String; public var FilterGroup:Number; public function concreteSphere4(){ var _local1:b2BodyDef; var _local2:b2CircleDef; var _local3:Point; var _local4:Number; super(); addFrameScript(0, frame1); if (!g.World){ return; }; FilterGroup = 13; _local2 = new b2CircleDef(); _local4 = 30; _local2.radius = (width / 60); _local2.density = 1.5; _local2.friction = 0.3; _local2.restitution = 0.3; _local2.filter.groupIndex = FilterGroup; _local1 = new b2BodyDef(); _local1.position.x = (this.x / _local4); _local1.position.y = (this.y / _local4); _local1.userData = this; body = g.World.CreateBody(_local1); body.CreateShape(_local2); body.SetMassFromShapes(); } function frame1(){ stop(); blocType = "concrete"; } } }//package
Section 199
//concreteTriangle1 (concreteTriangle1) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class concreteTriangle1 extends MovieClip { public var body:b2Body; public var FilterGroup:Number; public var blocType:String; public function concreteTriangle1(){ addFrameScript(0, frame1); if (!g.World){ return; }; FilterGroup = 14; var _local1:Polygon = new Polygon(3, FilterGroup, 0, 1, 0); _local1.polyDef.vertices[0].Set((-20 / 30), (20 / 30)); _local1.polyDef.vertices[1].Set((0 / 30), (-20 / 30)); _local1.polyDef.vertices[2].Set((20 / 30), (20 / 30)); _local1.x = x; _local1.y = y; _local1.init(this, true); body = _local1.body; } function frame1(){ stop(); blocType = "leverstruct"; } public function getBody(){ return (body); } } }//package
Section 200
//explosion1 (explosion1) package { import flash.display.*; public dynamic class explosion1 extends MovieClip { } }//package
Section 201
//ExplosiveObject (ExplosiveObject) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class ExplosiveObject extends MovieClip { public var fatalRadius:Number; public var m_physScale:Number;// = 30 public var FilterGroup:Number; public var toExplode:Boolean; public var objtype:Number; public var objid:Number; public var explosivePolygon:Polygon; public var startX:Number; public var startY:Number; public function ExplosiveObject(){ if (!g.World){ return; }; FilterGroup = 12; toExplode = false; objtype = 2; objid = ((Math.random() + Math.random()) + Math.random()); } public function getFatalRadius(){ return (fatalRadius); } public function explode(){ var _local1:MovieClip; var _local2:*; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:*; var _local7:b2Vec2; var _local8:Number = 1; _local6 = explosivePolygon.body.GetLinearVelocity(); _local2 = Math.atan2(_local6.y, _local6.x); _local3 = Math.atan2(-(_local6.y), -(_local6.x)); _local5 = (Math.PI / 4); var _local9:Number = 0; while (_local9 <= 5) { if (Math.random() > 0.5){ _local4 = ((_local2 - _local5) + ((Math.random() * 2) * _local5)); } else { _local4 = ((_local3 - _local5) + ((Math.random() * 2) * _local5)); }; _local7 = new b2Vec2((Math.cos(_local4) * 40), (Math.sin(_local4) * 40)); if (_local8 == 1){ _local1 = new expParticle4(); _local8 = 2; } else { if (_local8 == 2){ _local1 = new expParticle5(); _local8 = 3; } else { if (_local8 == 3){ _local1 = new expParticle6(); _local8 = 1; }; }; }; _local1.createBody(this.x, this.y, _local7); _local9++; }; g.cLevel.explosion(this); var _local10:MovieClip = new explosion1(); _local10.x = this.x; _local10.y = this.y; g.cLevel.addChild(_local10); g.JukeBox.explosion(); destroy(); } public function destroy(){ explosivePolygon.destroy(); this.parent.removeChild(this); } public function getBody(){ return (explosivePolygon.body); } } }//package
Section 202
//explosiveObject1 (explosiveObject1) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class explosiveObject1 extends ExplosiveObject { public var blocType:String; public function explosiveObject1(){ addFrameScript(0, frame1); super(); fatalRadius = 100; explosivePolygon = new Polygon(4, FilterGroup, 0.2, 0.3, 0); explosivePolygon.polyDef.vertices[0].Set((-20 / 30), (-32 / 30)); explosivePolygon.polyDef.vertices[1].Set((20 / 30), (-32 / 30)); explosivePolygon.polyDef.vertices[2].Set((20 / 30), (32 / 30)); explosivePolygon.polyDef.vertices[3].Set((-20 / 30), (32 / 30)); explosivePolygon.x = this.x; explosivePolygon.y = this.y; explosivePolygon.init(this); } function frame1(){ stop(); blocType = "explosive"; } } }//package
Section 203
//explosiveObject2 (explosiveObject2) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class explosiveObject2 extends ExplosiveObject { public var blocType:String; public function explosiveObject2(){ addFrameScript(0, frame1); super(); if (!g.World){ return; }; fatalRadius = 100; FilterGroup = 16; explosivePolygon = new Polygon(4, FilterGroup, 0.2, 0.3, 0); explosivePolygon.polyDef.vertices[0].Set((-20 / 30), (-32 / 30)); explosivePolygon.polyDef.vertices[1].Set((20 / 30), (-32 / 30)); explosivePolygon.polyDef.vertices[2].Set((20 / 30), (32 / 30)); explosivePolygon.polyDef.vertices[3].Set((-20 / 30), (32 / 30)); } public function init(){ explosivePolygon.x = this.x; explosivePolygon.y = this.y; explosivePolygon.init(this); } function frame1(){ stop(); blocType = "explosive"; } } }//package
Section 204
//expParticle (expParticle) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.geom.*; import Box2D.Dynamics.Contacts.*; public class expParticle extends MovieClip { public var FilterGroup:Number; public var vanishTime:Number; public var ALIVE:Boolean; public var startY:Number; public var particleShape:b2Body; public var startX:Number; public function expParticle(){ if (!g.World){ return; }; ALIVE = true; FilterGroup = 2; } public function destroy(){ if (!ALIVE){ return; }; ALIVE = false; g.World.DestroyBody(particleShape); if (this.parent){ this.parent.removeChild(this); }; } public function createBody(_arg1:Number, _arg2:Number, _arg3:b2Vec2){ var _local4:b2BodyDef; var _local5:b2CircleDef; var _local6:Point; _local5 = new b2CircleDef(); startX = _arg1; startY = _arg2; m_physScale = 30; _local5.radius = (width / 60); _local5.density = 0.01; _local5.friction = 1; _local5.restitution = 0; _local5.filter.groupIndex = FilterGroup; _local4 = new b2BodyDef(); _local4.position.x = (startX / m_physScale); _local4.position.y = (startY / m_physScale); _local4.userData = this; g.cLevel.addChild(this); g.cLevel.addParticle(this); particleShape = g.World.CreateBody(_local4); particleShape.CreateShape(_local5); particleShape.SetMassFromShapes(); particleShape.SetLinearVelocity(_arg3); } } }//package
Section 205
//expParticle1 (expParticle1) package { public class expParticle1 extends expParticle { public var blocType:String; public function expParticle1(){ addFrameScript(0, frame1); super(); vanishTime = 10; } function frame1(){ stop(); blocType = "expparticle"; } } }//package
Section 206
//expParticle2 (expParticle2) package { public class expParticle2 extends expParticle { public var blocType:String; public function expParticle2(){ addFrameScript(0, frame1); super(); vanishTime = 10; } function frame1(){ stop(); blocType = "expparticle"; } } }//package
Section 207
//expParticle3 (expParticle3) package { public class expParticle3 extends expParticle { public var blocType:String; public function expParticle3(){ addFrameScript(0, frame1); super(); vanishTime = 10; } function frame1(){ stop(); blocType = "expparticle"; } } }//package
Section 208
//expParticle4 (expParticle4) package { public class expParticle4 extends expParticle { public var blocType:String; public function expParticle4(){ addFrameScript(0, frame1); super(); vanishTime = 10; } function frame1(){ stop(); blocType = "expparticle"; } } }//package
Section 209
//expParticle5 (expParticle5) package { public class expParticle5 extends expParticle { public var blocType:String; public function expParticle5(){ addFrameScript(0, frame1); super(); vanishTime = 10; } function frame1(){ stop(); blocType = "expparticle"; } } }//package
Section 210
//expParticle6 (expParticle6) package { public class expParticle6 extends expParticle { public var blocType:String; public function expParticle6(){ addFrameScript(0, frame1); super(); vanishTime = 10; } function frame1(){ stop(); blocType = "expparticle"; } } }//package
Section 211
//Floor (Floor) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class Floor extends MovieClip { public function Floor(){ var _local1:Polygon; var _local2:Polygon; super(); if (!g.World){ return; }; _local1 = new Polygon(4, 6, 0, 0.4, 0.1); _local2 = new Polygon(4, 7, 0, 0.4, 0.1); _local1.polyDef.vertices[0].Set((-75 / 30), (15 / 30)); _local1.polyDef.vertices[1].Set((-75 / 30), (-15 / 30)); _local1.polyDef.vertices[2].Set((75 / 30), (-15 / 30)); _local1.polyDef.vertices[3].Set((75 / 30), (15 / 30)); _local1.x = x; _local1.y = y; _local1.init(this); _local2.polyDef.vertices[0].Set((-70 / 30), (10 / 30)); _local2.polyDef.vertices[1].Set((-70 / 30), (-10 / 30)); _local2.polyDef.vertices[2].Set((70 / 30), (-10 / 30)); _local2.polyDef.vertices[3].Set((70 / 30), (10 / 30)); _local2.x = x; _local2.y = y; _local2.init(this); } } }//package
Section 212
//Floor_half (Floor_half) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class Floor_half extends MovieClip { public function Floor_half(){ var _local1:Polygon; var _local2:Polygon; super(); if (!g.World){ return; }; _local1 = new Polygon(4, 6, 0, 0.4, 0.1); _local2 = new Polygon(4, 7, 0, 0.4, 0.1); _local1.polyDef.vertices[0].Set((-37.5 / 30), (15 / 30)); _local1.polyDef.vertices[1].Set((-37.5 / 30), (-15 / 30)); _local1.polyDef.vertices[2].Set((37.5 / 30), (-15 / 30)); _local1.polyDef.vertices[3].Set((37.5 / 30), (15 / 30)); _local1.x = x; _local1.y = y; _local1.init(this); _local2.polyDef.vertices[0].Set((-32.5 / 30), (10 / 30)); _local2.polyDef.vertices[1].Set((-32.5 / 30), (-10 / 30)); _local2.polyDef.vertices[2].Set((32.5 / 30), (-10 / 30)); _local2.polyDef.vertices[3].Set((32.5 / 30), (10 / 30)); _local2.x = x; _local2.y = y; _local2.init(this); } } }//package
Section 213
//floor1 (floor1) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class floor1 extends Floor { public var blocType:String; public function floor1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "wall"; } } }//package
Section 214
//floor2 (floor2) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class floor2 extends Floor { public var blocType:String; public function floor2(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "wall"; } } }//package
Section 215
//floor3 (floor3) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class floor3 extends Floor_half { public var blocType:String; public function floor3(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "wall"; } } }//package
Section 216
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { } }//package
Section 217
//fonts (fonts) package { import flash.text.*; public class fonts { public static var Button2:TextFormat; public static var Text1:TextFormat; public static var Text2:TextFormat; public static var Caption1:TextFormat; public static var Caption2:TextFormat; public static var Button1:TextFormat; public static function apply(_arg1:TextField, _arg2:TextFormat){ _arg1.antiAliasType = "advanced"; _arg1.embedFonts = true; _arg1.setTextFormat(_arg2); _arg1.defaultTextFormat = _arg2; } } }//package
Section 218
//g (g) package { import flash.display.*; import Box2D.Dynamics.*; public class g { public static var Player:aiPlayer; public static var Start:MovieClip; public static var MouseDown:Boolean = false; public static var Game:GameInstance; public static var Interface:GameInterface; public static var Cannon:CannonLauncher; public static var Ball:BasketBall; public static var cLevel:Level; public static var Games:Array; public static var R2D:Number = 57.2957795130823; public static var cGame:Object; public static var World:b2World; public static var D2R:Number = 0.0174532925199433; public static var MissionCompleted:Boolean = false; } }//package
Section 219
//GameContactListener (GameContactListener) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class GameContactListener extends b2ContactListener { override public function Add(_arg1:b2ContactPoint):void{ var _local2:Object = (_arg1.shape1.GetBody().GetUserData() as Object); var _local3:Object = (_arg1.shape2.GetBody().GetUserData() as Object); var _local4:b2FilterData = _arg1.shape1.GetFilterData(); var _local5:b2FilterData = _arg1.shape2.GetFilterData(); var _local6:Number = _local4.groupIndex; var _local7:Number = _local5.groupIndex; if (((_local2) && (_local3))){ if (_local2.blocType == "bullet"){ if (_local3.blocType == "metal"){ _local2.projectile.toSparkle = true; } else { if ((((_local3.blocType == "wall")) || ((_local3.blocType == "concrete")))){ _local2.projectile.toExplode = true; } else { if ((((_local7 == 10)) || ((_local7 == 15)))){ _local2.projectile.toSparkle = true; } else { if ((((_local7 == 11)) || ((_local7 == 14)))){ _local2.projectile.toExplode = true; }; }; }; }; } else { if (_local3.blocType == "bullet"){ if (_local2.blocType == "metal"){ _local3.projectile.toSparkle = true; } else { if ((((_local2.blocType == "wall")) || ((_local2.blocType == "concrete")))){ _local3.projectile.toExplode = true; } else { if ((((_local6 == 10)) || ((_local6 == 15)))){ _local3.projectile.toSparkle = true; } else { if ((((_local6 == 11)) || ((_local6 == 14)))){ _local3.projectile.toExplode = true; }; }; }; }; }; }; if ((((_local6 == 5)) || ((_local7 == 5)))){ if (_local6 == 5){ if (_local7 == 7){ if (Math.random() < 0.4){ _local2.createStain(_local3); }; }; _local2.destroy(); } else { if (_local6 == 7){ if (Math.random() < 0.4){ _local3.createStain(_local2); }; }; _local3.destroy(); }; }; if ((((_local6 == 6)) || ((_local7 == 6)))){ if ((((((((((((((((_local6 == 10)) || ((_local7 == 10)))) || ((_local6 == 11)))) || ((_local7 == 11)))) || ((_local6 == 12)))) || ((_local7 == 12)))) || ((_local6 == 13)))) || ((_local7 == 13)))){ }; }; }; } } }//package
Section 220
//GameData (GameData) package { import flash.net.*; public class GameData { public var cLevel:Number; public var LvlPoints:Array; public var seenTutorial:Boolean; public var LastModified:Date; public static var GAMEID:String = "qigames_coldjustice1_v_1_00"; public function GameData(){ LastModified = new Date(); cLevel = 1; LvlPoints = []; seenTutorial = false; var _local1:Number = 0; while (_local1 < 30) { LvlPoints.push(0); _local1++; }; } public function getObjData(_arg1:String){ var _local2:*; for (_local2 in ObjData) { if (ObjData[_local2].id == _arg1){ return (ObjData[_local2]); }; }; ObjData.push({id:_arg1}); } public static function init(){ var _local1:SharedObject = SharedObject.getLocal(GameData.GAMEID, "/"); var _local2:Array = _local1.data.GAMES; if ((((_local1.data.GAMES == undefined)) || (!(_local1.data.GAMES)))){ _local1.data.GAMES = []; _local1.flush(); }; g.Games = _local1.data.GAMES; g.Games.sort(GameData.orderGames); } public static function getTotalPoints(){ var _local1:*; var _local2:Number; _local2 = 0; _local1 = 0; while (_local1 < 30) { _local2 = (_local2 + g.cGame.LvlPoints[_local1]); _local1++; }; return (_local2); } public static function orderGames(_arg1:Object, _arg2:Object):Number{ if (_arg1.LASTMODIFIED > _arg2.LASTMODIFIED){ return (-1); }; if (_arg1.LASTMODIFIED < _arg2.LASTMODIFIED){ return (1); }; return (0); } public static function save(){ var _local1:SharedObject = SharedObject.getLocal(GameData.GAMEID, "/"); _local1.data.GAMES = g.Games; _local1.flush(); } } }//package
Section 221
//GameInstance (GameInstance) package { import gdk.game.*; public class GameInstance extends gGame { public var cLevel:Level; public var selLevel:Number; public var Levels:Array; public function GameInstance(){ trace("GameInstance unique instance ..."); super(); g.Game = this; Levels = []; Levels.push(level01); Levels.push(level02); Levels.push(level03); Levels.push(level04); Levels.push(level05); Levels.push(level06); Levels.push(level07); Levels.push(level08); Levels.push(level09); Levels.push(level10); Levels.push(level11); Levels.push(level12); Levels.push(level13); Levels.push(level14); Levels.push(level15); Levels.push(level16); Levels.push(level17); Levels.push(level18); Levels.push(level19); Levels.push(level20); Levels.push(level21); Levels.push(level22); Levels.push(level23); Levels.push(level24); Levels.push(level25); Levels.push(level26); Levels.push(level27); Levels.push(level28); Levels.push(level29); Levels.push(level30); } public function init(_arg1:Object=null){ var _local2:Class; trace(("GameInstance->init : Level " + g.cGame.cLevel)); if (cLevel){ cLevel.destroy(); }; cLevel = null; _local2 = Levels[(selLevel - 1)]; cLevel = new _local2(this); addChild(cLevel); } override protected function nextState(){ if (g.Interface){ if (g.Interface.GamePaused){ return; }; }; if (cLevel){ cLevel.nextState(); }; if (g.Player){ g.Player.nextState(); }; } public function reset(){ trace("GameInstance->reset"); destroy(); if (cLevel){ cLevel.destroy(); if (cLevel.parent){ cLevel.parent.removeChild(cLevel); }; cLevel = null; }; } override public function resumePlay(){ super.resumePlay(); } override public function pausePlay(){ super.pausePlay(); } } }//package
Section 222
//GameInterface (GameInterface) package { import flash.display.*; import flash.events.*; import flash.net.*; import flash.ui.*; public class GameInterface extends MovieClip { public var Player:aiPlayer; public var pause_mc:MovieClip; public var MouseDown:Boolean; public var cursor_mc:MovieClip; private var Y1:Number; public var help_mc:MovieClip; private var X0:Number; private var X1:Number; public var GameAlive:Boolean; public var GamePaused:Boolean; public var walk_btn:SimpleButton; public var MouseOutside:Boolean; public var restart_btn:SimpleButton; private var Y0:Number; public var menu_btn:SimpleButton; public function GameInterface(){ addFrameScript(0, frame1); trace("GameInterface unique instance ..."); g.Interface = this; GameAlive = false; MouseOutside = false; GamePaused = false; MouseDown = false; addEventListener(Event.ENTER_FRAME, evtEnterFrame); stage.addEventListener(MouseEvent.MOUSE_DOWN, evtMouseDown); stage.addEventListener(MouseEvent.MOUSE_UP, evtMouseUp); stage.addEventListener(MouseEvent.MOUSE_MOVE, evtMouseMove); restart_btn.addEventListener("click", btnRestartLevel); menu_btn.addEventListener("click", btnMenu); walk_btn.addEventListener("click", btnWalk); restart_btn.addEventListener("mouseOver", btnOver); menu_btn.addEventListener("mouseOver", btnOver); walk_btn.addEventListener("mouseOver", btnOver); X0 = 0; Y0 = 0; X1 = Setup.ScreenW; Y1 = Setup.ScreenH; cursor_mc.visible = false; } public function gotoHelp(){ help_mc.activate(); pausePlay(); } public function resumePlay(){ if (!GamePaused){ return; }; GamePaused = false; cursor_mc.visible = true; Mouse.hide(); showStuff(); } public function btnOver(_arg1:Object=null){ Juke.Box.btnOver(); } public function pausePlay(_arg1:Event=null){ if (GamePaused){ return; }; GamePaused = true; hideStuff(); cursor_mc.visible = false; Mouse.show(); } public function btnWalk(_arg1:Object=null){ navigateToURL(new URLRequest("http://www.gamesnitro.com/walkthrough/cold-justice/"), "_blank"); } public function hideStuff(){ menu_btn.visible = false; restart_btn.visible = false; } public function evtMouseUp(_arg1:MouseEvent){ if (!GameAlive){ return; }; if (GamePaused){ return; }; MouseDown = (g.MouseDown = false); if (mouseY >= 470){ return; }; Player.evtMouseUp(); } public function init(){ trace("GameInterface->init"); GameAlive = true; GamePaused = false; MouseDown = false; Player = g.Player; showStuff(); ui.BulletsUi.initBullets(); ui.CurrentLevel.label_txt.text = g.Game.selLevel; ui.PointsManager.init(); cursor_mc.visible = true; if (!g.cGame.seenTutorial){ help_mc.activate(); pausePlay(); }; } public function evtEnterFrame(_arg1:Event){ var _local2:Number; if (!GameAlive){ return; }; if (GamePaused){ return; }; MouseOutside = false; if ((((mouseX < X0)) || ((mouseX > X1)))){ MouseOutside = true; }; if ((((mouseY < Y0)) || ((mouseY > Y1)))){ MouseOutside = true; }; if (MouseOutside){ Mouse.show(); cursor_mc.visible = false; } else { Mouse.hide(); cursor_mc.visible = true; cursor_mc.x = mouseX; cursor_mc.y = mouseY; if (g.Player){ _local2 = g.Player.getAimControlDir(); if (_local2){ cursor_mc.rotation = _local2; }; }; }; } public function evtMouseDown(_arg1:MouseEvent){ if (!GameAlive){ return; }; if (GamePaused){ return; }; MouseOutside = false; if ((((mouseX < X0)) || ((mouseX > X1)))){ MouseOutside = true; }; if ((((mouseY < Y0)) || ((mouseY > Y1)))){ MouseOutside = true; }; if (!MouseOutside){ Player.evtMouseDown(); MouseDown = (g.MouseDown = true); }; } public function gotoSelectLevel(){ g.cLevel.gameDead(); ui.GameMenu.gotoSelectLevel(); } function btnMenu(_arg1:Event=null){ if (!GameAlive){ return; }; Juke.Box.btnClick(); pause_mc.activate(); pausePlay(); } public function showStuff(){ menu_btn.visible = true; restart_btn.visible = true; } function frame1(){ stop(); } public function btnRestartLevel(_arg1:Event){ Juke.Box.btnClick(); ui.MissionCompleted.deactivate(); ui.MissionFailed.deactivate(); g.cLevel.restartLevel(); } public function evtMouseMove(_arg1:MouseEvent){ if (!MouseOutside){ MouseDown = (g.MouseDown = _arg1.buttonDown); }; } public function backFromInstructions(){ g.cGame.seenTutorial = true; resumePlay(); } } }//package
Section 223
//glo (glo) package { public class glo { public static var bal:Object = new Object(); } }//package
Section 224
//HangingObject (HangingObject) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class HangingObject extends MovieClip { public var body:b2Body; public var hangingPolygon:Object; public var objtype:Number; public var objid:Number; public var bulletId:Number; public function HangingObject(){ objtype = 4; objid = ((Math.random() + Math.random()) + Math.random()); } public function getVelocity(){ return (body.GetLinearVelocity()); } public function getBody(){ return (body); } public function getXPos(){ return ((parent.x + this.x)); } } }//package
Section 225
//head1 (head1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class head1 extends MovieClip { public var blocType:String; public function head1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 226
//Juke (Juke) package { public class Juke { public static var Box:JukeBox; } }//package
Section 227
//JukeBox (JukeBox) package { import flash.display.*; import flash.events.*; import flash.media.*; public class JukeBox extends MovieClip { public var TracksGameLoop:Array; public var sfxClick1:Sound; public var sfxClick2:Sound; public var sfxClick3:Sound; private var SFX_UNLOAD:Sound; private var SFX_RELOAD:Sound; private var SFX_PUMPACTION:Sound; public var TracksGameVol:Array; public var MUTE_SFX:Boolean; public var VOLUME_SCORE1:Number; public var VOLUME_SCORE2:Number; public var VOLUME_SCORE3:Number; public var TracksGame:Array; public var sfxOver1:Sound; public var sfxOver2:Sound; public var sfxOver3:Sound; public var TrackChannel:SoundChannel; public var MUTE_MUSIC:Boolean; public var TrackIndex:Number; public var VOLUME_SFX1:Number; public var VOLUME_SFX3:Number; public var VOLUME_SFX2:Number; public static var sfxClick:Sound; public static var VolSfxReload:Number; public static var sfxBulletConcrete:Sound; public static var sfxBulletFlesh:Sound; public static var sfxFire:Sound; public static var sfxDryfire:Sound; public static var sfxBulletMetal:Sound; public static var VolSfxWeapons:Number; public static var VolSfxUI:Number; public static var sfxImpact:Sound; public static var VolSfxExplosions:Number; public static var sfxExplosionA:Sound; public static var VolSfxVoices:Number; public static var sfxPickAmmo:Sound; public function JukeBox(){ g.JukeBox = this; Juke.Box = this; MUTE_MUSIC = false; MUTE_SFX = false; VOLUME_SFX1 = 0.2; VOLUME_SFX2 = 0.05; VOLUME_SFX3 = 0.2; VOLUME_SCORE1 = 0.3; VOLUME_SCORE2 = 1.2; VOLUME_SCORE3 = 0.6; JukeBox.VolSfxWeapons = 0.3; JukeBox.VolSfxReload = 1; JukeBox.VolSfxUI = 1; JukeBox.VolSfxVoices = 0.6; JukeBox.VolSfxExplosions = 0.6; SCOREi = 1; init(); } public function dryFire(){ playSfx(JukeBox.sfxDryfire, VOLUME_SFX1); } public function musicOff(){ MUTE_MUSIC = true; if (TrackChannel != null){ setChannelVolume(TrackChannel, 0); }; } public function victory(){ } public function btnClick(){ var _local1:Number = Math.floor((Math.random() * 2.99)); switch (_local1){ case 0: playSfx(sfxClick1, (VOLUME_SFX1 * 3)); break; case 1: playSfx(sfxClick2, (VOLUME_SFX1 * 3)); break; case 2: playSfx(sfxClick3, (VOLUME_SFX1 * 3)); break; }; } public function explosion(){ playSfx(JukeBox.sfxExplosionA, VOLUME_SFX1); } public function init(){ JukeBox.sfxFire = new SfxPistol1(); JukeBox.sfxDryfire = new SfxDryFire(); JukeBox.sfxExplosionA = new SfxExplosionA(); JukeBox.sfxClick = new SfxClick(); JukeBox.sfxPickAmmo = new SfxPickAmmo(); JukeBox.sfxImpact = new SfxImpact(); sfxOver1 = new SfxOver1(); sfxOver2 = new SfxOver2(); sfxOver3 = new SfxOver3(); sfxClick1 = new SfxClick1(); sfxClick2 = new SfxClick2(); sfxClick3 = new SfxClick3(); JukeBox.sfxBulletMetal = new SfxBulletMetal4(); JukeBox.sfxBulletFlesh = new SfxBulletFlesh4(); JukeBox.sfxBulletConcrete = new SfxBulletConcrete3(); TracksGameVol = [2, 1]; TracksGameLoop = [1, 1]; TracksGame = []; TracksGame.push(new track2()); TracksGame.push(new track1()); TrackIndex = 0; TrackChannel = null; } public function nextTrack(_arg1:Event){ var _local2:Sound; stopScore(); TrackIndex++; if (TrackIndex >= TracksGame.length){ TrackIndex = 0; }; _local2 = TracksGame[TrackIndex]; TrackChannel = _local2.play(0, TracksGameLoop[TrackIndex]); var _local3:Number = TracksGameVol[TrackIndex]; if (MUTE_MUSIC){ setChannelVolume(TrackChannel, 0); } else { setChannelVolume(TrackChannel, (VOLUME_SCORE1 * _local3)); }; TrackChannel.addEventListener("soundComplete", nextTrack); } public function bulletFlesh(){ playSfx(JukeBox.sfxBulletFlesh, VOLUME_SFX1); } public function bulletMetal(){ playSfx(JukeBox.sfxBulletMetal, VOLUME_SFX2); } public function bulletConcrete(){ playSfx(JukeBox.sfxBulletConcrete, VOLUME_SFX1); } public function sfxOff(){ MUTE_SFX = true; } public function playSfx(_arg1:Sound, _arg2:Number){ if (MUTE_SFX){ return; }; setChannelVolume(_arg1.play(), _arg2); } public function fire(){ playSfx(JukeBox.sfxFire, VOLUME_SFX1); } public function setChannelVolume(_arg1:SoundChannel, _arg2:Number){ var _local3:SoundTransform = _arg1.soundTransform; _local3.volume = _arg2; _arg1.soundTransform = _local3; } public function loading(){ } public function gameScore(){ var _local1:Sound; trace("JukeBox->gameScore"); stopScore(); _local1 = TracksGame[TrackIndex]; TrackChannel = _local1.play(0, TracksGameLoop[TrackIndex]); var _local2:Number = TracksGameVol[TrackIndex]; if (MUTE_MUSIC){ setChannelVolume(TrackChannel, 0); } else { setChannelVolume(TrackChannel, (VOLUME_SCORE1 * _local2)); }; TrackChannel.addEventListener("soundComplete", nextTrack); } public function defeat(){ } public function stopScore(){ if (TrackChannel){ TrackChannel.stop(); TrackChannel.removeEventListener("soundComplete", nextTrack); }; TrackChannel = null; } public function sfxOn(){ MUTE_SFX = false; } public function impact(){ playSfx(JukeBox.sfxImpact, VOLUME_SFX1); } public function btnOver(){ var _local1:Number = Math.floor((Math.random() * 2.99)); switch (_local1){ case 0: playSfx(sfxOver1, (VOLUME_SFX1 * 2)); break; case 1: playSfx(sfxOver2, (VOLUME_SFX1 * 2)); break; case 2: playSfx(sfxOver3, (VOLUME_SFX1 * 2)); break; }; } public function toggle(){ playSfx(new sfxToggle(), VOLUME_SFX1); } public function musicOn(){ var _local1:Number; MUTE_MUSIC = false; if (TrackChannel != null){ _local1 = TracksGameVol[TrackIndex]; setChannelVolume(TrackChannel, (VOLUME_SCORE1 * _local1)); }; } public function menuScore(){ trace("JukeBox->menuScore"); } } }//package
Section 228
//Level (Level) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import flash.geom.*; public class Level extends MovieClip { public var World:b2World; public var outlawsToAdd:Array; public var worldAABB:b2AABB; public var levelPoints; public var TEMPAIMFORCE:Number; public var toSetSpeed:Array; public var timeMissionFailed:Number; private var D2R:Number; public var bulletsForLvl:Number; private var R2D:Number; public var particles:Array; public var bullets:Array; public var noMedalPoints:Number; public var goldMedalPoints:Number; public var outlawUnits:Array; public var bronzeMedalPoints:Number; public var gravity:b2Vec2; public var curBullets:Number; public var Iterations:Number; public var otherLevelPoints:Number; public var TEMPLIMITSPEED:Number; public var TimeStep:Number; public var TEMPANGLE:Number; public var points:Array; public var bloodStains:Array; public var silverMedalPoints:Number; public var ragdolls:Array; public var VICTORY:Boolean; public var minBullets:Number; public function Level(_arg1:Object=null){ if (_arg1 == null){ return; }; g.cLevel = this; TimeStep = (1 / 30); Iterations = 5; particles = []; outlawUnits = []; outlawsToAdd = []; ragdolls = []; bullets = []; bloodStains = []; R2D = (180 / Math.PI); D2R = (1 / R2D); VICTORY = false; timeMissionFailed = (3 * 30); levelPoints = 0; points = [[0, 0], [0, 0], [0, 0], [0, 0]]; goldMedalPoints = 1600; silverMedalPoints = 800; bronzeMedalPoints = 400; noMedalPoints = 100; toSetSpeed = []; } public function addRagdoll(_arg1:OutlawRagdoll){ ragdolls.push(_arg1); } public function addBullet(_arg1:Bullet){ bullets.push(_arg1); } public function bulletsEnded(_arg1:Object=null){ if (VICTORY){ return; }; var _local2:Number = 0; while (_local2 < outlawUnits.length) { if (outlawUnits[_local2].ALIVE){ g.Interface.pausePlay(); ui.MissionFailed.activate(); return; }; _local2++; }; } public function init(){ var _local2:GameContactListener; trace("Level->init ..."); worldAABB = new b2AABB(); worldAABB.lowerBound.Set(-100, -100); worldAABB.upperBound.Set(100, 100); gravity = new b2Vec2(0, 10); var _local1:Boolean; if (g.World == null){ g.World = new b2World(worldAABB, gravity, true); }; World = g.World; _local2 = new GameContactListener(); g.World.SetContactListener(_local2); particles = []; outlawUnits = []; ragdolls = []; bullets = []; bloodStains = []; curBullets = bulletsForLvl; VICTORY = false; levelPoints = 0; points = [[0, 0], [0, 0], [0, 0], [0, 0]]; otherLevelPoints = getOtherLevelPoints(g.Game.selLevel); ui.Points.updatePoints((levelPoints + otherLevelPoints)); } public function getTotalPoints():Number{ if (VICTORY){ return ((levelPoints + otherLevelPoints)); }; return (otherLevelPoints); } public function victory(_arg1:Object=null){ var _local2:*; var _local3:*; var _local4:Number; var _local5:Number; _local2 = (bulletsForLvl - minBullets); _local3 = (_local2 - 1); _local4 = (_local2 - 2); if (curBullets >= _local2){ _local5 = goldMedalPoints; } else { if (curBullets >= _local3){ _local5 = silverMedalPoints; } else { if (curBullets >= _local4){ _local5 = bronzeMedalPoints; } else { _local5 = noMedalPoints; }; }; }; points[3][0] = curBullets; points[3][1] = _local5; levelPoints = (levelPoints + _local5); if (g.Player){ g.Player.victory(); }; } public function getNbBullets():Number{ return (curBullets); } public function restartLevel(){ trace("restart level"); gameDead(); glo.bal.GameLoader.gotoAndPlay(1); } public function playerFire(){ if (curBullets <= 0){ return; }; curBullets--; ui.BulletsUi.fire(); if (curBullets <= 0){ g.Game.evt(timeMissionFailed, bulletsEnded, this); }; } public function initUnits(){ var _local2:aiOutlaw; var _local1:Array = []; var _local3:Number = 0; while (_local3 < outlawsToAdd.length) { _local1 = outlawsToAdd[_local3]; _local2 = new (_local1[0]); _local2.init(_local1[1], _local1[2], _local1[3], _local1[4], _local1[5]); outlawUnits.push(_local2); g.cLevel.addChild(_local2); _local3++; }; } public function removeMc(_arg1:MovieClip){ if (_arg1.parent){ _arg1.parent.removeChild(_arg1); }; } public function explosion(_arg1:ExplosiveObject){ i = 0; while (i < outlawUnits.length) { if (outlawUnits[i]){ outlawUnits[i].tryToExplode(_arg1); }; i++; }; } public function getOtherLevelPoints(_arg1:Number){ var _local2:Number; var _local3:Number = 0; _local2 = 0; while (_local2 < g.cGame.LvlPoints.length) { if (_local2 != (_arg1 - 1)){ _local3 = (_local3 + g.cGame.LvlPoints[_local2]); }; _local2++; }; return (_local3); } public function addObjToManSpeed(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Class){ var _local6:Point; var _local7:Number; var _local8:b2Vec2; _local7 = (_arg2 * D2R); _local6 = Point.polar(_arg3, _local7); _local8 = new b2Vec2(_local6.x, _local6.y); toSetSpeed.push([_arg1, _local8, _arg4, _arg5]); } public function nextState(){ var _local1:b2Body; var _local2:Object; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:Array; var _local11:Array; var _local12:b2Vec2; var _local13:Number; var _local17:Object; var _local18:Number; var _local19:Object; var _local20:b2Body; if (World == null){ return; }; World.Step(TimeStep, Iterations); _local3 = []; _local4 = []; _local6 = []; _local7 = []; _local8 = []; _local9 = []; _local11 = []; _local10 = []; var _local14:Boolean; _local1 = World.m_bodyList; while (_local1) { _local2 = _local1.m_userData; if (!_local1.IsSleeping()){ if ((_local2 is Sprite)){ if (_local2.blocType == "outlaw"){ _local14 = false; } else { if ((((((((_local2.blocType == "chainpiece")) || ((_local2.blocType == "tiepiece")))) || ((_local2.blocType == "hangingobject")))) || ((_local2.blocType == "leverstruct")))){ _local2.x = (-(_local2.parent.x) + (_local1.GetPosition().x * 30)); _local2.y = (-(_local2.parent.y) + (_local1.GetPosition().y * 30)); } else { _local2.x = (_local1.GetPosition().x * 30); _local2.y = (_local1.GetPosition().y * 30); }; if (_local2.blocType != "bullet"){ _local2.rotation = (_local1.GetAngle() * R2D); }; if (_local2.blocType == "chainpiece"){ if (_local2.toExplode){ _local9.push(_local2); }; }; if (_local2.blocType == "explosive"){ if (_local2.toExplode){ _local11.push(_local2); }; }; if (_local2.blocType == "ragdoll"){ if (_local2.ragdoll.isOutOfScene()){ _local3.push(_local2.ragdoll); }; }; if (_local2.blocType == "bullet"){ _local12 = _local1.GetLinearVelocity(); _local13 = Math.atan2(_local12.y, _local12.x); _local2.rotation = (_local13 * R2D); _local2.projectile.updateTrail(); if (_local2.projectile.toExplode){ _local4.push(_local2.projectile); g.JukeBox.bulletConcrete(); }; if (_local2.projectile.toSparkle){ _local6.push(_local2.projectile); g.JukeBox.bulletMetal(); }; if (((_local2.projectile.isToDestroy(_local12)) || (_local2.projectile.toDestroy))){ _local3.push(_local2.projectile); }; }; }; }; }; if ((_local2 is Sprite)){ if (toSetSpeed.length > 0){ _local18 = 0; while (_local18 < toSetSpeed.length) { _local17 = toSetSpeed[_local18][0]; if (_local17 == _local2){ if (_local1.GetLinearVelocity().Length() > toSetSpeed[_local18][2]){ _local10.push([_local2, toSetSpeed[_local18][1], toSetSpeed[_local18][3]]); toSetSpeed.splice(_local18, 1); break; }; }; _local18++; }; }; }; _local1 = _local1.m_next; }; var _local15:Number = 0; while (_local15 < _local10.length) { _local19 = new (_local10[_local15][2]); this.addChild(_local19); _local19.x = _local10[_local15][0].x; _local19.y = _local10[_local15][0].y; _local19.init(); _local20 = _local19.getBody(); _local10[_local15][0].destroy(); _local20.SetLinearVelocity(_local10[_local15][1]); _local15++; }; _local15 = 0; while (_local15 < _local3.length) { if (_local3[_local15]){ _local3[_local15].destroy(); }; _local15++; }; _local15 = 0; while (_local15 < _local4.length) { _local4[_local15].explode(); _local15++; }; _local15 = 0; while (_local15 < _local6.length) { _local6[_local15].sparkle(); _local15++; }; _local15 = 0; while (_local15 < _local7.length) { _local7[_local15].splashBlood(false); _local15++; }; _local15 = 0; while (_local15 < _local8.length) { _local8[_local15].splashBlood(true); _local15++; }; _local15 = 0; while (_local15 < _local9.length) { _local9[_local15].explode(); _local15++; }; _local15 = 0; while (_local15 < _local11.length) { _local11[_local15].explode(); _local15++; }; _local5 = []; _local15 = 0; while (_local15 < particles.length) { particles[_local15].vanishTime--; if (particles[_local15].vanishTime <= 0){ particles[_local15].destroy(); } else { _local5.push(particles[_local15]); }; _local15++; }; particles = _local5; var _local16:Array = []; _local15 = 0; while (_local15 < outlawUnits.length) { if (!outlawUnits[_local15].ALIVE){ outlawUnits[_local15].death(); } else { outlawUnits[_local15].nextState(); _local16.push(outlawUnits[_local15]); }; _local15++; }; outlawUnits = _local16; if ((((outlawUnits.length == 0)) && (!(VICTORY)))){ VICTORY = true; g.Game.evt((30 * 4), victory, this); }; } public function addParticle(_arg1:MovieClip){ particles.push(_arg1); } public function addBloodStain(_arg1:MovieClip){ bloodStains.push(_arg1); } public function destroy(){ var _local1:Number; var _local2:b2Body; var _local3:Array; trace(("Level->destroy : " + this)); if (World == null){ return; }; _local1 = 0; while (_local1 < outlawUnits.length) { outlawUnits[_local1].destroy(); _local1++; }; outlawUnits = []; _local1 = 0; while (_local1 < particles.length) { particles[_local1].destroy(); _local1++; }; particles = []; _local1 = 0; while (_local1 < bullets.length) { bullets[_local1].destroy(); _local1++; }; bullets = []; _local1 = 0; while (_local1 < bloodStains.length) { if (bloodStains[_local1].parent){ bloodStains[_local1].parent.removeChild(bloodStains[_local1]); }; _local1++; }; bloodStains = []; _local1 = 0; while (_local1 < ragdolls.length) { ragdolls[_local1].destroy(); _local1++; }; ragdolls = []; ui.BulletsUi.destroyBullets(); _local3 = []; _local2 = World.m_bodyList; while (_local2) { _local3.push(_local2); _local2 = _local2.m_next; }; for each (_local2 in _local3) { World.DestroyBody(_local2); }; g.World = null; World = null; } public function addPoints(_arg1:Number, _arg2:Number, _arg3:Number){ points[_arg1][0] = (points[_arg1][0] + _arg2); points[_arg1][1] = (points[_arg1][1] + _arg3); levelPoints = (levelPoints + _arg3); ui.Points.updatePoints((levelPoints + otherLevelPoints)); } public function gameDead(){ trace("gameDead"); destroy(); g.Player.gameDead(); VICTORY = false; } } }//package
Section 229
//level01 (level01) package { public class level01 extends Level { public function level01(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw1, 440, 468, 315, 470, 2]); outlawsToAdd.push([outlaw2, 384, 289, 276, 440, 2]); outlawsToAdd.push([outlaw3, 115, 289, 65, 195, 2]); bulletsForLvl = 6; curBullets = bulletsForLvl; minBullets = 1; if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 230
//level02 (level02) package { public class level02 extends Level { public function level02(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw2, 368, 469, 325, 410, 2]); outlawsToAdd.push([outlaw3, 517, 182, 498, 560, 2]); outlawsToAdd.push([outlaw1, 102, 235, 27, 103, 2]); bulletsForLvl = 8; curBullets = bulletsForLvl; minBullets = 3; if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 231
//level03 (level03) package { public class level03 extends Level { public function level03(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw1, 658, 469, 612, 674, 2]); outlawsToAdd.push([outlaw2, 630, 207, 588, 659, 2]); outlawsToAdd.push([outlaw3, 648, 98, 627, 665, 2]); outlawsToAdd.push([outlaw3, 166, 142, 134, 251, 2]); outlawsToAdd.push([outlaw2, 70, 171, 38, 95, 2]); bulletsForLvl = 8; curBullets = bulletsForLvl; minBullets = 3; if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 232
//level04 (level04) package { public class level04 extends Level { public function level04(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw1, 415, 298, 400, 415, 2]); outlawsToAdd.push([outlaw2, 311, 298, 297, 324, 2]); outlawsToAdd.push([outlaw3, 354, 129, 302, 417, 2]); outlawsToAdd.push([outlaw1, 66, 208, 23, 109, 2]); outlawsToAdd.push([outlaw2, 590, 208, 586, 670, 2]); bulletsForLvl = 8; curBullets = bulletsForLvl; minBullets = 3; if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 233
//level05 (level05) package { public class level05 extends Level { public function level05(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw1, 247, 469, 230, 330, 2]); outlawsToAdd.push([outlaw1, 484, 173, 430, 518, 2]); outlawsToAdd.push([outlaw3, 460, 469, 387, 531, 2]); outlawsToAdd.push([outlaw2, 640, 469, 630, 663, 2]); bulletsForLvl = 8; curBullets = bulletsForLvl; minBullets = 3; if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 234
//level06 (level06) package { public class level06 extends Level { public function level06(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw3, 285, 131, 245, 336, 2]); outlawsToAdd.push([outlaw2, 500, 230, 452, 566, 2]); outlawsToAdd.push([outlaw1, 280, 320, 277, 412, 2]); outlawsToAdd.push([outlaw3, 174, 397, 122, 185, 2]); bulletsForLvl = 7; curBullets = bulletsForLvl; minBullets = 2; if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 235
//level07 (level07) package { public class level07 extends Level { public function level07(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw1, 355, 103, 290, 407, 2]); outlawsToAdd.push([outlaw2, 650, 252, 618, 677, 2]); outlawsToAdd.push([outlaw3, 590, 115, 570, 677, 2]); outlawsToAdd.push([outlaw2, 305, 269, 299, 397, 2]); outlawsToAdd.push([outlaw1, 30, 251, 23, 128, 2]); outlawsToAdd.push([outlaw3, 35, 115, 27, 88, 2]); bulletsForLvl = 10; curBullets = bulletsForLvl; minBullets = 5; if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 236
//level08 (level08) package { public class level08 extends Level { public function level08(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw2, 610, 114, 600, 660, 2]); outlawsToAdd.push([outlaw3, 117, 469, 40, 117, 2]); outlawsToAdd.push([outlaw1, 523, 143, 414, 530, 2]); outlawsToAdd.push([outlaw2, 530, 283, 465, 557, 2]); outlawsToAdd.push([outlaw3, 300, 283, 292, 381, 2]); bulletsForLvl = 8; curBullets = bulletsForLvl; minBullets = 3; if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 237
//level09 (level09) package { public class level09 extends Level { public function level09(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw1, 635, 264, 630, 684, 2]); outlawsToAdd.push([outlaw2, 410, 286, 309, 410, 2]); outlawsToAdd.push([outlaw3, 324, 161, 324, 421, 2]); outlawsToAdd.push([outlaw1, 24, 266, 22, 98, 2]); bulletsForLvl = 9; curBullets = bulletsForLvl; minBullets = 4; if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 238
//level10 (level10) package { public class level10 extends Level { public var explosive_mc:Object; public var chain_mc:Object; public function level10(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw1, 150, 167, 120, 155, 2]); outlawsToAdd.push([outlaw2, 95, 469, 25, 100, 2]); outlawsToAdd.push([outlaw3, 620, 114, 610, 670, 2]); bulletsForLvl = 9; curBullets = bulletsForLvl; minBullets = 4; if (_arg1){ init(); }; } function frame2(){ stop(); addObjToManSpeed(explosive_mc, -115, 17, 5, explosiveObject2); initUnits(); } } }//package
Section 239
//level11 (level11) package { public class level11 extends Level { public function level11(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw1, 117, 126, 20, 128, 2]); outlawsToAdd.push([outlaw2, 74, 271, 20, 128, 2]); outlawsToAdd.push([outlaw3, 592, 198, 568, 673, 2]); bulletsForLvl = 7; curBullets = bulletsForLvl; minBullets = 3; if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 240
//level12 (level12) package { public class level12 extends Level { public function level12(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw1, 425, 469, 400, 530, 2]); outlawsToAdd.push([outlaw2, 390, 304, 375, 490, 2]); outlawsToAdd.push([outlaw3, 248, 139, 233, 323, 2]); outlawsToAdd.push([outlaw3, 432, 139, 399, 494, 2]); outlawsToAdd.push([outlaw1, 616, 122, 590, 678, 2]); bulletsForLvl = 6; curBullets = bulletsForLvl; minBullets = 2; if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 241
//level13 (level13) package { public class level13 extends Level { public function level13(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw1, 110, 284, 37, 135, 2]); outlawsToAdd.push([outlaw2, 337, 298, 314, 431, 2]); outlawsToAdd.push([outlaw3, 104, 469, 90, 267, 2]); outlawsToAdd.push([outlaw3, 372, 469, 351, 522, 2]); bulletsForLvl = 7; curBullets = bulletsForLvl; minBullets = 3; if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 242
//level14 (level14) package { public class level14 extends Level { public function level14(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw1, 366, 128, 297, 530, 2]); outlawsToAdd.push([outlaw2, 540, 300, 509, 551, 2]); outlawsToAdd.push([outlaw3, 106, 469, 28, 115, 2]); bulletsForLvl = 7; curBullets = bulletsForLvl; minBullets = 3; if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 243
//level15 (level15) package { public class level15 extends Level { public var explosive_mc:Object; public var chain_mc:Object; public function level15(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw1, 587, 264, 575, 600, 2]); outlawsToAdd.push([outlaw2, 630, 469, 575, 679, 2]); bulletsForLvl = 7; curBullets = bulletsForLvl; minBullets = 3; if (_arg1){ init(); }; } function frame2(){ stop(); addObjToManSpeed(explosive_mc, -65, 16, 5, explosiveObject2); initUnits(); } } }//package
Section 244
//level16 (level16) package { public class level16 extends Level { public function level16(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw3, 328, 469, 267, 346, 2]); outlawsToAdd.push([outlaw2, 642, 469, 575, 670, 2]); bulletsForLvl = 7; curBullets = bulletsForLvl; minBullets = 3; timeMissionFailed = (10 * 30); if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 245
//level17 (level17) package { public class level17 extends Level { public function level17(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw1, 583, 469, 539, 660, 2]); outlawsToAdd.push([outlaw2, 507, 254, 498, 546, 2]); outlawsToAdd.push([outlaw3, 657, 254, 642, 660, 2]); outlawsToAdd.push([outlaw1, 531, 113, 460, 550, 2]); outlawsToAdd.push([outlaw2, 75, 199, 25, 122, 2]); bulletsForLvl = 7; curBullets = bulletsForLvl; minBullets = 3; if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 246
//level18 (level18) package { public class level18 extends Level { public function level18(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw2, 65, 469, 30, 108, 2]); outlawsToAdd.push([outlaw3, 230, 469, 195, 271, 2]); outlawsToAdd.push([outlaw1, 370, 469, 343, 415, 2]); outlawsToAdd.push([outlaw2, 550, 469, 505, 568, 2]); bulletsForLvl = 5; curBullets = bulletsForLvl; minBullets = 1; if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 247
//level19 (level19) package { public class level19 extends Level { public function level19(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw1, 636, 286, 576, 677, 2]); outlawsToAdd.push([outlaw2, 500, 143, 484, 677, 2]); outlawsToAdd.push([outlaw3, 86, 138, 20, 126, 2]); bulletsForLvl = 7; curBullets = bulletsForLvl; minBullets = 3; if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 248
//level20 (level20) package { public class level20 extends Level { public function level20(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw3, 480, 158, 406, 482, 2]); outlawsToAdd.push([outlaw2, 250, 158, 226, 309, 2]); outlawsToAdd.push([outlaw1, 350, 302, 291, 409, 2]); outlawsToAdd.push([outlaw3, 100, 469, 46, 114, 2]); bulletsForLvl = 6; curBullets = bulletsForLvl; minBullets = 2; if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 249
//level21 (level21) package { public class level21 extends Level { public function level21(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw1, 620, 469, 600, 681, 2]); outlawsToAdd.push([outlaw2, 590, 228, 565, 675, 2]); outlawsToAdd.push([outlaw3, 234, 469, 184, 247, 2]); bulletsForLvl = 6; curBullets = bulletsForLvl; minBullets = 3; timeMissionFailed = (5 * 30); if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 250
//level22 (level22) package { public class level22 extends Level { public var movingObject_mc:Object; public function level22(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw3, 280, 208, 245, 288, 2]); outlawsToAdd.push([outlaw2, 70, 100, 40, 124, 2]); bulletsForLvl = 5; curBullets = bulletsForLvl; minBullets = 2; if (_arg1){ init(); }; } function frame2(){ stop(); addObjToManSpeed(movingObject_mc, -120, 18, 5, explosiveObject2); initUnits(); } } }//package
Section 251
//level23 (level23) package { public class level23 extends Level { public function level23(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw1, 594, 469, 568, 672, 2]); outlawsToAdd.push([outlaw2, 418, 201, 405, 467, 2]); outlawsToAdd.push([outlaw3, 570, 128, 567, 677, 2]); outlawsToAdd.push([outlaw1, 43, 151, 26, 124, 2]); bulletsForLvl = 6; curBullets = bulletsForLvl; minBullets = 3; if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 252
//level24 (level24) package { public class level24 extends Level { public function level24(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw1, 134, 469, 25, 137, 2]); outlawsToAdd.push([outlaw2, 540, 469, 538, 668, 2]); bulletsForLvl = 5; curBullets = bulletsForLvl; minBullets = 2; if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 253
//level25 (level25) package { public class level25 extends Level { public var movingObject_mc:Object; public function level25(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw2, 648, 290, 618, 675, 2]); outlawsToAdd.push([outlaw3, 570, 128, 567, 677, 2]); outlawsToAdd.push([outlaw1, 356, 469, 328, 360, 2]); bulletsForLvl = 6; curBullets = bulletsForLvl; minBullets = 3; timeMissionFailed = (10 * 30); if (_arg1){ init(); }; } function frame2(){ stop(); addObjToManSpeed(movingObject_mc, -70, 14, 5, concreteSphere3_2); initUnits(); } } }//package
Section 254
//level26 (level26) package { public class level26 extends Level { public function level26(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw1, 293, 109, 200, 318, 2]); outlawsToAdd.push([outlaw2, 53, 469, 43, 122, 2]); outlawsToAdd.push([outlaw3, 460, 469, 424, 615, 2]); bulletsForLvl = 6; curBullets = bulletsForLvl; minBullets = 3; timeMissionFailed = (7 * 30); if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 255
//level27 (level27) package { public class level27 extends Level { public var movingObject_mc:Object; public function level27(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw1, 650, 275, 608, 665, 2]); outlawsToAdd.push([outlaw2, 425, 231, 365, 445, 2]); outlawsToAdd.push([outlaw3, 425, 114, 391, 506, 2]); bulletsForLvl = 6; curBullets = bulletsForLvl; minBullets = 3; if (_arg1){ init(); }; } function frame2(){ stop(); addObjToManSpeed(movingObject_mc, -75, 15, 5, explosiveObject2); initUnits(); } } }//package
Section 256
//level28 (level28) package { public class level28 extends Level { public function level28(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw3, 500, 469, 476, 520, 2]); outlawsToAdd.push([outlaw2, 70, 469, 30, 80, 2]); bulletsForLvl = 5; curBullets = bulletsForLvl; minBullets = 2; timeMissionFailed = (10 * 30); if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 257
//level29 (level29) package { public class level29 extends Level { public function level29(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw1, 596, 469, 549, 668, 2]); outlawsToAdd.push([outlaw2, 323, 469, 305, 358, 2]); outlawsToAdd.push([outlaw3, 200, 469, 159, 210, 2]); outlawsToAdd.push([outlaw1, 72, 260, 42, 132, 2]); bulletsForLvl = 6; curBullets = bulletsForLvl; minBullets = 3; if (_arg1){ init(); }; } function frame2(){ stop(); initUnits(); } } }//package
Section 258
//level30 (level30) package { public class level30 extends Level { public var movingObject_mc:Object; public function level30(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); outlawsToAdd = []; outlawsToAdd.push([outlaw3, 645, 158, 605, 677, 2]); outlawsToAdd.push([outlaw1, 187, 125, 150, 190, 2]); bulletsForLvl = 5; curBullets = bulletsForLvl; minBullets = 2; timeMissionFailed = (7 * 30); if (_arg1){ init(); }; } function frame2(){ stop(); addObjToManSpeed(movingObject_mc, -70, 15, 5, explosiveObject2); initUnits(); } } }//package
Section 259
//LeverStructure (LeverStructure) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class LeverStructure extends MovieClip { public var m_world:b2World; private var R2D:Number; public var rim2_body:b2Body; public var m_physScale:Number;// = 30 public var rim1_body:b2Body; public var base_body:b2Body; public var lever_body:b2Body; public function LeverStructure(){ if (!g.World){ return; }; R2D = (180 / Math.PI); } public function createJoints(){ var _local1:b2RevoluteJointDef = new b2RevoluteJointDef(); _local1.enableLimit = true; _local1.lowerAngle = (-90 / R2D); _local1.upperAngle = (90 / R2D); _local1.Initialize(lever_body, base_body, lever_body.GetWorldCenter()); g.World.CreateJoint(_local1); _local1.lowerAngle = (0 / R2D); _local1.upperAngle = (0 / R2D); _local1.Initialize(rim1_body, lever_body, rim1_body.GetWorldCenter()); g.World.CreateJoint(_local1); _local1.lowerAngle = (0 / R2D); _local1.upperAngle = (0 / R2D); _local1.Initialize(rim2_body, lever_body, rim2_body.GetWorldCenter()); g.World.CreateJoint(_local1); } } }//package
Section 260
//leverStructure1 (leverStructure1) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class leverStructure1 extends LeverStructure { public var base:Object; public var lever:Object; public var rim1:Object; public var rim2:Object; public function leverStructure1(){ addFrameScript(0, frame1); super(); lever_body = lever.getBody(); base_body = base.getBody(); rim1_body = rim1.getBody(); rim2_body = rim2.getBody(); createJoints(); } function frame1(){ stop(); } } }//package
Section 261
//loader (loader) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class loader extends MovieClip { public var BYTESRATIO:Number; public var bar_mc:MovieClip; public var kb_txt:TextField; public var PREROLLTIME:Number; public var play_btn:SimpleButton; public var pct_txt:TextField; public var BYTESLOADED:Number; public var PREROLLTIMER:Number; public var PREROLLRATIO:Number; public var BYTESTOTAL:Number; public function loader(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 34, frame35, 49, frame50, 59, frame60); } function frame35(){ if (spAPI.HackLock){ gotoAndStop(50); } else { ui.Main.gotoAndPlay("dummy"); }; } function frame3(){ stop(); removeEventListener(Event.ENTER_FRAME, evtEnterFrame); play_btn.y = 425; play_btn.addEventListener("click", btnPlay); } function frame60(){ gotoAndStop(50); } function frame50(){ stop(); } function frame2(){ stop(); } public function btnPlay(_arg1:Event){ gotoAndPlay(4); } function frame1(){ ui.Main.stop(); PREROLLTIMER = 0; PREROLLTIME = (12 * stage.frameRate); PREROLLRATIO = 0; BYTESLOADED = 0; BYTESTOTAL = 1; play_btn.tabEnabled = false; addEventListener(Event.ENTER_FRAME, evtEnterFrame); } public function evtEnterFrame(_arg1:Event):void{ var _local2:*; var _local3:Number; if (!loaderInfo){ trace("null"); return; }; BYTESLOADED = root.loaderInfo.bytesLoaded; BYTESTOTAL = root.loaderInfo.bytesTotal; if (BYTESTOTAL > 0){ BYTESRATIO = (BYTESLOADED / BYTESTOTAL); } else { BYTESRATIO = 0; }; PREROLLTIMER++; PREROLLRATIO = (PREROLLTIMER / PREROLLTIME); var _local4:Number = Math.min(PREROLLRATIO, BYTESRATIO); if (_local4 < 1){ pct_txt.text = (Math.round((100 * _local4)) + "%"); if (BYTESRATIO > 0){ _local3 = Math.round((BYTESTOTAL / 0x0400)); _local2 = Math.round((_local3 * _local4)); kb_txt.text = (((_local2 + " / ") + _local3) + " kB"); } else { kb_txt.text = ""; }; bar_mc.gotoAndStop((1 + Math.round((100 * _local4)))); } else { pct_txt.text = "100%"; _local3 = Math.round((BYTESTOTAL / 0x0400)); kb_txt.text = (((_local3 + " / ") + _local3) + " kB"); bar_mc.gotoAndStop(101); gotoAndStop(3); }; } } }//package
Section 262
//lowerArmL1 (lowerArmL1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class lowerArmL1 extends MovieClip { public var blocType:String; public function lowerArmL1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 263
//lowerArmR1 (lowerArmR1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class lowerArmR1 extends MovieClip { public var blocType:String; public function lowerArmR1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 264
//lowerLegL1 (lowerLegL1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class lowerLegL1 extends MovieClip { public var blocType:String; public function lowerLegL1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 265
//lowerLegR1 (lowerLegR1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class lowerLegR1 extends MovieClip { public var blocType:String; public function lowerLegR1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 266
//main (main) package { import flash.display.*; import flash.text.*; import flash.system.*; import flash.ui.*; public dynamic class main extends MovieClip { public function main(){ var _local1:*; var _local2:*; var _local3:TextFormat; var _local4:ContextMenu; var _local5:ContextMenuItem; var _local6:ContextMenuItem; var _local7:ContextMenuItem; super(); addFrameScript(0, frame1, 1, frame2, 2, frame3, 9, frame10, 19, frame20, 39, frame40, 40, frame41); ui.Main = this; glo.bal.FRAMERATE = 30; Security.allowDomain("*"); Security.allowInsecureDomain("*"); _local1 = new TextFormat("Revolution"); _local1.bold = true; _local2 = new TextFormat("Revolution"); _local2.bold = true; _local3 = new TextFormat("TrebuchetBold"); _local3.bold = true; fonts.Text1 = _local1; fonts.Text2 = _local2; fonts.Text3 = _local3; fonts.Button1 = _local1; fonts.Button2 = _local2; fonts.Button3 = _local3; fonts.Caption1 = _local1; fonts.Caption2 = _local2; fonts.Caption3 = _local3; _local4 = new ContextMenu(); _local4.hideBuiltInItems(); contextMenu = _local4; _local5 = new ContextMenuItem("Cold Justice"); _local6 = new ContextMenuItem("A Game by QiGames.com"); _local6.separatorBefore = true; _local7 = new ContextMenuItem("v1.05GN"); _local7.separatorBefore = true; _local4.customItems.push(_local5); _local4.customItems.push(_local6); _local4.customItems.push(_local7); GameData.init(); spAPI.init(); MochiBot.track(this, "f8f7513c"); } function frame1(){ stop(); } function frame2(){ gotoAndStop(1); } function frame3(){ gotoAndStop(1); } function frame40(){ stage.frameRate = 30; } function frame41(){ gotoAndStop(40); } function frame20(){ g.JukeBox.gameScore(); } function frame10(){ gotoAndStop("splash1"); } } }//package
Section 267
//metal1_1 (metal1_1) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class metal1_1 extends MovieClip { public var blocType:String; public function metal1_1(){ var _local1:Polygon; var _local2:Polygon; super(); addFrameScript(0, frame1); _local1 = new Polygon(4, 6, 0, 0.3, 0.8); _local2 = new Polygon(4, 7, 0, 0.3, 0.8); _local1.polyDef.vertices[0].Set((-60 / 30), (-8 / 30)); _local1.polyDef.vertices[1].Set((60 / 30), (-8 / 30)); _local1.polyDef.vertices[2].Set((60 / 30), (8 / 30)); _local1.polyDef.vertices[3].Set((-60 / 30), (8 / 30)); _local1.x = x; _local1.y = y; _local1.init(this); _local2.polyDef.vertices[0].Set((-53 / 30), (-2 / 30)); _local2.polyDef.vertices[1].Set((53 / 30), (-2 / 30)); _local2.polyDef.vertices[2].Set((53 / 30), (2 / 30)); _local2.polyDef.vertices[3].Set((-53 / 30), (2 / 30)); _local2.x = x; _local2.y = y; _local2.init(this); } function frame1(){ stop(); blocType = "metal"; } } }//package
Section 268
//metal1_1_half (metal1_1_half) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class metal1_1_half extends MovieClip { public var blocType:String; public function metal1_1_half(){ var _local1:Polygon; var _local2:Polygon; super(); addFrameScript(0, frame1); _local1 = new Polygon(4, 6, 0, 0.3, 0.8); _local2 = new Polygon(4, 7, 0, 0.3, 0.8); _local1.polyDef.vertices[0].Set((-30 / 30), (-8 / 30)); _local1.polyDef.vertices[1].Set((30 / 30), (-8 / 30)); _local1.polyDef.vertices[2].Set((30 / 30), (8 / 30)); _local1.polyDef.vertices[3].Set((-30 / 30), (8 / 30)); _local1.x = x; _local1.y = y; _local1.init(this); _local2.polyDef.vertices[0].Set((-23 / 30), (-2 / 30)); _local2.polyDef.vertices[1].Set((23 / 30), (-2 / 30)); _local2.polyDef.vertices[2].Set((23 / 30), (2 / 30)); _local2.polyDef.vertices[3].Set((-23 / 30), (2 / 30)); _local2.x = x; _local2.y = y; _local2.init(this); } function frame1(){ stop(); blocType = "metal"; } } }//package
Section 269
//metal1_2 (metal1_2) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class metal1_2 extends MovieClip { public var blocType:String; public function metal1_2(){ var _local1:Polygon; var _local2:Polygon; super(); addFrameScript(0, frame1); _local1 = new Polygon(4, 6, 0, 0.3, 0.8); _local2 = new Polygon(4, 7, 0, 0.3, 0.8); _local1.polyDef.vertices[0].Set((-8 / 30), (-60 / 30)); _local1.polyDef.vertices[1].Set((8 / 30), (-60 / 30)); _local1.polyDef.vertices[2].Set((8 / 30), (60 / 30)); _local1.polyDef.vertices[3].Set((-8 / 30), (60 / 30)); _local1.x = x; _local1.y = y; _local1.init(this); _local2.polyDef.vertices[0].Set((-2 / 30), (-53 / 30)); _local2.polyDef.vertices[1].Set((2 / 30), (-53 / 30)); _local2.polyDef.vertices[2].Set((2 / 30), (53 / 30)); _local2.polyDef.vertices[3].Set((-2 / 30), (53 / 30)); _local2.x = x; _local2.y = y; _local2.init(this); } function frame1(){ stop(); blocType = "metal"; } } }//package
Section 270
//metal1_2_half (metal1_2_half) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class metal1_2_half extends MovieClip { public var blocType:String; public function metal1_2_half(){ var _local1:Polygon; var _local2:Polygon; super(); addFrameScript(0, frame1); _local1 = new Polygon(4, 6, 0, 0.3, 0.8); _local2 = new Polygon(4, 7, 0, 0.3, 0.8); _local1.polyDef.vertices[0].Set((-8 / 30), (-30 / 30)); _local1.polyDef.vertices[1].Set((8 / 30), (-30 / 30)); _local1.polyDef.vertices[2].Set((8 / 30), (30 / 30)); _local1.polyDef.vertices[3].Set((-8 / 30), (30 / 30)); _local1.x = x; _local1.y = y; _local1.init(this); _local2.polyDef.vertices[0].Set((-2 / 30), (-23 / 30)); _local2.polyDef.vertices[1].Set((2 / 30), (-23 / 30)); _local2.polyDef.vertices[2].Set((2 / 30), (23 / 30)); _local2.polyDef.vertices[3].Set((-2 / 30), (23 / 30)); _local2.x = x; _local2.y = y; _local2.init(this); } function frame1(){ stop(); blocType = "metal"; } } }//package
Section 271
//metalDiagonal1_105 (metalDiagonal1_105) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class metalDiagonal1_105 extends MovieClip { public var blocType:String; public function metalDiagonal1_105(){ var _local1:Polygon; var _local2:Polygon; super(); addFrameScript(0, frame1); _local1 = new Polygon(4, 6, 0, 0.3, 0.8); _local2 = new Polygon(4, 7, 0, 0.3, 0.8); _local1.polyDef.vertices[0].Set((-8 / 30), (-60 / 30)); _local1.polyDef.vertices[1].Set((23 / 30), (56 / 30)); _local1.polyDef.vertices[2].Set((8 / 30), (60 / 30)); _local1.polyDef.vertices[3].Set((-23 / 30), (-56 / 30)); _local1.x = x; _local1.y = y; _local1.init(this); _local2.polyDef.vertices[0].Set((-11 / 30), (-53 / 30)); _local2.polyDef.vertices[1].Set((18 / 30), (51 / 30)); _local2.polyDef.vertices[2].Set((11 / 30), (53 / 30)); _local2.polyDef.vertices[3].Set((-18 / 30), (-51 / 30)); _local2.x = x; _local2.y = y; _local2.init(this); } function frame1(){ stop(); blocType = "metal"; } } }//package
Section 272
//metalDiagonal1_120 (metalDiagonal1_120) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class metalDiagonal1_120 extends MovieClip { public var blocType:String; public function metalDiagonal1_120(){ var _local1:Polygon; var _local2:Polygon; super(); addFrameScript(0, frame1); _local1 = new Polygon(4, 6, 0, 0.3, 0.8); _local2 = new Polygon(4, 7, 0, 0.3, 0.8); _local1.polyDef.vertices[0].Set((-24 / 30), (-56 / 30)); _local1.polyDef.vertices[1].Set((37 / 30), (48 / 30)); _local1.polyDef.vertices[2].Set((24 / 30), (56 / 30)); _local1.polyDef.vertices[3].Set((-37 / 30), (-48 / 30)); _local1.x = x; _local1.y = y; _local1.init(this); _local2.polyDef.vertices[0].Set((-25 / 30), (-50 / 30)); _local2.polyDef.vertices[1].Set((32 / 30), (46 / 30)); _local2.polyDef.vertices[2].Set((25 / 30), (50 / 30)); _local2.polyDef.vertices[3].Set((-32 / 30), (-46 / 30)); _local2.x = x; _local2.y = y; _local2.init(this); } function frame1(){ stop(); blocType = "metal"; } } }//package
Section 273
//metalDiagonal1_135 (metalDiagonal1_135) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class metalDiagonal1_135 extends MovieClip { public var blocType:String; public function metalDiagonal1_135(){ var _local1:Polygon; var _local2:Polygon; super(); addFrameScript(0, frame1); _local1 = new Polygon(4, 6, 0, 0.3, 0.8); _local2 = new Polygon(4, 7, 0, 0.3, 0.8); _local1.polyDef.vertices[0].Set((-48 / 30), (-37 / 30)); _local1.polyDef.vertices[1].Set((-37 / 30), (-48 / 30)); _local1.polyDef.vertices[2].Set((48 / 30), (37 / 30)); _local1.polyDef.vertices[3].Set((37 / 30), (48 / 30)); _local1.x = x; _local1.y = y; _local1.init(this); _local2.polyDef.vertices[0].Set((-40 / 30), (-36 / 30)); _local2.polyDef.vertices[1].Set((-35 / 30), (-40 / 30)); _local2.polyDef.vertices[2].Set((40 / 30), (36 / 30)); _local2.polyDef.vertices[3].Set((35 / 30), (40 / 30)); _local2.x = x; _local2.y = y; _local2.init(this); } function frame1(){ stop(); blocType = "metal"; } } }//package
Section 274
//metalDiagonal1_15 (metalDiagonal1_15) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class metalDiagonal1_15 extends MovieClip { public var blocType:String; public function metalDiagonal1_15(){ var _local1:Polygon; var _local2:Polygon; super(); addFrameScript(0, frame1); _local1 = new Polygon(4, 6, 0, 0.3, 0.8); _local2 = new Polygon(4, 7, 0, 0.3, 0.8); _local1.polyDef.vertices[0].Set((-56 / 30), (23 / 30)); _local1.polyDef.vertices[1].Set((-60 / 30), (8 / 30)); _local1.polyDef.vertices[2].Set((56 / 30), (-23 / 30)); _local1.polyDef.vertices[3].Set((60 / 30), (-8 / 30)); _local1.x = x; _local1.y = y; _local1.init(this); _local2.polyDef.vertices[0].Set((-52 / 30), (17 / 30)); _local2.polyDef.vertices[1].Set((-55 / 30), (10 / 30)); _local2.polyDef.vertices[2].Set((52 / 30), (-17 / 30)); _local2.polyDef.vertices[3].Set((55 / 30), (-10 / 30)); _local2.x = x; _local2.y = y; _local2.init(this); } function frame1(){ stop(); blocType = "metal"; } } }//package
Section 275
//metalDiagonal1_150 (metalDiagonal1_150) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class metalDiagonal1_150 extends MovieClip { public var blocType:String; public function metalDiagonal1_150(){ var _local1:Polygon; var _local2:Polygon; super(); addFrameScript(0, frame1); _local1 = new Polygon(4, 6, 0, 0.3, 0.8); _local2 = new Polygon(4, 7, 0, 0.3, 0.8); _local1.polyDef.vertices[0].Set((-48 / 30), (-37 / 30)); _local1.polyDef.vertices[1].Set((56 / 30), (23 / 30)); _local1.polyDef.vertices[2].Set((48 / 30), (37 / 30)); _local1.polyDef.vertices[3].Set((-56 / 30), (-23 / 30)); _local1.x = x; _local1.y = y; _local1.init(this); _local2.polyDef.vertices[0].Set((-46 / 30), (-30 / 30)); _local2.polyDef.vertices[1].Set((50 / 30), (25 / 30)); _local2.polyDef.vertices[2].Set((46 / 30), (30 / 30)); _local2.polyDef.vertices[3].Set((-50 / 30), (-25 / 30)); _local2.x = x; _local2.y = y; _local2.init(this); } function frame1(){ stop(); blocType = "metal"; } } }//package
Section 276
//metalDiagonal1_30 (metalDiagonal1_30) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class metalDiagonal1_30 extends MovieClip { public var blocType:String; public function metalDiagonal1_30(){ var _local1:Polygon; var _local2:Polygon; super(); addFrameScript(0, frame1); _local1 = new Polygon(4, 6, 0, 0.3, 0.8); _local2 = new Polygon(4, 7, 0, 0.3, 0.8); _local1.polyDef.vertices[0].Set((-48 / 30), (37 / 30)); _local1.polyDef.vertices[1].Set((-56 / 30), (23 / 30)); _local1.polyDef.vertices[2].Set((48 / 30), (-37 / 30)); _local1.polyDef.vertices[3].Set((56 / 30), (-23 / 30)); _local1.x = x; _local1.y = y; _local1.init(this); _local2.polyDef.vertices[0].Set((-46 / 30), (30 / 30)); _local2.polyDef.vertices[1].Set((-50 / 30), (25 / 30)); _local2.polyDef.vertices[2].Set((46 / 30), (-30 / 30)); _local2.polyDef.vertices[3].Set((50 / 30), (-25 / 30)); _local2.x = x; _local2.y = y; _local2.init(this); } function frame1(){ stop(); blocType = "metal"; } } }//package
Section 277
//metalDiagonal1_45 (metalDiagonal1_45) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class metalDiagonal1_45 extends MovieClip { public var blocType:String; public function metalDiagonal1_45(){ var _local1:Polygon; var _local2:Polygon; super(); addFrameScript(0, frame1); _local1 = new Polygon(4, 6, 0, 0.3, 0.8); _local2 = new Polygon(4, 7, 0, 0.3, 0.8); _local1.polyDef.vertices[0].Set((-48 / 30), (37 / 30)); _local1.polyDef.vertices[1].Set((37 / 30), (-48 / 30)); _local1.polyDef.vertices[2].Set((48 / 30), (-37 / 30)); _local1.polyDef.vertices[3].Set((-37 / 30), (48 / 30)); _local1.x = x; _local1.y = y; _local1.init(this); _local2.polyDef.vertices[0].Set((-40 / 30), (37 / 30)); _local2.polyDef.vertices[1].Set((36 / 30), (-40 / 30)); _local2.polyDef.vertices[2].Set((40 / 30), (-37 / 30)); _local2.polyDef.vertices[3].Set((-36 / 30), (40 / 30)); _local2.x = x; _local2.y = y; _local2.init(this); } function frame1(){ stop(); blocType = "metal"; } } }//package
Section 278
//metalDiagonal1_60 (metalDiagonal1_60) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class metalDiagonal1_60 extends MovieClip { public var blocType:String; public function metalDiagonal1_60(){ var _local1:Polygon; var _local2:Polygon; super(); addFrameScript(0, frame1); _local1 = new Polygon(4, 6, 0, 0.3, 0.8); _local2 = new Polygon(4, 7, 0, 0.3, 0.8); _local1.polyDef.vertices[0].Set((-24 / 30), (56 / 30)); _local1.polyDef.vertices[1].Set((-37 / 30), (48 / 30)); _local1.polyDef.vertices[2].Set((24 / 30), (-56 / 30)); _local1.polyDef.vertices[3].Set((37 / 30), (-48 / 30)); _local1.x = x; _local1.y = y; _local1.init(this); _local2.polyDef.vertices[0].Set((-25 / 30), (50 / 30)); _local2.polyDef.vertices[1].Set((-32 / 30), (46 / 30)); _local2.polyDef.vertices[2].Set((25 / 30), (-50 / 30)); _local2.polyDef.vertices[3].Set((32 / 30), (-46 / 30)); _local2.x = x; _local2.y = y; _local2.init(this); } function frame1(){ stop(); blocType = "metal"; } } }//package
Section 279
//metalDiagonal1_75 (metalDiagonal1_75) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class metalDiagonal1_75 extends MovieClip { public var blocType:String; public function metalDiagonal1_75(){ var _local1:Polygon; var _local2:Polygon; super(); addFrameScript(0, frame1); _local1 = new Polygon(4, 6, 0, 0.3, 0.8); _local2 = new Polygon(4, 7, 0, 0.3, 0.8); _local1.polyDef.vertices[0].Set((-8 / 30), (60 / 30)); _local1.polyDef.vertices[1].Set((-23 / 30), (56 / 30)); _local1.polyDef.vertices[2].Set((8 / 30), (-60 / 30)); _local1.polyDef.vertices[3].Set((23 / 30), (-56 / 30)); _local1.x = x; _local1.y = y; _local1.init(this); _local2.polyDef.vertices[0].Set((-11 / 30), (53 / 30)); _local2.polyDef.vertices[1].Set((-18 / 30), (51 / 30)); _local2.polyDef.vertices[2].Set((11 / 30), (-53 / 30)); _local2.polyDef.vertices[3].Set((18 / 30), (-51 / 30)); _local2.x = x; _local2.y = y; _local2.init(this); } function frame1(){ stop(); blocType = "metal"; } } }//package
Section 280
//metalLever1 (metalLever1) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class metalLever1 extends MovieClip { public var body:b2Body; public var FilterGroup:Number; public var blocType:String; public function metalLever1(){ addFrameScript(0, frame1); if (!g.World){ return; }; FilterGroup = 15; var _local1:Polygon = new Polygon(4, FilterGroup, 0.15, 0.3, 0.8); _local1.polyDef.vertices[0].Set((-119 / 30), (-8 / 30)); _local1.polyDef.vertices[1].Set((119 / 30), (-8 / 30)); _local1.polyDef.vertices[2].Set((119 / 30), (8 / 30)); _local1.polyDef.vertices[3].Set((-119 / 30), (8 / 30)); _local1.x = x; _local1.y = y; _local1.init(this, true); body = _local1.body; } function frame1(){ stop(); blocType = "leverstruct"; } public function getBody(){ return (body); } } }//package
Section 281
//metalRectangle1 (metalRectangle1) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class metalRectangle1 extends HangingObject { public var blocType:String; public var FilterGroup:Number; public function metalRectangle1(){ var _local1:b2BodyDef; var _local2:b2PolygonDef; super(); addFrameScript(0, frame1); if (!g.World){ return; }; FilterGroup = 10; _local2 = new b2PolygonDef(); _local2.SetAsBox((this.width / 60), (this.height / 60)); _local2.density = 0.6; _local2.friction = 0.3; _local2.restitution = 0.6; _local1 = new b2BodyDef(); _local1.position.Set(((this.parent.x + this.x) / 30), ((this.parent.y + this.y) / 30)); _local1.userData = this; body = g.World.CreateBody(_local1); body.CreateShape(_local2); body.SetMassFromShapes(); } function frame1(){ stop(); blocType = "hangingobject"; } } }//package
Section 282
//metalRectangle2 (metalRectangle2) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class metalRectangle2 extends HangingObject { public var blocType:String; public var FilterGroup:Number; public function metalRectangle2(){ addFrameScript(0, frame1); if (!g.World){ return; }; FilterGroup = 10; hangingPolygon = new Polygon(4, FilterGroup, 0.7, 0.3, 0.8); hangingPolygon.polyDef.vertices[0].Set((-38 / 30), (-38 / 30)); hangingPolygon.polyDef.vertices[1].Set((38 / 30), (-38 / 30)); hangingPolygon.polyDef.vertices[2].Set((38 / 30), (38 / 30)); hangingPolygon.polyDef.vertices[3].Set((-38 / 30), (38 / 30)); hangingPolygon.x = x; hangingPolygon.y = y; hangingPolygon.init(this, true); body = hangingPolygon.body; } function frame1(){ stop(); blocType = "hangingobject"; } } }//package
Section 283
//metalRim1 (metalRim1) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class metalRim1 extends MovieClip { public var body:b2Body; public var FilterGroup:Number; public var blocType:String; public function metalRim1(){ addFrameScript(0, frame1); if (!g.World){ return; }; FilterGroup = 15; var _local1:Polygon = new Polygon(4, FilterGroup, 0.15, 0.3, 0.8); _local1.polyDef.vertices[0].Set((-8 / 30), (16 / 30)); _local1.polyDef.vertices[1].Set((-8 / 30), (-16 / 30)); _local1.polyDef.vertices[2].Set((8 / 30), (-16 / 30)); _local1.polyDef.vertices[3].Set((8 / 30), (16 / 30)); _local1.x = x; _local1.y = y; _local1.init(this, true); body = _local1.body; } function frame1(){ stop(); blocType = "leverstruct"; } public function getBody(){ return (body); } } }//package
Section 284
//MochiBot (MochiBot) package { import flash.display.*; import flash.net.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ if (Security.sandboxType == "localWithFile"){ return (null); }; var _local3:MochiBot = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); var _local4 = "http://core.mochibot.com/my/core.swf"; var _local5:URLVariables = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; var _local6:String = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; var _local7:URLRequest = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; var _local8:Loader = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 285
//MovingObject (MovingObject) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class MovingObject extends MovieClip { public var body:b2Body; public var objtype:Number; public var objid:Number; public var didAmplify:Boolean; public function MovingObject(){ objtype = 3; objid = ((Math.random() + Math.random()) + Math.random()); didAmplify = false; } public function amplifySpeed(){ if (didAmplify){ return; }; didAmplify = true; g.Game.evt(8, doAmplify, this); } public function destroy(){ g.World.DestroyBody(body); this.parent.removeChild(this); } public function doAmplify(_arg1:Object=null){ var _local2:b2Vec2; _local2 = this.getVelocity(); _local2.Normalize(); trace(("newSpeed.Length() " + _local2.Length())); _local2.Multiply(5); trace(("newSpeed.Length() " + _local2.Length())); body.SetLinearVelocity(_local2); trace("speed amplified"); } public function getVelocity(){ return (body.GetLinearVelocity()); } public function getBody(){ return (body); } public function getXPos(){ return (this.x); } } }//package
Section 286
//numbers (numbers) package { public class numbers { public static function formatSeconds(_arg1:Number){ var _local2:String; var _local3:String; var _local4:String; var _local5:Number; _local2 = ""; _local5 = (_arg1 / 60); _local5 = Math.floor(_local5); _local3 = (_local5 + ":"); if (_local3.length == 2){ _local3 = ("0" + _local3); }; _local2 = (_local2 + _local3); _arg1 = (_arg1 - (_local5 * 60)); _local4 = String(_arg1); if (_local4.length == 1){ _local4 = ("0" + _local4); }; _local2 = (_local2 + _local4); return (_local2); } public static function format(_arg1:Number){ var _local2:String; var _local3:String; var _local4:String; var _local5:String; var _local6:Number; var _local7:Number; _local2 = ""; _local6 = (_arg1 / 1000000); _local6 = Math.floor(_local6); if (_local6 > 0){ _local3 = (_local6 + ","); if (_local3.length == 2){ _local3 = ("00" + _local3); }; if (_local3.length == 3){ _local3 = ("0" + _local3); }; _local2 = (_local2 + _local3); _arg1 = (_arg1 - (_local6 * 1000000)); }; _local7 = (_arg1 / 1000); _local7 = Math.floor(_local7); if ((((_local7 > 0)) || ((_local6 > 0)))){ _local4 = (_local7 + ","); if (_local2.length > 0){ if (_local4.length == 2){ _local4 = ("00" + _local4); }; if (_local4.length == 3){ _local4 = ("0" + _local4); }; }; _local2 = (_local2 + _local4); _arg1 = (_arg1 - (_local7 * 1000)); }; _local5 = String(Math.round(_arg1)); if (_local2.length > 0){ if (_local5.length == 1){ _local5 = ("00" + _local5); }; if (_local5.length == 2){ _local5 = ("0" + _local5); }; }; _local2 = (_local2 + _local5); return (_local2); } } }//package
Section 287
//ohead1 (ohead1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class ohead1 extends MovieClip { public var blocType:String; public function ohead1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 288
//ohead2 (ohead2) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class ohead2 extends MovieClip { public var blocType:String; public function ohead2(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 289
//ohead3 (ohead3) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class ohead3 extends MovieClip { public var blocType:String; public function ohead3(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 290
//olowerArmL1 (olowerArmL1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class olowerArmL1 extends MovieClip { public var blocType:String; public function olowerArmL1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 291
//olowerArmL2 (olowerArmL2) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class olowerArmL2 extends MovieClip { public var blocType:String; public function olowerArmL2(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 292
//olowerArmL3 (olowerArmL3) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class olowerArmL3 extends MovieClip { public var blocType:String; public function olowerArmL3(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 293
//olowerArmR1 (olowerArmR1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class olowerArmR1 extends MovieClip { public var blocType:String; public function olowerArmR1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 294
//olowerArmR2 (olowerArmR2) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class olowerArmR2 extends MovieClip { public var blocType:String; public function olowerArmR2(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 295
//olowerArmR3 (olowerArmR3) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class olowerArmR3 extends MovieClip { public var blocType:String; public function olowerArmR3(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 296
//olowerLegL1 (olowerLegL1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class olowerLegL1 extends MovieClip { public var blocType:String; public function olowerLegL1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 297
//olowerLegL2 (olowerLegL2) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class olowerLegL2 extends MovieClip { public var blocType:String; public function olowerLegL2(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 298
//olowerLegL3 (olowerLegL3) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class olowerLegL3 extends MovieClip { public var blocType:String; public function olowerLegL3(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 299
//olowerLegR1 (olowerLegR1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class olowerLegR1 extends MovieClip { public var blocType:String; public function olowerLegR1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 300
//olowerLegR2 (olowerLegR2) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class olowerLegR2 extends MovieClip { public var blocType:String; public function olowerLegR2(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 301
//olowerLegR3 (olowerLegR3) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class olowerLegR3 extends MovieClip { public var blocType:String; public function olowerLegR3(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 302
//otorso1_1 (otorso1_1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class otorso1_1 extends MovieClip { public var blocType:String; public function otorso1_1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 303
//otorso2 (otorso2) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class otorso2 extends MovieClip { public var blocType:String; public function otorso2(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 304
//otorso3 (otorso3) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class otorso3 extends MovieClip { public var blocType:String; public function otorso3(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 305
//oupperArmL1 (oupperArmL1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class oupperArmL1 extends MovieClip { public var blocType:String; public function oupperArmL1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 306
//oupperArmL2 (oupperArmL2) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class oupperArmL2 extends MovieClip { public var blocType:String; public function oupperArmL2(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 307
//oupperArmL3 (oupperArmL3) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class oupperArmL3 extends MovieClip { public var blocType:String; public function oupperArmL3(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 308
//oupperArmR1 (oupperArmR1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class oupperArmR1 extends MovieClip { public var blocType:String; public function oupperArmR1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 309
//oupperArmR2 (oupperArmR2) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class oupperArmR2 extends MovieClip { public var blocType:String; public function oupperArmR2(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 310
//oupperArmR3 (oupperArmR3) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class oupperArmR3 extends MovieClip { public var blocType:String; public function oupperArmR3(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 311
//oupperLegL1 (oupperLegL1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class oupperLegL1 extends MovieClip { public var blocType:String; public function oupperLegL1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 312
//oupperLegL2 (oupperLegL2) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class oupperLegL2 extends MovieClip { public var blocType:String; public function oupperLegL2(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 313
//oupperLegL3 (oupperLegL3) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class oupperLegL3 extends MovieClip { public var blocType:String; public function oupperLegL3(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 314
//oupperLegR1 (oupperLegR1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class oupperLegR1 extends MovieClip { public var blocType:String; public function oupperLegR1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 315
//oupperLegR2 (oupperLegR2) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class oupperLegR2 extends MovieClip { public var blocType:String; public function oupperLegR2(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 316
//oupperLegR3 (oupperLegR3) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class oupperLegR3 extends MovieClip { public var blocType:String; public function oupperLegR3(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 317
//outlaw1 (outlaw1) package { public class outlaw1 extends aiOutlaw { public var blocType:String; public function outlaw1(){ addFrameScript(0, frame1); super(); if (!g.World){ return; }; ALIVE = true; ragClass = outlawRagdoll1; } function frame1(){ stop(); blocType = "outlaw"; } } }//package
Section 318
//outlaw2 (outlaw2) package { public class outlaw2 extends aiOutlaw { public var blocType:String; public function outlaw2(){ addFrameScript(0, frame1); super(); if (!g.World){ return; }; ALIVE = true; ragClass = outlawRagdoll2; } function frame1(){ stop(); blocType = "outlaw"; } } }//package
Section 319
//outlaw3 (outlaw3) package { public class outlaw3 extends aiOutlaw { public var blocType:String; public function outlaw3(){ addFrameScript(0, frame1); super(); if (!g.World){ return; }; ALIVE = true; ragClass = outlawRagdoll3; } function frame1(){ stop(); blocType = "outlaw"; } } }//package
Section 320
//OutlawRagdoll (OutlawRagdoll) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.geom.*; import Box2D.Dynamics.Contacts.*; public class OutlawRagdoll { public var lowerArmL_mc:MovieClip; public var m_physScale:Number;// = 30 public var BODYSHAPES:Array; public var torso3_mc:MovieClip; public var lowerArmR:b2Body; public var BODYMCS:Array; public var torso1:b2Body; public var torso2:b2Body; public var torso3:b2Body; public var outlaw:aiOutlaw; public var lowerLegR:b2Body; public var lowerLegL:b2Body; public var ALIVE:Boolean; public var upperLegR_mc:MovieClip; public var upperArmL:b2Body; public var startX:Number; public var startY:Number; public var upperArmR:b2Body; public var lowerLegL_mc:MovieClip; public var m_world:b2World; public var upperArmL_mc:MovieClip; public var torso2_mc:MovieClip; public var upperLegR:b2Body; public var lowerArmR_mc:MovieClip; public var uaDist:Number; public var head_mc:MovieClip; public var torso1_mc:MovieClip; public var upperLegL:b2Body; public var membersDist:Number; public var head:b2Body; public var FilterGroup:Number; public var upperLegL_mc:MovieClip; public var lowerLegR_mc:MovieClip; public var upperArmR_mc:MovieClip; public static var mouseYWorldPhys:Number; public static var mouseXWorldPhys:Number; public static var mouseYWorld:Number; public static var mouseXWorld:Number; public function OutlawRagdoll(){ if (!g.World){ return; }; ALIVE = true; FilterGroup = 4; g.cLevel.addRagdoll(this); } public function destroy(){ var _local1:Number; if (!ALIVE){ return; }; ALIVE = false; trace("destroyed ragdoll"); _local1 = 0; while (_local1 < BODYSHAPES.length) { if (BODYSHAPES[_local1]){ g.World.DestroyBody(BODYSHAPES[_local1]); }; BODYSHAPES[_local1] = null; _local1++; }; _local1 = 0; while (_local1 < BODYMCS.length) { if (BODYMCS[_local1].parent){ BODYMCS[_local1].parent.removeChild(BODYMCS[_local1]); }; _local1++; }; } public function init(_arg1:b2Vec2){ torso1.SetLinearVelocity(_arg1); } public function isOutOfScene(){ i = 0; while (i < BODYMCS.length) { if ((((((BODYMCS[i].x < 760)) && ((BODYMCS[i].x > -60)))) && ((BODYMCS[i].y < 550)))){ return (false); }; i++; }; return (true); } public function createBody(){ var _local1:Number; var _local2:b2BodyDef; var _local3:b2CircleDef; var _local4:b2PolygonDef; var _local5:b2RevoluteJointDef; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:*; var _local13:*; var _local14:*; var _local15:*; var _local16:*; var _local17:Point; var _local18:Number; var _local19:*; var _local20:*; var _local21:Number; _local3 = new b2CircleDef(); _local4 = new b2PolygonDef(); _local5 = new b2RevoluteJointDef(); _local18 = (m_physScale * 2); _local19 = 1; _local20 = 0.4; _local21 = 0.1; _local1 = 0; while (_local1 < BODYMCS.length) { BODYMCS[_local1].scaleX = 0.5; BODYMCS[_local1].scaleY = 0.5; _local1++; }; _local3.radius = ((head_mc.width / 2) / m_physScale); _local3.density = _local19; _local3.friction = _local20; _local3.restitution = _local21; _local3.filter.groupIndex = FilterGroup; _local2 = new b2BodyDef(); _local6 = new Point((startX / m_physScale), (startY / m_physScale)); _local2.position.Set(_local6.x, _local6.y); _local2.userData = head_mc; g.cLevel.addChild(head_mc); head = m_world.CreateBody(_local2); head.CreateShape(_local3); head.SetMassFromShapes(); BODYSHAPES.push(head); _local4.SetAsBox((torso1_mc.width / m_physScale), (torso1_mc.height / m_physScale)); _local4.density = _local19; _local4.friction = _local20; _local4.restitution = _local21; _local4.filter.groupIndex = FilterGroup; _local2 = new b2BodyDef(); _local7 = new Point(_local6.x, ((_local6.y + (head_mc.height / _local18)) + (torso1_mc.height / _local18))); new Point(_local6.x, ((_local6.y + (head_mc.height / _local18)) + (torso1_mc.height / _local18))).y = (_local7.y + membersDist); _local2.position.Set(_local7.x, _local7.y); _local2.userData = torso1_mc; g.cLevel.addChild(torso1_mc); torso1 = m_world.CreateBody(_local2); torso1.CreateShape(_local4); torso1.SetMassFromShapes(); BODYSHAPES.push(torso1); _local4.SetAsBox((upperArmL_mc.width / m_physScale), (upperArmL_mc.height / m_physScale)); _local4.density = _local19; _local4.friction = _local20; _local4.restitution = _local21; _local4.filter.groupIndex = FilterGroup; _local2 = new b2BodyDef(); _local10 = new Point(((_local6.x - (torso1_mc.width / _local18)) - (upperArmL_mc.width / _local18)), (_local7.y - ((2 * torso1_mc.height) / (3 * m_physScale)))); new Point(((_local6.x - (torso1_mc.width / _local18)) - (upperArmL_mc.width / _local18)), (_local7.y - ((2 * torso1_mc.height) / (3 * m_physScale)))).x = (_local10.x - uaDist); _local2.position.Set(_local10.x, _local10.y); _local2.userData = upperArmL_mc; g.cLevel.addChild(upperArmL_mc); upperArmL = m_world.CreateBody(_local2); upperArmL.CreateShape(_local4); upperArmL.SetMassFromShapes(); BODYSHAPES.push(upperArmL); _local11 = new Point(((_local6.x + (torso1_mc.width / _local18)) + (upperArmR_mc.width / _local18)), (_local7.y - ((2 * torso1_mc.height) / (3 * m_physScale)))); new Point(((_local6.x + (torso1_mc.width / _local18)) + (upperArmR_mc.width / _local18)), (_local7.y - ((2 * torso1_mc.height) / (3 * m_physScale)))).x = (_local11.x + uaDist); _local2.position.Set(_local11.x, _local11.y); _local2.userData = upperArmR_mc; g.cLevel.addChild(upperArmR_mc); upperArmR = m_world.CreateBody(_local2); upperArmR.CreateShape(_local4); upperArmR.SetMassFromShapes(); BODYSHAPES.push(upperArmR); _local4.SetAsBox((lowerArmL_mc.width / m_physScale), (lowerArmL_mc.height / m_physScale)); _local4.density = _local19; _local4.friction = _local20; _local4.restitution = _local21; _local4.filter.groupIndex = FilterGroup; _local2 = new b2BodyDef(); _local12 = new Point(((_local10.x - (upperArmL_mc.width / _local18)) - (lowerArmL_mc.width / _local18)), _local10.y); new Point(((_local10.x - (upperArmL_mc.width / _local18)) - (lowerArmL_mc.width / _local18)), _local10.y).x = (_local12.x - uaDist); _local2.position.Set(_local12.x, _local12.y); _local2.userData = lowerArmL_mc; g.cLevel.addChild(lowerArmL_mc); var _local22:b2Body = m_world.CreateBody(_local2); _local22.CreateShape(_local4); _local22.SetMassFromShapes(); BODYSHAPES.push(_local22); _local4.SetAsBox((lowerArmR_mc.width / m_physScale), (lowerArmR_mc.height / m_physScale)); _local4.density = _local19; _local4.friction = _local20; _local4.restitution = _local21; _local4.filter.groupIndex = FilterGroup; _local2 = new b2BodyDef(); _local13 = new Point(((_local11.x + (upperArmR_mc.width / _local18)) + (lowerArmR_mc.width / _local18)), _local11.y); new Point(((_local11.x + (upperArmR_mc.width / _local18)) + (lowerArmR_mc.width / _local18)), _local11.y).x = (_local13.x + uaDist); _local2.position.Set(_local13.x, _local13.y); _local2.userData = lowerArmR_mc; g.cLevel.addChild(lowerArmR_mc); lowerArmR = m_world.CreateBody(_local2); lowerArmR.CreateShape(_local4); lowerArmR.SetMassFromShapes(); BODYSHAPES.push(lowerArmR); _local4.SetAsBox((upperLegL_mc.width / m_physScale), (upperLegL_mc.height / m_physScale)); _local4.density = _local19; _local4.friction = _local20; _local4.restitution = _local21; _local4.filter.groupIndex = FilterGroup; _local2 = new b2BodyDef(); _local14 = new Point((_local6.x - (torso1_mc.width / _local18)), ((_local7.y + (torso1_mc.height / _local18)) + (upperLegL_mc.height / _local18))); new Point((_local6.x - (torso1_mc.width / _local18)), ((_local7.y + (torso1_mc.height / _local18)) + (upperLegL_mc.height / _local18))).y = (_local14.y + membersDist); _local2.position.Set(_local14.x, _local14.y); _local2.userData = upperLegL_mc; g.cLevel.addChild(upperLegL_mc); upperLegL = m_world.CreateBody(_local2); upperLegL.CreateShape(_local4); upperLegL.SetMassFromShapes(); BODYSHAPES.push(upperLegL); _local15 = new Point((_local6.x + (torso1_mc.width / _local18)), _local14.y); _local2.position.Set(_local15.x, _local15.y); _local2.userData = upperLegR_mc; g.cLevel.addChild(upperLegR_mc); upperLegR = m_world.CreateBody(_local2); upperLegR.CreateShape(_local4); upperLegR.SetMassFromShapes(); BODYSHAPES.push(upperLegR); _local4.SetAsBox((lowerLegL_mc.width / m_physScale), (lowerLegL_mc.height / m_physScale)); _local4.density = _local19; _local4.friction = _local20; _local4.restitution = _local21; _local4.filter.groupIndex = FilterGroup; _local2 = new b2BodyDef(); _local16 = new Point(_local14.x, ((_local14.y + (upperLegL_mc.height / _local18)) + (lowerLegL_mc.height / _local18))); new Point(_local14.x, ((_local14.y + (upperLegL_mc.height / _local18)) + (lowerLegL_mc.height / _local18))).y = (_local16.y + membersDist); _local2.position.Set(_local16.x, _local16.y); _local2.userData = lowerLegL_mc; g.cLevel.addChild(lowerLegL_mc); lowerLegL = m_world.CreateBody(_local2); lowerLegL.CreateShape(_local4); lowerLegL.SetMassFromShapes(); BODYSHAPES.push(lowerLegL); _local17 = new Point(_local15.x, _local16.y); _local2.position.Set(_local17.x, _local17.y); _local2.userData = lowerLegR_mc; g.cLevel.addChild(lowerLegR_mc); lowerLegR = m_world.CreateBody(_local2); lowerLegR.CreateShape(_local4); lowerLegR.SetMassFromShapes(); BODYSHAPES.push(lowerLegR); _local5.enableLimit = true; _local5.lowerAngle = (-40 / (180 / Math.PI)); _local5.upperAngle = (40 / (180 / Math.PI)); _local5.Initialize(torso1, head, new b2Vec2(_local6.x, (_local6.y + (head_mc.height / _local18)))); m_world.CreateJoint(_local5); _local5.lowerAngle = (-85 / (180 / Math.PI)); _local5.upperAngle = (130 / (180 / Math.PI)); _local5.Initialize(torso1, upperArmL, new b2Vec2(((_local10.x + (upperArmL_mc.width / _local18)) + (uaDist / 2)), _local10.y)); m_world.CreateJoint(_local5); _local5.lowerAngle = (-130 / (180 / Math.PI)); _local5.upperAngle = (85 / (180 / Math.PI)); _local5.Initialize(torso1, upperArmR, new b2Vec2(((_local11.x - (upperArmR_mc.width / _local18)) - (uaDist / 2)), _local11.y)); m_world.CreateJoint(_local5); _local5.lowerAngle = (-130 / (180 / Math.PI)); _local5.upperAngle = (10 / (180 / Math.PI)); _local5.Initialize(upperArmL, _local22, new b2Vec2(((_local10.x - (upperArmL_mc.width / _local18)) - (uaDist / 2)), _local10.y)); m_world.CreateJoint(_local5); _local5.lowerAngle = (-10 / (180 / Math.PI)); _local5.upperAngle = (130 / (180 / Math.PI)); _local5.Initialize(upperArmR, lowerArmR, new b2Vec2(((_local11.x + (upperArmR_mc.width / _local18)) + (uaDist / 2)), _local11.y)); m_world.CreateJoint(_local5); _local5.lowerAngle = (-25 / (180 / Math.PI)); _local5.upperAngle = (45 / (180 / Math.PI)); _local5.Initialize(torso1, upperLegL, new b2Vec2(_local14.x, ((_local7.y + (torso1_mc.height / _local18)) + (membersDist / 2)))); m_world.CreateJoint(_local5); _local5.lowerAngle = (-45 / (180 / Math.PI)); _local5.upperAngle = (25 / (180 / Math.PI)); _local5.Initialize(torso1, upperLegR, new b2Vec2(_local15.x, ((_local7.y + (torso1_mc.height / _local18)) + (membersDist / 2)))); m_world.CreateJoint(_local5); _local5.lowerAngle = (-25 / (180 / Math.PI)); _local5.upperAngle = (115 / (180 / Math.PI)); _local5.Initialize(upperLegL, lowerLegL, new b2Vec2(_local16.x, ((_local14.y + (upperLegL_mc.height / _local18)) + (membersDist / 2)))); m_world.CreateJoint(_local5); _local5.lowerAngle = (-115 / (180 / Math.PI)); _local5.upperAngle = (25 / (180 / Math.PI)); _local5.Initialize(upperLegR, lowerLegR, new b2Vec2(_local17.x, ((_local15.y + (upperLegR_mc.height / _local18)) + (membersDist / 2)))); m_world.CreateJoint(_local5); _local1 = 0; while (_local1 < BODYMCS.length) { BODYMCS[_local1].scaleX = 1; BODYMCS[_local1].scaleY = 1; BODYMCS[_local1].visible = true; _local1++; }; } public function getLastBodyPartIndex(){ return (g.cLevel.getChildIndex(BODYMCS[(BODYMCS.length - 1)])); } } }//package
Section 321
//outlawRagdoll1 (outlawRagdoll1) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class outlawRagdoll1 extends OutlawRagdoll { public function outlawRagdoll1(_arg1:Number, _arg2:Number, _arg3:b2Vec2, _arg4:aiOutlaw){ if (!g.World){ return; }; m_world = g.World; startX = _arg1; startY = _arg2; outlaw = _arg4; BODYMCS = []; BODYSHAPES = []; head_mc = new ohead1(); torso1_mc = new otorso1_1(); upperArmL_mc = new oupperArmL1(); upperArmR_mc = new oupperArmR1(); lowerArmL_mc = new olowerArmL1(); lowerArmR_mc = new olowerArmR1(); upperLegL_mc = new oupperLegL1(); upperLegR_mc = new oupperLegR1(); lowerLegL_mc = new olowerLegL1(); lowerLegR_mc = new olowerLegR1(); BODYMCS.push(head_mc); BODYMCS.push(torso1_mc); BODYMCS.push(upperArmL_mc); BODYMCS.push(upperArmR_mc); BODYMCS.push(lowerArmL_mc); BODYMCS.push(lowerArmR_mc); BODYMCS.push(upperLegL_mc); BODYMCS.push(upperLegR_mc); BODYMCS.push(lowerLegL_mc); BODYMCS.push(lowerLegR_mc); var _local5:Number = 0; while (_local5 < BODYMCS.length) { BODYMCS[_local5].ragdoll = this; BODYMCS[_local5].visible = false; _local5++; }; membersDist = (7 / m_physScale); uaDist = (membersDist / 1.5); createBody(); init(_arg3); } } }//package
Section 322
//outlawRagdoll2 (outlawRagdoll2) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class outlawRagdoll2 extends OutlawRagdoll { public function outlawRagdoll2(_arg1:Number, _arg2:Number, _arg3:b2Vec2, _arg4:aiOutlaw){ if (!g.World){ return; }; m_world = g.World; startX = _arg1; startY = _arg2; outlaw = _arg4; BODYMCS = []; BODYSHAPES = []; head_mc = new ohead2(); torso1_mc = new otorso2(); upperArmL_mc = new oupperArmL2(); upperArmR_mc = new oupperArmR2(); lowerArmL_mc = new olowerArmL2(); lowerArmR_mc = new olowerArmR2(); upperLegL_mc = new oupperLegL2(); upperLegR_mc = new oupperLegR2(); lowerLegL_mc = new olowerLegL2(); lowerLegR_mc = new olowerLegR2(); BODYMCS.push(head_mc); BODYMCS.push(torso1_mc); BODYMCS.push(upperArmL_mc); BODYMCS.push(upperArmR_mc); BODYMCS.push(lowerArmL_mc); BODYMCS.push(lowerArmR_mc); BODYMCS.push(upperLegL_mc); BODYMCS.push(upperLegR_mc); BODYMCS.push(lowerLegL_mc); BODYMCS.push(lowerLegR_mc); var _local5:Number = 0; while (_local5 < BODYMCS.length) { BODYMCS[_local5].ragdoll = this; _local5++; }; membersDist = (7 / m_physScale); uaDist = (membersDist / 1.5); createBody(); init(_arg3); } } }//package
Section 323
//outlawRagdoll3 (outlawRagdoll3) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class outlawRagdoll3 extends OutlawRagdoll { public function outlawRagdoll3(_arg1:Number, _arg2:Number, _arg3:b2Vec2, _arg4:aiOutlaw){ if (!g.World){ return; }; m_world = g.World; startX = _arg1; startY = _arg2; outlaw = _arg4; BODYMCS = []; BODYSHAPES = []; head_mc = new ohead3(); torso1_mc = new otorso3(); upperArmL_mc = new oupperArmL3(); upperArmR_mc = new oupperArmR3(); lowerArmL_mc = new olowerArmL3(); lowerArmR_mc = new olowerArmR3(); upperLegL_mc = new oupperLegL3(); upperLegR_mc = new oupperLegR3(); lowerLegL_mc = new olowerLegL3(); lowerLegR_mc = new olowerLegR3(); BODYMCS.push(head_mc); BODYMCS.push(torso1_mc); BODYMCS.push(upperArmL_mc); BODYMCS.push(upperArmR_mc); BODYMCS.push(lowerArmL_mc); BODYMCS.push(lowerArmR_mc); BODYMCS.push(upperLegL_mc); BODYMCS.push(upperLegR_mc); BODYMCS.push(lowerLegL_mc); BODYMCS.push(lowerLegR_mc); var _local5:Number = 0; while (_local5 < BODYMCS.length) { BODYMCS[_local5].ragdoll = this; _local5++; }; membersDist = (7 / m_physScale); uaDist = (membersDist / 1.5); createBody(); init(_arg3); } } }//package
Section 324
//Polygon (Polygon) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import flash.geom.*; public class Polygon extends MovieClip { public var polyDef:b2PolygonDef; public var body:b2Body; public var bodyDef:b2BodyDef; public var FilterGroup:Number; private var Vertices:Array; public function Polygon(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0.3, _arg5:Number=0.8){ if (!g.World){ return; }; FilterGroup = _arg2; polyDef = new b2PolygonDef(); polyDef.vertexCount = _arg1; FilterGroup = _arg2; polyDef.filter.groupIndex = FilterGroup; polyDef.density = _arg3; polyDef.friction = _arg4; polyDef.restitution = _arg5; Vertices = []; } public function mirrorX(_arg1:Number){ var _local2:Array; var _local3:*; var _local4:Number; var _local5:Point; _local2 = []; _local4 = Vertices.length; _local3 = (_local4 - 1); while (_local3 >= 0) { _local5 = Vertices[_local3]; _local5.x = (_arg1 - _local5.x); _local2.push(_local5); _local3--; }; Vertices = _local2; } public function vertex(_arg1:Number, _arg2:Number){ Vertices.push(new Point(_arg1, _arg2)); } public function init(_arg1:MovieClip, _arg2:Boolean=false){ var _local4:Number; var _local5:Point; var _local3:Number = Vertices.length; if (_local3 > 0){ _local4 = 0; while (_local4 < _local3) { _local5 = Vertices[_local4]; polyDef.vertices[_local4].Set((_local5.x / 30), (_local5.y / 30)); _local4++; }; }; bodyDef = new b2BodyDef(); if (_arg2){ bodyDef.position.x = ((_arg1.parent.x + x) / 30); bodyDef.position.y = ((_arg1.parent.y + y) / 30); } else { bodyDef.position.x = (x / 30); bodyDef.position.y = (y / 30); }; bodyDef.userData = _arg1; body = g.World.CreateBody(bodyDef); body.CreateShape(polyDef); body.SetMassFromShapes(); } public function destroy(){ g.World.DestroyBody(body); body = null; bodyDef = null; polyDef = null; } } }//package
Section 325
//Revolution (Revolution) package { import flash.text.*; public dynamic class Revolution extends Font { } }//package
Section 326
//Setup (Setup) package { public class Setup { public static var ScreenH2:Number = 237.5; public static var ScreenW2:Number = 350; public static var ScreenW:Number = 700; public static var ScreenH:Number = 475; public static var FrameRate:Number = 30; } }//package
Section 327
//SfxBulletConcrete3 (SfxBulletConcrete3) package { import flash.media.*; public dynamic class SfxBulletConcrete3 extends Sound { } }//package
Section 328
//SfxBulletFlesh4 (SfxBulletFlesh4) package { import flash.media.*; public dynamic class SfxBulletFlesh4 extends Sound { } }//package
Section 329
//SfxBulletMetal4 (SfxBulletMetal4) package { import flash.media.*; public dynamic class SfxBulletMetal4 extends Sound { } }//package
Section 330
//SfxClick (SfxClick) package { import flash.media.*; public dynamic class SfxClick extends Sound { } }//package
Section 331
//SfxClick1 (SfxClick1) package { import flash.media.*; public dynamic class SfxClick1 extends Sound { } }//package
Section 332
//SfxClick2 (SfxClick2) package { import flash.media.*; public dynamic class SfxClick2 extends Sound { } }//package
Section 333
//SfxClick3 (SfxClick3) package { import flash.media.*; public dynamic class SfxClick3 extends Sound { } }//package
Section 334
//SfxDryFire (SfxDryFire) package { import flash.media.*; public dynamic class SfxDryFire extends Sound { } }//package
Section 335
//SfxExplosionA (SfxExplosionA) package { import flash.media.*; public dynamic class SfxExplosionA extends Sound { } }//package
Section 336
//SfxImpact (SfxImpact) package { import flash.media.*; public dynamic class SfxImpact extends Sound { } }//package
Section 337
//SfxOver1 (SfxOver1) package { import flash.media.*; public dynamic class SfxOver1 extends Sound { } }//package
Section 338
//SfxOver2 (SfxOver2) package { import flash.media.*; public dynamic class SfxOver2 extends Sound { } }//package
Section 339
//SfxOver3 (SfxOver3) package { import flash.media.*; public dynamic class SfxOver3 extends Sound { } }//package
Section 340
//SfxPickAmmo (SfxPickAmmo) package { import flash.media.*; public dynamic class SfxPickAmmo extends Sound { } }//package
Section 341
//SfxPistol1 (SfxPistol1) package { import flash.media.*; public dynamic class SfxPistol1 extends Sound { } }//package
Section 342
//spAdPreRoll (spAdPreRoll) package { public class spAdPreRoll extends spAdUnit { public function spAdPreRoll(){ addFrameScript(1, frame2); spAPI.PreRollUnit = this; } function frame2(){ stop(); adbtn.visible = (adbtn.enabled = false); } public function serve(){ switch (spAPI.PreRoll){ case "mochiads": mochiPreRoll(spAPI.PreRollCode); break; case "mochiadsca": mochiMidRoll(spAPI.PreRollCode); break; case "cpmstar": cpmPreRoll(spAPI.PreRollCode); break; case "intergi": intergiVideoRoll(); break; case "custom": customPreRoll(); break; }; } } }//package
Section 343
//spAdUnit (spAdUnit) package { import flash.display.*; import flash.events.*; import mochi.as3.*; import flash.net.*; import CPMStar.*; import flash.system.*; public class spAdUnit extends MovieClip { public var bmp:Bitmap; public var adBox:MovieClip; public var bdata:BitmapData; public var adbtn:SimpleButton; public function spAdUnit(){ Security.allowDomain("*"); Security.allowInsecureDomain("*"); } public function cpmPreRoll(_arg1:String){ var ad:DisplayObject; var idcode = _arg1; trace("AdUnit->cpmStar PreRoll"); bdata = new BitmapData(300, 250, false, 4278190080); bmp = new Bitmap(bdata); adBox = new MovieClip(); adBox.addChild(bmp); addChild(adBox); try { ad = new AdLoader(idcode); adBox.addChild(ad); } catch(e:Error) { trace("AdUnit->cpmStar loading error ..."); }; } public function destroy(){ trace("spAdUnit->destroy"); try { if (adBox){ if (adBox.parent == this){ removeChild(adBox); }; }; } catch(e:Error) { }; } public function mochiMidRoll(_arg1:String){ var idcode = _arg1; trace("AdUnit->mochiAds MidRoll"); bdata = new BitmapData(300, 250, false, 4278190080); bmp = new Bitmap(bdata); adBox = new MovieClip(); adBox.addChild(bmp); addChild(adBox); try { MochiAd.showClickAwayAd({clip:adBox, id:idcode}); } catch(e:Error) { trace("AdUnit->mochiAds loading error ..."); }; } public function intergiVideoClosed(_arg1:Boolean){ if (!_arg1){ cpmPreRoll(spAPI.PreRollCode); }; } public function customPreRoll(){ var adLoader:Loader; var url:String; bdata = new BitmapData(300, 250, false, 4278190080); bmp = new Bitmap(bdata); adBox = new MovieClip(); adBox.addChild(bmp); addChildAt(adBox, 0); adbtn.addEventListener("click", evtCustomClick); adbtn.enabled = (adbtn.visible = true); try { adLoader = new Loader(); adLoader.contentLoaderInfo.addEventListener("ioError", customAdError); url = ("http://content.xlmedia.ca/" + spAPI.PreRollCode); trace(("AdUnit->customPreRoll : " + url)); adLoader.load(new URLRequest(url)); adBox.addChild(adLoader); } catch(e:Error) { trace("AdUnit->customAd loading error ..."); }; } public function evtCustomClick(_arg1:Object=null){ var _local2:String = ("http://www.xlmedia.ca/" + spAPI.PreRollLink); trace(("evtCustomClick : " + _local2)); navigateToURL(new URLRequest(_local2), "_blank"); } public function intergiVideoRoll(_arg1:Object=null){ AdIntegrator.Initialize("1953332", "http://ads.intergi.com/adrawdata/3.0/5205/1953332/0/4057/ADTECH;referring_url=__WEB_URL__;number=__RANDOM__;time=__TIME__"); AdIntegrator.ShowAd(MovieClip(parent), 700, 500, intergiVideoClosed); } public function customAdError(_arg1:Event){ trace(("Error loading custom ad : " + _arg1)); } public function mochiPreRoll(_arg1:String){ trace("AdUnit->mochiAds PreRoll"); var _local2:String = String("700x500"); if (parent.root){ MochiAd.showPreGameAd({clip:parent.root, id:_arg1, res:_local2}); } else { MochiAd.showPreGameAd({clip:root, id:_arg1, res:_local2}); }; } } }//package
Section 344
//spAPI (spAPI) package { import flash.display.*; import flash.events.*; import flash.net.*; import flash.system.*; public class spAPI { public static var SiteLocks:Array = []; public static var PreRollUnit:MovieClip; public static var HackLock:Boolean = false; public static var NoAds:Boolean; public static var flcLoader:URLLoader; public static var Domain:String; public static var AdLocks:Array = []; public static var IP:String; public static var GameID:String; public static var PreRoll:String; public static var SiteLock:Boolean; public static var PreRollCode:String; public static var PreRollLink:String; public static var Website:String; public static function liveConnect(){ spAPI.PreRoll = "cpmstar"; spAPI.PreRollCode = "4639Q996C5965"; spAPI.IP = "unknown"; if (spAPI.NoAds){ spAPI.PreRoll = "none"; }; var VARS:* = new URLVariables(); VARS.HOST = escape(spAPI.Domain); VARS.BUILD = escape(spAPI.Website); var url = (("http://flash.xlmedia.ca/game/" + spAPI.GameID) + "/gameplay.php"); var REQ:* = new URLRequest(url); REQ.data = VARS; REQ.method = "POST"; spAPI.flcLoader = new URLLoader(); spAPI.flcLoader.dataFormat = "variables"; spAPI.flcLoader.addEventListener("complete", spAPI.evtCompleted); spAPI.flcLoader.addEventListener("securityError", spAPI.evtError); spAPI.flcLoader.addEventListener("ioError", spAPI.evtError); try { spAPI.flcLoader.load(REQ); } catch(err:Error) { spAPI.evtError(); }; } public static function adlock(_arg1:String){ spAPI.AdLocks.push(_arg1.toLowerCase()); } public static function init(){ var _local1:String; trace("spAPI->init"); Security.allowDomain("*"); Security.allowInsecureDomain("*"); spAPI.GameID = "cold-justice"; spAPI.Website = "gamesnitro.com"; var _local2:LocalConnection = new LocalConnection(); spAPI.Domain = _local2.domain; spAPI.Domain = spAPI.Domain.toLowerCase(); spAPI.adlock(".kongregate.com"); spAPI.adlock(".addictinggames.com"); spAPI.adlock(".armorgames.com"); spAPI.adlock(".kaisergames.de"); spAPI.adlock(".gamesheep.com"); spAPI.NoAds = false; for each (_local1 in spAPI.AdLocks) { if (spAPI.Domain.indexOf(_local1) != -1){ spAPI.NoAds = true; }; }; spAPI.SiteLock = false; for each (_local1 in spAPI.SiteLocks) { if (spAPI.Domain.indexOf(_local1) != -1){ spAPI.SiteLock = true; spAPI.NoAds = true; }; }; if (!spAPI.SiteLock){ spAPI.liveConnect(); }; } public static function evtCompleted(_arg1:Object=null){ var hl:Number; var e = _arg1; try { if (flcLoader){ if (flcLoader.data){ spAPI.PreRoll = spAPI.flcLoader.data.preroll; spAPI.PreRollCode = spAPI.flcLoader.data.prerollcode; spAPI.PreRollLink = spAPI.flcLoader.data.prerolllink; if (spAPI.NoAds){ spAPI.PreRoll = "none"; }; hl = spAPI.flcLoader.data.hl; if (hl == 1){ spAPI.HackLock = true; }; spAPI.IP = spAPI.flcLoader.data.ip; trace(("PreRoll = " + spAPI.PreRoll)); trace(("PreRollCode = " + spAPI.PreRollCode)); trace(("PreRollLink = " + spAPI.PreRollLink)); trace(("HackLock = " + spAPI.HackLock)); trace(("IP = " + spAPI.IP)); }; }; } catch(err:Error) { trace(("Catch error retrieving response from LiveConnect : " + err.message)); }; if (spAPI.PreRollUnit){ spAPI.PreRollUnit.serve(); }; } public static function submitScore(_arg1:String, _arg2:Number, _arg3:String){ var _local4:*; var _local5:*; var _local6:Number; var _local7:*; var _local8:String; trace(((((("spAPI->submitScore : " + _arg1) + ",") + _arg2) + ",") + _arg3)); _local6 = 99; _local5 = 0; while (_local5 < spAPI.GameID.length) { _local6 = (_local6 + spAPI.GameID.charCodeAt(_local5)); _local5++; }; _local5 = 0; while (_local5 < _arg1.length) { _local6 = (_local6 + _arg1.charCodeAt(_local5)); _local5++; }; _local8 = String(_arg2); _local5 = 0; while (_local5 < _local8.length) { _local6 = (_local6 + _local8.charCodeAt(_local5)); _local5++; }; _local5 = 0; while (_local5 < _arg3.length) { _local6 = (_local6 - _arg3.charCodeAt(_local5)); _local5++; }; _local4 = ((Math.ceil((_arg2 / 8)) + 21539) + _local6); _local7 = (("http://www." + spAPI.Website) + "/submitscore.php"); _local7 = (_local7 + ("?game=" + spAPI.GameID)); _local7 = (_local7 + ("&name=" + _arg1)); _local7 = (_local7 + ("&score=" + _arg2)); _local7 = (_local7 + ("&mode=" + _arg3)); _local7 = (_local7 + ("&skey=" + _local4)); navigateToURL(new URLRequest(_local7), "_blank"); } public static function evtError(_arg1:Event=null){ trace("No response from LiveConnect -> continue with defaults ..."); if (spAPI.PreRollUnit){ spAPI.PreRollUnit.serve(); }; } public static function sitelock(_arg1:String){ spAPI.SiteLocks.push(_arg1.toLowerCase()); } } }//package
Section 345
//TiePiece (TiePiece) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.geom.*; import Box2D.Dynamics.Contacts.*; public class TiePiece extends MovieClip { public var m_world:b2World; private var R2D:Number; public var m_physScale:Number;// = 30 public var pieceBody:b2Body; public var startX:Number; public var startY:Number; public var FilterGroup:Number; public function TiePiece(){ if (!g.World){ return; }; m_world = g.World; } public function destroy(){ g.World.DestroyBody(pieceBody); this.parent.removeChild(this); } public function getBody(){ return (pieceBody); } public function createBody(){ var _local1:b2BodyDef; var _local2:b2Body; var _local3:b2CircleDef; var _local4:*; var _local5:Point; _local3 = new b2CircleDef(); _local3.radius = ((this.width / 2) / m_physScale); _local3.density = 0; _local3.friction = 0.4; _local3.restitution = 0.1; _local3.filter.groupIndex = FilterGroup; _local1 = new b2BodyDef(); _local4 = new Point((parent.x + this.x), (parent.y + this.y)); _local5 = new Point((_local4.x / m_physScale), (_local4.y / m_physScale)); _local1.position.Set(_local5.x, _local5.y); _local1.userData = this; pieceBody = m_world.CreateBody(_local1); pieceBody.CreateShape(_local3); pieceBody.SetMassFromShapes(); } } }//package
Section 346
//tiepiece1 (tiepiece1) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class tiepiece1 extends TiePiece { public var blocType:String; public function tiepiece1(){ addFrameScript(0, frame1); if (!g.World){ return; }; FilterGroup = 8; createBody(); } function frame1(){ stop(); blocType = "tiepiece"; } } }//package
Section 347
//torso1_1 (torso1_1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class torso1_1 extends MovieClip { public var blocType:String; public function torso1_1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 348
//track1 (track1) package { import flash.media.*; public dynamic class track1 extends Sound { } }//package
Section 349
//track2 (track2) package { import flash.media.*; public dynamic class track2 extends Sound { } }//package
Section 350
//TrebuchetBold (TrebuchetBold) package { import flash.text.*; public dynamic class TrebuchetBold extends Font { } }//package
Section 351
//ui (ui) package { import flash.display.*; public class ui { public static var Points:MovieClip; public static var BulletsUi:MovieClip; public static var LevelSelection:MovieClip; public static var MissionFailed:MovieClip; public static var GameMenu:MovieClip; public static var NightShade:MovieClip; public static var RagdollSel:MovieClip; public static var Main:MovieClip; public static var GamePaused:MovieClip; public static var PointsManager:MovieClip; public static var CurrentLevel:MovieClip; public static var Victory:MovieClip; public static var MissionCompleted:MovieClip; } }//package
Section 352
//uiMessageBox (uiMessageBox) package { import flash.display.*; public class uiMessageBox extends MovieClip { public var messageText:MovieClip; public var Messages:Array; public function uiMessageBox(){ addFrameScript(0, frame1, 49, frame50); Messages = []; } public function init(){ Messages = []; this.gotoAndStop(1); } function frame1(){ stop(); } public function addMessage(_arg1:String){ Messages.push(_arg1); if (Messages.length == 1){ messageText.label_txt.text = Messages[0]; this.gotoAndPlay(2); }; } function frame50(){ messageOver(); } public function messageOver(){ Messages.shift(); if (Messages.length > 0){ messageText.label_txt.text = Messages[0]; this.gotoAndPlay(2); }; } } }//package
Section 353
//uiPointsManager (uiPointsManager) package { import flash.display.*; import flash.events.*; public class uiPointsManager extends MovieClip { public var messageBox_mc:MovieClip; public var allKilled:Array; public function uiPointsManager(){ addFrameScript(0, frame1); ui.PointsManager = this; allKilled = []; } public function init(){ messageBox_mc.init(); allKilled = []; } public function givePoints(_arg1:Number){ var _local2:Number; var _local3:Array; var _local4:Number; var _local5:Number; var _local6:*; var _local7:*; var _local8:Number; var _local9:*; var _local10:Number = 0; _local3 = allKilled[_arg1]; _local6 = _local3[1]; _local4 = _local3[2]; _local7 = _local3[3]; allKilled[_arg1][4] = true; switch (_local4){ case 1: if (_local6 > 1){ _local9 = (_local6 * 100); messageBox_mc.addMessage((("Combo " + _local6) + " kills")); g.cLevel.addPoints(0, _local6, _local9); }; if (_local7 > 0){ _local9 = (_local7 * 50); if (_local7 > 1){ messageBox_mc.addMessage((_local7 + " headshots")); } else { messageBox_mc.addMessage((_local7 + " headshot")); }; g.cLevel.addPoints(1, _local7, _local9); }; break; case 2: _local9 = (_local6 * 50); if (_local6 > 1){ messageBox_mc.addMessage((_local6 + " explosive kills")); } else { messageBox_mc.addMessage((_local6 + " explosive kill")); }; g.cLevel.addPoints(2, _local6, _local9); break; case 3: if (_local6 > 1){ _local9 = (_local6 * 100); messageBox_mc.addMessage((("Combo " + _local6) + " kills")); g.cLevel.addPoints(0, _local6, _local9); }; break; case 4: if (_local6 > 1){ _local9 = (_local6 * 100); messageBox_mc.addMessage((("Combo " + _local6) + " kills")); g.cLevel.addPoints(0, _local6, _local9); }; break; }; } function frame1(){ stop(); } public function killed(_arg1:Number, _arg2:Number, _arg3:Number=0, _arg4:Number=-1){ var _local5:Number; var _local6:Array; var _local8:Number; var _local9:Boolean; var _local10:Number; var _local11:Number; var _local7:Boolean; _local5 = 0; while (_local5 < allKilled.length) { _local6 = allKilled[_local5]; _local8 = _local6[0]; _local9 = _local6[4]; if ((((_local8 == _arg1)) || ((_local8 == _arg4)))){ if (!_local9){ var _local12 = allKilled[_local5]; var _local13 = 1; var _local14 = (_local12[_local13] + 1); _local12[_local13] = _local14; allKilled[_local5][3] = (allKilled[_local5][3] + _arg3); _local7 = true; }; }; _local5++; }; if (!_local7){ allKilled.push([_arg1, 1, _arg2, _arg3, false]); _local11 = (allKilled.length - 1); if (_arg2 == 1){ _local10 = (2 * 30); } else { if (_arg2 == 2){ _local10 = 15; } else { if (_arg2 == 3){ _local10 = (5 * 30); } else { if (_arg2 == 4){ _local10 = (5 * 30); }; }; }; }; g.Game.evt(_local10, givePoints, this, _local11); }; } } }//package
Section 354
//upperArmL1 (upperArmL1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class upperArmL1 extends MovieClip { public var blocType:String; public function upperArmL1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 355
//upperArmR1 (upperArmR1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class upperArmR1 extends MovieClip { public var blocType:String; public function upperArmR1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 356
//upperLegL1 (upperLegL1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class upperLegL1 extends MovieClip { public var blocType:String; public function upperLegL1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package
Section 357
//upperLegR1 (upperLegR1) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.external.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class upperLegR1 extends MovieClip { public var blocType:String; public function upperLegR1(){ addFrameScript(0, frame1); } function frame1(){ stop(); blocType = "ragdoll"; } } }//package

Library Items

Symbol 1 Font {TrebuchetBold}Used by:73 1319 1320 1321 1322 1323 1349 1351 1352 1353 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1390 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1521
Symbol 2 Font {Revolution}Used by:70 1278 1279 1297 1300 1303 1304 1306 1316 1326 1329 1332 1337 1338 1346 1356 1364 1367 1368 1505 1517 1522
Symbol 3 Sound {SfxOver2}Used by:1259
Symbol 4 Sound {track1}Used by:1259
Symbol 5 Sound {SfxImpact}Used by:1259
Symbol 6 Sound {SfxClick2}Used by:1259
Symbol 7 Sound {track2}Used by:1259
Symbol 8 Sound {SfxBulletConcrete3}Used by:1259
Symbol 9 Sound {SfxBulletMetal4}Used by:1259
Symbol 10 Sound {SfxClick3}Used by:1259
Symbol 11 Sound {SfxOver3}Used by:1259
Symbol 12 Sound {SfxPickAmmo}Used by:1259
Symbol 13 Sound {SfxClick}Used by:1259
Symbol 14 Sound {SfxOver1}Used by:1259
Symbol 15 Sound {SfxClick1}Used by:1259
Symbol 16 Sound {SfxExplosionA}Used by:1259
Symbol 17 Sound {SfxDryFire}Used by:1259
Symbol 18 Sound {SfxBulletFlesh4}Used by:1259
Symbol 19 Sound {SfxPistol1}Used by:1259
Symbol 20 GraphicUsed by:21
Symbol 21 MovieClipUses:20Used by:40
Symbol 22 MovieClip {fl.core.ComponentShim}Used by:40
Symbol 23 GraphicUsed by:24 33
Symbol 24 MovieClip {CheckBox_upIcon}Uses:23Used by:40
Symbol 25 GraphicUsed by:26 34
Symbol 26 MovieClip {CheckBox_overIcon}Uses:25Used by:40
Symbol 27 GraphicUsed by:28 35
Symbol 28 MovieClip {CheckBox_downIcon}Uses:27Used by:40
Symbol 29 GraphicUsed by:30
Symbol 30 MovieClip {CheckBox_disabledIcon}Uses:29Used by:40
Symbol 31 GraphicUsed by:32
Symbol 32 MovieClipUses:31Used by:33 34 35 37
Symbol 33 MovieClip {CheckBox_selectedUpIcon}Uses:23 32Used by:40
Symbol 34 MovieClip {CheckBox_selectedOverIcon}Uses:25 32Used by:40
Symbol 35 MovieClip {CheckBox_selectedDownIcon}Uses:27 32Used by:40
Symbol 36 GraphicUsed by:37
Symbol 37 MovieClip {CheckBox_selectedDisabledIcon}Uses:36 32Used by:40
Symbol 38 GraphicUsed by:39
Symbol 39 MovieClip {focusRectSkin}Uses:38Used by:40
Symbol 40 MovieClip {fl.controls.CheckBox}Uses:21 22 24 26 28 30 33 34 35 37 39Used by:1339
Symbol 41 BitmapUsed by:42
Symbol 42 GraphicUses:41Used by:43 517 533 545 555 695
Symbol 43 MovieClip {concreteHanging2}Uses:42Used by:53 524
Symbol 44 BitmapUsed by:45 508 510 1311 1520
Symbol 45 GraphicUses:44Used by:46
Symbol 46 MovieClip {chainpiece1}Uses:45Used by:53 469 470 519 527 532
Symbol 47 BitmapUsed by:48 512 514 1311 1520
Symbol 48 GraphicUses:47Used by:49
Symbol 49 MovieClip {chainpiece2}Uses:48Used by:53 469 470 519 527 532
Symbol 50 BitmapUsed by:51 1311 1520
Symbol 51 GraphicUses:50Used by:52
Symbol 52 MovieClip {tiepiece1}Uses:51Used by:53 469 470 516 519 524 527 532
Symbol 53 MovieClip {chain9}Uses:43 46 49 52Used by:529 540 548
Symbol 54 BitmapUsed by:55
Symbol 55 GraphicUses:54Used by:56
Symbol 56 MovieClip {ohead3}Uses:55Used by:1259
Symbol 57 GraphicUsed by:58 64 68 72 1267 1299 1318 1328 1331 1334 1348 1358 1366 1370 1519 1524
Symbol 58 MovieClipUses:57Used by:82 83 1259 1268 1275 1325 1343 1360 1393 1398 1409 1501 1525 1526 1527  Timeline
Symbol 59 FontUsed by:60 66 67 79 80 81 1407
Symbol 60 TextUses:59Used by:83
Symbol 61 GraphicUsed by:62
Symbol 62 MovieClipUses:61Used by:63
Symbol 63 MovieClipUses:62Used by:65
Symbol 64 MovieClipUses:57Used by:65
Symbol 65 MovieClip {coldjustice_fla.bar_3}Uses:63 64Used by:83
Symbol 66 EditableTextUses:59Used by:83
Symbol 67 EditableTextUses:59Used by:83
Symbol 68 ButtonUses:57Used by:69
Symbol 69 MovieClip {spAdPreRoll}Uses:68Used by:83
Symbol 70 EditableTextUses:2Used by:71 72
Symbol 71 MovieClip {coldjustice_fla.text_10}Uses:70Used by:72
Symbol 72 ButtonUses:71 57 70Used by:83
Symbol 73 EditableTextUses:1Used by:83
Symbol 74 BitmapUsed by:77 1402
Symbol 75 BitmapUsed by:77 1401
Symbol 76 BitmapUsed by:77 1400 1427
Symbol 77 GraphicUses:74 75 76Used by:78
Symbol 78 MovieClipUses:77Used by:83
Symbol 79 TextUses:59Used by:82
Symbol 80 EditableTextUses:59Used by:82
Symbol 81 TextUses:59Used by:82
Symbol 82 MovieClipUses:58 79 80 81Used by:83
Symbol 83 MovieClip {loader}Uses:58 60 65 66 67 69 72 73 78 82Used by:Timeline
Symbol 84 MovieClip {fl.controls.Button}
Symbol 85 BitmapUsed by:86
Symbol 86 GraphicUses:85Used by:87
Symbol 87 MovieClip {head1}Uses:86Used by:1259
Symbol 88 BitmapUsed by:89
Symbol 89 GraphicUses:88Used by:90
Symbol 90 MovieClip {lowerArmL1}Uses:89Used by:1259
Symbol 91 BitmapUsed by:92
Symbol 92 GraphicUses:91Used by:93
Symbol 93 MovieClip {lowerArmR1}Uses:92Used by:1259
Symbol 94 BitmapUsed by:95
Symbol 95 GraphicUses:94Used by:96
Symbol 96 MovieClip {lowerLegL1}Uses:95Used by:1259
Symbol 97 BitmapUsed by:98
Symbol 98 GraphicUses:97Used by:99
Symbol 99 MovieClip {lowerLegR1}Uses:98Used by:1259
Symbol 100 BitmapUsed by:101
Symbol 101 GraphicUses:100Used by:102
Symbol 102 MovieClip {torso1_1}Uses:101Used by:1259
Symbol 103 BitmapUsed by:104
Symbol 104 GraphicUses:103Used by:105
Symbol 105 MovieClip {upperArmL1}Uses:104Used by:1259
Symbol 106 BitmapUsed by:107
Symbol 107 GraphicUses:106Used by:108
Symbol 108 MovieClip {upperArmR1}Uses:107Used by:1259
Symbol 109 BitmapUsed by:110
Symbol 110 GraphicUses:109Used by:111
Symbol 111 MovieClip {upperLegL1}Uses:110Used by:1259
Symbol 112 BitmapUsed by:113
Symbol 113 GraphicUses:112Used by:114
Symbol 114 MovieClip {upperLegR1}Uses:113Used by:1259
Symbol 115 BitmapUsed by:116
Symbol 116 GraphicUses:115Used by:117
Symbol 117 MovieClip {ohead1}Uses:116Used by:1259
Symbol 118 BitmapUsed by:119 121
Symbol 119 GraphicUses:118Used by:120
Symbol 120 MovieClip {olowerArmL1}Uses:119Used by:1259
Symbol 121 GraphicUses:118Used by:122
Symbol 122 MovieClip {olowerArmR1}Uses:121Used by:1259
Symbol 123 BitmapUsed by:124
Symbol 124 GraphicUses:123Used by:125
Symbol 125 MovieClip {olowerLegL1}Uses:124Used by:1259
Symbol 126 BitmapUsed by:127
Symbol 127 GraphicUses:126Used by:128
Symbol 128 MovieClip {olowerLegR1}Uses:127Used by:1259
Symbol 129 BitmapUsed by:130
Symbol 130 GraphicUses:129Used by:131
Symbol 131 MovieClip {otorso1_1}Uses:130Used by:1259
Symbol 132 BitmapUsed by:133
Symbol 133 GraphicUses:132Used by:134
Symbol 134 MovieClip {oupperArmL1}Uses:133Used by:1259
Symbol 135 BitmapUsed by:136
Symbol 136 GraphicUses:135Used by:137
Symbol 137 MovieClip {oupperArmR1}Uses:136Used by:1259
Symbol 138 BitmapUsed by:139
Symbol 139 GraphicUses:138Used by:140
Symbol 140 MovieClip {oupperLegL1}Uses:139Used by:1259
Symbol 141 BitmapUsed by:142
Symbol 142 GraphicUses:141Used by:143
Symbol 143 MovieClip {oupperLegR1}Uses:142Used by:1259
Symbol 144 BitmapUsed by:145
Symbol 145 GraphicUses:144Used by:146
Symbol 146 MovieClip {ohead2}Uses:145Used by:1259
Symbol 147 BitmapUsed by:148 150
Symbol 148 GraphicUses:147Used by:149
Symbol 149 MovieClip {olowerArmL2}Uses:148Used by:1259
Symbol 150 GraphicUses:147Used by:151
Symbol 151 MovieClip {olowerArmR2}Uses:150Used by:1259
Symbol 152 BitmapUsed by:153
Symbol 153 GraphicUses:152Used by:154
Symbol 154 MovieClip {olowerLegL2}Uses:153Used by:1259
Symbol 155 BitmapUsed by:156
Symbol 156 GraphicUses:155Used by:157
Symbol 157 MovieClip {olowerLegR2}Uses:156Used by:1259
Symbol 158 BitmapUsed by:159
Symbol 159 GraphicUses:158Used by:160
Symbol 160 MovieClip {otorso2}Uses:159Used by:1259
Symbol 161 BitmapUsed by:162
Symbol 162 GraphicUses:161Used by:163
Symbol 163 MovieClip {oupperArmL2}Uses:162Used by:1259
Symbol 164 BitmapUsed by:165
Symbol 165 GraphicUses:164Used by:166
Symbol 166 MovieClip {oupperArmR2}Uses:165Used by:1259
Symbol 167 BitmapUsed by:168
Symbol 168 GraphicUses:167Used by:169
Symbol 169 MovieClip {oupperLegL2}Uses:168Used by:1259
Symbol 170 BitmapUsed by:171
Symbol 171 GraphicUses:170Used by:172
Symbol 172 MovieClip {oupperLegR2}Uses:171Used by:1259
Symbol 173 BitmapUsed by:174 176
Symbol 174 GraphicUses:173Used by:175
Symbol 175 MovieClip {olowerArmL3}Uses:174Used by:1259
Symbol 176 GraphicUses:173Used by:177
Symbol 177 MovieClip {olowerArmR3}Uses:176Used by:1259
Symbol 178 BitmapUsed by:179
Symbol 179 GraphicUses:178Used by:180
Symbol 180 MovieClip {olowerLegL3}Uses:179Used by:1259
Symbol 181 BitmapUsed by:182
Symbol 182 GraphicUses:181Used by:183
Symbol 183 MovieClip {olowerLegR3}Uses:182Used by:1259
Symbol 184 BitmapUsed by:185
Symbol 185 GraphicUses:184Used by:186
Symbol 186 MovieClip {otorso3}Uses:185Used by:1259
Symbol 187 BitmapUsed by:188
Symbol 188 GraphicUses:187Used by:189
Symbol 189 MovieClip {oupperArmL3}Uses:188Used by:1259
Symbol 190 BitmapUsed by:191
Symbol 191 GraphicUses:190Used by:192
Symbol 192 MovieClip {oupperArmR3}Uses:191Used by:1259
Symbol 193 BitmapUsed by:194
Symbol 194 GraphicUses:193Used by:195
Symbol 195 MovieClip {oupperLegL3}Uses:194Used by:1259
Symbol 196 BitmapUsed by:197
Symbol 197 GraphicUses:196Used by:198
Symbol 198 MovieClip {oupperLegR3}Uses:197Used by:1259
Symbol 199 BitmapUsed by:200
Symbol 200 GraphicUses:199Used by:460 472
Symbol 201 BitmapUsed by:202 1520
Symbol 202 GraphicUses:201Used by:203
Symbol 203 MovieClip {floor2}Uses:202Used by:460 476 482 492 496 507 520 529 535 539 541 544 547 554
Symbol 204 BitmapUsed by:205 207 209 211 483 486 488 494 537 549 551 1520
Symbol 205 GraphicUses:204Used by:206
Symbol 206 MovieClip {metal1_2}Uses:205Used by:460 471 476 481 482 485 492 493 496 506 507 518 520 528 529 534 535 539 540 541 542 543 544 546 547 548 553 554
Symbol 207 GraphicUses:204Used by:208
Symbol 208 MovieClip {metalDiagonal1_135}Uses:207Used by:460 471 476 481 482 493 520 536 542 556
Symbol 209 GraphicUses:204Used by:210
Symbol 210 MovieClip {metalDiagonal1_45}Uses:209Used by:460 471 476 481 482 485 493 520 536 542 547
Symbol 211 GraphicUses:204Used by:212
Symbol 212 MovieClip {metal1_1}Uses:211Used by:460 471 476 481 482 485 492 493 496 507 520 528 535 536 539 540 541 542 543 544 546 547 548 553
Symbol 213 BitmapUsed by:214
Symbol 214 GraphicUses:213Used by:457
Symbol 215 MovieClip {coldjustice_fla.startPt_63}Used by:457
Symbol 216 BitmapUsed by:217
Symbol 217 GraphicUses:216Used by:218
Symbol 218 MovieClip {coldjustice_fla.pistolFlash_64}Uses:217Used by:457
Symbol 219 BitmapUsed by:220
Symbol 220 GraphicUses:219Used by:457
Symbol 221 BitmapUsed by:222
Symbol 222 GraphicUses:221Used by:457
Symbol 223 BitmapUsed by:224
Symbol 224 GraphicUses:223Used by:457
Symbol 225 BitmapUsed by:226
Symbol 226 GraphicUses:225Used by:457
Symbol 227 BitmapUsed by:228
Symbol 228 GraphicUses:227Used by:457
Symbol 229 BitmapUsed by:230
Symbol 230 GraphicUses:229Used by:457
Symbol 231 BitmapUsed by:232
Symbol 232 GraphicUses:231Used by:457
Symbol 233 BitmapUsed by:234
Symbol 234 GraphicUses:233Used by:457
Symbol 235 BitmapUsed by:236
Symbol 236 GraphicUses:235Used by:457
Symbol 237 BitmapUsed by:238
Symbol 238 GraphicUses:237Used by:457
Symbol 239 BitmapUsed by:240
Symbol 240 GraphicUses:239Used by:457
Symbol 241 BitmapUsed by:242
Symbol 242 GraphicUses:241Used by:457
Symbol 243 BitmapUsed by:244
Symbol 244 GraphicUses:243Used by:457
Symbol 245 BitmapUsed by:246
Symbol 246 GraphicUses:245Used by:457
Symbol 247 BitmapUsed by:248
Symbol 248 GraphicUses:247Used by:457
Symbol 249 BitmapUsed by:250
Symbol 250 GraphicUses:249Used by:457
Symbol 251 BitmapUsed by:252
Symbol 252 GraphicUses:251Used by:457
Symbol 253 BitmapUsed by:254
Symbol 254 GraphicUses:253Used by:457
Symbol 255 BitmapUsed by:256
Symbol 256 GraphicUses:255Used by:457
Symbol 257 BitmapUsed by:258
Symbol 258 GraphicUses:257Used by:457
Symbol 259 BitmapUsed by:260
Symbol 260 GraphicUses:259Used by:457
Symbol 261 BitmapUsed by:262
Symbol 262 GraphicUses:261Used by:457
Symbol 263 BitmapUsed by:264
Symbol 264 GraphicUses:263Used by:457
Symbol 265 BitmapUsed by:266
Symbol 266 GraphicUses:265Used by:457
Symbol 267 BitmapUsed by:268
Symbol 268 GraphicUses:267Used by:457
Symbol 269 BitmapUsed by:270
Symbol 270 GraphicUses:269Used by:457
Symbol 271 BitmapUsed by:272
Symbol 272 GraphicUses:271Used by:457
Symbol 273 BitmapUsed by:274
Symbol 274 GraphicUses:273Used by:457
Symbol 275 BitmapUsed by:276
Symbol 276 GraphicUses:275Used by:457
Symbol 277 BitmapUsed by:278
Symbol 278 GraphicUses:277Used by:457
Symbol 279 BitmapUsed by:280
Symbol 280 GraphicUses:279Used by:457
Symbol 281 BitmapUsed by:282
Symbol 282 GraphicUses:281Used by:457
Symbol 283 BitmapUsed by:284
Symbol 284 GraphicUses:283Used by:457
Symbol 285 BitmapUsed by:286
Symbol 286 GraphicUses:285Used by:457
Symbol 287 BitmapUsed by:288
Symbol 288 GraphicUses:287Used by:457
Symbol 289 BitmapUsed by:290
Symbol 290 GraphicUses:289Used by:457
Symbol 291 BitmapUsed by:292
Symbol 292 GraphicUses:291Used by:457
Symbol 293 BitmapUsed by:294
Symbol 294 GraphicUses:293Used by:457
Symbol 295 BitmapUsed by:296
Symbol 296 GraphicUses:295Used by:457
Symbol 297 BitmapUsed by:298
Symbol 298 GraphicUses:297Used by:457
Symbol 299 BitmapUsed by:300
Symbol 300 GraphicUses:299Used by:457
Symbol 301 BitmapUsed by:302
Symbol 302 GraphicUses:301Used by:457
Symbol 303 BitmapUsed by:304
Symbol 304 GraphicUses:303Used by:457
Symbol 305 BitmapUsed by:306
Symbol 306 GraphicUses:305Used by:457
Symbol 307 BitmapUsed by:308
Symbol 308 GraphicUses:307Used by:457
Symbol 309 BitmapUsed by:310
Symbol 310 GraphicUses:309Used by:457
Symbol 311 BitmapUsed by:312
Symbol 312 GraphicUses:311Used by:457
Symbol 313 BitmapUsed by:314
Symbol 314 GraphicUses:313Used by:457
Symbol 315 BitmapUsed by:316
Symbol 316 GraphicUses:315Used by:457
Symbol 317 BitmapUsed by:318
Symbol 318 GraphicUses:317Used by:457
Symbol 319 BitmapUsed by:320
Symbol 320 GraphicUses:319Used by:457
Symbol 321 BitmapUsed by:322
Symbol 322 GraphicUses:321Used by:457
Symbol 323 BitmapUsed by:324
Symbol 324 GraphicUses:323Used by:457
Symbol 325 BitmapUsed by:326
Symbol 326 GraphicUses:325Used by:457
Symbol 327 BitmapUsed by:328
Symbol 328 GraphicUses:327Used by:457
Symbol 329 BitmapUsed by:330
Symbol 330 GraphicUses:329Used by:457
Symbol 331 BitmapUsed by:332
Symbol 332 GraphicUses:331Used by:457
Symbol 333 BitmapUsed by:334
Symbol 334 GraphicUses:333Used by:457
Symbol 335 BitmapUsed by:336
Symbol 336 GraphicUses:335Used by:457
Symbol 337 BitmapUsed by:338
Symbol 338 GraphicUses:337Used by:457
Symbol 339 BitmapUsed by:340
Symbol 340 GraphicUses:339Used by:457
Symbol 341 BitmapUsed by:342
Symbol 342 GraphicUses:341Used by:457
Symbol 343 BitmapUsed by:344
Symbol 344 GraphicUses:343Used by:457
Symbol 345 BitmapUsed by:346
Symbol 346 GraphicUses:345Used by:457
Symbol 347 BitmapUsed by:348
Symbol 348 GraphicUses:347Used by:457
Symbol 349 BitmapUsed by:350
Symbol 350 GraphicUses:349Used by:457
Symbol 351 BitmapUsed by:352
Symbol 352 GraphicUses:351Used by:457
Symbol 353 BitmapUsed by:354
Symbol 354 GraphicUses:353Used by:457
Symbol 355 BitmapUsed by:356
Symbol 356 GraphicUses:355Used by:457
Symbol 357 BitmapUsed by:358
Symbol 358 GraphicUses:357Used by:457
Symbol 359 BitmapUsed by:360
Symbol 360 GraphicUses:359Used by:457
Symbol 361 BitmapUsed by:362
Symbol 362 GraphicUses:361Used by:457
Symbol 363 BitmapUsed by:364
Symbol 364 GraphicUses:363Used by:457
Symbol 365 BitmapUsed by:366
Symbol 366 GraphicUses:365Used by:457
Symbol 367 BitmapUsed by:368
Symbol 368 GraphicUses:367Used by:457
Symbol 369 BitmapUsed by:370
Symbol 370 GraphicUses:369Used by:457
Symbol 371 BitmapUsed by:372
Symbol 372 GraphicUses:371Used by:457
Symbol 373 BitmapUsed by:374
Symbol 374 GraphicUses:373Used by:457
Symbol 375 BitmapUsed by:376
Symbol 376 GraphicUses:375Used by:457
Symbol 377 BitmapUsed by:378
Symbol 378 GraphicUses:377Used by:457
Symbol 379 BitmapUsed by:380
Symbol 380 GraphicUses:379Used by:457
Symbol 381 BitmapUsed by:382
Symbol 382 GraphicUses:381Used by:457
Symbol 383 BitmapUsed by:384
Symbol 384 GraphicUses:383Used by:457
Symbol 385 BitmapUsed by:386
Symbol 386 GraphicUses:385Used by:457
Symbol 387 BitmapUsed by:388
Symbol 388 GraphicUses:387Used by:457
Symbol 389 BitmapUsed by:390
Symbol 390 GraphicUses:389Used by:457
Symbol 391 BitmapUsed by:392
Symbol 392 GraphicUses:391Used by:457
Symbol 393 BitmapUsed by:394
Symbol 394 GraphicUses:393Used by:457
Symbol 395 BitmapUsed by:396
Symbol 396 GraphicUses:395Used by:457
Symbol 397 BitmapUsed by:398
Symbol 398 GraphicUses:397Used by:457
Symbol 399 BitmapUsed by:400
Symbol 400 GraphicUses:399Used by:457
Symbol 401 BitmapUsed by:402
Symbol 402 GraphicUses:401Used by:457
Symbol 403 BitmapUsed by:404
Symbol 404 GraphicUses:403Used by:457
Symbol 405 BitmapUsed by:406
Symbol 406 GraphicUses:405Used by:457
Symbol 407 BitmapUsed by:408
Symbol 408 GraphicUses:407Used by:457
Symbol 409 BitmapUsed by:410
Symbol 410 GraphicUses:409Used by:457
Symbol 411 BitmapUsed by:412
Symbol 412 GraphicUses:411Used by:457
Symbol 413 BitmapUsed by:414
Symbol 414 GraphicUses:413Used by:457
Symbol 415 BitmapUsed by:416
Symbol 416 GraphicUses:415Used by:457
Symbol 417 BitmapUsed by:418
Symbol 418 GraphicUses:417Used by:457
Symbol 419 BitmapUsed by:420
Symbol 420 GraphicUses:419Used by:457
Symbol 421 BitmapUsed by:422
Symbol 422 GraphicUses:421Used by:457
Symbol 423 BitmapUsed by:424
Symbol 424 GraphicUses:423Used by:457
Symbol 425 BitmapUsed by:426
Symbol 426 GraphicUses:425Used by:457
Symbol 427 BitmapUsed by:428
Symbol 428 GraphicUses:427Used by:457
Symbol 429 BitmapUsed by:430
Symbol 430 GraphicUses:429Used by:457
Symbol 431 BitmapUsed by:432
Symbol 432 GraphicUses:431Used by:457
Symbol 433 BitmapUsed by:434
Symbol 434 GraphicUses:433Used by:457
Symbol 435 BitmapUsed by:436
Symbol 436 GraphicUses:435Used by:457
Symbol 437 BitmapUsed by:438
Symbol 438 GraphicUses:437Used by:457
Symbol 439 BitmapUsed by:440
Symbol 440 GraphicUses:439Used by:457
Symbol 441 BitmapUsed by:442
Symbol 442 GraphicUses:441Used by:457
Symbol 443 BitmapUsed by:444
Symbol 444 GraphicUses:443Used by:457
Symbol 445 BitmapUsed by:446
Symbol 446 GraphicUses:445Used by:457
Symbol 447 BitmapUsed by:448
Symbol 448 GraphicUses:447Used by:457
Symbol 449 BitmapUsed by:450
Symbol 450 GraphicUses:449Used by:457
Symbol 451 BitmapUsed by:452
Symbol 452 GraphicUses:451Used by:457
Symbol 453 BitmapUsed by:454
Symbol 454 GraphicUses:453Used by:457
Symbol 455 BitmapUsed by:456
Symbol 456 GraphicUses:455Used by:457
Symbol 457 MovieClip {coldjustice_fla.bodyanim_62}Uses:214 215 218 220 222 224 226 228 230 232 234 236 238 240 242 244 246 248 250 252 254 256 258 260 262 264 266 268 270 272 274 276 278 280 282 284 286 288 290 292 294 296 298 300 302 304 306 308 310 312 314 316 318 320 322 324 326 328 330 332 334 336 338 340 342 344 346 348 350 352 354 356 358 360 362 364 366 368 370 372 374 376 378 380 382 384 386 388 390 392 394 396 398 400 402 404 406 408 410 412 414 416 418 420 422 424 426 428 430 432 434 436 438 440 442 444 446 448 450 452 454 456Used by:458
Symbol 458 MovieClipUses:457Used by:459
Symbol 459 MovieClip {aiPlayer}Uses:458Used by:460 471 476 481 482 485 492 493 496 506 507 518 520 528 529 534 535 536 539 540 541 542 543 544 546 547 548 553 554 556
Symbol 460 MovieClip {level01}Uses:200 203 206 208 210 212 459Used by:1259
Symbol 461 BitmapUsed by:462
Symbol 462 GraphicUses:461Used by:471 477
Symbol 463 BitmapUsed by:464
Symbol 464 GraphicUses:463Used by:465
Symbol 465 MovieClip {floor1}Uses:464Used by:471 481 485 493 506 518 528 534 536 540 542 543 546 548 553 556
Symbol 466 BitmapUsed by:467 525
Symbol 467 GraphicUses:466Used by:468
Symbol 468 MovieClip {concreteHanging1}Uses:467Used by:469 470 516 519
Symbol 469 MovieClip {chain5}Uses:468 46 49 52Used by:471 476 493 496 506 546
Symbol 470 MovieClip {chain1}Uses:468 46 49 52Used by:471 506 518
Symbol 471 MovieClip {level05}Uses:462 465 208 206 212 210 469 470 459Used by:1259
Symbol 472 MovieClipUses:200Used by:476 485 493 506 507 520 529 535 539 541 544 547 554
Symbol 473 BitmapUsed by:474
Symbol 474 GraphicUses:473Used by:475 694
Symbol 475 MovieClip {explosiveObject1}Uses:474Used by:476 481 482 492 493 506 507 529 535 540 542 546 548 554 556
Symbol 476 MovieClip {level03}Uses:472 203 210 208 206 212 469 475 459Used by:1259
Symbol 477 MovieClipUses:462Used by:481 482 492 496 518 528 534 536 540 542 543 546 548 553 556 1268 1275
Symbol 478 BitmapUsed by:479 490 500 525 530
Symbol 479 GraphicUses:478Used by:480
Symbol 480 MovieClip {metal1_1_half}Uses:479Used by:481 492 547
Symbol 481 MovieClip {level04}Uses:477 465 208 206 210 212 480 475 459Used by:1259
Symbol 482 MovieClip {level12}Uses:477 203 210 206 212 208 475 459Used by:1259
Symbol 483 GraphicUses:204Used by:484
Symbol 484 MovieClip {metalDiagonal1_150}Uses:483Used by:485 553 556
Symbol 485 MovieClip {level06}Uses:472 465 210 484 206 212 459Used by:1259
Symbol 486 GraphicUses:204Used by:487
Symbol 487 MovieClip {metalDiagonal1_105}Uses:486Used by:492 496 539
Symbol 488 GraphicUses:204Used by:489
Symbol 489 MovieClip {metalDiagonal1_75}Uses:488Used by:492 507
Symbol 490 GraphicUses:478Used by:491
Symbol 491 MovieClip {metal1_2_half}Uses:490Used by:492 496 518 535 546 547 553
Symbol 492 MovieClip {level07}Uses:477 203 480 487 489 212 206 491 475 459Used by:1259
Symbol 493 MovieClip {level08}Uses:472 465 210 208 212 206 469 475 459Used by:1259
Symbol 494 GraphicUses:204Used by:495
Symbol 495 MovieClip {metalDiagonal1_60}Uses:494Used by:496
Symbol 496 MovieClip {level09}Uses:477 203 212 206 495 487 491 469 459Used by:1259
Symbol 497 BitmapUsed by:498
Symbol 498 GraphicUses:497Used by:499
Symbol 499 MovieClip {concreteTriangle1}Uses:498Used by:505
Symbol 500 GraphicUses:478Used by:501
Symbol 501 MovieClip {metalLever1}Uses:500Used by:505
Symbol 502 BitmapUsed by:503
Symbol 503 GraphicUses:502Used by:504
Symbol 504 MovieClip {metalRim1}Uses:503Used by:505
Symbol 505 MovieClip {leverStructure1}Uses:499 501 504Used by:506 529 542 546 548 556
Symbol 506 MovieClip {level10}Uses:472 465 206 469 470 505 475 459Used by:1259
Symbol 507 MovieClip {level11}Uses:472 203 489 206 212 475 459Used by:1259
Symbol 508 GraphicUses:44Used by:509
Symbol 509 MovieClip {chainpiece3}Uses:508Used by:516 524
Symbol 510 GraphicUses:44Used by:511
Symbol 511 MovieClip {chainpiece5}Uses:510Used by:516 524
Symbol 512 GraphicUses:47Used by:513
Symbol 513 MovieClip {chainpiece4}Uses:512Used by:516 524
Symbol 514 GraphicUses:47Used by:515
Symbol 515 MovieClip {chainpiece6}Uses:514Used by:516 524
Symbol 516 MovieClip {chain4}Uses:468 509 511 513 515 52Used by:518
Symbol 517 MovieClip {concreteSphere1}Uses:42Used by:518 542
Symbol 518 MovieClip {level02}Uses:477 465 491 206 516 470 517 459Used by:1259
Symbol 519 MovieClip {chain10}Uses:468 46 49 52Used by:520 536
Symbol 520 MovieClip {level13}Uses:472 203 206 210 208 212 519 459Used by:1259
Symbol 521 BitmapUsed by:522
Symbol 522 GraphicUses:521Used by:523
Symbol 523 MovieClip {floor3}Uses:522Used by:528 553
Symbol 524 MovieClip {chain8}Uses:43 509 511 513 515 52Used by:528 534 541 547 553 556
Symbol 525 GraphicUses:478 466Used by:526
Symbol 526 MovieClip {metalRectangle2}Uses:525Used by:527
Symbol 527 MovieClip {chain7}Uses:526 46 49 52Used by:528 543
Symbol 528 MovieClip {level14}Uses:477 465 523 212 206 524 527 459Used by:1259
Symbol 529 MovieClip {level15}Uses:472 203 206 53 505 475 459Used by:1259
Symbol 530 GraphicUses:478Used by:531
Symbol 531 MovieClip {metalRectangle1}Uses:530Used by:532
Symbol 532 MovieClip {chain6}Uses:531 46 49 52Used by:534
Symbol 533 MovieClip {concreteSphere2}Uses:42Used by:534 541 553
Symbol 534 MovieClip {level16}Uses:477 465 206 532 524 533 459Used by:1259
Symbol 535 MovieClip {level17}Uses:472 203 206 212 491 475 459Used by:1259
Symbol 536 MovieClip {level18}Uses:477 465 208 210 212 519 459Used by:1259
Symbol 537 GraphicUses:204Used by:538
Symbol 538 MovieClip {metalDiagonal1_120}Uses:537Used by:539 541
Symbol 539 MovieClip {level19}Uses:472 487 538 203 212 206 459Used by:1259
Symbol 540 MovieClip {level20}Uses:477 465 206 212 53 475 459Used by:1259
Symbol 541 MovieClip {level21}Uses:472 203 538 206 212 524 533 459Used by:1259
Symbol 542 MovieClip {level22}Uses:477 465 208 210 212 206 505 475 517 459Used by:1259
Symbol 543 MovieClip {level24}Uses:477 465 206 212 527 459Used by:1259
Symbol 544 MovieClip {level23}Uses:472 203 212 206 459Used by:1259
Symbol 545 MovieClip {concreteSphere3}Uses:42Used by:546
Symbol 546 MovieClip {level25}Uses:477 465 206 491 212 469 505 475 545 459Used by:1259
Symbol 547 MovieClip {level26}Uses:472 203 210 480 491 212 206 524 459Used by:1259
Symbol 548 MovieClip {level27}Uses:477 465 212 206 53 505 475 459Used by:1259
Symbol 549 GraphicUses:204Used by:550
Symbol 550 MovieClip {metalDiagonal1_15}Uses:549Used by:553
Symbol 551 GraphicUses:204Used by:552
Symbol 552 MovieClip {metalDiagonal1_30}Uses:551Used by:553
Symbol 553 MovieClip {level28}Uses:477 491 465 523 206 550 212 552 484 524 533 459Used by:1259
Symbol 554 MovieClip {level29}Uses:472 203 206 475 459Used by:1259
Symbol 555 MovieClip {concreteSphere4}Uses:42Used by:556
Symbol 556 MovieClip {level30}Uses:477 484 465 208 524 505 475 555 459Used by:1259
Symbol 557 BitmapUsed by:558
Symbol 558 GraphicUses:557Used by:559
Symbol 559 MovieClip {blood1}Uses:558Used by:1259
Symbol 560 BitmapUsed by:561
Symbol 561 GraphicUses:560Used by:562
Symbol 562 MovieClip {expParticle3}Uses:561Used by:1259
Symbol 563 BitmapUsed by:564
Symbol 564 GraphicUses:563Used by:565
Symbol 565 MovieClip {expParticle4}Uses:564Used by:1259
Symbol 566 BitmapUsed by:567
Symbol 567 GraphicUses:566Used by:568
Symbol 568 MovieClip {expParticle5}Uses:567Used by:1259
Symbol 569 BitmapUsed by:570
Symbol 570 GraphicUses:569Used by:571
Symbol 571 MovieClip {expParticle6}Uses:570Used by:1259
Symbol 572 BitmapUsed by:573
Symbol 573 GraphicUses:572Used by:692
Symbol 574 BitmapUsed by:575
Symbol 575 GraphicUses:574Used by:692
Symbol 576 BitmapUsed by:577
Symbol 577 GraphicUses:576Used by:692
Symbol 578 BitmapUsed by:579
Symbol 579 GraphicUses:578Used by:692
Symbol 580 BitmapUsed by:581
Symbol 581 GraphicUses:580Used by:692
Symbol 582 BitmapUsed by:583
Symbol 583 GraphicUses:582Used by:692
Symbol 584 BitmapUsed by:585
Symbol 585 GraphicUses:584Used by:692
Symbol 586 BitmapUsed by:587
Symbol 587 GraphicUses:586Used by:692
Symbol 588 BitmapUsed by:589
Symbol 589 GraphicUses:588Used by:692
Symbol 590 BitmapUsed by:591
Symbol 591 GraphicUses:590Used by:692
Symbol 592 BitmapUsed by:593
Symbol 593 GraphicUses:592Used by:692
Symbol 594 BitmapUsed by:595
Symbol 595 GraphicUses:594Used by:692
Symbol 596 BitmapUsed by:597
Symbol 597 GraphicUses:596Used by:692
Symbol 598 BitmapUsed by:599
Symbol 599 GraphicUses:598Used by:692
Symbol 600 BitmapUsed by:601
Symbol 601 GraphicUses:600Used by:692
Symbol 602 BitmapUsed by:603
Symbol 603 GraphicUses:602Used by:692
Symbol 604 BitmapUsed by:605
Symbol 605 GraphicUses:604Used by:692
Symbol 606 BitmapUsed by:607
Symbol 607 GraphicUses:606Used by:692
Symbol 608 BitmapUsed by:609
Symbol 609 GraphicUses:608Used by:692
Symbol 610 BitmapUsed by:611
Symbol 611 GraphicUses:610Used by:692
Symbol 612 BitmapUsed by:613
Symbol 613 GraphicUses:612Used by:692
Symbol 614 BitmapUsed by:615
Symbol 615 GraphicUses:614Used by:692
Symbol 616 BitmapUsed by:617
Symbol 617 GraphicUses:616Used by:692
Symbol 618 BitmapUsed by:619
Symbol 619 GraphicUses:618Used by:692
Symbol 620 BitmapUsed by:621
Symbol 621 GraphicUses:620Used by:692
Symbol 622 BitmapUsed by:623
Symbol 623 GraphicUses:622Used by:692
Symbol 624 BitmapUsed by:625
Symbol 625 GraphicUses:624Used by:692
Symbol 626 BitmapUsed by:627
Symbol 627 GraphicUses:626Used by:692
Symbol 628 BitmapUsed by:629
Symbol 629 GraphicUses:628Used by:692
Symbol 630 BitmapUsed by:631
Symbol 631 GraphicUses:630Used by:692
Symbol 632 BitmapUsed by:633
Symbol 633 GraphicUses:632Used by:692
Symbol 634 BitmapUsed by:635
Symbol 635 GraphicUses:634Used by:692
Symbol 636 BitmapUsed by:637
Symbol 637 GraphicUses:636Used by:692
Symbol 638 BitmapUsed by:639
Symbol 639 GraphicUses:638Used by:692
Symbol 640 BitmapUsed by:641
Symbol 641 GraphicUses:640Used by:692
Symbol 642 BitmapUsed by:643
Symbol 643 GraphicUses:642Used by:692
Symbol 644 BitmapUsed by:645
Symbol 645 GraphicUses:644Used by:692
Symbol 646 BitmapUsed by:647
Symbol 647 GraphicUses:646Used by:692
Symbol 648 BitmapUsed by:649
Symbol 649 GraphicUses:648Used by:692
Symbol 650 BitmapUsed by:651
Symbol 651 GraphicUses:650Used by:692
Symbol 652 BitmapUsed by:653
Symbol 653 GraphicUses:652Used by:692
Symbol 654 BitmapUsed by:655
Symbol 655 GraphicUses:654Used by:692
Symbol 656 BitmapUsed by:657
Symbol 657 GraphicUses:656Used by:692
Symbol 658 BitmapUsed by:659
Symbol 659 GraphicUses:658Used by:692
Symbol 660 BitmapUsed by:661
Symbol 661 GraphicUses:660Used by:692
Symbol 662 BitmapUsed by:663
Symbol 663 GraphicUses:662Used by:692
Symbol 664 BitmapUsed by:665
Symbol 665 GraphicUses:664Used by:692
Symbol 666 BitmapUsed by:667
Symbol 667 GraphicUses:666Used by:692
Symbol 668 BitmapUsed by:669
Symbol 669 GraphicUses:668Used by:692
Symbol 670 BitmapUsed by:671
Symbol 671 GraphicUses:670Used by:692
Symbol 672 BitmapUsed by:673
Symbol 673 GraphicUses:672Used by:692
Symbol 674 BitmapUsed by:675
Symbol 675 GraphicUses:674Used by:692
Symbol 676 BitmapUsed by:677
Symbol 677 GraphicUses:676Used by:692
Symbol 678 BitmapUsed by:679
Symbol 679 GraphicUses:678Used by:692
Symbol 680 BitmapUsed by:681
Symbol 681 GraphicUses:680Used by:692
Symbol 682 BitmapUsed by:683
Symbol 683 GraphicUses:682Used by:692
Symbol 684 BitmapUsed by:685
Symbol 685 GraphicUses:684Used by:692
Symbol 686 BitmapUsed by:687
Symbol 687 GraphicUses:686Used by:692
Symbol 688 BitmapUsed by:689
Symbol 689 GraphicUses:688Used by:692
Symbol 690 BitmapUsed by:691
Symbol 691 GraphicUses:690Used by:692
Symbol 692 MovieClip {coldjustice_fla.exp_anim_141}Uses:573 575 577 579 581 583 585 587 589 591 593 595 597 599 601 603 605 607 609 611 613 615 617 619 621 623 625 627 629 631 633 635 637 639 641 643 645 647 649 651 653 655 657 659 661 663 665 667 669 671 673 675 677 679 681 683 685 687 689 691Used by:693
Symbol 693 MovieClip {explosion1}Uses:692Used by:1259
Symbol 694 MovieClip {explosiveObject2}Uses:474Used by:1259
Symbol 695 MovieClip {concreteSphere3_2}Uses:42Used by:1259
Symbol 696 BitmapUsed by:697 699
Symbol 697 GraphicUses:696Used by:698
Symbol 698 MovieClip {bullet_img}Uses:697Used by:1259 1324
Symbol 699 GraphicUses:696Used by:700 707
Symbol 700 MovieClip {bulletMc1}Uses:699Used by:1259
Symbol 701 GraphicUsed by:702
Symbol 702 MovieClip {expParticle1}Uses:701Used by:1259
Symbol 703 GraphicUsed by:704
Symbol 704 MovieClip {expParticle2}Uses:703Used by:1259
Symbol 705 GraphicUsed by:706
Symbol 706 MovieClip {bloodParticle1}Uses:705Used by:1259
Symbol 707 MovieClipUses:699Used by:708
Symbol 708 MovieClip {bulletMc1_trail}Uses:707Used by:1259
Symbol 709 BitmapUsed by:710
Symbol 710 GraphicUses:709Used by:843
Symbol 711 BitmapUsed by:712
Symbol 712 GraphicUses:711Used by:843
Symbol 713 BitmapUsed by:714
Symbol 714 GraphicUses:713Used by:843
Symbol 715 BitmapUsed by:716
Symbol 716 GraphicUses:715Used by:843
Symbol 717 BitmapUsed by:718
Symbol 718 GraphicUses:717Used by:843
Symbol 719 BitmapUsed by:720
Symbol 720 GraphicUses:719Used by:843
Symbol 721 BitmapUsed by:722
Symbol 722 GraphicUses:721Used by:843
Symbol 723 BitmapUsed by:724
Symbol 724 GraphicUses:723Used by:843
Symbol 725 BitmapUsed by:726
Symbol 726 GraphicUses:725Used by:843
Symbol 727 BitmapUsed by:728
Symbol 728 GraphicUses:727Used by:843
Symbol 729 BitmapUsed by:730
Symbol 730 GraphicUses:729Used by:843
Symbol 731 BitmapUsed by:732
Symbol 732 GraphicUses:731Used by:843
Symbol 733 BitmapUsed by:734
Symbol 734 GraphicUses:733Used by:843
Symbol 735 BitmapUsed by:736
Symbol 736 GraphicUses:735Used by:843
Symbol 737 BitmapUsed by:738
Symbol 738 GraphicUses:737Used by:843
Symbol 739 BitmapUsed by:740
Symbol 740 GraphicUses:739Used by:843
Symbol 741 BitmapUsed by:742
Symbol 742 GraphicUses:741Used by:843
Symbol 743 BitmapUsed by:744
Symbol 744 GraphicUses:743Used by:843
Symbol 745 BitmapUsed by:746
Symbol 746 GraphicUses:745Used by:843
Symbol 747 BitmapUsed by:748
Symbol 748 GraphicUses:747Used by:843
Symbol 749 BitmapUsed by:750
Symbol 750 GraphicUses:749Used by:843
Symbol 751 BitmapUsed by:752
Symbol 752 GraphicUses:751Used by:843
Symbol 753 BitmapUsed by:754
Symbol 754 GraphicUses:753Used by:843
Symbol 755 BitmapUsed by:756
Symbol 756 GraphicUses:755Used by:843
Symbol 757 BitmapUsed by:758
Symbol 758 GraphicUses:757Used by:843
Symbol 759 BitmapUsed by:760
Symbol 760 GraphicUses:759Used by:843
Symbol 761 BitmapUsed by:762
Symbol 762 GraphicUses:761Used by:843
Symbol 763 BitmapUsed by:764
Symbol 764 GraphicUses:763Used by:843
Symbol 765 BitmapUsed by:766
Symbol 766 GraphicUses:765Used by:843
Symbol 767 BitmapUsed by:768
Symbol 768 GraphicUses:767Used by:843
Symbol 769 BitmapUsed by:770
Symbol 770 GraphicUses:769Used by:843
Symbol 771 BitmapUsed by:772
Symbol 772 GraphicUses:771Used by:843
Symbol 773 BitmapUsed by:774
Symbol 774 GraphicUses:773Used by:843
Symbol 775 BitmapUsed by:776
Symbol 776 GraphicUses:775Used by:843
Symbol 777 BitmapUsed by:778
Symbol 778 GraphicUses:777Used by:843
Symbol 779 BitmapUsed by:780
Symbol 780 GraphicUses:779Used by:843
Symbol 781 BitmapUsed by:782
Symbol 782 GraphicUses:781Used by:843
Symbol 783 BitmapUsed by:784
Symbol 784 GraphicUses:783Used by:843
Symbol 785 BitmapUsed by:786
Symbol 786 GraphicUses:785Used by:843
Symbol 787 BitmapUsed by:788
Symbol 788 GraphicUses:787Used by:843
Symbol 789 BitmapUsed by:790
Symbol 790 GraphicUses:789Used by:843
Symbol 791 BitmapUsed by:792
Symbol 792 GraphicUses:791Used by:843
Symbol 793 BitmapUsed by:794
Symbol 794 GraphicUses:793Used by:843
Symbol 795 BitmapUsed by:796
Symbol 796 GraphicUses:795Used by:843
Symbol 797 BitmapUsed by:798
Symbol 798 GraphicUses:797Used by:843
Symbol 799 BitmapUsed by:800
Symbol 800 GraphicUses:799Used by:843
Symbol 801 BitmapUsed by:802
Symbol 802 GraphicUses:801Used by:843
Symbol 803 BitmapUsed by:804
Symbol 804 GraphicUses:803Used by:843
Symbol 805 BitmapUsed by:806
Symbol 806 GraphicUses:805Used by:843
Symbol 807 BitmapUsed by:808
Symbol 808 GraphicUses:807Used by:843
Symbol 809 BitmapUsed by:810
Symbol 810 GraphicUses:809Used by:843
Symbol 811 BitmapUsed by:812
Symbol 812 GraphicUses:811Used by:843
Symbol 813 BitmapUsed by:814
Symbol 814 GraphicUses:813Used by:843
Symbol 815 BitmapUsed by:816
Symbol 816 GraphicUses:815Used by:843
Symbol 817 BitmapUsed by:818
Symbol 818 GraphicUses:817Used by:843
Symbol 819 BitmapUsed by:820
Symbol 820 GraphicUses:819Used by:843
Symbol 821 BitmapUsed by:822
Symbol 822 GraphicUses:821Used by:843
Symbol 823 BitmapUsed by:824
Symbol 824 GraphicUses:823Used by:843
Symbol 825 BitmapUsed by:826
Symbol 826 GraphicUses:825Used by:843
Symbol 827 BitmapUsed by:828
Symbol 828 GraphicUses:827Used by:843
Symbol 829 BitmapUsed by:830
Symbol 830 GraphicUses:829Used by:843
Symbol 831 BitmapUsed by:832
Symbol 832 GraphicUses:831Used by:843
Symbol 833 BitmapUsed by:834
Symbol 834 GraphicUses:833Used by:843
Symbol 835 BitmapUsed by:836
Symbol 836 GraphicUses:835Used by:843
Symbol 837 BitmapUsed by:838
Symbol 838 GraphicUses:837Used by:843
Symbol 839 BitmapUsed by:840
Symbol 840 GraphicUses:839Used by:843
Symbol 841 BitmapUsed by:842
Symbol 842 GraphicUses:841Used by:843
Symbol 843 MovieClipUses:710 712 714 716 718 720 722 724 726 728 730 732 734 736 738 740 742 744 746 748 750 752 754 756 758 760 762 764 766 768 770 772 774 776 778 780 782 784 786 788 790 792 794 796 798 800 802 804 806 808 810 812 814 816 818 820 822 824 826 828 830 832 834 836 838 840 842Used by:889
Symbol 844 MovieClipUsed by:889
Symbol 845 BitmapUsed by:846
Symbol 846 GraphicUses:845Used by:887
Symbol 847 BitmapUsed by:848
Symbol 848 GraphicUses:847Used by:887
Symbol 849 BitmapUsed by:850
Symbol 850 GraphicUses:849Used by:887
Symbol 851 BitmapUsed by:852
Symbol 852 GraphicUses:851Used by:887
Symbol 853 BitmapUsed by:854
Symbol 854 GraphicUses:853Used by:887
Symbol 855 BitmapUsed by:856
Symbol 856 GraphicUses:855Used by:887
Symbol 857 BitmapUsed by:858
Symbol 858 GraphicUses:857Used by:887
Symbol 859 BitmapUsed by:860
Symbol 860 GraphicUses:859Used by:887
Symbol 861 BitmapUsed by:862
Symbol 862 GraphicUses:861Used by:887
Symbol 863 BitmapUsed by:864
Symbol 864 GraphicUses:863Used by:887
Symbol 865 BitmapUsed by:866
Symbol 866 GraphicUses:865Used by:887
Symbol 867 BitmapUsed by:868
Symbol 868 GraphicUses:867Used by:887
Symbol 869 BitmapUsed by:870
Symbol 870 GraphicUses:869Used by:887
Symbol 871 BitmapUsed by:872
Symbol 872 GraphicUses:871Used by:887
Symbol 873 BitmapUsed by:874
Symbol 874 GraphicUses:873Used by:887
Symbol 875 BitmapUsed by:876
Symbol 876 GraphicUses:875Used by:887
Symbol 877 BitmapUsed by:878
Symbol 878 GraphicUses:877Used by:887
Symbol 879 BitmapUsed by:880
Symbol 880 GraphicUses:879Used by:887
Symbol 881 BitmapUsed by:882
Symbol 882 GraphicUses:881Used by:887
Symbol 883 BitmapUsed by:884
Symbol 884 GraphicUses:883Used by:887
Symbol 885 BitmapUsed by:886
Symbol 886 GraphicUses:885Used by:887
Symbol 887 MovieClipUses:846 848 850 852 854 856 858 860 862 864 866 868 870 872 874 876 878 880 882 884 886Used by:888 889
Symbol 888 MovieClipUses:887Used by:889
Symbol 889 MovieClip {coldjustice_fla.body_152}Uses:843 844 888 887Used by:892
Symbol 890 GraphicUsed by:891 1074 1257
Symbol 891 MovieClipUses:890Used by:892
Symbol 892 MovieClip {outlaw1}Uses:889 891Used by:1259
Symbol 893 BitmapUsed by:894
Symbol 894 GraphicUses:893Used by:1027
Symbol 895 BitmapUsed by:896
Symbol 896 GraphicUses:895Used by:1027
Symbol 897 BitmapUsed by:898
Symbol 898 GraphicUses:897Used by:1027
Symbol 899 BitmapUsed by:900
Symbol 900 GraphicUses:899Used by:1027
Symbol 901 BitmapUsed by:902
Symbol 902 GraphicUses:901Used by:1027
Symbol 903 BitmapUsed by:904
Symbol 904 GraphicUses:903Used by:1027
Symbol 905 BitmapUsed by:906
Symbol 906 GraphicUses:905Used by:1027
Symbol 907 BitmapUsed by:908
Symbol 908 GraphicUses:907Used by:1027
Symbol 909 BitmapUsed by:910
Symbol 910 GraphicUses:909Used by:1027
Symbol 911 BitmapUsed by:912
Symbol 912 GraphicUses:911Used by:1027
Symbol 913 BitmapUsed by:914
Symbol 914 GraphicUses:913Used by:1027
Symbol 915 BitmapUsed by:916
Symbol 916 GraphicUses:915Used by:1027
Symbol 917 BitmapUsed by:918
Symbol 918 GraphicUses:917Used by:1027
Symbol 919 BitmapUsed by:920
Symbol 920 GraphicUses:919Used by:1027
Symbol 921 BitmapUsed by:922
Symbol 922 GraphicUses:921Used by:1027
Symbol 923 BitmapUsed by:924
Symbol 924 GraphicUses:923Used by:1027
Symbol 925 BitmapUsed by:926
Symbol 926 GraphicUses:925Used by:1027
Symbol 927 BitmapUsed by:928
Symbol 928 GraphicUses:927Used by:1027
Symbol 929 BitmapUsed by:930
Symbol 930 GraphicUses:929Used by:1027
Symbol 931 BitmapUsed by:932
Symbol 932 GraphicUses:931Used by:1027
Symbol 933 BitmapUsed by:934
Symbol 934 GraphicUses:933Used by:1027
Symbol 935 BitmapUsed by:936
Symbol 936 GraphicUses:935Used by:1027
Symbol 937 BitmapUsed by:938
Symbol 938 GraphicUses:937Used by:1027
Symbol 939 BitmapUsed by:940
Symbol 940 GraphicUses:939Used by:1027
Symbol 941 BitmapUsed by:942
Symbol 942 GraphicUses:941Used by:1027
Symbol 943 BitmapUsed by:944
Symbol 944 GraphicUses:943Used by:1027
Symbol 945 BitmapUsed by:946
Symbol 946 GraphicUses:945Used by:1027
Symbol 947 BitmapUsed by:948
Symbol 948 GraphicUses:947Used by:1027
Symbol 949 BitmapUsed by:950
Symbol 950 GraphicUses:949Used by:1027
Symbol 951 BitmapUsed by:952
Symbol 952 GraphicUses:951Used by:1027
Symbol 953 BitmapUsed by:954
Symbol 954 GraphicUses:953Used by:1027
Symbol 955 BitmapUsed by:956
Symbol 956 GraphicUses:955Used by:1027
Symbol 957 BitmapUsed by:958
Symbol 958 GraphicUses:957Used by:1027
Symbol 959 BitmapUsed by:960
Symbol 960 GraphicUses:959Used by:1027
Symbol 961 BitmapUsed by:962
Symbol 962 GraphicUses:961Used by:1027
Symbol 963 BitmapUsed by:964
Symbol 964 GraphicUses:963Used by:1027
Symbol 965 BitmapUsed by:966
Symbol 966 GraphicUses:965Used by:1027
Symbol 967 BitmapUsed by:968
Symbol 968 GraphicUses:967Used by:1027
Symbol 969 BitmapUsed by:970
Symbol 970 GraphicUses:969Used by:1027
Symbol 971 BitmapUsed by:972
Symbol 972 GraphicUses:971Used by:1027
Symbol 973 BitmapUsed by:974
Symbol 974 GraphicUses:973Used by:1027
Symbol 975 BitmapUsed by:976
Symbol 976 GraphicUses:975Used by:1027
Symbol 977 BitmapUsed by:978
Symbol 978 GraphicUses:977Used by:1027
Symbol 979 BitmapUsed by:980
Symbol 980 GraphicUses:979Used by:1027
Symbol 981 BitmapUsed by:982
Symbol 982 GraphicUses:981Used by:1027
Symbol 983 BitmapUsed by:984
Symbol 984 GraphicUses:983Used by:1027
Symbol 985 BitmapUsed by:986
Symbol 986 GraphicUses:985Used by:1027
Symbol 987 BitmapUsed by:988
Symbol 988 GraphicUses:987Used by:1027
Symbol 989 BitmapUsed by:990
Symbol 990 GraphicUses:989Used by:1027
Symbol 991 BitmapUsed by:992
Symbol 992 GraphicUses:991Used by:1027
Symbol 993 BitmapUsed by:994
Symbol 994 GraphicUses:993Used by:1027
Symbol 995 BitmapUsed by:996
Symbol 996 GraphicUses:995Used by:1027
Symbol 997 BitmapUsed by:998
Symbol 998 GraphicUses:997Used by:1027
Symbol 999 BitmapUsed by:1000
Symbol 1000 GraphicUses:999Used by:1027
Symbol 1001 BitmapUsed by:1002
Symbol 1002 GraphicUses:1001Used by:1027
Symbol 1003 BitmapUsed by:1004
Symbol 1004 GraphicUses:1003Used by:1027
Symbol 1005 BitmapUsed by:1006
Symbol 1006 GraphicUses:1005Used by:1027
Symbol 1007 BitmapUsed by:1008
Symbol 1008 GraphicUses:1007Used by:1027
Symbol 1009 BitmapUsed by:1010
Symbol 1010 GraphicUses:1009Used by:1027
Symbol 1011 BitmapUsed by:1012
Symbol 1012 GraphicUses:1011Used by:1027
Symbol 1013 BitmapUsed by:1014
Symbol 1014 GraphicUses:1013Used by:1027
Symbol 1015 BitmapUsed by:1016
Symbol 1016 GraphicUses:1015Used by:1027
Symbol 1017 BitmapUsed by:1018
Symbol 1018 GraphicUses:1017Used by:1027
Symbol 1019 BitmapUsed by:1020
Symbol 1020 GraphicUses:1019Used by:1027
Symbol 1021 BitmapUsed by:1022
Symbol 1022 GraphicUses:1021Used by:1027
Symbol 1023 BitmapUsed by:1024
Symbol 1024 GraphicUses:1023Used by:1027
Symbol 1025 BitmapUsed by:1026
Symbol 1026 GraphicUses:1025Used by:1027
Symbol 1027 MovieClipUses:894 896 898 900 902 904 906 908 910 912 914 916 918 920 922 924 926 928 930 932 934 936 938 940 942 944 946 948 950 952 954 956 958 960 962 964 966 968 970 972 974 976 978 980 982 984 986 988 990 992 994 996 998 1000 1002 1004 1006 1008 1010 1012 1014 1016 1018 1020 1022 1024 1026Used by:1073
Symbol 1028 MovieClipUsed by:1073
Symbol 1029 BitmapUsed by:1030
Symbol 1030 GraphicUses:1029Used by:1071
Symbol 1031 BitmapUsed by:1032
Symbol 1032 GraphicUses:1031Used by:1071
Symbol 1033 BitmapUsed by:1034
Symbol 1034 GraphicUses:1033Used by:1071
Symbol 1035 BitmapUsed by:1036
Symbol 1036 GraphicUses:1035Used by:1071
Symbol 1037 BitmapUsed by:1038
Symbol 1038 GraphicUses:1037Used by:1071
Symbol 1039 BitmapUsed by:1040
Symbol 1040 GraphicUses:1039Used by:1071
Symbol 1041 BitmapUsed by:1042
Symbol 1042 GraphicUses:1041Used by:1071
Symbol 1043 BitmapUsed by:1044
Symbol 1044 GraphicUses:1043Used by:1071
Symbol 1045 BitmapUsed by:1046
Symbol 1046 GraphicUses:1045Used by:1071
Symbol 1047 BitmapUsed by:1048
Symbol 1048 GraphicUses:1047Used by:1071
Symbol 1049 BitmapUsed by:1050
Symbol 1050 GraphicUses:1049Used by:1071
Symbol 1051 BitmapUsed by:1052
Symbol 1052 GraphicUses:1051Used by:1071
Symbol 1053 BitmapUsed by:1054
Symbol 1054 GraphicUses:1053Used by:1071
Symbol 1055 BitmapUsed by:1056
Symbol 1056 GraphicUses:1055Used by:1071
Symbol 1057 BitmapUsed by:1058
Symbol 1058 GraphicUses:1057Used by:1071
Symbol 1059 BitmapUsed by:1060
Symbol 1060 GraphicUses:1059Used by:1071
Symbol 1061 BitmapUsed by:1062
Symbol 1062 GraphicUses:1061Used by:1071
Symbol 1063 BitmapUsed by:1064
Symbol 1064 GraphicUses:1063Used by:1071
Symbol 1065 BitmapUsed by:1066
Symbol 1066 GraphicUses:1065Used by:1071
Symbol 1067 BitmapUsed by:1068
Symbol 1068 GraphicUses:1067Used by:1071
Symbol 1069 BitmapUsed by:1070
Symbol 1070 GraphicUses:1069Used by:1071
Symbol 1071 MovieClipUses:1030 1032 1034 1036 1038 1040 1042 1044 1046 1048 1050 1052 1054 1056 1058 1060 1062 1064 1066 1068 1070Used by:1072 1073
Symbol 1072 MovieClipUses:1071Used by:1073
Symbol 1073 MovieClip {coldjustice_fla.body_159}Uses:1027 1028 1072 1071Used by:1075
Symbol 1074 MovieClipUses:890Used by:1075
Symbol 1075 MovieClip {outlaw2}Uses:1073 1074Used by:1259
Symbol 1076 BitmapUsed by:1077
Symbol 1077 GraphicUses:1076Used by:1210
Symbol 1078 BitmapUsed by:1079
Symbol 1079 GraphicUses:1078Used by:1210
Symbol 1080 BitmapUsed by:1081
Symbol 1081 GraphicUses:1080Used by:1210
Symbol 1082 BitmapUsed by:1083
Symbol 1083 GraphicUses:1082Used by:1210
Symbol 1084 BitmapUsed by:1085
Symbol 1085 GraphicUses:1084Used by:1210
Symbol 1086 BitmapUsed by:1087
Symbol 1087 GraphicUses:1086Used by:1210
Symbol 1088 BitmapUsed by:1089
Symbol 1089 GraphicUses:1088Used by:1210
Symbol 1090 BitmapUsed by:1091
Symbol 1091 GraphicUses:1090Used by:1210
Symbol 1092 BitmapUsed by:1093
Symbol 1093 GraphicUses:1092Used by:1210
Symbol 1094 BitmapUsed by:1095
Symbol 1095 GraphicUses:1094Used by:1210
Symbol 1096 BitmapUsed by:1097
Symbol 1097 GraphicUses:1096Used by:1210
Symbol 1098 BitmapUsed by:1099
Symbol 1099 GraphicUses:1098Used by:1210
Symbol 1100 BitmapUsed by:1101
Symbol 1101 GraphicUses:1100Used by:1210
Symbol 1102 BitmapUsed by:1103
Symbol 1103 GraphicUses:1102Used by:1210
Symbol 1104 BitmapUsed by:1105
Symbol 1105 GraphicUses:1104Used by:1210
Symbol 1106 BitmapUsed by:1107
Symbol 1107 GraphicUses:1106Used by:1210
Symbol 1108 BitmapUsed by:1109
Symbol 1109 GraphicUses:1108Used by:1210
Symbol 1110 BitmapUsed by:1111
Symbol 1111 GraphicUses:1110Used by:1210
Symbol 1112 BitmapUsed by:1113
Symbol 1113 GraphicUses:1112Used by:1210
Symbol 1114 BitmapUsed by:1115
Symbol 1115 GraphicUses:1114Used by:1210
Symbol 1116 BitmapUsed by:1117
Symbol 1117 GraphicUses:1116Used by:1210
Symbol 1118 BitmapUsed by:1119
Symbol 1119 GraphicUses:1118Used by:1210
Symbol 1120 BitmapUsed by:1121
Symbol 1121 GraphicUses:1120Used by:1210
Symbol 1122 BitmapUsed by:1123
Symbol 1123 GraphicUses:1122Used by:1210
Symbol 1124 BitmapUsed by:1125
Symbol 1125 GraphicUses:1124Used by:1210
Symbol 1126 BitmapUsed by:1127
Symbol 1127 GraphicUses:1126Used by:1210
Symbol 1128 BitmapUsed by:1129
Symbol 1129 GraphicUses:1128Used by:1210
Symbol 1130 BitmapUsed by:1131
Symbol 1131 GraphicUses:1130Used by:1210
Symbol 1132 BitmapUsed by:1133
Symbol 1133 GraphicUses:1132Used by:1210
Symbol 1134 BitmapUsed by:1135
Symbol 1135 GraphicUses:1134Used by:1210
Symbol 1136 BitmapUsed by:1137
Symbol 1137 GraphicUses:1136Used by:1210
Symbol 1138 BitmapUsed by:1139
Symbol 1139 GraphicUses:1138Used by:1210
Symbol 1140 BitmapUsed by:1141
Symbol 1141 GraphicUses:1140Used by:1210
Symbol 1142 BitmapUsed by:1143
Symbol 1143 GraphicUses:1142Used by:1210
Symbol 1144 BitmapUsed by:1145
Symbol 1145 GraphicUses:1144Used by:1210
Symbol 1146 BitmapUsed by:1147
Symbol 1147 GraphicUses:1146Used by:1210
Symbol 1148 BitmapUsed by:1149
Symbol 1149 GraphicUses:1148Used by:1210
Symbol 1150 BitmapUsed by:1151
Symbol 1151 GraphicUses:1150Used by:1210
Symbol 1152 BitmapUsed by:1153
Symbol 1153 GraphicUses:1152Used by:1210
Symbol 1154 BitmapUsed by:1155
Symbol 1155 GraphicUses:1154Used by:1210
Symbol 1156 BitmapUsed by:1157
Symbol 1157 GraphicUses:1156Used by:1210
Symbol 1158 BitmapUsed by:1159
Symbol 1159 GraphicUses:1158Used by:1210
Symbol 1160 BitmapUsed by:1161
Symbol 1161 GraphicUses:1160Used by:1210
Symbol 1162 BitmapUsed by:1163
Symbol 1163 GraphicUses:1162Used by:1210
Symbol 1164 BitmapUsed by:1165
Symbol 1165 GraphicUses:1164Used by:1210
Symbol 1166 BitmapUsed by:1167
Symbol 1167 GraphicUses:1166Used by:1210
Symbol 1168 BitmapUsed by:1169
Symbol 1169 GraphicUses:1168Used by:1210
Symbol 1170 BitmapUsed by:1171
Symbol 1171 GraphicUses:1170Used by:1210
Symbol 1172 BitmapUsed by:1173
Symbol 1173 GraphicUses:1172Used by:1210
Symbol 1174 BitmapUsed by:1175
Symbol 1175 GraphicUses:1174Used by:1210
Symbol 1176 BitmapUsed by:1177
Symbol 1177 GraphicUses:1176Used by:1210
Symbol 1178 BitmapUsed by:1179
Symbol 1179 GraphicUses:1178Used by:1210
Symbol 1180 BitmapUsed by:1181
Symbol 1181 GraphicUses:1180Used by:1210
Symbol 1182 BitmapUsed by:1183
Symbol 1183 GraphicUses:1182Used by:1210
Symbol 1184 BitmapUsed by:1185
Symbol 1185 GraphicUses:1184Used by:1210
Symbol 1186 BitmapUsed by:1187
Symbol 1187 GraphicUses:1186Used by:1210
Symbol 1188 BitmapUsed by:1189
Symbol 1189 GraphicUses:1188Used by:1210
Symbol 1190 BitmapUsed by:1191
Symbol 1191 GraphicUses:1190Used by:1210
Symbol 1192 BitmapUsed by:1193
Symbol 1193 GraphicUses:1192Used by:1210
Symbol 1194 BitmapUsed by:1195
Symbol 1195 GraphicUses:1194Used by:1210
Symbol 1196 BitmapUsed by:1197
Symbol 1197 GraphicUses:1196Used by:1210
Symbol 1198 BitmapUsed by:1199
Symbol 1199 GraphicUses:1198Used by:1210
Symbol 1200 BitmapUsed by:1201
Symbol 1201 GraphicUses:1200Used by:1210
Symbol 1202 BitmapUsed by:1203
Symbol 1203 GraphicUses:1202Used by:1210
Symbol 1204 BitmapUsed by:1205
Symbol 1205 GraphicUses:1204Used by:1210
Symbol 1206 BitmapUsed by:1207
Symbol 1207 GraphicUses:1206Used by:1210
Symbol 1208 BitmapUsed by:1209
Symbol 1209 GraphicUses:1208Used by:1210
Symbol 1210 MovieClipUses:1077 1079 1081 1083 1085 1087 1089 1091 1093 1095 1097 1099 1101 1103 1105 1107 1109 1111 1113 1115 1117 1119 1121 1123 1125 1127 1129 1131 1133 1135 1137 1139 1141 1143 1145 1147 1149 1151 1153 1155 1157 1159 1161 1163 1165 1167 1169 1171 1173 1175 1177 1179 1181 1183 1185 1187 1189 1191 1193 1195 1197 1199 1201 1203 1205 1207 1209Used by:1256
Symbol 1211 MovieClipUsed by:1256
Symbol 1212 BitmapUsed by:1213
Symbol 1213 GraphicUses:1212Used by:1254
Symbol 1214 BitmapUsed by:1215
Symbol 1215 GraphicUses:1214Used by:1254
Symbol 1216 BitmapUsed by:1217
Symbol 1217 GraphicUses:1216Used by:1254
Symbol 1218 BitmapUsed by:1219
Symbol 1219 GraphicUses:1218Used by:1254
Symbol 1220 BitmapUsed by:1221
Symbol 1221 GraphicUses:1220Used by:1254
Symbol 1222 BitmapUsed by:1223
Symbol 1223 GraphicUses:1222Used by:1254
Symbol 1224 BitmapUsed by:1225
Symbol 1225 GraphicUses:1224Used by:1254
Symbol 1226 BitmapUsed by:1227
Symbol 1227 GraphicUses:1226Used by:1254
Symbol 1228 BitmapUsed by:1229
Symbol 1229 GraphicUses:1228Used by:1254
Symbol 1230 BitmapUsed by:1231
Symbol 1231 GraphicUses:1230Used by:1254
Symbol 1232 BitmapUsed by:1233
Symbol 1233 GraphicUses:1232Used by:1254
Symbol 1234 BitmapUsed by:1235
Symbol 1235 GraphicUses:1234Used by:1254
Symbol 1236 BitmapUsed by:1237
Symbol 1237 GraphicUses:1236Used by:1254
Symbol 1238 BitmapUsed by:1239
Symbol 1239 GraphicUses:1238Used by:1254
Symbol 1240 BitmapUsed by:1241
Symbol 1241 GraphicUses:1240Used by:1254
Symbol 1242 BitmapUsed by:1243
Symbol 1243 GraphicUses:1242Used by:1254
Symbol 1244 BitmapUsed by:1245
Symbol 1245 GraphicUses:1244Used by:1254
Symbol 1246 BitmapUsed by:1247
Symbol 1247 GraphicUses:1246Used by:1254
Symbol 1248 BitmapUsed by:1249
Symbol 1249 GraphicUses:1248Used by:1254
Symbol 1250 BitmapUsed by:1251
Symbol 1251 GraphicUses:1250Used by:1254
Symbol 1252 BitmapUsed by:1253
Symbol 1253 GraphicUses:1252Used by:1254
Symbol 1254 MovieClipUses:1213 1215 1217 1219 1221 1223 1225 1227 1229 1231 1233 1235 1237 1239 1241 1243 1245 1247 1249 1251 1253Used by:1255 1256
Symbol 1255 MovieClipUses:1254Used by:1256
Symbol 1256 MovieClip {coldjustice_fla.body_166}Uses:1210 1211 1255 1254Used by:1258
Symbol 1257 MovieClipUses:890Used by:1258
Symbol 1258 MovieClip {outlaw3}Uses:1256 1257Used by:1259
Symbol 1259 MovieClipUses:87 90 93 96 99 102 105 108 111 114 117 120 122 125 128 131 134 137 140 143 146 149 151 154 157 160 163 166 169 172 56 175 177 180 183 186 189 192 195 198 460 471 476 481 482 485 492 493 496 506 507 518 520 528 529 534 535 536 539 540 541 542 543 544 546 547 548 553 554 556 559 562 565 568 571 693 694 695 698 700 702 704 706 708 892 1075 1258 58 7 4 5 17 8 18 9 19 16 13 12 14 3 11 15 6 10Used by:Timeline
Symbol 1260 MovieClip {JukeBox}Used by:Timeline
Symbol 1261 GraphicUsed by:1262
Symbol 1262 MovieClipUses:1261Used by:1268 1408
Symbol 1263 BitmapUsed by:1264
Symbol 1264 GraphicUses:1263Used by:1268
Symbol 1265 GraphicUsed by:1266
Symbol 1266 MovieClipUses:1265Used by:1268
Symbol 1267 ButtonUses:57Used by:1268 1275 1408
Symbol 1268 MovieClip {coldjustice_fla.SplashGamesNitro_173}Uses:477 1262 1264 1266 58 1267Used by:Timeline
Symbol 1269 BitmapUsed by:1271
Symbol 1270 BitmapUsed by:1271 1403
Symbol 1271 GraphicUses:1269 1270Used by:1275
Symbol 1272 BitmapUsed by:1273
Symbol 1273 GraphicUses:1272Used by:1274 1405
Symbol 1274 MovieClipUses:1273Used by:1275 1405
Symbol 1275 MovieClip {coldjustice_fla.SplashQiGames_177}Uses:477 1271 1274 58 1267Used by:Timeline
Symbol 1276 MovieClip {GameInstance}Used by:1399
Symbol 1277 GraphicUsed by:1398
Symbol 1278 EditableTextUses:2Used by:1280
Symbol 1279 EditableTextUses:2Used by:1280
Symbol 1280 MovieClip {coldjustice_fla.uiPoints_183}Uses:1278 1279Used by:1398
Symbol 1281 BitmapUsed by:1282
Symbol 1282 GraphicUses:1281Used by:1283 1288
Symbol 1283 MovieClipUses:1282Used by:1288
Symbol 1284 GraphicUsed by:1288
Symbol 1285 BitmapUsed by:1286
Symbol 1286 GraphicUses:1285Used by:1287
Symbol 1287 MovieClipUses:1286Used by:1288
Symbol 1288 ButtonUses:1283 1284 1287 1282Used by:1398
Symbol 1289 BitmapUsed by:1290
Symbol 1290 GraphicUses:1289Used by:1291 1296
Symbol 1291 MovieClipUses:1290Used by:1296
Symbol 1292 GraphicUsed by:1296
Symbol 1293 BitmapUsed by:1294
Symbol 1294 GraphicUses:1293Used by:1295
Symbol 1295 MovieClipUses:1294Used by:1296
Symbol 1296 ButtonUses:1291 1292 1295 1290Used by:1398
Symbol 1297 EditableTextUses:2Used by:1298 1299
Symbol 1298 MovieClip {coldjustice_fla.text_191}Uses:1297Used by:1299
Symbol 1299 ButtonUses:1298 57 1297Used by:1398
Symbol 1300 EditableTextUses:2Used by:1301
Symbol 1301 MovieClip {coldjustice_fla.text_193}Uses:1300Used by:1302
Symbol 1302 MovieClip {coldjustice_fla.bulletsUi_192}Uses:1301Used by:1398
Symbol 1303 EditableTextUses:2Used by:1305
Symbol 1304 EditableTextUses:2Used by:1305
Symbol 1305 MovieClip {coldjustice_fla.currentLevel_194}Uses:1303 1304Used by:1398
Symbol 1306 EditableTextUses:2Used by:1307
Symbol 1307 MovieClip {coldjustice_fla.messageText_197}Uses:1306Used by:1308
Symbol 1308 MovieClip {uiMessageBox}Uses:1307Used by:1309
Symbol 1309 MovieClip {uiPointsManager}Uses:1308Used by:1398
Symbol 1310 BitmapUsed by:1311
Symbol 1311 GraphicUses:47 44 50 1310Used by:1312
Symbol 1312 MovieClipUses:1311Used by:1324 1342 1359 1392
Symbol 1313 BitmapUsed by:1315
Symbol 1314 BitmapUsed by:1315
Symbol 1315 GraphicUses:1313 1314Used by:1324
Symbol 1316 EditableTextUses:2Used by:1317 1318
Symbol 1317 MovieClip {coldjustice_fla.text_202}Uses:1316Used by:1318
Symbol 1318 ButtonUses:1317 57 1316Used by:1324
Symbol 1319 EditableTextUses:1Used by:1324
Symbol 1320 EditableTextUses:1Used by:1324
Symbol 1321 EditableTextUses:1Used by:1324
Symbol 1322 EditableTextUses:1Used by:1324
Symbol 1323 EditableTextUses:1Used by:1324
Symbol 1324 MovieClip {coldjustice_fla.howtoplay_199}Uses:1312 1315 698 1318 1319 1320 1321 1322 1323Used by:1325
Symbol 1325 MovieClip {coldjustice_fla.uiHowToPlay_198}Uses:58 1324Used by:1398 1527
Symbol 1326 EditableTextUses:2Used by:1327 1328
Symbol 1327 MovieClip {coldjustice_fla.text_206}Uses:1326Used by:1328
Symbol 1328 ButtonUses:1327 57 1326Used by:1342
Symbol 1329 EditableTextUses:2Used by:1330 1331
Symbol 1330 MovieClip {coldjustice_fla.text_208}Uses:1329Used by:1331
Symbol 1331 ButtonUses:1330 57 1329Used by:1342
Symbol 1332 EditableTextUses:2Used by:1333 1334
Symbol 1333 MovieClip {coldjustice_fla.text_210}Uses:1332Used by:1334
Symbol 1334 ButtonUses:1333 57 1332Used by:1342 1359 1392
Symbol 1335 BitmapUsed by:1336
Symbol 1336 GraphicUses:1335Used by:1339
Symbol 1337 EditableTextUses:2Used by:1339
Symbol 1338 EditableTextUses:2Used by:1339
Symbol 1339 MovieClip {coldjustice_fla.soundcontrol_211}Uses:1336 40 1337 1338Used by:1342 1409
Symbol 1340 BitmapUsed by:1341
Symbol 1341 GraphicUses:1340Used by:1342
Symbol 1342 MovieClip {coldjustice_fla.pauseMenu_204}Uses:1312 1328 1331 1334 1339 1341Used by:1343
Symbol 1343 MovieClip {coldjustice_fla.uiPauseMenu_203}Uses:58 1342Used by:1398
Symbol 1344 BitmapUsed by:1345
Symbol 1345 GraphicUses:1344Used by:1359
Symbol 1346 EditableTextUses:2Used by:1347 1348
Symbol 1347 MovieClip {coldjustice_fla.text_228}Uses:1346Used by:1348
Symbol 1348 ButtonUses:1347 57 1346Used by:1354 1525
Symbol 1349 EditableTextUses:1Used by:1350
Symbol 1350 MovieClip {coldjustice_fla.message_229}Uses:1349Used by:1354
Symbol 1351 EditableTextUses:1Used by:1354
Symbol 1352 EditableTextUses:1Used by:1354
Symbol 1353 EditableTextUses:1Used by:1354
Symbol 1354 MovieClip {coldjustice_fla.uiSubmitScore_226}Uses:1348 1350 1351 1352 1353Used by:1359 1392 1525
Symbol 1355 GraphicUsed by:1359
Symbol 1356 EditableTextUses:2Used by:1357 1358
Symbol 1357 MovieClip {coldjustice_fla.text_231}Uses:1356Used by:1358
Symbol 1358 ButtonUses:1357 57 1356Used by:1359
Symbol 1359 MovieClip {coldjustice_fla.MissionFailed_225}Uses:1312 1345 1354 1355 1358 1334Used by:1360
Symbol 1360 MovieClip {coldjustice_fla.uiMissionFailed_224}Uses:58 1359Used by:1398
Symbol 1361 BitmapUsed by:1362
Symbol 1362 GraphicUses:1361Used by:1392
Symbol 1363 GraphicUsed by:1392
Symbol 1364 EditableTextUses:2Used by:1365 1366
Symbol 1365 MovieClip {coldjustice_fla.text_235}Uses:1364Used by:1366
Symbol 1366 ButtonUses:1365 57 1364Used by:1392
Symbol 1367 EditableTextUses:2Used by:1369 1370
Symbol 1368 EditableTextUses:2Used by:1369 1370
Symbol 1369 MovieClip {coldjustice_fla.text_237}Uses:1367 1368Used by:1370
Symbol 1370 ButtonUses:1369 57 1367 1368Used by:1392
Symbol 1371 EditableTextUses:1Used by:1392
Symbol 1372 EditableTextUses:1Used by:1392
Symbol 1373 EditableTextUses:1Used by:1392
Symbol 1374 EditableTextUses:1Used by:1392
Symbol 1375 EditableTextUses:1Used by:1392
Symbol 1376 EditableTextUses:1Used by:1392
Symbol 1377 EditableTextUses:1Used by:1392
Symbol 1378 EditableTextUses:1Used by:1392
Symbol 1379 EditableTextUses:1Used by:1392
Symbol 1380 EditableTextUses:1Used by:1392
Symbol 1381 EditableTextUses:1Used by:1392
Symbol 1382 EditableTextUses:1Used by:1392
Symbol 1383 EditableTextUses:1Used by:1392
Symbol 1384 EditableTextUses:1Used by:1392
Symbol 1385 EditableTextUses:1Used by:1392
Symbol 1386 GraphicUsed by:1391 1512
Symbol 1387 BitmapUsed by:1388
Symbol 1388 GraphicUses:1387Used by:1389
Symbol 1389 MovieClipUses:1388Used by:1391
Symbol 1390 EditableTextUses:1Used by:1391
Symbol 1391 MovieClip {coldjustice_fla.stars_238}Uses:1386 1389 1390Used by:1392 1501
Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233}Uses:1312 1362 1363 1366 1334 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1391 1354Used by:1393
Symbol 1393 MovieClip {coldjustice_fla.uiMissionCompleted_232}Uses:58 1392Used by:1398
Symbol 1394 BitmapUsed by:1395
Symbol 1395 GraphicUses:1394Used by:1396
Symbol 1396 MovieClip {coldjustice_fla.vizormc_241}Uses:1395Used by:1397
Symbol 1397 MovieClip {coldjustice_fla.cursor_240}Uses:1396Used by:1398
Symbol 1398 MovieClip {GameInterface}Uses:1277 1280 1288 1296 1299 1302 1305 1309 1325 1343 1360 1393 1397 58Used by:1399
Symbol 1399 MovieClip {coldjustice_fla.gamecontainer_180}Uses:1276 1398Used by:1527
Symbol 1400 GraphicUses:76Used by:1409
Symbol 1401 GraphicUses:75Used by:1409
Symbol 1402 GraphicUses:74Used by:1409
Symbol 1403 GraphicUses:1270Used by:1404 1405
Symbol 1404 MovieClipUses:1403Used by:1405
Symbol 1405 ButtonUses:1404 1274 1403 1273Used by:1406
Symbol 1406 MovieClip {coldjustice_fla.qigamesmenumc_243}Uses:1405Used by:1409
Symbol 1407 TextUses:59Used by:1408
Symbol 1408 MovieClip {coldjustice_fla.BrandingMenu_246}Uses:1262 1407 1267Used by:1409 1525
Symbol 1409 MovieClipUses:1400 58 1401 1339 1402 1406 1408Used by:1527
Symbol 1410 BitmapUsed by:1411
Symbol 1411 GraphicUses:1410Used by:1412 1413
Symbol 1412 MovieClipUses:1411Used by:1413
Symbol 1413 ButtonUses:1412 1411Used by:1426
Symbol 1414 BitmapUsed by:1415
Symbol 1415 GraphicUses:1414Used by:1416 1417
Symbol 1416 MovieClipUses:1415Used by:1417
Symbol 1417 ButtonUses:1416 1415Used by:1426
Symbol 1418 BitmapUsed by:1419
Symbol 1419 GraphicUses:1418Used by:1420 1421
Symbol 1420 MovieClipUses:1419Used by:1421
Symbol 1421 ButtonUses:1420 1419Used by:1426
Symbol 1422 BitmapUsed by:1423
Symbol 1423 GraphicUses:1422Used by:1424 1425
Symbol 1424 MovieClipUses:1423Used by:1425
Symbol 1425 ButtonUses:1424 1423Used by:1426
Symbol 1426 MovieClip {coldjustice_fla.menu_247}Uses:1413 1417 1421 1425Used by:1527
Symbol 1427 GraphicUses:76Used by:1525
Symbol 1428 BitmapUsed by:1429
Symbol 1429 GraphicUses:1428Used by:1501
Symbol 1430 EditableTextUses:1Used by:1501
Symbol 1431 EditableTextUses:1Used by:1501
Symbol 1432 EditableTextUses:1Used by:1501
Symbol 1433 EditableTextUses:1Used by:1501
Symbol 1434 EditableTextUses:1Used by:1501
Symbol 1435 EditableTextUses:1Used by:1501
Symbol 1436 EditableTextUses:1Used by:1501
Symbol 1437 EditableTextUses:1Used by:1501
Symbol 1438 EditableTextUses:1Used by:1501
Symbol 1439 EditableTextUses:1Used by:1501
Symbol 1440 BitmapUsed by:1441
Symbol 1441 GraphicUses:1440Used by:1500
Symbol 1442 BitmapUsed by:1443
Symbol 1443 GraphicUses:1442Used by:1500
Symbol 1444 BitmapUsed by:1445
Symbol 1445 GraphicUses:1444Used by:1500
Symbol 1446 BitmapUsed by:1447
Symbol 1447 GraphicUses:1446Used by:1500
Symbol 1448 BitmapUsed by:1449
Symbol 1449 GraphicUses:1448Used by:1500
Symbol 1450 BitmapUsed by:1451
Symbol 1451 GraphicUses:1450Used by:1500
Symbol 1452 BitmapUsed by:1453
Symbol 1453 GraphicUses:1452Used by:1500
Symbol 1454 BitmapUsed by:1455
Symbol 1455 GraphicUses:1454Used by:1500
Symbol 1456 BitmapUsed by:1457
Symbol 1457 GraphicUses:1456Used by:1500
Symbol 1458 BitmapUsed by:1459
Symbol 1459 GraphicUses:1458Used by:1500
Symbol 1460 BitmapUsed by:1461
Symbol 1461 GraphicUses:1460Used by:1500
Symbol 1462 BitmapUsed by:1463
Symbol 1463 GraphicUses:1462Used by:1500
Symbol 1464 BitmapUsed by:1465
Symbol 1465 GraphicUses:1464Used by:1500
Symbol 1466 BitmapUsed by:1467
Symbol 1467 GraphicUses:1466Used by:1500
Symbol 1468 BitmapUsed by:1469
Symbol 1469 GraphicUses:1468Used by:1500
Symbol 1470 BitmapUsed by:1471
Symbol 1471 GraphicUses:1470Used by:1500
Symbol 1472 BitmapUsed by:1473
Symbol 1473 GraphicUses:1472Used by:1500
Symbol 1474 BitmapUsed by:1475
Symbol 1475 GraphicUses:1474Used by:1500
Symbol 1476 BitmapUsed by:1477
Symbol 1477 GraphicUses:1476Used by:1500
Symbol 1478 BitmapUsed by:1479
Symbol 1479 GraphicUses:1478Used by:1500
Symbol 1480 BitmapUsed by:1481
Symbol 1481 GraphicUses:1480Used by:1500
Symbol 1482 BitmapUsed by:1483
Symbol 1483 GraphicUses:1482Used by:1500
Symbol 1484 BitmapUsed by:1485
Symbol 1485 GraphicUses:1484Used by:1500
Symbol 1486 BitmapUsed by:1487
Symbol 1487 GraphicUses:1486Used by:1500
Symbol 1488 BitmapUsed by:1489
Symbol 1489 GraphicUses:1488Used by:1500
Symbol 1490 BitmapUsed by:1491
Symbol 1491 GraphicUses:1490Used by:1500
Symbol 1492 BitmapUsed by:1493
Symbol 1493 GraphicUses:1492Used by:1500
Symbol 1494 BitmapUsed by:1495
Symbol 1495 GraphicUses:1494Used by:1500
Symbol 1496 BitmapUsed by:1497
Symbol 1497 GraphicUses:1496Used by:1500
Symbol 1498 BitmapUsed by:1499
Symbol 1499 GraphicUses:1498Used by:1500
Symbol 1500 MovieClip {coldjustice_fla.selImgs_258}Uses:1441 1443 1445 1447 1449 1451 1453 1455 1457 1459 1461 1463 1465 1467 1469 1471 1473 1475 1477 1479 1481 1483 1485 1487 1489 1491 1493 1495 1497 1499Used by:1501
Symbol 1501 MovieClip {coldjustice_fla.selectedLevel_257}Uses:58 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1391 1500Used by:1525
Symbol 1502 BitmapUsed by:1503
Symbol 1503 GraphicUses:1502Used by:1504
Symbol 1504 MovieClipUses:1503Used by:1516
Symbol 1505 EditableTextUses:2Used by:1506
Symbol 1506 MovieClip {coldjustice_fla.levelText_261}Uses:1505Used by:1516
Symbol 1507 BitmapUsed by:1508
Symbol 1508 GraphicUses:1507Used by:1509
Symbol 1509 MovieClipUses:1508Used by:1512
Symbol 1510 GraphicUsed by:1512
Symbol 1511 GraphicUsed by:1512
Symbol 1512 MovieClip {coldjustice_fla.levelMedal_262}Uses:1509 1386 1510 1511Used by:1516
Symbol 1513 BitmapUsed by:1514
Symbol 1514 GraphicUses:1513Used by:1515
Symbol 1515 ButtonUses:1514Used by:1516
Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}Uses:1504 1506 1512 1515Used by:1525
Symbol 1517 EditableTextUses:2Used by:1518 1519
Symbol 1518 MovieClip {coldjustice_fla.text_266}Uses:1517Used by:1519
Symbol 1519 ButtonUses:1518 57 1517Used by:1525
Symbol 1520 GraphicUses:50 47 44 204 201Used by:1525
Symbol 1521 EditableTextUses:1Used by:1525
Symbol 1522 EditableTextUses:2Used by:1523 1524
Symbol 1523 MovieClip {coldjustice_fla.text_268}Uses:1522Used by:1524
Symbol 1524 ButtonUses:1523 57 1522Used by:1525
Symbol 1525 MovieClip {coldjustice_fla.menu_256}Uses:1427 1501 1516 1519 1520 58 1521 1348 1408 1524 1354Used by:1527
Symbol 1526 MovieClip {coldjustice_fla.loading_269}Uses:58Used by:1527
Symbol 1527 MovieClip {coldjustice_fla.gamemenu_179}Uses:1399 58 1409 1426 1325 1525 1526Used by:Timeline

Instance Names

"mh1"Symbol 53 MovieClip {chain9} Frame 1Symbol 43 MovieClip {concreteHanging2}
"cp1"Symbol 53 MovieClip {chain9} Frame 1Symbol 46 MovieClip {chainpiece1}
"cp3"Symbol 53 MovieClip {chain9} Frame 1Symbol 46 MovieClip {chainpiece1}
"cp5"Symbol 53 MovieClip {chain9} Frame 1Symbol 46 MovieClip {chainpiece1}
"cp2"Symbol 53 MovieClip {chain9} Frame 1Symbol 49 MovieClip {chainpiece2}
"cp4"Symbol 53 MovieClip {chain9} Frame 1Symbol 49 MovieClip {chainpiece2}
"cp6"Symbol 53 MovieClip {chain9} Frame 1Symbol 49 MovieClip {chainpiece2}
"tp1"Symbol 53 MovieClip {chain9} Frame 1Symbol 52 MovieClip {tiepiece1}
"adbtn"Symbol 69 MovieClip {spAdPreRoll} Frame 1Symbol 68 Button
"label_txt"Symbol 71 MovieClip {coldjustice_fla.text_10} Frame 1Symbol 70 EditableText
"bar_mc"Symbol 83 MovieClip {loader} Frame 1Symbol 65 MovieClip {coldjustice_fla.bar_3}
"pct_txt"Symbol 83 MovieClip {loader} Frame 1Symbol 66 EditableText
"kb_txt"Symbol 83 MovieClip {loader} Frame 1Symbol 67 EditableText
"play_btn"Symbol 83 MovieClip {loader} Frame 1Symbol 72 Button
"bodyAnim_mc"Symbol 458 MovieClip Frame 1Symbol 457 MovieClip {coldjustice_fla.bodyanim_62}
"BODY"Symbol 459 MovieClip {aiPlayer} Frame 1Symbol 458 MovieClip
"mh1"Symbol 469 MovieClip {chain5} Frame 1Symbol 468 MovieClip {concreteHanging1}
"cp1"Symbol 469 MovieClip {chain5} Frame 1Symbol 46 MovieClip {chainpiece1}
"cp3"Symbol 469 MovieClip {chain5} Frame 1Symbol 46 MovieClip {chainpiece1}
"cp5"Symbol 469 MovieClip {chain5} Frame 1Symbol 46 MovieClip {chainpiece1}
"cp2"Symbol 469 MovieClip {chain5} Frame 1Symbol 49 MovieClip {chainpiece2}
"cp4"Symbol 469 MovieClip {chain5} Frame 1Symbol 49 MovieClip {chainpiece2}
"cp6"Symbol 469 MovieClip {chain5} Frame 1Symbol 49 MovieClip {chainpiece2}
"tp1"Symbol 469 MovieClip {chain5} Frame 1Symbol 52 MovieClip {tiepiece1}
"mh1"Symbol 470 MovieClip {chain1} Frame 1Symbol 468 MovieClip {concreteHanging1}
"cp1"Symbol 470 MovieClip {chain1} Frame 1Symbol 46 MovieClip {chainpiece1}
"cp3"Symbol 470 MovieClip {chain1} Frame 1Symbol 46 MovieClip {chainpiece1}
"cp2"Symbol 470 MovieClip {chain1} Frame 1Symbol 49 MovieClip {chainpiece2}
"cp4"Symbol 470 MovieClip {chain1} Frame 1Symbol 49 MovieClip {chainpiece2}
"tp1"Symbol 470 MovieClip {chain1} Frame 1Symbol 52 MovieClip {tiepiece1}
"base"Symbol 505 MovieClip {leverStructure1} Frame 1Symbol 499 MovieClip {concreteTriangle1}
"lever"Symbol 505 MovieClip {leverStructure1} Frame 1Symbol 501 MovieClip {metalLever1}
"rim2"Symbol 505 MovieClip {leverStructure1} Frame 1Symbol 504 MovieClip {metalRim1}
"rim1"Symbol 505 MovieClip {leverStructure1} Frame 1Symbol 504 MovieClip {metalRim1}
"chain_mc"Symbol 506 MovieClip {level10} Frame 2Symbol 469 MovieClip {chain5}
"explosive_mc"Symbol 506 MovieClip {level10} Frame 2Symbol 475 MovieClip {explosiveObject1}
"mh1"Symbol 516 MovieClip {chain4} Frame 1Symbol 468 MovieClip {concreteHanging1}
"cp1"Symbol 516 MovieClip {chain4} Frame 1Symbol 509 MovieClip {chainpiece3}
"cp3"Symbol 516 MovieClip {chain4} Frame 1Symbol 509 MovieClip {chainpiece3}
"cp5"Symbol 516 MovieClip {chain4} Frame 1Symbol 511 MovieClip {chainpiece5}
"cp7"Symbol 516 MovieClip {chain4} Frame 1Symbol 511 MovieClip {chainpiece5}
"cp2"Symbol 516 MovieClip {chain4} Frame 1Symbol 513 MovieClip {chainpiece4}
"cp4"Symbol 516 MovieClip {chain4} Frame 1Symbol 513 MovieClip {chainpiece4}
"cp6"Symbol 516 MovieClip {chain4} Frame 1Symbol 515 MovieClip {chainpiece6}
"cp8"Symbol 516 MovieClip {chain4} Frame 1Symbol 515 MovieClip {chainpiece6}
"tp1"Symbol 516 MovieClip {chain4} Frame 1Symbol 52 MovieClip {tiepiece1}
"tp2"Symbol 516 MovieClip {chain4} Frame 1Symbol 52 MovieClip {tiepiece1}
"mh1"Symbol 519 MovieClip {chain10} Frame 1Symbol 468 MovieClip {concreteHanging1}
"cp1"Symbol 519 MovieClip {chain10} Frame 1Symbol 46 MovieClip {chainpiece1}
"cp3"Symbol 519 MovieClip {chain10} Frame 1Symbol 46 MovieClip {chainpiece1}
"cp5"Symbol 519 MovieClip {chain10} Frame 1Symbol 46 MovieClip {chainpiece1}
"cp7"Symbol 519 MovieClip {chain10} Frame 1Symbol 46 MovieClip {chainpiece1}
"cp9"Symbol 519 MovieClip {chain10} Frame 1Symbol 46 MovieClip {chainpiece1}
"cp2"Symbol 519 MovieClip {chain10} Frame 1Symbol 49 MovieClip {chainpiece2}
"cp4"Symbol 519 MovieClip {chain10} Frame 1Symbol 49 MovieClip {chainpiece2}
"cp6"Symbol 519 MovieClip {chain10} Frame 1Symbol 49 MovieClip {chainpiece2}
"cp8"Symbol 519 MovieClip {chain10} Frame 1Symbol 49 MovieClip {chainpiece2}
"cp10"Symbol 519 MovieClip {chain10} Frame 1Symbol 49 MovieClip {chainpiece2}
"tp1"Symbol 519 MovieClip {chain10} Frame 1Symbol 52 MovieClip {tiepiece1}
"mh1"Symbol 524 MovieClip {chain8} Frame 1Symbol 43 MovieClip {concreteHanging2}
"cp1"Symbol 524 MovieClip {chain8} Frame 1Symbol 509 MovieClip {chainpiece3}
"cp3"Symbol 524 MovieClip {chain8} Frame 1Symbol 509 MovieClip {chainpiece3}
"cp5"Symbol 524 MovieClip {chain8} Frame 1Symbol 511 MovieClip {chainpiece5}
"cp7"Symbol 524 MovieClip {chain8} Frame 1Symbol 511 MovieClip {chainpiece5}
"cp2"Symbol 524 MovieClip {chain8} Frame 1Symbol 513 MovieClip {chainpiece4}
"cp4"Symbol 524 MovieClip {chain8} Frame 1Symbol 513 MovieClip {chainpiece4}
"cp6"Symbol 524 MovieClip {chain8} Frame 1Symbol 515 MovieClip {chainpiece6}
"cp8"Symbol 524 MovieClip {chain8} Frame 1Symbol 515 MovieClip {chainpiece6}
"tp1"Symbol 524 MovieClip {chain8} Frame 1Symbol 52 MovieClip {tiepiece1}
"tp2"Symbol 524 MovieClip {chain8} Frame 1Symbol 52 MovieClip {tiepiece1}
"mh1"Symbol 527 MovieClip {chain7} Frame 1Symbol 526 MovieClip {metalRectangle2}
"cp1"Symbol 527 MovieClip {chain7} Frame 1Symbol 46 MovieClip {chainpiece1}
"cp3"Symbol 527 MovieClip {chain7} Frame 1Symbol 46 MovieClip {chainpiece1}
"cp5"Symbol 527 MovieClip {chain7} Frame 1Symbol 46 MovieClip {chainpiece1}
"cp2"Symbol 527 MovieClip {chain7} Frame 1Symbol 49 MovieClip {chainpiece2}
"cp4"Symbol 527 MovieClip {chain7} Frame 1Symbol 49 MovieClip {chainpiece2}
"cp6"Symbol 527 MovieClip {chain7} Frame 1Symbol 49 MovieClip {chainpiece2}
"tp1"Symbol 527 MovieClip {chain7} Frame 1Symbol 52 MovieClip {tiepiece1}
"chain_mc"Symbol 529 MovieClip {level15} Frame 2Symbol 53 MovieClip {chain9}
"explosive_mc"Symbol 529 MovieClip {level15} Frame 2Symbol 475 MovieClip {explosiveObject1}
"mh1"Symbol 532 MovieClip {chain6} Frame 1Symbol 531 MovieClip {metalRectangle1}
"cp1"Symbol 532 MovieClip {chain6} Frame 1Symbol 46 MovieClip {chainpiece1}
"cp3"Symbol 532 MovieClip {chain6} Frame 1Symbol 46 MovieClip {chainpiece1}
"cp5"Symbol 532 MovieClip {chain6} Frame 1Symbol 46 MovieClip {chainpiece1}
"cp7"Symbol 532 MovieClip {chain6} Frame 1Symbol 46 MovieClip {chainpiece1}
"cp2"Symbol 532 MovieClip {chain6} Frame 1Symbol 49 MovieClip {chainpiece2}
"cp4"Symbol 532 MovieClip {chain6} Frame 1Symbol 49 MovieClip {chainpiece2}
"cp6"Symbol 532 MovieClip {chain6} Frame 1Symbol 49 MovieClip {chainpiece2}
"cp8"Symbol 532 MovieClip {chain6} Frame 1Symbol 49 MovieClip {chainpiece2}
"tp1"Symbol 532 MovieClip {chain6} Frame 1Symbol 52 MovieClip {tiepiece1}
"tp2"Symbol 532 MovieClip {chain6} Frame 1Symbol 52 MovieClip {tiepiece1}
"movingObject_mc"Symbol 542 MovieClip {level22} Frame 2Symbol 475 MovieClip {explosiveObject1}
"movingObject_mc"Symbol 546 MovieClip {level25} Frame 2Symbol 545 MovieClip {concreteSphere3}
"movingObject_mc"Symbol 548 MovieClip {level27} Frame 2Symbol 475 MovieClip {explosiveObject1}
"movingObject_mc"Symbol 556 MovieClip {level30} Frame 2Symbol 475 MovieClip {explosiveObject1}
"BODY"Symbol 892 MovieClip {outlaw1} Frame 1Symbol 889 MovieClip {coldjustice_fla.body_152}
"CONTACTBOX"Symbol 892 MovieClip {outlaw1} Frame 1Symbol 891 MovieClip
"BODY"Symbol 1075 MovieClip {outlaw2} Frame 1Symbol 1073 MovieClip {coldjustice_fla.body_159}
"CONTACTBOX"Symbol 1075 MovieClip {outlaw2} Frame 1Symbol 1074 MovieClip
"BODY"Symbol 1258 MovieClip {outlaw3} Frame 1Symbol 1256 MovieClip {coldjustice_fla.body_166}
"CONTACTBOX"Symbol 1258 MovieClip {outlaw3} Frame 1Symbol 1257 MovieClip
"splash_btn"Symbol 1268 MovieClip {coldjustice_fla.SplashGamesNitro_173} Frame 1Symbol 1267 Button
"splash_btn"Symbol 1275 MovieClip {coldjustice_fla.SplashQiGames_177} Frame 1Symbol 1267 Button
"label_txt"Symbol 1280 MovieClip {coldjustice_fla.uiPoints_183} Frame 1Symbol 1278 EditableText
"points_txt"Symbol 1280 MovieClip {coldjustice_fla.uiPoints_183} Frame 1Symbol 1279 EditableText
"label_txt"Symbol 1298 MovieClip {coldjustice_fla.text_191} Frame 1Symbol 1297 EditableText
"label_txt"Symbol 1301 MovieClip {coldjustice_fla.text_193} Frame 1Symbol 1300 EditableText
"label2_txt"Symbol 1305 MovieClip {coldjustice_fla.currentLevel_194} Frame 1Symbol 1303 EditableText
"label_txt"Symbol 1305 MovieClip {coldjustice_fla.currentLevel_194} Frame 1Symbol 1304 EditableText
"label_txt"Symbol 1307 MovieClip {coldjustice_fla.messageText_197} Frame 1Symbol 1306 EditableText
"messageText"Symbol 1308 MovieClip {uiMessageBox} Frame 1Symbol 1307 MovieClip {coldjustice_fla.messageText_197}
"messageBox_mc"Symbol 1309 MovieClip {uiPointsManager} Frame 1Symbol 1308 MovieClip {uiMessageBox}
"label_txt"Symbol 1317 MovieClip {coldjustice_fla.text_202} Frame 1Symbol 1316 EditableText
"ok_btn"Symbol 1324 MovieClip {coldjustice_fla.howtoplay_199} Frame 1Symbol 1318 Button
"label1_txt"Symbol 1324 MovieClip {coldjustice_fla.howtoplay_199} Frame 1Symbol 1319 EditableText
"label3_txt"Symbol 1324 MovieClip {coldjustice_fla.howtoplay_199} Frame 1Symbol 1320 EditableText
"label5_txt"Symbol 1324 MovieClip {coldjustice_fla.howtoplay_199} Frame 1Symbol 1321 EditableText
"label2_txt"Symbol 1324 MovieClip {coldjustice_fla.howtoplay_199} Frame 1Symbol 1322 EditableText
"label4_txt"Symbol 1324 MovieClip {coldjustice_fla.howtoplay_199} Frame 1Symbol 1323 EditableText
"label_txt"Symbol 1327 MovieClip {coldjustice_fla.text_206} Frame 1Symbol 1326 EditableText
"label_txt"Symbol 1330 MovieClip {coldjustice_fla.text_208} Frame 1Symbol 1329 EditableText
"label_txt"Symbol 1333 MovieClip {coldjustice_fla.text_210} Frame 1Symbol 1332 EditableText
"music_chk"Symbol 1339 MovieClip {coldjustice_fla.soundcontrol_211} Frame 1Symbol 40 MovieClip {fl.controls.CheckBox}
"label1_txt"Symbol 1339 MovieClip {coldjustice_fla.soundcontrol_211} Frame 1Symbol 1337 EditableText
"label2_txt"Symbol 1339 MovieClip {coldjustice_fla.soundcontrol_211} Frame 1Symbol 1338 EditableText
"sfx_chk"Symbol 1339 MovieClip {coldjustice_fla.soundcontrol_211} Frame 1Symbol 40 MovieClip {fl.controls.CheckBox}
"resume_btn"Symbol 1342 MovieClip {coldjustice_fla.pauseMenu_204} Frame 1Symbol 1328 Button
"help_btn"Symbol 1342 MovieClip {coldjustice_fla.pauseMenu_204} Frame 1Symbol 1331 Button
"selectLevel_btn"Symbol 1342 MovieClip {coldjustice_fla.pauseMenu_204} Frame 1Symbol 1334 Button
"label_txt"Symbol 1347 MovieClip {coldjustice_fla.text_228} Frame 1Symbol 1346 EditableText
"msg_xt"Symbol 1350 MovieClip {coldjustice_fla.message_229} Frame 1Symbol 1349 EditableText
"submit_btn"Symbol 1354 MovieClip {coldjustice_fla.uiSubmitScore_226} Frame 1Symbol 1348 Button
"message_txt"Symbol 1354 MovieClip {coldjustice_fla.uiSubmitScore_226} Frame 1Symbol 1350 MovieClip {coldjustice_fla.message_229}
"playerName_txt"Symbol 1354 MovieClip {coldjustice_fla.uiSubmitScore_226} Frame 1Symbol 1351 EditableText
"label_txt"Symbol 1354 MovieClip {coldjustice_fla.uiSubmitScore_226} Frame 1Symbol 1352 EditableText
"score_txt"Symbol 1354 MovieClip {coldjustice_fla.uiSubmitScore_226} Frame 1Symbol 1353 EditableText
"label_txt"Symbol 1357 MovieClip {coldjustice_fla.text_231} Frame 1Symbol 1356 EditableText
"restart_btn"Symbol 1359 MovieClip {coldjustice_fla.MissionFailed_225} Frame 1Symbol 1358 Button
"level_btn"Symbol 1359 MovieClip {coldjustice_fla.MissionFailed_225} Frame 1Symbol 1334 Button
"label_txt"Symbol 1365 MovieClip {coldjustice_fla.text_235} Frame 1Symbol 1364 EditableText
"label_txt"Symbol 1369 MovieClip {coldjustice_fla.text_237} Frame 1Symbol 1367 EditableText
"label1_txt"Symbol 1369 MovieClip {coldjustice_fla.text_237} Frame 1Symbol 1368 EditableText
"label_txt"Symbol 1391 MovieClip {coldjustice_fla.stars_238} Frame 1Symbol 1390 EditableText
"nextlevel_btn"Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233} Frame 1Symbol 1366 Button
"prev_btn"Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233} Frame 1Symbol 1334 Button
"trybetter_btn"Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233} Frame 1Symbol 1370 Button
"alllevels_btn"Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233} Frame 1Symbol 1334 Button
"gameFinished_txt"Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233} Frame 1Symbol 1371 EditableText
"label1_txt"Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233} Frame 1Symbol 1372 EditableText
"label2_txt"Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233} Frame 1Symbol 1373 EditableText
"label3_txt"Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233} Frame 1Symbol 1374 EditableText
"label4_txt"Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233} Frame 1Symbol 1375 EditableText
"qty1_txt"Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233} Frame 1Symbol 1376 EditableText
"qty2_txt"Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233} Frame 1Symbol 1377 EditableText
"qty3_txt"Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233} Frame 1Symbol 1378 EditableText
"qty4_txt"Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233} Frame 1Symbol 1379 EditableText
"pts1_txt"Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233} Frame 1Symbol 1380 EditableText
"pts2_txt"Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233} Frame 1Symbol 1381 EditableText
"pts3_txt"Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233} Frame 1Symbol 1382 EditableText
"pts4_txt"Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233} Frame 1Symbol 1383 EditableText
"label5_txt"Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233} Frame 1Symbol 1384 EditableText
"pts5_txt"Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233} Frame 1Symbol 1385 EditableText
"stars_mc"Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233} Frame 1Symbol 1391 MovieClip {coldjustice_fla.stars_238}
"missioncompleted_mc"Symbol 1393 MovieClip {coldjustice_fla.uiMissionCompleted_232} Frame 2Symbol 1392 MovieClip {coldjustice_fla.MissionCompleted_233}
"restart_btn"Symbol 1398 MovieClip {GameInterface} Frame 1Symbol 1288 Button
"menu_btn"Symbol 1398 MovieClip {GameInterface} Frame 1Symbol 1296 Button
"walk_btn"Symbol 1398 MovieClip {GameInterface} Frame 1Symbol 1299 Button
"help_mc"Symbol 1398 MovieClip {GameInterface} Frame 1Symbol 1325 MovieClip {coldjustice_fla.uiHowToPlay_198}
"pause_mc"Symbol 1398 MovieClip {GameInterface} Frame 1Symbol 1343 MovieClip {coldjustice_fla.uiPauseMenu_203}
"cursor_mc"Symbol 1398 MovieClip {GameInterface} Frame 1Symbol 1397 MovieClip {coldjustice_fla.cursor_240}
"dev_btn"Symbol 1406 MovieClip {coldjustice_fla.qigamesmenumc_243} Frame 1Symbol 1405 Button
"click_btn"Symbol 1408 MovieClip {coldjustice_fla.BrandingMenu_246} Frame 1Symbol 1267 Button
"play_btn"Symbol 1426 MovieClip {coldjustice_fla.menu_247} Frame 1Symbol 1413 Button
"help_btn"Symbol 1426 MovieClip {coldjustice_fla.menu_247} Frame 1Symbol 1417 Button
"more_btn"Symbol 1426 MovieClip {coldjustice_fla.menu_247} Frame 1Symbol 1421 Button
"free_btn"Symbol 1426 MovieClip {coldjustice_fla.menu_247} Frame 1Symbol 1425 Button
"label1_txt"Symbol 1501 MovieClip {coldjustice_fla.selectedLevel_257} Frame 1Symbol 1430 EditableText
"bul1_txt"Symbol 1501 MovieClip {coldjustice_fla.selectedLevel_257} Frame 1Symbol 1431 EditableText
"label2_txt"Symbol 1501 MovieClip {coldjustice_fla.selectedLevel_257} Frame 1Symbol 1432 EditableText
"label3_txt"Symbol 1501 MovieClip {coldjustice_fla.selectedLevel_257} Frame 1Symbol 1433 EditableText
"label4_txt"Symbol 1501 MovieClip {coldjustice_fla.selectedLevel_257} Frame 1Symbol 1434 EditableText
"label5_txt"Symbol 1501 MovieClip {coldjustice_fla.selectedLevel_257} Frame 1Symbol 1435 EditableText
"bul2_txt"Symbol 1501 MovieClip {coldjustice_fla.selectedLevel_257} Frame 1Symbol 1436 EditableText
"bul3_txt"Symbol 1501 MovieClip {coldjustice_fla.selectedLevel_257} Frame 1Symbol 1437 EditableText
"bul4_txt"Symbol 1501 MovieClip {coldjustice_fla.selectedLevel_257} Frame 1Symbol 1438 EditableText
"score_txt"Symbol 1501 MovieClip {coldjustice_fla.selectedLevel_257} Frame 1Symbol 1439 EditableText
"stars_mc"Symbol 1501 MovieClip {coldjustice_fla.selectedLevel_257} Frame 1Symbol 1391 MovieClip {coldjustice_fla.stars_238}
"levelImgs_mc"Symbol 1501 MovieClip {coldjustice_fla.selectedLevel_257} Frame 1Symbol 1500 MovieClip {coldjustice_fla.selImgs_258}
"label_txt"Symbol 1506 MovieClip {coldjustice_fla.levelText_261} Frame 1Symbol 1505 EditableText
"lvl_txt"Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259} Frame 1Symbol 1506 MovieClip {coldjustice_fla.levelText_261}
"medals_mc"Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259} Frame 1Symbol 1512 MovieClip {coldjustice_fla.levelMedal_262}
"zone_mc"Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259} Frame 1Symbol 1515 Button
"label_txt"Symbol 1518 MovieClip {coldjustice_fla.text_266} Frame 1Symbol 1517 EditableText
"label_txt"Symbol 1523 MovieClip {coldjustice_fla.text_268} Frame 1Symbol 1522 EditableText
"selectedCard_mc"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1501 MovieClip {coldjustice_fla.selectedLevel_257}
"lvl1_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl2_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl3_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl4_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl5_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl6_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl7_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl8_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl9_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl10_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl11_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl12_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl13_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl14_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl15_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl16_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl17_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl18_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl19_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl20_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl21_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl22_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl23_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl24_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl25_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl26_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl27_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl28_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl29_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"lvl30_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1516 MovieClip {coldjustice_fla.levelBtn_259}
"mainMenu_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1519 Button
"total_txt"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1521 EditableText
"submit_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 1Symbol 1348 Button
"cancel_btn"Symbol 1525 MovieClip {coldjustice_fla.menu_256} Frame 11Symbol 1524 Button
"gamecontainer"Symbol 1527 MovieClip {coldjustice_fla.gamemenu_179} Frame 1Symbol 1399 MovieClip {coldjustice_fla.gamecontainer_180}
"help_mc"Symbol 1527 MovieClip {coldjustice_fla.gamemenu_179} Frame 10Symbol 1325 MovieClip {coldjustice_fla.uiHowToPlay_198}

Special Tags

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

Labels

"dummy"Frame 10
"splash1"Frame 20
"splash2"Frame 30
"game"Frame 40
"hack lock"Symbol 83 MovieClip {loader} Frame 50
"intro"Symbol 1527 MovieClip {coldjustice_fla.gamemenu_179} Frame 1
"menu"Symbol 1527 MovieClip {coldjustice_fla.gamemenu_179} Frame 2
"help"Symbol 1527 MovieClip {coldjustice_fla.gamemenu_179} Frame 10
"select level"Symbol 1527 MovieClip {coldjustice_fla.gamemenu_179} Frame 30
"play"Symbol 1527 MovieClip {coldjustice_fla.gamemenu_179} Frame 60




http://swfchan.com/25/121962/info.shtml
Created: 4/3 -2019 05:13:30 Last modified: 4/3 -2019 05:13:30 Server time: 04/05 -2024 03:22:25