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

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

armorgames max-damage-4368.swf

This is the info page for
Flash #268157

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


Text
<p align="center"><font face="Verdana" size="9" color="#000000" letterSpacing="0.000000" kerning="0"><a href="http://www.irregulargames.com" target = "_blank">Design &amp; Programming</a></font></p><p align="center"><font face="Verdana" size="9" color="#000000" letterSpacing="0.000000" kerning="0"><a href="http://www.irregulargames.com" target = "_blank">Gordon Simpson</a></font></p>

Physics
Box2D

Artwork
Aaron Perez

Cannonballs shot:

Total damage caused:

Levels passed:

Average level damage:

Highest level damage:

Levels failed:

Average shot damage:

Success rate:

Playing time:

Times played:

back

Congratulations, you have finished Max Damage!

continue

Site-locked version

<p align="center"><font face="Bitstream Vera Sans Mono" size="15" color="#ffffff" letterSpacing="0.000000" kerning="0">Please play Max Damage here:</font></p><p align="center"><font face="Bitstream Vera Sans Mono" size="15" color="#ffff00" letterSpacing="0.000000" kerning="0"><a href="http://irregulargames.com/max-damage/" target = "_self">http://irregulargames.com/max-damage/</a></font></p><p align="center"></p><p align="center"></p><p align="center"><font face="Bitstream Vera Sans Mono" size="15" color="#ffffff" letterSpacing="0.000000" kerning="0">Or download the gamepack for use on your site:</font></p><p align="center"><font face="Bitstream Vera Sans Mono" size="15" color="#ffff00" letterSpacing="0.000000" kerning="0"><a href="http://irregulargames.com/games-for-your-site.php" target = "_self">http://irregulargames.com/games-for-your-site.php</a></font></p><p align="center"></p>

assets

Damage:

Best:

next level

reset (r)

main menu

Damage:

ActionScript [AS3]

Section 1
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2CircleDef extends b2ShapeDef { public var localPosition:b2Vec2; public var radius:Number; public function b2CircleDef(){ localPosition = new b2Vec2(0, 0); super(); type = b2Shape.e_circleShape; radius = 1; } } //unresolved jump var _local1 = //unresolved nextvalue or nextname; !ERROR! //unresolved jump if (_local2){ b2CircleDef = [OP_NEWCLASS ClassInfo:61 base:b2ShapeDef]; }; }//package Box2D.Collision.Shapes
Section 2
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_radius:Number; public var m_localPosition:b2Vec2; public function b2CircleShape(_arg1:b2ShapeDef){ var _local2:b2CircleDef; m_localPosition = new b2Vec2(); super(_arg1); _local2 = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; _local3 = _arg1.R; _local4 = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local6 = _arg1.R; _local7 = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); _local8 = (_arg1.position.x + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); _local9 = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); _local11 = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; _local12 = (_arg4.p2.x - _arg4.p1.x); _local13 = (_arg4.p2.y - _arg4.p1.y); _local14 = ((_local9 * _local12) + (_local10 * _local13)); _local15 = ((_local12 * _local12) + (_local13 * _local13)); _local16 = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; _local17 = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = _arg2.R; _local5 = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local6 = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; _local7 = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local8 = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } public function GetRadius():Number{ return (m_radius); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number; var _local3:Number; _local2 = (m_localPosition.x - _arg1.x); _local3 = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; _local3 = _arg2.R; _local4 = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } } var _local1:Boolean; //unresolved jump var _local2 = (((false ^ !NULL!) is undefined) > !NULL!); //unresolved jump if (!_local2){ b2CircleShape = [OP_NEWCLASS ClassInfo:59 base:b2Shape]; }; }//package Box2D.Collision.Shapes
Section 3
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { public class b2FilterData { public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public var categoryBits:uint;// = 1 public function b2FilterData(){ categoryBits = 1; maskBits = 0xFFFF; groupIndex = 0; super(); } public function Copy():b2FilterData{ var _local1:b2FilterData; _local1 = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } var _local1:Boolean; //unresolved jump var _local2 = ( % ); //unresolved jump if ((((((((!NULL! * !NULL!) ^ _local1) / !NULL!) === !NULL!) >> !NULL!)) || (this))){ b2FilterData = [OP_NEWCLASS ClassInfo:26 base:Object]; }; }//package Box2D.Collision.Shapes
Section 4
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ mass = 0; center = new b2Vec2(0, 0); I = 0; super(); } } var _local1:Boolean; //unresolved jump var _temp1 = _local2; var _local2 = ((false & null) % !NULL!); //unresolved jump if ((((((-(_temp1) << !NULL!) + 1) < _local3)) || (_local2))){ b2MassData = [OP_NEWCLASS ClassInfo:20 base:Object]; }; }//package Box2D.Collision.Shapes
Section 5
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertexCount:int; public var vertices:Array; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ var _local1:int; vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; _local1 = 0; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); if (_arg3){ _local5 = _arg3; _local6 = s_mat; _local6.Set(_arg4); _local7 = 0; while (_local7 < vertexCount) { _arg3 = vertices[_local7]; _arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y))); _arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y))); _arg3.x = _arg1; _local7++; }; }; } public function SetAsBox(_arg1:Number, _arg2:Number):void{ vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); } } var _local1:Boolean; //unresolved jump ((false - !NULL!) - 1); !NULL!; !ERROR! //unresolved jump if (((_local2 + _local2) * !NULL!)){ !NULL!; }; if (!!NULL!){ b2PolygonDef = [OP_NEWCLASS ClassInfo:60 base:b2ShapeDef]; }; }//package Box2D.Collision.Shapes
Section 6
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { public var m_vertices:Array; public var m_normals:Array; private var s_supportVec:b2Vec2; public var m_obb:b2OBB; public var m_coreVertices:Array; public var m_centroid:b2Vec2; public var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local2:b2PolygonDef; var _local3:int; var _local4:int; var _local5:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; _local2 = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; _local4 = _local3; _local5 = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; var _local10:Number; _local4 = _arg1.R; _local5 = (_arg2.x - _arg1.position.x); _local6 = (_arg2.y - _arg1.position.y); _local7 = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); _local8 = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); _local9 = 0; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } public function GetCoreVertices():Array{ return (m_coreVertices); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:Number; var _local21:Number; _local6 = 0; _local7 = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; _local12 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local13 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; _local14 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local15 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local16 = (_local14 - _local12); _local17 = (_local15 - _local13); _local18 = -1; _local19 = 0; while (_local19 < m_vertexCount) { _local11 = m_vertices[_local19]; _local8 = (_local11.x - _local12); _local9 = (_local11.y - _local13); _local11 = m_normals[_local19]; _local20 = ((_local11.x * _local8) + (_local11.y * _local9)); _local21 = ((_local11.x * _local16) + (_local11.y * _local17)); if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){ _local6 = (_local20 / _local21); _local18 = _local19; } else { if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){ _local7 = (_local20 / _local21); }; }; if (_local7 < _local6){ return (false); }; _local19++; }; if (_local18 >= 0){ _arg2[0] = _local6; _local10 = _arg1.R; _local11 = m_normals[_local18]; _arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); return (true); }; return (false); } public function GetCentroid():b2Vec2{ return (m_centroid); } override public function ComputeMass(_arg1:b2MassData):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _local2 = 0; _local3 = 0; _local4 = 0; _local5 = 0; _local6 = 0; _local7 = 0; _local8 = (1 / 3); _local9 = 0; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0]; _local12 = (_local10.x - _local6); _local13 = (_local10.y - _local7); _local14 = (_local11.x - _local6); _local15 = (_local11.y - _local7); _local16 = ((_local12 * _local15) - (_local13 * _local14)); _local17 = (0.5 * _local16); _local4 = (_local4 + _local17); _local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x))); _local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y))); _local18 = _local6; _local19 = _local7; _local20 = _local12; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18)); _local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local5 = (_local5 + (_local16 * (_local24 + _local25))); _local9++; }; _arg1.mass = (m_density * _local4); _local2 = (_local2 * (1 / _local4)); _local3 = (_local3 * (1 / _local4)); _arg1.center.Set(_local2, _local3); _arg1.I = (m_density * _local5); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local6:Number; var _local7:Number; var _local8:int; var _local9:Number; var _local10:int; var _local11:Number; _local5 = _arg1.R; _local6 = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); _local7 = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); _local8 = 0; _local4 = m_coreVertices[0]; _local9 = ((_local4.x * _local6) + (_local4.y * _local7)); _local10 = 1; while (_local10 < m_vertexCount) { _local4 = m_coreVertices[_local10]; _local11 = ((_local4.x * _local6) + (_local4.y * _local7)); if (_local11 > _local9){ _local8 = _local10; _local9 = _local11; }; _local10++; }; _local5 = _arg1.R; _local4 = m_coreVertices[_local8]; s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y))); s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB; var _local5:b2AABB; _local4 = s_sweptAABB1; _local5 = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y); _arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y); } public function GetVertices():Array{ return (m_vertices); } public function GetNormals():Array{ return (m_normals); } public function GetOBB():b2OBB{ return (m_obb); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_coreVertices[0])); } public function Centroid(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_centroid)); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local3:int; var _local4:Number; var _local5:Number; m_sweepRadius = 0; _local3 = 0; while (_local3 < m_vertexCount) { _local2 = m_coreVertices[_local3]; _local4 = (_local2.x - _arg1.x); _local5 = (_local2.y - _arg1.y); _local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local4 > m_sweepRadius){ m_sweepRadius = _local4; }; _local3++; }; } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22; var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local5 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); _local6 = _local5; _local4 = m_obb.extents; _local7 = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); _local8 = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; _local9 = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); _local10 = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:int; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); _local4 = 0; _local5 = 0; _local6 = 0; _local7 = (1 / 3); _local8 = 0; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local5:Array; var _local6:Number; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; _local5 = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; _local6 = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } var _local1:Boolean; //unresolved jump var _local2 = ??getglobalscope ; //unresolved jump if (_local1){ b2PolygonShape = [OP_NEWCLASS ClassInfo:58 base:b2Shape]; }; }//package Box2D.Collision.Shapes
Section 7
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.*; public class b2Shape { public var m_type:int; public var m_sweepRadius:Number; public var m_density:Number; public var m_filter:b2FilterData; public var m_friction:Number; public var m_next:b2Shape; public var m_restitution:Number; public var m_userData; public var m_isSensor:Boolean; public var m_proxyId:uint; public var m_body:b2Body; public static const e_polygonShape:int = 1; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_shapeTypeCount:int = 2; private static var s_resetAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_proxyAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxyId = b2Pair.b2_nullProxy; m_filter = _arg1.filter.Copy(); m_isSensor = _arg1.isSensor; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetNext():b2Shape{ return (m_next); } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function GetType():int{ return (m_type); } public function GetRestitution():Number{ return (m_restitution); } public function GetFriction():Number{ return (m_friction); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB; var _local4:Boolean; if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); _local3 = s_resetAABB; ComputeAABB(_local3, _arg2); _local4 = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ var _local4:b2AABB; if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; _local4 = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function ComputeMass(_arg1:b2MassData):void{ } public function IsSensor():Boolean{ return (m_isSensor); } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function GetBody():b2Body{ return (m_body); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB; var _local4:Boolean; _local3 = s_proxyAABB; ComputeAABB(_local3, _arg2); _local4 = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public static function Destroy(_arg1:b2Shape, _arg2):void{ } public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } } var _local1:Boolean; //unresolved jump var _local3 = _local2; !ERROR! _local2 = (!NULL! + !NULL!); //unresolved jump _local2 = (~((_local1 | !NULL!)) + 1); if ((((!NULL! <= !NULL!)) || (_local2))){ b2Shape = [OP_NEWCLASS ClassInfo:4 base:Object]; }; }//package Box2D.Collision.Shapes
Section 8
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var isSensor:Boolean;// = false public var density:Number;// = 0 public var type:int;// = -1 public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var friction:Number;// = 0.2 public function b2ShapeDef(){ type = b2Shape.e_unknownShape; userData = null; friction = 0.2; restitution = 0; density = 0; isSensor = false; filter = new b2FilterData(); super(); } } //unresolved jump var _local1 = ((//unresolved nextvalue or nextname > !NULL!) + 1); !ERROR! //unresolved jump if (((_local2) || (_local2))){ b2ShapeDef = [OP_NEWCLASS ClassInfo:7 base:Object]; }; }//package Box2D.Collision.Shapes
Section 9
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var upperBound:b2Vec2; public var lowerBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number; var _local2:Number; var _local3:Boolean; _local1 = (upperBound.x - lowerBound.x); _local2 = (upperBound.y - lowerBound.y); _local3 = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } var _local1:Boolean; //unresolved jump var _local2 = ((false - !NULL!) > !NULL!); _local2 = (false >>> !NULL!); if (!_local2){ b2AABB = [OP_NEWCLASS ClassInfo:5 base:Object]; }; }//package Box2D.Collision
Section 10
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var proxyId:uint; public var stabbingCount:uint; public var value:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint; var _local3:uint; var _local4:uint; _local2 = value; _local3 = proxyId; _local4 = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } //unresolved jump _local0 = false; var _local1 = -(-((true <= NaN))); !ERROR! //unresolved jump if (((_local2) || (_local0))){ b2Bound = [OP_NEWCLASS ClassInfo:42 base:Object]; }; }//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(); } } //unresolved jump var _local1:Object = ((true > false) / (undefined / arguments)); !ERROR! //unresolved jump if (((_local2) || (this))){ b2BoundValues = [OP_NEWCLASS ClassInfo:39 base:Object]; }; }//package Box2D.Collision
Section 12
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; public var m_bounds:Array; public var m_freeProxy:uint; public var m_proxyCount:int; public var m_proxyPool:Array; public var m_queryResultCount:int; public var m_pairManager:b2PairManager; public var m_timeStamp:uint; public var m_queryResults:Array; public static const b2_nullEdge:uint = b2Settings.USHRT_MAX; public static const b2_invalid:uint = b2Settings.USHRT_MAX; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local4:Number; var _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; _local4 = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); _local3 = 0; while (_local3 < (b2Settings.b2_maxProxies - 1)) { _local6 = new b2Proxy(); m_proxyPool[_local3] = _local6; _local6.SetNext((_local3 + 1)); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; _local3++; }; _local6 = new b2Proxy(); m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local4:Array; var _local5:Array; var _local6:uint; var _local7:uint; var _local8:Array; var _local9:Array; var _local10:int; var _local11:int; var _local12:b2Proxy; _local4 = new Array(); _local5 = new Array(); ComputeBounds(_local4, _local5, _arg1); _local8 = [_local6]; _local9 = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); _local10 = 0; _local11 = 0; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Commit():void{ m_pairManager.Commit(); } public function GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy; _local2 = m_proxyPool[_arg1]; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){ return (null); }; return (_local2); } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { (m_proxyPool[_local1] as b2Proxy).timeStamp = 0; _local1++; }; m_timeStamp = 1; } else { m_timeStamp++; }; } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local11:uint; var _local12:int; var _local13:int; var _local14:b2Proxy; _local8 = BinarySearch(_arg5, _arg6, _arg3); _local9 = BinarySearch(_arg5, _arg6, _arg4); _local11 = _local8; while (_local11 < _local9) { _local10 = _arg5[_local11]; if (_local10.IsLower()){ IncrementOverlapCount(_local10.proxyId); }; _local11++; }; if (_local8 > 0){ _local12 = (_local8 - 1); _local10 = _arg5[_local12]; _local13 = _local10.stabbingCount; while (_local13) { _local10 = _arg5[_local12]; if (_local10.IsLower()){ _local14 = m_proxyPool[_local10.proxyId]; if (_local8 <= _local14.upperBounds[_arg7]){ IncrementOverlapCount(_local10.proxyId); _local13--; }; }; _local12--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local4 = _arg3.lowerBound.x; _local5 = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); _local6 = _arg3.upperBound.x; _local7 = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local5:uint; var _local6:uint; var _local7:Array; var _local8:Array; var _local9:int; var _local10:int; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:b2Bound; var _local22:int; var _local23:b2Proxy; _local5 = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; _local6 = (2 * m_proxyCount); _local7 = new Array(); _local8 = new Array(); ComputeBounds(_local7, _local8, _arg1); _local9 = 0; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local13 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local16 = new Array(); _local18 = (_local13 - _local12); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local12 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local19 = _local11[_local12]; _local20 = _local11[_local13]; _local19.value = _local7[_local9]; _local19.proxyId = _local5; _local20.value = _local8[_local9]; _local20.proxyId = _local5; _local21 = _local11[int((_local12 - 1))]; _local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount; _local21 = _local11[int((_local13 - 1))]; _local20.stabbingCount = _local21.stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local21 = _local11[_local3]; _local21.stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local19 = _local11[_local3]; _local23 = m_proxyPool[_local19.proxyId]; if (_local19.IsLower()){ _local23.lowerBounds[_local9] = _local3; } else { _local23.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; _local10 = 0; while (_local10 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]); _local10++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local5); } public function DestroyProxy(_arg1:uint):void{ var _local2:b2Bound; var _local3:b2Bound; var _local4:b2Proxy; var _local5:int; var _local6:int; var _local7:int; var _local8:Array; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:int; var _local15:int; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; _local4 = m_proxyPool[_arg1]; _local5 = (2 * m_proxyCount); _local6 = 0; while (_local6 < 2) { _local8 = m_bounds[_local6]; _local9 = _local4.lowerBounds[_local6]; _local10 = _local4.upperBounds[_local6]; _local2 = _local8[_local9]; _local11 = _local2.value; _local3 = _local8[_local10]; _local12 = _local3.value; _local13 = new Array(); _local15 = ((_local10 - _local9) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local9 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = _local9; _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local13 = new Array(); _local15 = ((_local5 - _local10) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local10 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = (_local10 - 1); _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = (_local5 - 2); _local17 = _local9; while (_local17 < _local15) { _local2 = _local8[_local17]; _local19 = m_proxyPool[_local2.proxyId]; if (_local2.IsLower()){ _local19.lowerBounds[_local6] = _local17; } else { _local19.upperBounds[_local6] = _local17; }; _local17++; }; _local15 = (_local10 - 1); _local18 = _local9; while (_local18 < _local15) { _local2 = _local8[_local18]; _local2.stabbingCount--; _local18++; }; Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6); _local6++; }; _local7 = 0; while (_local7 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]); _local7++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local4.userData = null; _local4.overlapCount = b2_invalid; _local4.lowerBounds[0] = b2_invalid; _local4.lowerBounds[1] = b2_invalid; _local4.upperBounds[0] = b2_invalid; _local4.upperBounds[1] = b2_invalid; _local4.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; var _local5:b2Bound; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg2.upperBounds[_local3]]; if (_arg1.lowerValues[_local3] > _local5.value){ return (false); }; _local5 = _local4[_arg2.lowerBounds[_local3]]; if (_arg1.upperValues[_local3] < _local5.value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local5:int; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; _local5 = 0; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy; _local2 = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } public function InRange(_arg1:b2AABB):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = _arg1.lowerBound.x; _local3 = _arg1.lowerBound.y; _local2 = (_local2 - m_worldAABB.upperBound.x); _local3 = (_local3 - m_worldAABB.upperBound.y); _local4 = m_worldAABB.lowerBound.x; _local5 = m_worldAABB.lowerBound.y; _local4 = (_local4 - _arg1.upperBound.x); _local5 = (_local5 - _arg1.upperBound.y); _local2 = b2Math.b2Max(_local2, _local4); _local3 = b2Math.b2Max(_local3, _local5); return ((b2Math.b2Max(_local2, _local3) < 0)); } public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{ var _local3:Array; var _local4:int; var _local5:uint; var _local6:uint; var _local7:b2Bound; var _local8:b2Bound; var _local9:b2Bound; var _local10:uint; var _local11:b2Proxy; var _local12:uint; var _local13:b2Proxy; var _local14:b2BoundValues; var _local15:b2BoundValues; var _local16:Array; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:uint; var _local21:int; var _local22:int; var _local23:uint; var _local24:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; _local12 = (2 * m_proxyCount); _local13 = m_proxyPool[_arg1]; _local14 = new b2BoundValues(); ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2); _local15 = new b2BoundValues(); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5][_local13.lowerBounds[_local5]]; _local15.lowerValues[_local5] = _local7.value; _local7 = m_bounds[_local5][_local13.upperBounds[_local5]]; _local15.upperValues[_local5] = _local7.value; _local5++; }; _local5 = 0; while (_local5 < 2) { _local16 = m_bounds[_local5]; _local17 = _local13.lowerBounds[_local5]; _local18 = _local13.upperBounds[_local5]; _local19 = _local14.lowerValues[_local5]; _local20 = _local14.upperValues[_local5]; _local7 = _local16[_local17]; _local21 = (_local19 - _local7.value); _local7.value = _local19; _local7 = _local16[_local18]; _local22 = (_local20 - _local7.value); _local7.value = _local20; if (_local21 < 0){ _local6 = _local17; while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local8.proxyId]; _local8.stabbingCount++; if (_local8.IsUpper() == true){ if (TestOverlap(_local14, _local24)){ m_pairManager.AddBufferedPair(_arg1, _local23); }; _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; if (_local22 > 0){ _local6 = _local18; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount++; if (_local9.IsLower() == true){ if (TestOverlap(_local14, _local11)){ m_pairManager.AddBufferedPair(_arg1, _local10); }; _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local21 > 0){ _local6 = _local17; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount--; if (_local9.IsUpper()){ if (TestOverlap(_local15, _local11)){ m_pairManager.RemoveBufferedPair(_arg1, _local10); }; _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local22 < 0){ _local6 = _local18; while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local23]; _local8.stabbingCount--; if (_local8.IsLower() == true){ if (TestOverlap(_local15, _local24)){ m_pairManager.RemoveBufferedPair(_arg1, _local23); }; _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; _local5++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local4:int; var _local5:int; var _local6:int; var _local7:b2Bound; _local4 = 0; _local5 = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); _local7 = _arg1[_local6]; if (_local7.value > _arg3){ _local5 = (_local6 - 1); } else { if (_local7.value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } //unresolved jump var _local3 = (false - 1); (true + 1); (!NULL! >= !NULL!); !ERROR! !ERROR! //unresolved jump ??hasnext ; if (!((_local1) && (_local2))){ b2BroadPhase = [OP_NEWCLASS ClassInfo:13 base:Object]; }; }//package Box2D.Collision
Section 13
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } var _local1:Boolean; //unresolved jump _local1 = (((false < !NULL!) + !NULL!) & !NULL!); var _local2:Boolean; if (_local1){ b2BufferedPair = [OP_NEWCLASS ClassInfo:51 base:Object]; }; }//package Box2D.Collision
Section 14
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:int; var _local7:Array; var _local8:Array; var _local9:int; var _local10:Array; var _local11:b2Mat22; var _local12:b2Vec2; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:int; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _local6 = _arg1.m_vertexCount; _local7 = _arg1.m_vertices; _local8 = _arg1.m_normals; _local9 = _arg4.m_vertexCount; _local10 = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; _local13 = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); _local14 = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; _local15 = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); _local16 = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); _local17 = 0; _local18 = Number.MAX_VALUE; _local19 = 0; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; _local20 = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); _local21 = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; _local22 = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); _local23 = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); _local24 = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local3 = _arg2.lowerBound; _local4 = _arg1.upperBound; _local5 = (_local3.x - _local4.x); _local6 = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; _local7 = (_local3.x - _local4.x); _local8 = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local7:int; var _local8:Array; var _local9:int; var _local10:Array; var _local11:Array; var _local12:b2Mat22; var _local13:b2Vec2; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:int; var _local20:ClipVertex; var _local21:int; var _local22:int; var _local23:Number; _local7 = _arg2.m_vertexCount; _local8 = _arg2.m_normals; _local9 = _arg5.m_vertexCount; _local10 = _arg5.m_vertices; _local11 = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; _local14 = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); _local15 = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; _local16 = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; _local17 = 0; _local18 = Number.MAX_VALUE; _local19 = 0; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; _local21 = _local17; _local22 = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local7:int; var _local8:Array; var _local9:Number; var _local10:int; var _local11:Array; var _local12:Number; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local15:b2XForm; var _local16:b2XForm; var _local17:int; var _local18:uint; var _local19:Number; var _local20:Number; var _local21:Array; var _local22:int; var _local23:Array; var _local24:b2Vec2; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:b2Vec2; var _local28:b2Vec2; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Array; var _local33:Array; var _local34:int; var _local35:int; var _local36:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; _local7 = 0; _local8 = [_local7]; _local9 = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; _local10 = 0; _local11 = [_local10]; _local12 = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; _local15 = new b2XForm(); _local16 = new b2XForm(); _local19 = 0.98; _local20 = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; _local21 = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); _local22 = _local13.m_vertexCount; _local23 = _local13.m_vertices; _local24 = _local23[_local17]; _local25 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; _local26 = b2Math.SubtractVV(_local37, _local25); _local27 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); _local28 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); _local29 = b2Math.b2Dot(_local28, _local25); _local30 = -(b2Math.b2Dot(_local27, _local25)); _local31 = b2Math.b2Dot(_local27, _local37); _local32 = [new ClipVertex(), new ClipVertex()]; _local33 = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); _local35 = 0; _local36 = 0; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:int; var _local7:Array; var _local8:b2Vec2; var _local9:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:int; var _local15:Number; var _local16:int; var _local17:Number; var _local18:int; var _local19:Number; var _local20:int; var _local21:Number; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; _local6 = _arg2.m_vertexCount; _local7 = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; _local10 = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); _local11 = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); _local12 = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); _local13 = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); _local14 = 0; _local15 = -(Number.MAX_VALUE); _local16 = 0; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; _local18 = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); _local19 = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; _local20 = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; _local21 = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); _local10 = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:b2ManifoldPoint; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; _local8 = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local9 = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; _local10 = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local11 = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local12 = (_local10 - _local8); _local13 = (_local11 - _local9); _local14 = ((_local12 * _local12) + (_local13 * _local13)); _local15 = _arg2.m_radius; _local16 = _arg4.m_radius; _local17 = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; _local19 = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); _local20 = (0.5 * (_local8 + _local10)); _local21 = (0.5 * (_local9 + _local11)); _local22 = (_local20 - _arg3.position.x); _local23 = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:Number; var _local20:Number; var _local21:int; var _local22:Array; var _local23:Array; var _local24:int; var _local25:int; var _local26:int; var _local27:b2Vec2; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; _local13 = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); _local14 = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; _local15 = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local16 = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local18 = 0; _local19 = -(Number.MAX_VALUE); _local20 = _arg4.m_radius; _local21 = _arg2.m_vertexCount; _local22 = _arg2.m_vertices; _local23 = _arg2.m_normals; _local24 = 0; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; _local25 = _local18; _local26 = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; _local27 = _local22[_local26]; _local28 = (_local27.x - _local11.x); _local29 = (_local27.y - _local11.y); _local30 = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local31 = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = 0; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } } //unresolved jump var _local1:Boolean = this; _local1 = !(!((true - false))); !ERROR! if (!_local1){ b2Collision = [OP_NEWCLASS ClassInfo:56 base:Object]; }; }//package Box2D.Collision
Section 15
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var _key:uint; public var features:Features; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID; _local1 = new b2ContactID(); _local1.key = key; return (_local1); } public function get key():uint{ return (_key); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } } //unresolved jump var _local1:Boolean; var _local2 = this; if (_local2){ b2ContactID = [OP_NEWCLASS ClassInfo:40 base:Object]; }; }//package Box2D.Collision
Section 16
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2ContactPoint { public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var restitution:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public var friction:Number; public var velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } //unresolved jump //unresolved nextvalue or nextname; var _local1:Boolean; !ERROR! if (!_local1){ b2ContactPoint = [OP_NEWCLASS ClassInfo:28 base:Object]; }; }//package Box2D.Collision
Section 17
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local4:Number; var _local5:int; var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local4 = (100 * Number.MIN_VALUE); _local5 = 0; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local8:Array; var _local9:Array; var _local10:Array; var _local11:int; var _local12:Number; var _local13:int; var _local14:int; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; _local8 = s_p1s; _local9 = s_p2s; _local10 = s_points; _local11 = 0; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); _local12 = 0; _local13 = 20; _local14 = 0; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - ((_local15 * _local19) + (_local16 * _local20))) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; _local9 = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local10 = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; _local11 = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local12 = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = ((_local13 * _local13) + (_local14 * _local14)); _local16 = (_arg3.m_radius - b2Settings.b2_toiSlop); _local17 = (_arg5.m_radius - b2Settings.b2_toiSlop); _local18 = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local14:b2Vec2; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; _local14 = _arg4[2]; _local15 = _local6.x; _local16 = _local6.y; _local17 = _local7.x; _local18 = _local7.y; _local19 = _local8.x; _local20 = _local8.y; _local21 = (_local17 - _local15); _local22 = (_local18 - _local16); _local23 = (_local19 - _local15); _local24 = (_local20 - _local16); _local25 = (_local19 - _local17); _local26 = (_local20 - _local18); _local27 = -(((_local15 * _local21) + (_local16 * _local22))); _local28 = ((_local17 * _local21) + (_local18 * _local22)); _local29 = -(((_local15 * _local23) + (_local16 * _local24))); _local30 = ((_local19 * _local23) + (_local20 * _local24)); _local31 = -(((_local17 * _local25) + (_local18 * _local26))); _local32 = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; _local33 = ((_local21 * _local24) - (_local22 * _local23)); _local34 = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); _local36 = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; _local37 = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; _local38 = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); _local39 = (_local36 * _local38); _local40 = (_local37 * _local38); _local41 = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local9:b2Point; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local9 = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local10 = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); _local11 = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int; var _local8:int; _local7 = _arg3.m_type; _local8 = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; _local12 = -(_local7.x); _local13 = -(_local7.y); _local14 = (_local6.x - _local7.x); _local15 = (_local6.y - _local7.y); _local16 = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } var _local1:Boolean; //unresolved jump var _local2 = (((((false > !NULL!) >>> _local1) - 1) % !NULL!) ^ !NULL!); if (!_local2){ b2Distance = [OP_NEWCLASS ClassInfo:49 base:Object]; }; }//package Box2D.Collision
Section 18
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var points:Array; public var pointCount:int;// = 0 public var normal:b2Vec2; public function b2Manifold(){ var _local1:int; pointCount = 0; super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ var _local2:int; pointCount = _arg1.pointCount; _local2 = 0; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } public function Reset():void{ var _local1:int; _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } var _local1:Boolean; //unresolved jump var _local2 = ( == !NULL!); if (!_local2){ b2Manifold = [OP_NEWCLASS ClassInfo:43 base:Object]; }; }//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; } } //unresolved jump var _local1 = ??hasnext ; !ERROR! //unresolved jump if (((_local2) || (this))){ b2ManifoldPoint = [OP_NEWCLASS ClassInfo:46 base:Object]; }; }//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(); } } //unresolved jump var _local3 = (true as false); var _local1:Boolean; var _local2 = (!NULL! >>> !NULL!); if (!_local1){ b2OBB = [OP_NEWCLASS ClassInfo:29 base:Object]; }; }//package Box2D.Collision
Section 21
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var userData;// = null public var proxyId1:uint; public var proxyId2:uint; public var status:uint; public var next:uint; public static var e_pairFinal:uint = 4; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairRemoved:uint = 2; public static var b2_nullPair:uint = b2Settings.USHRT_MAX; public static var e_pairBuffered:uint = 1; public static var b2_nullProxy:uint = b2Settings.USHRT_MAX; public static var b2_tableCapacity:int = b2Settings.b2_maxPairs; public function b2Pair(){ userData = null; super(); } public function SetBuffered():void{ status = (status | e_pairBuffered); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } } //unresolved jump var _local2:Boolean; var _local1 = ((true > true) == ((true > true) + 1)); _local2 = !NULL!; if (_local2){ b2Pair = [OP_NEWCLASS ClassInfo:32 base:Object]; }; }//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); } } var _local1:Boolean; //unresolved jump var _local2 = (((!NULL! >= !NULL!) ^ !NULL!) + this); if (!_local2){ b2PairCallback = [OP_NEWCLASS ClassInfo:37 base:Object]; }; }//package Box2D.Collision
Section 23
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PairManager { public var m_pairCount:int; public var m_pairBuffer:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_hashTable:Array; public var m_broadPhase:b2BroadPhase; public var m_freePair:uint; public function b2PairManager(){ var _local1:uint; super(); m_hashTable = new Array(b2Pair.b2_tableCapacity); _local1 = 0; while (_local1 < b2Pair.b2_tableCapacity) { m_hashTable[_local1] = b2Pair.b2_nullPair; _local1++; }; m_pairs = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1] = new b2Pair(); _local1++; }; m_pairBuffer = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairBuffer[_local1] = new b2BufferedPair(); _local1++; }; _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy; m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy; m_pairs[_local1].userData = null; m_pairs[_local1].status = 0; m_pairs[_local1].next = (_local1 + 1); _local1++; }; m_pairs[int((b2Settings.b2_maxPairs - 1))].next = b2Pair.b2_nullPair; m_pairCount = 0; m_pairBufferCount = 0; } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:b2Pair; var _local5:uint; _local5 = m_hashTable[_arg3]; _local4 = m_pairs[_local5]; while (((!((_local5 == b2Pair.b2_nullPair))) && ((Equals(_local4, _arg1, _arg2) == false)))) { _local5 = _local4.next; _local4 = m_pairs[_local5]; }; if (_local5 == b2Pair.b2_nullPair){ return (null); }; return (_local4); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local3:int; var _local4:Array; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; _local3 = 0; _local4 = m_broadPhase.m_proxyPool; _local2 = 0; while (_local2 < m_pairBufferCount) { _local1 = m_pairBuffer[_local2]; _local5 = Find(_local1.proxyId1, _local1.proxyId2); _local5.ClearBuffered(); _local6 = _local4[_local5.proxyId1]; _local7 = _local4[_local5.proxyId2]; if (_local5.IsRemoved()){ if (_local5.IsFinal() == true){ m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData); }; _local1 = m_pairBuffer[_local3]; _local1.proxyId1 = _local5.proxyId1; _local1.proxyId2 = _local5.proxyId2; _local3++; } else { if (_local5.IsFinal() == false){ _local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData); _local5.SetFinal(); }; }; _local2++; }; _local2 = 0; while (_local2 < _local3) { _local1 = m_pairBuffer[_local2]; RemovePair(_local1.proxyId1, _local1.proxyId2); _local2++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair; _local4 = Find(_arg1, _arg2); if (_local4 == null){ return; }; if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local4:uint; var _local5:uint; var _local6:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; _local4 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local5 = m_hashTable[_local4]; _local6 = null; while (_local5 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local5], _arg1, _arg2)){ _local8 = _local5; _local3 = m_pairs[_local5]; if (_local6){ _local6.next = _local3.next; } else { m_hashTable[_local4] = _local3.next; }; _local3 = m_pairs[_local8]; _local9 = _local3.userData; _local3.next = m_freePair; _local3.proxyId1 = b2Pair.b2_nullProxy; _local3.proxyId2 = b2Pair.b2_nullProxy; _local3.userData = null; _local3.status = 0; m_freePair = _local8; m_pairCount--; return (_local9); } else { _local6 = m_pairs[_local5]; _local5 = _local6.next; }; }; return (null); } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair; _local4 = AddPair(_arg1, _arg2); if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:b2Pair; var _local5:uint; var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; _local5 = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function ValidateTable():void{ } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } public static function Hash(_arg1:uint, _arg2:uint):uint{ var _local3:uint; _local3 = (((_arg2 << 16) & 4294901760) | _arg1); _local3 = (~(_local3) + ((_local3 << 15) & 4294934528)); _local3 = (_local3 ^ ((_local3 >> 12) & 1048575)); _local3 = (_local3 + ((_local3 << 2) & 4294967292)); _local3 = (_local3 ^ ((_local3 >> 4) & 268435455)); _local3 = (_local3 * 2057); _local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF)); return (_local3); } public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{ return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3)))); } } var _local1:Boolean; //unresolved jump var _local2 = ((((false + !NULL!) <= ??getglobalscope ) <= !NULL!) * !NULL!); //unresolved jump var _temp1 = ((_local2 / !NULL!) % !NULL!); _local2 = this; if (!(((_temp1 >= _local3)) && (_local1))){ b2PairManager = [OP_NEWCLASS ClassInfo:38 base:Object]; }; }//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); } } var _local1:Boolean; //unresolved jump var _local2 = ((!NULL! > !NULL!) === (!NULL! > !NULL!)); //unresolved jump if (((~(??hasnext )) || (_local2))){ b2Point = [OP_NEWCLASS ClassInfo:53 base:Object]; }; }//package Box2D.Collision
Section 25
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var lowerBounds:Array; public var upperBounds:Array; public var userData;// = null public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; userData = null; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } } //unresolved jump var _local1:Boolean; var _local2 = //unresolved nextvalue or nextname; //unresolved jump if (((_local2) || (_local2))){ b2Proxy = [OP_NEWCLASS ClassInfo:30 base:Object]; }; }//package Box2D.Collision
Section 26
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; _local5 = _arg3.p1; _local6 = (_arg3.p2.x - _local5.x); _local7 = (_arg3.p2.y - _local5.y); _local8 = (p2.x - p1.x); _local9 = (p2.y - p1.y); _local10 = _local9; _local11 = -(_local8); _local12 = (100 * Number.MIN_VALUE); _local13 = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local7) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } var _local1:Boolean; //unresolved jump var _local2 = (false >>> !NULL!); //unresolved jump if (!((((_local2 + 1) * ((NaN & this) - 1))) && (_local1))){ b2Segment = [OP_NEWCLASS ClassInfo:25 base:Object]; }; }//package Box2D.Collision
Section 27
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:int; var _local20:int; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; _local7 = _arg1.m_sweepRadius; _local8 = _arg3.m_sweepRadius; _local9 = _arg2.t0; _local10 = (_arg2.c.x - _arg2.c0.x); _local11 = (_arg2.c.y - _arg2.c0.y); _local12 = (_arg4.c.x - _arg4.c0.x); _local13 = (_arg4.c.y - _arg4.c0.y); _local14 = (_arg2.a - _arg2.a0); _local15 = (_arg4.a - _arg4.a0); _local16 = 0; _local17 = s_p1; _local18 = s_p2; _local19 = 20; _local20 = 0; _local21 = 0; _local22 = 0; _local23 = 0; _local24 = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } var _local1:Boolean; //unresolved jump _local1 = typeof(undefined); var _local2:Boolean; //unresolved jump if (((!((-(-(((((false > !NULL!) is !NULL!) * _local1) as !NULL!))) >> !NULL!))) || (this))){ b2TimeOfImpact = [OP_NEWCLASS ClassInfo:35 base:Object]; }; }//package Box2D.Collision
Section 28
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var v:b2Vec2; public var id:b2ContactID; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } var _local1:Boolean; //unresolved jump _local2++; var _local2:String = (false + !NULL!); //unresolved jump if (!((//unresolved nextvalue or nextname) && (_local2))){ ClipVertex = [OP_NEWCLASS ClassInfo:57 base:Object]; }; }//package Box2D.Collision
Section 29
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceEdge:int; public var _incidentEdge:int; public var _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get flip():int{ return (_flip); } public function get incidentEdge():int{ return (_incidentEdge); } public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } var _local1:Boolean; //unresolved jump (false > ??getglobalscope ); !ERROR! //unresolved jump ((_local1 * !NULL!) * !NULL!); var _local3 = (!NULL! >> !NULL!); if (((//unresolved nextvalue or nextname) || (_local1))){ Features = [OP_NEWCLASS ClassInfo:52 base:Object]; }; }//package Box2D.Collision
Section 30
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function Set(_arg1:Number):void{ var _local2:Number; var _local3:Number; _local2 = Math.cos(_arg1); _local3 = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = col1.x; _local3 = col2.x; _local4 = col1.y; _local5 = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = col1.x; _local5 = col2.x; _local6 = col1.y; _local7 = col2.y; _local8 = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } var _local1:Boolean; //unresolved jump var _local2 = (((((false <= !NULL!) <= !NULL!) + !NULL!) % !NULL!) - !NULL!); if (_local1){ b2Mat22 = [OP_NEWCLASS ClassInfo:21 base:Object]; }; }//package Box2D.Common.Math
Section 31
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = b2MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:*; _local3 = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22; _local2 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2; _local2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2Mat22; _local3 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); _local4 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); _local5 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean; _local2 = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number; _local3 = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } var _local1:Boolean; //unresolved jump var _local2:Boolean; _local2 = false; //unresolved jump if (!(((((((//unresolved nextvalue or nextname as _local2) / !NULL!) & !NULL!) & !NULL!) - 1)) && (_local1))){ b2Math = [OP_NEWCLASS ClassInfo:33 base:Object]; }; }//package Box2D.Common.Math
Section 32
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var c:b2Vec2; public var a:Number; public var c0:b2Vec2; public var a0:Number; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; _local3 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } var _local1:Boolean; //unresolved jump var _local2 = ((false << !NULL!) | -(null)); //unresolved jump if (((//unresolved nextvalue or nextname) || (this))){ b2Sweep = [OP_NEWCLASS ClassInfo:24 base:Object]; }; }//package Box2D.Common.Math
Section 33
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var x:Number; public var y:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function SetZero():void{ x = 0; y = 0; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function CrossVF(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function MulM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function Normalize():Number{ var _local1:Number; var _local2:Number; _local1 = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; _local2 = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function CrossFV(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } var _local1:Boolean; //unresolved jump var _local2 = (((((false <= !NULL!) + 1) * ) <= !NULL!) === !NULL!); //unresolved jump if (!(((((((_local2 >>> _local2) > !NULL!) < !NULL!) instanceof !NULL!) < !NULL!)) && (this))){ b2Vec2 = [OP_NEWCLASS ClassInfo:2 base:Object]; }; }//package Box2D.Common.Math
Section 34
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var R:b2Mat22; public var position:b2Vec2; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } } //unresolved jump var _local1 = ??getglobalscope ; var _local2 = (!NULL! + !NULL!); //unresolved jump if (!((_local1) && (_local2))){ b2XForm = [OP_NEWCLASS ClassInfo:16 base:Object]; }; }//package Box2D.Common.Math
Section 35
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _g:uint;// = 0 private var _b:uint;// = 0 private var _r:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = 0; _g = 0; _b = 0; super(); _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function get color():uint{ return (((_r | (_g << 8)) | (_b << 16))); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } } //unresolved jump var _local1 = ~(NaN); var _local2 = (true >= false); //unresolved jump if (!((_local1) && (_local2))){ b2Color = [OP_NEWCLASS ClassInfo:18 base:Object]; }; }//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++; }; } } //unresolved jump var _local1:Number = ??hasnext ; var _local2 = (true & false); if (!_local1){ b2Settings = [OP_NEWCLASS ClassInfo:34 base:Object]; }; }//package Box2D.Common
Section 37
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ var _local3:b2ManifoldPoint; m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; _local3 = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactPoint; var _local8:b2ManifoldPoint; _local5 = m_shape1.m_body; _local6 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } } var _local1:Boolean; //unresolved jump var _local3:Boolean; var _local2 = typeof(_local2); //unresolved jump _local0 = ((!NULL! > !NULL!) * true); if (!_local2){ b2CircleContact = [OP_NEWCLASS ClassInfo:70 base:b2Contact]; }; }//package Box2D.Dynamics.Contacts
Section 38
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Contact { public var m_shape1:b2Shape; public var m_shape2:b2Shape; public var m_prev:b2Contact; public var m_toi:Number; public var m_next:b2Contact; public var m_friction:Number; public var m_manifoldCount:int; public var m_node1:b2ContactEdge; public var m_node2:b2ContactEdge; public var m_restitution:Number; public var m_flags:uint; public static var e_toiFlag:uint = 8; public static var e_nonSolidFlag:uint = 1; public static var e_slowFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var s_registers:Array; public static var s_initialized:Boolean = false; public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){ m_node1 = new b2ContactEdge(); m_node2 = new b2ContactEdge(); super(); m_flags = 0; if (((!(_arg1)) || (!(_arg2)))){ m_shape1 = null; m_shape2 = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_nonSolidFlag); }; m_shape1 = _arg1; m_shape2 = _arg2; m_manifoldCount = 0; m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction)); m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution); m_prev = null; m_next = null; m_node1.contact = null; m_node1.prev = null; m_node1.next = null; m_node1.other = null; m_node2.contact = null; m_node2.prev = null; m_node2.next = null; m_node2.other = null; } public function GetShape1():b2Shape{ return (m_shape1); } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetNext():b2Contact{ return (m_next); } public function GetManifolds():Array{ return (null); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function Update(_arg1:b2ContactListener):void{ var _local2:int; var _local3:int; var _local4:b2Body; var _local5:b2Body; _local2 = m_manifoldCount; Evaluate(_arg1); _local3 = m_manifoldCount; _local4 = m_shape1.m_body; _local5 = m_shape2.m_body; if ((((_local3 == 0)) && ((_local2 > 0)))){ _local4.WakeUp(); _local5.WakeUp(); }; if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } public function Evaluate(_arg1:b2ContactListener):void{ } public static function InitializeRegisters():void{ var _local1:int; var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); _local1 = 0; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); } public static function Destroy(_arg1:b2Contact, _arg2):void{ var _local3:int; var _local4:int; var _local5:b2ContactRegister; var _local6:Function; if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; _local3 = _arg1.m_shape1.m_type; _local4 = _arg1.m_shape2.m_type; _local5 = s_registers[_local3][_local4]; _local6 = _local5.destroyFcn; _local6(_arg1, _arg2); } public static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local4:int; var _local5:int; var _local6:b2ContactRegister; var _local7:Function; var _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; _local4 = _arg1.m_type; _local5 = _arg2.m_type; _local6 = s_registers[_local4][_local5]; _local7 = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); } else { }; return (!NULL!); } } //unresolved jump var _local2:Boolean; true; var _local1:String = undefined; _local2 = ((!NULL! > !NULL!) * !NULL!); if (!_local1){ b2Contact = [OP_NEWCLASS ClassInfo:15 base:Object]; }; }//package Box2D.Dynamics.Contacts
Section 39
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var normal:b2Vec2; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ var _local1:int; normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } var _local1:Boolean; //unresolved jump _local1 = typeof(false); var _local2 = (_local1 >> !NULL!); if (_local1){ b2ContactConstraint = [OP_NEWCLASS ClassInfo:48 base:Object]; }; }//package Box2D.Dynamics.Contacts
Section 40
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var r2:b2Vec2; public var separation:Number; public var positionImpulse:Number; public var normalImpulse:Number; public var equalizedMass:Number; public var tangentMass:Number; public var tangentImpulse:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var normalMass:Number; public var velocityBias:Number; public var r1:b2Vec2; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } var _local1:Boolean; //unresolved jump var _local3 = (false == _local1); var _local2 = ((!(!NULL!) * !NULL!) << !NULL!); //unresolved jump _local3 = (_local2 + 1); if (!(((??getglobalscope - 1)) && (_local2))){ b2ContactConstraintPoint = [OP_NEWCLASS ClassInfo:47 base:Object]; }; }//package Box2D.Dynamics.Contacts
Section 41
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var next:b2ContactEdge; public var other:b2Body; public var contact:b2Contact; public var prev:b2ContactEdge; } var _local1:Boolean; //unresolved jump var _temp1 = _local2; var _local2 = -(//unresolved nextvalue or nextname); _local2 = _temp1; if (_local1){ b2ContactEdge = [OP_NEWCLASS ClassInfo:23 base:Object]; }; }//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; } var _local1:Boolean; //unresolved jump var _local2 = null; if (_local1){ b2ContactRegister = [OP_NEWCLASS ClassInfo:44 base:Object]; }; }//package Box2D.Dynamics.Contacts
Section 43
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; public class b2ContactResult { public var normal:b2Vec2; public var position:b2Vec2; public var shape1:b2Shape; public var shape2:b2Shape; public var normalImpulse:Number; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ContactResult(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } var _local1:Boolean; //unresolved jump _local1 = //unresolved nextvalue or nextname; !ERROR! if (!_local2){ b2ContactResult = [OP_NEWCLASS ClassInfo:27 base:Object]; }; }//package Box2D.Dynamics.Contacts
Section 44
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2ContactSolver { public var m_constraintCount:int; public var m_constraints:Array; public var m_allocator; public var m_step:b2TimeStep; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local9:int; var _local10:b2Body; var _local11:b2Body; var _local12:int; var _local13:Array; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; var _local23:b2Manifold; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraint; var _local27:uint; var _local28:b2ManifoldPoint; var _local29:b2ContactConstraintPoint; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; m_step = new b2TimeStep(); m_constraints = new Array(); super(); m_step.dt = _arg1.dt; m_step.inv_dt = _arg1.inv_dt; m_step.maxIterations = _arg1.maxIterations; m_allocator = _arg4; m_constraintCount = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; m_constraintCount = (m_constraintCount + _local5.m_manifoldCount); _local6++; }; _local6 = 0; while (_local6 < m_constraintCount) { m_constraints[_local6] = new b2ContactConstraint(); _local6++; }; _local9 = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1.m_body; _local11 = _local5.m_shape2.m_body; _local12 = _local5.m_manifoldCount; _local13 = _local5.GetManifolds(); _local14 = _local5.m_friction; _local15 = _local5.m_restitution; _local16 = _local10.m_linearVelocity.x; _local17 = _local10.m_linearVelocity.y; _local18 = _local11.m_linearVelocity.x; _local19 = _local11.m_linearVelocity.y; _local20 = _local10.m_angularVelocity; _local21 = _local11.m_angularVelocity; _local22 = 0; while (_local22 < _local12) { _local23 = _local13[_local22]; _local24 = _local23.normal.x; _local25 = _local23.normal.y; _local26 = m_constraints[_local9]; _local26.body1 = _local10; _local26.body2 = _local11; _local26.manifold = _local23; _local26.normal.x = _local24; _local26.normal.y = _local25; _local26.pointCount = _local23.pointCount; _local26.friction = _local14; _local26.restitution = _local15; _local27 = 0; while (_local27 < _local26.pointCount) { _local28 = _local23.points[_local27]; _local29 = _local26.points[_local27]; _local29.normalImpulse = _local28.normalImpulse; _local29.tangentImpulse = _local28.tangentImpulse; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local8 = _local10.m_xf.R; _local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x); _local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33)); _local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33)); _local32 = _local30; _local29.r1.Set(_local32, _local33); _local8 = _local11.m_xf.R; _local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x); _local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local30; _local29.r2.Set(_local34, _local35); _local36 = ((_local32 * _local32) + (_local33 * _local33)); _local37 = ((_local34 * _local34) + (_local35 * _local35)); _local38 = ((_local32 * _local24) + (_local33 * _local25)); _local39 = ((_local34 * _local24) + (_local35 * _local25)); _local40 = (_local10.m_invMass + _local11.m_invMass); _local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39))))); _local29.normalMass = (1 / _local40); _local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass)); _local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39))))); _local29.equalizedMass = (1 / _local41); _local42 = _local25; _local43 = -(_local24); _local44 = ((_local32 * _local42) + (_local33 * _local43)); _local45 = ((_local34 * _local42) + (_local35 * _local43)); _local46 = (_local10.m_invMass + _local11.m_invMass); _local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45))))); _local29.tangentMass = (1 / _local46); _local29.velocityBias = 0; if (_local29.separation > 0){ _local29.velocityBias = (-60 * _local29.separation); }; _local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33)); _local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32)); _local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47)); }; _local27++; }; _local9++; _local22++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local5:int; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; _local5 = 0; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:int; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; _local2 = 0; _local5 = 0; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Mat22; var _local18:b2Vec2; var _local19:int; var _local20:b2ContactConstraint; var _local21:b2Body; var _local22:b2Body; var _local23:Number; var _local24:Number; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:int; var _local38:Number; _local19 = 0; while (_local19 < m_constraintCount) { _local20 = m_constraints[_local19]; _local21 = _local20.body1; _local22 = _local20.body2; _local23 = _local21.m_angularVelocity; _local24 = _local22.m_angularVelocity; _local25 = _local21.m_linearVelocity; _local26 = _local22.m_linearVelocity; _local27 = _local21.m_invMass; _local28 = _local21.m_invI; _local29 = _local22.m_invMass; _local30 = _local22.m_invI; _local31 = _local20.normal.x; _local32 = _local20.normal.y; _local33 = _local32; _local34 = -(_local31); _local35 = _local20.friction; _local37 = _local20.pointCount; _local1 = 0; while (_local1 < _local37) { _local2 = _local20.points[_local1]; _local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y)); _local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x)); _local9 = ((_local7 * _local31) + (_local8 * _local32)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local10 = ((_local7 * _local33) + (_local8 * _local34)); _local12 = (_local2.tangentMass * -(_local10)); _local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0); _local11 = (_local13 - _local2.normalImpulse); _local38 = (_local35 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38); _local12 = (_local14 - _local2.tangentImpulse); _local15 = ((_local11 * _local31) + (_local12 * _local33)); _local16 = ((_local11 * _local32) + (_local12 * _local34)); _local25.x = (_local25.x - (_local27 * _local15)); _local25.y = (_local25.y - (_local27 * _local16)); _local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local26.x = (_local26.x + (_local29 * _local15)); _local26.y = (_local26.y + (_local29 * _local16)); _local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.normalImpulse = _local13; _local2.tangentImpulse = _local14; _local1++; }; _local21.m_angularVelocity = _local23; _local22.m_angularVelocity = _local24; _local19++; }; } public function FinalizeVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; _local1 = 0; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } //unresolved jump var _local3 = (false - 1); var _local1 = -(this); var _local2 = ((true + !NULL!) < !NULL!); //unresolved jump if (((_local2) || (this))){ b2ContactSolver = [OP_NEWCLASS ClassInfo:45 base:Object]; }; }//package Box2D.Dynamics.Contacts
Section 45
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function GetManifolds():Array{ return (null); } override public function Evaluate(_arg1:b2ContactListener):void{ } } //unresolved jump _local0 = _local3; var _local1:uint = //unresolved nextvalue or nextname; !ERROR! //unresolved jump if (_local2){ b2NullContact = [OP_NEWCLASS ClassInfo:69 base:b2Contact]; }; }//package Box2D.Dynamics.Contacts
Section 46
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ var _local3:b2ManifoldPoint; m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; _local3 = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local6:b2Body; var _local7:b2Body; var _local8:Array; var _local9:b2ContactPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; _local6 = m_shape1.m_body; _local7 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); _local8 = [false, false]; _local9 = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } var _local1:Boolean; //unresolved jump var _local3 = _local3; var _local2:Boolean = !(); //unresolved jump if (_local1){ b2PolyAndCircleContact = [OP_NEWCLASS ClassInfo:71 base:b2Contact]; }; }//package Box2D.Dynamics.Contacts
Section 47
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactPoint; var _local8:int; var _local9:Array; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; _local5 = m_shape1.m_body; _local6 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); _local9 = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local9[_local13] == true){ } else { _local4 = m0.points[_local13]; if (_local4.id._key == _local12){ _local9[_local13] = true; _local10.normalImpulse = _local4.normalImpulse; _local10.tangentImpulse = _local4.tangentImpulse; _local11 = true; if (_arg1 != null){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Persist(_local7); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Add(_local7); }; _local8++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local8 = 0; while (_local8 < m0.pointCount) { if (_local9[_local8]){ } else { _local4 = m0.points[_local8]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; _local8++; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } } //unresolved jump var _local1:int = ((true + false) >= -(NaN)); !ERROR! //unresolved jump if (!_local1){ b2PolygonContact = [OP_NEWCLASS ClassInfo:72 base:b2Contact]; }; }//package Box2D.Dynamics.Contacts
Section 48
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_mass:Number; public var m_u:b2Vec2; public var m_impulse:Number; public var m_dampingRatio:Number; public var m_frequencyHz:Number; public var m_localAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_bias:Number; public var m_gamma:Number; public var m_length:Number; public function b2DistanceJoint(_arg1:b2DistanceJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; m_inv_dt = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; if (m_frequencyHz > 0){ return (true); }; _local2 = m_body1; _local3 = m_body2; _local1 = _local2.m_xf.R; _local4 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; _local7 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local8 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; _local9 = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); _local10 = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); _local11 = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); _local12 = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local13 = (-(m_mass) * _local12); m_u.Set(_local9, _local10); _local14 = (_local13 * m_u.x); _local15 = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; m_inv_dt = _arg1.inv_dt; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); _local10 = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; _local11 = ((_local6 * m_u.y) - (_local7 * m_u.x)); _local12 = ((_local8 * m_u.y) - (_local9 * m_u.x)); _local13 = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local3 = m_body1; _local4 = m_body2; _local2 = _local3.m_xf.R; _local5 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; _local8 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; _local10 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); _local11 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); _local12 = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); _local13 = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); _local14 = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); _local15 = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); _local16 = (_local15 * m_u.x); _local17 = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } } //unresolved jump var _temp1 = arguments; var _local1 = ((undefined - false) * true); var _local2 = _temp1; //unresolved jump if (!(((true + 1) >> !NULL!) * !NULL!)){ !NULL!; }; if (!NULL!){ //unresolved jump _local1 = undefined; ~(null).b2DistanceJoint = [OP_NEWCLASS ClassInfo:68 base:b2Joint]; }; }//package Box2D.Dynamics.Joints
Section 49
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2DistanceJointDef extends b2JointDef { public var length:Number; public var dampingRatio:Number; public var frequencyHz:Number; public var localAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ var _local5:Number; var _local6:Number; body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); _local5 = (_arg4.x - _arg3.x); _local6 = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } var _local1:Boolean; //unresolved jump _local0 = ((~(false) + 1) / !NULL!); var _local2:Object = (!NULL! * !NULL!); //unresolved jump if (??hasnext ){ !NULL!; }; if (!!NULL!){ b2DistanceJointDef = [OP_NEWCLASS ClassInfo:76 base:b2JointDef]; }; }//package Box2D.Dynamics.Joints
Section 50
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_force:Number; public var m_mass:Number; public var m_prismatic1:b2PrismaticJoint; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_ground2:b2Body; public var m_constant:Number; public var m_revolute1:b2RevoluteJoint; public var m_revolute2:b2RevoluteJoint; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_ratio:Number; public var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local2:int; var _local3:int; var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); _local2 = _arg1.joint1.m_type; _local3 = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.m_body1; m_body1 = _arg1.joint1.m_body2; if (_local2 == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local4 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local4 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_local3 == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local5 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local5 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local4 + (m_ratio * _local5)); m_force = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local1 = 0; _local2 = m_body1; _local3 = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; _local6 = (m_constant - (_local4 + (m_ratio * _local5))); _local7 = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; _local2 = m_ground1; _local3 = m_ground2; _local4 = m_body1; _local5 = m_body2; _local14 = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ var _local1:b2Mat22; var _local2:Number; var _local3:Number; var _local4:Number; _local1 = m_body2.m_xf.R; _local2 = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); _local3 = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); _local4 = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = m_body1; _local3 = m_body2; _local4 = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local5 = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); _local6 = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } } var _local1:Boolean; //unresolved jump _local1 = -(-((false * !NULL!))); !ERROR! _local2 = !NULL!; //unresolved jump _local2 = (_local2 is _local2); if (true){ ((-(!NULL!) - !NULL!) > !NULL!); }; if (!((-(!NULL!) - !NULL!) > !NULL!)){ b2GearJoint = [OP_NEWCLASS ClassInfo:65 base:b2Joint]; }; }//package Box2D.Dynamics.Joints
Section 51
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint2:b2Joint; public var joint1:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } var _local1:Boolean; //unresolved jump false; var _local2 = (typeof((null - 1)) + 1); //unresolved jump if (!(((!NULL! % !NULL!) * (_local1 - ~(_local1))) - 1)){ !NULL!; }; if (!NULL!){ b2GearJointDef = [OP_NEWCLASS ClassInfo:75 base:b2JointDef]; }; }//package Box2D.Dynamics.Joints
Section 52
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var linear2:b2Vec2; public var angular2:Number; public var angular1:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } var _local1:Boolean; //unresolved jump var _local2 = ((((false == NaN) - !NULL!) == null) is !NULL!); if (!_local2){ b2Jacobian = [OP_NEWCLASS ClassInfo:54 base:Object]; }; }//package Box2D.Dynamics.Joints
Section 53
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2Joint { public var m_islandFlag:Boolean; public var m_body1:b2Body; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_type:int; public var m_collideConnected:Boolean; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_inv_dt:Number; public var m_userData; public var m_body2:b2Body; public static const e_unknownJoint:int = 0; public static const e_inactiveLimit:int = 0; public static const e_atUpperLimit:int = 2; public static const e_atLowerLimit:int = 1; public static const e_gearJoint:int = 6; public static const e_revoluteJoint:int = 1; public static const e_equalLimits:int = 3; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_prismaticJoint:int = 2; public static const e_mouseJoint:int = 5; public function b2Joint(_arg1:b2JointDef){ m_node1 = new b2JointEdge(); m_node2 = new b2JointEdge(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetType():int{ return (m_type); } public function GetBody2():b2Body{ return (m_body2); } public function GetNext():b2Joint{ return (m_next); } public function GetReactionTorque():Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce():b2Vec2{ return (null); } public function SolvePositionConstraints():Boolean{ return (false); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetBody1():b2Body{ return (m_body1); } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public static function Destroy(_arg1:b2Joint, _arg2):void{ } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; _local3 = null; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } } var _local1:Boolean; //unresolved jump var _local2 = (//unresolved nextvalue or nextname ^ !NULL!); if (!_local2){ b2Joint = [OP_NEWCLASS ClassInfo:10 base:Object]; }; }//package Box2D.Dynamics.Joints
Section 54
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var collideConnected:Boolean; public var body1:b2Body; public var body2:b2Body; public var userData; public var type:int; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } //unresolved jump true; var _local1 = (true * false); var _local2 = typeof(false); if (!_local1){ b2JointDef = [OP_NEWCLASS ClassInfo:19 base:Object]; }; }//package Box2D.Dynamics.Joints
Section 55
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var joint:b2Joint; public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; } //unresolved jump var _local2 = //unresolved nextvalue or nextname; if (_local2){ b2JointEdge = [OP_NEWCLASS ClassInfo:22 base:Object]; }; }//package Box2D.Dynamics.Joints
Section 56
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { public var m_beta:Number; public var m_mass:b2Mat22; public var m_target:b2Vec2; public var m_impulse:b2Vec2; public var m_localAnchor:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K:b2Mat22; public var m_gamma:Number; public var m_C:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local2:Number; var _local3:Number; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); _local2 = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); _local4 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); _local5 = m_body2.m_mass; _local6 = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); _local7 = (((2 * _local5) * _arg1.dampingRatio) * _local6); _local8 = ((_arg1.timeStep * _local5) * (_local6 * _local6)); m_gamma = (1 / (_local7 + _local8)); m_beta = (_local8 / (_local7 + _local8)); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function GetReactionForce():b2Vec2{ return (m_impulse); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); _local9 = (_arg1.dt * m_impulse.x); _local10 = (_arg1.dt * m_impulse.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function GetReactionTorque():Number{ return (0); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local6 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; _local8 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); _local9 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y)); _local10 = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); _local11 = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); _local12 = m_impulse.x; _local13 = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); _local14 = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); _local15 = (_arg1.dt * _local10); _local16 = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } } var _local1:Boolean; //unresolved jump var _local2 = ((false << !NULL!) === !NULL!); _local2 = //unresolved nextvalue or nextname; //unresolved jump if (NaN){ (undefined + 1); }; if (!(undefined + 1)){ b2MouseJoint = [OP_NEWCLASS ClassInfo:66 base:b2Joint]; }; }//package Box2D.Dynamics.Joints
Section 57
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var frequencyHz:Number; public var dampingRatio:Number; public var maxForce:Number; public var target:b2Vec2; public var timeStep:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; timeStep = (1 / 60); } } var _local1:Boolean; //unresolved jump var _local2 = -((((false is !NULL!) % !NULL!) is !NULL!)); //unresolved jump if (!-(??getglobalscope )){ ((_local1 / !NULL!) ^ !NULL!); }; if (((_local1 / !NULL!) ^ !NULL!)){ b2MouseJointDef = [OP_NEWCLASS ClassInfo:77 base:b2JointDef]; }; }//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_refAngle:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_torque:Number; public var m_enableLimit:Boolean; public var m_motorForce:Number; public var m_force:Number; public var m_localYAxis1:b2Vec2; public var m_motorMass:Number; public var m_maxMotorForce:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_angularMass:Number; public var m_limitState:int; public var m_linearMass:Number; public var m_upperTranslation:Number; public var m_motorJacobian:b2Jacobian; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_linearJacobian:b2Jacobian; public var m_enableMotor:Boolean; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_linearJacobian = new b2Jacobian(); m_motorJacobian = new b2Jacobian(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_linearJacobian.SetZero(); m_linearMass = 0; m_force = 0; m_angularMass = 0; m_torque = 0; m_motorJacobian.SetZero(); m_motorMass = 0; m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerTranslation = _arg1.lowerTranslation; m_upperTranslation = _arg1.upperTranslation; m_maxMotorForce = _arg1.maxMotorForce; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function GetJointTranslation():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:b2Vec2; var _local9:Number; _local1 = m_body1; _local2 = m_body2; _local4 = _local1.GetWorldPoint(m_localAnchor1); _local5 = _local2.GetWorldPoint(m_localAnchor2); _local6 = (_local5.x - _local4.x); _local7 = (_local5.y - _local4.y); _local8 = _local1.GetWorldVector(m_localXAxis1); _local9 = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.m_xf.R; _local2 = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); _local3 = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); _local4 = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); _local5 = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; _local3 = m_body1; _local4 = m_body2; _local5 = _local3.m_invMass; _local6 = _local4.m_invMass; _local7 = _local3.m_invI; _local8 = _local4.m_invI; _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local21 = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); _local22 = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); _local23 = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local24 = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); _local25 = b2Math.b2Abs(_local23); _local26 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local27 = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); _local28 = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } public function GetJointSpeed():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:b2Vec2; var _local16:b2Vec2; var _local17:b2Vec2; var _local18:Number; var _local19:Number; var _local20:Number; _local1 = m_body1; _local2 = m_body2; _local3 = _local1.m_xf.R; _local4 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local5 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; _local7 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local8 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; _local9 = (_local1.m_sweep.c.x + _local4); _local10 = (_local1.m_sweep.c.y + _local5); _local11 = (_local2.m_sweep.c.x + _local7); _local12 = (_local2.m_sweep.c.y + _local8); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = _local1.GetWorldVector(m_localXAxis1); _local16 = _local1.m_linearVelocity; _local17 = _local2.m_linearVelocity; _local18 = _local1.m_angularVelocity; _local19 = _local2.m_angularVelocity; _local20 = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local10 = _local2.m_invMass; _local11 = _local3.m_invMass; _local12 = _local2.m_invI; _local13 = _local3.m_invI; _local4 = _local2.m_xf.R; _local14 = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); _local15 = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); _local16 = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); _local17 = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorForce():Number{ return (m_motorForce); } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_invMass; _local5 = _local3.m_invMass; _local6 = _local2.m_invI; _local7 = _local3.m_invI; _local9 = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local10 = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); _local11 = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); _local12 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local13 = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); _local14 = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } } //unresolved jump var _local1 = -((null | //unresolved nextvalue or nextname)); var _local2:Boolean; //unresolved jump _local2 = (_local2 >> -((_local2 as _local3))); if (!_local3){ true; }; if (true){ //unresolved jump var _local3 = ( + this); ((!NULL! * !NULL!) + 1).b2PrismaticJoint = [OP_NEWCLASS ClassInfo:67 base:b2Joint]; }; }//package Box2D.Dynamics.Joints
Section 59
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PrismaticJointDef extends b2JointDef { public var localAxis1:b2Vec2; public var referenceAngle:Number; public var maxMotorForce:Number; public var motorSpeed:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var lowerTranslation:Number; public function b2PrismaticJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxis1.Set(1, 0); referenceAngle = 0; enableLimit = false; lowerTranslation = 0; upperTranslation = 0; enableMotor = false; maxMotorForce = 0; motorSpeed = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } var _local1:Boolean; //unresolved jump var _local2 = ((false > !NULL!) as !NULL!); _local2 = !((!NULL! + !NULL!)); //unresolved jump if (_local1){ b2PrismaticJointDef = [OP_NEWCLASS ClassInfo:78 base:b2JointDef]; }; }//package Box2D.Dynamics.Joints
Section 60
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_ground:b2Body; public var m_maxLength2:Number; public var m_limitForce1:Number; public var m_maxLength1:Number; public var m_limitState1:int; public var m_limitState2:int; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_limitPositionImpulse1:Number; public var m_constant:Number; public var m_state:int; public var m_ratio:Number; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_positionImpulse:Number; public var m_limitMass2:Number; public var m_limitMass1:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_u2:b2Vec2; public var m_limitForce2:Number; public static const b2_minPulleyLength:Number = 2; public function b2PulleyJoint(_arg1:b2PulleyJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u1 = new b2Vec2(); m_u2 = new b2Vec2(); super(_arg1); m_ground = m_body1.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_ratio = _arg1.ratio; m_constant = (_arg1.length1 + (m_ratio * _arg1.length2)); m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio)); m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2; _local1 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; _local1 = m_body1; _local2 = m_body2; _local4 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local5 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local6 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local7 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local23 = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u1.Set((_local12 - _local4), (_local13 - _local5)); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local16 = m_u1.Length(); _local17 = m_u2.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local16)); } else { m_u1.SetZero(); }; if (_local17 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local17)); } else { m_u2.SetZero(); }; _local18 = ((m_constant - _local16) - (m_ratio * _local17)); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_pulleyMass) * _local18); _local20 = m_positionImpulse; m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19)); _local19 = (m_positionImpulse - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local14 = ((-(m_ratio) * _local19) * m_u2.x); _local15 = ((-(m_ratio) * _local19) * m_u2.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.SynchronizeTransform(); _local2.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); m_u1.Set((_local12 - _local4), (_local13 - _local5)); _local16 = m_u1.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local16)); m_u1.y = (m_u1.y * (1 / _local16)); } else { m_u1.SetZero(); }; _local18 = (m_maxLength1 - _local16); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local21 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local21); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; _local10 = (_local2.m_sweep.c.x + _local5); _local11 = (_local2.m_sweep.c.y + _local6); _local12 = (_local3.m_sweep.c.x + _local8); _local13 = (_local3.m_sweep.c.y + _local9); _local14 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local15 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local16 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local17 = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); _local18 = m_u1.Length(); _local19 = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; _local20 = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; _local21 = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); _local22 = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function GetReactionTorque():Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } public function GetLength2():Number{ var _local1:b2Vec2; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body2.GetWorldPoint(m_localAnchor2); _local2 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } public function GetLength1():Number{ var _local1:b2Vec2; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.GetWorldPoint(m_localAnchor1); _local2 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2; _local1 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } var _local1:Boolean; //unresolved jump var _local3 = (!(false) ^ !(false)); var _local2 = null; //unresolved jump if (!_local2){ b2PulleyJoint = [OP_NEWCLASS ClassInfo:63 base:b2Joint]; }; }//package Box2D.Dynamics.Joints
Section 61
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength2:Number; public var length1:Number; public var length2:Number; public var maxLength1:Number; public var ratio:Number; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); _local8 = (_arg5.x - _arg3.x); _local9 = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local10 = (_arg6.x - _arg4.x); _local11 = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; _local12 = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } //unresolved jump var _local1 = (!NULL! - !NULL!); !ERROR! //unresolved jump _local0 = this; if (_local2){ b2PulleyJointDef = [OP_NEWCLASS ClassInfo:73 base:b2JointDef]; }; }//package Box2D.Dynamics.Joints
Section 62
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { public var m_limitForce:Number; public var m_motorForce:Number; public var m_pivotMass:b2Mat22; public var m_enableLimit:Boolean; public var m_limitState:int; public var m_motorMass:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var K:b2Mat22; public var m_pivotForce:b2Vec2; public var m_motorSpeed:Number; public var m_enableMotor:Boolean; public var m_limitPositionImpulse:Number; public var m_maxMotorTorque:Number; public var m_referenceAngle:Number; public var m_lowerAngle:Number; public var m_upperAngle:Number; public static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_pivotForce = new b2Vec2(); m_pivotMass = new b2Mat22(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_referenceAngle = _arg1.referenceAngle; m_pivotForce.Set(0, 0); m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerAngle = _arg1.lowerAngle; m_upperAngle = _arg1.upperAngle; m_maxMotorTorque = _arg1.maxMotorTorque; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ return (m_pivotForce); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local3 = m_body1; _local4 = m_body2; _local5 = 0; _local6 = _local3.m_xf.R; _local7 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local8 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; _local10 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; _local12 = (_local3.m_sweep.c.x + _local7); _local13 = (_local3.m_sweep.c.y + _local8); _local14 = (_local4.m_sweep.c.x + _local10); _local15 = (_local4.m_sweep.c.y + _local11); _local16 = (_local14 - _local12); _local17 = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); _local18 = _local3.m_invMass; _local19 = _local4.m_invMass; _local20 = _local3.m_invI; _local21 = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); _local22 = tImpulse.x; _local23 = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); _local24 = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local10 = _local2.m_invMass; _local11 = _local3.m_invMass; _local12 = _local2.m_invI; _local13 = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function GetMotorTorque():Number{ return (m_motorForce); } override public function GetReactionTorque():Number{ return (m_limitForce); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local11 = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); _local12 = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); _local13 = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); _local14 = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); _local15 = (_arg1.dt * _local13); _local16 = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } } var _local1:Boolean; //unresolved jump var _local3:* = ((false + !NULL!) < null); !ERROR! //unresolved jump if (!_local2){ ~((_local1 > _local1)); }; if (~((_local1 > _local1))){ b2RevoluteJoint = [OP_NEWCLASS ClassInfo:64 base:b2Joint]; }; }//package Box2D.Dynamics.Joints
Section 63
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2RevoluteJointDef extends b2JointDef { public var referenceAngle:Number; public var upperAngle:Number; public var lowerAngle:Number; public var motorSpeed:Number; public var maxMotorTorque:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } //unresolved jump var _local1 = (((true | false) - 1) * !NULL!); !ERROR! //unresolved jump if (!NaN){ (_local2 % _local2); }; if ((_local2 % _local2)){ //unresolved jump (//unresolved nextvalue or nextname is this).b2RevoluteJointDef = [OP_NEWCLASS ClassInfo:74 base:b2JointDef]; }; }//package Box2D.Dynamics.Joints
Section 64
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; import Box2D.Dynamics.Joints.*; public class b2Body { public var m_next:b2Body; 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_xf:b2XForm; 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_angularDamping:Number; public var m_invI:Number; public var m_linearVelocity:b2Vec2; public var m_sleepTime:Number; public var m_shapeCount:int; public var m_jointList:b2JointEdge; public var m_I:Number; public static var e_fixedRotationFlag:uint = 64; public static var e_frozenFlag:uint = 2; public static var e_maxTypes:uint = 3; public static var e_sleepFlag:uint = 8; private static var s_massData:b2MassData = new b2MassData(); public static var e_bulletFlag:uint = 32; public static var e_staticType:uint = 1; public static var e_islandFlag:uint = 4; public static var e_allowSleepFlag:uint = 16; private static var s_xf1:b2XForm = new b2XForm(); public static var e_dynamicType:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ var _local3:b2Mat22; var _local4:b2Vec2; m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); _local3 = m_xf.R; _local4 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function SynchronizeTransform():void{ var _local1:b2Mat22; var _local2:b2Vec2; m_xf.R.Set(m_sweep.a); _local1 = m_xf.R; _local2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function GetInertia():Number{ return (m_I); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; var _local2:Number; var _local3:Number; var _local4:b2MassData; var _local5:b2Mat22; var _local6:b2Vec2; var _local7:int; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; _local2 = 0; _local3 = 0; _local4 = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); _local5 = m_xf.R; _local6 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; _local7 = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function PutToSleep():void{ m_flags = (m_flags | e_sleepFlag); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; } public function GetJointList():b2JointEdge{ return (m_jointList); } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local4:b2Mat22; var _local5:b2Vec2; var _local6:Boolean; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); _local4 = m_xf.R; _local5 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); _local6 = false; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function SynchronizeShapes():Boolean{ var _local1:b2XForm; var _local2:b2Mat22; var _local3:b2Vec2; var _local4:b2Shape; var _local5:Boolean; _local1 = s_xf1; _local1.R.Set(m_sweep.a0); _local2 = _local1.R; _local3 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); _local5 = true; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x)); m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y)); m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)))); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22; var _local3:b2Vec2; _local2 = m_xf.R; _local3 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:int; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); _local3 = m_xf.R; _local4 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; _local5 = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetShapeList():b2Shape{ return (m_shapeList); } public function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function CreateShape(_arg1:b2ShapeDef):b2Shape{ var _local2:b2Shape; if (m_world.m_lock == true){ return (null); }; _local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); return (_local2); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge; _local2 = m_jointList; while (_local2) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function DestroyShape(_arg1:b2Shape):void{ var _local2:b2Shape; var _local3:b2Shape; var _local4:Boolean; if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); _local2 = m_shapeList; _local3 = null; _local4 = false; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_shapeList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22; var _local3:b2Vec2; _local2 = m_xf.R; _local3 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorld():b2World{ return (m_world); } public function GetPosition():b2Vec2{ return (m_xf.position); } } var _local1:Boolean; //unresolved jump //unresolved nextvalue or nextname; !ERROR! //unresolved jump if (((NaN) || (this))){ b2Body = [OP_NEWCLASS ClassInfo:3 base:Object]; }; }//package Box2D.Dynamics
Section 65
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2BodyDef { public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var angularDamping:Number; public var fixedRotation:Boolean; public var angle:Number; public var linearDamping:Number; public var massData:b2MassData; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } //unresolved jump var _local1 = (true <= !NULL!); _local1 = ((!NULL! == !NULL!) >= !NULL!); !ERROR! if (_local2){ b2BodyDef = [OP_NEWCLASS ClassInfo:1 base:Object]; }; }//package Box2D.Dynamics
Section 66
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } var _local1:Boolean; //unresolved jump var _local2 = _local2; //unresolved jump if (((((((_local3 + 1) instanceof ~(//unresolved nextvalue or nextname)) - 1) + 1)) || (_local1))){ b2BoundaryListener = [OP_NEWCLASS ClassInfo:9 base:Object]; }; }//package Box2D.Dynamics
Section 67
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; public class b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:b2FilterData; var _local4:b2FilterData; var _local5:Boolean; _local3 = _arg1.GetFilterData(); _local4 = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; _local5 = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } //unresolved jump var _local1:Boolean; !ERROR! //unresolved jump _local1 = !NULL!; if (((_local2) || (this))){ b2ContactFilter = [OP_NEWCLASS ClassInfo:14 base:Object]; }; }//package Box2D.Dynamics
Section 68
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactListener { public var maxDam:maxDamage; public function b2ContactListener(_arg1:maxDamage):void{ maxDam = _arg1; } public function Add(_arg1:b2ContactPoint):void{ } public function Persist(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Result(_arg1:b2ContactResult):void{ } } //unresolved jump var _local1:String = ((true == false) == arguments); !ERROR! if (!_local1){ b2ContactListener = [OP_NEWCLASS ClassInfo:8 base:Object]; }; }//package Box2D.Dynamics
Section 69
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2Contact; _local3 = (_arg1 as b2Shape); _local4 = (_arg2 as b2Shape); _local5 = _local3.m_body; _local6 = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; _local7 = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } override public function PairRemoved(_arg1, _arg2, _arg3):void{ var _local4:b2Contact; if (_arg3 == null){ return; }; _local4 = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local2:b2Shape; var _local3:b2Shape; var _local4:int; var _local5:b2Body; var _local6:b2Body; var _local7:b2Body; var _local8:b2Body; var _local9:Array; var _local10:b2ContactPoint; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2Vec2; var _local16:b2Vec2; _local2 = _arg1.m_shape1; _local3 = _arg1.m_shape2; _local4 = _arg1.m_manifoldCount; if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = _local2.m_body; _local8 = _local3.m_body; _local9 = _arg1.GetManifolds(); _local10 = s_evalCP; _local10.shape1 = _arg1.m_shape1; _local10.shape2 = _arg1.m_shape1; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; _local5 = _local2.m_body; _local6 = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } public function Collide():void{ var _local1:b2Contact; var _local2:b2Body; var _local3:b2Body; _local1 = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } //unresolved jump var _local1 = _local2; var _local2 = ((true / //unresolved nextvalue or nextname) is !NULL!); //unresolved jump _local2 = (this + true); _local0 = (!NULL! === !NULL!); if (_local2){ b2ContactManager = [OP_NEWCLASS ClassInfo:79 base:b2PairCallback]; }; }//package Box2D.Dynamics
Section 70
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; import flash.display.*; import Box2D.Common.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_lineThickness:Number;// = 1 public var m_drawFlags:uint; public var m_sprite:Sprite; public var m_drawScale:Number;// = 1 public static var e_coreShapeBit:uint = 4; public static var e_shapeBit:uint = 1; public static var e_centerOfMassBit:uint = 64; public static var e_aabbBit:uint = 8; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_jointBit:uint = 2; public function b2DebugDraw(){ m_drawScale = 1; m_lineThickness = 1; m_alpha = 1; m_fillAlpha = 1; m_xformScale = 1; super(); m_drawFlags = 0; } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function GetFlags():uint{ return (m_drawFlags); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } } //unresolved jump _local0 = !((true is false)); var _local1 = ??getglobalscope ; var _local2:Number; if (_local2){ b2DebugDraw = [OP_NEWCLASS ClassInfo:17 base:Object]; }; }//package Box2D.Dynamics
Section 71
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeJoint(_arg1:b2Joint):void{ } public function SayGoodbyeShape(_arg1:b2Shape):void{ } } var _local1:Boolean; //unresolved jump NaN; _local0 = ((false as !NULL!) ^ !NULL!); !ERROR! //unresolved jump _local2 = _local1; if ((((-(!NULL!) - 1)) || (_local2))){ b2DestructionListener = [OP_NEWCLASS ClassInfo:11 base:Object]; }; }//package Box2D.Dynamics
Section 72
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; import Box2D.Dynamics.Joints.*; public class b2Island { public var m_joints:Array; public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies:Array; public var m_jointCapacity:int; public var m_contactCount:int; public var m_contacts:Array; public var m_contactCapacity:int; public var m_jointCount:int; public var m_allocator; public var m_bodyCount:int; private static var s_reportCR:b2ContactResult = new b2ContactResult(); public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){ var _local6:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; m_bodies = new Array(_arg1); _local6 = 0; while (_local6 < _arg1) { m_bodies[_local6] = null; _local6++; }; m_contacts = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { m_contacts[_local6] = null; _local6++; }; m_joints = new Array(_arg3); _local6 = 0; while (_local6 < _arg3) { m_joints[_local6] = null; _local6++; }; m_positionIterationCount = 0; } public function AddBody(_arg1:b2Body):void{ var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } public function Report(_arg1:Array):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local4:int; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; _local4 = 0; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local8:b2ContactSolver; var _local9:int; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Number; var _local14:Number; var _local15:Number; _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; _local8 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local8.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local8.SolveVelocityConstraints(); _local9 = 0; while (_local9 < m_jointCount) { _local7 = m_joints[_local9]; _local7.SolveVelocityConstraints(_arg1); _local9++; }; _local5++; }; _local8.FinalizeVelocityConstraints(); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_sweep.c0.SetV(_local6.m_sweep.c); _local6.m_sweep.a0 = _local6.m_sweep.a; _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y)); _local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity)); _local6.SynchronizeTransform(); }; _local5++; }; if (_arg3){ _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local10 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local12 = _local7.SolvePositionConstraints(); _local11 = ((_local11) && (_local12)); _local5++; }; if (((_local10) && (_local11))){ break; }; m_positionIterationCount++; }; }; Report(_local8.m_constraints); if (_arg4){ _local13 = Number.MAX_VALUE; _local14 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local15 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.m_invMass == 0){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local13 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local15)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local14)))){ _local6.m_sleepTime = 0; _local13 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local13 = b2Math.b2Min(_local13, _local6.m_sleepTime); }; }; _local5++; }; if (_local13 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local3:b2ContactSolver; var _local4:Number; var _local5:b2Body; var _local6:Boolean; _local3 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; _local4 = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } //unresolved jump var _local1 = arguments; var _local2 = -(//unresolved nextvalue or nextname); //unresolved jump if (!((_local1) && (_local2))){ b2Island = [OP_NEWCLASS ClassInfo:31 base:Object]; }; }//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; } //unresolved jump false; var _local1 = (((true as NaN) & !NULL!) <= !NULL!); !ERROR! //unresolved jump !NULL!; if (((_local2) || (this))){ b2TimeStep = [OP_NEWCLASS ClassInfo:12 base:Object]; }; }//package Box2D.Dynamics
Section 74
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; import Box2D.Dynamics.Joints.*; public class b2World { public var m_inv_dt0:Number; public var m_boundaryListener:b2BoundaryListener; public var m_contactList:b2Contact; public var m_blockAllocator; public var m_contactListener:b2ContactListener; public var m_allowSleep:Boolean; public var m_broadPhase:b2BroadPhase; public var m_destructionListener:b2DestructionListener; public var m_jointCount:int; public var m_bodyCount:int; public var m_lock:Boolean; public var m_positionIterationCount:int; public var m_groundBody:b2Body; public var m_contactCount:int; public var m_debugDraw:b2DebugDraw; public var m_contactFilter:b2ContactFilter; public var m_bodyList:b2Body; public var m_stackAllocator; public var m_jointList:b2Joint; public var m_gravity:b2Vec2; public var m_contactManager:b2ContactManager; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); public static var m_continuousPhysics:Boolean; public static var m_warmStarting:Boolean; private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); public static var m_positionCorrection:Boolean; private static var s_xf:b2XForm = new b2XForm(); public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ var _local4:b2BodyDef; m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_positionCorrection = true; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_inv_dt0 = 0; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); _local4 = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2XForm; var _local5:b2XForm; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; _local2 = _arg1.m_body1; _local3 = _arg1.m_body2; _local4 = _local2.m_xf; _local5 = _local3.m_xf; _local6 = _local4.position; _local7 = _local5.position; _local8 = _arg1.GetAnchor1(); _local9 = _arg1.GetAnchor2(); _local10 = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } public function DrawDebugData():void{ var _local1:uint; var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2XForm; var _local12:b2AABB; var _local13:b2AABB; var _local14:Array; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); _local1 = m_debugDraw.GetFlags(); _local7 = new b2Vec2(); _local8 = new b2Vec2(); _local9 = new b2Vec2(); _local10 = new b2Color(0, 0, 0); _local12 = new b2AABB(); _local13 = new b2AABB(); _local14 = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local2:b2JointEdge; var _local3:b2Shape; var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; _local2 = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; _local3 = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local5:b2Color; var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; _local5 = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; }; } public function GetContactCount():int{ return (m_contactCount); } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Island; var _local4:b2Contact; var _local5:b2Joint; var _local6:int; var _local7:Array; var _local8:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; _local3 = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; _local4 = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; _local5 = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; _local6 = m_bodyCount; _local7 = new Array(_local6); _local8 = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.m_manifoldCount == 0){ } else { _local3.AddContact(_local12.contact); _local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag); _local11 = _local12.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local9; _local9 = (_local9 + 1); var _local16 = _temp2; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; }; _local12 = _local12.next; }; _local13 = _local2.m_jointList; while (_local13) { if (_local13.joint.m_islandFlag == true){ } else { _local3.AddJoint(_local13.joint); _local13.joint.m_islandFlag = true; _local11 = _local13.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local9; _local9 = (_local9 + 1); _local16 = _temp3; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; _local13 = _local13.next; }; }; }; _local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep); if (_local3.m_positionIterationCount > m_positionIterationCount){ m_positionIterationCount = _local3.m_positionIterationCount; }; _local10 = 0; while (_local10 < _local3.m_bodyCount) { _local2 = _local3.m_bodies[_local10]; if (_local2.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local10++; }; }; }; _local8 = _local8.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local14 = _local2.SynchronizeShapes(); if ((((_local14 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array; var _local5:int; var _local6:int; _local4 = new Array(_arg3); _local5 = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); _local6 = 0; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local8:b2Island; var _local9:int; var _local10:Array; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; _local8 = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); _local9 = m_bodyCount; _local10 = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.m_shape1; _local4 = _local11.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local19 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local19 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local19); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local19 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local19); }; }; _local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep); if ((((_local18 > 0)) && ((_local18 < 1)))){ _local18 = (((1 - _local18) * _local19) + _local18); if (_local18 > 1){ _local18 = 1; }; }; _local11.m_toi = _local18; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){ _local12 = _local11; _local13 = _local18; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.m_manifoldCount == 0){ } else { _local14 = _local5; if (_local14.IsStatic()){ _local14 = _local6; }; _local8.Clear(); _local15 = 0; var _temp1 = _local15; _local15 = (_local15 + 1); var _local22 = _temp1; _local10[_local22] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local15 > 0) { --_local15; _local2 = _local10[_local15]; _local8.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local8.m_contactCount == _local8.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function Validate():void{ m_broadPhase.Validate(); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function GetBodyList():b2Body{ return (m_bodyList); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetPositionCorrection(_arg1:Boolean):void{ m_positionCorrection = _arg1; } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local2:b2Joint; var _local3:b2Body; var _local4:b2Shape; _local2 = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local2:Boolean; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:b2Shape; _local2 = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; _local3 = _arg1.m_body1; _local4 = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function CreateBody(_arg1:b2BodyDef):b2Body{ var _local2:b2Body; if (m_lock == true){ return (null); }; _local2 = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function Step(_arg1:Number, _arg2:int):void{ var _local3:b2TimeStep; m_lock = true; _local3 = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; _local3.dtRatio = (m_inv_dt0 * _arg1); _local3.positionCorrection = m_positionCorrection; _local3.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((m_continuousPhysics) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_inv_dt0 = _local3.inv_dt; m_lock = false; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } } var _local1:Boolean; //unresolved jump var _local2:int = (((false % !NULL!) % !NULL!) | _local1); //unresolved jump if (((-(((_local1 is !NULL!) >>> !NULL!))) || (this))){ b2World = [OP_NEWCLASS ClassInfo:0 base:Object]; }; }//package Box2D.Dynamics
Section 75
//ag_intro_mc_65 (maxDamage_fla.ag_intro_mc_65) package maxDamage_fla { import flash.display.*; public dynamic class ag_intro_mc_65 extends MovieClip { public function ag_intro_mc_65(){ addFrameScript(0, frame1, 217, frame218); } function frame218(){ MovieClip(parent).nextFrame(); } function frame1(){ MovieClip(parent).stop(); gotoAndPlay(2); } } var _local1:Boolean; //unresolved jump _local1 = (false & !NULL!); var _local2 = _local1; if (!_local2){ //unresolved jump _local2 = ((((!NULL! - !NULL!) instanceof !NULL!) < !NULL!) * !NULL!); //unresolved jump false.ag_intro_mc_65 = [OP_NEWCLASS ClassInfo:114 base:??getglobalscope ]; }; }//package maxDamage_fla
Section 76
//arrow_10 (maxDamage_fla.arrow_10) package maxDamage_fla { import flash.display.*; public dynamic class arrow_10 extends MovieClip { public var triple:MovieClip; } //unresolved jump var _local1:uint = ??getglobalscope ; var _local2 = ((((true / false) ^ !NULL!) * !NULL!) << !NULL!); if (!((_local1) && (_local1))){ //unresolved jump //unresolved jump (this % MovieClip); [OP_NEWCLASS ClassInfo:115 base:(null instanceof !NULL!)].arrow_10 = !NULL!; }; }//package maxDamage_fla
Section 77
//barrel_9 (maxDamage_fla.barrel_9) package maxDamage_fla { import flash.display.*; public dynamic class barrel_9 extends MovieClip { public var bulge:MovieClip; public var thearrow:MovieClip; public var arrowHead:MovieClip; public var shootPoint:MovieClip; } var _local1:Boolean; //unresolved jump var _local2:* = ((false <= !NULL!) & ); if (!((_local2) && (_local2))){ //unresolved jump //unresolved jump ; [OP_NEWCLASS ClassInfo:116 base:((-(((!NULL! == (this < -(null))) is !NULL!)) << MovieClip) & NaN)].barrel_9 = !NULL!; }; }//package maxDamage_fla
Section 78
//cannon_3 (maxDamage_fla.cannon_3) package maxDamage_fla { import flash.display.*; public dynamic class cannon_3 extends MovieClip { public var max:MovieClip; public var barrel:MovieClip; } //unresolved jump var _local1 = (((((true << false) <= !NULL!) >= !NULL!) * !NULL!) - 1); !ERROR! if (_local2){ //unresolved jump var _local3 = this; //unresolved jump _local2 = (((!NULL! >= !NULL!) === (undefined < MovieClip)) >>> !NULL!); [OP_NEWCLASS ClassInfo:117 base:(!NULL! is !NULL!)].cannon_3 = !NULL!; }; }//package maxDamage_fla
Section 79
//canon_13 (maxDamage_fla.canon_13) package maxDamage_fla { import flash.display.*; public dynamic class canon_13 extends MovieClip { public function canon_13(){ addFrameScript(5, frame6); } function frame6(){ stop(); } } //unresolved jump var _local1 = (//unresolved nextvalue or nextname - !NULL!); !ERROR! if (((_local2) || (_local2))){ //unresolved jump var _local3:Boolean = (((this + Object) * !NULL!) + 1); //unresolved jump _local2 = -((MovieClip * NaN)); [OP_NEWCLASS ClassInfo:118 base:!NULL!].canon_13 = !NULL!; }; }//package maxDamage_fla
Section 80
//completeScreen_22 (maxDamage_fla.completeScreen_22) package maxDamage_fla { import flash.display.*; public dynamic class completeScreen_22 extends MovieClip { public var backBtn:SimpleButton; public var back:MovieClip; } var _local1:Boolean; //unresolved jump ??getglobalscope ; var _local2:Object = (-(false) | !NULL!); if (!_local2){ //unresolved jump _local0 = this; //unresolved jump (??hasnext % ??hasnext ).completeScreen_22 = [OP_NEWCLASS ClassInfo:119 base:false]; }; }//package maxDamage_fla
Section 81
//gameScreen_1 (maxDamage_fla.gameScreen_1) package maxDamage_fla { import flash.display.*; public dynamic class gameScreen_1 extends MovieClip { public var bgs:MovieClip; public var cannon:MovieClip; } var _local1:Boolean; //unresolved jump var _temp1 = (((false | !NULL!) <= _local2) & !NULL!); var _local2 = _local3; if (((_local1) || (this))){ //unresolved jump //unresolved jump [OP_NEWCLASS ClassInfo:120 base:(((((//unresolved nextvalue or nextname >>> !NULL!) - MovieClip) ^ !NULL!) - 1) | NaN)].gameScreen_1 = !NULL!; }; }//package maxDamage_fla
Section 82
//max_4 (maxDamage_fla.max_4) package maxDamage_fla { import flash.display.*; public dynamic class max_4 extends MovieClip { public var mouth:MovieClip; public function max_4(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } var _local1:Boolean; //unresolved jump ((false >>> !NULL!) * (false >>> !NULL!)); var _local2:String = (!NULL! << !NULL!); if (((_local1) || (_local2))){ //unresolved jump //unresolved jump [OP_NEWCLASS ClassInfo:121 base:(((this as !NULL!) instanceof !NULL!) - (_local2 & (??getglobalscope & (typeof(undefined) / MovieClip))))].max_4 = !NULL!; }; }//package maxDamage_fla
Section 83
//menuScreen_15 (maxDamage_fla.menuScreen_15) package maxDamage_fla { import flash.display.*; public dynamic class menuScreen_15 extends MovieClip { public var statsBtn:SimpleButton; public var playBtn:SimpleButton; public var armorgames:SimpleButton; } var _local1:Boolean; //unresolved jump _local3; if (!_local2){ //unresolved jump //unresolved jump with (~(((((//unresolved nextvalue or nextname | !NULL!) >> (//unresolved nextvalue or nextname - 1)) + MovieClip) + 1))) { }; [OP_NEWCLASS ClassInfo:122 base:!NULL!].menuScreen_15 = !NULL!; }; }//package maxDamage_fla
Section 84
//mouth_6 (maxDamage_fla.mouth_6) package maxDamage_fla { import flash.display.*; public dynamic class mouth_6 extends MovieClip { public function mouth_6(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } //unresolved jump var _local1 = (!NULL! - !NULL!); !ERROR! if (!_local1){ //unresolved jump _local1 = undefined; //unresolved jump _local2 = MovieClip; [OP_NEWCLASS ClassInfo:123 base:_local3].mouth_6 = !NULL!; }; }//package maxDamage_fla
Section 85
//musicBtn_31 (maxDamage_fla.musicBtn_31) package maxDamage_fla { import flash.display.*; public dynamic class musicBtn_31 extends MovieClip { public function musicBtn_31(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } //unresolved jump var _local1:Boolean; _local1 = (true - 1); !ERROR! if (((_local2) || (_local2))){ //unresolved jump //unresolved jump MovieClip; ((-(Object) + 1) | (??getglobalscope + 1)).musicBtn_31 = [OP_NEWCLASS ClassInfo:124 base:false]; }; }//package maxDamage_fla
Section 86
//soundBtn_32 (maxDamage_fla.soundBtn_32) package maxDamage_fla { import flash.display.*; public dynamic class soundBtn_32 extends MovieClip { public function soundBtn_32(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } var _local1:Boolean; //unresolved jump var _local2 = _local2; if (!((_local2) && (_local2))){ //unresolved jump _local2 = false; //unresolved jump var _temp1 = ((undefined & _local1) / this); _local1 = (typeof(MovieClip) + 1); (??getglobalscope * (??getglobalscope - 1)); false.soundBtn_32 = [OP_NEWCLASS ClassInfo:125 base:_temp1]; }; }//package maxDamage_fla
Section 87
//soundHolder_26 (maxDamage_fla.soundHolder_26) package maxDamage_fla { import flash.display.*; public dynamic class soundHolder_26 extends MovieClip { public function soundHolder_26(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } var _local1:Boolean; //unresolved jump var _local2 = ((!NULL! % !NULL!) | !NULL!); if (((_local1) || (_local2))){ //unresolved jump //unresolved jump with (((((((false - 1) * null) is !NULL!) == !NULL!) | this) <= MovieClip)) { }; [OP_NEWCLASS ClassInfo:126 base:((((((((false - 1) * null) is !NULL!) == !NULL!) | this) <= MovieClip) / _local3) & !NULL!)].soundHolder_26 = !NULL!; }; }//package maxDamage_fla
Section 88
//statsScreen_20 (maxDamage_fla.statsScreen_20) package maxDamage_fla { import flash.display.*; import flash.text.*; public dynamic class statsScreen_20 extends MovieClip { public var backBtn:SimpleButton; public var success:TextField; public var playingTime:TextField; public var highestDamage:TextField; public var failed:TextField; public var passed:TextField; public var averageLevel:TextField; public var averageShot:TextField; public var timesPlayed:TextField; public var random2:TextField; public var shots:TextField; public var totalDamage:TextField; public var random1:TextField; } var _local1:Boolean; //unresolved jump var _local2:* = //unresolved nextvalue or nextname; if (!((_local2) && (_local2))){ //unresolved jump _local2 = ((((false > !NULL!) < !NULL!) - 1) - 1); //unresolved jump var _local3 = (!(_local1) - 1); [OP_NEWCLASS ClassInfo:127 base:((MovieClip < !NULL!) + !NULL!)].statsScreen_20 = !NULL!; }; }//package maxDamage_fla
Section 89
//MochiCoins (mochi.as3.MochiCoins) package mochi.as3 { public class MochiCoins { public static const STORE_HIDE:String = "StoreHide"; public static const LOGGED_IN:String = "LoggedIn"; public static const STORE_ITEMS:String = "StoreItems"; public static const NO_USER:String = "NoUser"; public static const PROPERTIES_SIZE:String = "PropertiesSize"; public static const ITEM_NEW:String = "ItemNew"; public static const USER_INFO:String = "UserInfo"; public static const IO_ERROR:String = "IOError"; public static const ITEM_OWNED:String = "ItemOwned"; 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_SHOW:String = "LoginShow"; public static const STORE_SHOW:String = "StoreShow"; public static const PROFILE_HIDE:String = "ProfileHide"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); 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.bringToTop(); MochiServices.send("coins_showItem", {options:_arg1}, null, null); } public static function saveUserProperties(_arg1:Object):void{ MochiServices.send("coins_saveUserProperties", _arg1); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function showLoginWidget(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("coins_showLoginWidget", {options:_arg1}); } public static function getStoreItems():void{ MochiServices.send("coins_getStoreItems"); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function showStore(_arg1:Object=null):void{ MochiServices.bringToTop(); MochiServices.send("coins_showStore", {options:_arg1}, null, null); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function getUserInfo():void{ MochiServices.send("coins_getUserInfo"); } public static function hideLoginWidget():void{ MochiServices.send("coins_hideLoginWidget"); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } } //unresolved jump var _local1 = ((((true >> false) / !NULL!) >>> !NULL!) + !NULL!); !ERROR! if (_local2){ MochiCoins = [OP_NEWCLASS ClassInfo:36 base:Object]; }; }//package mochi.as3
Section 90
//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); } } var _local1:Boolean; //unresolved jump var _local2 = (-((!NULL! * !NULL!)) + 1); _local2 = !NULL!; if (_local1){ MochiEventDispatcher = [OP_NEWCLASS ClassInfo:41 base:Object]; }; }//package mochi.as3
Section 91
//MochiEvents (mochi.as3.MochiEvents) package mochi.as3 { import flash.display.*; public class MochiEvents { public static const ALIGN_BOTTOM_LEFT:String = "ALIGN_BL"; public static const FORMAT_LONG:String = "LongForm"; public static const ALIGN_BOTTOM:String = "ALIGN_B"; public static const ACHIEVEMENT_RECEIVED:String = "AchievementReceived"; public static const FORMAT_SHORT:String = "ShortForm"; public static const ALIGN_TOP_RIGHT:String = "ALIGN_TR"; public static const ALIGN_BOTTOM_RIGHT:String = "ALIGN_BR"; public static const ALIGN_TOP:String = "ALIGN_T"; public static const ALIGN_LEFT:String = "ALIGN_L"; public static const ALIGN_RIGHT:String = "ALIGN_R"; public static const ALIGN_TOP_LEFT:String = "ALIGN_TL"; public static const ALIGN_CENTER:String = "ALIGN_C"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); private static var gameStart:Number; private static var levelStart:Number; public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function startSession(_arg1:String):void{ MochiServices.send("events_beginSession", {achievementID:_arg1}, null, null); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function setNotifications(_arg1:MovieClip, _arg2:Object):void{ var _local3:Object; var _local4:Object; _local3 = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; _local3.clip = _arg1; MochiServices.send("events_setNotifications", _local3, null, null); } public static function endGame():void{ var _local1:Number; _local1 = (new Date().time - gameStart); trigger("end_game", {time:_local1}); } public static function startGame():void{ gameStart = new Date().time; trigger("start_game"); } public static function trigger(_arg1:String, _arg2:Object=null):void{ if (_arg2 == null){ _arg2 = {}; } else { if (_arg2["kind"] != undefined){ trace("WARNING: optional arguements package contains key 'id', it will be overwritten"); _arg2["kind"] = _arg1; }; }; MochiServices.send("events_triggerEvent", {eventObject:_arg2}, null, null); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function startLevel():void{ levelStart = new Date().time; trigger("start_level"); } public static function endLevel():void{ var _local1:Number; _local1 = (new Date().time - levelStart); trigger("end_level", {time:_local1}); } } //unresolved jump var _local1 = ((true as false) * _local3); !ERROR! //unresolved jump if (!((_local1) && (_local2))){ MochiEvents = [OP_NEWCLASS ClassInfo:55 base:Object]; }; }//package mochi.as3
Section 92
//MochiServices (mochi.as3.MochiServices) package mochi.as3 { import flash.display.*; import flash.events.*; import flash.net.*; import flash.utils.*; import flash.geom.*; import flash.system.*; public class MochiServices { private static var _container:Object; private static var _connected:Boolean = false; private static var _swfVersion:String; private static var _preserved:Object; public static var netupAttempted:Boolean = false; private static var _sendChannel:LocalConnection; public static var servicesSync:MochiSync = new MochiSync(); private static var _clip:MovieClip; private static var _loader:Loader; private static var _id:String; private static var _listenChannel:LocalConnection; public static var widget:Boolean = false; private static var _timer:Timer; private static var _sendChannelName:String; private static var _connecting:Boolean = false; private static var _listenChannelName:String = "__ms_"; public static var onError:Object; private static var _servicesURL:String = "http://www.mochiads.com/static/lib/services/services.swf"; public static var netup:Boolean = true; public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function get connected():Boolean{ return (_connected); } private static function flush(_arg1:Boolean):void{ var _local2:Object; var _local3:Object; if (_clip != null){ if (_clip._queue != null){ while (_clip._queue.length > 0) { _local2 = _clip._queue.shift(); _local3 = null; if (_local2 != null){ if (_local2.callbackID != null){ _local3 = _clip._callbacks[_local2.callbackID]; }; delete _clip._callbacks[_local2.callbackID]; if (((_arg1) && (!((_local3 == null))))){ handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod); }; }; }; }; }; } public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{ if (_connected){ _sendChannel.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ trace(("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + _arg1)); handleError(_arg2, _arg3, _arg4); flush(true); return; }; _clip._queue.push({methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); }; if (_clip != null){ if (((!((_clip._callbacks == null))) && (!((_clip._nextcallbackID == null))))){ _clip._callbacks[_clip._nextcallbackID] = {callbackObject:_arg3, callbackMethod:_arg4}; _clip._nextcallbackID++; }; }; } private static function init(_arg1:String, _arg2:Object):void{ _id = _arg1; if (_arg2 != null){ _container = _arg2; loadCommunicator(_arg1, _container); }; } public static function get childClip():Object{ return (_clip); } private static function clickMovie(_arg1:String, _arg2:Function):MovieClip{ var _local3:Array; var _local4:int; var _local5:Array; var _local6:Array; var _local7:MovieClip; var _local8:LocalConnection; var _local9:String; var _local10:ByteArray; var _local11:ByteArray; var _local12:uint; var _local13:uint; var _local14:Loader; _local3 = [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]; _local5 = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3]; _local6 = [0, 64, 0, 0, 0]; _local7 = new MovieClip(); _local8 = new LocalConnection(); _local9 = ((("_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); _local10 = new ByteArray(); _local11 = new ByteArray(); _local11.endian = Endian.LITTLE_ENDIAN; _local11.writeShort(1); _local11.writeUTFBytes(((_arg1 + " ") + _local9)); _local11.writeByte(0); _local12 = ((_local3.length + _local11.length) + 4); _local13 = (_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); } public static function stayOnTop():void{ _container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true); if (_clip != null){ _clip.visible = true; }; } public static function addLinkEvent(_arg1:String, _arg2:String, _arg3:DisplayObjectContainer, _arg4:Function=null):void{ var vars:Object; var avm1Click:DisplayObject; var s:String; var i:Number; 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; vars = 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); s = "?"; i = 0; for (x in vars) { if (i != 0){ s = (s + "&"); }; i = (i + 1); s = (((s + x) + "=") + escape(vars[x])); }; req = new URLRequest("http://x.mochiads.com/linkping.swf"); loader = new Loader(); setURL = function (_arg1:String):void{ var _local3:Boolean; //unresolved jump !NULL!; var _local4 = ((!NULL! | !NULL!) - !NULL!); var _local2:Rectangle; if (((_local3) || (this))){ //unresolved if //unresolved if }; btn.removeChild(avm1Click); if (((_local3) || (_local2))){ avm1Click = clickMovie(_arg1, onClick); }; //unresolved jump _local2 = _arg1; if (((_local3) || (_local3))){ btn.addChild(avm1Click); //unresolved if }; avm1Click.x = _local2.x; if (!_local4){ avm1Click.y = _local2.y; //unresolved if }; //unresolved jump _local2 = typeof((!NULL! >>> !NULL!)); !NULL!.scaleX = !NULL!; if (_local3){ avm1Click.scaleY = (0.01 * _local2.height); }; }; err = function (_arg1:Object):void{ //unresolved jump ((true + false) >= !NULL!); !ERROR! !ERROR! netup = false; if (_local4){ //unresolved jump ((-(!NULL!) - undefined) * !NULL!).target.removeEventListener(_arg1.type, arguments.callee); //unresolved jump _arg1 = -(((_local4 << (_local4 + 1)) ^ !NULL!)); if (!!NULL!){ !NULL!; }; if (!NULL!){ setURL(burl); }; }; }; complete = function (_arg1:Object):void{ //unresolved jump !NULL!.type.removeEventListener(arguments.callee, !NULL!); }; 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 warnID(_arg1:String, _arg2:Boolean):void{ var _local3:Number; _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; }; }; }; _local3 = 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++; }; } 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 { _listenChannel.close(); } catch(error:Error) { }; }; if (_timer != null){ try { _timer.stop(); } 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.1 as3"); } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); } private static function onStatus(_arg1:StatusEvent):void{ switch (_arg1.level){ case "error": _connected = false; _listenChannel.connect(_listenChannelName); break; }; } public static function get id():String{ return (_id); } private static function urlOptions(_arg1:Object):Object{ var _local2:Object; var _local3:String; var _local4:Array; var _local5:Number; var _local6:Array; _local2 = {}; _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 setContainer(_arg1:Object=null, _arg2:Boolean=true):void{ if (_arg1 != null){ if ((_arg1 is Sprite)){ _container = _arg1; }; }; if (_arg2){ if ((_container is Sprite)){ Sprite(_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 initComChannels():void{ if (!_connected){ _sendChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", preserved:_preserved, id:_id, clip:_container, version:getVersion(), parentURL:_container.loaderInfo.loaderURL}); _listenChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus); _clip.onReceive = function (_arg1:Object):void{ var _local4:Boolean; //unresolved jump _local0 = this; var _local5 = ((((false - !NULL!) + !NULL!) & !NULL!) + !NULL!); if (((_local4) || (_local3))){ if (!_local5){ var cb:String; //unresolved if //unresolved if var cblst:Object; //unresolved if var method:*; //unresolved if //unresolved if }; var methodName:String; }; var obj:Object; var pkg = _arg1; if (!((_local5) && (_arg1))){ if (((_local4) || (_local3))){ //unresolved if cb = pkg.callbackID; if (_local4){ cblst = _local0.client._callbacks[cb]; //unresolved if }; if (!cblst){ //unresolved if return; }; //unresolved if //unresolved if }; method = cblst.callbackMethod; if (!_local5){ methodName = ""; if (_local4){ if (_local4){ //unresolved if obj = cblst.callbackObject; }; //unresolved if if (obj){ //unresolved if obj; //unresolved if }; if (obj){ if (((_local4) || (_local3))){ //unresolved if methodName = method; //unresolved if }; if (obj[method] != null){ //unresolved if method = obj[method]; //unresolved if } else { trace((("Error: Method " + method) + " does not exist.")); //unresolved if }; }; }; //unresolved if try { //unresolved if method.apply(obj, pkg.args); } catch(error:Error) { trace(((("Error invoking callback method '" + methodName) + "': ") + error.toString())); }; }; method.apply(obj, pkg.args); //unresolved jump var _slot1 = error; trace(((("Error invoking callback method '" + methodName) + "': ") + pkg.toString())); //unresolved jump }; if (obj != null){ try { obj(pkg.args); } catch(error:Error) { trace(("Error invoking method on object: " + error.toString())); //unresolved jump var _local3:Boolean; }; }; delete _local0.client._callbacks[cb]; }; _clip.onError = function ():void{ MochiServices.onError("IOError"); }; _clip.onEvent = function (_arg1:Object):void{ var _local5:Boolean; //unresolved jump _local0 = ((??hasnext & !NULL!) < !NULL!); var _local6 = !((!NULL! * !NULL!)); var _local2:String; var _local3:String; if (_local5){ //unresolved if _local2 = _arg1.target; //unresolved if }; _local3 = _arg1.event; switch (_local2){ MochiEvents.triggerEvent(_arg1.event, _arg1.args); //unresolved if break; MochiCoins.triggerEvent(_arg1.event, _arg1.args); //unresolved if break; //unresolved jump (((servicesSync << (_arg1.event >>> -(_arg1))) ^ !NULL!) - !NULL!).args.triggerEvent(!NULL!, !NULL!); //unresolved if break; }; }; trace("[SERVICES_API] connected!"); _connecting = false; _connected = true; while (_clip._queue.length > 0) { _sendChannel.send(_sendChannelName, "onReceive", _clip._queue.shift()); }; }; } private static function listen():void{ _listenChannel = new LocalConnection(); _listenChannel.client = _clip; _clip.handshake = function (_arg1:Object):void{ MochiServices.comChannelName = _arg1.newChannel; }; _listenChannel.allowDomain("*", "localhost"); _listenChannel.allowInsecureDomain("*", "localhost"); _listenChannel.connect(_listenChannelName); trace("Waiting for MochiAds services to connect..."); } public static function get clip():Object{ return (_container); } 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{ var clipname:String; var f:Function; var req:URLRequest; var vars:URLVariables; var id = _arg1; var clip = _arg2; clipname = ("_mochiservices_com_" + id); if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; if (urlOptions(clip).servicesURL != undefined){ _servicesURL = urlOptions(clip).servicesURL; }; MochiServices.allowDomains(_servicesURL); _clip = createEmptyMovieClip(clip, clipname, 10336, false); _loader = new Loader(); f = function (_arg1:Object):void{ //unresolved jump var _local2:* = false; var _local3:Boolean; _local2 = this; _local3 = (null >> !NULL!); _clip._mochiad_ctr_failed = true; if (((_local3) || ((false < !NULL!)))){ trace("MochiServices could not load."); //unresolved if }; MochiServices.disconnect(); if (_local3){ MochiServices.onError("IOError"); }; }; _listenChannelName = (_listenChannelName + ((Math.floor(new Date().time) + "_") + Math.floor((Math.random() * 99999)))); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f); req = new URLRequest(_servicesURL); vars = new URLVariables(); vars.listenLC = _listenChannelName; vars.mochiad_options = clip.loaderInfo.parameters.mochiad_options; if (widget){ vars.widget = true; }; req.data = vars; listen(); _loader.load(req); _clip.addChild(_loader); _clip._mochiservices_com = _loader; _sendChannel = new LocalConnection(); _clip._queue = []; _clip._nextcallbackID = 0; _clip._callbacks = {}; _timer = new Timer(10000, 1); _timer.addEventListener(TimerEvent.TIMER, connectWait); _timer.start(); return (_clip); } 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 (((!(_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 createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Boolean=true):MovieClip{ var mc:MovieClip; var parent = _arg1; var name = _arg2; var depth = _arg3; var doAdd = _arg4; mc = new MovieClip(); if (doAdd){ if (((false) && (depth))){ parent.addChildAt(mc, depth); } else { parent.addChild(mc); }; }; try { parent[name] = mc; } catch(e:Error) { throw (new Error("MochiServices requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; mc["_name"] = name; return (mc); } 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"); }; } } //unresolved jump var _local2:Boolean; var _local1 = //unresolved nextvalue or nextname; _local2 = !NULL!; if (_local2){ MochiServices = [OP_NEWCLASS ClassInfo:50 base:Object]; }; }//package mochi.as3
Section 93
//MochiSync (mochi.as3.MochiSync) package mochi.as3 { import flash.utils.*; public dynamic class MochiSync extends Proxy { private var _syncContainer:Object; public static var SYNC_PROPERTY:String = "UpdateProperty"; public static var SYNC_REQUEST:String = "SyncRequest"; public function MochiSync():void{ _syncContainer = {}; } public function triggerEvent(_arg1:String, _arg2:Object):void{ switch (_arg1){ case SYNC_REQUEST: MochiServices.send("sync_syncronize", _syncContainer); break; case SYNC_PROPERTY: _syncContainer[_arg2.name] = _arg2.value; break; }; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){ return (_syncContainer[_arg1]); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{ var _local3:String; if (_syncContainer[_arg1] == _arg2){ return; }; _local3 = _arg1.toString(); _syncContainer[_local3] = _arg2; MochiServices.send("sync_propUpdate", {name:_local3, value:_arg2}); } } var _local1:Boolean; //unresolved jump var _local2 = (??hasnext is !NULL!); //unresolved jump if (_local1){ MochiSync = [OP_NEWCLASS ClassInfo:80 base:Proxy]; }; }//package mochi.as3
Section 94
//art (art) package { public dynamic class art extends target { public function art():void{ addFrameScript(0, frame1); this.tname = "Lovely Artwork"; this.tvalue = 2000; this.damage = 0; this.flammable = true; this.flaming = false; } function frame1(){ stop(); } } var _local1:Boolean; //unresolved jump var _local2 = null; _local2 = ((//unresolved nextvalue or nextname + 1) as _local1); if (!((_local2) && (_local2))){ //unresolved jump var _local3 = EventDispatcher; _local1 = ( instanceof (false - 1)); //unresolved jump ( + 1); (!NULL! / ([OP_NEWCLASS ClassInfo:143 base:target] + 1)).art = !NULL!; }; }//package
Section 95
//back (back) package { import flash.display.*; public dynamic class back extends MovieClip { public function back(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } var _local1:Boolean; //unresolved jump var _local2 = (!NULL! << (((//unresolved nextvalue or nextname + 1) - !NULL!) is !NULL!)); if (_local1){ //unresolved jump //unresolved jump _local0 = (( / -(_local2)) >= MovieClip); [OP_NEWCLASS ClassInfo:101 base:((( << !NULL!) > !NULL!) + ??getglobalscope )].back = !NULL!; }; }//package
Section 96
//ballTrail (ballTrail) package { import flash.display.*; import flash.geom.*; import flash.filters.*; public class ballTrail extends MovieClip { private var fparticle:BitmapData; private var rect:Rectangle; private var pt:Point; private var eparticle:BitmapData; private var effectRect:Rectangle; private var blurEffect:BlurFilter; private var bitmapDataLayer:BitmapData; private var effectPt:Point; private var frect:Rectangle; private var particle:BitmapData; private var blurAmount:int;// = 10 private var erect:Rectangle; private static const FLAMEPIX = 8; private static const NUMPIX = 3; private static const EXPLODEPIX = 1.5; public function ballTrail():void{ var _local1:Bitmap; var _local2:Shape; var _local3:Shape; blurAmount = 10; super(); blurEffect = new BlurFilter(blurAmount, blurAmount, 1); pt = new Point(); rect = new Rectangle(0, 0, (ballTrail.NUMPIX * 2), (ballTrail.NUMPIX * 2)); erect = new Rectangle(0, 0, (ballTrail.EXPLODEPIX * 2), (ballTrail.EXPLODEPIX * 2)); frect = new Rectangle(0, 0, ballTrail.FLAMEPIX, ballTrail.FLAMEPIX); effectRect = new Rectangle(0, 0, maxDamage.RIGHT, maxDamage.BOTTOM); effectPt = new Point(0, 0); bitmapDataLayer = new BitmapData(maxDamage.RIGHT, maxDamage.BOTTOM, true, 0); _local1 = new Bitmap(bitmapDataLayer); this.addChild(_local1); _local2 = new Shape(); _local2.graphics.beginFill(910069); _local2.graphics.drawCircle(ballTrail.EXPLODEPIX, ballTrail.EXPLODEPIX, ballTrail.EXPLODEPIX); eparticle = new BitmapData((ballTrail.EXPLODEPIX * 2), (ballTrail.EXPLODEPIX * 2), true, 0); eparticle.draw(_local2); _local3 = new Shape(); _local3.graphics.beginFill(0x999999); _local3.graphics.drawRect(0, 0, ballTrail.FLAMEPIX, ballTrail.FLAMEPIX); fparticle = new BitmapData(ballTrail.FLAMEPIX, ballTrail.FLAMEPIX, true, 0); fparticle.draw(_local3); } public function doFilter():void{ bitmapDataLayer.applyFilter(bitmapDataLayer, effectRect, effectPt, blurEffect); } public function copyBall(_arg1:MovieClip):void{ pt.x = (_arg1.x - ballTrail.NUMPIX); pt.y = (_arg1.y - ballTrail.NUMPIX); bitmapDataLayer.copyPixels(particle, rect, pt, null, null, true); } public function copyFlaming(_arg1:MovieClip):void{ pt.x = (_arg1.x - (ballTrail.FLAMEPIX / 2)); pt.y = (_arg1.y - ballTrail.FLAMEPIX); bitmapDataLayer.copyPixels(fparticle, frect, pt, null, null, true); } public function copyFragment(_arg1:MovieClip):void{ pt.x = (_arg1.x - ballTrail.EXPLODEPIX); pt.y = (_arg1.y - ballTrail.EXPLODEPIX); bitmapDataLayer.copyPixels(eparticle, erect, pt, null, null, true); } public function setTrailColor(_arg1:uint):void{ var _local2:Shape; _local2 = new Shape(); _local2.graphics.beginFill(_arg1); _local2.graphics.drawCircle(ballTrail.NUMPIX, ballTrail.NUMPIX, ballTrail.NUMPIX); particle = new BitmapData((ballTrail.NUMPIX * 2), (ballTrail.NUMPIX * 2), true, 0); particle.draw(_local2); } } var _local1:Boolean; //unresolved jump var _local2 = ((((false | !NULL!) << null) % !NULL!) as !NULL!); if (!((_local2) && (this))){ //unresolved jump //unresolved jump _local2 = (typeof(NaN) === (MovieClip + 1)); [OP_NEWCLASS ClassInfo:142 base:((true as !NULL!) >>> ??getglobalscope )].ballTrail = !NULL!; }; }//package
Section 97
//bounceSnd (bounceSnd) package { import flash.media.*; public dynamic class bounceSnd extends Sound { } var _local1:Boolean; //unresolved jump var _temp1 = _local2; var _local2 = (_local2 + 1); if (!((_local2) && (this))){ //unresolved jump [OP_NEWCLASS ClassInfo:81 base:Sound].bounceSnd = !NULL!; }; }//package
Section 98
//bouncyBall (bouncyBall) package { import flash.display.*; public dynamic class bouncyBall extends MovieClip { } var _local1:Boolean; //unresolved jump var _local2 = _local1; if (((_local1) || (this))){ //unresolved jump //unresolved jump _local3.bouncyBall = [OP_NEWCLASS ClassInfo:102 base:_local3]; }; }//package
Section 99
//box (box) package { public dynamic class box extends target { public function box():void{ addFrameScript(0, frame1); this.tname = "Office supplies"; this.tvalue = 10; this.damage = 0; this.flammable = true; this.flaming = false; } function frame1(){ stop(); } } var _local1:Boolean; //unresolved jump _local1 = ((false - !NULL!) - !NULL!); !ERROR! if (!_local2){ //unresolved jump //unresolved jump _local1 = ([OP_NEWCLASS ClassInfo:144 base:target] === !NULL!); ((-(!NULL!) - 1) + 1).box = !NULL!; }; }//package
Section 100
//brick (brick) package { import flash.display.*; public dynamic class brick extends MovieClip { } var _local1:Boolean; //unresolved jump var _local3:Boolean; _local0 = (//unresolved nextvalue or nextname as null); !ERROR! if (!((_local2) && (_local0))){ //unresolved jump _local3; //unresolved jump with ((((((typeof(-()) as !NULL!) << !NULL!) * MovieClip) + !NULL!) as !NULL!)) { }; !NULL!.brick = [OP_NEWCLASS ClassInfo:103 base:??hasnext ]; }; }//package
Section 101
//buttonSnd (buttonSnd) package { import flash.media.*; public dynamic class buttonSnd extends Sound { } var _local1:Boolean; //unresolved jump !ERROR! //unresolved jump _local2 = this; if (null){ buttonSnd = [OP_NEWCLASS ClassInfo:82 base:Sound]; }; }//package
Section 102
//cannonBall (cannonBall) package { import flash.display.*; public dynamic class cannonBall extends MovieClip { } var _local1:Boolean; //unresolved jump var _local2 = ((_local1 ^ undefined) / false); if (!((_local2) && (this))){ //unresolved jump //unresolved jump var _local3:Object = MovieClip; _local0 = ((!NULL! as -(((typeof(( <= !NULL!)) == !NULL!) - 1))) instanceof !NULL!); [OP_NEWCLASS ClassInfo:104 base:(!NULL! - 1)].cannonBall = !NULL!; }; }//package
Section 103
//damageExceedSnd (damageExceedSnd) package { import flash.media.*; public dynamic class damageExceedSnd extends Sound { } //unresolved jump var _local1 = !((typeof(false) + 1)); var _local2 = typeof(false); //unresolved jump _local0 = _local2; _local0 = (!NULL! * (true instanceof _local2)); if (!NULL!){ damageExceedSnd = [OP_NEWCLASS ClassInfo:83 base:Sound]; }; }//package
Section 104
//damageSnd (damageSnd) package { import flash.media.*; public dynamic class damageSnd extends Sound { } //unresolved jump var _local2:Boolean; var _local1:int = ((!NULL! & !NULL!) - !NULL!); _local2 = !NULL!; if (_local1){ //unresolved jump (typeof((!NULL! as !NULL!)) - 1); }; if (!_local1){ //unresolved jump [OP_NEWCLASS ClassInfo:84 base:Sound].damageSnd = !NULL!; }; }//package
Section 105
//evar (evar) package { import flash.display.*; public class evar extends Sprite { private var b:uint; private var a:uint; public function evar():void{ bothzero(); } public function addup(_arg1:uint):void{ var _local2:Number; _local2 = (Math.round((Math.random() * 168)) + 17); if (Math.random() > 0.5){ a = (a + (_arg1 + _local2)); b = (b - _local2); } else { b = (b + (_arg1 + _local2)); a = (a - _local2); }; } public function bothzero():void{ a = (b = 0); } public function getVal():uint{ return ((a + b)); } } //unresolved jump var _local1 = ((true > false) + 1); _local1 = this; var _local2 = _local2; if (_local2){ //unresolved jump //unresolved jump null; ((false + 1) - !NULL!).evar = [OP_NEWCLASS ClassInfo:99 base:Sprite]; }; }//package
Section 106
//explodeBall (explodeBall) package { import flash.display.*; public dynamic class explodeBall extends MovieClip { } var _local1:Boolean; //unresolved jump _local1 = (false & !NULL!); var _local2 = null; if (!_local2){ //unresolved jump with (undefined) { _local0 = _local2; //unresolved jump var _local3:uint = (MovieClip - _local1); }; NaN.explodeBall = [OP_NEWCLASS ClassInfo:105 base:(_local2 + 1)]; }; }//package
Section 107
//explodeSnd (explodeSnd) package { import flash.media.*; public dynamic class explodeSnd extends Sound { } //unresolved jump (((((true % false) + 1) is !NULL!) + !NULL!) + !NULL!); !ERROR! !ERROR! //unresolved jump _local2 = _local1; if (!true){ explodeSnd = [OP_NEWCLASS ClassInfo:85 base:Sound]; }; }//package
Section 108
//explodingBall (explodingBall) package { import flash.display.*; public dynamic class explodingBall extends MovieClip { } //unresolved jump var _local1:*; var _local2 = (false + !NULL!); if (!_local1){ //unresolved jump //unresolved jump _local2 = ??hasnext ; [OP_NEWCLASS ClassInfo:106 base:(!NULL! > _local3)].explodingBall = !NULL!; }; }//package
Section 109
//flame (flame) package { import flash.display.*; public dynamic class flame extends MovieClip { public function flame(){ addFrameScript(11, frame12); } function frame12(){ this.gotoAndPlay("flicker"); } } //unresolved jump !NULL!; var _local1 = ( == ); !ERROR! if (!((_local1) && (_local1))){ //unresolved jump //unresolved jump [OP_NEWCLASS ClassInfo:107 base:??hasnext ].flame = !NULL!; }; }//package
Section 110
//flameSnd (flameSnd) package { import flash.media.*; public dynamic class flameSnd extends Sound { } var _local1:Boolean; //unresolved jump var _local2 = _local3; if (!((_local2) && (this))){ //unresolved jump [OP_NEWCLASS ClassInfo:86 base:Sound].flameSnd = !NULL!; }; }//package
Section 111
//flamingBall (flamingBall) package { import flash.display.*; public dynamic class flamingBall extends MovieClip { } var _local1:Boolean; //unresolved jump var _local2 = (((!NULL! <= (false instanceof _local3)) - 1) <= !NULL!); if (!_local2){ //unresolved jump //unresolved jump [OP_NEWCLASS ClassInfo:108 base:-(!NULL!)].flamingBall = !NULL!; }; }//package
Section 112
//flyingTarget (flyingTarget) package { import flash.display.*; public dynamic class flyingTarget extends MovieClip { public function flyingTarget(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } var _local1:Boolean; //unresolved jump var _local3 = (((false - !NULL!) as !NULL!) / !NULL!); var _local2 = (-(!NULL!) & !NULL!); if (!((_local2) && (_local2))){ //unresolved jump //unresolved jump var _temp1 = -(_local3); _local3 = NaN; (null >> MovieClip).flyingTarget = [OP_NEWCLASS ClassInfo:109 base:true]; }; }//package
Section 113
//fridge (fridge) package { public dynamic class fridge extends target { public function fridge():void{ addFrameScript(0, frame1); this.tname = "Fridge"; this.tvalue = 1000; this.damage = 0; this.flammable = false; this.flaming = false; } function frame1(){ stop(); } } //unresolved jump _local0 = false; var _local1 = (((true % !NULL!) % !NULL!) - !NULL!); !ERROR! if (_local2){ //unresolved jump _local1 = (-(( << (DisplayObject | ))) >= !NULL!); //unresolved jump ([OP_NEWCLASS ClassInfo:145 base:target] & (~(null) - 1)).fridge = !NULL!; }; }//package
Section 114
//gameCompleteSnd (gameCompleteSnd) package { import flash.media.*; public dynamic class gameCompleteSnd extends Sound { } var _local1:Boolean; //unresolved jump (false >= !NULL!); (((!NULL! << !NULL!) - !NULL!) | !NULL!); !ERROR! if (((_local1) || (_local1))){ //unresolved jump [OP_NEWCLASS ClassInfo:87 base:Sound].gameCompleteSnd = !NULL!; }; }//package
Section 115
//gameOverUI (gameOverUI) package { import flash.display.*; import mochi.as3.*; import flash.events.*; public class gameOverUI extends Sprite { private var completeScreen:MovieClip; private var targets:Array; private var maxDam:maxDamage; private var numTargets:uint; public function gameOverUI(_arg1:maxDamage, _arg2:MovieClip):void{ targets = new Array(); super(); maxDam = _arg1; completeScreen = _arg2; } public function clearTargets(_arg1:MovieClip):void{ var _local2:uint; _local2 = 0; while (_local2 < numTargets) { _arg1.removeChild(targets[_local2]); _local2++; }; removeEventListener(Event.ENTER_FRAME, moveTargets); targets = []; } public function showTargets(_arg1:MovieClip):void{ var _local2:uint; numTargets = Math.round((8 + (Math.random() * 10))); _local2 = 0; while (_local2 < numTargets) { targets[_local2] = MovieClip(new flyingTarget()); targets[_local2].gotoAndStop(Math.round((1 + (Math.random() * 5)))); _arg1.addChild(targets[_local2]); targets[_local2].x = (Math.random() * 640); targets[_local2].y = (Math.random() * 480); targets[_local2].dx = (5 - (Math.random() * 10)); targets[_local2].dy = (5 - (Math.random() * 10)); targets[_local2].rot = (4 - (Math.random() * 2)); _local2++; }; addEventListener(Event.ENTER_FRAME, moveTargets, false, 0, true); } private function moveTargets(_arg1:Event):void{ var _local2:uint; _local2 = 0; while (_local2 < numTargets) { targets[_local2].x = (targets[_local2].x + targets[_local2].dx); targets[_local2].y = (targets[_local2].y + targets[_local2].dy); targets[_local2].rotation = (targets[_local2].rotation + targets[_local2].rot); if ((((targets[_local2].x < 0)) && ((targets[_local2].dx < 0)))){ targets[_local2].dx = (targets[_local2].dx * -1); }; if ((((targets[_local2].x > 640)) && ((targets[_local2].dx > 0)))){ targets[_local2].dx = (targets[_local2].dx * -1); }; if ((((targets[_local2].y < 0)) && ((targets[_local2].dy < 0)))){ targets[_local2].dy = (targets[_local2].dy * -1); }; if ((((targets[_local2].y > 480)) && ((targets[_local2].dy > 0)))){ targets[_local2].dy = (targets[_local2].dy * -1); }; _local2++; }; } } //unresolved jump var _local1 = (true & ((//unresolved nextvalue or nextname + 1) >= NaN)); !ERROR! if (!_local1){ //unresolved jump //unresolved jump ((typeof((??hasnext + -(_local1))) - !NULL!) >>> !NULL!).gameOverUI = [OP_NEWCLASS ClassInfo:95 base:Sprite]; }; }//package
Section 116
//generalUI (generalUI) package { import flash.display.*; import flash.events.*; import flash.net.*; import flash.utils.*; import flash.text.*; import flash.ui.*; public class generalUI extends Sprite { public function fadeScreen(_arg1:MovieClip, _arg2:MovieClip, _arg3:Number=0.01, _arg4:Boolean=true):void{ var i:Number; var fadeOutListener:Function; var fadeInListener:Function; var oldScreen = _arg1; var newScreen = _arg2; var alphaPerFrame = _arg3; var fadeIn = _arg4; fadeOutListener = function (_arg1:Event):void{ //unresolved jump _arg1 = this; var _local3 = -(((true instanceof false) >= !NULL!)); var _local4 = ((true instanceof false) >= !NULL!); i = (i - alphaPerFrame); if (!_local3){ //unresolved if //unresolved if hideit(oldScreen); showit(newScreen, 0, 0); }; //unresolved jump ((!NULL! - !NULL!) == !NULL!).alpha = 1; removeEventListener(Event.ENTER_FRAME, fadeOutListener); if (fadeIn){ i = (newScreen.alpha = 0); addEventListener(Event.ENTER_FRAME, fadeInListener, false, 0, false); //unresolved jump if (!(!NULL! as !NULL!)){ !NULL!; }; //unresolved if }; //unresolved jump oldScreen.alpha = i; }; fadeInListener = function (_arg1:Event):void{ //unresolved jump var _local2 = ((true + //unresolved nextvalue or nextname) + !NULL!); !ERROR! i = (i + alphaPerFrame); if (((_local3) || (this))){ //unresolved jump _local0 = (??hasnext + !NULL!); //unresolved if //unresolved if newScreen.alpha = 1; //unresolved if }; //unresolved jump NaN.removeEventListener((-() - 1).ENTER_FRAME, fadeInListener); if (_local3){ //unresolved jump newScreen.alpha = i; }; }; i = 1; addEventListener(Event.ENTER_FRAME, fadeOutListener, false, 0, false); } public function scrollTxt(_arg1:String, _arg2:TextField, _arg3:uint=1, _arg4:uint=0):void{ var newTxt:String; var j:uint; var myTimer:Timer; var timerHandler:Function; var scrollListener:Function; var txt = _arg1; var dTxt = _arg2; var framesPerChar = _arg3; var delay = _arg4; timerHandler = function (_arg1:TimerEvent):void{ var _local2:Boolean; //unresolved jump var _local3:Number = _arg1; //unresolved jump (((false is !NULL!) is !NULL!) + 1).addEventListener(((( - (Event.ENTER_FRAME % scrollListener)) + 1) >= ((( - (Event.ENTER_FRAME % scrollListener)) + 1) + 1)), false, 0, false, !NULL!); if (!((_local3) && (_arg1))){ myTimer.removeEventListener("timer", timerHandler); }; }; scrollListener = function (_arg1:Event):void{ //unresolved jump false; var _local4 = (((true <= this) ^ !NULL!) / !NULL!); !ERROR! var _local3 = (j + 1); if (!((_local4) && (_arg1))){ j = _local3; }; if (((_local5) || (_arg1))){ //unresolved jump _local0 = !NULL!; //unresolved if //unresolved if }; removeEventListener(Event.ENTER_FRAME, scrollListener); if (!((_local4) && (_local2))){ //unresolved jump //unresolved jump NaN; undefined.text = newTxt.substr(0, Math.floor((j / framesPerChar))); }; }; dTxt.text = txt; newTxt = ""; j = 0; while (j < dTxt.numLines) { newTxt = (newTxt + dTxt.getLineText(j)); newTxt = (newTxt + "\n"); j = (j + 1); }; dTxt.text = ""; j = 0; myTimer = new Timer(delay, 1); myTimer.addEventListener("timer", timerHandler); myTimer.start(); } public function customizeRightClick():ContextMenu{ var _local1:*; var _local2:ContextMenuItem; _local1 = new ContextMenu(); _local1.hideBuiltInItems(); _local2 = new ContextMenuItem("developed by irRegularGames"); _local2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, clickIrregularContext); _local1.customItems.push(_local2); return (_local1); } private function clickIrregularContext(_arg1:Event):void{ openUrl("http://www.irregulargames.com/"); } public function openUrl(_arg1:String):void{ var request:URLRequest; var url = _arg1; request = new URLRequest(url); try { navigateToURL(request, "_blank"); } catch(e:Error) { trace(("Could not navigate to URL: " + url)); }; } public function showit(_arg1:Object, _arg2:int, _arg3:int):void{ _arg1.x = _arg2; _arg1.y = _arg3; _arg1.visible = true; } public function hideit(_arg1:Object):void{ _arg1.x = 5000; _arg1.y = 5000; _arg1.visible = false; } } //unresolved jump var _local1 = typeof((typeof(((true is false) << !NULL!)) - 1)); !ERROR! if (((_local2) || (_local2))){ //unresolved jump _local2 = ~(); //unresolved jump //unresolved nextvalue or nextname.generalUI = [OP_NEWCLASS ClassInfo:92 base:Sprite]; }; }//package
Section 117
//ground (ground) package { import flash.display.*; public dynamic class ground extends MovieClip { } var _local1:Boolean; //unresolved jump var _local2 = (((false ^ !NULL!) + 1) ^ !NULL!); if (((_local1) || (_local2))){ //unresolved jump var _local3:Boolean; //unresolved jump _local3 = ((((//unresolved nextvalue or nextname << true) + 1) < (MovieClip + this)) < _local2); [OP_NEWCLASS ClassInfo:110 base:!NULL!].ground = !NULL!; }; }//package
Section 118
//levBtn (levBtn) package { import flash.display.*; import flash.text.*; public dynamic class levBtn extends MovieClip { public var num:TextField; public function levBtn(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } //unresolved jump var _local1:Number = (typeof(false) ^ (_local2 - 1)); var _local2:Boolean; if (_local2){ //unresolved jump with (!NULL!) { //unresolved jump }; [OP_NEWCLASS ClassInfo:111 base:!NULL!].levBtn = !NULL!; }; }//package
Section 119
//level (level) package { import Box2D.Common.Math.*; import flash.display.*; import flash.geom.*; public class level extends Sprite { public var dataXML:XML; private var gameScreen:MovieClip; public var targetArray:Array; public var targetDamage:uint; public var max:Point; private var levData:levelData; public var shotArray:Array; private var maxDam:maxDamage; private var ui:generalUI; public var lname:String; public function level(_arg1:maxDamage, _arg2:MovieClip):void{ max = new Point(); targetArray = new Array(); shotArray = new Array(); ui = new generalUI(); super(); maxDam = _arg1; gameScreen = _arg2; levData = new levelData(); } public function loadLevelByNum(_arg1):void{ shotArray = []; targetArray = []; dataXML = levData.loadData(_arg1); readXML(); } private function initLevel():void{ var _local1:*; var _local2:MovieClip; var _local3:uint; gameScreen.cannon.x = max.x; gameScreen.cannon.y = max.y; gameScreen.cannon.scaleY = 1; gameScreen.cannon.max.gotoAndStop(1); _local3 = 0; while (_local3 < targetArray.length) { maxDam.createTarget(targetArray[_local3].xpos, targetArray[_local3].ypos, targetArray[_local3].ttype); _local3++; }; maxDam.updateShots(); if (maxDam.levelNum == 1){ _local1 = MovieClip(new tip1()); maxDam.tips.addChild(_local1); _local1.x = 80; _local1.y = 279; ui.scrollTxt("This is Max. He likes to break things. Help Max achieve Maximum Damage by shooting his cannon (aim with the mouse, and click to fire!)", _local1.txt, 1, maxDam.textDelay); } else { if (maxDam.levelNum == 2){ _local1 = MovieClip(new tip2()); maxDam.tips.addChild(_local1); _local1.x = 58; _local1.y = 372; _local2 = MovieClip(new tip3()); maxDam.tips.addChild(_local2); _local2.x = 350; _local2.y = 372; ui.scrollTxt("This shows your cannon shots.", _local1.txt, 1, maxDam.textDelay); ui.scrollTxt("And this is the target damage.", _local2.txt, 1, (maxDam.textDelay + 1400)); } else { if (maxDam.levelNum == 3){ _local1 = MovieClip(new tipGeneral()); maxDam.tips.addChild(_local1); _local1.x = 195; _local1.y = 279; ui.scrollTxt("Move the mouse over targets to find out their value.", _local1.txt, 1, maxDam.textDelay); } else { if (maxDam.levelNum == 4){ _local1 = MovieClip(new tipGeneral()); maxDam.tips.addChild(_local1); _local1.x = 40; _local1.y = 279; ui.scrollTxt("Move the mouse close to the cannon for low power shots.", _local1.txt, 1, maxDam.textDelay); } else { if (maxDam.levelNum == 6){ _local1 = MovieClip(new tip4()); maxDam.tips.addChild(_local1); _local1.x = 58; _local1.y = 372; ui.scrollTxt("These balls are extra bouncy.", _local1.txt, 1, maxDam.textDelay); } else { if (maxDam.levelNum == 13){ _local1 = MovieClip(new tip5()); maxDam.tips.addChild(_local1); _local1.x = 58; _local1.y = 372; ui.scrollTxt("Explosive balls! Click to shoot, click again to explode.", _local1.txt, 1, maxDam.textDelay); } else { if (maxDam.levelNum == 18){ _local1 = MovieClip(new tip6()); maxDam.tips.addChild(_local1); _local1.x = 275; _local1.y = 372; ui.scrollTxt("These are flaming cannonballs (boxes burn!)", _local1.txt, 1, maxDam.textDelay); } else { if (maxDam.levelNum == 26){ _local1 = MovieClip(new tip4()); maxDam.tips.addChild(_local1); _local1.x = 33; _local1.y = 317; ui.scrollTxt("Artwork is also flammable...", _local1.txt, 1, maxDam.textDelay); } else { if (maxDam.levelNum == 16){ gameScreen.cannon.scaleY = -1; } else { if ((((((maxDam.levelNum == 27)) || ((maxDam.levelNum == 38)))) || ((maxDam.levelNum == 48)))){ gameScreen.cannon.max.gotoAndStop(2); }; }; }; }; }; }; }; }; }; }; maxDam.textDelay = 500; } private function readXML():void{ var _local1:b2Vec2; var _local2:uint; var _local3:XML; _local1 = new b2Vec2(0, dataXML.gravity); maxDam.m_world.SetGravity(_local1); lname = dataXML.lname; targetDamage = dataXML.targetDamage; maxDam.myReadout.levelName.text = ((maxDam.levelNum + ". ") + lname); max.x = dataXML.max.xpos; max.y = dataXML.max.ypos; _local2 = 0; while (_local2 < dataXML.shots.child("*").length()) { shotArray[_local2] = uint(dataXML.shots.shottype[_local2]); _local2++; }; shotArray.reverse(); _local2 = 0; for each (_local3 in dataXML.targets.target) { targetArray[_local2] = new Object(); targetArray[_local2].ttype = _local3.type.toString(); targetArray[_local2].xpos = Number(_local3.xpos); targetArray[_local2].ypos = Number(_local3.ypos); _local2++; }; initLevel(); } } //unresolved jump var _local1:Number; _local1 = -(this); var _local2 = ??getglobalscope ; if (!((_local1) && (_local1))){ //unresolved jump //unresolved jump _local2 = ??getglobalscope ; (((-((-((typeof((??hasnext >> )) >> !NULL!)) * undefined)) ^ !NULL!) % !NULL!) / !NULL!).level = [OP_NEWCLASS ClassInfo:98 base:Sprite]; }; }//package
Section 120
//levelComplete (levelComplete) package { import flash.display.*; public dynamic class levelComplete extends MovieClip { public var playAgainBtn:SimpleButton; public var nextLevelBtn:SimpleButton; } var _local1:Boolean; //unresolved jump undefined; var _local2:Boolean; if (!((_local2) && (_local1))){ //unresolved jump //unresolved jump ((MovieClip * _local1) - 1).levelComplete = [OP_NEWCLASS ClassInfo:112 base:( ^ _local3)]; }; }//package
Section 121
//levelCompleteSnd (levelCompleteSnd) package { import flash.media.*; public dynamic class levelCompleteSnd extends Sound { } var _local1:Boolean; //unresolved jump var _local2 = null; if (((_local1) || (this))){ //unresolved jump true.levelCompleteSnd = [OP_NEWCLASS ClassInfo:88 base:Sound]; }; }//package
Section 122
//levelData (levelData) package { import flash.display.*; public class levelData extends Sprite { private var myXML:XML; public function levelData():void{ } public function loadData(_arg1:uint):XML{ switch (_arg1){ case 1: myXML = <level> <gravity>20</gravity> <lname>Dominos</lname> <targetDamage>700</targetDamage> <shots> <shottype>1</shottype> </shots> <max> <xpos>71</xpos> <ypos>193</ypos> </max> <targets> <target> <type>brick</type> <xpos>261</xpos> <ypos>129</ypos> </target> <target> <type>fridge</type> <xpos>260</xpos> <ypos>84</ypos> </target> <target> <type>brick</type> <xpos>350</xpos> <ypos>228</ypos> </target> <target> <type>fridge</type> <xpos>360</xpos> <ypos>183</ypos> </target> <target> <type>brick</type> <xpos>444</xpos> <ypos>330</ypos> </target> <target> <type>fridge</type> <xpos>454</xpos> <ypos>285</ypos> </target> </targets> </level> ; break; case 2: myXML = <level> <gravity>20</gravity> <lname>Stacks</lname> <targetDamage>500</targetDamage> <shots> <shottype>1</shottype> <shottype>1</shottype> </shots> <max> <xpos>87</xpos> <ypos>295</ypos> </max> <targets> <target> <type>brick</type> <xpos>345</xpos> <ypos>171</ypos> </target> <target> <type>microwave</type> <xpos>345</xpos> <ypos>141</ypos> </target> <target> <type>microwave</type> <xpos>345</xpos> <ypos>111</ypos> </target> <target> <type>microwave</type> <xpos>345</xpos> <ypos>82</ypos> </target> <target> <type>brick</type> <xpos>344</xpos> <ypos>329</ypos> </target> <target> <type>monitor</type> <xpos>344</xpos> <ypos>299</ypos> </target> <target> <type>monitor</type> <xpos>344</xpos> <ypos>269</ypos> </target> <target> <type>monitor</type> <xpos>344</xpos> <ypos>240</ypos> </target> </targets> </level> ; break; case 3: myXML = <level> <gravity>20</gravity> <lname>Clearance</lname> <targetDamage>200</targetDamage> <shots> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> </shots> <max> <xpos>68</xpos> <ypos>246</ypos> </max> <targets> <target> <type>brick</type> <xpos>290</xpos> <ypos>220</ypos> </target> <target> <type>box</type> <xpos>290</xpos> <ypos>190</ypos> </target> <target> <type>box</type> <xpos>290</xpos> <ypos>160</ypos> </target> <target> <type>box</type> <xpos>290</xpos> <ypos>130</ypos> </target> <target> <type>box</type> <xpos>290</xpos> <ypos>100</ypos> </target> <target> <type>box</type> <xpos>290</xpos> <ypos>71</ypos> </target> <target> <type>brick</type> <xpos>436</xpos> <ypos>160</ypos> </target> <target> <type>art</type> <xpos>436</xpos> <ypos>130</ypos> </target> </targets> </level> ; break; case 4: myXML = <level> <gravity>20</gravity> <lname>Softly softly</lname> <targetDamage>20</targetDamage> <shots> <shottype>1</shottype> </shots> <max> <xpos>448</xpos> <ypos>182</ypos> </max> <targets> <target> <type>brick</type> <xpos>292</xpos> <ypos>210</ypos> </target> <target> <type>box</type> <xpos>274</xpos> <ypos>180</ypos> </target> <target> <type>monitor</type> <xpos>240</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>242</xpos> <ypos>136</ypos> </target> <target> <type>brick</type> <xpos>212</xpos> <ypos>106</ypos> </target> <target> <type>brick</type> <xpos>182</xpos> <ypos>77</ypos> </target> <target> <type>brick</type> <xpos>322</xpos> <ypos>240</ypos> </target> <target> <type>brick</type> <xpos>352</xpos> <ypos>270</ypos> </target> <target> <type>brick</type> <xpos>382</xpos> <ypos>300</ypos> </target> <target> <type>brick</type> <xpos>412</xpos> <ypos>330</ypos> </target> <target> <type>brick</type> <xpos>442</xpos> <ypos>360</ypos> </target> <target> <type>brick</type> <xpos>472</xpos> <ypos>390</ypos> </target> <target> <type>brick</type> <xpos>152</xpos> <ypos>47</ypos> </target> <target> <type>brick</type> <xpos>378</xpos> <ypos>111</ypos> </target> <target> <type>brick</type> <xpos>408</xpos> <ypos>82</ypos> </target> </targets> </level> ; break; case 5: myXML = <level> <gravity>20</gravity> <lname>Media Assault</lname> <targetDamage>1000</targetDamage> <shots> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> </shots> <max> <xpos>536</xpos> <ypos>190</ypos> </max> <targets> <target> <type>brick</type> <xpos>351</xpos> <ypos>136</ypos> </target> <target> <type>brick</type> <xpos>285</xpos> <ypos>136</ypos> </target> <target> <type>box</type> <xpos>351</xpos> <ypos>106</ypos> </target> <target> <type>box</type> <xpos>285</xpos> <ypos>106</ypos> </target> <target> <type>box</type> <xpos>285</xpos> <ypos>77</ypos> </target> <target> <type>box</type> <xpos>351</xpos> <ypos>76</ypos> </target> <target> <type>widetv</type> <xpos>318</xpos> <ypos>46</ypos> </target> <target> <type>brick</type> <xpos>285</xpos> <ypos>345</ypos> </target> <target> <type>brick</type> <xpos>351</xpos> <ypos>345</ypos> </target> <target> <type>box</type> <xpos>285</xpos> <ypos>315</ypos> </target> <target> <type>box</type> <xpos>285</xpos> <ypos>285</ypos> </target> <target> <type>box</type> <xpos>351</xpos> <ypos>315</ypos> </target> <target> <type>box</type> <xpos>351</xpos> <ypos>285</ypos> </target> <target> <type>widetv</type> <xpos>318</xpos> <ypos>256</ypos> </target> <target> <type>brick</type> <xpos>149</xpos> <ypos>136</ypos> </target> <target> <type>brick</type> <xpos>82</xpos> <ypos>136</ypos> </target> <target> <type>box</type> <xpos>82</xpos> <ypos>106</ypos> </target> <target> <type>box</type> <xpos>149</xpos> <ypos>106</ypos> </target> <target> <type>box</type> <xpos>82</xpos> <ypos>76</ypos> </target> <target> <type>box</type> <xpos>149</xpos> <ypos>76</ypos> </target> <target> <type>widetv</type> <xpos>114</xpos> <ypos>47</ypos> </target> </targets> </level> ; break; case 6: myXML = <level> <gravity>20</gravity> <lname>Bouncy bouncy</lname> <targetDamage>400</targetDamage> <shots> <shottype>4</shottype> <shottype>4</shottype> <shottype>4</shottype> </shots> <max> <xpos>545</xpos> <ypos>255</ypos> </max> <targets> <target> <type>brick</type> <xpos>282</xpos> <ypos>353</ypos> </target> <target> <type>fridge</type> <xpos>282</xpos> <ypos>308</ypos> </target> <target> <type>brick</type> <xpos>191</xpos> <ypos>299</ypos> </target> <target> <type>microwave</type> <xpos>191</xpos> <ypos>269</ypos> </target> <target> <type>brick</type> <xpos>106</xpos> <ypos>251</ypos> </target> <target> <type>microwave</type> <xpos>106</xpos> <ypos>221</ypos> </target> <target> <type>brick</type> <xpos>393</xpos> <ypos>21</ypos> </target> <target> <type>brick</type> <xpos>393</xpos> <ypos>51</ypos> </target> <target> <type>brick</type> <xpos>393</xpos> <ypos>81</ypos> </target> <target> <type>brick</type> <xpos>393</xpos> <ypos>111</ypos> </target> <target> <type>brick</type> <xpos>393</xpos> <ypos>141</ypos> </target> <target> <type>brick</type> <xpos>393</xpos> <ypos>171</ypos> </target> <target> <type>brick</type> <xpos>393</xpos> <ypos>201</ypos> </target> <target> <type>brick</type> <xpos>393</xpos> <ypos>231</ypos> </target> <target> <type>brick</type> <xpos>393</xpos> <ypos>261</ypos> </target> <target> <type>brick</type> <xpos>393</xpos> <ypos>291</ypos> </target> <target> <type>brick</type> <xpos>393</xpos> <ypos>321</ypos> </target> </targets> </level> ; break; case 7: myXML = <level> <gravity>20</gravity> <lname>Balancing act</lname> <targetDamage>800</targetDamage> <shots> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> </shots> <max> <xpos>543</xpos> <ypos>336</ypos> </max> <targets> <target> <type>box</type> <xpos>93</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>186</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>106</xpos> <ypos>375</ypos> </target> <target> <type>box</type> <xpos>171</xpos> <ypos>375</ypos> </target> <target> <type>box</type> <xpos>119</xpos> <ypos>345</ypos> </target> <target> <type>box</type> <xpos>157</xpos> <ypos>345</ypos> </target> <target> <type>box</type> <xpos>138</xpos> <ypos>317</ypos> </target> <target> <type>brick</type> <xpos>415</xpos> <ypos>136</ypos> </target> <target> <type>brick</type> <xpos>385</xpos> <ypos>136</ypos> </target> <target> <type>brick</type> <xpos>355</xpos> <ypos>136</ypos> </target> <target> <type>brick</type> <xpos>108</xpos> <ypos>197</ypos> </target> <target> <type>brick</type> <xpos>138</xpos> <ypos>197</ypos> </target> <target> <type>brick</type> <xpos>168</xpos> <ypos>197</ypos> </target> <target> <type>box</type> <xpos>415</xpos> <ypos>106</ypos> </target> <target> <type>box</type> <xpos>354</xpos> <ypos>106</ypos> </target> <target> <type>box</type> <xpos>339</xpos> <ypos>78</ypos> </target> <target> <type>box</type> <xpos>168</xpos> <ypos>167</ypos> </target> <target> <type>box</type> <xpos>108</xpos> <ypos>167</ypos> </target> <target> <type>box</type> <xpos>94</xpos> <ypos>138</ypos> </target> <target> <type>box</type> <xpos>181</xpos> <ypos>138</ypos> </target> <target> <type>box</type> <xpos>168</xpos> <ypos>108</ypos> </target> <target> <type>box</type> <xpos>107</xpos> <ypos>108</ypos> </target> <target> <type>box</type> <xpos>119</xpos> <ypos>79</ypos> </target> <target> <type>box</type> <xpos>156</xpos> <ypos>79</ypos> </target> <target> <type>monitor</type> <xpos>138</xpos> <ypos>50</ypos> </target> <target> <type>monitor</type> <xpos>138</xpos> <ypos>287</ypos> </target> <target> <type>monitor</type> <xpos>326</xpos> <ypos>48</ypos> </target> </targets> </level> ; break; case 8: myXML = <level> <gravity>20</gravity> <lname>Power of three</lname> <targetDamage>1500</targetDamage> <shots> <shottype>2</shottype> <shottype>2</shottype> <shottype>2</shottype> <shottype>2</shottype> <shottype>2</shottype> </shots> <max> <xpos>522</xpos> <ypos>217</ypos> </max> <targets> <target> <type>brick</type> <xpos>240</xpos> <ypos>335</ypos> </target> <target> <type>microwave</type> <xpos>240</xpos> <ypos>305</ypos> </target> <target> <type>microwave</type> <xpos>240</xpos> <ypos>275</ypos> </target> <target> <type>brick</type> <xpos>241</xpos> <ypos>225</ypos> </target> <target> <type>microwave</type> <xpos>240</xpos> <ypos>195</ypos> </target> <target> <type>microwave</type> <xpos>240</xpos> <ypos>165</ypos> </target> <target> <type>brick</type> <xpos>240</xpos> <ypos>115</ypos> </target> <target> <type>microwave</type> <xpos>240</xpos> <ypos>85</ypos> </target> <target> <type>microwave</type> <xpos>240</xpos> <ypos>55</ypos> </target> <target> <type>brick</type> <xpos>120</xpos> <ypos>335</ypos> </target> <target> <type>fridge</type> <xpos>119</xpos> <ypos>290</ypos> </target> <target> <type>brick</type> <xpos>120</xpos> <ypos>225</ypos> </target> <target> <type>fridge</type> <xpos>120</xpos> <ypos>180</ypos> </target> <target> <type>brick</type> <xpos>120</xpos> <ypos>115</ypos> </target> <target> <type>fridge</type> <xpos>120</xpos> <ypos>70</ypos> </target> </targets> </level> ; break; case 9: myXML = <level> <gravity>20</gravity> <lname>Dislodge</lname> <targetDamage>250</targetDamage> <shots> <shottype>1</shottype> <shottype>1</shottype> </shots> <max> <xpos>495</xpos> <ypos>273</ypos> </max> <targets> <target> <type>brick</type> <xpos>215</xpos> <ypos>152</ypos> </target> <target> <type>art</type> <xpos>215</xpos> <ypos>122</ypos> </target> <target> <type>brick</type> <xpos>362</xpos> <ypos>219</ypos> </target> <target> <type>box</type> <xpos>362</xpos> <ypos>189</ypos> </target> <target> <type>brick</type> <xpos>362</xpos> <ypos>21</ypos> </target> <target> <type>brick</type> <xpos>362</xpos> <ypos>51</ypos> </target> <target> <type>brick</type> <xpos>362</xpos> <ypos>81</ypos> </target> <target> <type>box</type> <xpos>362</xpos> <ypos>159</ypos> </target> <target> <type>box</type> <xpos>362</xpos> <ypos>129</ypos> </target> </targets> </level> ; break; case 10: myXML = <level> <gravity>20</gravity> <lname>Knock em down</lname> <targetDamage>1300</targetDamage> <shots> <shottype>1</shottype> </shots> <max> <xpos>53</xpos> <ypos>151</ypos> </max> <targets> <target> <type>brick</type> <xpos>175</xpos> <ypos>126</ypos> </target> <target> <type>fridge</type> <xpos>174</xpos> <ypos>81</ypos> </target> <target> <type>brick</type> <xpos>254</xpos> <ypos>143</ypos> </target> <target> <type>fridge</type> <xpos>254</xpos> <ypos>98</ypos> </target> <target> <type>brick</type> <xpos>332</xpos> <ypos>160</ypos> </target> <target> <type>fridge</type> <xpos>332</xpos> <ypos>115</ypos> </target> <target> <type>brick</type> <xpos>414</xpos> <ypos>174</ypos> </target> <target> <type>fridge</type> <xpos>414</xpos> <ypos>129</ypos> </target> <target> <type>brick</type> <xpos>540</xpos> <ypos>351</ypos> </target> <target> <type>brick</type> <xpos>568</xpos> <ypos>351</ypos> </target> <target> <type>brick</type> <xpos>598</xpos> <ypos>351</ypos> </target> <target> <type>widetv</type> <xpos>518</xpos> <ypos>321</ypos> </target> <target> <type>microwave</type> <xpos>542</xpos> <ypos>291</ypos> </target> <target> <type>microwave</type> <xpos>550</xpos> <ypos>261</ypos> </target> <target> <type>microwave</type> <xpos>558</xpos> <ypos>232</ypos> </target> </targets> </level> ; break; case 11: myXML = <level> <gravity>20</gravity> <lname>Top art</lname> <targetDamage>3500</targetDamage> <shots> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> </shots> <max> <xpos>559</xpos> <ypos>271</ypos> </max> <targets> <target> <type>brick</type> <xpos>139</xpos> <ypos>334</ypos> </target> <target> <type>brick</type> <xpos>170</xpos> <ypos>334</ypos> </target> <target> <type>brick</type> <xpos>201</xpos> <ypos>334</ypos> </target> <target> <type>brick</type> <xpos>232</xpos> <ypos>334</ypos> </target> <target> <type>brick</type> <xpos>263</xpos> <ypos>334</ypos> </target> <target> <type>brick</type> <xpos>294</xpos> <ypos>334</ypos> </target> <target> <type>brick</type> <xpos>325</xpos> <ypos>334</ypos> </target> <target> <type>brick</type> <xpos>108</xpos> <ypos>334</ypos> </target> <target> <type>fridge</type> <xpos>98</xpos> <ypos>289</ypos> </target> <target> <type>fridge</type> <xpos>177</xpos> <ypos>289</ypos> </target> <target> <type>fridge</type> <xpos>256</xpos> <ypos>289</ypos> </target> <target> <type>fridge</type> <xpos>335</xpos> <ypos>289</ypos> </target> <target> <type>widetv</type> <xpos>219</xpos> <ypos>244</ypos> </target> <target> <type>widetv</type> <xpos>138</xpos> <ypos>244</ypos> </target> <target> <type>widetv</type> <xpos>293</xpos> <ypos>244</ypos> </target> <target> <type>fridge</type> <xpos>177</xpos> <ypos>199</ypos> </target> <target> <type>fridge</type> <xpos>257</xpos> <ypos>199</ypos> </target> <target> <type>widetv</type> <xpos>217</xpos> <ypos>155</ypos> </target> <target> <type>fridge</type> <xpos>218</xpos> <ypos>110</ypos> </target> <target> <type>art</type> <xpos>218</xpos> <ypos>66</ypos> </target> </targets> </level> ; break; case 12: myXML = <level> <gravity>20</gravity> <lname>Flying Box</lname> <targetDamage>100</targetDamage> <shots> <shottype>4</shottype> </shots> <max> <xpos>78</xpos> <ypos>193</ypos> </max> <targets> <target> <type>brick</type> <xpos>199</xpos> <ypos>255</ypos> </target> <target> <type>box</type> <xpos>199</xpos> <ypos>225</ypos> </target> <target> <type>box</type> <xpos>199</xpos> <ypos>195</ypos> </target> <target> <type>box</type> <xpos>199</xpos> <ypos>165</ypos> </target> <target> <type>brick</type> <xpos>199</xpos> <ypos>285</ypos> </target> <target> <type>monitor</type> <xpos>426</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>199</xpos> <ypos>315</ypos> </target> <target> <type>brick</type> <xpos>199</xpos> <ypos>345</ypos> </target> <target> <type>brick</type> <xpos>199</xpos> <ypos>375</ypos> </target> <target> <type>brick</type> <xpos>199</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>127</xpos> <ypos>36</ypos> </target> <target> <type>brick</type> <xpos>151</xpos> <ypos>66</ypos> </target> <target> <type>brick</type> <xpos>175</xpos> <ypos>96</ypos> </target> <target> <type>brick</type> <xpos>199</xpos> <ypos>126</ypos> </target> </targets> </level> ; break; case 13: myXML = <level> <gravity>20</gravity> <lname>Explosions</lname> <targetDamage>2000</targetDamage> <shots> <shottype>3</shottype> <shottype>3</shottype> <shottype>3</shottype> <shottype>3</shottype> </shots> <max> <xpos>320</xpos> <ypos>370</ypos> </max> <targets> <target> <type>brick</type> <xpos>150</xpos> <ypos>160</ypos> </target> <target> <type>brick</type> <xpos>220</xpos> <ypos>220</ypos> </target> <target> <type>brick</type> <xpos>220</xpos> <ypos>100</ypos> </target> <target> <type>brick</type> <xpos>480</xpos> <ypos>160</ypos> </target> <target> <type>brick</type> <xpos>420</xpos> <ypos>100</ypos> </target> <target> <type>brick</type> <xpos>420</xpos> <ypos>220</ypos> </target> <target> <type>brick</type> <xpos>320</xpos> <ypos>100</ypos> </target> <target> <type>fridge</type> <xpos>219</xpos> <ypos>175</ypos> </target> <target> <type>fridge</type> <xpos>419</xpos> <ypos>175</ypos> </target> <target> <type>microwave</type> <xpos>149</xpos> <ypos>130</ypos> </target> <target> <type>microwave</type> <xpos>220</xpos> <ypos>70</ypos> </target> <target> <type>art</type> <xpos>320</xpos> <ypos>70</ypos> </target> <target> <type>microwave</type> <xpos>420</xpos> <ypos>70</ypos> </target> <target> <type>microwave</type> <xpos>480</xpos> <ypos>130</ypos> </target> </targets> </level> ; break; case 14: myXML = <level> <gravity>20</gravity> <lname>Grid-o-fun</lname> <targetDamage>2000</targetDamage> <shots> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>2</shottype> <shottype>2</shottype> <shottype>2</shottype> <shottype>3</shottype> <shottype>3</shottype> <shottype>3</shottype> </shots> <max> <xpos>105</xpos> <ypos>208</ypos> </max> <targets> <target> <type>brick</type> <xpos>375</xpos> <ypos>350</ypos> </target> <target> <type>brick</type> <xpos>375</xpos> <ypos>260</ypos> </target> <target> <type>brick</type> <xpos>375</xpos> <ypos>170</ypos> </target> <target> <type>brick</type> <xpos>375</xpos> <ypos>80</ypos> </target> <target> <type>brick</type> <xpos>465</xpos> <ypos>350</ypos> </target> <target> <type>brick</type> <xpos>465</xpos> <ypos>260</ypos> </target> <target> <type>brick</type> <xpos>465</xpos> <ypos>170</ypos> </target> <target> <type>brick</type> <xpos>465</xpos> <ypos>80</ypos> </target> <target> <type>brick</type> <xpos>555</xpos> <ypos>80</ypos> </target> <target> <type>brick</type> <xpos>555</xpos> <ypos>170</ypos> </target> <target> <type>brick</type> <xpos>555</xpos> <ypos>260</ypos> </target> <target> <type>brick</type> <xpos>555</xpos> <ypos>350</ypos> </target> <target> <type>box</type> <xpos>375</xpos> <ypos>50</ypos> </target> <target> <type>box</type> <xpos>375</xpos> <ypos>140</ypos> </target> <target> <type>box</type> <xpos>375</xpos> <ypos>230</ypos> </target> <target> <type>box</type> <xpos>375</xpos> <ypos>320</ypos> </target> <target> <type>microwave</type> <xpos>465</xpos> <ypos>320</ypos> </target> <target> <type>microwave</type> <xpos>465</xpos> <ypos>230</ypos> </target> <target> <type>microwave</type> <xpos>465</xpos> <ypos>140</ypos> </target> <target> <type>microwave</type> <xpos>465</xpos> <ypos>50</ypos> </target> <target> <type>art</type> <xpos>555</xpos> <ypos>320</ypos> </target> <target> <type>art</type> <xpos>555</xpos> <ypos>230</ypos> </target> <target> <type>art</type> <xpos>555</xpos> <ypos>140</ypos> </target> <target> <type>art</type> <xpos>555</xpos> <ypos>50</ypos> </target> </targets> </level> ; break; case 15: myXML = <level> <gravity>20</gravity> <lname>Boxed in</lname> <targetDamage>140</targetDamage> <shots> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> </shots> <max> <xpos>319</xpos> <ypos>234</ypos> </max> <targets> <target> <type>brick</type> <xpos>240</xpos> <ypos>360</ypos> </target> <target> <type>brick</type> <xpos>170</xpos> <ypos>290</ypos> </target> <target> <type>brick</type> <xpos>170</xpos> <ypos>190</ypos> </target> <target> <type>brick</type> <xpos>235</xpos> <ypos>105</ypos> </target> <target> <type>brick</type> <xpos>320</xpos> <ypos>65</ypos> </target> <target> <type>brick</type> <xpos>405</xpos> <ypos>105</ypos> </target> <target> <type>brick</type> <xpos>475</xpos> <ypos>190</ypos> </target> <target> <type>brick</type> <xpos>475</xpos> <ypos>290</ypos> </target> <target> <type>brick</type> <xpos>405</xpos> <ypos>365</ypos> </target> <target> <type>brick</type> <xpos>320</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>130</xpos> <ypos>105</ypos> </target> <target> <type>brick</type> <xpos>80</xpos> <ypos>238</ypos> </target> <target> <type>brick</type> <xpos>510</xpos> <ypos>105</ypos> </target> <target> <type>brick</type> <xpos>565</xpos> <ypos>240</ypos> </target> <target> <type>brick</type> <xpos>130</xpos> <ypos>360</ypos> </target> <target> <type>brick</type> <xpos>509</xpos> <ypos>365</ypos> </target> <target> <type>box</type> <xpos>235</xpos> <ypos>75</ypos> </target> <target> <type>box</type> <xpos>169</xpos> <ypos>160</ypos> </target> <target> <type>box</type> <xpos>129</xpos> <ypos>75</ypos> </target> <target> <type>box</type> <xpos>79</xpos> <ypos>208</ypos> </target> <target> <type>box</type> <xpos>170</xpos> <ypos>260</ypos> </target> <target> <type>box</type> <xpos>130</xpos> <ypos>330</ypos> </target> <target> <type>box</type> <xpos>240</xpos> <ypos>330</ypos> </target> <target> <type>box</type> <xpos>320</xpos> <ypos>375</ypos> </target> <target> <type>box</type> <xpos>405</xpos> <ypos>335</ypos> </target> <target> <type>box</type> <xpos>475</xpos> <ypos>260</ypos> </target> <target> <type>box</type> <xpos>474</xpos> <ypos>160</ypos> </target> <target> <type>box</type> <xpos>405</xpos> <ypos>75</ypos> </target> <target> <type>microwave</type> <xpos>319</xpos> <ypos>35</ypos> </target> <target> <type>box</type> <xpos>510</xpos> <ypos>75</ypos> </target> <target> <type>box</type> <xpos>565</xpos> <ypos>210</ypos> </target> <target> <type>box</type> <xpos>509</xpos> <ypos>335</ypos> </target> </targets> </level> ; break; case 16: myXML = <level> <gravity>-20</gravity> <lname>Antigravity</lname> <targetDamage>2000</targetDamage> <shots> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> </shots> <max> <xpos>77</xpos> <ypos>118</ypos> </max> <targets> <target> <type>brick</type> <xpos>418</xpos> <ypos>216</ypos> </target> <target> <type>brick</type> <xpos>448</xpos> <ypos>216</ypos> </target> <target> <type>brick</type> <xpos>478</xpos> <ypos>216</ypos> </target> <target> <type>widetv</type> <xpos>468</xpos> <ypos>306</ypos> </target> <target> <type>monitor</type> <xpos>603</xpos> <ypos>21</ypos> </target> <target> <type>monitor</type> <xpos>603</xpos> <ypos>51</ypos> </target> <target> <type>monitor</type> <xpos>548</xpos> <ypos>21</ypos> </target> <target> <type>monitor</type> <xpos>548</xpos> <ypos>51</ypos> </target> <target> <type>monitor</type> <xpos>492</xpos> <ypos>245</ypos> </target> <target> <type>monitor</type> <xpos>492</xpos> <ypos>275</ypos> </target> <target> <type>monitor</type> <xpos>435</xpos> <ypos>246</ypos> </target> <target> <type>monitor</type> <xpos>435</xpos> <ypos>276</ypos> </target> </targets> </level> ; break; case 17: myXML = <level> <gravity>20</gravity> <lname>Soft beats hard</lname> <targetDamage>201</targetDamage> <shots> <shottype>1</shottype> <shottype>1</shottype> </shots> <max> <xpos>495</xpos> <ypos>233</ypos> </max> <targets> <target> <type>brick</type> <xpos>395</xpos> <ypos>352</ypos> </target> <target> <type>brick</type> <xpos>395</xpos> <ypos>322</ypos> </target> <target> <type>brick</type> <xpos>395</xpos> <ypos>292</ypos> </target> <target> <type>brick</type> <xpos>395</xpos> <ypos>262</ypos> </target> <target> <type>box</type> <xpos>395</xpos> <ypos>232</ypos> </target> <target> <type>brick</type> <xpos>395</xpos> <ypos>188</ypos> </target> <target> <type>brick</type> <xpos>395</xpos> <ypos>382</ypos> </target> <target> <type>art</type> <xpos>341</xpos> <ypos>375</ypos> </target> <target> <type>brick</type> <xpos>329</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>329</xpos> <ypos>272</ypos> </target> <target> <type>brick</type> <xpos>299</xpos> <ypos>272</ypos> </target> <target> <type>brick</type> <xpos>269</xpos> <ypos>272</ypos> </target> <target> <type>brick</type> <xpos>239</xpos> <ypos>272</ypos> </target> <target> <type>microwave</type> <xpos>209</xpos> <ypos>257</ypos> </target> <target> <type>brick</type> <xpos>209</xpos> <ypos>287</ypos> </target> </targets> </level> ; break; case 18: myXML = <level> <gravity>20</gravity> <lname>Burn baby burn</lname> <targetDamage>500</targetDamage> <shots> <shottype>5</shottype> <shottype>5</shottype> </shots> <max> <xpos>63</xpos> <ypos>333</ypos> </max> <targets> <target> <type>brick</type> <xpos>168</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>322</xpos> <ypos>329</ypos> </target> <target> <type>box</type> <xpos>322</xpos> <ypos>299</ypos> </target> <target> <type>brick</type> <xpos>352</xpos> <ypos>329</ypos> </target> <target> <type>brick</type> <xpos>382</xpos> <ypos>329</ypos> </target> <target> <type>brick</type> <xpos>412</xpos> <ypos>329</ypos> </target> <target> <type>brick</type> <xpos>442</xpos> <ypos>329</ypos> </target> <target> <type>brick</type> <xpos>472</xpos> <ypos>329</ypos> </target> <target> <type>brick</type> <xpos>502</xpos> <ypos>329</ypos> </target> <target> <type>box</type> <xpos>352</xpos> <ypos>299</ypos> </target> <target> <type>box</type> <xpos>382</xpos> <ypos>299</ypos> </target> <target> <type>box</type> <xpos>412</xpos> <ypos>299</ypos> </target> <target> <type>box</type> <xpos>442</xpos> <ypos>299</ypos> </target> <target> <type>box</type> <xpos>472</xpos> <ypos>299</ypos> </target> <target> <type>box</type> <xpos>502</xpos> <ypos>299</ypos> </target> <target> <type>box</type> <xpos>322</xpos> <ypos>269</ypos> </target> <target> <type>box</type> <xpos>352</xpos> <ypos>269</ypos> </target> <target> <type>box</type> <xpos>382</xpos> <ypos>269</ypos> </target> <target> <type>box</type> <xpos>412</xpos> <ypos>269</ypos> </target> <target> <type>box</type> <xpos>442</xpos> <ypos>269</ypos> </target> <target> <type>box</type> <xpos>472</xpos> <ypos>269</ypos> </target> <target> <type>box</type> <xpos>502</xpos> <ypos>269</ypos> </target> <target> <type>brick</type> <xpos>532</xpos> <ypos>329</ypos> </target> <target> <type>box</type> <xpos>532</xpos> <ypos>299</ypos> </target> <target> <type>box</type> <xpos>532</xpos> <ypos>269</ypos> </target> <target> <type>fridge</type> <xpos>168</xpos> <ypos>300</ypos> </target> <target> <type>brick</type> <xpos>168</xpos> <ypos>375</ypos> </target> <target> <type>brick</type> <xpos>168</xpos> <ypos>345</ypos> </target> <target> <type>box</type> <xpos>593</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>292</xpos> <ypos>329</ypos> </target> <target> <type>box</type> <xpos>292</xpos> <ypos>299</ypos> </target> <target> <type>box</type> <xpos>292</xpos> <ypos>269</ypos> </target> <target> <type>box</type> <xpos>292</xpos> <ypos>239</ypos> </target> <target> <type>box</type> <xpos>322</xpos> <ypos>239</ypos> </target> <target> <type>box</type> <xpos>352</xpos> <ypos>239</ypos> </target> <target> <type>box</type> <xpos>382</xpos> <ypos>239</ypos> </target> <target> <type>box</type> <xpos>412</xpos> <ypos>239</ypos> </target> <target> <type>box</type> <xpos>442</xpos> <ypos>239</ypos> </target> <target> <type>box</type> <xpos>472</xpos> <ypos>239</ypos> </target> <target> <type>box</type> <xpos>502</xpos> <ypos>239</ypos> </target> <target> <type>box</type> <xpos>532</xpos> <ypos>239</ypos> </target> <target> <type>box</type> <xpos>593</xpos> <ypos>375</ypos> </target> <target> <type>box</type> <xpos>593</xpos> <ypos>345</ypos> </target> </targets> </level> ; break; case 19: myXML = <level> <gravity>20</gravity> <lname>Get to the good stuff</lname> <targetDamage>1200</targetDamage> <shots> <shottype>4</shottype> <shottype>4</shottype> <shottype>4</shottype> <shottype>4</shottype> <shottype>4</shottype> <shottype>4</shottype> <shottype>4</shottype> </shots> <max> <xpos>584</xpos> <ypos>174</ypos> </max> <targets> <target> <type>brick</type> <xpos>411</xpos> <ypos>123</ypos> </target> <target> <type>box</type> <xpos>411</xpos> <ypos>93</ypos> </target> <target> <type>box</type> <xpos>411</xpos> <ypos>63</ypos> </target> <target> <type>box</type> <xpos>411</xpos> <ypos>34</ypos> </target> <target> <type>brick</type> <xpos>301</xpos> <ypos>101</ypos> </target> <target> <type>brick</type> <xpos>220</xpos> <ypos>118</ypos> </target> <target> <type>box</type> <xpos>204</xpos> <ypos>88</ypos> </target> <target> <type>box</type> <xpos>174</xpos> <ypos>88</ypos> </target> <target> <type>brick</type> <xpos>190</xpos> <ypos>118</ypos> </target> <target> <type>brick</type> <xpos>160</xpos> <ypos>118</ypos> </target> <target> <type>box</type> <xpos>189</xpos> <ypos>58</ypos> </target> <target> <type>brick</type> <xpos>73</xpos> <ypos>128</ypos> </target> <target> <type>box</type> <xpos>73</xpos> <ypos>98</ypos> </target> <target> <type>monitor</type> <xpos>73</xpos> <ypos>68</ypos> </target> <target> <type>brick</type> <xpos>412</xpos> <ypos>227</ypos> </target> <target> <type>box</type> <xpos>412</xpos> <ypos>197</ypos> </target> <target> <type>box</type> <xpos>412</xpos> <ypos>167</ypos> </target> <target> <type>brick</type> <xpos>326</xpos> <ypos>231</ypos> </target> <target> <type>microwave</type> <xpos>302</xpos> <ypos>41</ypos> </target> <target> <type>box</type> <xpos>301</xpos> <ypos>71</ypos> </target> <target> <type>box</type> <xpos>326</xpos> <ypos>201</ypos> </target> <target> <type>microwave</type> <xpos>326</xpos> <ypos>171</ypos> </target> <target> <type>brick</type> <xpos>221</xpos> <ypos>248</ypos> </target> <target> <type>brick</type> <xpos>191</xpos> <ypos>248</ypos> </target> <target> <type>box</type> <xpos>191</xpos> <ypos>218</ypos> </target> <target> <type>box</type> <xpos>221</xpos> <ypos>218</ypos> </target> <target> <type>microwave</type> <xpos>206</xpos> <ypos>188</ypos> </target> <target> <type>brick</type> <xpos>112</xpos> <ypos>255</ypos> </target> <target> <type>box</type> <xpos>112</xpos> <ypos>225</ypos> </target> <target> <type>monitor</type> <xpos>112</xpos> <ypos>195</ypos> </target> </targets> </level> ; break; case 20: myXML = <level> <gravity>20</gravity> <lname>Chain Reactions</lname> <targetDamage>300</targetDamage> <shots> <shottype>1</shottype> <shottype>1</shottype> </shots> <max> <xpos>91</xpos> <ypos>188</ypos> </max> <targets> <target> <type>brick</type> <xpos>409</xpos> <ypos>164</ypos> </target> <target> <type>box</type> <xpos>394</xpos> <ypos>134</ypos> </target> <target> <type>brick</type> <xpos>320</xpos> <ypos>90</ypos> </target> <target> <type>box</type> <xpos>328</xpos> <ypos>60</ypos> </target> <target> <type>brick</type> <xpos>323</xpos> <ypos>231</ypos> </target> <target> <type>box</type> <xpos>339</xpos> <ypos>201</ypos> </target> <target> <type>brick</type> <xpos>414</xpos> <ypos>296</ypos> </target> <target> <type>box</type> <xpos>400</xpos> <ypos>266</ypos> </target> <target> <type>brick</type> <xpos>350</xpos> <ypos>380</ypos> </target> <target> <type>brick</type> <xpos>485</xpos> <ypos>78</ypos> </target> <target> <type>box</type> <xpos>494</xpos> <ypos>48</ypos> </target> <target> <type>brick</type> <xpos>564</xpos> <ypos>162</ypos> </target> <target> <type>microwave</type> <xpos>366</xpos> <ypos>350</ypos> </target> <target> <type>box</type> <xpos>547</xpos> <ypos>132</ypos> </target> <target> <type>brick</type> <xpos>478</xpos> <ypos>236</ypos> </target> <target> <type>box</type> <xpos>493</xpos> <ypos>206</ypos> </target> <target> <type>brick</type> <xpos>571</xpos> <ypos>297</ypos> </target> <target> <type>box</type> <xpos>556</xpos> <ypos>267</ypos> </target> <target> <type>brick</type> <xpos>503</xpos> <ypos>382</ypos> </target> <target> <type>microwave</type> <xpos>519</xpos> <ypos>352</ypos> </target> <target> <type>brick</type> <xpos>216</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>216</xpos> <ypos>375</ypos> </target> <target> <type>brick</type> <xpos>216</xpos> <ypos>345</ypos> </target> <target> <type>brick</type> <xpos>216</xpos> <ypos>315</ypos> </target> <target> <type>brick</type> <xpos>216</xpos> <ypos>285</ypos> </target> <target> <type>brick</type> <xpos>216</xpos> <ypos>255</ypos> </target> <target> <type>brick</type> <xpos>216</xpos> <ypos>225</ypos> </target> <target> <type>brick</type> <xpos>216</xpos> <ypos>195</ypos> </target> <target> <type>brick</type> <xpos>216</xpos> <ypos>165</ypos> </target> <target> <type>brick</type> <xpos>216</xpos> <ypos>135</ypos> </target> <target> <type>brick</type> <xpos>246</xpos> <ypos>135</ypos> </target> <target> <type>brick</type> <xpos>276</xpos> <ypos>135</ypos> </target> </targets> </level> ; break; case 21: myXML = <level> <gravity>20</gravity> <lname>Double explosions</lname> <targetDamage>1300</targetDamage> <shots> <shottype>2</shottype> <shottype>3</shottype> <shottype>2</shottype> <shottype>3</shottype> </shots> <max> <xpos>91</xpos> <ypos>326</ypos> </max> <targets> <target> <type>brick</type> <xpos>349</xpos> <ypos>199</ypos> </target> <target> <type>brick</type> <xpos>379</xpos> <ypos>199</ypos> </target> <target> <type>brick</type> <xpos>409</xpos> <ypos>199</ypos> </target> <target> <type>brick</type> <xpos>439</xpos> <ypos>199</ypos> </target> <target> <type>box</type> <xpos>348</xpos> <ypos>169</ypos> </target> <target> <type>box</type> <xpos>348</xpos> <ypos>139</ypos> </target> <target> <type>microwave</type> <xpos>448</xpos> <ypos>168</ypos> </target> <target> <type>monitor</type> <xpos>453</xpos> <ypos>138</ypos> </target> <target> <type>box</type> <xpos>382</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>382</xpos> <ypos>375</ypos> </target> <target> <type>box</type> <xpos>382</xpos> <ypos>345</ypos> </target> <target> <type>microwave</type> <xpos>462</xpos> <ypos>405</ypos> </target> <target> <type>microwave</type> <xpos>509</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>468</xpos> <ypos>375</ypos> </target> <target> <type>box</type> <xpos>503</xpos> <ypos>375</ypos> </target> <target> <type>monitor</type> <xpos>486</xpos> <ypos>346</ypos> </target> <target> <type>box</type> <xpos>348</xpos> <ypos>109</ypos> </target> </targets> </level> ; break; case 22: myXML = <level> <gravity>20</gravity> <lname>Loopy loops</lname> <targetDamage>50</targetDamage> <shots> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> </shots> <max> <xpos>578</xpos> <ypos>400</ypos> </max> <targets> <target> <type>brick</type> <xpos>416</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>416</xpos> <ypos>375</ypos> </target> <target> <type>brick</type> <xpos>416</xpos> <ypos>345</ypos> </target> <target> <type>brick</type> <xpos>416</xpos> <ypos>315</ypos> </target> <target> <type>brick</type> <xpos>416</xpos> <ypos>285</ypos> </target> <target> <type>brick</type> <xpos>334</xpos> <ypos>343</ypos> </target> <target> <type>brick</type> <xpos>334</xpos> <ypos>373</ypos> </target> <target> <type>brick</type> <xpos>334</xpos> <ypos>403</ypos> </target> <target> <type>brick</type> <xpos>334</xpos> <ypos>313</ypos> </target> <target> <type>brick</type> <xpos>334</xpos> <ypos>283</ypos> </target> <target> <type>brick</type> <xpos>250</xpos> <ypos>285</ypos> </target> <target> <type>brick</type> <xpos>250</xpos> <ypos>315</ypos> </target> <target> <type>brick</type> <xpos>250</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>250</xpos> <ypos>375</ypos> </target> <target> <type>brick</type> <xpos>250</xpos> <ypos>345</ypos> </target> <target> <type>brick</type> <xpos>166</xpos> <ypos>375</ypos> </target> <target> <type>brick</type> <xpos>166</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>166</xpos> <ypos>345</ypos> </target> <target> <type>brick</type> <xpos>166</xpos> <ypos>315</ypos> </target> <target> <type>brick</type> <xpos>166</xpos> <ypos>285</ypos> </target> <target> <type>box</type> <xpos>49</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>49</xpos> <ypos>375</ypos> </target> <target> <type>box</type> <xpos>208</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>293</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>375</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>136</xpos> <ypos>285</ypos> </target> <target> <type>brick</type> <xpos>106</xpos> <ypos>285</ypos> </target> <target> <type>microwave</type> <xpos>136</xpos> <ypos>405</ypos> </target> </targets> </level> ; break; case 23: myXML = <level> <gravity>20</gravity> <lname>Explode back</lname> <targetDamage>300</targetDamage> <shots> <shottype>3</shottype> <shottype>3</shottype> </shots> <max> <xpos>320</xpos> <ypos>257</ypos> </max> <targets> <target> <type>brick</type> <xpos>192</xpos> <ypos>272</ypos> </target> <target> <type>brick</type> <xpos>192</xpos> <ypos>242</ypos> </target> <target> <type>brick</type> <xpos>192</xpos> <ypos>212</ypos> </target> <target> <type>brick</type> <xpos>162</xpos> <ypos>272</ypos> </target> <target> <type>brick</type> <xpos>192</xpos> <ypos>182</ypos> </target> <target> <type>art</type> <xpos>162</xpos> <ypos>242</ypos> </target> <target> <type>brick</type> <xpos>192</xpos> <ypos>152</ypos> </target> <target> <type>brick</type> <xpos>162</xpos> <ypos>152</ypos> </target> <target> <type>microwave</type> <xpos>162</xpos> <ypos>212</ypos> </target> <target> <type>brick</type> <xpos>456</xpos> <ypos>272</ypos> </target> <target> <type>brick</type> <xpos>486</xpos> <ypos>272</ypos> </target> <target> <type>brick</type> <xpos>456</xpos> <ypos>242</ypos> </target> <target> <type>brick</type> <xpos>456</xpos> <ypos>212</ypos> </target> <target> <type>brick</type> <xpos>456</xpos> <ypos>182</ypos> </target> <target> <type>brick</type> <xpos>456</xpos> <ypos>152</ypos> </target> <target> <type>brick</type> <xpos>486</xpos> <ypos>152</ypos> </target> <target> <type>art</type> <xpos>486</xpos> <ypos>242</ypos> </target> <target> <type>microwave</type> <xpos>486</xpos> <ypos>212</ypos> </target> <target> <type>brick</type> <xpos>222</xpos> <ypos>152</ypos> </target> <target> <type>brick</type> <xpos>222</xpos> <ypos>182</ypos> </target> <target> <type>brick</type> <xpos>222</xpos> <ypos>212</ypos> </target> <target> <type>brick</type> <xpos>222</xpos> <ypos>242</ypos> </target> <target> <type>brick</type> <xpos>222</xpos> <ypos>272</ypos> </target> <target> <type>brick</type> <xpos>426</xpos> <ypos>272</ypos> </target> <target> <type>brick</type> <xpos>426</xpos> <ypos>242</ypos> </target> <target> <type>brick</type> <xpos>426</xpos> <ypos>212</ypos> </target> <target> <type>brick</type> <xpos>426</xpos> <ypos>182</ypos> </target> <target> <type>brick</type> <xpos>426</xpos> <ypos>152</ypos> </target> </targets> </level> ; break; case 24: myXML = <level> <gravity>20</gravity> <lname>Trick shot</lname> <targetDamage>201</targetDamage> <shots> <shottype>2</shottype> </shots> <max> <xpos>320</xpos> <ypos>381</ypos> </max> <targets> <target> <type>brick</type> <xpos>420</xpos> <ypos>225</ypos> </target> <target> <type>brick</type> <xpos>220</xpos> <ypos>225</ypos> </target> <target> <type>brick</type> <xpos>345</xpos> <ypos>74</ypos> </target> <target> <type>brick</type> <xpos>295</xpos> <ypos>74</ypos> </target> <target> <type>art</type> <xpos>320</xpos> <ypos>44</ypos> </target> <target> <type>microwave</type> <xpos>205</xpos> <ypos>195</ypos> </target> <target> <type>microwave</type> <xpos>435</xpos> <ypos>195</ypos> </target> <target> <type>brick</type> <xpos>435</xpos> <ypos>152</ypos> </target> <target> <type>brick</type> <xpos>205</xpos> <ypos>152</ypos> </target> </targets> </level> ; break; case 25: myXML = <level> <gravity>20</gravity> <lname>Pinball Wizard</lname> <targetDamage>100</targetDamage> <shots> <shottype>4</shottype> <shottype>4</shottype> <shottype>4</shottype> <shottype>4</shottype> <shottype>4</shottype> </shots> <max> <xpos>579</xpos> <ypos>177</ypos> </max> <targets> <target> <type>brick</type> <xpos>65</xpos> <ypos>74</ypos> </target> <target> <type>box</type> <xpos>65</xpos> <ypos>44</ypos> </target> <target> <type>brick</type> <xpos>65</xpos> <ypos>179</ypos> </target> <target> <type>brick</type> <xpos>65</xpos> <ypos>285</ypos> </target> <target> <type>brick</type> <xpos>65</xpos> <ypos>382</ypos> </target> <target> <type>brick</type> <xpos>145</xpos> <ypos>127</ypos> </target> <target> <type>brick</type> <xpos>145</xpos> <ypos>234</ypos> </target> <target> <type>brick</type> <xpos>145</xpos> <ypos>328</ypos> </target> <target> <type>brick</type> <xpos>225</xpos> <ypos>74</ypos> </target> <target> <type>brick</type> <xpos>225</xpos> <ypos>179</ypos> </target> <target> <type>brick</type> <xpos>225</xpos> <ypos>288</ypos> </target> <target> <type>brick</type> <xpos>225</xpos> <ypos>382</ypos> </target> <target> <type>brick</type> <xpos>315</xpos> <ypos>127</ypos> </target> <target> <type>brick</type> <xpos>315</xpos> <ypos>234</ypos> </target> <target> <type>brick</type> <xpos>315</xpos> <ypos>328</ypos> </target> <target> <type>brick</type> <xpos>400</xpos> <ypos>165</ypos> </target> <target> <type>brick</type> <xpos>400</xpos> <ypos>135</ypos> </target> <target> <type>brick</type> <xpos>400</xpos> <ypos>195</ypos> </target> <target> <type>brick</type> <xpos>400</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>400</xpos> <ypos>375</ypos> </target> <target> <type>brick</type> <xpos>400</xpos> <ypos>345</ypos> </target> <target> <type>brick</type> <xpos>400</xpos> <ypos>315</ypos> </target> <target> <type>brick</type> <xpos>400</xpos> <ypos>285</ypos> </target> <target> <type>brick</type> <xpos>400</xpos> <ypos>255</ypos> </target> <target> <type>brick</type> <xpos>400</xpos> <ypos>225</ypos> </target> <target> <type>box</type> <xpos>145</xpos> <ypos>97</ypos> </target> <target> <type>box</type> <xpos>225</xpos> <ypos>44</ypos> </target> <target> <type>box</type> <xpos>315</xpos> <ypos>97</ypos> </target> <target> <type>box</type> <xpos>315</xpos> <ypos>204</ypos> </target> <target> <type>box</type> <xpos>315</xpos> <ypos>298</ypos> </target> <target> <type>box</type> <xpos>225</xpos> <ypos>258</ypos> </target> <target> <type>box</type> <xpos>225</xpos> <ypos>149</ypos> </target> <target> <type>box</type> <xpos>145</xpos> <ypos>204</ypos> </target> <target> <type>box</type> <xpos>65</xpos> <ypos>149</ypos> </target> <target> <type>box</type> <xpos>65</xpos> <ypos>255</ypos> </target> <target> <type>box</type> <xpos>145</xpos> <ypos>297</ypos> </target> <target> <type>box</type> <xpos>225</xpos> <ypos>352</ypos> </target> <target> <type>box</type> <xpos>65</xpos> <ypos>352</ypos> </target> <target> <type>brick</type> <xpos>400</xpos> <ypos>105</ypos> </target> </targets> </level> ; break; case 26: myXML = <level> <gravity>20</gravity> <lname>Flaming art</lname> <targetDamage>3000</targetDamage> <shots> <shottype>5</shottype> <shottype>5</shottype> <shottype>5</shottype> </shots> <max> <xpos>556</xpos> <ypos>144</ypos> </max> <targets> <target> <type>brick</type> <xpos>421</xpos> <ypos>189</ypos> </target> <target> <type>box</type> <xpos>421</xpos> <ypos>159</ypos> </target> <target> <type>box</type> <xpos>421</xpos> <ypos>129</ypos> </target> <target> <type>box</type> <xpos>421</xpos> <ypos>99</ypos> </target> <target> <type>brick</type> <xpos>282</xpos> <ypos>150</ypos> </target> <target> <type>monitor</type> <xpos>281</xpos> <ypos>120</ypos> </target> <target> <type>monitor</type> <xpos>281</xpos> <ypos>90</ypos> </target> <target> <type>monitor</type> <xpos>281</xpos> <ypos>60</ypos> </target> <target> <type>brick</type> <xpos>144</xpos> <ypos>125</ypos> </target> <target> <type>box</type> <xpos>143</xpos> <ypos>95</ypos> </target> <target> <type>box</type> <xpos>143</xpos> <ypos>65</ypos> </target> <target> <type>box</type> <xpos>143</xpos> <ypos>35</ypos> </target> <target> <type>art</type> <xpos>63</xpos> <ypos>405</ypos> </target> <target> <type>fridge</type> <xpos>209</xpos> <ypos>390</ypos> </target> <target> <type>microwave</type> <xpos>357</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>421</xpos> <ypos>219</ypos> </target> <target> <type>brick</type> <xpos>421</xpos> <ypos>249</ypos> </target> <target> <type>brick</type> <xpos>421</xpos> <ypos>279</ypos> </target> <target> <type>brick</type> <xpos>421</xpos> <ypos>309</ypos> </target> <target> <type>brick</type> <xpos>421</xpos> <ypos>339</ypos> </target> <target> <type>brick</type> <xpos>421</xpos> <ypos>369</ypos> </target> </targets> </level> ; break; case 27: myXML = <level> <gravity>0</gravity> <lname>Zero G</lname> <targetDamage>2800</targetDamage> <shots> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> </shots> <max> <xpos>560</xpos> <ypos>360</ypos> </max> <targets> <target> <type>monitor</type> <xpos>347</xpos> <ypos>405</ypos> </target> <target> <type>monitor</type> <xpos>347</xpos> <ypos>375</ypos> </target> <target> <type>monitor</type> <xpos>347</xpos> <ypos>345</ypos> </target> <target> <type>monitor</type> <xpos>440</xpos> <ypos>215</ypos> </target> <target> <type>monitor</type> <xpos>440</xpos> <ypos>185</ypos> </target> <target> <type>monitor</type> <xpos>440</xpos> <ypos>155</ypos> </target> <target> <type>monitor</type> <xpos>214</xpos> <ypos>235</ypos> </target> <target> <type>monitor</type> <xpos>214</xpos> <ypos>205</ypos> </target> <target> <type>monitor</type> <xpos>214</xpos> <ypos>175</ypos> </target> <target> <type>monitor</type> <xpos>286</xpos> <ypos>103</ypos> </target> <target> <type>monitor</type> <xpos>286</xpos> <ypos>73</ypos> </target> <target> <type>monitor</type> <xpos>286</xpos> <ypos>43</ypos> </target> <target> <type>monitor</type> <xpos>108</xpos> <ypos>357</ypos> </target> <target> <type>monitor</type> <xpos>108</xpos> <ypos>327</ypos> </target> <target> <type>monitor</type> <xpos>108</xpos> <ypos>297</ypos> </target> <target> <type>monitor</type> <xpos>109</xpos> <ypos>128</ypos> </target> <target> <type>monitor</type> <xpos>109</xpos> <ypos>98</ypos> </target> <target> <type>monitor</type> <xpos>109</xpos> <ypos>68</ypos> </target> </targets> </level> ; break; case 28: myXML = <level> <gravity>20</gravity> <lname>Burn, bounce, explode!</lname> <targetDamage>4400</targetDamage> <shots> <shottype>5</shottype> <shottype>4</shottype> <shottype>3</shottype> </shots> <max> <xpos>501</xpos> <ypos>132</ypos> </max> <targets> <target> <type>brick</type> <xpos>124</xpos> <ypos>95</ypos> </target> <target> <type>brick</type> <xpos>154</xpos> <ypos>95</ypos> </target> <target> <type>brick</type> <xpos>184</xpos> <ypos>95</ypos> </target> <target> <type>brick</type> <xpos>214</xpos> <ypos>95</ypos> </target> <target> <type>box</type> <xpos>190</xpos> <ypos>65</ypos> </target> <target> <type>brick</type> <xpos>211</xpos> <ypos>26</ypos> </target> <target> <type>art</type> <xpos>38</xpos> <ypos>405</ypos> </target> <target> <type>art</type> <xpos>68</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>110</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>110</xpos> <ypos>375</ypos> </target> <target> <type>brick</type> <xpos>110</xpos> <ypos>345</ypos> </target> <target> <type>brick</type> <xpos>110</xpos> <ypos>315</ypos> </target> <target> <type>brick</type> <xpos>110</xpos> <ypos>285</ypos> </target> <target> <type>brick</type> <xpos>110</xpos> <ypos>255</ypos> </target> <target> <type>brick</type> <xpos>110</xpos> <ypos>225</ypos> </target> <target> <type>brick</type> <xpos>110</xpos> <ypos>195</ypos> </target> <target> <type>brick</type> <xpos>110</xpos> <ypos>165</ypos> </target> <target> <type>brick</type> <xpos>110</xpos> <ypos>135</ypos> </target> <target> <type>brick</type> <xpos>140</xpos> <ypos>375</ypos> </target> <target> <type>brick</type> <xpos>140</xpos> <ypos>285</ypos> </target> <target> <type>microwave</type> <xpos>140</xpos> <ypos>345</ypos> </target> <target> <type>microwave</type> <xpos>140</xpos> <ypos>255</ypos> </target> <target> <type>brick</type> <xpos>140</xpos> <ypos>195</ypos> </target> <target> <type>microwave</type> <xpos>140</xpos> <ypos>165</ypos> </target> <target> <type>brick</type> <xpos>234</xpos> <ypos>375</ypos> </target> <target> <type>brick</type> <xpos>234</xpos> <ypos>280</ypos> </target> <target> <type>brick</type> <xpos>232</xpos> <ypos>193</ypos> </target> <target> <type>microwave</type> <xpos>231</xpos> <ypos>163</ypos> </target> <target> <type>microwave</type> <xpos>234</xpos> <ypos>250</ypos> </target> <target> <type>microwave</type> <xpos>234</xpos> <ypos>345</ypos> </target> </targets> </level> ; break; case 29: myXML = <level> <gravity>20</gravity> <lname>Drop offs</lname> <targetDamage>800</targetDamage> <shots> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> </shots> <max> <xpos>314</xpos> <ypos>60</ypos> </max> <targets> <target> <type>widetv</type> <xpos>230</xpos> <ypos>239</ypos> </target> <target> <type>brick</type> <xpos>206</xpos> <ypos>141</ypos> </target> <target> <type>box</type> <xpos>207</xpos> <ypos>209</ypos> </target> <target> <type>brick</type> <xpos>190</xpos> <ypos>111</ypos> </target> <target> <type>brick</type> <xpos>176</xpos> <ypos>81</ypos> </target> <target> <type>brick</type> <xpos>160</xpos> <ypos>51</ypos> </target> <target> <type>brick</type> <xpos>221</xpos> <ypos>171</ypos> </target> <target> <type>brick</type> <xpos>145</xpos> <ypos>21</ypos> </target> <target> <type>brick</type> <xpos>215</xpos> <ypos>269</ypos> </target> <target> <type>fridge</type> <xpos>523</xpos> <ypos>185</ypos> </target> <target> <type>brick</type> <xpos>478</xpos> <ypos>230</ypos> </target> <target> <type>brick</type> <xpos>508</xpos> <ypos>230</ypos> </target> <target> <type>box</type> <xpos>478</xpos> <ypos>200</ypos> </target> <target> <type>brick</type> <xpos>538</xpos> <ypos>230</ypos> </target> <target> <type>brick</type> <xpos>551</xpos> <ypos>81</ypos> </target> <target> <type>brick</type> <xpos>581</xpos> <ypos>21</ypos> </target> <target> <type>brick</type> <xpos>566</xpos> <ypos>51</ypos> </target> <target> <type>brick</type> <xpos>537</xpos> <ypos>111</ypos> </target> <target> <type>monitor</type> <xpos>146</xpos> <ypos>405</ypos> </target> <target> <type>monitor</type> <xpos>603</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>415</xpos> <ypos>282</ypos> </target> <target> <type>brick</type> <xpos>489</xpos> <ypos>300</ypos> </target> <target> <type>box</type> <xpos>422</xpos> <ypos>252</ypos> </target> <target> <type>monitor</type> <xpos>443</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>567</xpos> <ypos>128</ypos> </target> <target> <type>brick</type> <xpos>519</xpos> <ypos>280</ypos> </target> <target> <type>brick</type> <xpos>385</xpos> <ypos>305</ypos> </target> <target> <type>brick</type> <xpos>224</xpos> <ypos>299</ypos> </target> <target> <type>brick</type> <xpos>305</xpos> <ypos>207</ypos> </target> <target> <type>brick</type> <xpos>335</xpos> <ypos>216</ypos> </target> </targets> </level> ; break; case 30: myXML = <level> <gravity>20</gravity> <lname>Tunnel</lname> <targetDamage>500</targetDamage> <shots> <shottype>4</shottype> <shottype>4</shottype> <shottype>3</shottype> </shots> <max> <xpos>91</xpos> <ypos>232</ypos> </max> <targets> <target> <type>brick</type> <xpos>330</xpos> <ypos>206</ypos> </target> <target> <type>brick</type> <xpos>360</xpos> <ypos>206</ypos> </target> <target> <type>brick</type> <xpos>390</xpos> <ypos>206</ypos> </target> <target> <type>box</type> <xpos>395</xpos> <ypos>176</ypos> </target> <target> <type>box</type> <xpos>347</xpos> <ypos>176</ypos> </target> <target> <type>brick</type> <xpos>329</xpos> <ypos>138</ypos> </target> <target> <type>brick</type> <xpos>359</xpos> <ypos>138</ypos> </target> <target> <type>brick</type> <xpos>389</xpos> <ypos>138</ypos> </target> <target> <type>brick</type> <xpos>314</xpos> <ypos>236</ypos> </target> <target> <type>brick</type> <xpos>312</xpos> <ypos>108</ypos> </target> <target> <type>art</type> <xpos>453</xpos> <ypos>405</ypos> </target> <target> <type>microwave</type> <xpos>495</xpos> <ypos>405</ypos> </target> <target> <type>monitor</type> <xpos>538</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>294</xpos> <ypos>275</ypos> </target> <target> <type>brick</type> <xpos>278</xpos> <ypos>313</ypos> </target> <target> <type>brick</type> <xpos>258</xpos> <ypos>350</ypos> </target> <target> <type>brick</type> <xpos>292</xpos> <ypos>69</ypos> </target> <target> <type>brick</type> <xpos>273</xpos> <ypos>29</ypos> </target> <target> <type>brick</type> <xpos>240</xpos> <ypos>388</ypos> </target> </targets> </level> ; break; case 31: myXML = <level> <gravity>20</gravity> <lname>Topple</lname> <targetDamage>100</targetDamage> <shots> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> </shots> <max> <xpos>565</xpos> <ypos>358</ypos> </max> <targets> <target> <type>brick</type> <xpos>21</xpos> <ypos>162</ypos> </target> <target> <type>fridge</type> <xpos>65</xpos> <ypos>117</ypos> </target> <target> <type>brick</type> <xpos>65</xpos> <ypos>53</ypos> </target> <target> <type>brick</type> <xpos>95</xpos> <ypos>53</ypos> </target> <target> <type>brick</type> <xpos>125</xpos> <ypos>53</ypos> </target> <target> <type>brick</type> <xpos>155</xpos> <ypos>83</ypos> </target> <target> <type>brick</type> <xpos>155</xpos> <ypos>113</ypos> </target> <target> <type>brick</type> <xpos>155</xpos> <ypos>143</ypos> </target> <target> <type>brick</type> <xpos>155</xpos> <ypos>173</ypos> </target> <target> <type>brick</type> <xpos>155</xpos> <ypos>203</ypos> </target> <target> <type>brick</type> <xpos>155</xpos> <ypos>233</ypos> </target> <target> <type>brick</type> <xpos>155</xpos> <ypos>263</ypos> </target> <target> <type>brick</type> <xpos>125</xpos> <ypos>293</ypos> </target> <target> <type>brick</type> <xpos>95</xpos> <ypos>293</ypos> </target> <target> <type>brick</type> <xpos>65</xpos> <ypos>293</ypos> </target> <target> <type>brick</type> <xpos>35</xpos> <ypos>293</ypos> </target> <target> <type>monitor</type> <xpos>106</xpos> <ypos>263</ypos> </target> <target> <type>brick</type> <xpos>155</xpos> <ypos>53</ypos> </target> <target> <type>brick</type> <xpos>51</xpos> <ypos>162</ypos> </target> <target> <type>brick</type> <xpos>155</xpos> <ypos>293</ypos> </target> </targets> </level> ; break; case 32: myXML = <level> <gravity>20</gravity> <lname>On the rebound</lname> <targetDamage>600</targetDamage> <shots> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> </shots> <max> <xpos>54</xpos> <ypos>244</ypos> </max> <targets> <target> <type>brick</type> <xpos>320</xpos> <ypos>105</ypos> </target> <target> <type>brick</type> <xpos>320</xpos> <ypos>135</ypos> </target> <target> <type>brick</type> <xpos>320</xpos> <ypos>165</ypos> </target> <target> <type>brick</type> <xpos>320</xpos> <ypos>195</ypos> </target> <target> <type>brick</type> <xpos>320</xpos> <ypos>225</ypos> </target> <target> <type>brick</type> <xpos>320</xpos> <ypos>255</ypos> </target> <target> <type>brick</type> <xpos>320</xpos> <ypos>285</ypos> </target> <target> <type>brick</type> <xpos>320</xpos> <ypos>315</ypos> </target> <target> <type>brick</type> <xpos>320</xpos> <ypos>345</ypos> </target> <target> <type>brick</type> <xpos>320</xpos> <ypos>375</ypos> </target> <target> <type>brick</type> <xpos>320</xpos> <ypos>405</ypos> </target> <target> <type>microwave</type> <xpos>478</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>480</xpos> <ypos>143</ypos> </target> <target> <type>microwave</type> <xpos>480</xpos> <ypos>113</ypos> </target> <target> <type>brick</type> <xpos>564</xpos> <ypos>143</ypos> </target> <target> <type>microwave</type> <xpos>564</xpos> <ypos>113</ypos> </target> <target> <type>microwave</type> <xpos>414</xpos> <ypos>405</ypos> </target> <target> <type>microwave</type> <xpos>546</xpos> <ypos>405</ypos> </target> <target> <type>microwave</type> <xpos>610</xpos> <ypos>405</ypos> </target> </targets> </level> ; break; case 33: myXML = <level> <gravity>20</gravity> <lname>Boxed Art</lname> <targetDamage>800</targetDamage> <shots> <shottype>4</shottype> <shottype>4</shottype> <shottype>4</shottype> <shottype>4</shottype> <shottype>4</shottype> </shots> <max> <xpos>64</xpos> <ypos>373</ypos> </max> <targets> <target> <type>box</type> <xpos>443</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>443</xpos> <ypos>375</ypos> </target> <target> <type>box</type> <xpos>443</xpos> <ypos>345</ypos> </target> <target> <type>box</type> <xpos>473</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>473</xpos> <ypos>345</ypos> </target> <target> <type>box</type> <xpos>503</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>503</xpos> <ypos>375</ypos> </target> <target> <type>box</type> <xpos>503</xpos> <ypos>345</ypos> </target> <target> <type>art</type> <xpos>473</xpos> <ypos>375</ypos> </target> <target> <type>box</type> <xpos>399</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>399</xpos> <ypos>375</ypos> </target> <target> <type>box</type> <xpos>356</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>356</xpos> <ypos>375</ypos> </target> <target> <type>box</type> <xpos>315</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>315</xpos> <ypos>375</ypos> </target> </targets> </level> ; break; case 34: myXML = <level> <gravity>20</gravity> <lname>Rolly polly</lname> <targetDamage>30</targetDamage> <shots> <shottype>4</shottype> <shottype>4</shottype> </shots> <max> <xpos>58</xpos> <ypos>329</ypos> </max> <targets> <target> <type>brick</type> <xpos>260</xpos> <ypos>166</ypos> </target> <target> <type>brick</type> <xpos>290</xpos> <ypos>196</ypos> </target> <target> <type>brick</type> <xpos>320</xpos> <ypos>226</ypos> </target> <target> <type>brick</type> <xpos>350</xpos> <ypos>256</ypos> </target> <target> <type>brick</type> <xpos>380</xpos> <ypos>286</ypos> </target> <target> <type>brick</type> <xpos>410</xpos> <ypos>315</ypos> </target> <target> <type>brick</type> <xpos>440</xpos> <ypos>345</ypos> </target> <target> <type>brick</type> <xpos>440</xpos> <ypos>375</ypos> </target> <target> <type>brick</type> <xpos>440</xpos> <ypos>405</ypos> </target> <target> <type>art</type> <xpos>494</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>312</xpos> <ypos>111</ypos> </target> <target> <type>brick</type> <xpos>312</xpos> <ypos>81</ypos> </target> <target> <type>brick</type> <xpos>312</xpos> <ypos>51</ypos> </target> <target> <type>brick</type> <xpos>312</xpos> <ypos>21</ypos> </target> <target> <type>brick</type> <xpos>188</xpos> <ypos>89</ypos> </target> <target> <type>brick</type> <xpos>158</xpos> <ypos>69</ypos> </target> <target> <type>brick</type> <xpos>128</xpos> <ypos>47</ypos> </target> </targets> </level> ; break; case 35: myXML = <level> <gravity>20</gravity> <lname>Back explosions</lname> <targetDamage>550</targetDamage> <shots> <shottype>3</shottype> <shottype>3</shottype> <shottype>3</shottype> </shots> <max> <xpos>153</xpos> <ypos>284</ypos> </max> <targets> <target> <type>brick</type> <xpos>236</xpos> <ypos>122</ypos> </target> <target> <type>brick</type> <xpos>236</xpos> <ypos>152</ypos> </target> <target> <type>brick</type> <xpos>236</xpos> <ypos>182</ypos> </target> <target> <type>brick</type> <xpos>266</xpos> <ypos>182</ypos> </target> <target> <type>brick</type> <xpos>266</xpos> <ypos>122</ypos> </target> <target> <type>brick</type> <xpos>349</xpos> <ypos>314</ypos> </target> <target> <type>brick</type> <xpos>319</xpos> <ypos>314</ypos> </target> <target> <type>brick</type> <xpos>319</xpos> <ypos>344</ypos> </target> <target> <type>brick</type> <xpos>319</xpos> <ypos>374</ypos> </target> <target> <type>brick</type> <xpos>349</xpos> <ypos>374</ypos> </target> <target> <type>brick</type> <xpos>464</xpos> <ypos>230</ypos> </target> <target> <type>brick</type> <xpos>464</xpos> <ypos>260</ypos> </target> <target> <type>brick</type> <xpos>464</xpos> <ypos>290</ypos> </target> <target> <type>brick</type> <xpos>494</xpos> <ypos>230</ypos> </target> <target> <type>brick</type> <xpos>494</xpos> <ypos>290</ypos> </target> <target> <type>microwave</type> <xpos>349</xpos> <ypos>344</ypos> </target> <target> <type>microwave</type> <xpos>266</xpos> <ypos>152</ypos> </target> <target> <type>microwave</type> <xpos>494</xpos> <ypos>260</ypos> </target> <target> <type>brick</type> <xpos>572</xpos> <ypos>77</ypos> </target> <target> <type>box</type> <xpos>572</xpos> <ypos>47</ypos> </target> <target> <type>brick</type> <xpos>602</xpos> <ypos>365</ypos> </target> <target> <type>box</type> <xpos>602</xpos> <ypos>335</ypos> </target> <target> <type>brick</type> <xpos>98</xpos> <ypos>88</ypos> </target> <target> <type>box</type> <xpos>97</xpos> <ypos>58</ypos> </target> <target> <type>brick</type> <xpos>83</xpos> <ypos>208</ypos> </target> <target> <type>box</type> <xpos>83</xpos> <ypos>178</ypos> </target> <target> <type>brick</type> <xpos>395</xpos> <ypos>93</ypos> </target> <target> <type>box</type> <xpos>395</xpos> <ypos>63</ypos> </target> <target> <type>brick</type> <xpos>441</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>441</xpos> <ypos>375</ypos> </target> <target> <type>brick</type> <xpos>603</xpos> <ypos>153</ypos> </target> <target> <type>box</type> <xpos>603</xpos> <ypos>123</ypos> </target> <target> <type>brick</type> <xpos>241</xpos> <ypos>383</ypos> </target> <target> <type>box</type> <xpos>241</xpos> <ypos>353</ypos> </target> <target> <type>brick</type> <xpos>525</xpos> <ypos>393</ypos> </target> <target> <type>box</type> <xpos>525</xpos> <ypos>363</ypos> </target> <target> <type>brick</type> <xpos>489</xpos> <ypos>141</ypos> </target> <target> <type>box</type> <xpos>489</xpos> <ypos>111</ypos> </target> <target> <type>brick</type> <xpos>75</xpos> <ypos>384</ypos> </target> <target> <type>box</type> <xpos>75</xpos> <ypos>354</ypos> </target> </targets> </level> ; break; case 36: myXML = <level> <gravity>20</gravity> <lname>Whack-a-stack</lname> <targetDamage>1100</targetDamage> <shots> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> </shots> <max> <xpos>50</xpos> <ypos>190</ypos> </max> <targets> <target> <type>brick</type> <xpos>274</xpos> <ypos>192</ypos> </target> <target> <type>brick</type> <xpos>305</xpos> <ypos>192</ypos> </target> <target> <type>brick</type> <xpos>336</xpos> <ypos>192</ypos> </target> <target> <type>brick</type> <xpos>367</xpos> <ypos>192</ypos> </target> <target> <type>brick</type> <xpos>398</xpos> <ypos>192</ypos> </target> <target> <type>brick</type> <xpos>429</xpos> <ypos>192</ypos> </target> <target> <type>brick</type> <xpos>460</xpos> <ypos>192</ypos> </target> <target> <type>brick</type> <xpos>491</xpos> <ypos>192</ypos> </target> <target> <type>brick</type> <xpos>522</xpos> <ypos>192</ypos> </target> <target> <type>brick</type> <xpos>553</xpos> <ypos>192</ypos> </target> <target> <type>box</type> <xpos>274</xpos> <ypos>162</ypos> </target> <target> <type>box</type> <xpos>274</xpos> <ypos>132</ypos> </target> <target> <type>box</type> <xpos>274</xpos> <ypos>102</ypos> </target> <target> <type>microwave</type> <xpos>429</xpos> <ypos>162</ypos> </target> <target> <type>brick</type> <xpos>584</xpos> <ypos>192</ypos> </target> <target> <type>art</type> <xpos>584</xpos> <ypos>162</ypos> </target> <target> <type>art</type> <xpos>584</xpos> <ypos>132</ypos> </target> <target> <type>art</type> <xpos>584</xpos> <ypos>102</ypos> </target> <target> <type>microwave</type> <xpos>429</xpos> <ypos>132</ypos> </target> <target> <type>microwave</type> <xpos>429</xpos> <ypos>102</ypos> </target> <target> <type>brick</type> <xpos>274</xpos> <ypos>21</ypos> </target> <target> <type>brick</type> <xpos>274</xpos> <ypos>51</ypos> </target> </targets> </level> ; break; case 37: myXML = <level> <gravity>20</gravity> <lname>Bouncing back</lname> <targetDamage>601</targetDamage> <shots> <shottype>4</shottype> </shots> <max> <xpos>412</xpos> <ypos>156</ypos> </max> <targets> <target> <type>microwave</type> <xpos>157</xpos> <ypos>405</ypos> </target> <target> <type>microwave</type> <xpos>206</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>105</xpos> <ypos>176</ypos> </target> <target> <type>fridge</type> <xpos>104</xpos> <ypos>131</ypos> </target> <target> <type>microwave</type> <xpos>182</xpos> <ypos>375</ypos> </target> </targets> </level> ; break; case 38: myXML = <level> <gravity>7</gravity> <lname>On the Moon</lname> <targetDamage>1400</targetDamage> <shots> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> </shots> <max> <xpos>57</xpos> <ypos>372</ypos> </max> <targets> <target> <type>brick</type> <xpos>274</xpos> <ypos>257</ypos> </target> <target> <type>microwave</type> <xpos>273</xpos> <ypos>227</ypos> </target> <target> <type>brick</type> <xpos>541</xpos> <ypos>68</ypos> </target> <target> <type>microwave</type> <xpos>540</xpos> <ypos>38</ypos> </target> <target> <type>brick</type> <xpos>437</xpos> <ypos>167</ypos> </target> <target> <type>microwave</type> <xpos>437</xpos> <ypos>137</ypos> </target> <target> <type>brick</type> <xpos>336</xpos> <ypos>81</ypos> </target> <target> <type>microwave</type> <xpos>335</xpos> <ypos>51</ypos> </target> <target> <type>brick</type> <xpos>34</xpos> <ypos>229</ypos> </target> <target> <type>microwave</type> <xpos>33</xpos> <ypos>199</ypos> </target> <target> <type>brick</type> <xpos>493</xpos> <ypos>346</ypos> </target> <target> <type>microwave</type> <xpos>493</xpos> <ypos>316</ypos> </target> <target> <type>brick</type> <xpos>394</xpos> <ypos>295</ypos> </target> <target> <type>microwave</type> <xpos>393</xpos> <ypos>265</ypos> </target> <target> <type>brick</type> <xpos>131</xpos> <ypos>100</ypos> </target> <target> <type>microwave</type> <xpos>131</xpos> <ypos>70</ypos> </target> <target> <type>brick</type> <xpos>603</xpos> <ypos>214</ypos> </target> <target> <type>microwave</type> <xpos>602</xpos> <ypos>184</ypos> </target> <target> <type>brick</type> <xpos>579</xpos> <ypos>291</ypos> </target> <target> <type>microwave</type> <xpos>578</xpos> <ypos>261</ypos> </target> <target> <type>brick</type> <xpos>244</xpos> <ypos>383</ypos> </target> <target> <type>microwave</type> <xpos>244</xpos> <ypos>353</ypos> </target> </targets> </level> ; break; case 39: myXML = <level> <gravity>20</gravity> <lname>Burning Box</lname> <targetDamage>2200</targetDamage> <shots> <shottype>5</shottype> <shottype>4</shottype> </shots> <max> <xpos>62</xpos> <ypos>173</ypos> </max> <targets> <target> <type>brick</type> <xpos>301</xpos> <ypos>206</ypos> </target> <target> <type>brick</type> <xpos>331</xpos> <ypos>206</ypos> </target> <target> <type>brick</type> <xpos>361</xpos> <ypos>206</ypos> </target> <target> <type>brick</type> <xpos>391</xpos> <ypos>206</ypos> </target> <target> <type>brick</type> <xpos>421</xpos> <ypos>206</ypos> </target> <target> <type>brick</type> <xpos>451</xpos> <ypos>206</ypos> </target> <target> <type>brick</type> <xpos>271</xpos> <ypos>206</ypos> </target> <target> <type>box</type> <xpos>448</xpos> <ypos>176</ypos> </target> <target> <type>art</type> <xpos>544</xpos> <ypos>405</ypos> </target> <target> <type>microwave</type> <xpos>505</xpos> <ypos>405</ypos> </target> <target> <type>microwave</type> <xpos>584</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>522</xpos> <ypos>80</ypos> </target> <target> <type>brick</type> <xpos>552</xpos> <ypos>51</ypos> </target> <target> <type>brick</type> <xpos>582</xpos> <ypos>22</ypos> </target> <target> <type>brick</type> <xpos>241</xpos> <ypos>235</ypos> </target> <target> <type>brick</type> <xpos>271</xpos> <ypos>265</ypos> </target> <target> <type>brick</type> <xpos>241</xpos> <ypos>295</ypos> </target> <target> <type>brick</type> <xpos>271</xpos> <ypos>325</ypos> </target> <target> <type>brick</type> <xpos>241</xpos> <ypos>355</ypos> </target> <target> <type>brick</type> <xpos>271</xpos> <ypos>385</ypos> </target> <target> <type>brick</type> <xpos>462</xpos> <ypos>138</ypos> </target> <target> <type>brick</type> <xpos>492</xpos> <ypos>109</ypos> </target> <target> <type>microwave</type> <xpos>412</xpos> <ypos>176</ypos> </target> </targets> </level> ; break; case 40: myXML = <level> <gravity>20</gravity> <lname>Mixed shots</lname> <targetDamage>1500</targetDamage> <shots> <shottype>1</shottype> <shottype>4</shottype> <shottype>2</shottype> <shottype>3</shottype> </shots> <max> <xpos>119</xpos> <ypos>181</ypos> </max> <targets> <target> <type>brick</type> <xpos>363</xpos> <ypos>187</ypos> </target> <target> <type>brick</type> <xpos>393</xpos> <ypos>187</ypos> </target> <target> <type>brick</type> <xpos>423</xpos> <ypos>187</ypos> </target> <target> <type>brick</type> <xpos>453</xpos> <ypos>187</ypos> </target> <target> <type>brick</type> <xpos>483</xpos> <ypos>187</ypos> </target> <target> <type>brick</type> <xpos>513</xpos> <ypos>187</ypos> </target> <target> <type>brick</type> <xpos>543</xpos> <ypos>187</ypos> </target> <target> <type>box</type> <xpos>362</xpos> <ypos>157</ypos> </target> <target> <type>box</type> <xpos>362</xpos> <ypos>127</ypos> </target> <target> <type>box</type> <xpos>362</xpos> <ypos>97</ypos> </target> <target> <type>brick</type> <xpos>362</xpos> <ypos>21</ypos> </target> <target> <type>brick</type> <xpos>362</xpos> <ypos>51</ypos> </target> <target> <type>microwave</type> <xpos>392</xpos> <ypos>157</ypos> </target> <target> <type>microwave</type> <xpos>392</xpos> <ypos>127</ypos> </target> <target> <type>microwave</type> <xpos>392</xpos> <ypos>97</ypos> </target> <target> <type>fridge</type> <xpos>543</xpos> <ypos>142</ypos> </target> <target> <type>art</type> <xpos>464</xpos> <ypos>157</ypos> </target> </targets> </level> ; break; case 41: myXML = <level> <gravity>20</gravity> <lname>Pyromania</lname> <targetDamage>200</targetDamage> <shots> <shottype>5</shottype> <shottype>5</shottype> <shottype>5</shottype> <shottype>5</shottype> <shottype>5</shottype> </shots> <max> <xpos>74</xpos> <ypos>202</ypos> </max> <targets> <target> <type>box</type> <xpos>34</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>86</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>138</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>189</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>241</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>292</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>341</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>389</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>436</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>485</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>534</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>583</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>224</xpos> <ypos>100</ypos> </target> <target> <type>box</type> <xpos>224</xpos> <ypos>70</ypos> </target> <target> <type>brick</type> <xpos>223</xpos> <ypos>209</ypos> </target> <target> <type>box</type> <xpos>223</xpos> <ypos>179</ypos> </target> <target> <type>brick</type> <xpos>223</xpos> <ypos>323</ypos> </target> <target> <type>box</type> <xpos>223</xpos> <ypos>293</ypos> </target> <target> <type>box</type> <xpos>326</xpos> <ypos>196</ypos> </target> <target> <type>brick</type> <xpos>326</xpos> <ypos>226</ypos> </target> <target> <type>box</type> <xpos>326</xpos> <ypos>166</ypos> </target> <target> <type>brick</type> <xpos>438</xpos> <ypos>250</ypos> </target> <target> <type>box</type> <xpos>438</xpos> <ypos>220</ypos> </target> <target> <type>box</type> <xpos>438</xpos> <ypos>190</ypos> </target> <target> <type>box</type> <xpos>438</xpos> <ypos>160</ypos> </target> <target> <type>brick</type> <xpos>553</xpos> <ypos>266</ypos> </target> <target> <type>box</type> <xpos>553</xpos> <ypos>236</ypos> </target> <target> <type>box</type> <xpos>553</xpos> <ypos>206</ypos> </target> <target> <type>box</type> <xpos>553</xpos> <ypos>176</ypos> </target> <target> <type>box</type> <xpos>553</xpos> <ypos>146</ypos> </target> <target> <type>brick</type> <xpos>377</xpos> <ypos>77</ypos> </target> <target> <type>box</type> <xpos>377</xpos> <ypos>47</ypos> </target> <target> <type>brick</type> <xpos>495</xpos> <ypos>80</ypos> </target> <target> <type>box</type> <xpos>495</xpos> <ypos>50</ypos> </target> <target> <type>brick</type> <xpos>326</xpos> <ypos>323</ypos> </target> <target> <type>box</type> <xpos>326</xpos> <ypos>293</ypos> </target> <target> <type>brick</type> <xpos>438</xpos> <ypos>342</ypos> </target> <target> <type>box</type> <xpos>438</xpos> <ypos>312</ypos> </target> </targets> </level> ; break; case 42: myXML = <level> <gravity>20</gravity> <lname>Explode-a-pyramid</lname> <targetDamage>130</targetDamage> <shots> <shottype>3</shottype> <shottype>3</shottype> </shots> <max> <xpos>537</xpos> <ypos>324</ypos> </max> <targets> <target> <type>brick</type> <xpos>438</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>438</xpos> <ypos>375</ypos> </target> <target> <type>box</type> <xpos>116</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>167</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>271</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>323</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>141</xpos> <ypos>375</ypos> </target> <target> <type>box</type> <xpos>193</xpos> <ypos>375</ypos> </target> <target> <type>box</type> <xpos>244</xpos> <ypos>375</ypos> </target> <target> <type>box</type> <xpos>296</xpos> <ypos>375</ypos> </target> <target> <type>box</type> <xpos>167</xpos> <ypos>345</ypos> </target> <target> <type>box</type> <xpos>219</xpos> <ypos>345</ypos> </target> <target> <type>box</type> <xpos>270</xpos> <ypos>345</ypos> </target> <target> <type>box</type> <xpos>193</xpos> <ypos>315</ypos> </target> <target> <type>box</type> <xpos>245</xpos> <ypos>315</ypos> </target> <target> <type>box</type> <xpos>219</xpos> <ypos>285</ypos> </target> <target> <type>brick</type> <xpos>438</xpos> <ypos>345</ypos> </target> <target> <type>brick</type> <xpos>438</xpos> <ypos>315</ypos> </target> <target> <type>brick</type> <xpos>438</xpos> <ypos>285</ypos> </target> <target> <type>microwave</type> <xpos>218</xpos> <ypos>405</ypos> </target> </targets> </level> ; break; case 43: myXML = <level> <gravity>20</gravity> <lname>Find the weak spot</lname> <targetDamage>1500</targetDamage> <shots> <shottype>4</shottype> <shottype>4</shottype> </shots> <max> <xpos>539</xpos> <ypos>227</ypos> </max> <targets> <target> <type>brick</type> <xpos>112</xpos> <ypos>211</ypos> </target> <target> <type>brick</type> <xpos>142</xpos> <ypos>211</ypos> </target> <target> <type>brick</type> <xpos>172</xpos> <ypos>211</ypos> </target> <target> <type>brick</type> <xpos>202</xpos> <ypos>211</ypos> </target> <target> <type>brick</type> <xpos>232</xpos> <ypos>211</ypos> </target> <target> <type>brick</type> <xpos>262</xpos> <ypos>211</ypos> </target> <target> <type>box</type> <xpos>261</xpos> <ypos>181</ypos> </target> <target> <type>widetv</type> <xpos>229</xpos> <ypos>121</ypos> </target> <target> <type>fridge</type> <xpos>191</xpos> <ypos>166</ypos> </target> <target> <type>box</type> <xpos>261</xpos> <ypos>151</ypos> </target> <target> <type>fridge</type> <xpos>157</xpos> <ypos>77</ypos> </target> <target> <type>widetv</type> <xpos>159</xpos> <ypos>121</ypos> </target> <target> <type>fridge</type> <xpos>126</xpos> <ypos>166</ypos> </target> <target> <type>fridge</type> <xpos>229</xpos> <ypos>77</ypos> </target> <target> <type>widetv</type> <xpos>192</xpos> <ypos>33</ypos> </target> <target> <type>brick</type> <xpos>82</xpos> <ypos>211</ypos> </target> <target> <type>brick</type> <xpos>52</xpos> <ypos>211</ypos> </target> <target> <type>brick</type> <xpos>22</xpos> <ypos>211</ypos> </target> <target> <type>microwave</type> <xpos>345</xpos> <ypos>405</ypos> </target> <target> <type>microwave</type> <xpos>369</xpos> <ypos>345</ypos> </target> <target> <type>microwave</type> <xpos>359</xpos> <ypos>375</ypos> </target> <target> <type>brick</type> <xpos>437</xpos> <ypos>300</ypos> </target> <target> <type>brick</type> <xpos>557</xpos> <ypos>389</ypos> </target> <target> <type>brick</type> <xpos>527</xpos> <ypos>367</ypos> </target> <target> <type>brick</type> <xpos>497</xpos> <ypos>346</ypos> </target> <target> <type>brick</type> <xpos>467</xpos> <ypos>321</ypos> </target> <target> <type>microwave</type> <xpos>381</xpos> <ypos>316</ypos> </target> <target> <type>monitor</type> <xpos>422</xpos> <ypos>405</ypos> </target> </targets> </level> ; break; case 44: myXML = <level> <gravity>20</gravity> <lname>Move those boxes</lname> <targetDamage>50</targetDamage> <shots> <shottype>3</shottype> <shottype>3</shottype> <shottype>1</shottype> </shots> <max> <xpos>520</xpos> <ypos>285</ypos> </max> <targets> <target> <type>brick</type> <xpos>185</xpos> <ypos>76</ypos> </target> <target> <type>brick</type> <xpos>215</xpos> <ypos>76</ypos> </target> <target> <type>brick</type> <xpos>214</xpos> <ypos>177</ypos> </target> <target> <type>brick</type> <xpos>184</xpos> <ypos>177</ypos> </target> <target> <type>brick</type> <xpos>154</xpos> <ypos>177</ypos> </target> <target> <type>brick</type> <xpos>214</xpos> <ypos>327</ypos> </target> <target> <type>brick</type> <xpos>214</xpos> <ypos>357</ypos> </target> <target> <type>brick</type> <xpos>214</xpos> <ypos>207</ypos> </target> <target> <type>brick</type> <xpos>214</xpos> <ypos>267</ypos> </target> <target> <type>brick</type> <xpos>214</xpos> <ypos>297</ypos> </target> <target> <type>brick</type> <xpos>21</xpos> <ypos>249</ypos> </target> <target> <type>brick</type> <xpos>125</xpos> <ypos>31</ypos> </target> <target> <type>monitor</type> <xpos>21</xpos> <ypos>219</ypos> </target> <target> <type>brick</type> <xpos>214</xpos> <ypos>237</ypos> </target> <target> <type>box</type> <xpos>183</xpos> <ypos>147</ypos> </target> <target> <type>box</type> <xpos>153</xpos> <ypos>147</ypos> </target> <target> <type>box</type> <xpos>183</xpos> <ypos>117</ypos> </target> <target> <type>box</type> <xpos>153</xpos> <ypos>117</ypos> </target> <target> <type>brick</type> <xpos>155</xpos> <ypos>53</ypos> </target> <target> <type>brick</type> <xpos>214</xpos> <ypos>387</ypos> </target> </targets> </level> ; break; case 45: myXML = <level> <gravity>20</gravity> <lname>Gaps</lname> <targetDamage>50</targetDamage> <shots> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> <shottype>1</shottype> </shots> <max> <xpos>42</xpos> <ypos>329</ypos> </max> <targets> <target> <type>brick</type> <xpos>158</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>158</xpos> <ypos>375</ypos> </target> <target> <type>brick</type> <xpos>158</xpos> <ypos>345</ypos> </target> <target> <type>brick</type> <xpos>158</xpos> <ypos>315</ypos> </target> <target> <type>box</type> <xpos>158</xpos> <ypos>285</ypos> </target> <target> <type>brick</type> <xpos>158</xpos> <ypos>243</ypos> </target> <target> <type>brick</type> <xpos>308</xpos> <ypos>220</ypos> </target> <target> <type>brick</type> <xpos>308</xpos> <ypos>288</ypos> </target> <target> <type>box</type> <xpos>308</xpos> <ypos>258</ypos> </target> <target> <type>brick</type> <xpos>453</xpos> <ypos>315</ypos> </target> <target> <type>monitor</type> <xpos>606</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>453</xpos> <ypos>285</ypos> </target> <target> <type>brick</type> <xpos>453</xpos> <ypos>247</ypos> </target> <target> <type>brick</type> <xpos>128</xpos> <ypos>243</ypos> </target> <target> <type>brick</type> <xpos>98</xpos> <ypos>243</ypos> </target> <target> <type>brick</type> <xpos>68</xpos> <ypos>243</ypos> </target> <target> <type>brick</type> <xpos>38</xpos> <ypos>243</ypos> </target> <target> <type>brick</type> <xpos>453</xpos> <ypos>375</ypos> </target> <target> <type>brick</type> <xpos>453</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>453</xpos> <ypos>345</ypos> </target> </targets> </level> ; break; case 46: myXML = <level> <gravity>20</gravity> <lname>Art bonfire!</lname> <targetDamage>8000</targetDamage> <shots> <shottype>5</shottype> <shottype>2</shottype> <shottype>2</shottype> </shots> <max> <xpos>68</xpos> <ypos>179</ypos> </max> <targets> <target> <type>box</type> <xpos>273</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>305</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>337</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>369</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>401</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>433</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>465</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>497</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>529</xpos> <ypos>405</ypos> </target> <target> <type>box</type> <xpos>561</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>315</xpos> <ypos>105</ypos> </target> <target> <type>brick</type> <xpos>315</xpos> <ypos>185</ypos> </target> <target> <type>brick</type> <xpos>315</xpos> <ypos>265</ypos> </target> <target> <type>brick</type> <xpos>415</xpos> <ypos>65</ypos> </target> <target> <type>brick</type> <xpos>415</xpos> <ypos>145</ypos> </target> <target> <type>brick</type> <xpos>415</xpos> <ypos>225</ypos> </target> <target> <type>brick</type> <xpos>415</xpos> <ypos>305</ypos> </target> <target> <type>brick</type> <xpos>515</xpos> <ypos>103</ypos> </target> <target> <type>brick</type> <xpos>515</xpos> <ypos>185</ypos> </target> <target> <type>brick</type> <xpos>515</xpos> <ypos>265</ypos> </target> <target> <type>art</type> <xpos>315</xpos> <ypos>235</ypos> </target> <target> <type>art</type> <xpos>315</xpos> <ypos>155</ypos> </target> <target> <type>art</type> <xpos>314</xpos> <ypos>75</ypos> </target> <target> <type>art</type> <xpos>414</xpos> <ypos>35</ypos> </target> <target> <type>art</type> <xpos>415</xpos> <ypos>115</ypos> </target> <target> <type>art</type> <xpos>414</xpos> <ypos>195</ypos> </target> <target> <type>art</type> <xpos>414</xpos> <ypos>275</ypos> </target> <target> <type>art</type> <xpos>514</xpos> <ypos>235</ypos> </target> <target> <type>art</type> <xpos>514</xpos> <ypos>155</ypos> </target> <target> <type>art</type> <xpos>515</xpos> <ypos>73</ypos> </target> </targets> </level> ; break; case 47: myXML = <level> <gravity>20</gravity> <lname>Get in the hole</lname> <targetDamage>1450</targetDamage> <shots> <shottype>4</shottype> <shottype>3</shottype> <shottype>4</shottype> </shots> <max> <xpos>505</xpos> <ypos>200</ypos> </max> <targets> <target> <type>brick</type> <xpos>136</xpos> <ypos>114</ypos> </target> <target> <type>brick</type> <xpos>136</xpos> <ypos>144</ypos> </target> <target> <type>brick</type> <xpos>136</xpos> <ypos>174</ypos> </target> <target> <type>brick</type> <xpos>166</xpos> <ypos>204</ypos> </target> <target> <type>brick</type> <xpos>196</xpos> <ypos>204</ypos> </target> <target> <type>brick</type> <xpos>226</xpos> <ypos>204</ypos> </target> <target> <type>brick</type> <xpos>256</xpos> <ypos>204</ypos> </target> <target> <type>brick</type> <xpos>136</xpos> <ypos>204</ypos> </target> <target> <type>brick</type> <xpos>286</xpos> <ypos>204</ypos> </target> <target> <type>brick</type> <xpos>286</xpos> <ypos>174</ypos> </target> <target> <type>brick</type> <xpos>286</xpos> <ypos>144</ypos> </target> <target> <type>brick</type> <xpos>286</xpos> <ypos>114</ypos> </target> <target> <type>brick</type> <xpos>286</xpos> <ypos>84</ypos> </target> <target> <type>brick</type> <xpos>136</xpos> <ypos>84</ypos> </target> <target> <type>brick</type> <xpos>166</xpos> <ypos>84</ypos> </target> <target> <type>brick</type> <xpos>256</xpos> <ypos>84</ypos> </target> <target> <type>brick</type> <xpos>226</xpos> <ypos>84</ypos> </target> <target> <type>microwave</type> <xpos>166</xpos> <ypos>174</ypos> </target> <target> <type>microwave</type> <xpos>256</xpos> <ypos>174</ypos> </target> <target> <type>microwave</type> <xpos>226</xpos> <ypos>174</ypos> </target> <target> <type>microwave</type> <xpos>196</xpos> <ypos>174</ypos> </target> <target> <type>microwave</type> <xpos>166</xpos> <ypos>144</ypos> </target> <target> <type>microwave</type> <xpos>166</xpos> <ypos>114</ypos> </target> <target> <type>microwave</type> <xpos>256</xpos> <ypos>144</ypos> </target> <target> <type>microwave</type> <xpos>256</xpos> <ypos>114</ypos> </target> <target> <type>brick</type> <xpos>347</xpos> <ypos>306</ypos> </target> <target> <type>brick</type> <xpos>347</xpos> <ypos>276</ypos> </target> <target> <type>brick</type> <xpos>347</xpos> <ypos>336</ypos> </target> <target> <type>brick</type> <xpos>347</xpos> <ypos>366</ypos> </target> <target> <type>brick</type> <xpos>347</xpos> <ypos>396</ypos> </target> <target> <type>brick</type> <xpos>317</xpos> <ypos>396</ypos> </target> <target> <type>brick</type> <xpos>287</xpos> <ypos>396</ypos> </target> <target> <type>brick</type> <xpos>257</xpos> <ypos>396</ypos> </target> <target> <type>brick</type> <xpos>227</xpos> <ypos>396</ypos> </target> <target> <type>brick</type> <xpos>197</xpos> <ypos>396</ypos> </target> <target> <type>brick</type> <xpos>197</xpos> <ypos>366</ypos> </target> <target> <type>brick</type> <xpos>197</xpos> <ypos>336</ypos> </target> <target> <type>brick</type> <xpos>197</xpos> <ypos>306</ypos> </target> <target> <type>brick</type> <xpos>197</xpos> <ypos>276</ypos> </target> <target> <type>brick</type> <xpos>227</xpos> <ypos>276</ypos> </target> <target> <type>brick</type> <xpos>317</xpos> <ypos>276</ypos> </target> <target> <type>microwave</type> <xpos>227</xpos> <ypos>366</ypos> </target> <target> <type>microwave</type> <xpos>257</xpos> <ypos>366</ypos> </target> <target> <type>microwave</type> <xpos>287</xpos> <ypos>366</ypos> </target> <target> <type>microwave</type> <xpos>317</xpos> <ypos>366</ypos> </target> <target> <type>microwave</type> <xpos>227</xpos> <ypos>336</ypos> </target> <target> <type>microwave</type> <xpos>317</xpos> <ypos>336</ypos> </target> <target> <type>microwave</type> <xpos>317</xpos> <ypos>306</ypos> </target> <target> <type>microwave</type> <xpos>227</xpos> <ypos>306</ypos> </target> </targets> </level> ; break; case 48: myXML = <level> <gravity>0</gravity> <lname>Explosions in space</lname> <targetDamage>2000</targetDamage> <shots> <shottype>3</shottype> <shottype>3</shottype> </shots> <max> <xpos>320</xpos> <ypos>356</ypos> </max> <targets> <target> <type>monitor</type> <xpos>320</xpos> <ypos>75</ypos> </target> <target> <type>monitor</type> <xpos>230</xpos> <ypos>130</ypos> </target> <target> <type>monitor</type> <xpos>170</xpos> <ypos>210</ypos> </target> <target> <type>monitor</type> <xpos>230</xpos> <ypos>290</ypos> </target> <target> <type>monitor</type> <xpos>410</xpos> <ypos>290</ypos> </target> <target> <type>monitor</type> <xpos>470</xpos> <ypos>210</ypos> </target> <target> <type>monitor</type> <xpos>410</xpos> <ypos>130</ypos> </target> <target> <type>monitor</type> <xpos>240</xpos> <ypos>45</ypos> </target> <target> <type>monitor</type> <xpos>400</xpos> <ypos>45</ypos> </target> <target> <type>monitor</type> <xpos>140</xpos> <ypos>135</ypos> </target> <target> <type>monitor</type> <xpos>140</xpos> <ypos>285</ypos> </target> <target> <type>monitor</type> <xpos>240</xpos> <ypos>375</ypos> </target> <target> <type>monitor</type> <xpos>401</xpos> <ypos>375</ypos> </target> <target> <type>monitor</type> <xpos>501</xpos> <ypos>285</ypos> </target> <target> <type>monitor</type> <xpos>500</xpos> <ypos>135</ypos> </target> </targets> </level> ; break; case 49: myXML = <level> <gravity>20</gravity> <lname>One of each</lname> <targetDamage>5000</targetDamage> <shots> <shottype>1</shottype> <shottype>2</shottype> <shottype>4</shottype> <shottype>5</shottype> <shottype>3</shottype> </shots> <max> <xpos>88</xpos> <ypos>210</ypos> </max> <targets> <target> <type>brick</type> <xpos>228</xpos> <ypos>135</ypos> </target> <target> <type>fridge</type> <xpos>228</xpos> <ypos>90</ypos> </target> <target> <type>brick</type> <xpos>371</xpos> <ypos>94</ypos> </target> <target> <type>art</type> <xpos>371</xpos> <ypos>64</ypos> </target> <target> <type>brick</type> <xpos>537</xpos> <ypos>345</ypos> </target> <target> <type>art</type> <xpos>536</xpos> <ypos>315</ypos> </target> <target> <type>brick</type> <xpos>365</xpos> <ypos>234</ypos> </target> <target> <type>widetv</type> <xpos>367</xpos> <ypos>204</ypos> </target> <target> <type>microwave</type> <xpos>413</xpos> <ypos>405</ypos> </target> <target> <type>brick</type> <xpos>43</xpos> <ypos>348</ypos> </target> <target> <type>monitor</type> <xpos>43</xpos> <ypos>318</ypos> </target> <target> <type>brick</type> <xpos>474</xpos> <ypos>169</ypos> </target> <target> <type>fridge</type> <xpos>473</xpos> <ypos>124</ypos> </target> <target> <type>brick</type> <xpos>580</xpos> <ypos>244</ypos> </target> <target> <type>monitor</type> <xpos>579</xpos> <ypos>214</ypos> </target> <target> <type>brick</type> <xpos>218</xpos> <ypos>319</ypos> </target> <target> <type>widetv</type> <xpos>217</xpos> <ypos>289</ypos> </target> <target> <type>brick</type> <xpos>331</xpos> <ypos>335</ypos> </target> <target> <type>microwave</type> <xpos>330</xpos> <ypos>305</ypos> </target> </targets> </level> ; break; default: trace("eek - couldn't find the level data!"); break; }; return (myXML); } } var _local1:Boolean; //unresolved jump var _local2 = ((((false + !NULL!) / (false + 1)) + !NULL!) >= !NULL!); if (!((_local2) && (_local2))){ //unresolved jump //unresolved jump ((this + 1) * ??getglobalscope ).levelData = [OP_NEWCLASS ClassInfo:100 base:Sprite]; }; }//package
Section 123
//levelFailSnd (levelFailSnd) package { import flash.media.*; public dynamic class levelFailSnd extends Sound { } //unresolved jump var _local1 = ((((true is (false + 1)) >>> !NULL!) - 1) instanceof !NULL!); !ERROR! if (_local1){ //unresolved jump ??getglobalscope ; }; if (!_local1){ //unresolved jump _local1 = ((EventDispatcher + true) - true); [OP_NEWCLASS ClassInfo:89 base:Sound].levelFailSnd = !NULL!; }; }//package
Section 124
//levelUI (levelUI) package { import flash.display.*; import mochi.as3.*; import flash.events.*; public class levelUI extends Sprite { private var levelScreen:MovieClip; private var buttons:Sprite; private var maxDam:maxDamage; public function levelUI(_arg1:maxDamage, _arg2:MovieClip):void{ maxDam = _arg1; levelScreen = _arg2; } private function rollOutBtn(_arg1:MouseEvent):void{ _arg1.currentTarget.gotoAndStop(1); } public function showSelect():void{ var _local1:uint; var _local2:*; if (buttons != null){ levelScreen.removeChild(buttons); buttons = null; }; buttons = new Sprite(); levelScreen.addChild(buttons); _local1 = 0; while (_local1 < maxDamage.NUMLEVELS) { _local2 = MovieClip(new levBtn()); buttons.addChild(_local2); _local2.num.text = (_local1 + 1); _local2.x = (80 + ((_local1 % 7) * 80)); _local2.y = (130 + (Math.floor((_local1 / 7)) * 50)); if (_local1 == 0){ _local2.buttonMode = true; _local2.addEventListener(MouseEvent.MOUSE_DOWN, levelSelect); _local2.addEventListener(MouseEvent.ROLL_OVER, rollBtn); _local2.addEventListener(MouseEvent.ROLL_OUT, rollOutBtn); } else { if (maxDam.saveTemp.pass[(_local1 - 1)]){ _local2.buttonMode = true; _local2.addEventListener(MouseEvent.MOUSE_DOWN, levelSelect); _local2.addEventListener(MouseEvent.ROLL_OVER, rollBtn); _local2.addEventListener(MouseEvent.ROLL_OUT, rollOutBtn); } else { _local2.gotoAndStop(3); }; }; _local1++; }; } private function rollBtn(_arg1:MouseEvent):void{ _arg1.currentTarget.gotoAndStop(2); } private function levelSelect(_arg1:MouseEvent):void{ var _local2:buttonSnd; var _local3:uint; _local2 = new buttonSnd(); maxDamage.SOUNDCHANNEL = _local2.play(0, 1, maxDamage.SOUNDTRAN); _local3 = 0; while (_local3 < buttons.numChildren) { if (MovieClip(buttons.getChildAt(_local3)).buttonMode == true){ buttons.getChildAt(_local3).removeEventListener(MouseEvent.MOUSE_DOWN, levelSelect); buttons.getChildAt(_local3).removeEventListener(MouseEvent.ROLL_OVER, rollBtn); buttons.getChildAt(_local3).removeEventListener(MouseEvent.ROLL_OUT, rollOutBtn); }; _local3++; }; maxDam.textDelay = 2100; maxDam.levelNum = (_arg1.currentTarget.parent.getChildIndex(_arg1.currentTarget) + 1); maxDam.resetLevel(); maxDam.showLevel(); if (maxDam.mc){ MochiCoins.hideLoginWidget(); }; } } //unresolved jump var _local1 = (((true - false) === -()) | !NULL!); _local1 = !NULL!; !ERROR! if (!_local1){ //unresolved jump _local2 = (((//unresolved nextvalue or nextname >> !NULL!) < !NULL!) - !NULL!); //unresolved jump ((((((!NULL! + 1) & !NULL!) > !NULL!) >= !NULL!) << !NULL!) + !NULL!).levelUI = [OP_NEWCLASS ClassInfo:97 base:Sprite]; }; }//package
Section 125
//maxDamage (maxDamage) package { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; import flash.display.*; import mochi.as3.*; import flash.events.*; import flash.net.*; import flash.media.*; import flash.utils.*; import flash.geom.*; public dynamic class maxDamage extends MovieClip { private var ballBodyDef:b2BodyDef; private var left:Boolean;// = true private var backgnd:MovieClip; public var siteLockScreen:MovieClip; private var music:musicSound; private var currTime:uint; private var shotPics:Sprite; public var m_iterations:int;// = 10 private var ballBody:b2Body; private var levComplete:MovieClip; public var real_x_mouse:Number; public var armorSplash:MovieClip; public var ui:generalUI; private var shotColor:Array; private var targetInf:MovieClip; private var frames:uint; public var menuScreen:MovieClip; public var myReadout:MovieClip; public var particles:Array; private var shots:uint; public var saveData:saveGame; public var m_timeStep:Number;// = 0.0333333333333333 private var musicOn:Boolean;// = true private var menUI:menuUI; public var gameScreen:MovieClip; public var saveTemp:Object; private var targets:Sprite; public var completeScreen:MovieClip; private var cannonTrail:ballTrail; public var levelScreen:MovieClip; private var power:Number; private var musicChannel:SoundChannel; public var m_contactListener; private var myLevel:level; public var tips:Sprite; public var m_world:b2World; private var tryAg:MovieClip; public var mousePVec:b2Vec2; public var levelNum:uint; private var damExceed:Boolean; private var levUI:levelUI; public var damageMax:uint; private var goUI:gameOverUI; private var myImpulse:b2Vec2; public var real_y_mouse:Number; public var mc:Boolean;// = false private var waitMsg:MovieClip; public var pixels_in_a_meter;// = 30 private var statUI:statsUI; public var statsScreen:MovieClip; public static const SOUNDTRAN:SoundTransform = new SoundTransform(); public static var READYTOSHOOT:uint = 2; public static var READYTOEXPLODE:uint = 3; public static var LEFT = 6; public static var RIGHT = 634; public static var DAMAGEVELOCITY:uint = 4; public static var MAXIMPULSE:uint; public static var SOUNDCHANNEL:SoundChannel; public static var NUMLEVELS:uint = 49; public static var LEVELFINISHED:uint = 5; public static var DAMAGEIMPULSE:Number = 0.3; public static var MINIMPULSE:uint = 54; public static var SOUNDON:Boolean = true; public static var IMPULSEFACTOR:uint = 8; public static var WAITING:uint = 0; public static var SHOOTNEXT:uint = 1; public static var SHOTSUP:uint = 4; public static var TOP = 6; public static var BOTTOM = 420; public static var TRIPLEFACTOR:uint = 4; public static var GAMESTATE:uint = 0; public function maxDamage(){ m_iterations = 10; m_timeStep = (1 / 30); mousePVec = new b2Vec2(); pixels_in_a_meter = 30; ui = new generalUI(); mc = false; saveTemp = new Object(); shotColor = [0x9900, 15394337, 910069, 16021280, 0xFF6600]; left = true; musicOn = true; particles = new Array(); super(); addFrameScript(1, frame2, 2, frame3); saveData = new saveGame(this); m_contactListener = new myContactListener(this); } private function writeData(_arg1:Boolean):void{ saveTemp.playingTime = (saveTemp.playingTime + (getTimer() - currTime)); currTime = getTimer(); saveTemp.totalDamage = (saveTemp.totalDamage + m_contactListener.damage); saveTemp.shots = (saveTemp.shots + shots); if (_arg1){ saveTemp.passed++; saveTemp.pass[(levelNum - 1)] = true; } else { saveTemp.failed++; }; if (m_contactListener.damage > saveTemp.highestDamage){ saveTemp.highestDamage = m_contactListener.damage; }; if (m_contactListener.damage > saveTemp.bestDamage[levelNum]){ saveTemp.bestDamage[levelNum] = m_contactListener.damage; }; saveData.writeSave(saveTemp); myReadout.best.text = ("$" + saveTemp.bestDamage[levelNum]); } private function shoot():void{ var _local1:shootSnd; var _local2:b2Body; var _local3:b2BodyDef; var _local4:b2CircleDef; var _local5:Point; var _local6:Number; var _local7:Number; var _local8:*; _local1 = new shootSnd(); maxDamage.SOUNDCHANNEL = _local1.play(0, 1, maxDamage.SOUNDTRAN); gameScreen.cannon.barrel.bulge.gotoAndPlay(1); if (tips != null){ gameScreen.removeChild(tips); tips = null; }; _local5 = new Point(gameScreen.cannon.barrel.shootPoint.x, gameScreen.cannon.barrel.shootPoint.y); _local5 = gameScreen.cannon.barrel.localToGlobal(_local5); if (myLevel.shotArray[(myLevel.shotArray.length - 1)] == 2){ _local4 = new b2CircleDef(); _local4.radius = 0.2; _local4.density = 1; _local4.friction = 1; _local4.restitution = 0.2; _local3 = new b2BodyDef(); _local3.position.x = (_local5.x / pixels_in_a_meter); _local3.position.y = (_local5.y / pixels_in_a_meter); _local3.angularDamping = 10; _local3.userData = new tripleBall(); _local3.userData.width = ((_local4.radius * 2) * pixels_in_a_meter); _local3.userData.height = ((_local4.radius * 2) * pixels_in_a_meter); _local3.isBullet = true; _local3.userData.ball = true; _local2 = m_world.CreateBody(_local3); _local2.CreateShape(_local4); _local2.SetMassFromShapes(); targets.addChild(_local3.userData); calcImpulse(); _local2.ApplyImpulse(myImpulse, _local2.GetPosition()); _local3 = new b2BodyDef(); _local3.position.x = (_local5.x / pixels_in_a_meter); _local3.position.y = (_local5.y / pixels_in_a_meter); _local3.angularDamping = 10; _local3.userData = new tripleBall(); _local3.userData.width = ((_local4.radius * 2) * pixels_in_a_meter); _local3.userData.height = ((_local4.radius * 2) * pixels_in_a_meter); _local3.isBullet = true; _local3.userData.ball = true; _local6 = Math.atan2(myImpulse.y, myImpulse.x); _local7 = (_local6 + ((10 * Math.PI) / 180)); myImpulse.Set((power * Math.cos(_local7)), (power * Math.sin(_local7))); _local3.position.x = (_local3.position.x + (0.3 * Math.cos((_local6 + (Math.PI / 2))))); _local3.position.y = (_local3.position.y + (0.3 * Math.sin((_local6 + (Math.PI / 2))))); _local2 = m_world.CreateBody(_local3); _local2.CreateShape(_local4); _local2.SetMassFromShapes(); targets.addChild(_local3.userData); calcImpulse(); _local2.ApplyImpulse(myImpulse, _local2.GetPosition()); _local3 = new b2BodyDef(); _local3.position.x = (_local5.x / pixels_in_a_meter); _local3.position.y = (_local5.y / pixels_in_a_meter); _local3.angularDamping = 10; _local3.userData = new tripleBall(); _local3.userData.width = ((_local4.radius * 2) * pixels_in_a_meter); _local3.userData.height = ((_local4.radius * 2) * pixels_in_a_meter); _local3.isBullet = true; _local3.userData.ball = true; _local7 = (_local6 - ((10 * Math.PI) / 180)); myImpulse.Set((power * Math.cos(_local7)), (power * Math.sin(_local7))); _local3.position.x = (_local3.position.x + (0.3 * Math.cos((_local6 - (Math.PI / 2))))); _local3.position.y = (_local3.position.y + (0.3 * Math.sin((_local6 - (Math.PI / 2))))); _local2 = m_world.CreateBody(_local3); _local2.CreateShape(_local4); _local2.SetMassFromShapes(); targets.addChild(_local3.userData); calcImpulse(); _local2.ApplyImpulse(myImpulse, _local2.GetPosition()); } else { _local3 = new b2BodyDef(); _local3.position.x = (_local5.x / pixels_in_a_meter); _local3.position.y = (_local5.y / pixels_in_a_meter); _local3.angularDamping = 10; _local4 = new b2CircleDef(); _local4.radius = 0.3; _local4.density = 1; _local4.friction = 1; if (myLevel.shotArray[(myLevel.shotArray.length - 1)] == 4){ _local3.userData = new bouncyBall(); _local4.restitution = 0.7; } else { if (myLevel.shotArray[(myLevel.shotArray.length - 1)] == 3){ _local3.userData = new explodeBall(); _local4.restitution = 0.2; } else { if (myLevel.shotArray[(myLevel.shotArray.length - 1)] == 5){ _local3.userData = new flamingBall(); _local4.restitution = 0.2; } else { _local3.userData = new cannonBall(); _local4.restitution = 0.2; }; }; }; _local3.userData.width = ((_local4.radius * 2) * pixels_in_a_meter); _local3.userData.height = ((_local4.radius * 2) * pixels_in_a_meter); _local3.isBullet = true; _local3.userData.ball = true; _local2 = m_world.CreateBody(_local3); _local2.CreateShape(_local4); _local2.SetMassFromShapes(); targets.addChild(_local3.userData); calcImpulse(); _local2.ApplyImpulse(myImpulse, _local2.GetPosition()); }; cannonTrail.setTrailColor(shotColor[(myLevel.shotArray[(myLevel.shotArray.length - 1)] - 1)]); if (myLevel.shotArray[(myLevel.shotArray.length - 1)] == 3){ maxDamage.GAMESTATE = maxDamage.READYTOEXPLODE; gameScreen.cannon.barrel.thearrow.visible = (gameScreen.cannon.barrel.arrowHead.visible = false); _local8 = shotPics.getChildAt((shotPics.numChildren - 1)); _local8.gotoAndPlay(6); ballBody = _local2; ballBodyDef = _local3; } else { maxDamage.GAMESTATE = maxDamage.READYTOSHOOT; shots++; myLevel.shotArray.splice((myLevel.shotArray.length - 1), 1); updateShots(); }; if (myLevel.shotArray.length == 0){ shotsUp(); }; } private function nextLevel(_arg1:MouseEvent):void{ var _local2:buttonSnd; var _local3:gameCompleteSnd; if (levComplete){ levComplete.playAgainBtn.removeEventListener(MouseEvent.MOUSE_DOWN, tryAgain); levComplete.nextLevelBtn.removeEventListener(MouseEvent.MOUSE_DOWN, nextLevel); } else { if (m_contactListener.damage >= myLevel.targetDamage){ writeData(true); }; }; if (levelNum < maxDamage.NUMLEVELS){ _local2 = new buttonSnd(); maxDamage.SOUNDCHANNEL = _local2.play(0, 1, maxDamage.SOUNDTRAN); levelNum++; resetLevel(); } else { _local3 = new gameCompleteSnd(); maxDamage.SOUNDCHANNEL = _local3.play(0, 1, maxDamage.SOUNDTRAN); maxDamage.GAMESTATE = maxDamage.WAITING; removeEventListener(Event.ENTER_FRAME, update); goUI.showTargets(completeScreen.back); ui.fadeScreen(gameScreen, completeScreen, 0.04, true); completeScreen.backBtn.addEventListener(MouseEvent.MOUSE_DOWN, completeToMenu); }; } private function tryAgain(_arg1:MouseEvent):void{ levComplete.playAgainBtn.removeEventListener(MouseEvent.MOUSE_DOWN, tryAgain); levComplete.nextLevelBtn.removeEventListener(MouseEvent.MOUSE_DOWN, nextLevel); resetLevel(); } function frame3(){ this.stop(); this.startGame(); } private function clickSound(_arg1:MouseEvent):void{ var _local2:buttonSnd; if (maxDamage.SOUNDON){ maxDamage.SOUNDON = false; myReadout.soundBtn.gotoAndStop(3); maxDamage.SOUNDTRAN.volume = 0; maxDamage.SOUNDCHANNEL.soundTransform = maxDamage.SOUNDTRAN; } else { maxDamage.SOUNDON = true; myReadout.soundBtn.gotoAndStop(1); maxDamage.SOUNDTRAN.volume = 1; maxDamage.SOUNDCHANNEL.soundTransform = maxDamage.SOUNDTRAN; _local2 = new buttonSnd(); maxDamage.SOUNDCHANNEL = _local2.play(0, 1, maxDamage.SOUNDTRAN); }; } private function createBoundaries():void{ var _local1:b2Body; var _local2:b2BodyDef; var _local3:b2PolygonDef; _local2 = new b2BodyDef(); _local2.position.Set(11, 15); _local3 = new b2PolygonDef(); _local3.SetAsBox(11, 1); _local3.friction = 1; _local3.density = 0; _local2.userData = new ground(); _local2.userData.width = ((30 * 2) * 11); _local2.userData.height = ((30 * 2) * 1); targets.addChild(_local2.userData); _local1 = m_world.CreateBody(_local2); _local1.CreateShape(_local3); _local1.SetMassFromShapes(); _local2 = new b2BodyDef(); _local2.position.Set(11, -0.8); _local2.userData = new ground(); _local2.userData.width = ((30 * 2) * 11); _local2.userData.height = ((30 * 2) * 1); targets.addChild(_local2.userData); _local1 = m_world.CreateBody(_local2); _local1.CreateShape(_local3); _local1.SetMassFromShapes(); _local2 = new b2BodyDef(); _local2.position.Set(-0.8, 8); _local3 = new b2PolygonDef(); _local3.SetAsBox(1, 8); _local3.friction = 1; _local3.density = 0; _local2.userData = new ground(); _local2.userData.width = ((30 * 2) * 1); _local2.userData.height = ((30 * 2) * 8); targets.addChild(_local2.userData); _local1 = m_world.CreateBody(_local2); _local1.CreateShape(_local3); _local1.SetMassFromShapes(); _local2 = new b2BodyDef(); _local2.position.Set(22.13, 8); _local2.userData = new ground(); _local2.userData.width = ((30 * 2) * 1); _local2.userData.height = ((30 * 2) * 8); targets.addChild(_local2.userData); _local1 = m_world.CreateBody(_local2); _local1.CreateShape(_local3); _local1.SetMassFromShapes(); } function frame2(){ armorSplash.buttonMode = true; armorSplash.addEventListener(MouseEvent.MOUSE_DOWN, clickArmor); } public function showLevel():void{ ui.fadeScreen(levelScreen, gameScreen, 0.04, true); addEventListener(Event.ENTER_FRAME, update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseClick); stage.addEventListener(KeyboardEvent.KEY_DOWN, keyHandler); maxDamage.GAMESTATE = maxDamage.SHOOTNEXT; } public function clickArmor(_arg1:MouseEvent):void{ var _local2:URLRequest; _local2 = new URLRequest("http://www.armorgames.com/"); navigateToURL(_local2, "_blank"); } private function rollSound(_arg1:MouseEvent):void{ if (maxDamage.SOUNDON){ myReadout.soundBtn.gotoAndStop(2); }; } private function clickReset(_arg1:MouseEvent):void{ var _local2:buttonSnd; _local2 = new buttonSnd(); maxDamage.SOUNDCHANNEL = _local2.play(0, 1, maxDamage.SOUNDTRAN); writeData(false); resetLevel(); } public function update(_arg1:Event):void{ var notSleep:Boolean; var bb:b2Body; var body:b2Body; var len:*; var i:int; var angle:Number; var spd:Number; var dx:damageExceedSnd; var com:levelCompleteSnd; var fail:levelFailSnd; var myTimer:Timer; var timerHandler:Function; var e = _arg1; if (maxDamage.GAMESTATE == maxDamage.READYTOSHOOT){ angle = ((Math.atan2((root.mouseY - gameScreen.cannon.y), (root.mouseX - gameScreen.cannon.x)) * 180) / Math.PI); gameScreen.cannon.barrel.rotation = angle; if (levelNum == 16){ gameScreen.cannon.barrel.rotation = (gameScreen.cannon.barrel.rotation * -1); }; if ((((angle < -90)) || ((angle > 90)))){ if (left){ gameScreen.cannon.max.scaleX = -1; gameScreen.cannon.max.x = 27.3; left = false; }; } else { if (!left){ gameScreen.cannon.max.scaleX = 1; gameScreen.cannon.max.x = -27.3; left = true; }; }; myImpulse = new b2Vec2((stage.mouseX - gameScreen.cannon.x), (stage.mouseY - gameScreen.cannon.y)); power = myImpulse.Length(); if (power > maxDamage.MAXIMPULSE){ gameScreen.cannon.barrel.thearrow.scaleX = 1; } else { if (power < maxDamage.MINIMPULSE){ gameScreen.cannon.barrel.thearrow.scaleX = (maxDamage.MINIMPULSE / maxDamage.MAXIMPULSE); } else { gameScreen.cannon.barrel.thearrow.scaleX = (power / maxDamage.MAXIMPULSE); }; }; gameScreen.cannon.barrel.arrowHead.x = (157.5 * gameScreen.cannon.barrel.thearrow.scaleX); }; m_world.Step(m_timeStep, m_iterations); notSleep = false; bb = m_world.m_bodyList; while (bb) { if ((bb.m_userData is Sprite)){ if ((((bb.m_userData.ball == true)) && (!(bb.IsSleeping())))){ spd = bb.GetLinearVelocity().LengthSquared(); if (spd > 16){ cannonTrail.copyBall(bb.m_userData); }; }; if ((((bb.m_userData is explodingBall)) && (!(bb.IsSleeping())))){ spd = bb.GetLinearVelocity().LengthSquared(); if (spd > 9){ cannonTrail.copyFragment(bb.m_userData); }; }; if (bb.m_userData.flaming){ cannonTrail.copyFlaming(bb.m_userData); }; if ((((bb.m_userData.explode == true)) && ((bb.m_userData.doDelete == true)))){ m_world.DestroyBody(bb); targets.removeChild(bb.m_userData); bb.m_userData = null; } else { bb.m_userData.x = (bb.GetPosition().x * pixels_in_a_meter); bb.m_userData.y = (bb.GetPosition().y * pixels_in_a_meter); bb.m_userData.rotation = (bb.GetAngle() * (180 / Math.PI)); if ((((maxDamage.GAMESTATE == maxDamage.SHOTSUP)) && ((notSleep == false)))){ if ((((bb.IsStatic() == false)) && ((bb.IsSleeping() == false)))){ notSleep = true; }; }; }; }; bb = bb.m_next; }; myReadout.damage.text = ((("$" + m_contactListener.damage) + " / $") + myLevel.targetDamage); if (((!(damExceed)) && ((m_contactListener.damage >= myLevel.targetDamage)))){ damExceed = true; dx = new damageExceedSnd(); maxDamage.SOUNDCHANNEL = dx.play(0, 1, maxDamage.SOUNDTRAN); myReadout.nextLevelBtn.visible = true; gameScreen.cannon.max.mouth.gotoAndStop(2); }; targetInf.visible = false; body = getBodyAtMouse(); if (body){ if (body.m_userData){ if (body.m_userData.tname){ targetInf.visible = true; updateTargetInfo(body); }; }; }; if (maxDamage.GAMESTATE == maxDamage.SHOOTNEXT){ maxDamage.GAMESTATE = maxDamage.READYTOSHOOT; } else { if (maxDamage.GAMESTATE == maxDamage.SHOTSUP){ frames++; if ((((frames > 250)) || ((notSleep == false)))){ if (waitMsg != null){ gameScreen.removeChild(waitMsg); waitMsg = null; }; maxDamage.GAMESTATE = maxDamage.LEVELFINISHED; if (m_contactListener.damage >= myLevel.targetDamage){ levComplete = MovieClip(new levelComplete()); gameScreen.addChild(levComplete); levComplete.x = 320; levComplete.y = 210; com = new levelCompleteSnd(); maxDamage.SOUNDCHANNEL = com.play(0, 1, maxDamage.SOUNDTRAN); levComplete.playAgainBtn.addEventListener(MouseEvent.MOUSE_DOWN, tryAgain); levComplete.nextLevelBtn.addEventListener(MouseEvent.MOUSE_DOWN, nextLevel); writeData(true); } else { timerHandler = function (_arg1:TimerEvent):void{ //unresolved jump _arg1 = (true as false); var _local2 = (!NULL! / !NULL!); !ERROR! gameScreen.removeChild(tryAg); if (!_local3){ //unresolved jump ~(((!NULL! ^ !NULL!) >= !NULL!)); }; if (_local3){ resetLevel(); //unresolved jump if (!((_local3 == undefined) - ((_local3 + 1) - 1))){ !NULL!; }; if (!NULL!){ myTimer.removeEventListener("timer", timerHandler); }; }; }; fail = new levelFailSnd(); maxDamage.SOUNDCHANNEL = fail.play(0, 1, maxDamage.SOUNDTRAN); tryAg = MovieClip(new tryAgainMsg()); gameScreen.addChild(tryAg); tryAg.x = 320; tryAg.y = 210; writeData(false); myTimer = new Timer(1500, 1); myTimer.addEventListener("timer", timerHandler); myTimer.start(); }; }; }; }; cannonTrail.doFilter(); len = (particles.length - 1); i = len; while (i >= 0) { particles[i].shp.x = (particles[i].shp.x + particles[i].dx); particles[i].shp.y = (particles[i].shp.y + particles[i].dy); particles[i].shp.alpha = (particles[i].shp.alpha - particles[i].da); if (particles[i].shp.alpha <= 0){ gameScreen.removeChild(particles[i].shp); particles[i] = null; particles.splice(i, 1); }; i = (i - 1); }; } private function calcImpulse():void{ if (power < maxDamage.MINIMPULSE){ myImpulse.Normalize(); myImpulse.Multiply(maxDamage.MINIMPULSE); } else { if (power > maxDamage.MAXIMPULSE){ myImpulse.Normalize(); myImpulse.Multiply(maxDamage.MAXIMPULSE); }; }; if (myLevel.shotArray[(myLevel.shotArray.length - 1)] == 2){ myImpulse.Multiply((maxDamage.TRIPLEFACTOR / maxDamage.MAXIMPULSE)); } else { myImpulse.Multiply((maxDamage.IMPULSEFACTOR / maxDamage.MAXIMPULSE)); }; } private function explode():void{ var _local1:explodeSnd; var _local2:b2Body; var _local3:b2BodyDef; var _local4:b2CircleDef; var _local5:b2Vec2; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:Number; var _local9:uint; var _local10:*; var _local11:Number; var _local12:uint; _local1 = new explodeSnd(); maxDamage.SOUNDCHANNEL = _local1.play(0, 1, maxDamage.SOUNDTRAN); _local5 = ballBody.GetPosition(); _local6 = ballBody.GetLinearVelocity(); m_world.DestroyBody(ballBody); targets.removeChild(ballBodyDef.userData); _local4 = new b2CircleDef(); _local4.radius = 0.12; _local4.density = 1; _local4.friction = 1; _local4.restitution = 0.1; _local8 = ((_local4.radius * 2) * pixels_in_a_meter); _local3 = new b2BodyDef(); _local3.angularDamping = 5; _local9 = 20; _local12 = 0; while (_local12 < _local9) { _local3.userData = new explodingBall(); _local3.userData.width = _local8; _local3.userData.height = _local8; _local3.isBullet = true; _local3.userData.explode = true; _local3.userData.doDelete = false; _local10 = (Math.cos((((2 * Math.PI) * _local12) / _local9)) * 0.75); _local11 = (Math.sin((((2 * Math.PI) * _local12) / _local9)) * 0.75); _local3.position.x = (_local5.x + (_local10 * 1.1)); _local3.position.y = (_local5.y + (_local11 * 1.1)); _local2 = m_world.CreateBody(_local3); _local2.CreateShape(_local4); _local2.SetMassFromShapes(); targets.addChild(_local3.userData); _local2.SetLinearVelocity(_local6); _local7 = new b2Vec2(_local10, _local11); _local2.ApplyImpulse(_local7, _local5); _local12++; }; shots++; cannonTrail.setTrailColor(shotColor[(myLevel.shotArray[(myLevel.shotArray.length - 1)] - 1)]); myLevel.shotArray.splice((myLevel.shotArray.length - 1), 1); updateShots(); if (myLevel.shotArray.length == 0){ shotsUp(); } else { maxDamage.GAMESTATE = maxDamage.READYTOSHOOT; gameScreen.cannon.barrel.thearrow.visible = (gameScreen.cannon.barrel.arrowHead.visible = true); }; } private function clickMenu(_arg1:MouseEvent):void{ var _local2:buttonSnd; _local2 = new buttonSnd(); maxDamage.SOUNDCHANNEL = _local2.play(0, 1, maxDamage.SOUNDTRAN); removeEventListener(Event.ENTER_FRAME, update); maxDamage.GAMESTATE = maxDamage.WAITING; ui.fadeScreen(gameScreen, menuScreen, 0.04, true); } public function clickPlay(_arg1:MouseEvent):void{ var _local2:buttonSnd; _local2 = new buttonSnd(); maxDamage.SOUNDCHANNEL = _local2.play(0, 1, maxDamage.SOUNDTRAN); ui.fadeScreen(menuScreen, levelScreen, 0.04, true); levUI.showSelect(); } private function completeToMenu(_arg1:MouseEvent):void{ var _local2:buttonSnd; _local2 = new buttonSnd(); maxDamage.SOUNDCHANNEL = _local2.play(0, 1, maxDamage.SOUNDTRAN); ui.fadeScreen(completeScreen, menuScreen, 0.04, true); completeScreen.backBtn.removeEventListener(MouseEvent.MOUSE_DOWN, completeToMenu); goUI.clearTargets(completeScreen.back); } private function rollOutMusic(_arg1:MouseEvent):void{ if (musicOn){ myReadout.musicBtn.gotoAndStop(1); } else { myReadout.musicBtn.gotoAndStop(3); }; } public function getBodyAtMouse():b2Body{ var _local1:b2AABB; var _local2:Array; var _local3:int; var _local4:b2Body; var _local5:int; var _local6:b2Shape; var _local7:Boolean; real_x_mouse = (stage.mouseX / pixels_in_a_meter); real_y_mouse = (stage.mouseY / pixels_in_a_meter); mousePVec.Set(real_x_mouse, real_y_mouse); _local1 = new b2AABB(); _local1.lowerBound.Set((real_x_mouse - 0.001), (real_y_mouse - 0.001)); _local1.upperBound.Set((real_x_mouse + 0.001), (real_y_mouse + 0.001)); _local2 = new Array(); _local3 = m_world.Query(_local1, _local2, 2); _local4 = null; _local5 = 0; while (_local5 < _local3) { if (_local2[_local5].m_body.IsStatic() == false){ _local6 = (_local2[_local5] as b2Shape); _local7 = (_local2[_local5] as b2Shape).TestPoint(_local6.m_body.GetXForm(), mousePVec); if (_local7){ _local4 = _local6.m_body; break; }; }; _local5++; }; return (_local4); } public function createParticles(_arg1:uint, _arg2:b2Vec2){ var _local3:uint; var _local4:particle; var _local5:Number; _local3 = 0; while (_local3 < Math.round((_arg1 * 1.5))) { _local4 = new particle(); _local4.shp = new Shape(); _local5 = Math.random(); if (_local5 < 0.25){ _local4.shp.graphics.beginFill(0); _local4.shp.graphics.drawCircle(2, 2, 2); } else { if (_local5 < 0.5){ _local4.shp.graphics.beginFill(0x666666); _local4.shp.graphics.drawCircle(2, 2, 2); } else { if (_local5 < 0.75){ _local4.shp.graphics.beginFill(0); _local4.shp.graphics.drawCircle(1, 1, 1); } else { _local4.shp.graphics.beginFill(0x666666); _local4.shp.graphics.drawCircle(1, 1, 1); }; }; }; gameScreen.addChild(_local4.shp); _local4.shp.x = (_arg2.x * pixels_in_a_meter); _local4.shp.y = (_arg2.y * pixels_in_a_meter); _local4.dx = ((_arg1 / 2) - (Math.random() * _arg1)); _local4.dy = ((_arg1 / 2) - (Math.random() * _arg1)); _local4.da = (0.04 + (Math.round((Math.random() * 3)) / 100)); particles.push(_local4); _local3++; }; } private function onMouseClick(_arg1:MouseEvent):void{ if (stage.mouseY <= 420){ if (maxDamage.GAMESTATE == maxDamage.READYTOSHOOT){ shoot(); } else { if (maxDamage.GAMESTATE == maxDamage.READYTOEXPLODE){ explode(); }; }; }; } private function shotsUp():void{ var myTimer:Timer; var timerHandler:Function; timerHandler = function (_arg1:TimerEvent):void{ var _local2:Boolean; //unresolved jump var _local3 = (false === typeof(!(-(-(_local2))))); if (!_local3){ //unresolved if //unresolved if }; (maxDamage.GAMESTATE == maxDamage.SHOTSUP); //unresolved jump if ((waitMsg == null)){ waitMsg = MovieClip(new pleaseWait()); //unresolved if gameScreen.addChild(waitMsg); waitMsg.x = 320; //unresolved jump waitMsg.y = 210; //unresolved if }; myTimer.removeEventListener("timer", timerHandler); }; gameScreen.cannon.barrel.thearrow.visible = (gameScreen.cannon.barrel.arrowHead.visible = false); maxDamage.GAMESTATE = maxDamage.SHOTSUP; frames = 0; myTimer = new Timer(2500, 1); myTimer.addEventListener("timer", timerHandler); myTimer.start(); } private function clearWorld():void{ var _local1:b2Body; if (m_world != null){ _local1 = m_world.m_bodyList; while (_local1) { m_world.DestroyBody(_local1); _local1 = _local1.m_next; }; m_world = null; }; if (targets != null){ gameScreen.removeChild(targets); targets = null; }; if (cannonTrail != null){ gameScreen.removeChild(cannonTrail); cannonTrail = null; }; } public function updateShots():void{ var _local1:MovieClip; var _local2:int; var _local3:uint; if (shotPics){ myReadout.removeChild(shotPics); shotPics = null; }; shotPics = new Sprite(); myReadout.addChild(shotPics); shotPics.x = -294; shotPics.y = 12; _local2 = myLevel.shotArray.length; _local3 = 0; while (_local3 < _local2) { _local1 = MovieClip(new shotMc()); shotPics.addChild(_local1); _local1.x = (_local3 * 30); _local1.gotoAndStop(myLevel.shotArray[_local3]); _local3++; }; if (myLevel.shotArray[(myLevel.shotArray.length - 1)] == 2){ gameScreen.cannon.barrel.thearrow.triple.visible = true; } else { gameScreen.cannon.barrel.thearrow.triple.visible = false; }; } private function startGame():void{ var _local1:String; var _local2:String; saveTemp = saveData.readSave(); myLevel = new level(this, gameScreen); levUI = new levelUI(this, levelScreen); statUI = new statsUI(this, statsScreen, menuScreen); menUI = new menuUI(this, menuScreen); goUI = new gameOverUI(this, completeScreen); currTime = getTimer(); music = new musicSound(); musicChannel = music.play(0, 9999); backgnd = MovieClip(new back()); gameScreen.bgs.addChild(backgnd); _local1 = "armorgames.com"; _local2 = this.root.loaderInfo.url.split("/")[2]; if (_local2.indexOf(_local1) == (_local2.length - _local1.length)){ ui.showit(menuScreen, 0, 0); ui.hideit(siteLockScreen); } else { ui.showit(siteLockScreen, 0, 0); }; maxDamage.MAXIMPULSE = gameScreen.cannon.barrel.thearrow.width; this.contextMenu = ui.customizeRightClick(); maxDamage.GAMESTATE = maxDamage.WAITING; myReadout = MovieClip(new readout()); gameScreen.addChild(myReadout); myReadout.x = 320; myReadout.y = 450; myReadout.menuBtn.addEventListener(MouseEvent.MOUSE_DOWN, clickMenu); myReadout.resetBtn.addEventListener(MouseEvent.MOUSE_DOWN, clickReset); myReadout.nextLevelBtn.addEventListener(MouseEvent.MOUSE_DOWN, nextLevel); myReadout.soundBtn.addEventListener(MouseEvent.MOUSE_DOWN, clickSound); myReadout.musicBtn.addEventListener(MouseEvent.MOUSE_DOWN, clickMusic); myReadout.soundBtn.addEventListener(MouseEvent.ROLL_OVER, rollSound); myReadout.musicBtn.addEventListener(MouseEvent.ROLL_OVER, rollMusic); myReadout.soundBtn.addEventListener(MouseEvent.ROLL_OUT, rollOutSound); myReadout.musicBtn.addEventListener(MouseEvent.ROLL_OUT, rollOutMusic); targetInf = MovieClip(new targetInfo()); gameScreen.addChild(targetInf); targetInf.visible = false; } private function clickMusic(_arg1:MouseEvent):void{ var _local2:buttonSnd; _local2 = new buttonSnd(); maxDamage.SOUNDCHANNEL = _local2.play(0, 1, maxDamage.SOUNDTRAN); if (musicOn){ musicChannel.stop(); musicOn = false; myReadout.musicBtn.gotoAndStop(3); } else { musicChannel = music.play(0, 9999); musicOn = true; myReadout.musicBtn.gotoAndStop(1); }; } public function resetLevel():void{ clearWorld(); newLevel(); maxDamage.GAMESTATE = maxDamage.SHOOTNEXT; if (levComplete != null){ gameScreen.removeChild(levComplete); levComplete = null; }; if (waitMsg != null){ gameScreen.removeChild(waitMsg); waitMsg = null; }; } private function updateTargetInfo(_arg1){ targetInf.targetType.text = _arg1.m_userData.tname; targetInf.targetDamage.text = ((("$" + _arg1.m_userData.damage) + " / $") + _arg1.m_userData.tvalue); if (_arg1.m_userData.x < (maxDamage.LEFT + (targetInf.width / 2))){ targetInf.x = maxDamage.LEFT; } else { if (_arg1.m_userData.x > (maxDamage.RIGHT - (targetInf.width / 2))){ targetInf.x = (maxDamage.RIGHT - targetInf.width); } else { targetInf.x = (_arg1.m_userData.x - (targetInf.width / 2)); }; }; if ((_arg1.m_userData.y - (_arg1.m_userData.height / 2)) < ((maxDamage.TOP + targetInf.height) + 5)){ targetInf.y = ((_arg1.m_userData.y + (_arg1.m_userData.height / 2)) + 5); } else { targetInf.y = (((_arg1.m_userData.y - (_arg1.m_userData.height / 2)) - targetInf.height) - 5); }; } private function rollMusic(_arg1:MouseEvent):void{ if (musicOn){ myReadout.musicBtn.gotoAndStop(2); }; } public function createTarget(_arg1:Number, _arg2:Number, _arg3:String):void{ var _local4:b2Body; var _local5:b2BodyDef; var _local6:b2PolygonDef; var _local7:MovieClip; var _local8:Number; var _local9:Number; if (_arg3 == "brick"){ _local7 = new brick(); } else { if (_arg3 == "box"){ _local7 = new box(); } else { if (_arg3 == "microwave"){ _local7 = new microwave(); } else { if (_arg3 == "monitor"){ _local7 = new monitor(); } else { if (_arg3 == "widetv"){ _local7 = new widetv(); } else { if (_arg3 == "fridge"){ _local7 = new fridge(); } else { if (_arg3 == "art"){ _local7 = new art(); } else { trace("error - could not find target type!"); }; }; }; }; }; }; }; _local5 = new b2BodyDef(); _local5.position.x = (_arg1 / pixels_in_a_meter); _local5.position.y = (_arg2 / pixels_in_a_meter); _local5.userData = _local7; _local8 = (_local7.width / (2 * pixels_in_a_meter)); _local9 = (_local7.height / (2 * pixels_in_a_meter)); _local6 = new b2PolygonDef(); _local6.SetAsBox(_local8, _local9); if (_arg3 == "brick"){ _local6.density = 0; _local7.cacheAsBitmap = true; } else { _local6.density = 1; damageMax = (damageMax + _local7.tvalue); }; _local6.friction = 0.5; _local6.restitution = 0.05; _local5.angularDamping = 0.5; _local5.isSleeping = true; _local4 = m_world.CreateBody(_local5); _local7.body = _local4; _local4.CreateShape(_local6); _local4.SetMassFromShapes(); targets.addChild(_local5.userData); } private function newLevel():void{ var _local1:uint; _local1 = 0; while (_local1 < particles.length) { gameScreen.removeChild(particles[_local1].shp); _local1++; }; particles = []; gameScreen.cannon.max.mouth.gotoAndStop(1); targetInf.visible = (damExceed = false); createWorld(); createBoundaries(); shots = (damageMax = (m_contactListener.damage = 0)); m_contactListener.edamage.bothzero(); gameScreen.cannon.barrel.thearrow.visible = (gameScreen.cannon.barrel.arrowHead.visible = true); if (tips != null){ gameScreen.removeChild(tips); }; tips = new Sprite(); gameScreen.addChild(tips); myLevel.loadLevelByNum(levelNum); if (saveTemp.pass[(levelNum - 1)] == true){ myReadout.nextLevelBtn.visible = true; } else { myReadout.nextLevelBtn.visible = false; }; myReadout.damage.text = ("$0 / $" + myLevel.targetDamage); myReadout.best.text = ("$" + saveTemp.bestDamage[levelNum]); gameScreen.setChildIndex(myReadout, (gameScreen.numChildren - 1)); gameScreen.setChildIndex(tips, (gameScreen.numChildren - 1)); gameScreen.setChildIndex(targets, (gameScreen.numChildren - 1)); gameScreen.setChildIndex(targetInf, (gameScreen.numChildren - 1)); cannonTrail.setTrailColor(shotColor[(myLevel.shotArray[(myLevel.shotArray.length - 1)] - 1)]); backgnd.gotoAndStop((((levelNum - 1) % 3) + 1)); } private function keyHandler(_arg1:KeyboardEvent):void{ var _local2:buttonSnd; if ((((_arg1.keyCode == 82)) && (!((maxDamage.GAMESTATE == maxDamage.LEVELFINISHED))))){ _local2 = new buttonSnd(); maxDamage.SOUNDCHANNEL = _local2.play(0, 1, maxDamage.SOUNDTRAN); writeData(false); resetLevel(); }; } public function clickStats(_arg1:MouseEvent):void{ statUI.showStats(); } private function createWorld():void{ var _local1:b2AABB; var _local2:b2Vec2; var _local3:Boolean; cannonTrail = new ballTrail(); gameScreen.addChild(cannonTrail); targets = new Sprite(); gameScreen.addChild(targets); maxDamage.GAMESTATE = maxDamage.WAITING; _local1 = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); _local2 = new b2Vec2(0, 20); _local3 = true; m_world = new b2World(_local1, _local2, _local3); m_world.SetContactListener(m_contactListener); } private function rollOutSound(_arg1:MouseEvent):void{ if (maxDamage.SOUNDON){ myReadout.soundBtn.gotoAndStop(1); } else { myReadout.soundBtn.gotoAndStop(3); }; } } //unresolved jump var _local3 = ((-((true as false)) + 1) >= !NULL!); !ERROR! !ERROR! if (_local2){ //unresolved jump //unresolved jump _local0 = ( - 1); ; [OP_NEWCLASS ClassInfo:113 base:(( < !NULL!) + 1)].maxDamage = !NULL!; }; }//package
Section 126
//menuUI (menuUI) package { import flash.display.*; import mochi.as3.*; import flash.events.*; public class menuUI extends Sprite { private var maxDam:maxDamage; private var menuScreen:MovieClip; public function menuUI(_arg1:maxDamage, _arg2:MovieClip):void{ maxDam = _arg1; menuScreen = _arg2; addListeners(); } private function clickArmor(_arg1:MouseEvent):void{ maxDam.ui.openUrl("http://www.armorgames.com/"); } public function addListeners():void{ menuScreen.armorgames.addEventListener(MouseEvent.MOUSE_DOWN, clickArmor); menuScreen.playBtn.addEventListener(MouseEvent.MOUSE_DOWN, maxDam.clickPlay); menuScreen.statsBtn.addEventListener(MouseEvent.MOUSE_DOWN, maxDam.clickStats); } } //unresolved jump var _local1 = ~(((??hasnext >= !NULL!) >> !NULL!)); !ERROR! if (!((_local1) && (_local2))){ //unresolved jump _local1 = ( | !NULL!); //unresolved jump with (//unresolved nextvalue or nextname) { }; -(!NULL!).menuUI = [OP_NEWCLASS ClassInfo:93 base:Sprite]; }; }//package
Section 127
//microwave (microwave) package { public dynamic class microwave extends target { public function microwave():void{ addFrameScript(0, frame1); this.tname = "Microwave"; this.tvalue = 200; this.damage = 0; this.flammable = false; this.flaming = false; } function frame1(){ stop(); } } var _local1:Boolean; //unresolved jump var _local2 = (typeof((false * (??getglobalscope + 1))) + true); if (((_local1) || (_local1))){ //unresolved jump //unresolved jump -(undefined).microwave = _local3; }; }//package
Section 128
//monitor (monitor) package { public dynamic class monitor extends target { public function monitor():void{ addFrameScript(0, frame1); this.tname = "LCD Monitor"; this.tvalue = 500; this.damage = 0; this.flammable = false; this.flaming = false; } function frame1(){ stop(); } } //unresolved jump _local0 = null; var _local1:*; var _local2 = null; if (_local2){ //unresolved jump //unresolved jump with ((([OP_NEWCLASS ClassInfo:147 base:target] & _local1) === undefined)) { }; false.monitor = !NULL!; }; }//package
Section 129
//musicSound (musicSound) package { import flash.media.*; public dynamic class musicSound extends Sound { } var _local1:Boolean; //unresolved jump _local1 = (false + _local1); var _local2 = (!NULL! + 1); //unresolved jump var _local3 = ((_local1 < !NULL!) - !NULL!); if ((!NULL! > !NULL!)){ musicSound = [OP_NEWCLASS ClassInfo:90 base:Sound]; }; }//package
Section 130
//myContactListener (myContactListener) package { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; import flash.display.*; import Box2D.Common.*; import flash.media.*; public class myContactListener extends b2ContactListener { public var edamage:evar; public var damage:uint;// = 0 public function myContactListener(_arg1:maxDamage):void{ damage = 0; edamage = new evar(); super(_arg1); } private function makeFlaming(_arg1:MovieClip):void{ var _local2:flameSnd; var _local3:*; var _local4:uint; _local2 = new flameSnd(); maxDamage.SOUNDCHANNEL = _local2.play(0, 1, maxDamage.SOUNDTRAN); _arg1.flaming = true; _arg1.gotoAndStop(6); _local3 = MovieClip(new flame()); _arg1.addChild(_local3); _local4 = (_arg1.tvalue - _arg1.damage); if (_local4 > 0){ _arg1.damage = (_arg1.damage + _local4); damage = (damage + _local4); edamage.addup(_local4); }; } override public function Remove(_arg1:b2ContactPoint):void{ } override public function Add(_arg1:b2ContactPoint):void{ var _local2:MovieClip; var _local3:MovieClip; var _local4:Number; if (maxDamage.GAMESTATE != maxDamage.LEVELFINISHED){ _local2 = MovieClip(_arg1.shape1.GetBody().GetUserData()); _local3 = MovieClip(_arg1.shape2.GetBody().GetUserData()); if (((((!((_local2.tname == undefined))) && (!((_local2.tvalue == _local2.damage))))) || (((!((_local3.tname == undefined))) && (!((_local3.tvalue == _local3.damage))))))){ _local4 = (_arg1.velocity.Length() * maxDamage.DAMAGEVELOCITY); if (_local4 > 3){ maxDam.createParticles((_local4 / 12), _arg1.position); }; if (_local2.tname != undefined){ calcDamage(_local4, _local2); }; if (_local3.tname != undefined){ calcDamage(_local4, _local3); }; }; if (_local2.explode == true){ _local2.doDelete = true; }; if (_local3.explode == true){ _local3.doDelete = true; }; }; } private function calcDamage(_arg1:Number, _arg2:MovieClip):void{ var _local3:uint; if (_arg1 > 1){ _local3 = (_arg2.tvalue - _arg2.damage); if (_local3 > 0){ if (_arg1 <= _local3){ _arg2.damage = (_arg2.damage + _arg1); damage = (damage + _arg1); edamage.addup(_arg1); } else { _arg2.damage = (_arg2.damage + _local3); damage = (damage + _local3); edamage.addup(_local3); }; if ((_arg2.damage / _arg2.tvalue) < 0.2){ _arg2.gotoAndStop(1); } else { if ((_arg2.damage / _arg2.tvalue) < 0.4){ _arg2.gotoAndStop(2); } else { if ((_arg2.damage / _arg2.tvalue) < 0.6){ _arg2.gotoAndStop(3); } else { if ((_arg2.damage / _arg2.tvalue) < 0.8){ _arg2.gotoAndStop(4); } else { if ((_arg2.damage / _arg2.tvalue) < 1){ _arg2.gotoAndStop(5); } else { _arg2.gotoAndStop(6); }; }; }; }; }; }; }; } override public function Persist(_arg1:b2ContactPoint):void{ } override public function Result(_arg1:b2ContactResult):void{ var _local2:MovieClip; var _local3:MovieClip; var _local4:*; var _local5:damageSnd; var _local6:bounceSnd; if (maxDamage.GAMESTATE != maxDamage.LEVELFINISHED){ _local2 = _arg1.shape1.GetBody().GetUserData(); _local3 = _arg1.shape2.GetBody().GetUserData(); _local4 = new SoundTransform(); if (((!((_local2.tname == undefined))) && ((_local3 is flamingBall)))){ if (((_local2.flammable) && (!(_local2.flaming)))){ makeFlaming(_local2); }; }; if (((!((_local3.tname == undefined))) && ((_local2 is flamingBall)))){ if (((_local3.flammable) && (!(_local3.flaming)))){ makeFlaming(_local3); }; }; if (((!((_local2.tname == undefined))) && (!((_local3.tname == undefined))))){ if (((((_local2.flaming) && (_local3.flammable))) && (!(_local3.flaming)))){ makeFlaming(_local3); }; if (((((_local3.flaming) && (_local2.flammable))) && (!(_local2.flaming)))){ makeFlaming(_local2); }; }; if (_arg1.normalImpulse > 30){ _local4.volume = 1; } else { if (_arg1.normalImpulse > 6){ _local4.volume = (_arg1.normalImpulse / 30); }; }; if (maxDamage.SOUNDON){ if (((!((_local2.tname == undefined))) || (!((_local3.tname == undefined))))){ if (_arg1.normalImpulse > 6){ _local5 = new damageSnd(); maxDamage.SOUNDCHANNEL = _local5.play(0, 1, _local4); }; } else { if (_arg1.normalImpulse > 6){ _local6 = new bounceSnd(); maxDamage.SOUNDCHANNEL = _local6.play(0, 1, _local4); }; }; }; }; } } var _local1:Boolean; //unresolved jump var _local2 = !(((false >>> !NULL!) === !NULL!)); //unresolved jump if (_local1){ myContactListener = [OP_NEWCLASS ClassInfo:62 base:b2ContactListener]; }; }//package
Section 131
//particle (particle) package { import flash.display.*; public final class particle { public var dx:Number; public var dy:Number; public var shp:Shape; public var da:Number; } //unresolved jump var _local1 = (((typeof(((true | false) < !NULL!)) | !NULL!) - !NULL!) + !NULL!); !ERROR! if (_local2){ particle = [OP_NEWCLASS ClassInfo:6 base:Object]; }; }//package
Section 132
//pleaseWait (pleaseWait) package { import flash.display.*; public dynamic class pleaseWait extends MovieClip { } //unresolved jump var _local1:Boolean = typeof((true * false)); !ERROR! if (_local2){ //unresolved jump with ((undefined >> _local2)) { //unresolved jump }; [OP_NEWCLASS ClassInfo:128 base:(!NULL! >> !NULL!)].pleaseWait = !NULL!; }; }//package
Section 133
//readout (readout) package { import flash.display.*; import flash.text.*; public dynamic class readout extends MovieClip { public var best:TextField; public var musicBtn:MovieClip; public var levelName:TextField; public var nextLevelBtn:SimpleButton; public var damage:TextField; public var menuBtn:SimpleButton; public var resetBtn:SimpleButton; public var soundBtn:MovieClip; } //unresolved jump var _local3:* = (true >= (false > false)); var _local1 = _local3; !ERROR! if (!((_local1) && (_local1))){ //unresolved jump //unresolved jump _local2 = (( - MovieClip) as !NULL!); _local0 = !NULL!; !NULL!.readout = [OP_NEWCLASS ClassInfo:129 base:!NULL!]; }; }//package
Section 134
//saveGame (saveGame) package { import flash.display.*; import mochi.as3.*; import flash.events.*; import flash.net.*; public class saveGame extends Sprite { private var maxDam:maxDamage; private var localData:SharedObject; public function saveGame(_arg1:maxDamage){ maxDam = _arg1; initSave(); if (!maxDam.mc){ localData = SharedObject.getLocal("maxDamage"); localData.addEventListener(NetStatusEvent.NET_STATUS, onFlushStatus); if (localData.data.theArray == undefined){ initData(); } else { localData.data.theArray.timesPlayed++; maxDam.saveTemp = localData.data.theArray; tryFlush(); }; }; } private function tryFlush():void{ var flushStatus:String; flushStatus = null; try { flushStatus = localData.flush(); } catch(error:Error) { trace("Error...Could not write SharedObject to disk"); }; if (flushStatus != null){ switch (flushStatus){ case SharedObjectFlushStatus.PENDING: trace("Requesting permission to save object..."); break; case SharedObjectFlushStatus.FLUSHED: break; }; }; } public function writeSave(_arg1:Object):void{ localData.data.theArray = _arg1; tryFlush(); } public function readSave():Object{ return (localData.data.theArray); } private function initSave():void{ var _local1:Number; maxDam.saveTemp.timesPlayed = 1; maxDam.saveTemp.playingTime = 0; maxDam.saveTemp.totalDamage = 0; maxDam.saveTemp.passed = 0; maxDam.saveTemp.failed = 0; maxDam.saveTemp.shots = 0; maxDam.saveTemp.highestDamage = 0; maxDam.saveTemp.bestDamage = new Array(); maxDam.saveTemp.pass = new Array(); _local1 = 0; while (_local1 <= 49) { maxDam.saveTemp.bestDamage[_local1] = 0; maxDam.saveTemp.pass[_local1] = false; _local1++; }; } private function onFlushStatus(_arg1:NetStatusEvent):void{ trace("User closed permission dialog..."); switch (_arg1.info.code){ case "SharedObject.Flush.Success": trace("User granted permission -- value saved."); break; case "SharedObject.Flush.Failed": trace("User denied permission -- value not saved."); break; }; } public function initData():void{ localData.data.theArray = new Object(); localData.data.theArray = maxDam.saveTemp; tryFlush(); } } //unresolved jump var _local1:String = ((!((true instanceof (false - 1))) - 1) ^ !NULL!); !ERROR! if (!((_local1) && (_local2))){ //unresolved jump //unresolved jump _local1 = (((typeof(( <= NaN)) < !NULL!) > ??getglobalscope ) - !NULL!); ??getglobalscope .saveGame = [OP_NEWCLASS ClassInfo:94 base:Sprite]; }; }//package
Section 135
//shootSnd (shootSnd) package { import flash.media.*; public dynamic class shootSnd extends Sound { } var _local1:Boolean; //unresolved jump _local1 = false; var _local2:Number = true; if (((_local1) || (_local1))){ //unresolved jump (((-(!NULL!) + 1) + ( / EventDispatcher)) == NaN).shootSnd = [OP_NEWCLASS ClassInfo:91 base:Sound]; }; }//package
Section 136
//shotMc (shotMc) package { import flash.display.*; public dynamic class shotMc extends MovieClip { public function shotMc(){ addFrameScript(0, frame1, 10, frame11); } function frame1(){ stop(); } function frame11(){ this.gotoAndPlay(6); } } //unresolved jump var _local1 = (this < (null instanceof )); var _local2 = !(false); if (((_local2) || (this))){ //unresolved jump with (( as Object)) { //unresolved jump }; ((!NULL! <= !NULL!) & MovieClip).shotMc = [OP_NEWCLASS ClassInfo:130 base:(false - 1)]; }; }//package
Section 137
//statsUI (statsUI) package { import flash.display.*; import flash.events.*; public class statsUI extends Sprite { private var maxDam:maxDamage; private var menuScreen:MovieClip; private var statsScreen:MovieClip; public function statsUI(_arg1:maxDamage, _arg2:MovieClip, _arg3:MovieClip):void{ maxDam = _arg1; statsScreen = _arg2; menuScreen = _arg3; } private function closeStats(_arg1:MouseEvent):void{ var _local2:buttonSnd; _local2 = new buttonSnd(); maxDamage.SOUNDCHANNEL = _local2.play(0, 1, maxDamage.SOUNDTRAN); maxDam.ui.fadeScreen(statsScreen, menuScreen, 0.04, true); statsScreen.backBtn.removeEventListener(MouseEvent.MOUSE_DOWN, closeStats); } public function showStats():void{ var _local1:buttonSnd; _local1 = new buttonSnd(); maxDamage.SOUNDCHANNEL = _local1.play(0, 1, maxDamage.SOUNDTRAN); updateFields(); maxDam.ui.fadeScreen(menuScreen, statsScreen, 0.04, true); statsScreen.backBtn.addEventListener(MouseEvent.MOUSE_DOWN, closeStats); } private function updateFields():void{ var _local1:uint; var _local2:Number; var _local3:Array; _local1 = (maxDam.saveTemp.passed + maxDam.saveTemp.failed); _local2 = (maxDam.saveTemp.playingTime / 60000); statsScreen.playingTime.text = (((Math.floor((_local2 / 60)) + "h : ") + Math.round((_local2 % 60))) + "m"); statsScreen.totalDamage.text = ("$" + maxDam.saveTemp.totalDamage); statsScreen.highestDamage.text = ("$" + maxDam.saveTemp.highestDamage); if (_local1 != 0){ statsScreen.averageLevel.text = ("$" + Math.round((maxDam.saveTemp.totalDamage / _local1))); statsScreen.success.text = (Math.round(((100 * maxDam.saveTemp.passed) / _local1)) + "%"); statsScreen.averageShot.text = ("$" + Math.round((maxDam.saveTemp.totalDamage / maxDam.saveTemp.shots))); } else { statsScreen.averageLevel.text = "n/a"; statsScreen.success.text = "n/a"; statsScreen.averageShot.text = "n/a"; }; statsScreen.shots.text = maxDam.saveTemp.shots; statsScreen.passed.text = maxDam.saveTemp.passed; statsScreen.failed.text = maxDam.saveTemp.failed; statsScreen.timesPlayed.text = maxDam.saveTemp.timesPlayed; _local3 = new Array(); if (Math.random() < 0.33){ _local3 = ["RAM in use (kb)", "Concurrent players", "Bad sectors", "Fragmented files", "Network latency (ms)", "Active threads"]; statsScreen.random2.text = (32 + Math.round((Math.random() * 200))); } else { if (Math.random() < 0.67){ _local3 = ["Pixels filled", "Processor cycles", "Sprites generated", "Subroutines processed", "Code lines executed", "Variables assigned", "Vertices calculated", "Vectors drawn", "Blitting operations", "Splines rendered"]; statsScreen.random2.text = (62 + Math.round(((_local2 * Math.random()) * 200))); } else { _local3 = ["Mouse clicks", "Energy expended (kJ)", "Mouse movement (cm)", "Screen refreshes", "Functions called"]; statsScreen.random2.text = (11 + Math.round(((_local2 * Math.random()) * 30))); }; }; statsScreen.random1.text = (_local3[Math.round((Math.random() * (_local3.length - 1)))] + ":"); } } var _local1:Boolean; //unresolved jump _local3; var _local2:String = ((false < !NULL!) === false); if (!((_local2) && (this))){ //unresolved jump //unresolved jump ((((!() ^ !NULL!) <= !NULL!) + ((true is undefined) - 1)) > ??getglobalscope ).statsUI = [OP_NEWCLASS ClassInfo:96 base:Sprite]; }; }//package
Section 138
//target (target) package { import Box2D.Dynamics.*; import flash.display.*; public class target extends MovieClip { public var flammable:Boolean; public var damage:uint; public var tvalue:uint; public var body:b2Body; public var tname:String; public function target():void{ } } //unresolved jump var _local1 = arguments; var _local2:Boolean; if (((_local2) || (this))){ //unresolved jump var _local3 = ((( + Object) >= !NULL!) == !NULL!); //unresolved jump NaN.target = [OP_NEWCLASS ClassInfo:141 base:_local1]; }; }//package
Section 139
//targetInfo (targetInfo) package { import flash.display.*; import flash.text.*; public dynamic class targetInfo extends MovieClip { public var targetType:TextField; public var targetDamage:TextField; } //unresolved jump var _local1 = ~(((~(((true + false) <= !NULL!)) * !NULL!) instanceof !NULL!)); !ERROR! if (!_local1){ //unresolved jump //unresolved jump var _temp1 = (//unresolved nextvalue or nextname | !NULL!); _local2 = NaN; _temp1.targetInfo = [OP_NEWCLASS ClassInfo:131 base:_local3]; }; }//package
Section 140
//tip1 (tip1) package { import flash.display.*; import flash.text.*; public dynamic class tip1 extends MovieClip { public var txt:TextField; } //unresolved jump var _local1 = (((((true % false) === !NULL!) <= !NULL!) << !NULL!) < !NULL!); !ERROR! if (_local2){ //unresolved jump var _local3:String = this; //unresolved jump [OP_NEWCLASS ClassInfo:132 base:(((( === NaN) ^ (//unresolved nextvalue or nextname >> _local2)) + 1) + 1)].tip1 = !NULL!; }; }//package
Section 141
//tip2 (tip2) package { import flash.display.*; import flash.text.*; public dynamic class tip2 extends MovieClip { public var txt:TextField; } //unresolved jump var _local1:* = ((true === (false + NaN)) < !NULL!); !ERROR! if (!_local1){ //unresolved jump //unresolved jump [OP_NEWCLASS ClassInfo:133 base:((??hasnext instanceof !NULL!) * !NULL!)].tip2 = !NULL!; }; }//package
Section 142
//tip3 (tip3) package { import flash.display.*; import flash.text.*; public dynamic class tip3 extends MovieClip { public var txt:TextField; } //unresolved jump var _local1:*; var _local2 = ((true + 1) + 1); if (!((_local1) && (_local2))){ //unresolved jump _local0 = ( >= (Object + 1)); //unresolved jump with (!((MovieClip ^ !NULL!))) { }; !NULL!.tip3 = [OP_NEWCLASS ClassInfo:134 base:(!NULL! > ??getglobalscope )]; }; }//package
Section 143
//tip4 (tip4) package { import flash.display.*; import flash.text.*; public dynamic class tip4 extends MovieClip { public var txt:TextField; } //unresolved jump var _local1 = ((//unresolved nextvalue or nextname * !NULL!) >= !NULL!); !ERROR! if (!_local1){ //unresolved jump //unresolved jump false.tip4 = [OP_NEWCLASS ClassInfo:135 base:??getglobalscope ]; }; }//package
Section 144
//tip5 (tip5) package { import flash.display.*; import flash.text.*; public dynamic class tip5 extends MovieClip { public var txt:TextField; } var _local1:Boolean; //unresolved jump _local1 = _local3; var _local2 = (//unresolved nextvalue or nextname * !NULL!); if (!((_local2) && (this))){ //unresolved jump _local2 = ((( - 1) + 1) + 1); //unresolved jump null.tip5 = [OP_NEWCLASS ClassInfo:136 base:null]; }; }//package
Section 145
//tip6 (tip6) package { import flash.display.*; import flash.text.*; public dynamic class tip6 extends MovieClip { public var txt:TextField; } //unresolved jump var _local1 = !((false >= )); _local1 = (true << !NULL!); !ERROR! if (!((_local1) && (this))){ //unresolved jump //unresolved jump (_local3 <= ((-(Object) ^ (MovieClip - 1)) + 1)).tip6 = [OP_NEWCLASS ClassInfo:137 base:true]; }; }//package
Section 146
//tipGeneral (tipGeneral) package { import flash.display.*; import flash.text.*; public dynamic class tipGeneral extends MovieClip { public var txt:TextField; } //unresolved jump var _local3:Boolean; undefined; var _local1 = ((true % _local2) < !NULL!); !ERROR! if (!_local1){ //unresolved jump _local1 = (( instanceof !NULL!) - 1); //unresolved jump _local2 = (??getglobalscope - 1); [OP_NEWCLASS ClassInfo:138 base:(~(_local3) === (MovieClip + 1))].tipGeneral = !NULL!; }; }//package
Section 147
//tripleBall (tripleBall) package { import flash.display.*; public dynamic class tripleBall extends MovieClip { } //unresolved jump var _local1 = (!((true | false)) > !NULL!); !ERROR! if (_local2){ //unresolved jump //unresolved jump var _local3 = MovieClip; !NULL!.tripleBall = [OP_NEWCLASS ClassInfo:139 base:(( as !NULL!) % typeof(-(typeof(null))))]; }; }//package
Section 148
//tryAgainMsg (tryAgainMsg) package { import flash.display.*; public dynamic class tryAgainMsg extends MovieClip { public function tryAgainMsg(){ addFrameScript(35, frame36); } function frame36(){ stop(); } } //unresolved jump var _local1 = (//unresolved nextvalue or nextname == !NULL!); !ERROR! if (!((_local1) && (_local1))){ //unresolved jump //unresolved jump MovieClip; ((!NULL! ^ !NULL!) - 1).tryAgainMsg = [OP_NEWCLASS ClassInfo:140 base:(true + 1)]; }; }//package
Section 149
//widetv (widetv) package { import flash.display.*; public dynamic class widetv extends target { public var targetPlasmablueDamage0:MovieClip; public function widetv():void{ addFrameScript(0, frame1); this.tname = "50'' Plasma TV"; this.tvalue = 1000; this.damage = 0; this.flammable = false; this.flaming = false; } function frame1(){ stop(); } } //unresolved jump var _local1 = (//unresolved nextvalue or nextname - !NULL!); !ERROR! if (!((_local1) && (this))){ //unresolved jump //unresolved jump NaN; var _local3 = [OP_NEWCLASS ClassInfo:148 base:target]; _local1 = !NULL!; !NULL!.widetv = !NULL!; }; }//package

Library Items

Symbol 1 GraphicUsed by:2 589
Symbol 2 MovieClip {brick}Uses:1
Symbol 3 GraphicUsed by:4 13 19 21 26 28 34 36 39
Symbol 4 MovieClipUses:3Used by:12 773
Symbol 5 GraphicUsed by:12
Symbol 6 GraphicUsed by:7 15 22 29 37
Symbol 7 MovieClipUses:6Used by:12 773
Symbol 8 GraphicUsed by:12
Symbol 9 GraphicUsed by:10 17 24
Symbol 10 MovieClipUses:9Used by:12 773
Symbol 11 GraphicUsed by:12 773
Symbol 12 MovieClipUses:4 5 7 8 10 11Used by:130
Symbol 13 MovieClipUses:3Used by:130
Symbol 14 GraphicUsed by:130
Symbol 15 MovieClipUses:6Used by:130
Symbol 16 GraphicUsed by:130
Symbol 17 MovieClipUses:9Used by:130
Symbol 18 GraphicUsed by:130
Symbol 19 MovieClipUses:3Used by:130
Symbol 20 GraphicUsed by:130
Symbol 21 MovieClipUses:3Used by:130
Symbol 22 MovieClipUses:6Used by:130
Symbol 23 GraphicUsed by:130
Symbol 24 MovieClipUses:9Used by:130
Symbol 25 GraphicUsed by:130
Symbol 26 MovieClipUses:3Used by:130
Symbol 27 GraphicUsed by:130
Symbol 28 MovieClipUses:3Used by:130
Symbol 29 MovieClipUses:6Used by:130
Symbol 30 GraphicUsed by:130
Symbol 31 GraphicUsed by:32 38
Symbol 32 MovieClipUses:31Used by:130
Symbol 33 GraphicUsed by:130
Symbol 34 MovieClipUses:3Used by:130
Symbol 35 GraphicUsed by:130
Symbol 36 MovieClipUses:3Used by:130
Symbol 37 MovieClipUses:6Used by:130
Symbol 38 MovieClipUses:31Used by:130
Symbol 39 MovieClipUses:3Used by:130
Symbol 40 GraphicUsed by:130
Symbol 41 GraphicUsed by:130
Symbol 42 GraphicUsed by:43
Symbol 43 MovieClipUses:42Used by:130
Symbol 44 GraphicUsed by:130
Symbol 45 GraphicUsed by:46
Symbol 46 MovieClipUses:45Used by:130
Symbol 47 GraphicUsed by:130
Symbol 48 GraphicUsed by:49 113
Symbol 49 MovieClipUses:48Used by:130
Symbol 50 GraphicUsed by:130
Symbol 51 GraphicUsed by:52
Symbol 52 MovieClipUses:51Used by:130
Symbol 53 GraphicUsed by:130
Symbol 54 GraphicUsed by:55
Symbol 55 MovieClipUses:54Used by:130
Symbol 56 GraphicUsed by:130
Symbol 57 GraphicUsed by:58
Symbol 58 MovieClipUses:57Used by:130
Symbol 59 GraphicUsed by:130
Symbol 60 GraphicUsed by:61
Symbol 61 MovieClipUses:60Used by:130
Symbol 62 GraphicUsed by:130
Symbol 63 GraphicUsed by:64
Symbol 64 MovieClipUses:63Used by:130
Symbol 65 GraphicUsed by:66 130
Symbol 66 MovieClipUses:65Used by:130
Symbol 67 GraphicUsed by:130
Symbol 68 GraphicUsed by:69
Symbol 69 MovieClipUses:68Used by:130
Symbol 70 GraphicUsed by:130
Symbol 71 GraphicUsed by:72
Symbol 72 MovieClipUses:71Used by:130
Symbol 73 GraphicUsed by:130
Symbol 74 GraphicUsed by:75
Symbol 75 MovieClipUses:74Used by:130
Symbol 76 GraphicUsed by:130
Symbol 77 GraphicUsed by:78
Symbol 78 MovieClipUses:77Used by:130
Symbol 79 GraphicUsed by:130
Symbol 80 GraphicUsed by:81
Symbol 81 MovieClipUses:80Used by:130
Symbol 82 GraphicUsed by:130
Symbol 83 GraphicUsed by:84
Symbol 84 MovieClipUses:83Used by:130
Symbol 85 GraphicUsed by:130
Symbol 86 GraphicUsed by:87
Symbol 87 MovieClipUses:86Used by:130
Symbol 88 GraphicUsed by:89 130
Symbol 89 MovieClipUses:88Used by:130
Symbol 90 GraphicUsed by:91
Symbol 91 MovieClipUses:90Used by:130
Symbol 92 GraphicUsed by:104 130
Symbol 93 GraphicUsed by:94
Symbol 94 MovieClipUses:93Used by:130
Symbol 95 GraphicUsed by:130
Symbol 96 GraphicUsed by:97
Symbol 97 MovieClipUses:96Used by:130
Symbol 98 GraphicUsed by:130
Symbol 99 GraphicUsed by:100
Symbol 100 MovieClipUses:99Used by:130
Symbol 101 GraphicUsed by:130
Symbol 102 GraphicUsed by:103
Symbol 103 MovieClipUses:102Used by:130
Symbol 104 MovieClipUses:92Used by:130
Symbol 105 MovieClipUsed by:130
Symbol 106 GraphicUsed by:130
Symbol 107 GraphicUsed by:108
Symbol 108 MovieClipUses:107Used by:130
Symbol 109 GraphicUsed by:130
Symbol 110 GraphicUsed by:111
Symbol 111 MovieClipUses:110Used by:130
Symbol 112 GraphicUsed by:130 573 675  Timeline
Symbol 113 MovieClipUses:48Used by:130
Symbol 114 GraphicUsed by:130
Symbol 115 GraphicUsed by:116
Symbol 116 MovieClipUses:115Used by:130
Symbol 117 GraphicUsed by:130
Symbol 118 GraphicUsed by:119
Symbol 119 MovieClipUses:118Used by:130
Symbol 120 GraphicUsed by:130
Symbol 121 GraphicUsed by:122
Symbol 122 MovieClipUses:121Used by:130
Symbol 123 GraphicUsed by:130
Symbol 124 GraphicUsed by:125
Symbol 125 MovieClipUses:124Used by:130
Symbol 126 GraphicUsed by:130
Symbol 127 GraphicUsed by:128
Symbol 128 MovieClipUses:127Used by:130
Symbol 129 GraphicUsed by:130
Symbol 130 MovieClip {widetv}Uses:12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 39 40 41 43 44 46 47 49 50 52 53 55 56 58 59 61 62 64 65 66 67 69 70 72 73 75 76 78 79 81 82 84 85 87 88 89 91 92 94 95 97 98 100 101 103 104 105 106 108 109 111 112 113 114 116 117 119 120 122 123 125 126 128 129
Symbol 131 GraphicUsed by:132
Symbol 132 MovieClip {flamingBall}Uses:131
Symbol 133 GraphicUsed by:134
Symbol 134 MovieClip {explodingBall}Uses:133
Symbol 135 GraphicUsed by:136
Symbol 136 MovieClip {bouncyBall}Uses:135
Symbol 137 GraphicUsed by:138
Symbol 138 MovieClip {tripleBall}Uses:137
Symbol 139 GraphicUsed by:140
Symbol 140 MovieClip {explodeBall}Uses:139
Symbol 141 GraphicUsed by:142 563
Symbol 142 MovieClip {cannonBall}Uses:141
Symbol 143 GraphicUsed by:285 773
Symbol 144 GraphicUsed by:145
Symbol 145 MovieClipUses:144Used by:285 386 773
Symbol 146 GraphicUsed by:147
Symbol 147 MovieClipUses:146Used by:285 386 773
Symbol 148 GraphicUsed by:149
Symbol 149 MovieClipUses:148Used by:285 386 773
Symbol 150 GraphicUsed by:285 773
Symbol 151 MovieClipUsed by:285 386 773
Symbol 152 GraphicUsed by:285
Symbol 153 GraphicUsed by:154
Symbol 154 MovieClipUses:153Used by:285 386
Symbol 155 GraphicUsed by:156
Symbol 156 MovieClipUses:155Used by:285 386
Symbol 157 GraphicUsed by:158
Symbol 158 MovieClipUses:157Used by:285 386
Symbol 159 GraphicUsed by:160
Symbol 160 MovieClipUses:159Used by:285 386
Symbol 161 GraphicUsed by:285
Symbol 162 GraphicUsed by:285
Symbol 163 GraphicUsed by:164
Symbol 164 MovieClipUses:163Used by:285 386
Symbol 165 GraphicUsed by:166
Symbol 166 MovieClipUses:165Used by:285 386
Symbol 167 GraphicUsed by:168
Symbol 168 MovieClipUses:167Used by:285 386
Symbol 169 GraphicUsed by:170
Symbol 170 MovieClipUses:169Used by:285 386
Symbol 171 GraphicUsed by:285
Symbol 172 GraphicUsed by:173
Symbol 173 MovieClipUses:172Used by:285 386
Symbol 174 GraphicUsed by:285
Symbol 175 GraphicUsed by:285
Symbol 176 GraphicUsed by:177
Symbol 177 MovieClipUses:176Used by:285 386
Symbol 178 GraphicUsed by:179
Symbol 179 MovieClipUses:178Used by:285 386
Symbol 180 GraphicUsed by:181
Symbol 181 MovieClipUses:180Used by:285 386
Symbol 182 GraphicUsed by:183
Symbol 183 MovieClipUses:182Used by:285 386
Symbol 184 GraphicUsed by:285
Symbol 185 GraphicUsed by:186
Symbol 186 MovieClipUses:185Used by:285 386
Symbol 187 GraphicUsed by:285
Symbol 188 GraphicUsed by:189
Symbol 189 MovieClipUses:188Used by:285 386
Symbol 190 GraphicUsed by:191
Symbol 191 MovieClipUses:190Used by:285 386
Symbol 192 GraphicUsed by:193
Symbol 193 MovieClipUses:192Used by:285 386
Symbol 194 GraphicUsed by:195
Symbol 195 MovieClipUses:194Used by:285 386
Symbol 196 GraphicUsed by:197
Symbol 197 MovieClipUses:196Used by:285 386
Symbol 198 GraphicUsed by:285
Symbol 199 GraphicUsed by:285
Symbol 200 MovieClipUsed by:285
Symbol 201 MovieClipUsed by:285
Symbol 202 MovieClipUsed by:285
Symbol 203 MovieClipUsed by:285
Symbol 204 MovieClipUsed by:285
Symbol 205 GraphicUsed by:285
Symbol 206 GraphicUsed by:207
Symbol 207 MovieClipUses:206Used by:285
Symbol 208 GraphicUsed by:285
Symbol 209 GraphicUsed by:210
Symbol 210 MovieClipUses:209Used by:285
Symbol 211 GraphicUsed by:285
Symbol 212 GraphicUsed by:213
Symbol 213 MovieClipUses:212Used by:285
Symbol 214 GraphicUsed by:285
Symbol 215 GraphicUsed by:216
Symbol 216 MovieClipUses:215Used by:285
Symbol 217 GraphicUsed by:285
Symbol 218 GraphicUsed by:219
Symbol 219 MovieClipUses:218Used by:285
Symbol 220 GraphicUsed by:285
Symbol 221 GraphicUsed by:222
Symbol 222 MovieClipUses:221Used by:285
Symbol 223 GraphicUsed by:285
Symbol 224 GraphicUsed by:225
Symbol 225 MovieClipUses:224Used by:285
Symbol 226 GraphicUsed by:285
Symbol 227 GraphicUsed by:228
Symbol 228 MovieClipUses:227Used by:285
Symbol 229 GraphicUsed by:285
Symbol 230 GraphicUsed by:231
Symbol 231 MovieClipUses:230Used by:285
Symbol 232 GraphicUsed by:285
Symbol 233 GraphicUsed by:234
Symbol 234 MovieClipUses:233Used by:285
Symbol 235 GraphicUsed by:285
Symbol 236 GraphicUsed by:237
Symbol 237 MovieClipUses:236Used by:285
Symbol 238 GraphicUsed by:285
Symbol 239 GraphicUsed by:240
Symbol 240 MovieClipUses:239Used by:285
Symbol 241 GraphicUsed by:285
Symbol 242 GraphicUsed by:243
Symbol 243 MovieClipUses:242Used by:285
Symbol 244 GraphicUsed by:285
Symbol 245 GraphicUsed by:246
Symbol 246 MovieClipUses:245Used by:285
Symbol 247 GraphicUsed by:285
Symbol 248 GraphicUsed by:249
Symbol 249 MovieClipUses:248Used by:285
Symbol 250 GraphicUsed by:285
Symbol 251 GraphicUsed by:252
Symbol 252 MovieClipUses:251Used by:285
Symbol 253 GraphicUsed by:285
Symbol 254 GraphicUsed by:255
Symbol 255 MovieClipUses:254Used by:285
Symbol 256 GraphicUsed by:257
Symbol 257 MovieClipUses:256Used by:285
Symbol 258 GraphicUsed by:285
Symbol 259 GraphicUsed by:260
Symbol 260 MovieClipUses:259Used by:285
Symbol 261 GraphicUsed by:285
Symbol 262 GraphicUsed by:263
Symbol 263 MovieClipUses:262Used by:285
Symbol 264 GraphicUsed by:285
Symbol 265 GraphicUsed by:266
Symbol 266 MovieClipUses:265Used by:285
Symbol 267 GraphicUsed by:285
Symbol 268 GraphicUsed by:269
Symbol 269 MovieClipUses:268Used by:285
Symbol 270 GraphicUsed by:285
Symbol 271 GraphicUsed by:272
Symbol 272 MovieClipUses:271Used by:285
Symbol 273 GraphicUsed by:274
Symbol 274 MovieClipUses:273Used by:285
Symbol 275 GraphicUsed by:285
Symbol 276 MovieClipUsed by:285
Symbol 277 GraphicUsed by:278
Symbol 278 MovieClipUses:277Used by:285
Symbol 279 GraphicUsed by:285
Symbol 280 GraphicUsed by:281
Symbol 281 MovieClipUses:280Used by:285
Symbol 282 GraphicUsed by:283
Symbol 283 MovieClipUses:282Used by:285
Symbol 284 GraphicUsed by:285
Symbol 285 MovieClip {fridge}Uses:143 145 147 149 150 151 152 154 156 158 160 161 162 164 166 168 170 171 173 174 175 177 179 181 183 184 186 187 189 191 193 195 197 198 199 200 201 202 203 204 205 207 208 210 211 213 214 216 217 219 220 222 223 225 226 228 229 231 232 234 235 237 238 240 241 243 244 246 247 249 250 252 253 255 257 258 260 261 263 264 266 267 269 270 272 274 275 276 278 279 281 283 284
Symbol 286 GraphicUsed by:386 773
Symbol 287 GraphicUsed by:288
Symbol 288 MovieClipUses:287Used by:386 773
Symbol 289 GraphicUsed by:386 773
Symbol 290 GraphicUsed by:291
Symbol 291 MovieClipUses:290Used by:386 773
Symbol 292 GraphicUsed by:386 773
Symbol 293 GraphicUsed by:294
Symbol 294 MovieClipUses:293Used by:386 773
Symbol 295 GraphicUsed by:386
Symbol 296 GraphicUsed by:297 304 309 315
Symbol 297 MovieClipUses:296Used by:386
Symbol 298 GraphicUsed by:386
Symbol 299 GraphicUsed by:300 306 316
Symbol 300 MovieClipUses:299Used by:386
Symbol 301 GraphicUsed by:386
Symbol 302 GraphicUsed by:303
Symbol 303 MovieClipUses:302Used by:386
Symbol 304 MovieClipUses:296Used by:386
Symbol 305 GraphicUsed by:386
Symbol 306 MovieClipUses:299Used by:386
Symbol 307 GraphicUsed by:308
Symbol 308 MovieClipUses:307Used by:386
Symbol 309 MovieClipUses:296Used by:386
Symbol 310 GraphicUsed by:386
Symbol 311 GraphicUsed by:312
Symbol 312 MovieClipUses:311Used by:386
Symbol 313 GraphicUsed by:314
Symbol 314 MovieClipUses:313Used by:386
Symbol 315 MovieClipUses:296Used by:386
Symbol 316 MovieClipUses:299Used by:386
Symbol 317 GraphicUsed by:318
Symbol 318 MovieClipUses:317Used by:386
Symbol 319 GraphicUsed by:386
Symbol 320 GraphicUsed by:321
Symbol 321 MovieClipUses:320Used by:386 513
Symbol 322 GraphicUsed by:386
Symbol 323 GraphicUsed by:324
Symbol 324 MovieClipUses:323Used by:386 513
Symbol 325 GraphicUsed by:386
Symbol 326 GraphicUsed by:386
Symbol 327 GraphicUsed by:328
Symbol 328 MovieClipUses:327Used by:386
Symbol 329 GraphicUsed by:386
Symbol 330 GraphicUsed by:386
Symbol 331 GraphicUsed by:386
Symbol 332 GraphicUsed by:386
Symbol 333 GraphicUsed by:386
Symbol 334 GraphicUsed by:386
Symbol 335 GraphicUsed by:386
Symbol 336 GraphicUsed by:337
Symbol 337 MovieClipUses:336Used by:386
Symbol 338 GraphicUsed by:386
Symbol 339 GraphicUsed by:340
Symbol 340 MovieClipUses:339Used by:386
Symbol 341 GraphicUsed by:386
Symbol 342 GraphicUsed by:386
Symbol 343 GraphicUsed by:386
Symbol 344 GraphicUsed by:386
Symbol 345 GraphicUsed by:386
Symbol 346 GraphicUsed by:386
Symbol 347 GraphicUsed by:348
Symbol 348 MovieClipUses:347Used by:386
Symbol 349 GraphicUsed by:386
Symbol 350 GraphicUsed by:351
Symbol 351 MovieClipUses:350Used by:386
Symbol 352 GraphicUsed by:386
Symbol 353 MovieClipUsed by:386
Symbol 354 GraphicUsed by:386
Symbol 355 GraphicUsed by:356
Symbol 356 MovieClipUses:355Used by:386
Symbol 357 GraphicUsed by:386
Symbol 358 GraphicUsed by:359
Symbol 359 MovieClipUses:358Used by:386
Symbol 360 GraphicUsed by:386
Symbol 361 GraphicUsed by:386
Symbol 362 GraphicUsed by:386
Symbol 363 GraphicUsed by:386
Symbol 364 GraphicUsed by:386
Symbol 365 GraphicUsed by:386
Symbol 366 GraphicUsed by:386
Symbol 367 GraphicUsed by:386
Symbol 368 GraphicUsed by:386
Symbol 369 GraphicUsed by:386
Symbol 370 GraphicUsed by:386
Symbol 371 GraphicUsed by:372
Symbol 372 MovieClipUses:371Used by:386
Symbol 373 GraphicUsed by:386
Symbol 374 GraphicUsed by:375
Symbol 375 MovieClipUses:374Used by:386
Symbol 376 GraphicUsed by:386
Symbol 377 GraphicUsed by:378
Symbol 378 MovieClipUses:377Used by:386
Symbol 379 GraphicUsed by:386
Symbol 380 GraphicUsed by:381
Symbol 381 MovieClipUses:380Used by:386
Symbol 382 GraphicUsed by:386
Symbol 383 GraphicUsed by:384
Symbol 384 MovieClipUses:383Used by:386
Symbol 385 GraphicUsed by:386
Symbol 386 MovieClip {monitor}Uses:286 288 289 291 292 294 295 297 298 300 301 303 304 305 306 308 309 310 312 314 315 316 318 319 321 322 324 325 145 326 328 329 147 330 149 151 331 154 332 156 333 158 334 160 335 337 338 340 341 164 342 166 343 168 344 170 345 173 346 348 349 351 352 353 354 356 357 359 360 177 361 179 362 181 363 183 364 186 365 189 366 191 367 193 368 195 369 197 370 372 373 375 376 378 379 381 382 384 385
Symbol 387 GraphicUsed by:513 773
Symbol 388 GraphicUsed by:389 405 410 415
Symbol 389 MovieClipUses:388Used by:513 773
Symbol 390 GraphicUsed by:513 773
Symbol 391 GraphicUsed by:392 401 406 411
Symbol 392 MovieClipUses:391Used by:513 773
Symbol 393 GraphicUsed by:513 773
Symbol 394 GraphicUsed by:395 402 407 412
Symbol 395 MovieClipUses:394Used by:513 773
Symbol 396 GraphicUsed by:513 773
Symbol 397 GraphicUsed by:398
Symbol 398 MovieClipUses:397Used by:513 773
Symbol 399 GraphicUsed by:400
Symbol 400 MovieClipUses:399Used by:513
Symbol 401 MovieClipUses:391Used by:513
Symbol 402 MovieClipUses:394Used by:513
Symbol 403 GraphicUsed by:404
Symbol 404 MovieClipUses:403Used by:513
Symbol 405 MovieClipUses:388Used by:513
Symbol 406 MovieClipUses:391Used by:513
Symbol 407 MovieClipUses:394Used by:513
Symbol 408 GraphicUsed by:409
Symbol 409 MovieClipUses:408Used by:513
Symbol 410 MovieClipUses:388Used by:513
Symbol 411 MovieClipUses:391Used by:513
Symbol 412 MovieClipUses:394Used by:513
Symbol 413 GraphicUsed by:414
Symbol 414 MovieClipUses:413Used by:513
Symbol 415 MovieClipUses:388Used by:513
Symbol 416 GraphicUsed by:417
Symbol 417 MovieClipUses:416Used by:513
Symbol 418 GraphicUsed by:513
Symbol 419 GraphicUsed by:420
Symbol 420 MovieClipUses:419Used by:513
Symbol 421 GraphicUsed by:513
Symbol 422 GraphicUsed by:423
Symbol 423 MovieClipUses:422Used by:513
Symbol 424 GraphicUsed by:513
Symbol 425 GraphicUsed by:426
Symbol 426 MovieClipUses:425Used by:513
Symbol 427 GraphicUsed by:513
Symbol 428 GraphicUsed by:429
Symbol 429 MovieClipUses:428Used by:513
Symbol 430 GraphicUsed by:513
Symbol 431 GraphicUsed by:432
Symbol 432 MovieClipUses:431Used by:513
Symbol 433 GraphicUsed by:513
Symbol 434 GraphicUsed by:435
Symbol 435 MovieClipUses:434Used by:513
Symbol 436 GraphicUsed by:513
Symbol 437 GraphicUsed by:438
Symbol 438 MovieClipUses:437Used by:513
Symbol 439 GraphicUsed by:513
Symbol 440 GraphicUsed by:441
Symbol 441 MovieClipUses:440Used by:513
Symbol 442 GraphicUsed by:513
Symbol 443 GraphicUsed by:444
Symbol 444 MovieClipUses:443Used by:513
Symbol 445 GraphicUsed by:513
Symbol 446 GraphicUsed by:447
Symbol 447 MovieClipUses:446Used by:513
Symbol 448 GraphicUsed by:513
Symbol 449 GraphicUsed by:450
Symbol 450 MovieClipUses:449Used by:513
Symbol 451 GraphicUsed by:513
Symbol 452 GraphicUsed by:453
Symbol 453 MovieClipUses:452Used by:513
Symbol 454 GraphicUsed by:513
Symbol 455 MovieClipUsed by:513
Symbol 456 MovieClipUsed by:513
Symbol 457 GraphicUsed by:513
Symbol 458 GraphicUsed by:459
Symbol 459 MovieClipUses:458Used by:513
Symbol 460 GraphicUsed by:513
Symbol 461 GraphicUsed by:462
Symbol 462 MovieClipUses:461Used by:513
Symbol 463 GraphicUsed by:513
Symbol 464 GraphicUsed by:465
Symbol 465 MovieClipUses:464Used by:513
Symbol 466 GraphicUsed by:513
Symbol 467 GraphicUsed by:468
Symbol 468 MovieClipUses:467Used by:513
Symbol 469 GraphicUsed by:513
Symbol 470 GraphicUsed by:471
Symbol 471 MovieClipUses:470Used by:513
Symbol 472 GraphicUsed by:513
Symbol 473 GraphicUsed by:474
Symbol 474 MovieClipUses:473Used by:513
Symbol 475 GraphicUsed by:513
Symbol 476 GraphicUsed by:477
Symbol 477 MovieClipUses:476Used by:513
Symbol 478 GraphicUsed by:513
Symbol 479 GraphicUsed by:480
Symbol 480 MovieClipUses:479Used by:513
Symbol 481 GraphicUsed by:513
Symbol 482 GraphicUsed by:483
Symbol 483 MovieClipUses:482Used by:513
Symbol 484 GraphicUsed by:513
Symbol 485 GraphicUsed by:486
Symbol 486 MovieClipUses:485Used by:513
Symbol 487 GraphicUsed by:513
Symbol 488 GraphicUsed by:489
Symbol 489 MovieClipUses:488Used by:513
Symbol 490 GraphicUsed by:513
Symbol 491 GraphicUsed by:492
Symbol 492 MovieClipUses:491Used by:513
Symbol 493 GraphicUsed by:513
Symbol 494 GraphicUsed by:495
Symbol 495 MovieClipUses:494Used by:513
Symbol 496 GraphicUsed by:513
Symbol 497 GraphicUsed by:498
Symbol 498 MovieClipUses:497Used by:513
Symbol 499 GraphicUsed by:513
Symbol 500 GraphicUsed by:501
Symbol 501 MovieClipUses:500Used by:513
Symbol 502 GraphicUsed by:513
Symbol 503 GraphicUsed by:504
Symbol 504 MovieClipUses:503Used by:513
Symbol 505 GraphicUsed by:513
Symbol 506 GraphicUsed by:507
Symbol 507 MovieClipUses:506Used by:513
Symbol 508 MovieClipUsed by:513
Symbol 509 GraphicUsed by:513
Symbol 510 GraphicUsed by:511
Symbol 511 MovieClipUses:510Used by:513
Symbol 512 GraphicUsed by:513
Symbol 513 MovieClip {microwave}Uses:387 389 390 392 393 395 396 398 400 401 402 404 405 406 407 409 410 411 412 414 415 321 324 417 418 420 421 423 424 426 427 429 430 432 433 435 436 438 439 441 442 444 445 447 448 450 451 453 454 455 456 457 459 460 462 463 465 466 468 469 471 472 474 475 477 478 480 481 483 484 486 487 489 490 492 493 495 496 498 499 501 502 504 505 507 508 509 511 512
Symbol 514 MovieClip {ground}
Symbol 515 BitmapUsed by:516
Symbol 516 GraphicUses:515Used by:527 773
Symbol 517 BitmapUsed by:518
Symbol 518 GraphicUses:517Used by:527
Symbol 519 BitmapUsed by:520
Symbol 520 GraphicUses:519Used by:527
Symbol 521 BitmapUsed by:522
Symbol 522 GraphicUses:521Used by:527
Symbol 523 BitmapUsed by:524
Symbol 524 GraphicUses:523Used by:527
Symbol 525 BitmapUsed by:526
Symbol 526 GraphicUses:525Used by:527
Symbol 527 MovieClip {art}Uses:516 518 520 522 524 526
Symbol 528 GraphicUsed by:541 773
Symbol 529 GraphicUsed by:530
Symbol 530 MovieClipUses:529Used by:541 773
Symbol 531 GraphicUsed by:532
Symbol 532 MovieClipUses:531Used by:541
Symbol 533 GraphicUsed by:534
Symbol 534 MovieClipUses:533Used by:541
Symbol 535 GraphicUsed by:536
Symbol 536 MovieClipUses:535Used by:541
Symbol 537 GraphicUsed by:538
Symbol 538 MovieClipUses:537Used by:541
Symbol 539 BitmapUsed by:540
Symbol 540 GraphicUses:539Used by:541
Symbol 541 MovieClip {box}Uses:528 530 532 534 536 538 540
Symbol 542 GraphicUsed by:563
Symbol 543 GraphicUsed by:544 547 557
Symbol 544 MovieClipUses:543Used by:563
Symbol 545 GraphicUsed by:546
Symbol 546 MovieClipUses:545Used by:563
Symbol 547 MovieClipUses:543Used by:563
Symbol 548 GraphicUsed by:563
Symbol 549 GraphicUsed by:550 555
Symbol 550 MovieClipUses:549Used by:563
Symbol 551 GraphicUsed by:563
Symbol 552 GraphicUsed by:553
Symbol 553 MovieClipUses:552Used by:563
Symbol 554 GraphicUsed by:563
Symbol 555 MovieClipUses:549Used by:563
Symbol 556 GraphicUsed by:563
Symbol 557 MovieClipUses:543Used by:563
Symbol 558 GraphicUsed by:563
Symbol 559 GraphicUsed by:560
Symbol 560 MovieClipUses:559Used by:563
Symbol 561 BitmapUsed by:562
Symbol 562 GraphicUses:561Used by:563
Symbol 563 MovieClip {shotMc}Uses:542 544 141 546 547 548 550 551 553 554 555 556 557 558 560 562
Symbol 564 BitmapUsed by:565
Symbol 565 GraphicUses:564Used by:572
Symbol 566 FontUsed by:567 622 623 624 669 681 682 683 684 685 688 693 695 710 711 712
Symbol 567 EditableTextUses:566Used by:572
Symbol 568 BitmapUsed by:569
Symbol 569 GraphicUses:568Used by:572
Symbol 570 BitmapUsed by:571
Symbol 571 GraphicUses:570Used by:572
Symbol 572 MovieClip {levBtn}Uses:565 567 569 571
Symbol 573 MovieClipUses:112Used by:607
Symbol 574 GraphicUsed by:606
Symbol 575 GraphicUsed by:589
Symbol 576 GraphicUsed by:577 584
Symbol 577 MovieClipUses:576Used by:589
Symbol 578 GraphicUsed by:589
Symbol 579 GraphicUsed by:581
Symbol 580 GraphicUsed by:581
Symbol 581 MovieClip {maxDamage_fla.mouth_6}Uses:579 580Used by:589
Symbol 582 GraphicUsed by:589
Symbol 583 GraphicUsed by:589
Symbol 584 MovieClipUses:576Used by:589
Symbol 585 GraphicUsed by:589
Symbol 586 GraphicUsed by:587
Symbol 587 MovieClipUses:586Used by:589
Symbol 588 GraphicUsed by:589
Symbol 589 MovieClip {maxDamage_fla.max_4}Uses:575 577 578 581 1 582 583 584 585 587 588Used by:606
Symbol 590 GraphicUsed by:591
Symbol 591 MovieClipUses:590Used by:593
Symbol 592 GraphicUsed by:593
Symbol 593 MovieClip {maxDamage_fla.arrow_10}Uses:591 592Used by:605
Symbol 594 GraphicUsed by:595
Symbol 595 MovieClipUses:594Used by:605
Symbol 596 GraphicUsed by:602
Symbol 597 GraphicUsed by:602
Symbol 598 GraphicUsed by:602
Symbol 599 GraphicUsed by:602
Symbol 600 GraphicUsed by:602
Symbol 601 GraphicUsed by:602
Symbol 602 MovieClip {maxDamage_fla.canon_13}Uses:596 597 598 599 600 601Used by:605
Symbol 603 GraphicUsed by:604
Symbol 604 MovieClipUses:603Used by:605
Symbol 605 MovieClip {maxDamage_fla.barrel_9}Uses:593 595 602 604Used by:606
Symbol 606 MovieClip {maxDamage_fla.cannon_3}Uses:574 589 605Used by:607
Symbol 607 MovieClip {maxDamage_fla.gameScreen_1}Uses:573 606Used by:Timeline
Symbol 608 BitmapUsed by:611
Symbol 609 BitmapUsed by:611
Symbol 610 BitmapUsed by:611
Symbol 611 GraphicUses:608 609 610Used by:629
Symbol 612 BitmapUsed by:613
Symbol 613 GraphicUses:612Used by:616
Symbol 614 BitmapUsed by:615
Symbol 615 GraphicUses:614Used by:616
Symbol 616 ButtonUses:613 615Used by:629
Symbol 617 BitmapUsed by:618
Symbol 618 GraphicUses:617Used by:621
Symbol 619 BitmapUsed by:620
Symbol 620 GraphicUses:619Used by:621
Symbol 621 ButtonUses:618 620Used by:629
Symbol 622 EditableTextUses:566 739Used by:629
Symbol 623 TextUses:566Used by:629
Symbol 624 TextUses:566Used by:629
Symbol 625 GraphicUsed by:628 798
Symbol 626 GraphicUsed by:628 798
Symbol 627 GraphicUsed by:628 798
Symbol 628 ButtonUses:625 626 627Used by:629
Symbol 629 MovieClip {maxDamage_fla.menuScreen_15}Uses:611 616 621 622 623 624 628Used by:Timeline
Symbol 630 BitmapUsed by:631
Symbol 631 GraphicUses:630Used by:632
Symbol 632 MovieClipUses:631Used by:Timeline
Symbol 633 GraphicUsed by:665 666
Symbol 634 FontUsed by:635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 659 670 673 674
Symbol 635 TextUses:634Used by:665
Symbol 636 TextUses:634Used by:665
Symbol 637 TextUses:634Used by:665
Symbol 638 TextUses:634Used by:665
Symbol 639 TextUses:634Used by:665
Symbol 640 TextUses:634Used by:665
Symbol 641 TextUses:634Used by:665
Symbol 642 TextUses:634Used by:665
Symbol 643 TextUses:634Used by:665
Symbol 644 TextUses:634Used by:665
Symbol 645 EditableTextUses:634Used by:665
Symbol 646 EditableTextUses:634Used by:665
Symbol 647 EditableTextUses:634Used by:665
Symbol 648 EditableTextUses:634Used by:665
Symbol 649 EditableTextUses:634Used by:665
Symbol 650 EditableTextUses:634Used by:665
Symbol 651 EditableTextUses:634Used by:665
Symbol 652 EditableTextUses:634Used by:665
Symbol 653 EditableTextUses:634Used by:665
Symbol 654 EditableTextUses:634Used by:665
Symbol 655 EditableTextUses:634Used by:665
Symbol 656 EditableTextUses:634Used by:665
Symbol 657 BitmapUsed by:658
Symbol 658 GraphicUses:657Used by:662 671
Symbol 659 TextUses:634Used by:662
Symbol 660 BitmapUsed by:661
Symbol 661 GraphicUses:660Used by:662 671
Symbol 662 ButtonUses:658 659 661Used by:665
Symbol 663 BitmapUsed by:664
Symbol 664 GraphicUses:663Used by:665
Symbol 665 MovieClip {maxDamage_fla.statsScreen_20}Uses:633 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 662 664Used by:Timeline
Symbol 666 MovieClipUses:633Used by:672
Symbol 667 BitmapUsed by:668
Symbol 668 GraphicUses:667Used by:672
Symbol 669 TextUses:566Used by:672
Symbol 670 TextUses:634Used by:671
Symbol 671 ButtonUses:658 670 661Used by:672
Symbol 672 MovieClip {maxDamage_fla.completeScreen_22}Uses:666 668 669 671Used by:Timeline
Symbol 673 TextUses:634Used by:675
Symbol 674 EditableTextUses:634Used by:675
Symbol 675 MovieClipUses:112 673 674Used by:Timeline
Symbol 676 GraphicUsed by:785
Symbol 677 FontUsed by:678
Symbol 678 EditableTextUses:677Used by:785
Symbol 679 BitmapUsed by:680
Symbol 680 GraphicUses:679Used by:708
Symbol 681 EditableTextUses:566Used by:708
Symbol 682 TextUses:566Used by:708
Symbol 683 EditableTextUses:566Used by:708
Symbol 684 TextUses:566Used by:708
Symbol 685 EditableTextUses:566Used by:708
Symbol 686 BitmapUsed by:687
Symbol 687 GraphicUses:686Used by:692 694 696
Symbol 688 TextUses:566Used by:692
Symbol 689 GraphicUsed by:692 694 696
Symbol 690 BitmapUsed by:691
Symbol 691 GraphicUses:690Used by:692 694 696
Symbol 692 ButtonUses:687 688 689 691Used by:708
Symbol 693 TextUses:566Used by:694
Symbol 694 ButtonUses:687 693 689 691Used by:708
Symbol 695 TextUses:566Used by:696
Symbol 696 ButtonUses:687 695 689 691Used by:708
Symbol 697 BitmapUsed by:698 704
Symbol 698 GraphicUses:697Used by:703
Symbol 699 BitmapUsed by:700 705
Symbol 700 GraphicUses:699Used by:703
Symbol 701 BitmapUsed by:702 706
Symbol 702 GraphicUses:701Used by:703
Symbol 703 MovieClip {maxDamage_fla.musicBtn_31}Uses:698 700 702Used by:708
Symbol 704 GraphicUses:697Used by:707
Symbol 705 GraphicUses:699Used by:707
Symbol 706 GraphicUses:701Used by:707
Symbol 707 MovieClip {maxDamage_fla.soundBtn_32}Uses:704 705 706Used by:708
Symbol 708 MovieClip {readout}Uses:680 681 682 683 684 685 692 694 696 703 707Used by:785
Symbol 709 GraphicUsed by:713
Symbol 710 EditableTextUses:566Used by:713
Symbol 711 TextUses:566Used by:713
Symbol 712 EditableTextUses:566Used by:713
Symbol 713 MovieClip {targetInfo}Uses:709 710 711 712Used by:785
Symbol 714 BitmapUsed by:715
Symbol 715 GraphicUses:714Used by:720
Symbol 716 BitmapUsed by:717
Symbol 717 GraphicUses:716Used by:720
Symbol 718 BitmapUsed by:719
Symbol 719 GraphicUses:718Used by:720
Symbol 720 MovieClip {back}Uses:715 717 719Used by:785
Symbol 721 GraphicUsed by:734
Symbol 722 BitmapUsed by:723
Symbol 723 GraphicUses:722Used by:726
Symbol 724 BitmapUsed by:725
Symbol 725 GraphicUses:724Used by:726
Symbol 726 ButtonUses:723 725Used by:734
Symbol 727 BitmapUsed by:728
Symbol 728 GraphicUses:727Used by:731
Symbol 729 BitmapUsed by:730
Symbol 730 GraphicUses:729Used by:731
Symbol 731 ButtonUses:728 730Used by:734
Symbol 732 BitmapUsed by:733
Symbol 733 GraphicUses:732Used by:734
Symbol 734 MovieClip {levelComplete}Uses:721 726 731 733Used by:785
Symbol 735 BitmapUsed by:736
Symbol 736 GraphicUses:735Used by:737
Symbol 737 MovieClip {tryAgainMsg}Uses:736Used by:785
Symbol 738 GraphicUsed by:742
Symbol 739 FontUsed by:622 740 744 747 751 754 761 764
Symbol 740 EditableTextUses:739Used by:742
Symbol 741 GraphicUsed by:742
Symbol 742 MovieClip {tip1}Uses:738 740 741Used by:785
Symbol 743 GraphicUsed by:745
Symbol 744 EditableTextUses:739Used by:745
Symbol 745 MovieClip {tip2}Uses:743 744Used by:785
Symbol 746 GraphicUsed by:749
Symbol 747 EditableTextUses:739Used by:749
Symbol 748 GraphicUsed by:749
Symbol 749 MovieClip {tip3}Uses:746 747 748Used by:785
Symbol 750 GraphicUsed by:752
Symbol 751 EditableTextUses:739Used by:752
Symbol 752 MovieClip {tip4}Uses:750 751Used by:785
Symbol 753 GraphicUsed by:755
Symbol 754 EditableTextUses:739Used by:755
Symbol 755 MovieClip {tip5}Uses:753 754Used by:785
Symbol 756 BitmapUsed by:757
Symbol 757 GraphicUses:756Used by:758
Symbol 758 MovieClipUses:757Used by:759
Symbol 759 MovieClip {pleaseWait}Uses:758Used by:785
Symbol 760 GraphicUsed by:762
Symbol 761 EditableTextUses:739Used by:762
Symbol 762 MovieClip {tipGeneral}Uses:760 761Used by:785
Symbol 763 GraphicUsed by:766
Symbol 764 EditableTextUses:739Used by:766
Symbol 765 GraphicUsed by:766
Symbol 766 MovieClip {tip6}Uses:763 764 765Used by:785
Symbol 767 ShapeTweeningUsed by:770
Symbol 768 GraphicUsed by:770
Symbol 769 GraphicUsed by:770
Symbol 770 MovieClip {flame}Uses:767 768 769Used by:785
Symbol 771 GraphicUsed by:773
Symbol 772 GraphicUsed by:773
Symbol 773 MovieClip {flyingTarget}Uses:528 530 516 143 145 147 149 150 151 387 389 390 392 393 395 396 398 286 288 289 291 292 294 4 771 7 772 10 11Used by:785
Symbol 774 Sound {musicSound}Used by:785
Symbol 775 Sound {flameSnd}Used by:785
Symbol 776 Sound {shootSnd}Used by:785
Symbol 777 Sound {gameCompleteSnd}Used by:785
Symbol 778 Sound {levelFailSnd}Used by:785
Symbol 779 Sound {levelCompleteSnd}Used by:785
Symbol 780 Sound {buttonSnd}Used by:785
Symbol 781 Sound {damageSnd}Used by:785
Symbol 782 Sound {damageExceedSnd}Used by:785
Symbol 783 Sound {bounceSnd}Used by:785
Symbol 784 Sound {explodeSnd}Used by:785
Symbol 785 MovieClip {maxDamage_fla.soundHolder_26}Uses:676 678 708 713 720 734 737 742 745 749 752 755 759 762 766 770 773 774 775 776 777 778 779 780 781 782 783 784Used by:Timeline
Symbol 786 SoundUsed by:798
Symbol 787 SoundUsed by:798
Symbol 788 GraphicUsed by:798
Symbol 789 GraphicUsed by:790
Symbol 790 MovieClipUses:789Used by:798
Symbol 791 SoundUsed by:798
Symbol 792 SoundUsed by:798
Symbol 793 SoundUsed by:798
Symbol 794 GraphicUsed by:795
Symbol 795 ButtonUses:794Used by:798
Symbol 796 SoundUsed by:798
Symbol 797 SoundUsed by:798
Symbol 798 MovieClip {maxDamage_fla.ag_intro_mc_65}Uses:625 626 627 786 787 788 790 791 792 793 795 796 797Used by:Timeline

Instance Names

"gameScreen"Frame 1Symbol 607 MovieClip {maxDamage_fla.gameScreen_1}
"menuScreen"Frame 1Symbol 629 MovieClip {maxDamage_fla.menuScreen_15}
"levelScreen"Frame 1Symbol 632 MovieClip
"statsScreen"Frame 1Symbol 665 MovieClip {maxDamage_fla.statsScreen_20}
"completeScreen"Frame 1Symbol 672 MovieClip {maxDamage_fla.completeScreen_22}
"siteLockScreen"Frame 1Symbol 675 MovieClip
"armorSplash"Frame 2Symbol 798 MovieClip {maxDamage_fla.ag_intro_mc_65}
"targetPlasmablueDamage0"Symbol 130 MovieClip {widetv} Frame 1Symbol 12 MovieClip
"num"Symbol 572 MovieClip {levBtn} Frame 1Symbol 567 EditableText
"mouth"Symbol 589 MovieClip {maxDamage_fla.max_4} Frame 1Symbol 581 MovieClip {maxDamage_fla.mouth_6}
"mouth"Symbol 589 MovieClip {maxDamage_fla.max_4} Frame 2Symbol 581 MovieClip {maxDamage_fla.mouth_6}
"triple"Symbol 593 MovieClip {maxDamage_fla.arrow_10} Frame 1Symbol 591 MovieClip
"thearrow"Symbol 605 MovieClip {maxDamage_fla.barrel_9} Frame 1Symbol 593 MovieClip {maxDamage_fla.arrow_10}
"shootPoint"Symbol 605 MovieClip {maxDamage_fla.barrel_9} Frame 1Symbol 595 MovieClip
"bulge"Symbol 605 MovieClip {maxDamage_fla.barrel_9} Frame 1Symbol 602 MovieClip {maxDamage_fla.canon_13}
"arrowHead"Symbol 605 MovieClip {maxDamage_fla.barrel_9} Frame 1Symbol 604 MovieClip
"max"Symbol 606 MovieClip {maxDamage_fla.cannon_3} Frame 1Symbol 589 MovieClip {maxDamage_fla.max_4}
"barrel"Symbol 606 MovieClip {maxDamage_fla.cannon_3} Frame 1Symbol 605 MovieClip {maxDamage_fla.barrel_9}
"bgs"Symbol 607 MovieClip {maxDamage_fla.gameScreen_1} Frame 1Symbol 573 MovieClip
"cannon"Symbol 607 MovieClip {maxDamage_fla.gameScreen_1} Frame 1Symbol 606 MovieClip {maxDamage_fla.cannon_3}
"playBtn"Symbol 629 MovieClip {maxDamage_fla.menuScreen_15} Frame 1Symbol 616 Button
"statsBtn"Symbol 629 MovieClip {maxDamage_fla.menuScreen_15} Frame 1Symbol 621 Button
"armorgames"Symbol 629 MovieClip {maxDamage_fla.menuScreen_15} Frame 1Symbol 628 Button
"totalDamage"Symbol 665 MovieClip {maxDamage_fla.statsScreen_20} Frame 1Symbol 645 EditableText
"shots"Symbol 665 MovieClip {maxDamage_fla.statsScreen_20} Frame 1Symbol 646 EditableText
"timesPlayed"Symbol 665 MovieClip {maxDamage_fla.statsScreen_20} Frame 1Symbol 647 EditableText
"passed"Symbol 665 MovieClip {maxDamage_fla.statsScreen_20} Frame 1Symbol 648 EditableText
"failed"Symbol 665 MovieClip {maxDamage_fla.statsScreen_20} Frame 1Symbol 649 EditableText
"success"Symbol 665 MovieClip {maxDamage_fla.statsScreen_20} Frame 1Symbol 650 EditableText
"highestDamage"Symbol 665 MovieClip {maxDamage_fla.statsScreen_20} Frame 1Symbol 651 EditableText
"averageShot"Symbol 665 MovieClip {maxDamage_fla.statsScreen_20} Frame 1Symbol 652 EditableText
"averageLevel"Symbol 665 MovieClip {maxDamage_fla.statsScreen_20} Frame 1Symbol 653 EditableText
"playingTime"Symbol 665 MovieClip {maxDamage_fla.statsScreen_20} Frame 1Symbol 654 EditableText
"random1"Symbol 665 MovieClip {maxDamage_fla.statsScreen_20} Frame 1Symbol 655 EditableText
"random2"Symbol 665 MovieClip {maxDamage_fla.statsScreen_20} Frame 1Symbol 656 EditableText
"backBtn"Symbol 665 MovieClip {maxDamage_fla.statsScreen_20} Frame 1Symbol 662 Button
"back"Symbol 672 MovieClip {maxDamage_fla.completeScreen_22} Frame 1Symbol 666 MovieClip
"backBtn"Symbol 672 MovieClip {maxDamage_fla.completeScreen_22} Frame 1Symbol 671 Button
"levelName"Symbol 708 MovieClip {readout} Frame 1Symbol 681 EditableText
"damage"Symbol 708 MovieClip {readout} Frame 1Symbol 683 EditableText
"best"Symbol 708 MovieClip {readout} Frame 1Symbol 685 EditableText
"nextLevelBtn"Symbol 708 MovieClip {readout} Frame 1Symbol 692 Button
"resetBtn"Symbol 708 MovieClip {readout} Frame 1Symbol 694 Button
"menuBtn"Symbol 708 MovieClip {readout} Frame 1Symbol 696 Button
"musicBtn"Symbol 708 MovieClip {readout} Frame 1Symbol 703 MovieClip {maxDamage_fla.musicBtn_31}
"soundBtn"Symbol 708 MovieClip {readout} Frame 1Symbol 707 MovieClip {maxDamage_fla.soundBtn_32}
"targetType"Symbol 713 MovieClip {targetInfo} Frame 1Symbol 710 EditableText
"targetDamage"Symbol 713 MovieClip {targetInfo} Frame 1Symbol 712 EditableText
"nextLevelBtn"Symbol 734 MovieClip {levelComplete} Frame 1Symbol 726 Button
"playAgainBtn"Symbol 734 MovieClip {levelComplete} Frame 1Symbol 731 Button
"txt"Symbol 742 MovieClip {tip1} Frame 1Symbol 740 EditableText
"txt"Symbol 745 MovieClip {tip2} Frame 1Symbol 744 EditableText
"txt"Symbol 749 MovieClip {tip3} Frame 1Symbol 747 EditableText
"txt"Symbol 752 MovieClip {tip4} Frame 1Symbol 751 EditableText
"txt"Symbol 755 MovieClip {tip5} Frame 1Symbol 754 EditableText
"txt"Symbol 762 MovieClip {tipGeneral} Frame 1Symbol 761 EditableText
"txt"Symbol 766 MovieClip {tip6} Frame 1Symbol 764 EditableText

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.
Tag 0x0FF (255)Timeline Frame 11 bytes "."

Labels

"flicker"Symbol 770 MovieClip {flame} Frame 10




https://swfchan.com/54/268157/info.shtml
Created: 13/6 -2026 20:12:41 Last modified: 13/6 -2026 20:12:41 Server time: 23/06 -2026 11:45:35