| STORY LOOP FURRY PORN GAMES C SERVICES [?] [R] RND POPULAR | Archived flashes: 232542 |
| /disc/ · /res/ — /show/ · /fap/ · /gg/ · /swf/ | P0001 · P2635 · P5269 |
![]() | This is the info page for Flash #263407 |
| <p align="left"><font face="Cooper Std Black" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1">loading 20%</font></p> |
| not |
| DOPPLER |
| not |
| DOPPLER |
| Not Doppler Highscore Submitter |
| Loading higscores... |
| Are you sure that you want to reset the game progress? |
| <p align="center"><font face="AvantGarde Md BT" size="13" color="#ffffff" letterSpacing="0.000000" kerning="1">Mariya</font></p><p align="center"><font face="AvantGarde Md BT" size="13" color="#ffffff" letterSpacing="0.000000" kerning="1">Starovoytova</font></p><p align="center"></p><p align="center"></p><p align="center"></p><p align="center"></p><p align="center"></p> |
| Achievements |
| not |
| DOPPLER |
| Music & SFX |
| Music & SFX |
| Music & SFX |
| Art |
| Art |
| Art |
| Programming & game design |
| Programming & game design |
| Programming & game design |
| Programming & game design |
| Programming & game design |
| Credits |
| <p align="center"><font face="AvantGarde Md BT" size="18" color="#000000" letterSpacing="0.000000" kerning="1">developers blog: </font></p><p align="center"><font face="AvantGarde Md BT" size="18" color="#000000" letterSpacing="0.000000" kerning="1">http://smrdis.ya.ru</font></p> |
| <p align="center"><font face="AvantGarde Md BT" size="18" color="#666666" letterSpacing="0.000000" kerning="1">developers blog: </font></p><p align="center"><font face="AvantGarde Md BT" size="18" color="#666666" letterSpacing="0.000000" kerning="1">http://smrdis.ya.ru</font></p> |
| <p align="center"><font face="AvantGarde Md BT" size="18" color="#666666" letterSpacing="0.000000" kerning="1">developers blog: </font></p><p align="center"><font face="AvantGarde Md BT" size="18" color="#666666" letterSpacing="0.000000" kerning="1">http://smrdis.ya.ru</font></p> |
| <p align="center"><font face="AvantGarde Md BT" size="18" color="#666666" letterSpacing="0.000000" kerning="1">developer blog: </font></p><p align="center"><font face="AvantGarde Md BT" size="18" color="#666666" letterSpacing="0.000000" kerning="1">http://smrdis.ya.ru</font></p> |
| <p align="center"><font face="AvantGarde Md BT" size="18" color="#000000" letterSpacing="0.000000" kerning="1">developer mail: gibbetsfeedblack@gmail.com</font></p> |
| <p align="center"><font face="AvantGarde Md BT" size="18" color="#666666" letterSpacing="0.000000" kerning="1">developer mail: gibbetsfeedblack@gmail.com</font></p> |
| <p align="center"><font face="AvantGarde Md BT" size="18" color="#666666" letterSpacing="0.000000" kerning="1">developer mail: gibbetsfeedblack@gmail.com</font></p> |
| <p align="center"><font face="AvantGarde Md BT" size="18" color="#666666" letterSpacing="0.000000" kerning="1">developer mail: gibbetsfeedblack@gmail.com</font></p> |
| My blog http://smrdis.ya.ru |
| My mail gibbetsfeedback@gmail. com |
| "If the desire to kill and the opportunity to kill came always together, who would escape hanging?" - Mark Twain |
| If you hang a man and he dies, keep hanging him until he gets used to it. |
| Try to shoot my legs to shake me. |
| Take additional arrows, they are behind the screen at the right top angle |
| Robin Hood made that much better! |
| That's because I am black. |
| Hey, don't you dare to shoot me down. I like to hang here! |
| Head shot! |
| Use the force, Luke! |
| Stop it! |
| Options |
| Invert control |
| Disable blood |
| Music volume |
| Sound volume |
| Hide tips |
| "There is no satisfaction in hanging a man who does not object to it.” - Ann Landers |
| <p align="center"><font face="Cooper Std Black" size="26" color="#ffffff" letterSpacing="0.000000" kerning="1">6</font></p> |
| <p align="center"><font face="Cooper Std Black" size="26" color="#ffffff" letterSpacing="0.000000" kerning="1">6</font></p> |
| <p align="center"><font face="Cooper Std Black" size="26" color="#ffffff" letterSpacing="0.000000" kerning="1">6</font></p> |
| Choose level |
| <p align="left"><font face="Cooper Std Black" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1">00000</font></p> |
| <p align="center"><font face="Cooper Std Black" size="26" color="#ffffff" letterSpacing="0.000000" kerning="1">1</font></p> |
| <p align="center"><font face="Cooper Std Black" size="26" color="#ffffff" letterSpacing="0.000000" kerning="1">1</font></p> |
| <p align="center"><font face="Cooper Std Black" size="26" color="#ffffff" letterSpacing="0.000000" kerning="1">1</font></p> |
| Level |
| Failed ! |
| Level Completed! |
| Shooting accuracy: |
| Current score: |
| Best score: |
| <p align="right"><font face="Cooper Std Black" size="16" color="#ffffff" letterSpacing="0.000000" kerning="1">00000</font></p> |
| <p align="right"><font face="Cooper Std Black" size="16" color="#ffffff" letterSpacing="0.000000" kerning="1">00000</font></p> |
| <p align="right"><font face="Cooper Std Black" size="16" color="#ffffff" letterSpacing="0.000000" kerning="1">00000</font></p> |
| <p align="center"><font face="Cooper Std Black" size="28" color="#ffff33" letterSpacing="0.000000" kerning="1">25</font></p> |
| Arrows used: |
| <p align="center"><font face="Cooper Std Black" size="28" color="#ffff33" letterSpacing="0.000000" kerning="1">25</font></p> |
| <p align="left"><font face="Cooper Std Black" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1">10000</font></p> |
| 10 |
| 30 |
| <p align="center"><font face="Cooper Std Black" size="20" color="#fefdb4" letterSpacing="1.000000" kerning="1">+2000</font></p> |
| 3 |
| <p align="center"><font face="AdlibC" size="20" color="#ffffcc" letterSpacing="0.000000" kerning="1">+100</font></p> |
| To pull the bowstring press the mouse button over the bow and holding the button move the mouse. Release the mouse button to shoot. |
| Try to aim for the rope the man is hanging off. |
| You will get a star if you pass the level without injuring anyone. |
| This bonus throws several arrows in different directions. |
| 10 |
| You have 0 arrows in this level. To pass it you need to get the achievement that gives you an additional arrow for each new level. |
| 5 |
| In this level you have only one arrow. Maybe there is a trick somewhere here? |
| The barrel explodes when it is shot and the explosion wave hits crates and other items. |
| This is a teleporter. If the arrow hits the teleporter, it will be spawned at the place where the teleporter is. |
| If you are having troubles with the controls you can invert them by clicking the Options button in the main menu. |
| The bonus that gives additional arrows will help us. |
| The amount of arrows for each level is limited. You have only one arrow in this level. |
| This bonus creates new arrow. |
| You'll get double score if you save two hangmen with one arrow. |
| If you are so skillful enough to save three hangmen with one shot you'll get triple score for it. |
| Sorry, this game isn't available for public distribution. You can find public version of the game on: |
| <p align="center"><font face="AdlibC" size="20" color="#ffff00" letterSpacing="0.000000" kerning="1">www.notdoppler.com</font></p> |
| If you hit this bonus a new arrow will be shot out of it. |
| <p align="left"><font face="Cooper Std Black" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1">10:00</font></p> |
| This bonus gives you additional score. |
| Click to continue |
| Game paused |
ActionScript [AS3]
Section 1//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { b2internal var m_p:b2Vec2; public function b2CircleShape(_arg1:Number=0){ m_p = new b2Vec2(); super(); m_type = e_circleShape; m_radius = _arg1; } override public function ComputeSubmergedArea(_arg1:b2Vec2, _arg2:Number, _arg3:b2Transform, _arg4:b2Vec2):Number{ var _local9:Number; var _local5:b2Vec2 = b2Math.MulX(_arg3, m_p); var _local6:Number = -((b2Math.Dot(_arg1, _local5) - _arg2)); if (_local6 < (-(m_radius) + Number.MIN_VALUE)){ return (0); }; if (_local6 > m_radius){ _arg4.SetV(_local5); return (((Math.PI * m_radius) * m_radius)); }; var _local7:Number = (m_radius * m_radius); var _local8:Number = (_local6 * _local6); _local9 = ((_local7 * (Math.asin((_local6 / m_radius)) + (Math.PI / 2))) + (_local6 * Math.sqrt((_local7 - _local8)))); var _local10:Number = (((-2 / 3) * Math.pow((_local7 - _local8), 1.5)) / _local9); _arg4.x = (_local5.x + (_arg1.x * _local10)); _arg4.y = (_local5.y + (_arg1.y * _local10)); return (_local9); } override public function TestPoint(_arg1:b2Transform, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22 = _arg1.R; var _local4:Number = (_arg1.position.x + ((_local3.col1.x * m_p.x) + (_local3.col2.x * m_p.y))); var _local5:Number = (_arg1.position.y + ((_local3.col1.y * m_p.x) + (_local3.col2.y * m_p.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } public function GetRadius():Number{ return (m_radius); } override public function Set(_arg1:b2Shape):void{ var _local2:b2CircleShape; super.Set(_arg1); if ((_arg1 is b2CircleShape)){ _local2 = (_arg1 as b2CircleShape); m_p.SetV(_local2.m_p); }; } override public function ComputeMass(_arg1:b2MassData, _arg2:Number):void{ _arg1.mass = (((_arg2 * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_p); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_p.x * m_p.x) + (m_p.y * m_p.y)))); } override public function RayCast(_arg1:b2RayCastOutput, _arg2:b2RayCastInput, _arg3:b2Transform):Boolean{ var _local8:Number; var _local4:b2Mat22 = _arg3.R; var _local5:Number = (_arg3.position.x + ((_local4.col1.x * m_p.x) + (_local4.col2.x * m_p.y))); var _local6:Number = (_arg3.position.y + ((_local4.col1.y * m_p.x) + (_local4.col2.y * m_p.y))); var _local7:Number = (_arg2.p1.x - _local5); _local8 = (_arg2.p1.y - _local6); var _local9:Number = (((_local7 * _local7) + (_local8 * _local8)) - (m_radius * m_radius)); var _local10:Number = (_arg2.p2.x - _arg2.p1.x); var _local11:Number = (_arg2.p2.y - _arg2.p1.y); var _local12:Number = ((_local7 * _local10) + (_local8 * _local11)); var _local13:Number = ((_local10 * _local10) + (_local11 * _local11)); var _local14:Number = ((_local12 * _local12) - (_local13 * _local9)); if ((((_local14 < 0)) || ((_local13 < Number.MIN_VALUE)))){ return (false); }; var _local15:Number = -((_local12 + Math.sqrt(_local14))); if ((((0 <= _local15)) && ((_local15 <= (_arg2.maxFraction * _local13))))){ _local15 = (_local15 / _local13); _arg1.fraction = _local15; _arg1.normal.x = (_local7 + (_local15 * _local10)); _arg1.normal.y = (_local8 + (_local15 * _local11)); _arg1.normal.Normalize(); return (true); }; return (false); } public function SetLocalPosition(_arg1:b2Vec2):void{ m_p.SetV(_arg1); } public function SetRadius(_arg1:Number):void{ m_radius = _arg1; } override public function Copy():b2Shape{ var _local1:b2Shape = new b2CircleShape(); _local1.Set(this); return (_local1); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2Transform):void{ var _local3:b2Mat22 = _arg2.R; var _local4:Number = (_arg2.position.x + ((_local3.col1.x * m_p.x) + (_local3.col2.x * m_p.y))); var _local5:Number = (_arg2.position.y + ((_local3.col1.y * m_p.x) + (_local3.col2.y * m_p.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } public function GetLocalPosition():b2Vec2{ return (m_p); } } }//package Box2D.Collision.ShapesSection 2//b2EdgeShape (Box2D.Collision.Shapes.b2EdgeShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2EdgeShape extends b2Shape { b2internal var m_normal:b2Vec2; b2internal var m_cornerConvex1:Boolean; b2internal var m_cornerConvex2:Boolean; b2internal var m_cornerDir1:b2Vec2; b2internal var m_v1:b2Vec2; b2internal var m_v2:b2Vec2; private var s_supportVec:b2Vec2; b2internal var m_coreV1:b2Vec2; b2internal var m_coreV2:b2Vec2; b2internal var m_cornerDir2:b2Vec2; b2internal var m_nextEdge:b2EdgeShape; b2internal var m_direction:b2Vec2; b2internal var m_prevEdge:b2EdgeShape; b2internal var m_length:Number; public function b2EdgeShape(_arg1:b2Vec2, _arg2:b2Vec2){ s_supportVec = new b2Vec2(); m_v1 = new b2Vec2(); m_v2 = new b2Vec2(); m_coreV1 = new b2Vec2(); m_coreV2 = new b2Vec2(); m_normal = new b2Vec2(); m_direction = new b2Vec2(); m_cornerDir1 = new b2Vec2(); m_cornerDir2 = new b2Vec2(); super(); m_type = e_edgeShape; m_prevEdge = null; m_nextEdge = null; m_v1 = _arg1; m_v2 = _arg2; m_direction.Set((m_v2.x - m_v1.x), (m_v2.y - m_v1.y)); m_length = m_direction.Normalize(); m_normal.Set(m_direction.y, -(m_direction.x)); m_coreV1.Set(((-(b2Settings.b2_toiSlop) * (m_normal.x - m_direction.x)) + m_v1.x), ((-(b2Settings.b2_toiSlop) * (m_normal.y - m_direction.y)) + m_v1.y)); m_coreV2.Set(((-(b2Settings.b2_toiSlop) * (m_normal.x + m_direction.x)) + m_v2.x), ((-(b2Settings.b2_toiSlop) * (m_normal.y + m_direction.y)) + m_v2.y)); m_cornerDir1 = m_normal; m_cornerDir2.Set(-(m_normal.x), -(m_normal.y)); } override public function ComputeSubmergedArea(_arg1:b2Vec2, _arg2:Number, _arg3:b2Transform, _arg4:b2Vec2):Number{ var _local5:b2Vec2 = new b2Vec2((_arg1.x * _arg2), (_arg1.y * _arg2)); var _local6:b2Vec2 = b2Math.MulX(_arg3, m_v1); var _local7:b2Vec2 = b2Math.MulX(_arg3, m_v2); var _local8:Number = (b2Math.Dot(_arg1, _local6) - _arg2); var _local9:Number = (b2Math.Dot(_arg1, _local7) - _arg2); if (_local8 > 0){ if (_local9 > 0){ return (0); }; _local6.x = (((-(_local9) / (_local8 - _local9)) * _local6.x) + ((_local8 / (_local8 - _local9)) * _local7.x)); _local6.y = (((-(_local9) / (_local8 - _local9)) * _local6.y) + ((_local8 / (_local8 - _local9)) * _local7.y)); } else { if (_local9 > 0){ _local7.x = (((-(_local9) / (_local8 - _local9)) * _local6.x) + ((_local8 / (_local8 - _local9)) * _local7.x)); _local7.y = (((-(_local9) / (_local8 - _local9)) * _local6.y) + ((_local8 / (_local8 - _local9)) * _local7.y)); }; }; _arg4.x = (((_local5.x + _local6.x) + _local7.x) / 3); _arg4.y = (((_local5.y + _local6.y) + _local7.y) / 3); return ((0.5 * (((_local6.x - _local5.x) * (_local7.y - _local5.y)) - ((_local6.y - _local5.y) * (_local7.x - _local5.x))))); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2Transform):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local3:b2Mat22 = _arg2.R; _local4 = (_arg2.position.x + ((_local3.col1.x * m_v1.x) + (_local3.col2.x * m_v1.y))); _local5 = (_arg2.position.y + ((_local3.col1.y * m_v1.x) + (_local3.col2.y * m_v1.y))); _local6 = (_arg2.position.x + ((_local3.col1.x * m_v2.x) + (_local3.col2.x * m_v2.y))); _local7 = (_arg2.position.y + ((_local3.col1.y * m_v2.x) + (_local3.col2.y * m_v2.y))); if (_local4 < _local6){ _arg1.lowerBound.x = _local4; _arg1.upperBound.x = _local6; } else { _arg1.lowerBound.x = _local6; _arg1.upperBound.x = _local4; }; if (_local5 < _local7){ _arg1.lowerBound.y = _local5; _arg1.upperBound.y = _local7; } else { _arg1.lowerBound.y = _local7; _arg1.upperBound.y = _local5; }; } public function GetCorner1Vector():b2Vec2{ return (m_cornerDir1); } public function GetCorner2Vector():b2Vec2{ return (m_cornerDir2); } public function GetDirectionVector():b2Vec2{ return (m_direction); } public function GetCoreVertex1():b2Vec2{ return (m_coreV1); } public function GetCoreVertex2():b2Vec2{ return (m_coreV2); } public function GetFirstVertex(_arg1:b2Transform):b2Vec2{ var _local2:b2Mat22 = _arg1.R; return (new b2Vec2((_arg1.position.x + ((_local2.col1.x * m_coreV1.x) + (_local2.col2.x * m_coreV1.y))), (_arg1.position.y + ((_local2.col1.y * m_coreV1.x) + (_local2.col2.y * m_coreV1.y))))); } public function GetNormalVector():b2Vec2{ return (m_normal); } public function GetNextEdge():b2EdgeShape{ return (m_nextEdge); } override public function RayCast(_arg1:b2RayCastOutput, _arg2:b2RayCastInput, _arg3:b2Transform):Boolean{ var _local4:b2Mat22; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local5:Number = (_arg2.p2.x - _arg2.p1.x); var _local6:Number = (_arg2.p2.y - _arg2.p1.y); _local4 = _arg3.R; var _local7:Number = (_arg3.position.x + ((_local4.col1.x * m_v1.x) + (_local4.col2.x * m_v1.y))); var _local8:Number = (_arg3.position.y + ((_local4.col1.y * m_v1.x) + (_local4.col2.y * m_v1.y))); var _local9:Number = ((_arg3.position.y + ((_local4.col1.y * m_v2.x) + (_local4.col2.y * m_v2.y))) - _local8); var _local10:Number = -(((_arg3.position.x + ((_local4.col1.x * m_v2.x) + (_local4.col2.x * m_v2.y))) - _local7)); var _local11:Number = (100 * Number.MIN_VALUE); var _local12:Number = -(((_local5 * _local9) + (_local6 * _local10))); if (_local12 > _local11){ _local13 = (_arg2.p1.x - _local7); _local14 = (_arg2.p1.y - _local8); _local15 = ((_local13 * _local9) + (_local14 * _local10)); if ((((0 <= _local15)) && ((_local15 <= (_arg2.maxFraction * _local12))))){ _local16 = ((-(_local5) * _local14) + (_local6 * _local13)); if (((((-(_local11) * _local12) <= _local16)) && ((_local16 <= (_local12 * (1 + _local11)))))){ _local15 = (_local15 / _local12); _arg1.fraction = _local15; _local17 = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _arg1.normal.x = (_local9 / _local17); _arg1.normal.y = (_local10 / _local17); return (true); }; }; }; return (false); } override public function ComputeMass(_arg1:b2MassData, _arg2:Number):void{ _arg1.mass = 0; _arg1.center.SetV(m_v1); _arg1.I = 0; } public function Corner1IsConvex():Boolean{ return (m_cornerConvex1); } public function Corner2IsConvex():Boolean{ return (m_cornerConvex2); } public function Support(_arg1:b2Transform, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Mat22 = _arg1.R; var _local5:Number = (_arg1.position.x + ((_local4.col1.x * m_coreV1.x) + (_local4.col2.x * m_coreV1.y))); var _local6:Number = (_arg1.position.y + ((_local4.col1.y * m_coreV1.x) + (_local4.col2.y * m_coreV1.y))); var _local7:Number = (_arg1.position.x + ((_local4.col1.x * m_coreV2.x) + (_local4.col2.x * m_coreV2.y))); var _local8:Number = (_arg1.position.y + ((_local4.col1.y * m_coreV2.x) + (_local4.col2.y * m_coreV2.y))); if (((_local5 * _arg2) + (_local6 * _arg3)) > ((_local7 * _arg2) + (_local8 * _arg3))){ s_supportVec.x = _local5; s_supportVec.y = _local6; } else { s_supportVec.x = _local7; s_supportVec.y = _local8; }; return (s_supportVec); } b2internal function SetNextEdge(_arg1:b2EdgeShape, _arg2:b2Vec2, _arg3:b2Vec2, _arg4:Boolean):void{ m_nextEdge = _arg1; m_coreV2 = _arg2; m_cornerDir2 = _arg3; m_cornerConvex2 = _arg4; } public function GetPrevEdge():b2EdgeShape{ return (m_prevEdge); } public function GetVertex1():b2Vec2{ return (m_v1); } public function GetVertex2():b2Vec2{ return (m_v2); } b2internal function SetPrevEdge(_arg1:b2EdgeShape, _arg2:b2Vec2, _arg3:b2Vec2, _arg4:Boolean):void{ m_prevEdge = _arg1; m_coreV1 = _arg2; m_cornerDir1 = _arg3; m_cornerConvex1 = _arg4; } public function GetLength():Number{ return (m_length); } override public function TestPoint(_arg1:b2Transform, _arg2:b2Vec2):Boolean{ return (false); } } }//package Box2D.Collision.ShapesSection 3//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ center = new b2Vec2(0, 0); super(); } } }//package Box2D.Collision.ShapesSection 4//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { b2internal var m_vertexCount:int; b2internal var m_vertices:Array; b2internal var m_centroid:b2Vec2; b2internal var m_normals:Array; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonShape(){ m_type = e_polygonShape; m_centroid = new b2Vec2(); m_vertices = new Array(); m_normals = new Array(); } override public function Set(_arg1:b2Shape):void{ var _local2:b2PolygonShape; var _local3:int; super.Set(_arg1); if ((_arg1 is b2PolygonShape)){ _local2 = (_arg1 as b2PolygonShape); m_centroid.SetV(_local2.m_centroid); m_vertexCount = _local2.m_vertexCount; Reserve(m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3].SetV(_local2.m_vertices[_local3]); m_normals[_local3].SetV(_local2.m_normals[_local3]); _local3++; }; }; } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2Transform):void{ var _local10:Number; var _local11:Number; var _local3:b2Mat22 = _arg2.R; var _local4:b2Vec2 = m_vertices[0]; var _local5:Number = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); var _local6:Number = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); var _local7:Number = _local5; var _local8:Number = _local6; var _local9 = 1; while (_local9 < m_vertexCount) { _local4 = m_vertices[_local9]; _local10 = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); _local11 = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _local5 = ((_local5 < _local10)) ? _local5 : _local10; _local6 = ((_local6 < _local11)) ? _local6 : _local11; _local7 = ((_local7 > _local10)) ? _local7 : _local10; _local8 = ((_local8 > _local11)) ? _local8 : _local11; _local9++; }; _arg1.lowerBound.x = (_local5 - m_radius); _arg1.lowerBound.y = (_local6 - m_radius); _arg1.upperBound.x = (_local7 + m_radius); _arg1.upperBound.y = (_local8 + m_radius); } override public function ComputeSubmergedArea(_arg1:b2Vec2, _arg2:Number, _arg3:b2Transform, _arg4:b2Vec2):Number{ var _local12:int; var _local22:b2Vec2; var _local23:Boolean; var _local24:b2MassData; var _local25:Number; var _local5:b2Vec2 = b2Math.MulTMV(_arg3.R, _arg1); var _local6:Number = (_arg2 - b2Math.Dot(_arg1, _arg3.position)); var _local7:Array = new Array(); var _local8:int; var _local9 = -1; var _local10 = -1; var _local11:Boolean; _local12 = 0; while (_local12 < m_vertexCount) { _local7[_local12] = (b2Math.Dot(_local5, m_vertices[_local12]) - _local6); _local23 = (_local7[_local12] < -(Number.MIN_VALUE)); if (_local12 > 0){ if (_local23){ if (!_local11){ _local9 = (_local12 - 1); _local8++; }; } else { if (_local11){ _local10 = (_local12 - 1); _local8++; }; }; }; _local11 = _local23; _local12++; }; switch (_local8){ case 0: if (_local11){ _local24 = new b2MassData(); ComputeMass(_local24, 1); _arg4.SetV(b2Math.MulX(_arg3, _local24.center)); return (_local24.mass); }; return (0); case 1: if (_local9 == -1){ _local9 = (m_vertexCount - 1); } else { _local10 = (m_vertexCount - 1); }; break; }; var _local13:int = ((_local9 + 1) % m_vertexCount); var _local14:int = ((_local10 + 1) % m_vertexCount); var _local15:Number = ((0 - _local7[_local9]) / (_local7[_local13] - _local7[_local9])); var _local16:Number = ((0 - _local7[_local10]) / (_local7[_local14] - _local7[_local10])); var _local17:b2Vec2 = new b2Vec2(((m_vertices[_local9].x * (1 - _local15)) + (m_vertices[_local13].x * _local15)), ((m_vertices[_local9].y * (1 - _local15)) + (m_vertices[_local13].y * _local15))); var _local18:b2Vec2 = new b2Vec2(((m_vertices[_local10].x * (1 - _local16)) + (m_vertices[_local14].x * _local16)), ((m_vertices[_local10].y * (1 - _local16)) + (m_vertices[_local14].y * _local16))); var _local19:Number = 0; var _local20:b2Vec2 = new b2Vec2(); var _local21:b2Vec2 = m_vertices[_local13]; _local12 = _local13; while (_local12 != _local14) { _local12 = ((_local12 + 1) % m_vertexCount); if (_local12 == _local14){ _local22 = _local18; } else { _local22 = m_vertices[_local12]; }; _local25 = (0.5 * (((_local21.x - _local17.x) * (_local22.y - _local17.y)) - ((_local21.y - _local17.y) * (_local22.x - _local17.x)))); _local19 = (_local19 + _local25); _local20.x = (_local20.x + ((_local25 * ((_local17.x + _local21.x) + _local22.x)) / 3)); _local20.y = (_local20.y + ((_local25 * ((_local17.y + _local21.y) + _local22.y)) / 3)); _local21 = _local22; }; _local20.Multiply((1 / _local19)); _arg4.SetV(b2Math.MulX(_arg3, _local20)); return (_local19); } public function GetVertices():Array{ return (m_vertices); } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ m_vertexCount = 4; Reserve(4); m_vertices[0].Set(-(_arg1), -(_arg2)); m_vertices[1].Set(_arg1, -(_arg2)); m_vertices[2].Set(_arg1, _arg2); m_vertices[3].Set(-(_arg1), _arg2); m_normals[0].Set(0, -1); m_normals[1].Set(1, 0); m_normals[2].Set(0, 1); m_normals[3].Set(-1, 0); m_centroid = _arg3; var _local5:b2Transform = new b2Transform(); _local5.position = _arg3; _local5.R.Set(_arg4); var _local6:int; while (_local6 < m_vertexCount) { m_vertices[_local6] = b2Math.MulX(_local5, m_vertices[_local6]); m_normals[_local6] = b2Math.MulMV(_local5.R, m_normals[_local6]); _local6++; }; } override public function Copy():b2Shape{ var _local1:b2PolygonShape = new b2PolygonShape(); _local1.Set(this); return (_local1); } public function SetAsBox(_arg1:Number, _arg2:Number):void{ m_vertexCount = 4; Reserve(4); m_vertices[0].Set(-(_arg1), -(_arg2)); m_vertices[1].Set(_arg1, -(_arg2)); m_vertices[2].Set(_arg1, _arg2); m_vertices[3].Set(-(_arg1), _arg2); m_normals[0].Set(0, -1); m_normals[1].Set(1, 0); m_normals[2].Set(0, 1); m_normals[3].Set(-1, 0); m_centroid.SetZero(); } private function Reserve(_arg1:int):void{ var _local2:int = m_vertices.length; while (_local2 < _arg1) { m_vertices[_local2] = new b2Vec2(); m_normals[_local2] = new b2Vec2(); _local2++; }; } public function GetNormals():Array{ return (m_normals); } public function SetAsArray(_arg1:Array, _arg2:Number=0):void{ var _local4:b2Vec2; var _local3:Array = new Array(); for each (_local4 in _arg1) { _local3.push(_local4); }; SetAsVector(_local3, _arg2); } override public function RayCast(_arg1:b2RayCastOutput, _arg2:b2RayCastInput, _arg3:b2Transform):Boolean{ var _local6:Number; var _local7:Number; var _local8:b2Mat22; var _local9:b2Vec2; var _local18:Number; var _local19:Number; var _local4:Number = 0; var _local5:Number = _arg2.maxFraction; _local6 = (_arg2.p1.x - _arg3.position.x); _local7 = (_arg2.p1.y - _arg3.position.y); _local8 = _arg3.R; var _local10:Number = ((_local6 * _local8.col1.x) + (_local7 * _local8.col1.y)); var _local11:Number = ((_local6 * _local8.col2.x) + (_local7 * _local8.col2.y)); _local6 = (_arg2.p2.x - _arg3.position.x); _local7 = (_arg2.p2.y - _arg3.position.y); _local8 = _arg3.R; var _local12:Number = ((_local6 * _local8.col1.x) + (_local7 * _local8.col1.y)); var _local13:Number = ((_local6 * _local8.col2.x) + (_local7 * _local8.col2.y)); var _local14:Number = (_local12 - _local10); var _local15:Number = (_local13 - _local11); var _local16 = -1; var _local17:int; while (_local17 < m_vertexCount) { _local9 = m_vertices[_local17]; _local6 = (_local9.x - _local10); _local7 = (_local9.y - _local11); _local9 = m_normals[_local17]; _local18 = ((_local9.x * _local6) + (_local9.y * _local7)); _local19 = ((_local9.x * _local14) + (_local9.y * _local15)); if (_local19 == 0){ if (_local18 < 0){ return (false); }; } else { if ((((_local19 < 0)) && ((_local18 < (_local4 * _local19))))){ _local4 = (_local18 / _local19); _local16 = _local17; } else { if ((((_local19 > 0)) && ((_local18 < (_local5 * _local19))))){ _local5 = (_local18 / _local19); }; }; }; if (_local5 < (_local4 - Number.MIN_VALUE)){ return (false); }; _local17++; }; if (_local16 >= 0){ _arg1.fraction = _local4; _local8 = _arg3.R; _local9 = m_normals[_local16]; _arg1.normal.x = ((_local8.col1.x * _local9.x) + (_local8.col2.x * _local9.y)); _arg1.normal.y = ((_local8.col1.y * _local9.x) + (_local8.col2.y * _local9.y)); return (true); }; return (false); } override public function ComputeMass(_arg1:b2MassData, _arg2:Number):void{ var _local11:b2Vec2; var _local12:b2Vec2; 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; if (m_vertexCount == 2){ _arg1.center.x = (0.5 * (m_vertices[0].x + m_vertices[1].x)); _arg1.center.y = (0.5 * (m_vertices[0].y + m_vertices[1].y)); _arg1.mass = 0; _arg1.I = 0; return; }; var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; var _local7:Number = 0; var _local8:Number = 0; var _local9:Number = (1 / 3); var _local10:int; while (_local10 < m_vertexCount) { _local11 = m_vertices[_local10]; _local12 = (((_local10 + 1) < m_vertexCount)) ? m_vertices[int((_local10 + 1))] : m_vertices[0]; _local13 = (_local11.x - _local7); _local14 = (_local11.y - _local8); _local15 = (_local12.x - _local7); _local16 = (_local12.y - _local8); _local17 = ((_local13 * _local16) - (_local14 * _local15)); _local18 = (0.5 * _local17); _local5 = (_local5 + _local18); _local3 = (_local3 + ((_local18 * _local9) * ((_local7 + _local11.x) + _local12.x))); _local4 = (_local4 + ((_local18 * _local9) * ((_local8 + _local11.y) + _local12.y))); _local19 = _local7; _local20 = _local8; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = _local16; _local25 = ((_local9 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local26 = ((_local9 * ((0.25 * (((_local22 * _local22) + (_local24 * _local22)) + (_local24 * _local24))) + ((_local20 * _local22) + (_local20 * _local24)))) + ((0.5 * _local20) * _local20)); _local6 = (_local6 + (_local17 * (_local25 + _local26))); _local10++; }; _arg1.mass = (_arg2 * _local5); _local3 = (_local3 * (1 / _local5)); _local4 = (_local4 * (1 / _local5)); _arg1.center.Set(_local3, _local4); _arg1.I = (_arg2 * _local6); } public function SetAsEdge(_arg1:b2Vec2, _arg2:b2Vec2):void{ m_vertexCount = 2; Reserve(2); m_vertices[0].SetV(_arg1); m_vertices[1].SetV(_arg2); m_centroid.x = (0.5 * (_arg1.x + _arg2.x)); m_centroid.y = (0.5 * (_arg1.y + _arg2.y)); m_normals[0] = b2Math.CrossVF(b2Math.SubtractVV(_arg2, _arg1), 1); m_normals[0].Normalize(); m_normals[1].x = -(m_normals[0].x); m_normals[1].y = -(m_normals[0].y); } public function GetVertexCount():int{ return (m_vertexCount); } private function Validate():Boolean{ return (false); } public function SetAsVector(_arg1:Array, _arg2:Number=0):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:b2Vec2; if (_arg2 == 0){ _arg2 = _arg1.length; }; b2Settings.b2Assert((2 <= _arg2), "2 <= vertexCount"); m_vertexCount = _arg2; Reserve(_arg2); _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3].SetV(_arg1[_local3]); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = b2Math.SubtractVV(m_vertices[_local5], m_vertices[_local4]); b2Settings.b2Assert((_local6.LengthSquared() > Number.MIN_VALUE), "edge.LengthSquared() > Number.MIN_VALUE"); m_normals[_local3].SetV(b2Math.CrossVF(_local6, 1)); m_normals[_local3].Normalize(); _local3++; }; m_centroid = ComputeCentroid(m_vertices, m_vertexCount); } public function GetSupport(_arg1:b2Vec2):int{ var _local5:Number; var _local2:int; var _local3:Number = ((m_vertices[0].x * _arg1.x) + (m_vertices[0].y * _arg1.y)); var _local4 = 1; while (_local4 < m_vertexCount) { _local5 = ((m_vertices[_local4].x * _arg1.x) + (m_vertices[_local4].y * _arg1.y)); if (_local5 > _local3){ _local2 = _local4; _local3 = _local5; }; _local4++; }; return (_local2); } public function GetSupportVertex(_arg1:b2Vec2):b2Vec2{ var _local5:Number; var _local2:int; var _local3:Number = ((m_vertices[0].x * _arg1.x) + (m_vertices[0].y * _arg1.y)); var _local4 = 1; while (_local4 < m_vertexCount) { _local5 = ((m_vertices[_local4].x * _arg1.x) + (m_vertices[_local4].y * _arg1.y)); if (_local5 > _local3){ _local2 = _local4; _local3 = _local5; }; _local4++; }; return (m_vertices[_local2]); } override public function TestPoint(_arg1:b2Transform, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local10:Number; var _local4:b2Mat22 = _arg1.R; var _local5:Number = (_arg2.x - _arg1.position.x); var _local6:Number = (_arg2.y - _arg1.position.y); var _local7:Number = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); var _local8:Number = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); var _local9:int; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } b2internal static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; var _local5:Array = new Array((_arg3 + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; var _local6:Number = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } public static function AsVector(_arg1:Array, _arg2:Number):b2PolygonShape{ var _local3:b2PolygonShape = new (b2PolygonShape); _local3.SetAsVector(_arg1, _arg2); return (_local3); } public static function AsArray(_arg1:Array, _arg2:Number):b2PolygonShape{ var _local3:b2PolygonShape = new (b2PolygonShape); _local3.SetAsArray(_arg1, _arg2); return (_local3); } public static function AsBox(_arg1:Number, _arg2:Number):b2PolygonShape{ var _local3:b2PolygonShape = new (b2PolygonShape); _local3.SetAsBox(_arg1, _arg2); return (_local3); } public static function AsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):b2PolygonShape{ var _local5:b2PolygonShape = new (b2PolygonShape); _local5.SetAsOrientedBox(_arg1, _arg2, _arg3, _arg4); return (_local5); } public static function ComputeCentroid(_arg1:Array, _arg2:uint):b2Vec2{ var _local3:b2Vec2; var _local7:Number; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; _local7 = (1 / 3); var _local8:int; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function AsEdge(_arg1:b2Vec2, _arg2:b2Vec2):b2PolygonShape{ var _local3:b2PolygonShape = new (b2PolygonShape); _local3.SetAsEdge(_arg1, _arg2); return (_local3); } } }//package Box2D.Collision.ShapesSection 5//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Shape { b2internal var m_radius:Number; b2internal var m_type:int; b2internal static const e_polygonShape:int = 1; public static const e_hitCollide:int = 1; public static const e_missCollide:int = 0; b2internal static const e_edgeShape:int = 2; b2internal static const e_shapeTypeCount:int = 3; b2internal static const e_unknownShape:int = -1; b2internal static const e_circleShape:int = 0; public static const e_startsInsideCollide:int = -1; public function b2Shape(){ m_type = e_unknownShape; m_radius = b2Settings.b2_linearSlop; } public function RayCast(_arg1:b2RayCastOutput, _arg2:b2RayCastInput, _arg3:b2Transform):Boolean{ return (false); } public function ComputeSubmergedArea(_arg1:b2Vec2, _arg2:Number, _arg3:b2Transform, _arg4:b2Vec2):Number{ return (0); } public function Set(_arg1:b2Shape):void{ m_radius = _arg1.m_radius; } public function ComputeMass(_arg1:b2MassData, _arg2:Number):void{ } public function GetType():int{ return (m_type); } public function Copy():b2Shape{ return (null); } public function ComputeAABB(_arg1:b2AABB, _arg2:b2Transform):void{ } public function TestPoint(_arg1:b2Transform, _arg2:b2Vec2):Boolean{ return (false); } public static function TestOverlap(_arg1:b2Shape, _arg2:b2Transform, _arg3:b2Shape, _arg4:b2Transform):Boolean{ var _local5:b2DistanceInput = new b2DistanceInput(); _local5.proxyA = new b2DistanceProxy(); _local5.proxyA.Set(_arg1); _local5.proxyB = new b2DistanceProxy(); _local5.proxyB.Set(_arg3); _local5.transformA = _arg2; _local5.transformB = _arg4; _local5.useRadii = true; var _local6:b2SimplexCache = new b2SimplexCache(); _local6.count = 0; var _local7:b2DistanceOutput = new b2DistanceOutput(); b2Distance.Distance(_local7, _local6, _local5); return ((_local7.distance < (10 * Number.MIN_VALUE))); } } }//package Box2D.Collision.ShapesSection 6//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 Contains(_arg1:b2AABB):Boolean{ var _local2:Boolean; _local2 = ((_local2) && ((lowerBound.x <= _arg1.lowerBound.x))); _local2 = ((_local2) && ((lowerBound.y <= _arg1.lowerBound.y))); _local2 = ((_local2) && ((_arg1.upperBound.x <= upperBound.x))); _local2 = ((_local2) && ((_arg1.upperBound.y <= upperBound.y))); return (_local2); } public function RayCast(_arg1:b2RayCastOutput, _arg2:b2RayCastInput):Boolean{ var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local3:Number = -(Number.MAX_VALUE); var _local4:Number = Number.MAX_VALUE; var _local5:Number = _arg2.p1.x; var _local6:Number = _arg2.p1.y; var _local7:Number = (_arg2.p2.x - _arg2.p1.x); var _local8:Number = (_arg2.p2.y - _arg2.p1.y); var _local9:Number = Math.abs(_local7); var _local10:Number = Math.abs(_local8); _local11 = _arg1.normal; if (_local9 < Number.MIN_VALUE){ if ((((_local5 < lowerBound.x)) || ((upperBound.x < _local5)))){ return (false); }; } else { _local12 = (1 / _local7); _local13 = ((lowerBound.x - _local5) * _local12); _local14 = ((upperBound.x - _local5) * _local12); _local16 = -1; if (_local13 > _local14){ _local15 = _local13; _local13 = _local14; _local14 = _local15; _local16 = 1; }; if (_local13 > _local3){ _local11.x = _local16; _local11.y = 0; _local3 = _local13; }; _local4 = Math.min(_local4, _local14); if (_local3 > _local4){ return (false); }; }; if (_local10 < Number.MIN_VALUE){ if ((((_local6 < lowerBound.y)) || ((upperBound.y < _local6)))){ return (false); }; } else { _local12 = (1 / _local8); _local13 = ((lowerBound.y - _local6) * _local12); _local14 = ((upperBound.y - _local6) * _local12); _local16 = -1; if (_local13 > _local14){ _local15 = _local13; _local13 = _local14; _local14 = _local15; _local16 = 1; }; if (_local13 > _local3){ _local11.y = _local16; _local11.x = 0; _local3 = _local13; }; _local4 = Math.min(_local4, _local14); if (_local3 > _local4){ return (false); }; }; _arg1.fraction = _local3; return (true); } public function GetCenter():b2Vec2{ return (new b2Vec2(((lowerBound.x + upperBound.x) / 2), ((lowerBound.y + upperBound.y) / 2))); } public function IsValid():Boolean{ var _local1:Number = (upperBound.x - lowerBound.x); var _local2:Number = (upperBound.y - lowerBound.y); var _local3:Boolean = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } public function TestOverlap(_arg1:b2AABB):Boolean{ var _local2:Number = (_arg1.lowerBound.x - upperBound.x); var _local3:Number = (_arg1.lowerBound.y - upperBound.y); var _local4:Number = (lowerBound.x - _arg1.upperBound.x); var _local5:Number = (lowerBound.y - _arg1.upperBound.y); if ((((_local2 > 0)) || ((_local3 > 0)))){ return (false); }; if ((((_local4 > 0)) || ((_local5 > 0)))){ return (false); }; return (true); } public function GetExtents():b2Vec2{ return (new b2Vec2(((upperBound.x - lowerBound.x) / 2), ((upperBound.y - lowerBound.y) / 2))); } public function Combine(_arg1:b2AABB, _arg2:b2AABB):void{ lowerBound.x = Math.min(_arg1.lowerBound.x, _arg2.lowerBound.x); lowerBound.y = Math.min(_arg1.lowerBound.y, _arg2.lowerBound.y); upperBound.x = Math.max(_arg1.upperBound.x, _arg2.upperBound.x); upperBound.y = Math.max(_arg1.upperBound.y, _arg2.upperBound.y); } public static function Combine(_arg1:b2AABB, _arg2:b2AABB):b2AABB{ var _local3:b2AABB = new (b2AABB); _local3.Combine(_arg1, _arg2); return (_local3); } } }//package Box2D.CollisionSection 7//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); private static var s_v12:b2Vec2 = new b2Vec2(); private static var s_v11:b2Vec2 = new b2Vec2(); private static var s_edgeBO:Array = new Array(1); private static var s_tangent2:b2Vec2 = new b2Vec2(); private static var s_planePoint:b2Vec2 = new b2Vec2(); private static var s_localTangent:b2Vec2 = new b2Vec2(); private static var s_clipPoints1:Array = MakeClipPointVector(); private static var s_clipPoints2:Array = MakeClipPointVector(); private static var s_localNormal:b2Vec2 = new b2Vec2(); private static var s_edgeAO:Array = new Array(1); private static var s_tangent:b2Vec2 = new b2Vec2(); private static var s_normal:b2Vec2 = new b2Vec2(); private static var s_incidentEdge:Array = MakeClipPointVector(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2Transform, _arg3:int, _arg4:b2PolygonShape, _arg5:b2Transform):Number{ var _local11:b2Mat22; var _local12:b2Vec2; var _local25:Number; var _local6:int = _arg1.m_vertexCount; var _local7:Array = _arg1.m_vertices; var _local8:Array = _arg1.m_normals; var _local9:int = _arg4.m_vertexCount; var _local10:Array = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; var _local13:Number = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); var _local14:Number = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; var _local15:Number = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); var _local16:Number = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; var _local20:Number = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local21:Number = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; var _local22:Number = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local23:Number = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); var _local24:Number = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local9:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; var _local8:b2Vec2 = _local5.v; _local9 = (((_arg3.x * _local7.x) + (_arg3.y * _local7.y)) - _arg4); var _local10:Number = (((_arg3.x * _local8.x) + (_arg3.y * _local8.y)) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); _arg1[_temp1].Set(_arg2[0]); }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _arg1[_temp2].Set(_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); } private static function MakeClipPointVector():Array{ var _local1:Array = new Array(2); _local1[0] = new ClipVertex(); _local1[1] = new ClipVertex(); return (_local1); } public static function CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2Transform, _arg4:b2CircleShape, _arg5:b2Transform):void{ var _local6:b2Mat22; var _local7:b2Vec2; _arg1.m_pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_p; var _local8:Number = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local9:Number = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_p; var _local10:Number = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local11:Number = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); var _local12:Number = (_local10 - _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local15:Number = (_arg2.m_radius + _arg4.m_radius); if (_local14 > (_local15 * _local15)){ return; }; _arg1.m_type = b2Manifold.e_circles; _arg1.m_localPoint.SetV(_arg2.m_p); _arg1.m_localPlaneNormal.SetZero(); _arg1.m_pointCount = 1; _arg1.m_points[0].m_localPoint.SetV(_arg4.m_p); _arg1.m_points[0].m_id.key = 0; } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2Transform, _arg4:int, _arg5:b2PolygonShape, _arg6:b2Transform):void{ var _local12:b2Mat22; var _local13:b2Vec2; var _local20:ClipVertex; var _local23:Number; var _local7:int = _arg2.m_vertexCount; var _local8:Array = _arg2.m_normals; var _local9:int = _arg5.m_vertexCount; var _local10:Array = _arg5.m_vertices; var _local11:Array = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; var _local14:Number = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); var _local15:Number = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; var _local16:Number = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; var _local21:int = _local17; var _local22:int = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2Transform, _arg4:b2CircleShape, _arg5:b2Transform):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local17:Number; var _local31:Number; var _local32:Number; var _local33:Number; _arg1.m_pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_p; var _local13:Number = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); var _local14:Number = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; var _local15:Number = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); var _local16:Number = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); var _local18:int; var _local19:Number = -(Number.MAX_VALUE); var _local20:Number = (_arg2.m_radius + _arg4.m_radius); var _local21:int = _arg2.m_vertexCount; var _local22:Array = _arg2.m_vertices; var _local23:Array = _arg2.m_normals; var _local24:int; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local31 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local31 > _local20){ return; }; if (_local31 > _local19){ _local19 = _local31; _local18 = _local24; }; _local24++; }; var _local25:int = _local18; var _local26:int = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; var _local27:b2Vec2 = _local22[_local25]; var _local28:b2Vec2 = _local22[_local26]; if (_local19 < Number.MIN_VALUE){ _arg1.m_pointCount = 1; _arg1.m_type = b2Manifold.e_faceA; _arg1.m_localPlaneNormal.SetV(_local23[_local18]); _arg1.m_localPoint.x = (0.5 * (_local27.x + _local28.x)); _arg1.m_localPoint.y = (0.5 * (_local27.y + _local28.y)); _arg1.m_points[0].m_localPoint.SetV(_arg4.m_p); _arg1.m_points[0].m_id.key = 0; return; }; var _local29:Number = (((_local15 - _local27.x) * (_local28.x - _local27.x)) + ((_local16 - _local27.y) * (_local28.y - _local27.y))); var _local30:Number = (((_local15 - _local28.x) * (_local27.x - _local28.x)) + ((_local16 - _local28.y) * (_local27.y - _local28.y))); if (_local29 <= 0){ if ((((_local15 - _local27.x) * (_local15 - _local27.x)) + ((_local16 - _local27.y) * (_local16 - _local27.y))) > (_local20 * _local20)){ return; }; _arg1.m_pointCount = 1; _arg1.m_type = b2Manifold.e_faceA; _arg1.m_localPlaneNormal.x = (_local15 - _local27.x); _arg1.m_localPlaneNormal.y = (_local16 - _local27.y); _arg1.m_localPlaneNormal.Normalize(); _arg1.m_localPoint.SetV(_local27); _arg1.m_points[0].m_localPoint.SetV(_arg4.m_p); _arg1.m_points[0].m_id.key = 0; } else { if (_local30 <= 0){ if ((((_local15 - _local28.x) * (_local15 - _local28.x)) + ((_local16 - _local28.y) * (_local16 - _local28.y))) > (_local20 * _local20)){ return; }; _arg1.m_pointCount = 1; _arg1.m_type = b2Manifold.e_faceA; _arg1.m_localPlaneNormal.x = (_local15 - _local28.x); _arg1.m_localPlaneNormal.y = (_local16 - _local28.y); _arg1.m_localPlaneNormal.Normalize(); _arg1.m_localPoint.SetV(_local28); _arg1.m_points[0].m_localPoint.SetV(_arg4.m_p); _arg1.m_points[0].m_id.key = 0; } else { _local32 = (0.5 * (_local27.x + _local28.x)); _local33 = (0.5 * (_local27.y + _local28.y)); _local19 = (((_local15 - _local32) * _local23[_local25].x) + ((_local16 - _local33) * _local23[_local25].y)); if (_local19 > _local20){ return; }; _arg1.m_pointCount = 1; _arg1.m_type = b2Manifold.e_faceA; _arg1.m_localPlaneNormal.x = _local23[_local25].x; _arg1.m_localPlaneNormal.y = _local23[_local25].y; _arg1.m_localPlaneNormal.Normalize(); _arg1.m_localPoint.Set(_local32, _local33); _arg1.m_points[0].m_localPoint.SetV(_arg4.m_p); _arg1.m_points[0].m_id.key = 0; }; }; } public static function CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2Transform, _arg4:b2PolygonShape, _arg5:b2Transform):void{ var _local6:ClipVertex; var _local12:b2PolygonShape; var _local13:b2PolygonShape; var _local14:b2Transform; var _local15:b2Transform; var _local16:int; var _local17:uint; var _local20:b2Mat22; var _local25:b2Vec2; var _local39:int; var _local42:Number; var _local43:b2ManifoldPoint; var _local44:Number; var _local45:Number; _arg1.m_pointCount = 0; var _local7:Number = (_arg2.m_radius + _arg4.m_radius); var _local8:int; s_edgeAO[0] = _local8; var _local9:Number = FindMaxSeparation(s_edgeAO, _arg2, _arg3, _arg4, _arg5); _local8 = s_edgeAO[0]; if (_local9 > _local7){ return; }; var _local10:int; s_edgeBO[0] = _local10; var _local11:Number = FindMaxSeparation(s_edgeBO, _arg4, _arg5, _arg2, _arg3); _local10 = s_edgeBO[0]; if (_local11 > _local7){ return; }; var _local18:Number = 0.98; var _local19:Number = 0.001; if (_local11 > ((_local18 * _local9) + _local19)){ _local12 = _arg4; _local13 = _arg2; _local14 = _arg5; _local15 = _arg3; _local16 = _local10; _arg1.m_type = b2Manifold.e_faceB; _local17 = 1; } else { _local12 = _arg2; _local13 = _arg4; _local14 = _arg3; _local15 = _arg5; _local16 = _local8; _arg1.m_type = b2Manifold.e_faceA; _local17 = 0; }; var _local21:Array = s_incidentEdge; FindIncidentEdge(_local21, _local12, _local14, _local16, _local13, _local15); var _local22:int = _local12.m_vertexCount; var _local23:Array = _local12.m_vertices; var _local24:b2Vec2 = _local23[_local16]; if ((_local16 + 1) < _local22){ _local25 = _local23[int((_local16 + 1))]; } else { _local25 = _local23[0]; }; var _local26:b2Vec2 = s_localTangent; _local26.Set((_local25.x - _local24.x), (_local25.y - _local24.y)); _local26.Normalize(); var _local27:b2Vec2 = s_localNormal; _local27.x = _local26.y; _local27.y = -(_local26.x); var _local28:b2Vec2 = s_planePoint; _local28.Set((0.5 * (_local24.x + _local25.x)), (0.5 * (_local24.y + _local25.y))); var _local29:b2Vec2 = s_tangent; _local20 = _local14.R; _local29.x = ((_local20.col1.x * _local26.x) + (_local20.col2.x * _local26.y)); _local29.y = ((_local20.col1.y * _local26.x) + (_local20.col2.y * _local26.y)); var _local30:b2Vec2 = s_tangent2; _local30.x = -(_local29.x); _local30.y = -(_local29.y); var _local31:b2Vec2 = s_normal; _local31.x = _local29.y; _local31.y = -(_local29.x); var _local32:b2Vec2 = s_v11; var _local33:b2Vec2 = s_v12; _local32.x = (_local14.position.x + ((_local20.col1.x * _local24.x) + (_local20.col2.x * _local24.y))); _local32.y = (_local14.position.y + ((_local20.col1.y * _local24.x) + (_local20.col2.y * _local24.y))); _local33.x = (_local14.position.x + ((_local20.col1.x * _local25.x) + (_local20.col2.x * _local25.y))); _local33.y = (_local14.position.y + ((_local20.col1.y * _local25.x) + (_local20.col2.y * _local25.y))); var _local34:Number = ((_local31.x * _local32.x) + (_local31.y * _local32.y)); var _local35:Number = (((-(_local29.x) * _local32.x) - (_local29.y * _local32.y)) + _local7); var _local36:Number = (((_local29.x * _local33.x) + (_local29.y * _local33.y)) + _local7); var _local37:Array = s_clipPoints1; var _local38:Array = s_clipPoints2; _local39 = ClipSegmentToLine(_local37, _local21, _local30, _local35); if (_local39 < 2){ return; }; _local39 = ClipSegmentToLine(_local38, _local37, _local29, _local36); if (_local39 < 2){ return; }; _arg1.m_localPlaneNormal.SetV(_local27); _arg1.m_localPoint.SetV(_local28); var _local40:int; var _local41:int; while (_local41 < b2Settings.b2_maxManifoldPoints) { _local6 = _local38[_local41]; _local42 = (((_local31.x * _local6.v.x) + (_local31.y * _local6.v.y)) - _local34); if (_local42 <= _local7){ _local43 = _arg1.m_points[_local40]; _local20 = _local15.R; _local44 = (_local6.v.x - _local15.position.x); _local45 = (_local6.v.y - _local15.position.y); _local43.m_localPoint.x = ((_local44 * _local20.col1.x) + (_local45 * _local20.col1.y)); _local43.m_localPoint.y = ((_local44 * _local20.col2.x) + (_local45 * _local20.col2.y)); _local43.m_id.Set(_local6.id); _local43.m_id.features.flip = _local17; _local40++; }; _local41++; }; _arg1.m_pointCount = _local40; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2Transform, _arg4:b2PolygonShape, _arg5:b2Transform):Number{ var _local8:b2Vec2; var _local9:b2Mat22; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; var _local6:int = _arg2.m_vertexCount; var _local7:Array = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; var _local10:Number = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); var _local11:Number = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); var _local12:Number = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); var _local13:Number = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); var _local14:int; var _local15:Number = -(Number.MAX_VALUE); var _local16:int; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; var _local17:Number = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); var _local18:int = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); var _local19:Number = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); var _local20:int = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; var _local21:Number = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); 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 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2 = _arg2.lowerBound; var _local4:b2Vec2 = _arg1.upperBound; var _local5:Number = (_local3.x - _local4.x); var _local6:Number = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; var _local7:Number = (_local3.x - _local4.x); var _local8:Number = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } } }//package Box2D.CollisionSection 8//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { import Box2D.Common.*; public class b2ContactID { b2internal var _key:uint; public var features:Features; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID = new b2ContactID(); _local1.key = key; return (_local1); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } public function get key():uint{ return (_key); } } }//package Box2D.CollisionSection 9//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2ContactPoint { public var friction:Number; public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var restitution:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public var velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.CollisionSection 10//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Distance { private static var b2_gjkIters:int; private static var b2_gjkMaxIters:int; private static var s_saveB:Array = new Array(3); private static var s_simplex:b2Simplex = new b2Simplex(); private static var b2_gjkCalls:int; private static var s_saveA:Array = new Array(3); public static function Distance(_arg1:b2DistanceOutput, _arg2:b2SimplexCache, _arg3:b2DistanceInput):void{ var _local17:int; var _local18:b2Vec2; var _local20:b2Vec2; var _local21:b2SimplexVertex; var _local22:Boolean; var _local23:Number; var _local24:Number; var _local25:b2Vec2; b2_gjkCalls++; var _local4:b2DistanceProxy = _arg3.proxyA; var _local5:b2DistanceProxy = _arg3.proxyB; var _local6:b2Transform = _arg3.transformA; var _local7:b2Transform = _arg3.transformB; var _local8:b2Simplex = s_simplex; _local8.ReadCache(_arg2, _local4, _local6, _local5, _local7); var _local9:Array = _local8.m_vertices; var _local10 = 20; var _local11:Array = s_saveA; var _local12:Array = s_saveB; var _local13:int; var _local14:b2Vec2 = _local8.GetClosestPoint(); var _local15:Number = _local14.LengthSquared(); var _local16:Number = _local15; var _local19:int; while (_local19 < _local10) { _local13 = _local8.m_count; _local17 = 0; while (_local17 < _local13) { _local11[_local17] = _local9[_local17].indexA; _local12[_local17] = _local9[_local17].indexB; _local17++; }; switch (_local8.m_count){ case 1: break; case 2: _local8.Solve2(); break; case 3: _local8.Solve3(); break; default: b2Settings.b2Assert(false); }; if (_local8.m_count == 3){ break; }; _local18 = _local8.GetClosestPoint(); _local16 = _local18.LengthSquared(); if (_local16 > _local15){ }; _local15 = _local16; _local20 = _local8.GetSearchDirection(); if (_local20.LengthSquared() < (Number.MIN_VALUE * Number.MIN_VALUE)){ break; }; _local21 = _local9[_local8.m_count]; _local21.indexA = _local4.GetSupport(b2Math.MulTMV(_local6.R, _local20.GetNegative())); _local21.wA = b2Math.MulX(_local6, _local4.GetVertex(_local21.indexA)); _local21.indexB = _local5.GetSupport(b2Math.MulTMV(_local7.R, _local20)); _local21.wB = b2Math.MulX(_local7, _local5.GetVertex(_local21.indexB)); _local21.w = b2Math.SubtractVV(_local21.wB, _local21.wA); _local19++; b2_gjkIters++; _local22 = false; _local17 = 0; while (_local17 < _local13) { if ((((_local21.indexA == _local11[_local17])) && ((_local21.indexB == _local12[_local17])))){ _local22 = true; break; }; _local17++; }; if (_local22){ break; }; _local8.m_count++; }; b2_gjkMaxIters = b2Math.Max(b2_gjkMaxIters, _local19); _local8.GetWitnessPoints(_arg1.pointA, _arg1.pointB); _arg1.distance = b2Math.SubtractVV(_arg1.pointA, _arg1.pointB).Length(); _arg1.iterations = _local19; _local8.WriteCache(_arg2); if (_arg3.useRadii){ _local23 = _local4.m_radius; _local24 = _local5.m_radius; if ((((_arg1.distance > (_local23 + _local24))) && ((_arg1.distance > Number.MIN_VALUE)))){ _arg1.distance = (_arg1.distance - (_local23 + _local24)); _local25 = b2Math.SubtractVV(_arg1.pointB, _arg1.pointA); _local25.Normalize(); _arg1.pointA.x = (_arg1.pointA.x + (_local23 * _local25.x)); _arg1.pointA.y = (_arg1.pointA.y + (_local23 * _local25.y)); _arg1.pointB.x = (_arg1.pointB.x - (_local24 * _local25.x)); _arg1.pointB.y = (_arg1.pointB.y - (_local24 * _local25.y)); } else { _local18 = new b2Vec2(); _local18.x = (0.5 * (_arg1.pointA.x + _arg1.pointB.x)); _local18.y = (0.5 * (_arg1.pointA.y + _arg1.pointB.y)); _arg1.pointA.x = (_arg1.pointB.x = _local18.x); _arg1.pointA.y = (_arg1.pointB.y = _local18.y); _arg1.distance = 0; }; }; } } }//package Box2D.CollisionSection 11//b2DistanceInput (Box2D.Collision.b2DistanceInput) package Box2D.Collision { import Box2D.Common.Math.*; public class b2DistanceInput { public var proxyA:b2DistanceProxy; public var proxyB:b2DistanceProxy; public var transformA:b2Transform; public var transformB:b2Transform; public var useRadii:Boolean; } }//package Box2D.CollisionSection 12//b2DistanceOutput (Box2D.Collision.b2DistanceOutput) package Box2D.Collision { import Box2D.Common.Math.*; public class b2DistanceOutput { public var pointA:b2Vec2; public var distance:Number; public var iterations:int; public var pointB:b2Vec2; public function b2DistanceOutput(){ pointA = new b2Vec2(); pointB = new b2Vec2(); super(); } } }//package Box2D.CollisionSection 13//b2DistanceProxy (Box2D.Collision.b2DistanceProxy) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2DistanceProxy { public var m_radius:Number; public var m_vertices:Array; public var m_count:int; public function GetVertex(_arg1:int):b2Vec2{ b2Settings.b2Assert((((0 <= _arg1)) && ((_arg1 < m_count)))); return (m_vertices[_arg1]); } public function Set(_arg1:b2Shape):void{ var _local2:b2CircleShape; var _local3:b2PolygonShape; switch (_arg1.GetType()){ case b2Shape.e_circleShape: _local2 = (_arg1 as b2CircleShape); m_vertices = new Array(1, true); m_vertices[0] = _local2.m_p; m_count = 1; m_radius = _local2.m_radius; break; case b2Shape.e_polygonShape: _local3 = (_arg1 as b2PolygonShape); m_vertices = _local3.m_vertices; m_count = _local3.m_vertexCount; m_radius = _local3.m_radius; break; default: b2Settings.b2Assert(false); }; } public function GetSupportVertex(_arg1:b2Vec2):b2Vec2{ var _local5:Number; var _local2:int; var _local3:Number = ((m_vertices[0].x * _arg1.x) + (m_vertices[0].y * _arg1.y)); var _local4 = 1; while (_local4 < m_count) { _local5 = ((m_vertices[_local4].x * _arg1.x) + (m_vertices[_local4].y * _arg1.y)); if (_local5 > _local3){ _local2 = _local4; _local3 = _local5; }; _local4++; }; return (m_vertices[_local2]); } public function GetVertexCount():int{ return (m_count); } public function GetSupport(_arg1:b2Vec2):Number{ var _local5:Number; var _local2:int; var _local3:Number = ((m_vertices[0].x * _arg1.x) + (m_vertices[0].y * _arg1.y)); var _local4 = 1; while (_local4 < m_count) { _local5 = ((m_vertices[_local4].x * _arg1.x) + (m_vertices[_local4].y * _arg1.y)); if (_local5 > _local3){ _local2 = _local4; _local3 = _local5; }; _local4++; }; return (_local2); } } }//package Box2D.CollisionSection 14//b2DynamicTree (Box2D.Collision.b2DynamicTree) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2DynamicTree { private var m_insertionCount:int; private var m_root:b2DynamicTreeNode; private var m_freeList:b2DynamicTreeNode; private var m_path:uint; public function b2DynamicTree(){ m_root = null; m_freeList = null; m_path = 0; m_insertionCount = 0; } private function RemoveLeaf(_arg1:b2DynamicTreeNode):void{ var _local4:b2DynamicTreeNode; var _local5:b2AABB; if (_arg1 == m_root){ m_root = null; return; }; var _local2:b2DynamicTreeNode = _arg1.parent; var _local3:b2DynamicTreeNode = _local2.parent; if (_local2.child1 == _arg1){ _local4 = _local2.child2; } else { _local4 = _local2.child1; }; if (_local3){ if (_local3.child1 == _local2){ _local3.child1 = _local4; } else { _local3.child2 = _local4; }; _local4.parent = _local3; FreeNode(_local2); while (_local3) { _local5 = _local3.aabb; _local3.aabb = b2AABB.Combine(_local3.child1.aabb, _local3.child2.aabb); if (_local5.Contains(_local3.aabb)){ break; }; _local3 = _local3.parent; }; } else { m_root = _local4; _local4.parent = null; FreeNode(_local2); }; } public function GetFatAABB(_arg1:b2DynamicTreeNode):b2AABB{ return (_arg1.aabb); } public function Query(_arg1:Function, _arg2:b2AABB):void{ var _local5:b2DynamicTreeNode; var _local6:Boolean; if (m_root == null){ return; }; var _local3:Array = new Array(); var _local4:int; var _temp1 = _local4; _local4 = (_local4 + 1); var _local7 = _temp1; _local3[_local7] = m_root; while (_local4 > 0) { --_local4; _local5 = _local3[_local4]; if (_local5.aabb.TestOverlap(_arg2)){ if (_local5.IsLeaf()){ _local6 = _arg1(_local5); if (!_local6){ return; }; } else { var _temp2 = _local4; _local4 = (_local4 + 1); var _local8 = _temp2; _local3[_local8] = _local5.child1; var _temp3 = _local4; _local4 = (_local4 + 1); var _local9 = _temp3; _local3[_local9] = _local5.child2; }; }; }; } public function RayCast(_arg1:Function, _arg2:b2RayCastInput):void{ var _local3:b2Vec2; var _local9:b2AABB; var _local10:Number; var _local11:Number; var _local14:b2DynamicTreeNode; var _local15:b2Vec2; var _local16:b2Vec2; var _local17:Number; var _local18:b2RayCastInput; if (m_root == null){ return; }; _local3 = _arg2.p1; var _local4:b2Vec2 = _arg2.p2; var _local5:b2Vec2 = b2Math.SubtractVV(_local3, _local4); _local5.Normalize(); var _local6:b2Vec2 = b2Math.CrossFV(1, _local5); var _local7:b2Vec2 = b2Math.AbsV(_local6); var _local8:Number = _arg2.maxFraction; _local9 = new b2AABB(); _local10 = (_local3.x + (_local8 * (_local4.x - _local3.x))); _local11 = (_local3.y + (_local8 * (_local4.y - _local3.y))); _local9.lowerBound.x = Math.min(_local3.x, _local10); _local9.lowerBound.y = Math.min(_local3.y, _local11); _local9.upperBound.x = Math.max(_local3.x, _local10); _local9.upperBound.y = Math.max(_local3.y, _local11); var _local12:Array = new Array(); var _local13:int; var _temp1 = _local13; _local13 = (_local13 + 1); var _local19 = _temp1; _local12[_local19] = m_root; while (_local13 > 0) { --_local13; _local14 = _local12[_local13]; if (_local14.aabb.TestOverlap(_local9) == false){ } else { _local15 = _local14.aabb.GetCenter(); _local16 = _local14.aabb.GetExtents(); _local17 = ((Math.abs(((_local6.x * (_local3.x - _local15.x)) + (_local6.y * (_local3.y - _local15.y)))) - (_local7.x * _local16.x)) - (_local7.y * _local16.y)); if (_local17 > 0){ } else { if (_local14.IsLeaf()){ _local18 = new b2RayCastInput(); _local18.p1 = _arg2.p1; _local18.p2 = _arg2.p2; _local18.maxFraction = _arg2.maxFraction; _local8 = _arg1(_local18, _local14); if (_local8 == 0){ return; }; _local10 = (_local3.x + (_local8 * (_local4.x - _local3.x))); _local11 = (_local3.y + (_local8 * (_local4.y - _local3.y))); _local9.lowerBound.x = Math.min(_local3.x, _local10); _local9.lowerBound.y = Math.min(_local3.y, _local11); _local9.upperBound.x = Math.max(_local3.x, _local10); _local9.upperBound.y = Math.max(_local3.y, _local11); } else { var _temp2 = _local13; _local13 = (_local13 + 1); var _local20 = _temp2; _local12[_local20] = _local14.child1; var _temp3 = _local13; _local13 = (_local13 + 1); var _local21 = _temp3; _local12[_local21] = _local14.child2; }; }; }; }; } public function GetUserData(_arg1:b2DynamicTreeNode){ return (_arg1.userData); } private function FreeNode(_arg1:b2DynamicTreeNode):void{ _arg1.parent = m_freeList; m_freeList = _arg1; } public function Rebalance(_arg1:int):void{ var _local3:b2DynamicTreeNode; var _local4:uint; if (m_root == null){ return; }; var _local2:int; while (_local2 < _arg1) { _local3 = m_root; _local4 = 0; while (_local3.IsLeaf() == false) { _local3 = (((m_path >> _local4) & 1)) ? _local3.child2 : _local3.child1; _local4 = ((_local4 + 1) & 31); }; m_path++; RemoveLeaf(_local3); InsertLeaf(_local3); _local2++; }; } public function CreateProxy(_arg1:b2AABB, _arg2):b2DynamicTreeNode{ var _local3:b2DynamicTreeNode; var _local4:Number; var _local5:Number; _local3 = AllocateNode(); _local4 = b2Settings.b2_aabbExtension; _local5 = b2Settings.b2_aabbExtension; _local3.aabb.lowerBound.x = (_arg1.lowerBound.x - _local4); _local3.aabb.lowerBound.y = (_arg1.lowerBound.y - _local5); _local3.aabb.upperBound.x = (_arg1.upperBound.x + _local4); _local3.aabb.upperBound.y = (_arg1.upperBound.y + _local5); _local3.userData = _arg2; InsertLeaf(_local3); return (_local3); } public function DestroyProxy(_arg1:b2DynamicTreeNode):void{ RemoveLeaf(_arg1); FreeNode(_arg1); } private function InsertLeaf(_arg1:b2DynamicTreeNode):void{ var _local6:*; var _local7:*; var _local8:*; var _local9:*; m_insertionCount++; if (m_root == null){ m_root = _arg1; m_root.parent = null; return; }; var _local2:b2Vec2 = _arg1.aabb.GetCenter(); var _local3:b2DynamicTreeNode = m_root; if (_local3.IsLeaf() == false){ do { _local6 = _local3.child1; _local7 = _local3.child2; _local8 = (Math.abs((((_local6.aabb.lowerBound.x + _local6.aabb.upperBound.x) / 2) - _local2.x)) + Math.abs((((_local6.aabb.lowerBound.y + _local6.aabb.upperBound.y) / 2) - _local2.y))); _local9 = (Math.abs((((_local7.aabb.lowerBound.x + _local7.aabb.upperBound.x) / 2) - _local2.x)) + Math.abs((((_local7.aabb.lowerBound.y + _local7.aabb.upperBound.y) / 2) - _local2.y))); if (_local8 < _local9){ _local3 = _local6; } else { _local3 = _local7; }; } while (_local3.IsLeaf() == false); }; var _local4:b2DynamicTreeNode = _local3.parent; var _local5:b2DynamicTreeNode = AllocateNode(); _local5.parent = _local4; _local5.userData = null; _local5.aabb.Combine(_arg1.aabb, _local3.aabb); if (_local4){ if (_local3.parent.child1 == _local3){ _local4.child1 = _local5; } else { _local4.child2 = _local5; }; _local5.child1 = _local3; _local5.child2 = _arg1; _local3.parent = _local5; _arg1.parent = _local5; do { } while (!(_local4.aabb.Contains(_local5.aabb))); } else { _local5.child1 = _local3; _local5.child2 = _arg1; _local3.parent = _local5; _arg1.parent = _local5; m_root = _local5; }; } public function MoveProxy(_arg1:b2DynamicTreeNode, _arg2:b2AABB, _arg3:b2Vec2):Boolean{ var _local4:Number; var _local5:Number; b2Settings.b2Assert(_arg1.IsLeaf()); if (_arg1.aabb.Contains(_arg2)){ return (false); }; RemoveLeaf(_arg1); _local4 = (b2Settings.b2_aabbExtension + (b2Settings.b2_aabbMultiplier * ((_arg3.x > 0)) ? _arg3.x : -(_arg3.x))); _local5 = (b2Settings.b2_aabbExtension + (b2Settings.b2_aabbMultiplier * ((_arg3.y > 0)) ? _arg3.y : -(_arg3.y))); _arg1.aabb.lowerBound.x = (_arg2.lowerBound.x - _local4); _arg1.aabb.lowerBound.y = (_arg2.lowerBound.y - _local5); _arg1.aabb.upperBound.x = (_arg2.upperBound.x + _local4); _arg1.aabb.upperBound.y = (_arg2.upperBound.y + _local5); InsertLeaf(_arg1); return (true); } private function AllocateNode():b2DynamicTreeNode{ var _local1:b2DynamicTreeNode; if (m_freeList){ _local1 = m_freeList; m_freeList = _local1.parent; _local1.parent = null; _local1.child1 = null; _local1.child2 = null; return (_local1); }; return (new b2DynamicTreeNode()); } } }//package Box2D.CollisionSection 15//b2DynamicTreeBroadPhase (Box2D.Collision.b2DynamicTreeBroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; public class b2DynamicTreeBroadPhase implements IBroadPhase { private var m_moveBuffer:Array; private var m_tree:b2DynamicTree; private var m_pairBuffer:Array; private var m_pairCount:int;// = 0 private var m_proxyCount:int; public function b2DynamicTreeBroadPhase(){ m_tree = new b2DynamicTree(); m_moveBuffer = new Array(); m_pairBuffer = new Array(); super(); } public function Validate():void{ } private function UnBufferMove(_arg1:b2DynamicTreeNode):void{ var _local2:int = m_moveBuffer.indexOf(_arg1); m_moveBuffer.splice(_local2, 1); } private function BufferMove(_arg1:b2DynamicTreeNode):void{ m_moveBuffer[m_moveBuffer.length] = _arg1; } private function ComparePairs(_arg1:b2DynamicTreePair, _arg2:b2DynamicTreePair):int{ return (0); } public function GetProxyCount():int{ return (m_proxyCount); } public function GetFatAABB(_arg1):b2AABB{ return (m_tree.GetFatAABB(_arg1)); } public function Query(_arg1:Function, _arg2:b2AABB):void{ m_tree.Query(_arg1, _arg2); } public function Rebalance(_arg1:int):void{ m_tree.Rebalance(_arg1); } public function TestOverlap(_arg1, _arg2):Boolean{ var _local3:b2AABB = m_tree.GetFatAABB(_arg1); var _local4:b2AABB = m_tree.GetFatAABB(_arg2); return (_local3.TestOverlap(_local4)); } public function UpdatePairs(_arg1:Function):void{ var queryProxy:b2DynamicTreeNode; var i:int; var fatAABB:b2AABB; var primaryPair:b2DynamicTreePair; var userDataA:*; var userDataB:*; var pair:b2DynamicTreePair; var callback = _arg1; m_pairCount = 0; for each (queryProxy in m_moveBuffer) { var QueryCallback:Function = function (_arg1:b2DynamicTreeNode):Boolean{ if (_arg1 == queryProxy){ return (true); }; if (m_pairCount == m_pairBuffer.length){ m_pairBuffer[m_pairCount] = new b2DynamicTreePair(); }; var _local2:b2DynamicTreePair = m_pairBuffer[m_pairCount]; _local2.proxyA = ((_arg1 < queryProxy)) ? _arg1 : queryProxy; _local2.proxyB = ((_arg1 >= queryProxy)) ? _arg1 : queryProxy; m_pairCount++; return (true); }; fatAABB = m_tree.GetFatAABB(queryProxy); m_tree.Query(QueryCallback, fatAABB); }; m_moveBuffer.length = 0; i = 0; while (i < m_pairCount) { primaryPair = m_pairBuffer[i]; userDataA = m_tree.GetUserData(primaryPair.proxyA); userDataB = m_tree.GetUserData(primaryPair.proxyB); callback(userDataA, userDataB); i = (i + 1); while (i < m_pairCount) { pair = m_pairBuffer[i]; if (((!((pair.proxyA == primaryPair.proxyA))) || (!((pair.proxyB == primaryPair.proxyB))))){ break; }; i = (i + 1); }; }; } public function RayCast(_arg1:Function, _arg2:b2RayCastInput):void{ m_tree.RayCast(_arg1, _arg2); } public function CreateProxy(_arg1:b2AABB, _arg2){ var _local3:b2DynamicTreeNode = m_tree.CreateProxy(_arg1, _arg2); m_proxyCount++; BufferMove(_local3); return (_local3); } public function GetUserData(_arg1){ return (m_tree.GetUserData(_arg1)); } public function DestroyProxy(_arg1):void{ UnBufferMove(_arg1); m_proxyCount--; m_tree.DestroyProxy(_arg1); } public function MoveProxy(_arg1, _arg2:b2AABB, _arg3:b2Vec2):void{ var _local4:Boolean = m_tree.MoveProxy(_arg1, _arg2, _arg3); if (_local4){ BufferMove(_arg1); }; } } }//package Box2D.CollisionSection 16//b2DynamicTreeNode (Box2D.Collision.b2DynamicTreeNode) package Box2D.Collision { public class b2DynamicTreeNode { public var aabb:b2AABB; public var parent:b2DynamicTreeNode; public var userData; public var child2:b2DynamicTreeNode; public var child1:b2DynamicTreeNode; public function b2DynamicTreeNode(){ aabb = new b2AABB(); super(); } public function IsLeaf():Boolean{ return ((child1 == null)); } } }//package Box2D.CollisionSection 17//b2DynamicTreePair (Box2D.Collision.b2DynamicTreePair) package Box2D.Collision { public class b2DynamicTreePair { public var proxyA:b2DynamicTreeNode; public var proxyB:b2DynamicTreeNode; } }//package Box2D.CollisionSection 18//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var m_pointCount:int;// = 0 public var m_localPlaneNormal:b2Vec2; public var m_type:int; public var m_points:Array; public var m_localPoint:b2Vec2; public static const e_circles:int = 1; public static const e_faceA:int = 2; public static const e_faceB:int = 4; public function b2Manifold(){ m_points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { m_points[_local1] = new b2ManifoldPoint(); _local1++; }; m_localPlaneNormal = new b2Vec2(); m_localPoint = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ m_pointCount = _arg1.m_pointCount; var _local2:int; while (_local2 < b2Settings.b2_maxManifoldPoints) { (m_points[_local2] as b2ManifoldPoint).Set(_arg1.m_points[_local2]); _local2++; }; m_localPlaneNormal.SetV(_arg1.m_localPlaneNormal); m_localPoint.SetV(_arg1.m_localPoint); m_type = _arg1.m_type; } public function Reset():void{ var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { (m_points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; m_localPlaneNormal.SetZero(); m_localPoint.SetZero(); m_type = 0; m_pointCount = 0; } public function Copy():b2Manifold{ var _local1:b2Manifold = new b2Manifold(); _local1.Set(this); return (_local1); } } }//package Box2D.CollisionSection 19//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var m_localPoint:b2Vec2; public var m_tangentImpulse:Number; public var m_normalImpulse:Number; public var m_id:b2ContactID; public function b2ManifoldPoint(){ m_localPoint = new b2Vec2(); m_id = new b2ContactID(); super(); Reset(); } public function Set(_arg1:b2ManifoldPoint):void{ m_localPoint.SetV(_arg1.m_localPoint); m_normalImpulse = _arg1.m_normalImpulse; m_tangentImpulse = _arg1.m_tangentImpulse; m_id.Set(_arg1.m_id); } public function Reset():void{ m_localPoint.SetZero(); m_normalImpulse = 0; m_tangentImpulse = 0; m_id.key = 0; } } }//package Box2D.CollisionSection 20//b2OBB (Box2D.Collision.b2OBB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2OBB { public var R:b2Mat22; public var center:b2Vec2; public var extents:b2Vec2; public function b2OBB(){ R = new b2Mat22(); center = new b2Vec2(); extents = new b2Vec2(); super(); } } }//package Box2D.CollisionSection 21//b2RayCastInput (Box2D.Collision.b2RayCastInput) package Box2D.Collision { import Box2D.Common.Math.*; public class b2RayCastInput { public var p1:b2Vec2; public var maxFraction:Number; public var p2:b2Vec2; public function b2RayCastInput(_arg1:b2Vec2=null, _arg2:b2Vec2=null, _arg3:Number=1){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); if (_arg1){ this.p1.SetV(_arg1); }; if (_arg2){ this.p2.SetV(_arg2); }; this.maxFraction = _arg3; } } }//package Box2D.CollisionSection 22//b2RayCastOutput (Box2D.Collision.b2RayCastOutput) package Box2D.Collision { import Box2D.Common.Math.*; public class b2RayCastOutput { public var fraction:Number; public var normal:b2Vec2; public function b2RayCastOutput(){ normal = new b2Vec2(); super(); } } }//package Box2D.CollisionSection 23//b2SeparationFunction (Box2D.Collision.b2SeparationFunction) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; class b2SeparationFunction { public var m_proxyA:b2DistanceProxy; public var m_proxyB:b2DistanceProxy; public var m_type:int; public var m_axis:b2Vec2; public var m_localPoint:b2Vec2; public static const e_faceA:int = 2; public static const e_faceB:int = 4; public static const e_points:int = 1; function b2SeparationFunction(){ m_localPoint = new b2Vec2(); m_axis = new b2Vec2(); super(); } public function Initialize(_arg1:b2SimplexCache, _arg2:b2DistanceProxy, _arg3:b2Transform, _arg4:b2DistanceProxy, _arg5:b2Transform):void{ var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:b2Mat22; var _local20:b2Vec2; var _local21:Number; var _local22:Number; var _local23:b2Vec2; var _local24:b2Vec2; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:b2Vec2; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; m_proxyA = _arg2; m_proxyB = _arg4; var _local6:int = _arg1.count; b2Settings.b2Assert((((0 < _local6)) && ((_local6 < 3)))); if (_local6 == 1){ m_type = e_points; _local7 = m_proxyA.GetVertex(_arg1.indexA[0]); _local10 = m_proxyB.GetVertex(_arg1.indexB[0]); _local20 = _local7; _local19 = _arg3.R; _local13 = (_arg3.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local14 = (_arg3.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local20 = _local10; _local19 = _arg5.R; _local15 = (_arg5.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local16 = (_arg5.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); m_axis.x = (_local15 - _local13); m_axis.y = (_local16 - _local14); m_axis.Normalize(); } else { if (_arg1.indexB[0] == _arg1.indexB[1]){ m_type = e_faceA; _local8 = m_proxyA.GetVertex(_arg1.indexA[0]); _local9 = m_proxyA.GetVertex(_arg1.indexA[1]); _local10 = m_proxyB.GetVertex(_arg1.indexB[0]); m_localPoint.x = (0.5 * (_local8.x + _local9.x)); m_localPoint.y = (0.5 * (_local8.y + _local9.y)); m_axis = b2Math.CrossVF(b2Math.SubtractVV(_local9, _local8), 1); m_axis.Normalize(); _local20 = m_axis; _local19 = _arg3.R; _local17 = ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y)); _local18 = ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y)); _local20 = m_localPoint; _local19 = _arg3.R; _local13 = (_arg3.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local14 = (_arg3.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local20 = _local10; _local19 = _arg5.R; _local15 = (_arg5.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local16 = (_arg5.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local21 = (((_local15 - _local13) * _local17) + ((_local16 - _local14) * _local18)); if (_local21 < 0){ m_axis.NegativeSelf(); }; } else { if (_arg1.indexA[0] == _arg1.indexA[0]){ m_type = e_faceB; _local11 = m_proxyB.GetVertex(_arg1.indexB[0]); _local12 = m_proxyB.GetVertex(_arg1.indexB[1]); _local7 = m_proxyA.GetVertex(_arg1.indexA[0]); m_localPoint.x = (0.5 * (_local11.x + _local12.x)); m_localPoint.y = (0.5 * (_local11.y + _local12.y)); m_axis = b2Math.CrossVF(b2Math.SubtractVV(_local12, _local11), 1); m_axis.Normalize(); _local20 = m_axis; _local19 = _arg5.R; _local17 = ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y)); _local18 = ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y)); _local20 = m_localPoint; _local19 = _arg5.R; _local15 = (_arg5.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local16 = (_arg5.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local20 = _local7; _local19 = _arg3.R; _local13 = (_arg3.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local14 = (_arg3.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local21 = (((_local13 - _local15) * _local17) + ((_local14 - _local16) * _local18)); if (_local21 < 0){ m_axis.NegativeSelf(); }; } else { _local8 = m_proxyA.GetVertex(_arg1.indexA[0]); _local9 = m_proxyA.GetVertex(_arg1.indexA[1]); _local11 = m_proxyB.GetVertex(_arg1.indexB[0]); _local12 = m_proxyB.GetVertex(_arg1.indexB[1]); _local23 = b2Math.MulX(_arg3, _local7); _local24 = b2Math.MulMV(_arg3.R, b2Math.SubtractVV(_local9, _local8)); _local25 = b2Math.MulX(_arg5, _local10); _local26 = b2Math.MulMV(_arg5.R, b2Math.SubtractVV(_local12, _local11)); _local27 = ((_local24.x * _local24.x) + (_local24.y * _local24.y)); _local28 = ((_local26.x * _local26.x) + (_local26.y * _local26.y)); _local29 = b2Math.SubtractVV(_local26, _local24); _local30 = ((_local24.x * _local29.x) + (_local24.y * _local29.y)); _local31 = ((_local26.x * _local29.x) + (_local26.y * _local29.y)); _local32 = ((_local24.x * _local26.x) + (_local24.y * _local26.y)); _local33 = ((_local27 * _local28) - (_local32 * _local32)); _local21 = 0; if (_local33 != 0){ _local21 = b2Math.Clamp((((_local32 * _local31) - (_local30 * _local28)) / _local33), 0, 1); }; _local34 = (((_local32 * _local21) + _local31) / _local28); if (_local34 < 0){ _local34 = 0; _local21 = b2Math.Clamp(((_local32 - _local30) / _local27), 0, 1); }; _local7 = new b2Vec2(); _local7.x = (_local8.x + (_local21 * (_local9.x - _local8.x))); _local7.y = (_local8.y + (_local21 * (_local9.y - _local8.y))); _local10 = new b2Vec2(); _local10.x = (_local11.x + (_local21 * (_local12.x - _local11.x))); _local10.y = (_local11.y + (_local21 * (_local12.y - _local11.y))); if ((((_local21 == 0)) || ((_local21 == 1)))){ m_type = e_faceB; m_axis = b2Math.CrossVF(b2Math.SubtractVV(_local12, _local11), 1); m_localPoint = _local10; _local20 = m_axis; _local19 = _arg5.R; _local17 = ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y)); _local18 = ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y)); _local20 = m_localPoint; _local19 = _arg5.R; _local15 = (_arg5.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local16 = (_arg5.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local20 = _local7; _local19 = _arg3.R; _local13 = (_arg3.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local14 = (_arg3.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local22 = (((_local13 - _local15) * _local17) + ((_local14 - _local16) * _local18)); if (_local21 < 0){ m_axis.NegativeSelf(); }; } else { m_type = e_faceA; m_axis = b2Math.CrossVF(b2Math.SubtractVV(_local9, _local8), 1); m_localPoint = _local7; _local20 = m_axis; _local19 = _arg3.R; _local17 = ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y)); _local18 = ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y)); _local20 = m_localPoint; _local19 = _arg3.R; _local13 = (_arg3.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local14 = (_arg3.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local20 = _local10; _local19 = _arg5.R; _local15 = (_arg5.position.x + ((_local19.col1.x * _local20.x) + (_local19.col2.x * _local20.y))); _local16 = (_arg5.position.y + ((_local19.col1.y * _local20.x) + (_local19.col2.y * _local20.y))); _local22 = (((_local15 - _local13) * _local17) + ((_local16 - _local14) * _local18)); if (_local21 < 0){ m_axis.NegativeSelf(); }; }; }; }; }; } public function Evaluate(_arg1:b2Transform, _arg2:b2Transform):Number{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2Vec2; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local10:b2Vec2; switch (m_type){ case e_points: _local3 = b2Math.MulTMV(_arg1.R, m_axis); _local4 = b2Math.MulTMV(_arg2.R, m_axis.GetNegative()); _local5 = m_proxyA.GetSupportVertex(_local3); _local6 = m_proxyB.GetSupportVertex(_local4); _local7 = b2Math.MulX(_arg1, _local5); _local8 = b2Math.MulX(_arg2, _local6); _local9 = (((_local8.x - _local7.x) * m_axis.x) + ((_local8.y - _local7.y) * m_axis.y)); return (_local9); case e_faceA: _local10 = b2Math.MulMV(_arg1.R, m_axis); _local7 = b2Math.MulX(_arg1, m_localPoint); _local4 = b2Math.MulTMV(_arg2.R, _local10.GetNegative()); _local6 = m_proxyB.GetSupportVertex(_local4); _local8 = b2Math.MulX(_arg2, _local6); _local9 = (((_local8.x - _local7.x) * _local10.x) + ((_local8.y - _local7.y) * _local10.y)); return (_local9); case e_faceB: _local10 = b2Math.MulMV(_arg2.R, m_axis); _local8 = b2Math.MulX(_arg2, m_localPoint); _local3 = b2Math.MulTMV(_arg1.R, _local10.GetNegative()); _local5 = m_proxyA.GetSupportVertex(_local3); _local7 = b2Math.MulX(_arg1, _local5); _local9 = (((_local7.x - _local8.x) * _local10.x) + ((_local7.y - _local8.y) * _local10.y)); return (_local9); default: b2Settings.b2Assert(false); return (0); }; } } }//package Box2D.CollisionSection 24//b2Simplex (Box2D.Collision.b2Simplex) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; class b2Simplex { public var m_v1:b2SimplexVertex; public var m_v2:b2SimplexVertex; public var m_v3:b2SimplexVertex; public var m_vertices:Array; public var m_count:int; function b2Simplex(){ m_v1 = new b2SimplexVertex(); m_v2 = new b2SimplexVertex(); m_v3 = new b2SimplexVertex(); m_vertices = new Array(3); super(); m_vertices[0] = m_v1; m_vertices[1] = m_v2; m_vertices[2] = m_v3; } public function GetSearchDirection():b2Vec2{ var _local1:b2Vec2; var _local2:Number; switch (m_count){ case 1: return (m_v1.w.GetNegative()); case 2: _local1 = b2Math.SubtractVV(m_v2.w, m_v1.w); _local2 = b2Math.CrossVV(_local1, m_v1.w.GetNegative()); if (_local2 > 0){ return (b2Math.CrossFV(1, _local1)); }; return (b2Math.CrossVF(_local1, 1)); default: b2Settings.b2Assert(false); return (new b2Vec2()); }; } public function WriteCache(_arg1:b2SimplexCache):void{ _arg1.metric = GetMetric(); _arg1.count = uint(m_count); var _local2:Array = m_vertices; var _local3:int; while (_local3 < m_count) { _arg1.indexA[_local3] = uint(_local2[_local3].indexA); _arg1.indexB[_local3] = uint(_local2[_local3].indexB); _local3++; }; } public function GetMetric():Number{ switch (m_count){ case 0: b2Settings.b2Assert(false); return (0); case 1: return (0); case 2: return (b2Math.SubtractVV(m_v1.w, m_v2.w).Length()); case 3: return (b2Math.CrossVV(b2Math.SubtractVV(m_v2.w, m_v1.w), b2Math.SubtractVV(m_v3.w, m_v1.w))); default: b2Settings.b2Assert(false); return (0); }; } public function ReadCache(_arg1:b2SimplexCache, _arg2:b2DistanceProxy, _arg3:b2Transform, _arg4:b2DistanceProxy, _arg5:b2Transform):void{ var _local6:b2Vec2; var _local7:b2Vec2; var _local10:b2SimplexVertex; var _local11:Number; var _local12:Number; b2Settings.b2Assert((((0 <= _arg1.count)) && ((_arg1.count <= 3)))); m_count = _arg1.count; var _local8:Array = m_vertices; var _local9:int; while (_local9 < m_count) { _local10 = _local8[_local9]; _local10.indexA = _arg1.indexA[_local9]; _local10.indexB = _arg1.indexB[_local9]; _local6 = _arg2.GetVertex(_local10.indexA); _local7 = _arg4.GetVertex(_local10.indexB); _local10.wA = b2Math.MulX(_arg3, _local6); _local10.wB = b2Math.MulX(_arg5, _local6); _local10.w = b2Math.SubtractVV(_local10.wB, _local10.wA); _local10.a = 0; _local9++; }; if (m_count > 1){ _local11 = _arg1.metric; _local12 = GetMetric(); if ((((((_local12 < (0.5 * _local11))) || (((2 * _local11) < _local12)))) || ((_local12 < Number.MIN_VALUE)))){ m_count = 0; }; }; if (m_count == 0){ _local10 = _local8[0]; _local10.indexA = 0; _local10.indexB = 0; _local6 = _arg2.GetVertex(0); _local7 = _arg4.GetVertex(0); _local10.wA = b2Math.MulX(_arg3, _local6); _local10.wB = b2Math.MulX(_arg5, _local7); _local10.w = b2Math.SubtractVV(_local10.wB, _local10.wA); m_count = 1; }; } public function GetWitnessPoints(_arg1:b2Vec2, _arg2:b2Vec2):void{ switch (m_count){ case 0: b2Settings.b2Assert(false); break; case 1: _arg1.SetV(m_v1.wA); _arg2.SetV(m_v1.wB); break; case 2: _arg1.x = ((m_v1.a * m_v1.wA.x) + (m_v2.a * m_v2.wA.x)); _arg1.y = ((m_v1.a * m_v1.wA.y) + (m_v2.a * m_v2.wA.y)); _arg2.x = ((m_v1.a * m_v1.wB.x) + (m_v2.a * m_v2.wB.x)); _arg2.y = ((m_v1.a * m_v1.wB.y) + (m_v2.a * m_v2.wB.y)); break; case 3: _arg2.x = (_arg1.x = (((m_v1.a * m_v1.wA.x) + (m_v2.a * m_v2.wA.x)) + (m_v3.a * m_v3.wA.x))); _arg2.y = (_arg1.y = (((m_v1.a * m_v1.wA.y) + (m_v2.a * m_v2.wA.y)) + (m_v3.a * m_v3.wA.y))); break; default: b2Settings.b2Assert(false); break; }; } public function Solve2():void{ var _local1:b2Vec2 = m_v1.w; var _local2:b2Vec2 = m_v2.w; var _local3:b2Vec2 = b2Math.SubtractVV(_local2, _local1); var _local4:Number = -(((_local1.x * _local3.x) + (_local1.y * _local3.y))); if (_local4 <= 0){ m_v1.a = 1; m_count = 1; return; }; var _local5:Number = ((_local2.x * _local3.x) + (_local2.y * _local3.y)); if (_local5 <= 0){ m_v2.a = 1; m_count = 1; m_v1.Set(m_v2); return; }; var _local6:Number = (1 / (_local5 + _local4)); m_v1.a = (_local5 * _local6); m_v2.a = (_local4 * _local6); m_count = 2; } public function Solve3():void{ var _local24:Number; var _local25:Number; var _local26:Number; var _local1:b2Vec2 = m_v1.w; var _local2:b2Vec2 = m_v2.w; var _local3:b2Vec2 = m_v3.w; var _local4:b2Vec2 = b2Math.SubtractVV(_local2, _local1); var _local5:Number = b2Math.Dot(_local1, _local4); var _local6:Number = b2Math.Dot(_local2, _local4); var _local7:Number = _local6; var _local8:Number = -(_local5); var _local9:b2Vec2 = b2Math.SubtractVV(_local3, _local1); var _local10:Number = b2Math.Dot(_local1, _local9); var _local11:Number = b2Math.Dot(_local3, _local9); var _local12:Number = _local11; var _local13:Number = -(_local10); var _local14:b2Vec2 = b2Math.SubtractVV(_local3, _local2); var _local15:Number = b2Math.Dot(_local2, _local14); var _local16:Number = b2Math.Dot(_local3, _local14); var _local17:Number = _local16; var _local18:Number = -(_local15); var _local19:Number = b2Math.CrossVV(_local4, _local9); var _local20:Number = (_local19 * b2Math.CrossVV(_local2, _local3)); var _local21:Number = (_local19 * b2Math.CrossVV(_local3, _local1)); var _local22:Number = (_local19 * b2Math.CrossVV(_local1, _local2)); if ((((_local8 <= 0)) && ((_local13 <= 0)))){ m_v1.a = 1; m_count = 1; return; }; if ((((((_local7 > 0)) && ((_local8 > 0)))) && ((_local22 <= 0)))){ _local24 = (1 / (_local7 + _local8)); m_v1.a = (_local7 * _local24); m_v2.a = (_local8 * _local24); m_count = 2; return; }; if ((((((_local12 > 0)) && ((_local13 > 0)))) && ((_local21 <= 0)))){ _local25 = (1 / (_local12 + _local13)); m_v1.a = (_local12 * _local25); m_v3.a = (_local13 * _local25); m_count = 2; m_v2.Set(m_v3); return; }; if ((((_local7 <= 0)) && ((_local18 <= 0)))){ m_v2.a = 1; m_count = 1; m_v1.Set(m_v2); return; }; if ((((_local12 <= 0)) && ((_local17 <= 0)))){ m_v3.a = 1; m_count = 1; m_v1.Set(m_v3); return; }; if ((((((_local17 > 0)) && ((_local18 > 0)))) && ((_local20 <= 0)))){ _local26 = (1 / (_local17 + _local18)); m_v2.a = (_local17 * _local26); m_v3.a = (_local18 * _local26); m_count = 2; m_v1.Set(m_v3); return; }; var _local23:Number = (1 / ((_local20 + _local21) + _local22)); m_v1.a = (_local20 * _local23); m_v2.a = (_local21 * _local23); m_v3.a = (_local22 * _local23); m_count = 3; } public function GetClosestPoint():b2Vec2{ switch (m_count){ case 0: b2Settings.b2Assert(false); return (new b2Vec2()); case 1: return (m_v1.w); case 2: return (new b2Vec2(((m_v1.a * m_v1.w.x) + (m_v2.a * m_v2.w.x)), ((m_v1.a * m_v1.w.y) + (m_v2.a * m_v2.w.y)))); default: b2Settings.b2Assert(false); return (new b2Vec2()); }; } } }//package Box2D.CollisionSection 25//b2SimplexCache (Box2D.Collision.b2SimplexCache) package Box2D.Collision { public class b2SimplexCache { public var metric:Number; public var count:uint; public var indexB:Array; public var indexA:Array; public function b2SimplexCache(){ indexA = new Array(3); indexB = new Array(3); super(); } } }//package Box2D.CollisionSection 26//b2SimplexVertex (Box2D.Collision.b2SimplexVertex) package Box2D.Collision { import Box2D.Common.Math.*; class b2SimplexVertex { public var a:Number; public var wA:b2Vec2; public var wB:b2Vec2; public var indexA:int; public var indexB:int; public var w:b2Vec2; public function Set(_arg1:b2SimplexVertex):void{ wA.SetV(_arg1.wA); wB.SetV(_arg1.wB); w.SetV(_arg1.w); a = _arg1.a; indexA = _arg1.indexA; indexB = _arg1.indexB; } } }//package Box2D.CollisionSection 27//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2TimeOfImpact { private static var b2_toiCalls:int = 0; private static var s_xfA:b2Transform = new b2Transform(); private static var s_distanceInput:b2DistanceInput = new b2DistanceInput(); private static var s_xfB:b2Transform = new b2Transform(); private static var s_distanceOutput:b2DistanceOutput = new b2DistanceOutput(); private static var b2_toiMaxRootIters:int = 0; private static var s_cache:b2SimplexCache = new b2SimplexCache(); private static var b2_toiRootIters:int = 0; private static var b2_toiIters:int = 0; private static var b2_toiMaxIters:int = 0; private static var s_fcn:b2SeparationFunction = new b2SeparationFunction(); public static function TimeOfImpact(_arg1:b2TOIInput):Number{ var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:Number; var _local20:Number; b2_toiCalls++; var _local2:b2DistanceProxy = _arg1.proxyA; var _local3:b2DistanceProxy = _arg1.proxyB; var _local4:b2Sweep = _arg1.sweepA; var _local5:b2Sweep = _arg1.sweepB; b2Settings.b2Assert((_local4.t0 == _local5.t0)); b2Settings.b2Assert(((1 - _local4.t0) > Number.MIN_VALUE)); var _local6:Number = (_local2.m_radius + _local3.m_radius); var _local7:Number = _arg1.tolerance; var _local8:Number = 0; var _local9 = 1000; var _local10:int; var _local11:Number = 0; s_cache.count = 0; s_distanceInput.useRadii = false; while (true) { _local4.GetTransform(s_xfA, _local8); _local5.GetTransform(s_xfB, _local8); s_distanceInput.proxyA = _local2; s_distanceInput.proxyB = _local3; s_distanceInput.transformA = s_xfA; s_distanceInput.transformB = s_xfB; b2Distance.Distance(s_distanceOutput, s_cache, s_distanceInput); if (s_distanceOutput.distance <= 0){ _local8 = 1; break; }; s_fcn.Initialize(s_cache, _local2, s_xfA, _local3, s_xfB); _local12 = s_fcn.Evaluate(s_xfA, s_xfB); if (_local12 <= 0){ _local8 = 1; break; }; if (_local10 == 0){ if (_local12 > _local6){ _local11 = b2Math.Max((_local6 - _local7), (0.75 * _local6)); } else { _local11 = b2Math.Max((_local12 - _local7), (0.02 * _local6)); }; }; if ((_local12 - _local11) < (0.5 * _local7)){ if (_local10 == 0){ _local8 = 1; break; }; break; }; _local13 = _local8; _local14 = _local8; _local15 = 1; _local16 = _local12; _local4.GetTransform(s_xfA, _local15); _local5.GetTransform(s_xfB, _local15); _local17 = s_fcn.Evaluate(s_xfA, s_xfB); if (_local17 >= _local11){ _local8 = 1; break; }; _local18 = 0; while (true) { if ((_local18 & 1)){ _local19 = (_local14 + (((_local11 - _local16) * (_local15 - _local14)) / (_local17 - _local16))); } else { _local19 = (0.5 * (_local14 + _local15)); }; _local4.GetTransform(s_xfA, _local19); _local5.GetTransform(s_xfB, _local19); _local20 = s_fcn.Evaluate(s_xfA, s_xfB); if (b2Math.Abs((_local20 - _local11)) < (0.025 * _local7)){ _local13 = _local19; break; }; if (_local20 > _local11){ _local14 = _local19; _local16 = _local20; } else { _local15 = _local19; _local17 = _local20; }; _local18++; b2_toiRootIters++; if (_local18 == 50){ break; }; }; b2_toiMaxRootIters = b2Math.Max(b2_toiMaxRootIters, _local18); if (_local13 < ((1 + (100 * Number.MIN_VALUE)) * _local8)){ break; }; _local8 = _local13; _local10++; b2_toiIters++; if (_local10 == _local9){ break; }; }; b2_toiMaxIters = b2Math.Max(b2_toiMaxIters, _local10); return (_local8); } } }//package Box2D.CollisionSection 28//b2TOIInput (Box2D.Collision.b2TOIInput) package Box2D.Collision { import Box2D.Common.Math.*; public class b2TOIInput { public var proxyA:b2DistanceProxy; public var proxyB:b2DistanceProxy; public var sweepA:b2Sweep; public var sweepB:b2Sweep; public var tolerance:Number; public function b2TOIInput(){ proxyA = new b2DistanceProxy(); proxyB = new b2DistanceProxy(); sweepA = new b2Sweep(); sweepB = new b2Sweep(); super(); } } }//package Box2D.CollisionSection 29//b2WorldManifold (Box2D.Collision.b2WorldManifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2WorldManifold { public var m_normal:b2Vec2; public var m_points:Array; public function b2WorldManifold(){ m_normal = new b2Vec2(); super(); m_points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { m_points[_local1] = new b2Vec2(); _local1++; }; } public function Initialize(_arg1:b2Manifold, _arg2:b2Transform, _arg3:Number, _arg4:b2Transform, _arg5:Number):void{ var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; 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; if (_arg1.m_pointCount == 0){ return; }; switch (_arg1.m_type){ case b2Manifold.e_circles: _local8 = _arg2.R; _local7 = _arg1.m_localPoint; _local15 = ((_arg2.position.x + (_local8.col1.x * _local7.x)) + (_local8.col2.x * _local7.y)); _local16 = ((_arg2.position.y + (_local8.col1.y * _local7.x)) + (_local8.col2.y * _local7.y)); _local8 = _arg4.R; _local7 = _arg1.m_points[0].m_localPoint; _local17 = ((_arg4.position.x + (_local8.col1.x * _local7.x)) + (_local8.col2.x * _local7.y)); _local18 = ((_arg4.position.y + (_local8.col1.y * _local7.x)) + (_local8.col2.y * _local7.y)); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local21 = ((_local19 * _local19) + (_local20 * _local20)); if (_local21 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local26 = Math.sqrt(_local21); m_normal.x = (_local19 / _local26); m_normal.y = (_local20 / _local26); } else { m_normal.x = 1; m_normal.y = 0; }; _local22 = (_local15 + (_arg3 * m_normal.x)); _local23 = (_local16 + (_arg3 * m_normal.y)); _local24 = (_local17 - (_arg5 * m_normal.x)); _local25 = (_local18 - (_arg5 * m_normal.y)); m_points[0].x = (0.5 * (_local22 + _local24)); m_points[0].y = (0.5 * (_local23 + _local25)); break; case b2Manifold.e_faceA: _local8 = _arg2.R; _local7 = _arg1.m_localPlaneNormal; _local9 = ((_local8.col1.x * _local7.x) + (_local8.col2.x * _local7.y)); _local10 = ((_local8.col1.y * _local7.x) + (_local8.col2.y * _local7.y)); _local8 = _arg2.R; _local7 = _arg1.m_localPoint; _local11 = ((_arg2.position.x + (_local8.col1.x * _local7.x)) + (_local8.col2.x * _local7.y)); _local12 = ((_arg2.position.y + (_local8.col1.y * _local7.x)) + (_local8.col2.y * _local7.y)); m_normal.x = _local9; m_normal.y = _local10; _local6 = 0; while (_local6 < _arg1.m_pointCount) { _local8 = _arg4.R; _local7 = _arg1.m_points[_local6].m_localPoint; _local13 = ((_arg4.position.x + (_local8.col1.x * _local7.x)) + (_local8.col2.x * _local7.y)); _local14 = ((_arg4.position.y + (_local8.col1.y * _local7.x)) + (_local8.col2.y * _local7.y)); m_points[_local6].x = (_local13 + ((0.5 * (((_arg3 - ((_local13 - _local11) * _local9)) - ((_local14 - _local12) * _local10)) - _arg5)) * _local9)); m_points[_local6].y = (_local14 + ((0.5 * (((_arg3 - ((_local13 - _local11) * _local9)) - ((_local14 - _local12) * _local10)) - _arg5)) * _local10)); _local6++; }; break; case b2Manifold.e_faceB: _local8 = _arg4.R; _local7 = _arg1.m_localPlaneNormal; _local9 = ((_local8.col1.x * _local7.x) + (_local8.col2.x * _local7.y)); _local10 = ((_local8.col1.y * _local7.x) + (_local8.col2.y * _local7.y)); _local8 = _arg4.R; _local7 = _arg1.m_localPoint; _local11 = ((_arg4.position.x + (_local8.col1.x * _local7.x)) + (_local8.col2.x * _local7.y)); _local12 = ((_arg4.position.y + (_local8.col1.y * _local7.x)) + (_local8.col2.y * _local7.y)); m_normal.x = -(_local9); m_normal.y = -(_local10); _local6 = 0; while (_local6 < _arg1.m_pointCount) { _local8 = _arg2.R; _local7 = _arg1.m_points[_local6].m_localPoint; _local13 = ((_arg2.position.x + (_local8.col1.x * _local7.x)) + (_local8.col2.x * _local7.y)); _local14 = ((_arg2.position.y + (_local8.col1.y * _local7.x)) + (_local8.col2.y * _local7.y)); m_points[_local6].x = (_local13 + ((0.5 * (((_arg5 - ((_local13 - _local11) * _local9)) - ((_local14 - _local12) * _local10)) - _arg3)) * _local9)); m_points[_local6].y = (_local14 + ((0.5 * (((_arg5 - ((_local13 - _local11) * _local9)) - ((_local14 - _local12) * _local10)) - _arg3)) * _local10)); _local6++; }; break; }; } } }//package Box2D.CollisionSection 30//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var id:b2ContactID; public var v:b2Vec2; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } public function Set(_arg1:ClipVertex):void{ v.SetV(_arg1.v); id.Set(_arg1.id); } } }//package Box2D.CollisionSection 31//Features (Box2D.Collision.Features) package Box2D.Collision { import Box2D.Common.*; public class Features { b2internal var _referenceEdge:int; b2internal var _incidentEdge:int; b2internal var _flip:int; b2internal var _incidentVertex:int; b2internal var _m_id:b2ContactID; public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get flip():int{ return (_flip); } public function get incidentEdge():int{ return (_incidentEdge); } public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.CollisionSection 32//IBroadPhase (Box2D.Collision.IBroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; public interface IBroadPhase { function GetFatAABB(_arg1):b2AABB; function Query(_arg1:Function, _arg2:b2AABB):void; function Rebalance(_arg1:int):void; function GetUserData(_arg1); function UpdatePairs(_arg1:Function):void; function CreateProxy(_arg1:b2AABB, _arg2); function DestroyProxy(_arg1):void; function TestOverlap(_arg1, _arg2):Boolean; function Validate():void; function GetProxyCount():int; function RayCast(_arg1:Function, _arg2:b2RayCastInput):void; function MoveProxy(_arg1, _arg2:b2AABB, _arg3:b2Vec2):void; } }//package Box2D.CollisionSection 33//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(){ col1 = new b2Vec2(); col2 = new b2Vec2(); super(); col1.x = (col2.y = 1); } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function Set(_arg1:Number):void{ var _local2:Number; _local2 = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ var _local1:b2Mat22 = new b2Mat22(); _local1.SetM(this); return (_local1); } public function GetInverse(_arg1:b2Mat22):b2Mat22{ var _local3:Number; var _local6:Number; var _local2:Number = col1.x; _local3 = col2.x; var _local4:Number = col1.y; var _local5:Number = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); if (_local6 != 0){ _local6 = (1 / _local6); }; _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number = col1.x; var _local5:Number = col2.x; var _local6:Number = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); if (_local8 != 0){ _local8 = (1 / _local8); }; _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } public static function FromAngle(_arg1:Number):b2Mat22{ var _local2:b2Mat22 = new (b2Mat22); _local2.Set(_arg1); return (_local2); } public static function FromVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Mat22{ var _local3:b2Mat22 = new (b2Mat22); _local3.SetVV(_arg1, _arg2); return (_local3); } } }//package Box2D.Common.MathSection 34//b2Mat33 (Box2D.Common.Math.b2Mat33) package Box2D.Common.Math { public class b2Mat33 { public var col1:b2Vec3; public var col2:b2Vec3; public var col3:b2Vec3; public function b2Mat33(_arg1:b2Vec3=null, _arg2:b2Vec3=null, _arg3:b2Vec3=null){ col1 = new b2Vec3(); col2 = new b2Vec3(); col3 = new b2Vec3(); super(); if (((((!(_arg1)) && (!(_arg2)))) && (!(_arg3)))){ col1.SetZero(); col2.SetZero(); col3.SetZero(); } else { col1.SetV(_arg1); col2.SetV(_arg2); col3.SetV(_arg3); }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col3.x = 0; col1.y = 0; col2.y = 1; col3.y = 0; col1.z = 0; col2.z = 0; col3.z = 1; } public function Solve22(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number; var _local6:Number; _local4 = col1.x; var _local5:Number = col2.x; _local6 = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); if (_local8 != 0){ _local8 = (1 / _local8); }; _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } public function SetZero():void{ col1.x = 0; col2.x = 0; col3.x = 0; col1.y = 0; col2.y = 0; col3.y = 0; col1.z = 0; col2.z = 0; col3.z = 0; } public function SetM(_arg1:b2Mat33):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); col3.SetV(_arg1.col3); } public function AddM(_arg1:b2Mat33):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col1.z = (col1.z + _arg1.col1.z); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); col2.z = (col2.z + _arg1.col2.z); col3.x = (col3.x + _arg1.col3.x); col3.y = (col3.y + _arg1.col3.y); col3.z = (col3.z + _arg1.col3.z); } public function SetVVV(_arg1:b2Vec3, _arg2:b2Vec3, _arg3:b2Vec3):void{ col1.SetV(_arg1); col2.SetV(_arg2); col3.SetV(_arg3); } public function Copy():b2Mat33{ return (new b2Mat33(col1, col2, col3)); } public function Solve33(_arg1:b2Vec3, _arg2:Number, _arg3:Number, _arg4:Number):b2Vec3{ var _local5:Number = col1.x; var _local6:Number = col1.y; var _local7:Number = col1.z; var _local8:Number = col2.x; var _local9:Number = col2.y; var _local10:Number = col2.z; var _local11:Number = col3.x; var _local12:Number = col3.y; var _local13:Number = col3.z; var _local14:Number = (((_local5 * ((_local9 * _local13) - (_local10 * _local12))) + (_local6 * ((_local10 * _local11) - (_local8 * _local13)))) + (_local7 * ((_local8 * _local12) - (_local9 * _local11)))); if (_local14 != 0){ _local14 = (1 / _local14); }; _arg1.x = (_local14 * (((_arg2 * ((_local9 * _local13) - (_local10 * _local12))) + (_arg3 * ((_local10 * _local11) - (_local8 * _local13)))) + (_arg4 * ((_local8 * _local12) - (_local9 * _local11))))); _arg1.y = (_local14 * (((_local5 * ((_arg3 * _local13) - (_arg4 * _local12))) + (_local6 * ((_arg4 * _local11) - (_arg2 * _local13)))) + (_local7 * ((_arg2 * _local12) - (_arg3 * _local11))))); _arg1.z = (_local14 * (((_local5 * ((_local9 * _arg4) - (_local10 * _arg3))) + (_local6 * ((_local10 * _arg2) - (_local8 * _arg4)))) + (_local7 * ((_local8 * _arg3) - (_local9 * _arg2))))); return (_arg1); } } }//package Box2D.Common.MathSection 35//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Transform_identity:b2Transform = new b2Transform(b2Vec2_zero, b2Mat22_identity); public static const b2Mat22_identity:b2Mat22 = b2Mat22.FromVV(new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22 = b2Mat22.FromVV(AbsV(_arg1.col1), AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = b2Mat22.FromVV(MulMV(_arg1, _arg2.col1), MulMV(_arg1, _arg2.col2)); return (_local3); } public static function NextPowerOfTwo(_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 Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } public static function CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(Max(_arg1.x, _arg2.x), Max(_arg1.y, _arg2.y)); return (_local3); } public static function AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2 = new b2Vec2(Abs(_arg1.x), Abs(_arg1.y)); return (_local2); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2 = new b2Vec2(Dot(_arg1.col1, _arg2.col1), Dot(_arg1.col2, _arg2.col1)); var _local4:b2Vec2 = new b2Vec2(Dot(_arg1.col1, _arg2.col2), Dot(_arg1.col2, _arg2.col2)); var _local5:b2Mat22 = b2Mat22.FromVV(_local3, _local4); return (_local5); } public static function DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (((_arg1 < _arg2)) ? _arg2 : ((_arg1 > _arg3)) ? _arg3 : _arg1); } public static function MulXT(_arg1:b2Transform, _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 AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = b2Mat22.FromVV(AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function Random():Number{ return (((Math.random() * 2) - 1)); } public static function MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(Min(_arg1.x, _arg2.x), Min(_arg1.y, _arg2.y)); return (_local3); } public static function CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(Dot(_arg2, _arg1.col1), Dot(_arg2, _arg1.col2)); return (_local3); } public static function Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (MaxV(_arg2, MinV(_arg1, _arg3))); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function Swap(_arg1:Array, _arg2:Array):void{ var _local3:* = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function MulX(_arg1:b2Transform, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } } }//package Box2D.Common.MathSection 36//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var a:Number; public var c:b2Vec2; 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 Set(_arg1:b2Sweep):void{ localCenter.SetV(_arg1.localCenter); c0.SetV(_arg1.c0); c.SetV(_arg1.c); a0 = _arg1.a0; a = _arg1.a; t0 = _arg1.t0; } public function Copy():b2Sweep{ var _local1:b2Sweep = new b2Sweep(); _local1.localCenter.SetV(localCenter); _local1.c0.SetV(c0); _local1.c.SetV(c); _local1.a0 = a0; _local1.a = a; _local1.t0 = t0; return (_local1); } public function GetTransform(_arg1:b2Transform, _arg2:Number):void{ _arg1.position.x = (((1 - _arg2) * c0.x) + (_arg2 * c.x)); _arg1.position.y = (((1 - _arg2) * c0.y) + (_arg2 * c.y)); var _local3:Number = (((1 - _arg2) * a0) + (_arg2 * a)); _arg1.R.Set(_local3); var _local4:b2Mat22 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local4.col1.x * localCenter.x) + (_local4.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local4.col1.y * localCenter.x) + (_local4.col2.y * localCenter.y))); } } }//package Box2D.Common.MathSection 37//b2Transform (Box2D.Common.Math.b2Transform) package Box2D.Common.Math { public class b2Transform { public var position:b2Vec2; public var R:b2Mat22; public function b2Transform(_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:b2Transform):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } public function GetAngle():Number{ return (Math.atan2(R.col1.y, R.col1.x)); } } }//package Box2D.Common.MathSection 38//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { import Utils.*; 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 NegativeSelf():void{ x = -(x); y = -(y); } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function SetZero():void{ x = 0; y = 0; } public function GetNegative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } 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 toVector3():Vector3{ return (new Vector3(x, y, 0)); } public function CrossVF(_arg1:Number):void{ var _local2:Number = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number = b2Math.Dot(this, _arg1.col1); y = b2Math.Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.IsValid(x)) && (b2Math.IsValid(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 = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function toString():String{ return (((("b2Vec2 x=" + x) + " y=") + y)); } public function Normalize():Number{ var _local1:Number = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; var _local2:Number = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function CrossFV(_arg1:Number):void{ var _local2:Number = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.MathSection 39//b2Vec3 (Box2D.Common.Math.b2Vec3) package Box2D.Common.Math { public class b2Vec3 { public var x:Number; public var y:Number; public var z:Number; public function b2Vec3(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; } public function NegativeSelf():void{ x = -(x); y = -(y); z = -(z); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ this.x = _arg1; this.y = _arg2; this.z = _arg3; } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); z = (z * _arg1); } public function Add(_arg1:b2Vec3):void{ x = (x + _arg1.x); y = (y + _arg1.y); z = (z + _arg1.z); } public function SetZero():void{ x = (y = (z = 0)); } public function GetNegative():b2Vec3{ return (new b2Vec3(-(x), -(y), -(z))); } public function SetV(_arg1:b2Vec3):void{ x = _arg1.x; y = _arg1.y; z = _arg1.z; } public function Copy():b2Vec3{ return (new b2Vec3(x, y, z)); } public function Subtract(_arg1:b2Vec3):void{ x = (x - _arg1.x); y = (y - _arg1.y); z = (z - _arg1.z); } } }//package Box2D.Common.MathSection 40//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _r:uint;// = 0 private var _g:uint;// = 0 private var _b:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = uint((0xFF * b2Math.Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.Clamp(_arg3, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.Clamp(_arg1, 0, 1))); } public function get color():uint{ return ((((_r << 16) | (_g << 8)) | _b)); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.Clamp(_arg1, 0, 1))); } } }//package Box2D.CommonSection 41//b2internal (Box2D.Common.b2internal) package Box2D.Common { public namespace b2internal = "http://www.box2d.org/ns/b2internal"; }//package Box2D.CommonSection 42//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { public class b2Settings { public static const b2_polygonRadius:Number = (2 * b2_linearSlop); public static const b2_pi:Number = 3.14159265358979; public static const b2_aabbExtension:Number = 0.1; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_maxTranslationSquared:Number = 4; public static const b2_angularSlop:Number = 0.0349065850398866; public static const b2_linearSlop:Number = 0.005; public static const b2_maxRotation:Number = 1.5707963267949; public static const b2_maxRotationSquared:Number = 2.46740110027234; public static const b2_angularSleepTolerance:Number = 0.0349065850398866; public static const b2_timeToSleep:Number = 0.5; public static const b2_maxTOIJointsPerIsland:int = 32; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const b2_velocityThreshold:Number = 1; public static const USHRT_MAX:int = 0xFFFF; public static const VERSION:String = "2.1alpha"; public static const b2_toiSlop:Number = 0.04; public static const b2_maxTranslation:Number = 2; public static const b2_aabbMultiplier:Number = 2; public static const b2_maxLinearCorrection:Number = 0.2; public static function b2MixFriction(_arg1:Number, _arg2:Number):Number{ return (Math.sqrt((_arg1 * _arg2))); } public static function b2MixRestitution(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2Assert(_arg1:Boolean, _arg2:String=""):void{ if (!_arg1){ throw (("Assertion Failed " + _arg2)); }; } } }//package Box2D.CommonSection 43//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { override b2internal function Evaluate():void{ var _local1:b2Body = m_fixtureA.GetBody(); var _local2:b2Body = m_fixtureB.GetBody(); b2Collision.CollideCircles(m_manifold, (m_fixtureA.GetShape() as b2CircleShape), _local1.m_xf, (m_fixtureB.GetShape() as b2CircleShape), _local2.m_xf); } public function Reset(_arg1:b2Fixture, _arg2:b2Fixture):void{ super.Reset(_arg1, _arg2); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1):b2Contact{ return (new (b2CircleContact)); } } }//package Box2D.Dynamics.ContactsSection 44//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Contact { b2internal var m_prev:b2Contact; b2internal var m_next:b2Contact; b2internal var m_oldManifold:b2Manifold; b2internal var m_manifold:b2Manifold; b2internal var m_fixtureB:b2Fixture; b2internal var m_fixtureA:b2Fixture; b2internal var m_nodeA:b2ContactEdge; b2internal var m_flags:uint; b2internal var m_toi:Number; b2internal var m_nodeB:b2ContactEdge; b2internal static var e_sensorFlag:uint = 1; private static var s_input:b2TOIInput = new b2TOIInput(); b2internal static var e_touchingFlag:uint = 16; b2internal static var e_enabledFlag:uint = 32; b2internal static var e_continuousFlag:uint = 2; b2internal static var e_toiFlag:uint = 8; b2internal static var e_islandFlag:uint = 4; b2internal static var e_filterFlag:uint = 64; public function b2Contact(){ m_nodeA = new b2ContactEdge(); m_nodeB = new b2ContactEdge(); m_manifold = new b2Manifold(); m_oldManifold = new b2Manifold(); super(); } public function IsContinuous():Boolean{ return (((m_flags & e_continuousFlag) == e_continuousFlag)); } public function GetNext():b2Contact{ return (m_next); } public function FlagForFiltering():void{ m_flags = (m_flags | e_filterFlag); } public function IsEnabled():Boolean{ return (((m_flags & e_enabledFlag) == e_enabledFlag)); } public function SetSensor(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_sensorFlag); } else { m_flags = (m_flags & ~(e_sensorFlag)); }; } public function SetEnabled(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_enabledFlag); } else { m_flags = (m_flags & ~(e_enabledFlag)); }; } public function IsSensor():Boolean{ return (((m_flags & e_sensorFlag) == e_sensorFlag)); } public function GetManifold():b2Manifold{ return (m_manifold); } b2internal function Update(_arg1:b2ContactListener):void{ var _local8:b2Shape; var _local9:b2Shape; var _local10:b2Transform; var _local11:b2Transform; var _local12:int; var _local13:b2ManifoldPoint; var _local14:b2ContactID; var _local15:int; var _local16:b2ManifoldPoint; var _local2:b2Manifold = m_oldManifold; m_oldManifold = m_manifold; m_manifold = _local2; m_flags = (m_flags | e_enabledFlag); var _local3:Boolean; var _local4 = ((m_flags & e_touchingFlag) == e_touchingFlag); var _local5:b2Body = m_fixtureA.m_body; var _local6:b2Body = m_fixtureB.m_body; var _local7:Boolean = m_fixtureA.m_aabb.TestOverlap(m_fixtureB.m_aabb); if ((m_flags & e_sensorFlag)){ if (_local7){ _local8 = m_fixtureA.GetShape(); _local9 = m_fixtureB.GetShape(); _local10 = _local5.GetTransform(); _local11 = _local6.GetTransform(); _local3 = b2Shape.TestOverlap(_local8, _local10, _local9, _local11); }; m_manifold.m_pointCount = 0; } else { if (((((((!((_local5.GetType() == b2Body.b2_dynamicBody))) || (_local5.IsBullet()))) || (!((_local6.GetType() == b2Body.b2_dynamicBody))))) || (_local6.IsBullet()))){ m_flags = (m_flags | e_continuousFlag); } else { m_flags = (m_flags & ~(e_continuousFlag)); }; if (_local7){ Evaluate(); _local3 = (m_manifold.m_pointCount > 0); _local12 = 0; while (_local12 < m_manifold.m_pointCount) { _local13 = m_manifold.m_points[_local12]; _local13.m_normalImpulse = 0; _local13.m_tangentImpulse = 0; _local14 = _local13.m_id; _local15 = 0; while (_local15 < m_oldManifold.m_pointCount) { _local16 = m_oldManifold.m_points[_local15]; if (_local16.m_id.key == _local14.key){ _local13.m_normalImpulse = _local16.m_normalImpulse; _local13.m_tangentImpulse = _local16.m_tangentImpulse; break; }; _local15++; }; _local12++; }; } else { m_manifold.m_pointCount = 0; }; if (_local3 != _local4){ _local5.SetAwake(true); _local6.SetAwake(true); }; }; if (_local3){ m_flags = (m_flags | e_touchingFlag); } else { m_flags = (m_flags & ~(e_touchingFlag)); }; if ((((_local4 == false)) && ((_local3 == true)))){ _arg1.BeginContact(this); }; if ((((_local4 == true)) && ((_local3 == false)))){ _arg1.EndContact(this); }; if ((m_flags & e_sensorFlag) == 0){ _arg1.PreSolve(this, m_oldManifold); }; } public function GetWorldManifold(_arg1:b2WorldManifold):void{ var _local2:b2Body = m_fixtureA.GetBody(); var _local3:b2Body = m_fixtureB.GetBody(); var _local4:b2Shape = m_fixtureA.GetShape(); var _local5:b2Shape = m_fixtureB.GetShape(); _arg1.Initialize(m_manifold, _local2.GetTransform(), _local4.m_radius, _local3.GetTransform(), _local5.m_radius); } public function IsTouching():Boolean{ return (((m_flags & e_touchingFlag) == e_touchingFlag)); } public function GetFixtureA():b2Fixture{ return (m_fixtureA); } public function GetFixtureB():b2Fixture{ return (m_fixtureB); } b2internal function Reset(_arg1:b2Fixture=null, _arg2:b2Fixture=null):void{ m_flags = e_enabledFlag; if (((!(_arg1)) || (!(_arg2)))){ m_fixtureA = null; m_fixtureB = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_sensorFlag); }; var _local3:b2Body = _arg1.GetBody(); var _local4:b2Body = _arg2.GetBody(); if (((((((!((_local3.GetType() == b2Body.b2_dynamicBody))) || (_local3.IsBullet()))) || (!((_local4.GetType() == b2Body.b2_dynamicBody))))) || (_local4.IsBullet()))){ m_flags = (m_flags | e_continuousFlag); }; m_fixtureA = _arg1; m_fixtureB = _arg2; m_manifold.m_pointCount = 0; m_prev = null; m_next = null; m_nodeA.contact = null; m_nodeA.prev = null; m_nodeA.next = null; m_nodeA.other = null; m_nodeB.contact = null; m_nodeB.prev = null; m_nodeB.next = null; m_nodeB.other = null; } b2internal function ComputeTOI(_arg1:b2Sweep, _arg2:b2Sweep):Number{ s_input.proxyA.Set(m_fixtureA.GetShape()); s_input.proxyB.Set(m_fixtureB.GetShape()); s_input.sweepA = _arg1; s_input.sweepB = _arg2; s_input.tolerance = b2Settings.b2_linearSlop; return (b2TimeOfImpact.TimeOfImpact(s_input)); } b2internal function Evaluate():void{ } } }//package Box2D.Dynamics.ContactsSection 45//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactConstraint { public var type:int; public var normalMass:b2Mat22; public var K:b2Mat22; public var manifold:b2Manifold; public var radius:Number; public var bodyA:b2Body; public var bodyB:b2Body; public var points:Array; public var localPoint:b2Vec2; public var pointCount:int; public var normal:b2Vec2; public var restitution:Number; public var localPlaneNormal:b2Vec2; public var friction:Number; public function b2ContactConstraint(){ localPlaneNormal = new b2Vec2(); localPoint = new b2Vec2(); normal = new b2Vec2(); normalMass = new b2Mat22(); K = new b2Mat22(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.ContactsSection 46//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var localPoint:b2Vec2; public var normalImpulse:Number; public var rA:b2Vec2; public var rB:b2Vec2; public var tangentImpulse:Number; public var equalizedMass:Number; public var tangentMass:Number; public var normalMass:Number; public var velocityBias:Number; public function b2ContactConstraintPoint(){ localPoint = new b2Vec2(); rA = new b2Vec2(); rB = new b2Vec2(); super(); } } }//package Box2D.Dynamics.ContactsSection 47//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var other:b2Body; public var prev:b2ContactEdge; public var contact:b2Contact; public var next:b2ContactEdge; } }//package Box2D.Dynamics.ContactsSection 48//b2ContactFactory (Box2D.Dynamics.Contacts.b2ContactFactory) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactFactory { private var m_allocator; private var m_registers:Array; public function b2ContactFactory(_arg1){ m_allocator = _arg1; InitializeRegisters(); } b2internal function InitializeRegisters():void{ var _local2:int; m_registers = new Array(b2Shape.e_shapeTypeCount); var _local1:int; while (_local1 < b2Shape.e_shapeTypeCount) { m_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { m_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); AddType(b2EdgeAndCircleContact.Create, b2EdgeAndCircleContact.Destroy, b2Shape.e_edgeShape, b2Shape.e_circleShape); AddType(b2PolyAndEdgeContact.Create, b2PolyAndEdgeContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_edgeShape); } public function Destroy(_arg1:b2Contact):void{ if (_arg1.m_manifold.m_pointCount > 0){ _arg1.m_fixtureA.m_body.SetAwake(true); _arg1.m_fixtureB.m_body.SetAwake(true); }; var _local2:int = _arg1.m_fixtureA.GetType(); var _local3:int = _arg1.m_fixtureB.GetType(); var _local4:b2ContactRegister = m_registers[_local2][_local3]; _local4.poolCount++; _arg1.m_next = _local4.pool; _local4.pool = _arg1; var _local5:Function = _local4.destroyFcn; _local5(_arg1, m_allocator); } b2internal function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ m_registers[_arg3][_arg4].createFcn = _arg1; m_registers[_arg3][_arg4].destroyFcn = _arg2; m_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ m_registers[_arg4][_arg3].createFcn = _arg1; m_registers[_arg4][_arg3].destroyFcn = _arg2; m_registers[_arg4][_arg3].primary = false; }; } public function Create(_arg1:b2Fixture, _arg2:b2Fixture):b2Contact{ var _local6:b2Contact; var _local3:int = _arg1.GetType(); var _local4:int = _arg2.GetType(); var _local5:b2ContactRegister = m_registers[_local3][_local4]; if (_local5.pool){ _local6 = _local5.pool; _local5.pool = _local6.m_next; _local5.poolCount--; _local6.Reset(_arg1, _arg2); return (_local6); }; var _local7:Function = _local5.createFcn; if (_local7 != null){ if (_local5.primary){ _local6 = _local7(m_allocator); _local6.Reset(_arg1, _arg2); return (_local6); }; _local6 = _local7(m_allocator); _local6.Reset(_arg2, _arg1); return (_local6); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.ContactsSection 49//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var poolCount:int; public var createFcn:Function; public var destroyFcn:Function; public var pool:b2Contact; } }//package Box2D.Dynamics.ContactsSection 50//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactSolver { private var m_constraintCount:int; b2internal var m_constraints:Array; private var m_allocator; private var m_step:b2TimeStep; private static var s_psm:b2PositionSolverManifold = new b2PositionSolverManifold(); private static var s_worldManifold:b2WorldManifold = new b2WorldManifold(); public function b2ContactSolver(){ m_step = new b2TimeStep(); m_constraints = new Array(); super(); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.bodyA; _local8 = _local6.bodyB; _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.rA.x * _local22) - (_local20.rA.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.rB.x * _local22) - (_local20.rB.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 _local4:b2ContactConstraint; var _local5:b2Body; var _local6:b2Body; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:int; var _local13:b2ContactConstraintPoint; 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 _local2:Number = 0; var _local3:int; while (_local3 < m_constraintCount) { _local4 = m_constraints[_local3]; _local5 = _local4.bodyA; _local6 = _local4.bodyB; _local7 = (_local5.m_mass * _local5.m_invMass); _local8 = (_local5.m_mass * _local5.m_invI); _local9 = (_local6.m_mass * _local6.m_invMass); _local10 = (_local6.m_mass * _local6.m_invI); s_psm.Initialize(_local4); _local11 = s_psm.m_normal; _local12 = 0; while (_local12 < _local4.pointCount) { _local13 = _local4.points[_local12]; _local14 = s_psm.m_points[_local12]; _local15 = s_psm.m_separations[_local12]; _local16 = (_local14.x - _local5.m_sweep.c.x); _local17 = (_local14.y - _local5.m_sweep.c.y); _local18 = (_local14.x - _local6.m_sweep.c.x); _local19 = (_local14.y - _local6.m_sweep.c.y); _local2 = ((_local2 < _local15)) ? _local2 : _local15; _local20 = b2Math.Clamp((_arg1 * (_local15 + b2Settings.b2_linearSlop)), -(b2Settings.b2_maxLinearCorrection), 0); _local21 = (-(_local13.equalizedMass) * _local20); _local22 = (_local21 * _local11.x); _local23 = (_local21 * _local11.y); _local5.m_sweep.c.x = (_local5.m_sweep.c.x - (_local7 * _local22)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y - (_local7 * _local23)); _local5.m_sweep.a = (_local5.m_sweep.a - (_local8 * ((_local16 * _local23) - (_local17 * _local22)))); _local5.SynchronizeTransform(); _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_local9 * _local22)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_local9 * _local23)); _local6.m_sweep.a = (_local6.m_sweep.a + (_local10 * ((_local18 * _local23) - (_local19 * _local22)))); _local6.SynchronizeTransform(); _local12++; }; _local3++; }; return ((_local2 > (-1.5 * b2Settings.b2_linearSlop))); } public function Initialize(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4):void{ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local9:b2Fixture; var _local10:b2Fixture; var _local11:b2Shape; var _local12:b2Shape; var _local13:Number; var _local14:Number; var _local15:b2Body; var _local16:b2Body; var _local17:b2Manifold; 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:b2ContactConstraint; var _local29:uint; var _local30:b2ManifoldPoint; var _local31:b2ContactConstraintPoint; 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; var _local48:b2ContactConstraintPoint; var _local49:b2ContactConstraintPoint; var _local50:Number; var _local51:Number; var _local52:Number; var _local53:Number; var _local54:Number; var _local55:Number; var _local56:Number; var _local57:Number; var _local58:Number; var _local59:Number; var _local60:Number; var _local61:Number; m_step.Set(_arg1); m_allocator = _arg4; m_constraintCount = _arg3; while (m_constraints.length < m_constraintCount) { m_constraints[m_constraints.length] = new b2ContactConstraint(); }; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local9 = _local5.m_fixtureA; _local10 = _local5.m_fixtureB; _local11 = _local9.m_shape; _local12 = _local10.m_shape; _local13 = _local11.m_radius; _local14 = _local12.m_radius; _local15 = _local9.m_body; _local16 = _local10.m_body; _local17 = _local5.GetManifold(); _local18 = b2Settings.b2MixFriction(_local9.GetFriction(), _local10.GetFriction()); _local19 = b2Settings.b2MixRestitution(_local9.GetRestitution(), _local10.GetRestitution()); _local20 = _local15.m_linearVelocity.x; _local21 = _local15.m_linearVelocity.y; _local22 = _local16.m_linearVelocity.x; _local23 = _local16.m_linearVelocity.y; _local24 = _local15.m_angularVelocity; _local25 = _local16.m_angularVelocity; b2Settings.b2Assert((_local17.m_pointCount > 0)); s_worldManifold.Initialize(_local17, _local15.m_xf, _local13, _local16.m_xf, _local14); _local26 = s_worldManifold.m_normal.x; _local27 = s_worldManifold.m_normal.y; _local28 = m_constraints[_local6]; _local28.bodyA = _local15; _local28.bodyB = _local16; _local28.manifold = _local17; _local28.normal.x = _local26; _local28.normal.y = _local27; _local28.pointCount = _local17.m_pointCount; _local28.friction = _local18; _local28.restitution = _local19; _local28.localPlaneNormal.x = _local17.m_localPlaneNormal.x; _local28.localPlaneNormal.y = _local17.m_localPlaneNormal.y; _local28.localPoint.x = _local17.m_localPoint.x; _local28.localPoint.y = _local17.m_localPoint.y; _local28.radius = (_local13 + _local14); _local28.type = _local17.m_type; _local29 = 0; while (_local29 < _local28.pointCount) { _local30 = _local17.m_points[_local29]; _local31 = _local28.points[_local29]; _local31.normalImpulse = _local30.m_normalImpulse; _local31.tangentImpulse = _local30.m_tangentImpulse; _local31.localPoint.SetV(_local30.m_localPoint); _local32 = (_local31.rA.x = (s_worldManifold.m_points[_local29].x - _local15.m_sweep.c.x)); _local33 = (_local31.rA.y = (s_worldManifold.m_points[_local29].y - _local15.m_sweep.c.y)); _local34 = (_local31.rB.x = (s_worldManifold.m_points[_local29].x - _local16.m_sweep.c.x)); _local35 = (_local31.rB.y = (s_worldManifold.m_points[_local29].y - _local16.m_sweep.c.y)); _local36 = ((_local32 * _local27) - (_local33 * _local26)); _local37 = ((_local34 * _local27) - (_local35 * _local26)); _local36 = (_local36 * _local36); _local37 = (_local37 * _local37); _local38 = (((_local15.m_invMass + _local16.m_invMass) + (_local15.m_invI * _local36)) + (_local16.m_invI * _local37)); _local31.normalMass = (1 / _local38); _local39 = ((_local15.m_mass * _local15.m_invMass) + (_local16.m_mass * _local16.m_invMass)); _local39 = (_local39 + (((_local15.m_mass * _local15.m_invI) * _local36) + ((_local16.m_mass * _local16.m_invI) * _local37))); _local31.equalizedMass = (1 / _local39); _local40 = _local27; _local41 = -(_local26); _local42 = ((_local32 * _local41) - (_local33 * _local40)); _local43 = ((_local34 * _local41) - (_local35 * _local40)); _local42 = (_local42 * _local42); _local43 = (_local43 * _local43); _local44 = (((_local15.m_invMass + _local16.m_invMass) + (_local15.m_invI * _local42)) + (_local16.m_invI * _local43)); _local31.tangentMass = (1 / _local44); _local31.velocityBias = 0; _local45 = (((_local22 + (-(_local25) * _local35)) - _local20) - (-(_local24) * _local33)); _local46 = (((_local23 + (_local25 * _local34)) - _local21) - (_local24 * _local32)); _local47 = ((_local28.normal.x * _local45) + (_local28.normal.y * _local46)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local31.velocityBias = (_local31.velocityBias + (-(_local28.restitution) * _local47)); }; _local29++; }; if (_local28.pointCount == 2){ _local48 = _local28.points[0]; _local49 = _local28.points[1]; _local50 = _local15.m_invMass; _local51 = _local15.m_invI; _local52 = _local16.m_invMass; _local53 = _local16.m_invI; _local54 = ((_local48.rA.x * _local27) - (_local48.rA.y * _local26)); _local55 = ((_local48.rB.x * _local27) - (_local48.rB.y * _local26)); _local56 = ((_local49.rA.x * _local27) - (_local49.rA.y * _local26)); _local57 = ((_local49.rB.x * _local27) - (_local49.rB.y * _local26)); _local58 = (((_local50 + _local52) + ((_local51 * _local54) * _local54)) + ((_local53 * _local55) * _local55)); _local59 = (((_local50 + _local52) + ((_local51 * _local56) * _local56)) + ((_local53 * _local57) * _local57)); _local60 = (((_local50 + _local52) + ((_local51 * _local54) * _local56)) + ((_local53 * _local55) * _local57)); _local61 = 100; if ((_local58 * _local58) < (_local61 * ((_local58 * _local59) - (_local60 * _local60)))){ _local28.K.col1.Set(_local58, _local60); _local28.K.col2.Set(_local60, _local59); _local28.K.GetInverse(_local28.normalMass); } else { _local28.pointCount = 1; }; }; _local6++; }; } 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:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:b2Mat22; var _local23:b2Vec2; var _local25:b2ContactConstraint; var _local26:b2Body; var _local27:b2Body; var _local28:Number; var _local29:Number; var _local30:b2Vec2; var _local31:b2Vec2; 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:int; var _local43:b2ContactConstraintPoint; var _local44:b2ContactConstraintPoint; var _local45:Number; var _local46:Number; var _local47:Number; var _local48:Number; var _local49:Number; var _local50:Number; var _local51:Number; var _local52:Number; var _local53:Number; var _local54:Number; var _local55:Number; var _local56:Number; var _local57:Number; var _local24:int; while (_local24 < m_constraintCount) { _local25 = m_constraints[_local24]; _local26 = _local25.bodyA; _local27 = _local25.bodyB; _local28 = _local26.m_angularVelocity; _local29 = _local27.m_angularVelocity; _local30 = _local26.m_linearVelocity; _local31 = _local27.m_linearVelocity; _local32 = _local26.m_invMass; _local33 = _local26.m_invI; _local34 = _local27.m_invMass; _local35 = _local27.m_invI; _local36 = _local25.normal.x; _local37 = _local25.normal.y; _local38 = _local37; _local39 = -(_local36); _local40 = _local25.friction; _local1 = 0; while (_local1 < _local25.pointCount) { _local2 = _local25.points[_local1]; _local7 = (((_local31.x - (_local29 * _local2.rB.y)) - _local30.x) + (_local28 * _local2.rA.y)); _local8 = (((_local31.y + (_local29 * _local2.rB.x)) - _local30.y) - (_local28 * _local2.rA.x)); _local10 = ((_local7 * _local38) + (_local8 * _local39)); _local11 = (_local2.tangentMass * -(_local10)); _local12 = (_local40 * _local2.normalImpulse); _local13 = b2Math.Clamp((_local2.tangentImpulse + _local11), -(_local12), _local12); _local11 = (_local13 - _local2.tangentImpulse); _local14 = (_local11 * _local38); _local15 = (_local11 * _local39); _local30.x = (_local30.x - (_local32 * _local14)); _local30.y = (_local30.y - (_local32 * _local15)); _local28 = (_local28 - (_local33 * ((_local2.rA.x * _local15) - (_local2.rA.y * _local14)))); _local31.x = (_local31.x + (_local34 * _local14)); _local31.y = (_local31.y + (_local34 * _local15)); _local29 = (_local29 + (_local35 * ((_local2.rB.x * _local15) - (_local2.rB.y * _local14)))); _local2.tangentImpulse = _local13; _local1++; }; _local42 = _local25.pointCount; if (_local25.pointCount == 1){ _local2 = _local25.points[0]; _local7 = (((_local31.x + (-(_local29) * _local2.rB.y)) - _local30.x) - (-(_local28) * _local2.rA.y)); _local8 = (((_local31.y + (_local29 * _local2.rB.x)) - _local30.y) - (_local28 * _local2.rA.x)); _local9 = ((_local7 * _local36) + (_local8 * _local37)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local13 = (_local2.normalImpulse + _local11); _local13 = ((_local13 > 0)) ? _local13 : 0; _local11 = (_local13 - _local2.normalImpulse); _local14 = (_local11 * _local36); _local15 = (_local11 * _local37); _local30.x = (_local30.x - (_local32 * _local14)); _local30.y = (_local30.y - (_local32 * _local15)); _local28 = (_local28 - (_local33 * ((_local2.rA.x * _local15) - (_local2.rA.y * _local14)))); _local31.x = (_local31.x + (_local34 * _local14)); _local31.y = (_local31.y + (_local34 * _local15)); _local29 = (_local29 + (_local35 * ((_local2.rB.x * _local15) - (_local2.rB.y * _local14)))); _local2.normalImpulse = _local13; } else { _local43 = _local25.points[0]; _local44 = _local25.points[1]; _local45 = _local43.normalImpulse; _local46 = _local44.normalImpulse; _local47 = (((_local31.x - (_local29 * _local43.rB.y)) - _local30.x) + (_local28 * _local43.rA.y)); _local48 = (((_local31.y + (_local29 * _local43.rB.x)) - _local30.y) - (_local28 * _local43.rA.x)); _local49 = (((_local31.x - (_local29 * _local44.rB.y)) - _local30.x) + (_local28 * _local44.rA.y)); _local50 = (((_local31.y + (_local29 * _local44.rB.x)) - _local30.y) - (_local28 * _local44.rA.x)); _local51 = ((_local47 * _local36) + (_local48 * _local37)); _local52 = ((_local49 * _local36) + (_local50 * _local37)); _local53 = (_local51 - _local43.velocityBias); _local54 = (_local52 - _local44.velocityBias); _local22 = _local25.K; _local53 = (_local53 - ((_local22.col1.x * _local45) + (_local22.col2.x * _local46))); _local54 = (_local54 - ((_local22.col1.y * _local45) + (_local22.col2.y * _local46))); _local55 = 0.001; while (true) { _local22 = _local25.normalMass; _local56 = -(((_local22.col1.x * _local53) + (_local22.col2.x * _local54))); _local57 = -(((_local22.col1.y * _local53) + (_local22.col2.y * _local54))); if ((((_local56 >= 0)) && ((_local57 >= 0)))){ _local16 = (_local56 - _local45); _local17 = (_local57 - _local46); _local18 = (_local16 * _local36); _local19 = (_local16 * _local37); _local20 = (_local17 * _local36); _local21 = (_local17 * _local37); _local30.x = (_local30.x - (_local32 * (_local18 + _local20))); _local30.y = (_local30.y - (_local32 * (_local19 + _local21))); _local28 = (_local28 - (_local33 * ((((_local43.rA.x * _local19) - (_local43.rA.y * _local18)) + (_local44.rA.x * _local21)) - (_local44.rA.y * _local20)))); _local31.x = (_local31.x + (_local34 * (_local18 + _local20))); _local31.y = (_local31.y + (_local34 * (_local19 + _local21))); _local29 = (_local29 + (_local35 * ((((_local43.rB.x * _local19) - (_local43.rB.y * _local18)) + (_local44.rB.x * _local21)) - (_local44.rB.y * _local20)))); _local43.normalImpulse = _local56; _local44.normalImpulse = _local57; break; }; _local56 = (-(_local43.normalMass) * _local53); _local57 = 0; _local51 = 0; _local52 = ((_local25.K.col1.y * _local56) + _local54); if ((((_local56 >= 0)) && ((_local52 >= 0)))){ _local16 = (_local56 - _local45); _local17 = (_local57 - _local46); _local18 = (_local16 * _local36); _local19 = (_local16 * _local37); _local20 = (_local17 * _local36); _local21 = (_local17 * _local37); _local30.x = (_local30.x - (_local32 * (_local18 + _local20))); _local30.y = (_local30.y - (_local32 * (_local19 + _local21))); _local28 = (_local28 - (_local33 * ((((_local43.rA.x * _local19) - (_local43.rA.y * _local18)) + (_local44.rA.x * _local21)) - (_local44.rA.y * _local20)))); _local31.x = (_local31.x + (_local34 * (_local18 + _local20))); _local31.y = (_local31.y + (_local34 * (_local19 + _local21))); _local29 = (_local29 + (_local35 * ((((_local43.rB.x * _local19) - (_local43.rB.y * _local18)) + (_local44.rB.x * _local21)) - (_local44.rB.y * _local20)))); _local43.normalImpulse = _local56; _local44.normalImpulse = _local57; break; }; _local56 = 0; _local57 = (-(_local44.normalMass) * _local54); _local51 = ((_local25.K.col2.x * _local57) + _local53); _local52 = 0; if ((((_local57 >= 0)) && ((_local51 >= 0)))){ _local16 = (_local56 - _local45); _local17 = (_local57 - _local46); _local18 = (_local16 * _local36); _local19 = (_local16 * _local37); _local20 = (_local17 * _local36); _local21 = (_local17 * _local37); _local30.x = (_local30.x - (_local32 * (_local18 + _local20))); _local30.y = (_local30.y - (_local32 * (_local19 + _local21))); _local28 = (_local28 - (_local33 * ((((_local43.rA.x * _local19) - (_local43.rA.y * _local18)) + (_local44.rA.x * _local21)) - (_local44.rA.y * _local20)))); _local31.x = (_local31.x + (_local34 * (_local18 + _local20))); _local31.y = (_local31.y + (_local34 * (_local19 + _local21))); _local29 = (_local29 + (_local35 * ((((_local43.rB.x * _local19) - (_local43.rB.y * _local18)) + (_local44.rB.x * _local21)) - (_local44.rB.y * _local20)))); _local43.normalImpulse = _local56; _local44.normalImpulse = _local57; break; }; _local56 = 0; _local57 = 0; _local51 = _local53; _local52 = _local54; if ((((_local51 >= 0)) && ((_local52 >= 0)))){ _local16 = (_local56 - _local45); _local17 = (_local57 - _local46); _local18 = (_local16 * _local36); _local19 = (_local16 * _local37); _local20 = (_local17 * _local36); _local21 = (_local17 * _local37); _local30.x = (_local30.x - (_local32 * (_local18 + _local20))); _local30.y = (_local30.y - (_local32 * (_local19 + _local21))); _local28 = (_local28 - (_local33 * ((((_local43.rA.x * _local19) - (_local43.rA.y * _local18)) + (_local44.rA.x * _local21)) - (_local44.rA.y * _local20)))); _local31.x = (_local31.x + (_local34 * (_local18 + _local20))); _local31.y = (_local31.y + (_local34 * (_local19 + _local21))); _local29 = (_local29 + (_local35 * ((((_local43.rB.x * _local19) - (_local43.rB.y * _local18)) + (_local44.rB.x * _local21)) - (_local44.rB.y * _local20)))); _local43.normalImpulse = _local56; _local44.normalImpulse = _local57; break; }; break; }; }; _local26.m_angularVelocity = _local28; _local27.m_angularVelocity = _local29; _local24++; }; } public function FinalizeVelocityConstraints():void{ var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; var _local1:int; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.m_points[_local4]; _local6 = _local2.points[_local4]; _local5.m_normalImpulse = _local6.normalImpulse; _local5.m_tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.ContactsSection 51//b2EdgeAndCircleContact (Box2D.Dynamics.Contacts.b2EdgeAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2EdgeAndCircleContact extends b2Contact { override b2internal function Evaluate():void{ var _local1:b2Body = m_fixtureA.GetBody(); var _local2:b2Body = m_fixtureB.GetBody(); b2CollideEdgeAndCircle(m_manifold, (m_fixtureA.GetShape() as b2EdgeShape), _local1.m_xf, (m_fixtureB.GetShape() as b2CircleShape), _local2.m_xf); } private function b2CollideEdgeAndCircle(_arg1:b2Manifold, _arg2:b2EdgeShape, _arg3:b2Transform, _arg4:b2CircleShape, _arg5:b2Transform):void{ } public function Reset(_arg1:b2Fixture, _arg2:b2Fixture):void{ super.Reset(_arg1, _arg2); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1):b2Contact{ return (new (b2EdgeAndCircleContact)); } } }//package Box2D.Dynamics.ContactsSection 52//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { override b2internal function Evaluate():void{ var _local1:b2Body = m_fixtureA.m_body; var _local2:b2Body = m_fixtureB.m_body; b2Collision.CollidePolygonAndCircle(m_manifold, (m_fixtureA.GetShape() as b2PolygonShape), _local1.m_xf, (m_fixtureB.GetShape() as b2CircleShape), _local2.m_xf); } public function Reset(_arg1:b2Fixture, _arg2:b2Fixture):void{ super.Reset(_arg1, _arg2); b2Settings.b2Assert((_arg1.GetType() == b2Shape.e_polygonShape)); b2Settings.b2Assert((_arg2.GetType() == b2Shape.e_circleShape)); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1):b2Contact{ return (new (b2PolyAndCircleContact)); } } }//package Box2D.Dynamics.ContactsSection 53//b2PolyAndEdgeContact (Box2D.Dynamics.Contacts.b2PolyAndEdgeContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyAndEdgeContact extends b2Contact { override b2internal function Evaluate():void{ var _local1:b2Body = m_fixtureA.GetBody(); var _local2:b2Body = m_fixtureB.GetBody(); b2CollidePolyAndEdge(m_manifold, (m_fixtureA.GetShape() as b2PolygonShape), _local1.m_xf, (m_fixtureB.GetShape() as b2EdgeShape), _local2.m_xf); } private function b2CollidePolyAndEdge(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2Transform, _arg4:b2EdgeShape, _arg5:b2Transform):void{ } public function Reset(_arg1:b2Fixture, _arg2:b2Fixture):void{ super.Reset(_arg1, _arg2); b2Settings.b2Assert((_arg1.GetType() == b2Shape.e_polygonShape)); b2Settings.b2Assert((_arg2.GetType() == b2Shape.e_edgeShape)); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1):b2Contact{ return (new (b2PolyAndEdgeContact)); } } }//package Box2D.Dynamics.ContactsSection 54//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonContact extends b2Contact { override b2internal function Evaluate():void{ var _local1:b2Body = m_fixtureA.GetBody(); var _local2:b2Body = m_fixtureB.GetBody(); b2Collision.CollidePolygons(m_manifold, (m_fixtureA.GetShape() as b2PolygonShape), _local1.m_xf, (m_fixtureB.GetShape() as b2PolygonShape), _local2.m_xf); } public function Reset(_arg1:b2Fixture, _arg2:b2Fixture):void{ super.Reset(_arg1, _arg2); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1):b2Contact{ return (new (b2PolygonContact)); } } }//package Box2D.Dynamics.ContactsSection 55//b2PositionSolverManifold (Box2D.Dynamics.Contacts.b2PositionSolverManifold) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; class b2PositionSolverManifold { public var m_points:Array; public var m_normal:b2Vec2; public var m_separations:Array; private static var circlePointA:b2Vec2 = new b2Vec2(); private static var circlePointB:b2Vec2 = new b2Vec2(); function b2PositionSolverManifold(){ m_normal = new b2Vec2(); m_separations = new Array(b2Settings.b2_maxManifoldPoints); m_points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { m_points[_local1] = new b2Vec2(); _local1++; }; } public function Initialize(_arg1:b2ContactConstraint):void{ var _local2:int; var _local3:Number; var _local4:Number; var _local5:b2Mat22; var _local6:b2Vec2; 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; b2Settings.b2Assert((_arg1.pointCount > 0)); switch (_arg1.type){ case b2Manifold.e_circles: _local5 = _arg1.bodyA.m_xf.R; _local6 = _arg1.localPoint; _local9 = (_arg1.bodyA.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local10 = (_arg1.bodyA.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); _local5 = _arg1.bodyB.m_xf.R; _local6 = _arg1.points[0].localPoint; _local11 = (_arg1.bodyB.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local12 = (_arg1.bodyB.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = ((_local13 * _local13) + (_local14 * _local14)); if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local16 = Math.sqrt(_local15); m_normal.x = (_local13 / _local16); m_normal.y = (_local14 / _local16); } else { m_normal.x = 1; m_normal.y = 0; }; m_points[0].x = (0.5 * (_local9 + _local11)); m_points[0].y = (0.5 * (_local10 + _local12)); m_separations[0] = (((_local13 * m_normal.x) + (_local14 * m_normal.y)) - _arg1.radius); break; case b2Manifold.e_faceA: _local5 = _arg1.bodyA.m_xf.R; _local6 = _arg1.localPlaneNormal; m_normal.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_normal.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); _local5 = _arg1.bodyA.m_xf.R; _local6 = _arg1.localPoint; _local7 = (_arg1.bodyA.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local8 = (_arg1.bodyA.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); _local5 = _arg1.bodyB.m_xf.R; _local2 = 0; while (_local2 < _arg1.pointCount) { _local6 = _arg1.points[_local2].localPoint; _local3 = (_arg1.bodyB.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local4 = (_arg1.bodyB.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); m_separations[_local2] = ((((_local3 - _local7) * m_normal.x) + ((_local4 - _local8) * m_normal.y)) - _arg1.radius); m_points[_local2].x = _local3; m_points[_local2].y = _local4; _local2++; }; break; case b2Manifold.e_faceB: _local5 = _arg1.bodyB.m_xf.R; _local6 = _arg1.localPlaneNormal; m_normal.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_normal.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); _local5 = _arg1.bodyB.m_xf.R; _local6 = _arg1.localPoint; _local7 = (_arg1.bodyB.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local8 = (_arg1.bodyB.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); _local5 = _arg1.bodyA.m_xf.R; _local2 = 0; while (_local2 < _arg1.pointCount) { _local6 = _arg1.points[_local2].localPoint; _local3 = (_arg1.bodyA.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local4 = (_arg1.bodyA.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); m_separations[_local2] = ((((_local3 - _local7) * m_normal.x) + ((_local4 - _local8) * m_normal.y)) - _arg1.radius); m_points[_local2].Set(_local3, _local4); _local2++; }; m_normal.x = (m_normal.x * -1); m_normal.y = (m_normal.y * -1); break; }; } } }//package Box2D.Dynamics.ContactsSection 56//b2Controller (Box2D.Dynamics.Controllers.b2Controller) package Box2D.Dynamics.Controllers { import Box2D.Dynamics.*; import Box2D.Common.*; public class b2Controller { b2internal var m_world:b2World; b2internal var m_prev:b2Controller; b2internal var m_next:b2Controller; protected var m_bodyList:b2ControllerEdge; protected var m_bodyCount:int; public function AddBody(_arg1:b2Body):void{ var _local2:b2ControllerEdge = new b2ControllerEdge(); _local2.controller = this; _local2.body = _arg1; _local2.nextBody = m_bodyList; _local2.prevBody = null; m_bodyList = _local2; if (_local2.nextBody){ _local2.nextBody.prevBody = _local2; }; m_bodyCount++; _local2.nextController = _arg1.m_controllerList; _local2.prevController = null; _arg1.m_controllerList = _local2; if (_local2.nextController){ _local2.nextController.prevController = _local2; }; _arg1.m_controllerCount++; } public function Draw(_arg1:b2DebugDraw):void{ } public function RemoveBody(_arg1:b2Body):void{ var _local2:b2ControllerEdge = _arg1.m_controllerList; while (((_local2) && (!((_local2.controller == this))))) { _local2 = _local2.nextController; }; if (_local2.prevBody){ _local2.prevBody.nextBody = _local2.nextBody; }; if (_local2.nextBody){ _local2.nextBody.prevBody = _local2.prevBody; }; if (_local2.nextController){ _local2.nextController.prevController = _local2.prevController; }; if (_local2.prevController){ _local2.prevController.nextController = _local2.nextController; }; if (m_bodyList == _local2){ m_bodyList = _local2.nextBody; }; if (_arg1.m_controllerList == _local2){ _arg1.m_controllerList = _local2.nextController; }; _arg1.m_controllerCount--; m_bodyCount--; } public function GetNext():b2Controller{ return (m_next); } public function Clear():void{ while (m_bodyList) { RemoveBody(m_bodyList.body); }; } public function Step(_arg1:b2TimeStep):void{ } public function GetBodyList():b2ControllerEdge{ return (m_bodyList); } public function GetWorld():b2World{ return (m_world); } } }//package Box2D.Dynamics.ControllersSection 57//b2ControllerEdge (Box2D.Dynamics.Controllers.b2ControllerEdge) package Box2D.Dynamics.Controllers { import Box2D.Dynamics.*; public class b2ControllerEdge { public var body:b2Body; public var nextBody:b2ControllerEdge; public var nextController:b2ControllerEdge; public var prevBody:b2ControllerEdge; public var prevController:b2ControllerEdge; public var controller:b2Controller; } }//package Box2D.Dynamics.ControllersSection 58//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { private var m_localAnchor1:b2Vec2; private var m_localAnchor2:b2Vec2; private var m_length:Number; private var m_mass:Number; private var m_bias:Number; private var m_gamma:Number; private var m_u:b2Vec2; private var m_impulse:Number; private var m_dampingRatio:Number; private var m_frequencyHz: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.localAnchorA); m_localAnchor2.SetV(_arg1.localAnchorB); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; } public function SetFrequency(_arg1:Number):void{ m_frequencyHz = _arg1; } public function GetFrequency():Number{ return (m_frequencyHz); } public function SetLength(_arg1:Number):void{ m_length = _arg1; } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local7:Number; var _local9:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; _local4 = m_bodyA; _local5 = m_bodyB; _local2 = _local4.m_xf.R; var _local6:Number = (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; var _local8:Number = (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); var _local10:Number = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; var _local11:Number = ((_local6 * m_u.y) - (_local7 * m_u.x)); var _local12:Number = ((_local8 * m_u.y) - (_local9 * m_u.x)); var _local13:Number = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = ((_local13)!=0) ? (1 / _local13) : 0; 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 = (_arg1.dt * (_local16 + (_arg1.dt * _local17))); m_gamma = ((m_gamma)!=0) ? (1 / m_gamma) : 0; m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (_local13 + m_gamma); m_mass = ((m_mass)!=0) ? (1 / m_mass) : 0; }; 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; }; } public function SetDampingRatio(_arg1:Number):void{ m_dampingRatio = _arg1; } public function GetLength():Number{ return (m_length); } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchor1)); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchor2)); } override public function GetReactionTorque(_arg1:Number):Number{ return (0); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2(((_arg1 * m_impulse) * m_u.x), ((_arg1 * m_impulse) * m_u.y))); } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:b2Mat22; if (m_frequencyHz > 0){ return (true); }; var _local3:b2Body = m_bodyA; var _local4:b2Body = m_bodyB; _local2 = _local3.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local7:Number = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; var _local10:Number = (((_local4.m_sweep.c.x + _local8) - _local3.m_sweep.c.x) - _local5); var _local11:Number = (((_local4.m_sweep.c.y + _local9) - _local3.m_sweep.c.y) - _local6); var _local12:Number = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local12); _local11 = (_local11 / _local12); var _local13:Number = (_local12 - m_length); _local13 = b2Math.Clamp(_local13, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local14:Number = (-(m_mass) * _local13); m_u.Set(_local10, _local11); var _local15:Number = (_local14 * m_u.x); var _local16:Number = (_local14 * m_u.y); _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local15)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local16)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local5 * _local16) - (_local6 * _local15)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local15)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local16)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); return ((b2Math.Abs(_local13) < b2Settings.b2_linearSlop)); } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body = m_bodyA; var _local4:b2Body = m_bodyB; _local2 = _local3.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local7:Number = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); var _local11:Number = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); var _local12:Number = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); var _local13:Number = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); var _local14:Number = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); var _local15:Number = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); var _local16:Number = (_local15 * m_u.x); var _local17:Number = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } public function GetDampingRatio():Number{ return (m_dampingRatio); } } }//package Box2D.Dynamics.JointsSection 59//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2DistanceJointDef extends b2JointDef { public var localAnchorA:b2Vec2; public var length:Number; public var dampingRatio:Number; public var localAnchorB:b2Vec2; public var frequencyHz:Number; public function b2DistanceJointDef(){ localAnchorA = new b2Vec2(); localAnchorB = 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{ bodyA = _arg1; bodyB = _arg2; localAnchorA.SetV(bodyA.GetLocalPoint(_arg3)); localAnchorB.SetV(bodyB.GetLocalPoint(_arg4)); var _local5:Number = (_arg4.x - _arg3.x); var _local6:Number = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.JointsSection 60//b2FrictionJoint (Box2D.Dynamics.Joints.b2FrictionJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2FrictionJoint extends b2Joint { private var m_maxTorque:Number; private var m_angularImpulse:Number; public var m_linearMass:b2Mat22; private var m_localAnchorA:b2Vec2; private var m_localAnchorB:b2Vec2; public var m_angularMass:Number; private var m_maxForce:Number; private var m_linearImpulse:b2Vec2; public function b2FrictionJoint(_arg1:b2FrictionJointDef){ m_localAnchorA = new b2Vec2(); m_localAnchorB = new b2Vec2(); m_linearMass = new b2Mat22(); m_linearImpulse = new b2Vec2(); super(_arg1); m_localAnchorA.SetV(_arg1.localAnchorA); m_localAnchorB.SetV(_arg1.localAnchorB); m_linearMass.SetZero(); m_angularMass = 0; m_linearImpulse.SetZero(); m_angularImpulse = 0; m_maxForce = _arg1.maxForce; m_maxTorque = _arg1.maxTorque; } public function SetMaxForce(_arg1:Number):void{ m_maxForce = _arg1; } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local8:Number; var _local10:Number; var _local12:Number; var _local13:Number; var _local14:b2Mat22; var _local15:b2Vec2; _local4 = m_bodyA; _local5 = m_bodyB; _local2 = _local4.m_xf.R; _local6 = (m_localAnchorA.x - _local4.m_sweep.localCenter.x); var _local7:Number = (m_localAnchorA.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_localAnchorB.x - _local5.m_sweep.localCenter.x); var _local9:Number = (m_localAnchorB.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; _local10 = _local4.m_invMass; var _local11:Number = _local5.m_invMass; _local12 = _local4.m_invI; _local13 = _local5.m_invI; _local14 = new b2Mat22(); _local14.col1.x = (_local10 + _local11); _local14.col2.x = 0; _local14.col1.y = 0; _local14.col2.y = (_local10 + _local11); _local14.col1.x = (_local14.col1.x + ((_local12 * _local7) * _local7)); _local14.col2.x = (_local14.col2.x + ((-(_local12) * _local6) * _local7)); _local14.col1.y = (_local14.col1.y + ((-(_local12) * _local6) * _local7)); _local14.col2.y = (_local14.col2.y + ((_local12 * _local6) * _local6)); _local14.col1.x = (_local14.col1.x + ((_local13 * _local9) * _local9)); _local14.col2.x = (_local14.col2.x + ((-(_local13) * _local8) * _local9)); _local14.col1.y = (_local14.col1.y + ((-(_local13) * _local8) * _local9)); _local14.col2.y = (_local14.col2.y + ((_local13 * _local8) * _local8)); _local14.GetInverse(m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > 0){ m_angularMass = (1 / m_angularMass); }; if (_arg1.warmStarting){ m_linearImpulse.x = (m_linearImpulse.x * _arg1.dtRatio); m_linearImpulse.y = (m_linearImpulse.y * _arg1.dtRatio); m_angularImpulse = (m_angularImpulse * _arg1.dtRatio); _local15 = m_linearImpulse; _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local10 * _local15.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local10 * _local15.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local12 * (((_local6 * _local15.y) - (_local7 * _local15.x)) + m_angularImpulse))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local11 * _local15.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local11 * _local15.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local13 * (((_local8 * _local15.y) - (_local9 * _local15.x)) + m_angularImpulse))); } else { m_linearImpulse.SetZero(); m_angularImpulse = 0; }; } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchorB)); } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchorA)); } override public function GetReactionTorque(_arg1:Number):Number{ return ((_arg1 * m_angularImpulse)); } public function SetMaxTorque(_arg1:Number):void{ m_maxTorque = _arg1; } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ return (true); } public function GetMaxTorque():Number{ return (m_maxTorque); } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local18:Number; var _local4:b2Body = m_bodyA; var _local5:b2Body = m_bodyB; var _local6:b2Vec2 = _local4.m_linearVelocity; var _local7:Number = _local4.m_angularVelocity; var _local8:b2Vec2 = _local5.m_linearVelocity; var _local9:Number = _local5.m_angularVelocity; var _local10:Number = _local4.m_invMass; var _local11:Number = _local5.m_invMass; var _local12:Number = _local4.m_invI; var _local13:Number = _local5.m_invI; _local2 = _local4.m_xf.R; var _local14:Number = (m_localAnchorA.x - _local4.m_sweep.localCenter.x); var _local15:Number = (m_localAnchorA.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local14) + (_local2.col2.x * _local15)); _local15 = ((_local2.col1.y * _local14) + (_local2.col2.y * _local15)); _local14 = _local3; _local2 = _local5.m_xf.R; var _local16:Number = (m_localAnchorB.x - _local5.m_sweep.localCenter.x); var _local17:Number = (m_localAnchorB.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local16) + (_local2.col2.x * _local17)); _local17 = ((_local2.col1.y * _local16) + (_local2.col2.y * _local17)); _local16 = _local3; var _local19:Number = (_local9 - _local7); var _local20:Number = (-(m_angularMass) * _local19); var _local21:Number = m_angularImpulse; _local18 = (_arg1.dt * m_maxTorque); m_angularImpulse = b2Math.Clamp((m_angularImpulse + _local20), -(_local18), _local18); _local20 = (m_angularImpulse - _local21); _local7 = (_local7 - (_local12 * _local20)); _local9 = (_local9 + (_local13 * _local20)); var _local22:Number = (((_local8.x - (_local9 * _local17)) - _local6.x) + (_local7 * _local15)); var _local23:Number = (((_local8.y + (_local9 * _local16)) - _local6.y) - (_local7 * _local14)); var _local24:b2Vec2 = b2Math.MulMV(m_linearMass, new b2Vec2(-(_local22), -(_local23))); var _local25:b2Vec2 = m_linearImpulse.Copy(); m_linearImpulse.Add(_local24); _local18 = (_arg1.dt * m_maxForce); if (m_linearImpulse.LengthSquared() > (_local18 * _local18)){ m_linearImpulse.Normalize(); m_linearImpulse.Multiply(_local18); }; _local24 = b2Math.SubtractVV(m_linearImpulse, _local25); _local6.x = (_local6.x - (_local10 * _local24.x)); _local6.y = (_local6.y - (_local10 * _local24.y)); _local7 = (_local7 - (_local12 * ((_local14 * _local24.y) - (_local15 * _local24.x)))); _local8.x = (_local8.x + (_local11 * _local24.x)); _local8.y = (_local8.y + (_local11 * _local24.y)); _local9 = (_local9 + (_local13 * ((_local16 * _local24.y) - (_local17 * _local24.x)))); _local4.m_angularVelocity = _local7; _local5.m_angularVelocity = _local9; } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2((_arg1 * m_linearImpulse.x), (_arg1 * m_linearImpulse.y))); } public function GetMaxForce():Number{ return (m_maxForce); } } }//package Box2D.Dynamics.JointsSection 61//b2FrictionJointDef (Box2D.Dynamics.Joints.b2FrictionJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2FrictionJointDef extends b2JointDef { public var localAnchorA:b2Vec2; public var maxTorque:Number; public var maxForce:Number; public var localAnchorB:b2Vec2; public function b2FrictionJointDef(){ localAnchorA = new b2Vec2(); localAnchorB = new b2Vec2(); super(); type = b2Joint.e_frictionJoint; maxForce = 0; maxTorque = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ bodyA = _arg1; bodyB = _arg2; localAnchorA.SetV(bodyA.GetLocalPoint(_arg3)); localAnchorB.SetV(bodyB.GetLocalPoint(_arg3)); } } }//package Box2D.Dynamics.JointsSection 62//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { private var m_ground2:b2Body; private var m_groundAnchor1:b2Vec2; private var m_groundAnchor2:b2Vec2; private var m_localAnchor1:b2Vec2; private var m_localAnchor2:b2Vec2; private var m_ratio:Number; private var m_mass:Number; private var m_impulse:Number; private var m_prismatic2:b2PrismaticJoint; private var m_ground1:b2Body; private var m_revolute1:b2RevoluteJoint; private var m_revolute2:b2RevoluteJoint; private var m_prismatic1:b2PrismaticJoint; private var m_constant:Number; private var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); var _local2:int = _arg1.joint1.m_type; var _local3:int = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.GetBodyA(); m_bodyA = _arg1.joint1.GetBodyB(); 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.GetBodyA(); m_bodyB = _arg1.joint2.GetBodyB(); 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_impulse = 0; } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4: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 _local2:b2Body = m_ground1; var _local3:b2Body = m_ground2; _local4 = m_bodyA; var _local5:b2Body = m_bodyB; var _local14:Number = 0; m_J.SetZero(); if (m_revolute1){ m_J.angularA = -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.linearA.Set(-(_local6), -(_local7)); m_J.angularA = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angularB = -(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.linearB.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angularB = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = ((_local14 > 0)) ? (1 / _local14) : 0; if (_arg1.warmStarting){ _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * m_impulse) * m_J.linearA.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * m_impulse) * m_J.linearA.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * m_impulse) * m_J.angularA)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * m_impulse) * m_J.linearB.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * m_impulse) * m_J.linearB.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * m_impulse) * m_J.angularB)); } else { m_impulse = 0; }; } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; var _local4:Number = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local5:Number = (-(m_mass) * _local4); m_impulse = (m_impulse + _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local5) * m_J.linearA.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local5) * m_J.linearA.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local5) * m_J.angularA)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local5) * m_J.linearB.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local5) * m_J.linearB.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local5) * m_J.angularB)); } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchor1)); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchor2)); } public function SetRatio(_arg1:Number):void{ m_ratio = _arg1; } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2(((_arg1 * m_impulse) * m_J.linearB.x), ((_arg1 * m_impulse) * m_J.linearB.y))); } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local5:Number; var _local6:Number; var _local2:Number = 0; var _local3:b2Body = m_bodyA; var _local4:b2Body = m_bodyB; if (m_revolute1){ _local5 = m_revolute1.GetJointAngle(); } else { _local5 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local6 = m_revolute2.GetJointAngle(); } else { _local6 = m_prismatic2.GetJointTranslation(); }; var _local7:Number = (m_constant - (_local5 + (m_ratio * _local6))); var _local8:Number = (-(m_mass) * _local7); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local8) * m_J.linearA.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local8) * m_J.linearA.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local8) * m_J.angularA)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local4.m_invMass * _local8) * m_J.linearB.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local4.m_invMass * _local8) * m_J.linearB.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local4.m_invI * _local8) * m_J.angularB)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); return ((_local2 < b2Settings.b2_linearSlop)); } override public function GetReactionTorque(_arg1:Number):Number{ var _local2:b2Mat22 = m_bodyB.m_xf.R; var _local3:Number = (m_localAnchor1.x - m_bodyB.m_sweep.localCenter.x); var _local4:Number = (m_localAnchor1.y - m_bodyB.m_sweep.localCenter.y); var _local5:Number = ((_local2.col1.x * _local3) + (_local2.col2.x * _local4)); _local4 = ((_local2.col1.y * _local3) + (_local2.col2.y * _local4)); _local3 = _local5; var _local6:Number = (m_impulse * m_J.linearB.x); var _local7:Number = (m_impulse * m_J.linearB.y); return ((_arg1 * (((m_impulse * m_J.angularB) - (_local3 * _local7)) + (_local4 * _local6)))); } public function GetRatio():Number{ return (m_ratio); } } }//package Box2D.Dynamics.JointsSection 63//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint1:b2Joint; public var joint2:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.JointsSection 64//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var angularB:Number; public var linearA:b2Vec2; public var linearB:b2Vec2; public var angularA:Number; public function b2Jacobian(){ linearA = new b2Vec2(); linearB = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linearA.SetV(_arg1); angularA = _arg2; linearB.SetV(_arg3); angularB = _arg4; } public function SetZero():void{ linearA.SetZero(); angularA = 0; linearB.SetZero(); angularB = 0; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linearA.x * _arg1.x) + (linearA.y * _arg1.y)) + (angularA * _arg2)) + ((linearB.x * _arg3.x) + (linearB.y * _arg3.y))) + (angularB * _arg4))); } } }//package Box2D.Dynamics.JointsSection 65//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Joint { b2internal var m_islandFlag:Boolean; b2internal var m_prev:b2Joint; b2internal var m_invMassA:Number; b2internal var m_localCenterA:b2Vec2; b2internal var m_type:int; b2internal var m_bodyA:b2Body; b2internal var m_bodyB:b2Body; b2internal var m_edgeA:b2JointEdge; b2internal var m_edgeB:b2JointEdge; b2internal var m_next:b2Joint; private var m_userData; b2internal var m_invMassB:Number; b2internal var m_localCenterB:b2Vec2; b2internal var m_invIB:Number; b2internal var m_collideConnected:Boolean; b2internal var m_invIA:Number; b2internal static const e_prismaticJoint:int = 2; b2internal static const e_weldJoint:int = 8; b2internal static const e_equalLimits:int = 3; b2internal static const e_frictionJoint:int = 9; b2internal static const e_lineJoint:int = 7; b2internal static const e_gearJoint:int = 6; b2internal static const e_atUpperLimit:int = 2; b2internal static const e_atLowerLimit:int = 1; b2internal static const e_revoluteJoint:int = 1; b2internal static const e_inactiveLimit:int = 0; b2internal static const e_pulleyJoint:int = 4; b2internal static const e_unknownJoint:int = 0; b2internal static const e_distanceJoint:int = 3; b2internal static const e_mouseJoint:int = 5; public function b2Joint(_arg1:b2JointDef){ m_edgeA = new b2JointEdge(); m_edgeB = new b2JointEdge(); m_localCenterA = new b2Vec2(); m_localCenterB = new b2Vec2(); super(); b2Settings.b2Assert(!((_arg1.bodyA == _arg1.bodyB))); m_type = _arg1.type; m_prev = null; m_next = null; m_bodyA = _arg1.bodyA; m_bodyB = _arg1.bodyB; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetBodyB():b2Body{ return (m_bodyB); } public function GetNext():b2Joint{ return (m_next); } public function GetAnchorA():b2Vec2{ return (null); } public function GetType():int{ return (m_type); } public function GetAnchorB():b2Vec2{ return (null); } public function GetBodyA():b2Body{ return (m_bodyA); } public function GetReactionTorque(_arg1:Number):Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce(_arg1:Number):b2Vec2{ return (null); } b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ return (false); } public function IsActive():Boolean{ return (((m_bodyA.IsActive()) && (m_bodyB.IsActive()))); } public function SetUserData(_arg1):void{ m_userData = _arg1; } b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } b2internal function FinalizeVelocityConstraints():void{ } b2internal static function Destroy(_arg1:b2Joint, _arg2):void{ } b2internal static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; case e_lineJoint: _local3 = new b2LineJoint((_arg1 as b2LineJointDef)); break; case e_weldJoint: _local3 = new b2WeldJoint((_arg1 as b2WeldJointDef)); break; case e_frictionJoint: _local3 = new b2FrictionJoint((_arg1 as b2FrictionJointDef)); break; default: break; }; return (_local3); } } }//package Box2D.Dynamics.JointsSection 66//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var bodyB:b2Body; public var type:int; public var userData; public var collideConnected:Boolean; public var bodyA:b2Body; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; bodyA = null; bodyB = null; collideConnected = false; } } }//package Box2D.Dynamics.JointsSection 67//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; public var joint:b2Joint; } }//package Box2D.Dynamics.JointsSection 68//b2LineJoint (Box2D.Dynamics.Joints.b2LineJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2LineJoint extends b2Joint { private var m_a1:Number; private var m_a2:Number; private var m_perp:b2Vec2; private var m_lowerTranslation:Number; b2internal var m_localXAxis1:b2Vec2; private var m_impulse:b2Vec2; private var m_enableLimit:Boolean; private var m_maxMotorForce:Number; private var m_localYAxis1:b2Vec2; private var m_s2:Number; private var m_axis:b2Vec2; private var m_motorMass:Number; private var m_s1:Number; private var m_upperTranslation:Number; b2internal var m_localAnchor1:b2Vec2; b2internal var m_localAnchor2:b2Vec2; private var m_limitState:int; private var m_motorImpulse:Number; private var m_motorSpeed:Number; private var m_enableMotor:Boolean; private var m_K:b2Mat22; public function b2LineJoint(_arg1:b2LineJointDef){ 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_axis = new b2Vec2(); m_perp = new b2Vec2(); m_K = new b2Mat22(); m_impulse = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchorA); m_localAnchor2.SetV(_arg1.localAnchorB); m_localXAxis1.SetV(_arg1.localAxisA); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_impulse.SetZero(); m_motorMass = 0; m_motorImpulse = 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; m_limitState = e_inactiveLimit; m_axis.SetZero(); m_perp.SetZero(); } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:b2Vec2; var _local19:b2Vec2; var _local20:Number; var _local21:Number; var _local22:Number; var _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; var _local4:b2Vec2 = _local2.m_linearVelocity; var _local5:Number = _local2.m_angularVelocity; var _local6:b2Vec2 = _local3.m_linearVelocity; var _local7:Number = _local3.m_angularVelocity; if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local13 = ((((m_axis.x * (_local6.x - _local4.x)) + (m_axis.y * (_local6.y - _local4.y))) + (m_a2 * _local7)) - (m_a1 * _local5)); _local14 = (m_motorMass * (m_motorSpeed - _local13)); _local15 = m_motorImpulse; _local16 = (_arg1.dt * m_maxMotorForce); m_motorImpulse = b2Math.Clamp((m_motorImpulse + _local14), -(_local16), _local16); _local14 = (m_motorImpulse - _local15); _local8 = (_local14 * m_axis.x); _local9 = (_local14 * m_axis.y); _local10 = (_local14 * m_a1); _local11 = (_local14 * m_a2); _local4.x = (_local4.x - (m_invMassA * _local8)); _local4.y = (_local4.y - (m_invMassA * _local9)); _local5 = (_local5 - (m_invIA * _local10)); _local6.x = (_local6.x + (m_invMassB * _local8)); _local6.y = (_local6.y + (m_invMassB * _local9)); _local7 = (_local7 + (m_invIB * _local11)); }; var _local12:Number = ((((m_perp.x * (_local6.x - _local4.x)) + (m_perp.y * (_local6.y - _local4.y))) + (m_s2 * _local7)) - (m_s1 * _local5)); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local17 = ((((m_axis.x * (_local6.x - _local4.x)) + (m_axis.y * (_local6.y - _local4.y))) + (m_a2 * _local7)) - (m_a1 * _local5)); _local18 = m_impulse.Copy(); _local19 = m_K.Solve(new b2Vec2(), -(_local12), -(_local17)); m_impulse.Add(_local19); if (m_limitState == e_atLowerLimit){ m_impulse.y = b2Math.Max(m_impulse.y, 0); } else { if (m_limitState == e_atUpperLimit){ m_impulse.y = b2Math.Min(m_impulse.y, 0); }; }; _local20 = (-(_local12) - ((m_impulse.y - _local18.y) * m_K.col2.x)); if (m_K.col1.x != 0){ _local21 = ((_local20 / m_K.col1.x) + _local18.x); } else { _local21 = _local18.x; }; m_impulse.x = _local21; _local19.x = (m_impulse.x - _local18.x); _local19.y = (m_impulse.y - _local18.y); _local8 = ((_local19.x * m_perp.x) + (_local19.y * m_axis.x)); _local9 = ((_local19.x * m_perp.y) + (_local19.y * m_axis.y)); _local10 = ((_local19.x * m_s1) + (_local19.y * m_a1)); _local11 = ((_local19.x * m_s2) + (_local19.y * m_a2)); _local4.x = (_local4.x - (m_invMassA * _local8)); _local4.y = (_local4.y - (m_invMassA * _local9)); _local5 = (_local5 - (m_invIA * _local10)); _local6.x = (_local6.x + (m_invMassB * _local8)); _local6.y = (_local6.y + (m_invMassB * _local9)); _local7 = (_local7 + (m_invIB * _local11)); } else { if (m_K.col1.x != 0){ _local22 = (-(_local12) / m_K.col1.x); } else { _local22 = 0; }; m_impulse.x = (m_impulse.x + _local22); _local8 = (_local22 * m_perp.x); _local9 = (_local22 * m_perp.y); _local10 = (_local22 * m_s1); _local11 = (_local22 * m_s2); _local4.x = (_local4.x - (m_invMassA * _local8)); _local4.y = (_local4.y - (m_invMassA * _local9)); _local5 = (_local5 - (m_invIA * _local10)); _local6.x = (_local6.x + (m_invMassB * _local8)); _local6.y = (_local6.y + (m_invMassB * _local9)); _local7 = (_local7 + (m_invIB * _local11)); }; _local2.m_linearVelocity.SetV(_local4); _local2.m_angularVelocity = _local5; _local3.m_linearVelocity.SetV(_local6); _local3.m_angularVelocity = _local7; } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function EnableMotor(_arg1:Boolean):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_enableMotor = _arg1; } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchor1)); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchor2)); } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_bodyA; var _local2:b2Body = m_bodyB; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2((_arg1 * ((m_impulse.x * m_perp.x) + ((m_motorImpulse + m_impulse.y) * m_axis.x))), (_arg1 * ((m_impulse.x * m_perp.y) + ((m_motorImpulse + m_impulse.y) * m_axis.y))))); } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:Number; var _local10:b2Mat22; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local4:b2Body = m_bodyA; var _local5:b2Body = m_bodyB; var _local6:b2Vec2 = _local4.m_sweep.c; var _local7:Number = _local4.m_sweep.a; var _local8:b2Vec2 = _local5.m_sweep.c; var _local9:Number = _local5.m_sweep.a; var _local16:Number = 0; var _local17:Number = 0; var _local18:Boolean; var _local19:Number = 0; var _local20:b2Mat22 = b2Mat22.FromAngle(_local7); var _local21:b2Mat22 = b2Mat22.FromAngle(_local9); _local10 = _local20; var _local22:Number = (m_localAnchor1.x - m_localCenterA.x); var _local23:Number = (m_localAnchor1.y - m_localCenterA.y); _local11 = ((_local10.col1.x * _local22) + (_local10.col2.x * _local23)); _local23 = ((_local10.col1.y * _local22) + (_local10.col2.y * _local23)); _local22 = _local11; _local10 = _local21; var _local24:Number = (m_localAnchor2.x - m_localCenterB.x); var _local25:Number = (m_localAnchor2.y - m_localCenterB.y); _local11 = ((_local10.col1.x * _local24) + (_local10.col2.x * _local25)); _local25 = ((_local10.col1.y * _local24) + (_local10.col2.y * _local25)); _local24 = _local11; var _local26:Number = (((_local8.x + _local24) - _local6.x) - _local22); var _local27:Number = (((_local8.y + _local25) - _local6.y) - _local23); if (m_enableLimit){ m_axis = b2Math.MulMV(_local20, m_localXAxis1); m_a1 = (((_local26 + _local22) * m_axis.y) - ((_local27 + _local23) * m_axis.x)); m_a2 = ((_local24 * m_axis.y) - (_local25 * m_axis.x)); _local34 = ((m_axis.x * _local26) + (m_axis.y * _local27)); if (b2Math.Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ _local19 = b2Math.Clamp(_local34, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local16 = b2Math.Abs(_local34); _local18 = true; } else { if (_local34 <= m_lowerTranslation){ _local19 = b2Math.Clamp(((_local34 - m_lowerTranslation) + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local16 = (m_lowerTranslation - _local34); _local18 = true; } else { if (_local34 >= m_upperTranslation){ _local19 = b2Math.Clamp(((_local34 - m_upperTranslation) + b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local16 = (_local34 - m_upperTranslation); _local18 = true; }; }; }; }; m_perp = b2Math.MulMV(_local20, m_localYAxis1); m_s1 = (((_local26 + _local22) * m_perp.y) - ((_local27 + _local23) * m_perp.x)); m_s2 = ((_local24 * m_perp.y) - (_local25 * m_perp.x)); var _local28:b2Vec2 = new b2Vec2(); var _local29:Number = ((m_perp.x * _local26) + (m_perp.y * _local27)); _local16 = b2Math.Max(_local16, b2Math.Abs(_local29)); _local17 = 0; if (_local18){ _local12 = m_invMassA; _local13 = m_invMassB; _local14 = m_invIA; _local15 = m_invIB; m_K.col1.x = (((_local12 + _local13) + ((_local14 * m_s1) * m_s1)) + ((_local15 * m_s2) * m_s2)); m_K.col1.y = (((_local14 * m_s1) * m_a1) + ((_local15 * m_s2) * m_a2)); m_K.col2.x = m_K.col1.y; m_K.col2.y = (((_local12 + _local13) + ((_local14 * m_a1) * m_a1)) + ((_local15 * m_a2) * m_a2)); m_K.Solve(_local28, -(_local29), -(_local19)); } else { _local12 = m_invMassA; _local13 = m_invMassB; _local14 = m_invIA; _local15 = m_invIB; _local35 = (((_local12 + _local13) + ((_local14 * m_s1) * m_s1)) + ((_local15 * m_s2) * m_s2)); if (_local35 != 0){ _local36 = (-(_local29) / _local35); } else { _local36 = 0; }; _local28.x = _local36; _local28.y = 0; }; var _local30:Number = ((_local28.x * m_perp.x) + (_local28.y * m_axis.x)); var _local31:Number = ((_local28.x * m_perp.y) + (_local28.y * m_axis.y)); var _local32:Number = ((_local28.x * m_s1) + (_local28.y * m_a1)); var _local33:Number = ((_local28.x * m_s2) + (_local28.y * m_a2)); _local6.x = (_local6.x - (m_invMassA * _local30)); _local6.y = (_local6.y - (m_invMassA * _local31)); _local7 = (_local7 - (m_invIA * _local32)); _local8.x = (_local8.x + (m_invMassB * _local30)); _local8.y = (_local8.y + (m_invMassB * _local31)); _local9 = (_local9 + (m_invIB * _local33)); _local4.m_sweep.a = _local7; _local5.m_sweep.a = _local9; _local4.SynchronizeTransform(); _local5.SynchronizeTransform(); return ((((_local16 <= b2Settings.b2_linearSlop)) && ((_local17 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_bodyA; var _local2:b2Body = m_bodyB; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; m_localCenterA.SetV(_local2.GetLocalCenter()); m_localCenterB.SetV(_local3.GetLocalCenter()); var _local6:b2Transform = _local2.GetTransform(); var _local7:b2Transform = _local3.GetTransform(); _local4 = _local2.m_xf.R; var _local8:Number = (m_localAnchor1.x - m_localCenterA.x); var _local9:Number = (m_localAnchor1.y - m_localCenterA.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local4 = _local3.m_xf.R; var _local10:Number = (m_localAnchor2.x - m_localCenterB.x); var _local11:Number = (m_localAnchor2.y - m_localCenterB.y); _local5 = ((_local4.col1.x * _local10) + (_local4.col2.x * _local11)); _local11 = ((_local4.col1.y * _local10) + (_local4.col2.y * _local11)); _local10 = _local5; var _local12:Number = (((_local3.m_sweep.c.x + _local10) - _local2.m_sweep.c.x) - _local8); var _local13:Number = (((_local3.m_sweep.c.y + _local11) - _local2.m_sweep.c.y) - _local9); m_invMassA = _local2.m_invMass; m_invMassB = _local3.m_invMass; m_invIA = _local2.m_invI; m_invIB = _local3.m_invI; m_axis.SetV(b2Math.MulMV(_local6.R, m_localXAxis1)); m_a1 = (((_local12 + _local8) * m_axis.y) - ((_local13 + _local9) * m_axis.x)); m_a2 = ((_local10 * m_axis.y) - (_local11 * m_axis.x)); m_motorMass = (((m_invMassA + m_invMassB) + ((m_invIA * m_a1) * m_a1)) + ((m_invIB * m_a2) * m_a2)); m_motorMass = ((m_motorMass > Number.MIN_VALUE)) ? (1 / m_motorMass) : 0; m_perp.SetV(b2Math.MulMV(_local6.R, m_localYAxis1)); m_s1 = (((_local12 + _local8) * m_perp.y) - ((_local13 + _local9) * m_perp.x)); m_s2 = ((_local10 * m_perp.y) - (_local11 * m_perp.x)); var _local14:Number = m_invMassA; var _local15:Number = m_invMassB; var _local16:Number = m_invIA; var _local17:Number = m_invIB; m_K.col1.x = (((_local14 + _local15) + ((_local16 * m_s1) * m_s1)) + ((_local17 * m_s2) * m_s2)); m_K.col1.y = (((_local16 * m_s1) * m_a1) + ((_local17 * m_s2) * m_a2)); m_K.col2.x = m_K.col1.y; m_K.col2.y = (((_local14 + _local15) + ((_local16 * m_a1) * m_a1)) + ((_local17 * m_a2) * m_a2)); if (m_enableLimit){ _local18 = ((m_axis.x * _local12) + (m_axis.y * _local13)); if (b2Math.Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local18 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitState = e_atLowerLimit; m_impulse.y = 0; }; } else { if (_local18 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitState = e_atUpperLimit; m_impulse.y = 0; }; } else { m_limitState = e_inactiveLimit; m_impulse.y = 0; }; }; }; } else { m_limitState = e_inactiveLimit; }; if (m_enableMotor == false){ m_motorImpulse = 0; }; if (_arg1.warmStarting){ m_impulse.x = (m_impulse.x * _arg1.dtRatio); m_impulse.y = (m_impulse.y * _arg1.dtRatio); m_motorImpulse = (m_motorImpulse * _arg1.dtRatio); _local19 = ((m_impulse.x * m_perp.x) + ((m_motorImpulse + m_impulse.y) * m_axis.x)); _local20 = ((m_impulse.x * m_perp.y) + ((m_motorImpulse + m_impulse.y) * m_axis.y)); _local21 = ((m_impulse.x * m_s1) + ((m_motorImpulse + m_impulse.y) * m_a1)); _local22 = ((m_impulse.x * m_s2) + ((m_motorImpulse + m_impulse.y) * m_a2)); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (m_invMassA * _local19)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (m_invMassA * _local20)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (m_invIA * _local21)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (m_invMassB * _local19)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (m_invMassB * _local20)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (m_invIB * _local22)); } else { m_impulse.SetZero(); m_motorImpulse = 0; }; } public function GetMotorForce():Number{ return (m_motorImpulse); } public function SetMaxMotorForce(_arg1:Number):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_maxMotorForce = _arg1; } public function EnableLimit(_arg1:Boolean):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_enableLimit = _arg1; } public function GetMaxMotorForce():Number{ return (m_maxMotorForce); } override public function GetReactionTorque(_arg1:Number):Number{ return ((_arg1 * m_impulse.y)); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } } }//package Box2D.Dynamics.JointsSection 69//b2LineJointDef (Box2D.Dynamics.Joints.b2LineJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2LineJointDef extends b2JointDef { public var localAnchorA:b2Vec2; public var localAnchorB:b2Vec2; public var upperTranslation:Number; public var enableMotor:Boolean; public var localAxisA:b2Vec2; public var enableLimit:Boolean; public var motorSpeed:Number; public var maxMotorForce:Number; public var lowerTranslation:Number; public function b2LineJointDef(){ localAnchorA = new b2Vec2(); localAnchorB = new b2Vec2(); localAxisA = new b2Vec2(); super(); type = b2Joint.e_lineJoint; localAxisA.Set(1, 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{ bodyA = _arg1; bodyB = _arg2; localAnchorA = bodyA.GetLocalPoint(_arg3); localAnchorB = bodyB.GetLocalPoint(_arg3); localAxisA = bodyA.GetLocalVector(_arg4); } } }//package Box2D.Dynamics.JointsSection 70//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { private var K2:b2Mat22; private var K1:b2Mat22; private var m_beta:Number; private var K:b2Mat22; private var m_target:b2Vec2; private var m_gamma:Number; private var m_mass:b2Mat22; private var m_impulse:b2Vec2; private var m_localAnchor:b2Vec2; private var m_C:b2Vec2; private var m_maxForce:Number; private var m_dampingRatio:Number; private var m_frequencyHz:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local2:Number; var _local4:b2Mat22; 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_bodyB.m_xf.position.x); var _local3:Number = (m_target.y - m_bodyB.m_xf.position.y); _local4 = m_bodyB.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(); m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_beta = 0; m_gamma = 0; } public function SetFrequency(_arg1:Number):void{ m_frequencyHz = _arg1; } public function SetTarget(_arg1:b2Vec2):void{ if (m_bodyB.IsAwake() == false){ m_bodyB.SetAwake(true); }; m_target = _arg1; } public function GetFrequency():Number{ return (m_frequencyHz); } public function SetMaxForce(_arg1:Number):void{ m_maxForce = _arg1; } public function SetDampingRatio(_arg1:Number):void{ m_dampingRatio = _arg1; } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local7:b2Mat22; var _local11:Number; var _local12:Number; var _local2:b2Body = m_bodyB; var _local3:Number = _local2.GetMass(); var _local4:Number = ((2 * Math.PI) * m_frequencyHz); var _local5:Number = (((2 * _local3) * m_dampingRatio) * _local4); var _local6:Number = ((_local3 * _local4) * _local4); m_gamma = (_arg1.dt * (_local5 + (_arg1.dt * _local6))); m_gamma = ((m_gamma)!=0) ? (1 / m_gamma) : 0; m_beta = ((_arg1.dt * _local6) * m_gamma); _local7 = _local2.m_xf.R; var _local8:Number = (m_localAnchor.x - _local2.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor.y - _local2.m_sweep.localCenter.y); var _local10:Number = ((_local7.col1.x * _local8) + (_local7.col2.x * _local9)); _local9 = ((_local7.col1.y * _local8) + (_local7.col2.y * _local9)); _local8 = _local10; _local11 = _local2.m_invMass; _local12 = _local2.m_invI; K1.col1.x = _local11; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local11; K2.col1.x = ((_local12 * _local9) * _local9); K2.col2.x = ((-(_local12) * _local8) * _local9); K2.col1.y = ((-(_local12) * _local8) * _local9); K2.col2.y = ((_local12 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.GetInverse(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local8) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local9) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); m_impulse.x = (m_impulse.x * _arg1.dtRatio); m_impulse.y = (m_impulse.y * _arg1.dtRatio); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local11 * m_impulse.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local11 * m_impulse.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * ((_local8 * m_impulse.y) - (_local9 * m_impulse.x)))); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchor)); } override public function GetAnchorA():b2Vec2{ return (m_target); } public function GetTarget():b2Vec2{ return (m_target); } override public function GetReactionTorque(_arg1:Number):Number{ return (0); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2((_arg1 * m_impulse.x), (_arg1 * m_impulse.y))); } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ return (true); } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local2:b2Body = m_bodyB; _local3 = _local2.m_xf.R; var _local6:Number = (m_localAnchor.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; var _local8:Number = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); var _local9:Number = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + (m_beta * m_C.x)) + (m_gamma * m_impulse.x)); _local5 = ((_local9 + (m_beta * m_C.y)) + (m_gamma * m_impulse.y)); var _local10:Number = -(((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); var _local11:Number = -(((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); var _local12:Number = m_impulse.x; var _local13:Number = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); var _local14:Number = (_arg1.dt * m_maxForce); if (m_impulse.LengthSquared() > (_local14 * _local14)){ m_impulse.Multiply((_local14 / m_impulse.Length())); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local10)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local11)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local11) - (_local7 * _local10)))); } public function GetMaxForce():Number{ return (m_maxForce); } public function GetDampingRatio():Number{ return (m_dampingRatio); } } }//package Box2D.Dynamics.JointsSection 71//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var target:b2Vec2; public var maxForce:Number; public var dampingRatio:Number; public var frequencyHz:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; } } }//package Box2D.Dynamics.JointsSection 72//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { private var m_a1:Number; private var m_a2:Number; private var m_perp:b2Vec2; private var m_lowerTranslation:Number; b2internal var m_localXAxis1:b2Vec2; private var m_refAngle:Number; private var m_impulse:b2Vec3; private var m_enableLimit:Boolean; private var m_maxMotorForce:Number; private var m_localYAxis1:b2Vec2; private var m_s2:Number; private var m_axis:b2Vec2; private var m_motorMass:Number; private var m_s1:Number; private var m_upperTranslation:Number; b2internal var m_localAnchor1:b2Vec2; b2internal var m_localAnchor2:b2Vec2; private var m_limitState:int; private var m_motorImpulse:Number; private var m_motorSpeed:Number; private var m_enableMotor:Boolean; private var m_K:b2Mat33; 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_axis = new b2Vec2(); m_perp = new b2Vec2(); m_K = new b2Mat33(); m_impulse = new b2Vec3(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchorA); m_localAnchor2.SetV(_arg1.localAnchorB); m_localXAxis1.SetV(_arg1.localAxisA); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_impulse.SetZero(); m_motorMass = 0; m_motorImpulse = 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; m_limitState = e_inactiveLimit; m_axis.SetZero(); m_perp.SetZero(); } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:b2Vec3; var _local20:b2Vec3; var _local21:Number; var _local22:Number; var _local23:b2Vec2; var _local24:b2Vec2; var _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; var _local4:b2Vec2 = _local2.m_linearVelocity; var _local5:Number = _local2.m_angularVelocity; var _local6:b2Vec2 = _local3.m_linearVelocity; var _local7:Number = _local3.m_angularVelocity; if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local14 = ((((m_axis.x * (_local6.x - _local4.x)) + (m_axis.y * (_local6.y - _local4.y))) + (m_a2 * _local7)) - (m_a1 * _local5)); _local15 = (m_motorMass * (m_motorSpeed - _local14)); _local16 = m_motorImpulse; _local17 = (_arg1.dt * m_maxMotorForce); m_motorImpulse = b2Math.Clamp((m_motorImpulse + _local15), -(_local17), _local17); _local15 = (m_motorImpulse - _local16); _local8 = (_local15 * m_axis.x); _local9 = (_local15 * m_axis.y); _local10 = (_local15 * m_a1); _local11 = (_local15 * m_a2); _local4.x = (_local4.x - (m_invMassA * _local8)); _local4.y = (_local4.y - (m_invMassA * _local9)); _local5 = (_local5 - (m_invIA * _local10)); _local6.x = (_local6.x + (m_invMassB * _local8)); _local6.y = (_local6.y + (m_invMassB * _local9)); _local7 = (_local7 + (m_invIB * _local11)); }; var _local12:Number = ((((m_perp.x * (_local6.x - _local4.x)) + (m_perp.y * (_local6.y - _local4.y))) + (m_s2 * _local7)) - (m_s1 * _local5)); var _local13:Number = (_local7 - _local5); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = ((((m_axis.x * (_local6.x - _local4.x)) + (m_axis.y * (_local6.y - _local4.y))) + (m_a2 * _local7)) - (m_a1 * _local5)); _local19 = m_impulse.Copy(); _local20 = m_K.Solve33(new b2Vec3(), -(_local12), -(_local13), -(_local18)); m_impulse.Add(_local20); if (m_limitState == e_atLowerLimit){ m_impulse.z = b2Math.Max(m_impulse.z, 0); } else { if (m_limitState == e_atUpperLimit){ m_impulse.z = b2Math.Min(m_impulse.z, 0); }; }; _local21 = (-(_local12) - ((m_impulse.z - _local19.z) * m_K.col3.x)); _local22 = (-(_local13) - ((m_impulse.z - _local19.z) * m_K.col3.y)); _local23 = m_K.Solve22(new b2Vec2(), _local21, _local22); m_K.Solve22(new b2Vec2(), _local21, _local22).x = (_local23.x + _local19.x); _local23.y = (_local23.y + _local19.y); m_impulse.x = _local23.x; m_impulse.y = _local23.y; _local20.x = (m_impulse.x - _local19.x); _local20.y = (m_impulse.y - _local19.y); _local20.z = (m_impulse.z - _local19.z); _local8 = ((_local20.x * m_perp.x) + (_local20.z * m_axis.x)); _local9 = ((_local20.x * m_perp.y) + (_local20.z * m_axis.y)); _local10 = (((_local20.x * m_s1) + _local20.y) + (_local20.z * m_a1)); _local11 = (((_local20.x * m_s2) + _local20.y) + (_local20.z * m_a2)); _local4.x = (_local4.x - (m_invMassA * _local8)); _local4.y = (_local4.y - (m_invMassA * _local9)); _local5 = (_local5 - (m_invIA * _local10)); _local6.x = (_local6.x + (m_invMassB * _local8)); _local6.y = (_local6.y + (m_invMassB * _local9)); _local7 = (_local7 + (m_invIB * _local11)); } else { _local24 = m_K.Solve22(new b2Vec2(), -(_local12), -(_local13)); m_impulse.x = (m_impulse.x + _local24.x); m_impulse.y = (m_impulse.y + _local24.y); _local8 = (_local24.x * m_perp.x); _local9 = (_local24.x * m_perp.y); _local10 = ((_local24.x * m_s1) + _local24.y); _local11 = ((_local24.x * m_s2) + _local24.y); _local4.x = (_local4.x - (m_invMassA * _local8)); _local4.y = (_local4.y - (m_invMassA * _local9)); _local5 = (_local5 - (m_invIA * _local10)); _local6.x = (_local6.x + (m_invMassB * _local8)); _local6.y = (_local6.y + (m_invMassB * _local9)); _local7 = (_local7 + (m_invIB * _local11)); }; _local2.m_linearVelocity.SetV(_local4); _local2.m_angularVelocity = _local5; _local3.m_linearVelocity.SetV(_local6); _local3.m_angularVelocity = _local7; } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function EnableMotor(_arg1:Boolean):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_enableMotor = _arg1; } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchor1)); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchor2)); } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_bodyA; var _local2:b2Body = m_bodyB; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2((_arg1 * ((m_impulse.x * m_perp.x) + ((m_motorImpulse + m_impulse.z) * m_axis.x))), (_arg1 * ((m_impulse.x * m_perp.y) + ((m_motorImpulse + m_impulse.z) * m_axis.y))))); } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:Number; var _local10:b2Mat22; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:b2Vec2; var _local4:b2Body = m_bodyA; var _local5:b2Body = m_bodyB; var _local6:b2Vec2 = _local4.m_sweep.c; var _local7:Number = _local4.m_sweep.a; var _local8:b2Vec2 = _local5.m_sweep.c; var _local9:Number = _local5.m_sweep.a; var _local16:Number = 0; var _local17:Number = 0; var _local18:Boolean; var _local19:Number = 0; var _local20:b2Mat22 = b2Mat22.FromAngle(_local7); var _local21:b2Mat22 = b2Mat22.FromAngle(_local9); _local10 = _local20; var _local22:Number = (m_localAnchor1.x - m_localCenterA.x); var _local23:Number = (m_localAnchor1.y - m_localCenterA.y); _local11 = ((_local10.col1.x * _local22) + (_local10.col2.x * _local23)); _local23 = ((_local10.col1.y * _local22) + (_local10.col2.y * _local23)); _local22 = _local11; _local10 = _local21; var _local24:Number = (m_localAnchor2.x - m_localCenterB.x); var _local25:Number = (m_localAnchor2.y - m_localCenterB.y); _local11 = ((_local10.col1.x * _local24) + (_local10.col2.x * _local25)); _local25 = ((_local10.col1.y * _local24) + (_local10.col2.y * _local25)); _local24 = _local11; var _local26:Number = (((_local8.x + _local24) - _local6.x) - _local22); var _local27:Number = (((_local8.y + _local25) - _local6.y) - _local23); if (m_enableLimit){ m_axis = b2Math.MulMV(_local20, m_localXAxis1); m_a1 = (((_local26 + _local22) * m_axis.y) - ((_local27 + _local23) * m_axis.x)); m_a2 = ((_local24 * m_axis.y) - (_local25 * m_axis.x)); _local35 = ((m_axis.x * _local26) + (m_axis.y * _local27)); if (b2Math.Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ _local19 = b2Math.Clamp(_local35, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local16 = b2Math.Abs(_local35); _local18 = true; } else { if (_local35 <= m_lowerTranslation){ _local19 = b2Math.Clamp(((_local35 - m_lowerTranslation) + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local16 = (m_lowerTranslation - _local35); _local18 = true; } else { if (_local35 >= m_upperTranslation){ _local19 = b2Math.Clamp(((_local35 - m_upperTranslation) + b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local16 = (_local35 - m_upperTranslation); _local18 = true; }; }; }; }; m_perp = b2Math.MulMV(_local20, m_localYAxis1); m_s1 = (((_local26 + _local22) * m_perp.y) - ((_local27 + _local23) * m_perp.x)); m_s2 = ((_local24 * m_perp.y) - (_local25 * m_perp.x)); var _local28:b2Vec3 = new b2Vec3(); var _local29:Number = ((m_perp.x * _local26) + (m_perp.y * _local27)); var _local30:Number = ((_local9 - _local7) - m_refAngle); _local16 = b2Math.Max(_local16, b2Math.Abs(_local29)); _local17 = b2Math.Abs(_local30); if (_local18){ _local12 = m_invMassA; _local13 = m_invMassB; _local14 = m_invIA; _local15 = m_invIB; m_K.col1.x = (((_local12 + _local13) + ((_local14 * m_s1) * m_s1)) + ((_local15 * m_s2) * m_s2)); m_K.col1.y = ((_local14 * m_s1) + (_local15 * m_s2)); m_K.col1.z = (((_local14 * m_s1) * m_a1) + ((_local15 * m_s2) * m_a2)); m_K.col2.x = m_K.col1.y; m_K.col2.y = (_local14 + _local15); m_K.col2.z = ((_local14 * m_a1) + (_local15 * m_a2)); m_K.col3.x = m_K.col1.z; m_K.col3.y = m_K.col2.z; m_K.col3.z = (((_local12 + _local13) + ((_local14 * m_a1) * m_a1)) + ((_local15 * m_a2) * m_a2)); m_K.Solve33(_local28, -(_local29), -(_local30), -(_local19)); } else { _local12 = m_invMassA; _local13 = m_invMassB; _local14 = m_invIA; _local15 = m_invIB; _local36 = (((_local12 + _local13) + ((_local14 * m_s1) * m_s1)) + ((_local15 * m_s2) * m_s2)); _local37 = ((_local14 * m_s1) + (_local15 * m_s2)); _local38 = (_local14 + _local15); m_K.col1.Set(_local36, _local37, 0); m_K.col2.Set(_local37, _local38, 0); _local39 = m_K.Solve22(new b2Vec2(), -(_local29), -(_local30)); _local28.x = _local39.x; _local28.y = _local39.y; _local28.z = 0; }; var _local31:Number = ((_local28.x * m_perp.x) + (_local28.z * m_axis.x)); var _local32:Number = ((_local28.x * m_perp.y) + (_local28.z * m_axis.y)); var _local33:Number = (((_local28.x * m_s1) + _local28.y) + (_local28.z * m_a1)); var _local34:Number = (((_local28.x * m_s2) + _local28.y) + (_local28.z * m_a2)); _local6.x = (_local6.x - (m_invMassA * _local31)); _local6.y = (_local6.y - (m_invMassA * _local32)); _local7 = (_local7 - (m_invIA * _local33)); _local8.x = (_local8.x + (m_invMassB * _local31)); _local8.y = (_local8.y + (m_invMassB * _local32)); _local9 = (_local9 + (m_invIB * _local34)); _local4.m_sweep.a = _local7; _local5.m_sweep.a = _local9; _local4.SynchronizeTransform(); _local5.SynchronizeTransform(); return ((((_local16 <= b2Settings.b2_linearSlop)) && ((_local17 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_bodyA; var _local2:b2Body = m_bodyB; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; m_localCenterA.SetV(_local2.GetLocalCenter()); m_localCenterB.SetV(_local3.GetLocalCenter()); var _local6:b2Transform = _local2.GetTransform(); var _local7:b2Transform = _local3.GetTransform(); _local4 = _local2.m_xf.R; var _local8:Number = (m_localAnchor1.x - m_localCenterA.x); var _local9:Number = (m_localAnchor1.y - m_localCenterA.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local4 = _local3.m_xf.R; var _local10:Number = (m_localAnchor2.x - m_localCenterB.x); var _local11:Number = (m_localAnchor2.y - m_localCenterB.y); _local5 = ((_local4.col1.x * _local10) + (_local4.col2.x * _local11)); _local11 = ((_local4.col1.y * _local10) + (_local4.col2.y * _local11)); _local10 = _local5; var _local12:Number = (((_local3.m_sweep.c.x + _local10) - _local2.m_sweep.c.x) - _local8); var _local13:Number = (((_local3.m_sweep.c.y + _local11) - _local2.m_sweep.c.y) - _local9); m_invMassA = _local2.m_invMass; m_invMassB = _local3.m_invMass; m_invIA = _local2.m_invI; m_invIB = _local3.m_invI; m_axis.SetV(b2Math.MulMV(_local6.R, m_localXAxis1)); m_a1 = (((_local12 + _local8) * m_axis.y) - ((_local13 + _local9) * m_axis.x)); m_a2 = ((_local10 * m_axis.y) - (_local11 * m_axis.x)); m_motorMass = (((m_invMassA + m_invMassB) + ((m_invIA * m_a1) * m_a1)) + ((m_invIB * m_a2) * m_a2)); if (m_motorMass > Number.MIN_VALUE){ m_motorMass = (1 / m_motorMass); }; m_perp.SetV(b2Math.MulMV(_local6.R, m_localYAxis1)); m_s1 = (((_local12 + _local8) * m_perp.y) - ((_local13 + _local9) * m_perp.x)); m_s2 = ((_local10 * m_perp.y) - (_local11 * m_perp.x)); var _local14:Number = m_invMassA; var _local15:Number = m_invMassB; var _local16:Number = m_invIA; var _local17:Number = m_invIB; m_K.col1.x = (((_local14 + _local15) + ((_local16 * m_s1) * m_s1)) + ((_local17 * m_s2) * m_s2)); m_K.col1.y = ((_local16 * m_s1) + (_local17 * m_s2)); m_K.col1.z = (((_local16 * m_s1) * m_a1) + ((_local17 * m_s2) * m_a2)); m_K.col2.x = m_K.col1.y; m_K.col2.y = (_local16 + _local17); m_K.col2.z = ((_local16 * m_a1) + (_local17 * m_a2)); m_K.col3.x = m_K.col1.z; m_K.col3.y = m_K.col2.z; m_K.col3.z = (((_local14 + _local15) + ((_local16 * m_a1) * m_a1)) + ((_local17 * m_a2) * m_a2)); if (m_enableLimit){ _local18 = ((m_axis.x * _local12) + (m_axis.y * _local13)); if (b2Math.Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local18 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitState = e_atLowerLimit; m_impulse.z = 0; }; } else { if (_local18 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitState = e_atUpperLimit; m_impulse.z = 0; }; } else { m_limitState = e_inactiveLimit; m_impulse.z = 0; }; }; }; } else { m_limitState = e_inactiveLimit; }; if (m_enableMotor == false){ m_motorImpulse = 0; }; if (_arg1.warmStarting){ m_impulse.x = (m_impulse.x * _arg1.dtRatio); m_impulse.y = (m_impulse.y * _arg1.dtRatio); m_motorImpulse = (m_motorImpulse * _arg1.dtRatio); _local19 = ((m_impulse.x * m_perp.x) + ((m_motorImpulse + m_impulse.z) * m_axis.x)); _local20 = ((m_impulse.x * m_perp.y) + ((m_motorImpulse + m_impulse.z) * m_axis.y)); _local21 = (((m_impulse.x * m_s1) + m_impulse.y) + ((m_motorImpulse + m_impulse.z) * m_a1)); _local22 = (((m_impulse.x * m_s2) + m_impulse.y) + ((m_motorImpulse + m_impulse.z) * m_a2)); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (m_invMassA * _local19)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (m_invMassA * _local20)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (m_invIA * _local21)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (m_invMassB * _local19)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (m_invMassB * _local20)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (m_invIB * _local22)); } else { m_impulse.SetZero(); m_motorImpulse = 0; }; } public function GetMotorForce():Number{ return (m_motorImpulse); } public function SetMaxMotorForce(_arg1:Number):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_maxMotorForce = _arg1; } public function EnableLimit(_arg1:Boolean):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_enableLimit = _arg1; } override public function GetReactionTorque(_arg1:Number):Number{ return ((_arg1 * m_impulse.y)); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } } }//package Box2D.Dynamics.JointsSection 73//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2PrismaticJointDef extends b2JointDef { public var localAnchorA:b2Vec2; public var motorSpeed:Number; public var referenceAngle:Number; public var localAnchorB:b2Vec2; public var upperTranslation:Number; public var lowerTranslation:Number; public var localAxisA:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var maxMotorForce:Number; public function b2PrismaticJointDef(){ localAnchorA = new b2Vec2(); localAnchorB = new b2Vec2(); localAxisA = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxisA.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{ bodyA = _arg1; bodyB = _arg2; localAnchorA = bodyA.GetLocalPoint(_arg3); localAnchorB = bodyB.GetLocalPoint(_arg3); localAxisA = bodyA.GetLocalVector(_arg4); referenceAngle = (bodyB.GetAngle() - bodyA.GetAngle()); } } }//package Box2D.Dynamics.JointsSection 74//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { private var m_limitState1:int; private var m_limitState2:int; private var m_ground:b2Body; private var m_maxLength2:Number; private var m_maxLength1:Number; private var m_impulse:Number; private var m_constant:Number; private var m_state:int; private var m_ratio:Number; private var m_groundAnchor1:b2Vec2; private var m_groundAnchor2:b2Vec2; private var m_localAnchor1:b2Vec2; private var m_localAnchor2:b2Vec2; private var m_limitMass1:Number; private var m_limitMass2:Number; private var m_pulleyMass:Number; private var m_limitImpulse1:Number; private var m_limitImpulse2:Number; private var m_u1:b2Vec2; private var m_u2:b2Vec2; b2internal 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_bodyA.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchorA.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchorA.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchorB.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchorB.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchorA); m_localAnchor2.SetV(_arg1.localAnchorB); m_ratio = _arg1.ratio; m_constant = (_arg1.lengthA + (m_ratio * _arg1.lengthB)); m_maxLength1 = b2Math.Min(_arg1.maxLengthA, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.Min(_arg1.maxLengthB, ((m_constant - b2_minPulleyLength) / m_ratio)); m_impulse = 0; m_limitImpulse1 = 0; m_limitImpulse2 = 0; } public function GetGroundAnchorB():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } public function GetGroundAnchorA():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchor2)); } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchor1)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2(((_arg1 * m_impulse) * m_u2.x), ((_arg1 * m_impulse) * m_u2.y))); } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local4:b2Mat22; 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 _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; var _local5:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local6:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local7:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local8:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local24:Number = 0; if (m_state == e_atUpperLimit){ _local4 = _local2.m_xf.R; _local9 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local10 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local23 = ((_local4.col1.x * _local9) + (_local4.col2.x * _local10)); _local10 = ((_local4.col1.y * _local9) + (_local4.col2.y * _local10)); _local9 = _local23; _local4 = _local3.m_xf.R; _local11 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local23 = ((_local4.col1.x * _local11) + (_local4.col2.x * _local12)); _local12 = ((_local4.col1.y * _local11) + (_local4.col2.y * _local12)); _local11 = _local23; _local13 = (_local2.m_sweep.c.x + _local9); _local14 = (_local2.m_sweep.c.y + _local10); _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); m_u1.Set((_local13 - _local5), (_local14 - _local6)); m_u2.Set((_local15 - _local7), (_local16 - _local8)); _local17 = m_u1.Length(); _local18 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local17)); } else { m_u1.SetZero(); }; if (_local18 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local18)); } else { m_u2.SetZero(); }; _local19 = ((m_constant - _local17) - (m_ratio * _local18)); _local24 = b2Math.Max(_local24, -(_local19)); _local19 = b2Math.Clamp((_local19 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local20 = (-(m_pulleyMass) * _local19); _local13 = (-(_local20) * m_u1.x); _local14 = (-(_local20) * m_u1.y); _local15 = ((-(m_ratio) * _local20) * m_u2.x); _local16 = ((-(m_ratio) * _local20) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local13)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local14)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local9 * _local14) - (_local10 * _local13)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local15)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local16)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local11 * _local16) - (_local12 * _local15)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local4 = _local2.m_xf.R; _local9 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local10 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local23 = ((_local4.col1.x * _local9) + (_local4.col2.x * _local10)); _local10 = ((_local4.col1.y * _local9) + (_local4.col2.y * _local10)); _local9 = _local23; _local13 = (_local2.m_sweep.c.x + _local9); _local14 = (_local2.m_sweep.c.y + _local10); m_u1.Set((_local13 - _local5), (_local14 - _local6)); _local17 = m_u1.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local17)); m_u1.y = (m_u1.y * (1 / _local17)); } else { m_u1.SetZero(); }; _local19 = (m_maxLength1 - _local17); _local24 = b2Math.Max(_local24, -(_local19)); _local19 = b2Math.Clamp((_local19 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local20 = (-(m_limitMass1) * _local19); _local13 = (-(_local20) * m_u1.x); _local14 = (-(_local20) * m_u1.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local13)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local14)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local9 * _local14) - (_local10 * _local13)))); _local2.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local4 = _local3.m_xf.R; _local11 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local23 = ((_local4.col1.x * _local11) + (_local4.col2.x * _local12)); _local12 = ((_local4.col1.y * _local11) + (_local4.col2.y * _local12)); _local11 = _local23; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); m_u2.Set((_local15 - _local7), (_local16 - _local8)); _local18 = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local18)); m_u2.y = (m_u2.y * (1 / _local18)); } else { m_u2.SetZero(); }; _local19 = (m_maxLength2 - _local18); _local24 = b2Math.Max(_local24, -(_local19)); _local19 = b2Math.Clamp((_local19 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local20 = (-(m_limitMass2) * _local19); _local15 = (-(_local20) * m_u2.x); _local16 = (-(_local20) * m_u2.y); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local15)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local16)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local11 * _local16) - (_local12 * _local15)))); _local3.SynchronizeTransform(); }; return ((_local24 < b2Settings.b2_linearSlop)); } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local6:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local2 = m_bodyA; _local3 = m_bodyB; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local2.m_sweep.c.x + _local5); var _local11:Number = (_local2.m_sweep.c.y + _local6); var _local12:Number = (_local3.m_sweep.c.x + _local8); var _local13:Number = (_local3.m_sweep.c.y + _local9); var _local14:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local15:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local16:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local17:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); var _local18:Number = m_u1.Length(); var _local19:Number = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; var _local20:Number = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_impulse = 0; } else { m_state = e_atUpperLimit; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitImpulse1 = 0; } else { m_limitState1 = e_atUpperLimit; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitImpulse2 = 0; } else { m_limitState2 = e_atUpperLimit; }; var _local21:Number = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); var _local22:Number = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); m_limitImpulse1 = (m_limitImpulse1 * _arg1.dtRatio); m_limitImpulse2 = (m_limitImpulse2 * _arg1.dtRatio); _local23 = ((-(m_impulse) - m_limitImpulse1) * m_u1.x); _local24 = ((-(m_impulse) - m_limitImpulse1) * m_u1.y); _local25 = (((-(m_ratio) * m_impulse) - m_limitImpulse2) * m_u2.x); _local26 = (((-(m_ratio) * m_impulse) - m_limitImpulse2) * 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_impulse = 0; m_limitImpulse1 = 0; m_limitImpulse2 = 0; }; } override public function GetReactionTorque(_arg1:Number):Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } public function GetLength2():Number{ var _local1:b2Vec2 = m_bodyB.GetWorldPoint(m_localAnchor2); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = (m_pulleyMass * -(_local18)); _local20 = m_impulse; m_impulse = b2Math.Max(0, (m_impulse + _local19)); _local19 = (m_impulse - _local20); _local14 = (-(_local19) * m_u1.x); _local15 = (-(_local19) * m_u1.y); _local16 = ((-(m_ratio) * _local19) * m_u2.x); _local17 = ((-(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 = (-(m_limitMass1) * _local18); _local20 = m_limitImpulse1; m_limitImpulse1 = b2Math.Max(0, (m_limitImpulse1 + _local19)); _local19 = (m_limitImpulse1 - _local20); _local14 = (-(_local19) * m_u1.x); _local15 = (-(_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 = (-(m_limitMass2) * _local18); _local20 = m_limitImpulse2; m_limitImpulse2 = b2Math.Max(0, (m_limitImpulse2 + _local19)); _local19 = (m_limitImpulse2 - _local20); _local16 = (-(_local19) * m_u2.x); _local17 = (-(_local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } public function GetLength1():Number{ var _local1:b2Vec2 = m_bodyA.GetWorldPoint(m_localAnchor1); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } } }//package Box2D.Dynamics.JointsSection 75//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2PulleyJointDef extends b2JointDef { public var localAnchorA:b2Vec2; public var groundAnchorA:b2Vec2; public var groundAnchorB:b2Vec2; public var localAnchorB:b2Vec2; public var ratio:Number; public var maxLengthA:Number; public var lengthA:Number; public var lengthB:Number; public var maxLengthB:Number; public function b2PulleyJointDef(){ groundAnchorA = new b2Vec2(); groundAnchorB = new b2Vec2(); localAnchorA = new b2Vec2(); localAnchorB = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchorA.Set(-1, 1); groundAnchorB.Set(1, 1); localAnchorA.Set(-1, 0); localAnchorB.Set(1, 0); lengthA = 0; maxLengthA = 0; lengthB = 0; maxLengthB = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ bodyA = _arg1; bodyB = _arg2; groundAnchorA.SetV(_arg3); groundAnchorB.SetV(_arg4); localAnchorA = bodyA.GetLocalPoint(_arg5); localAnchorB = bodyB.GetLocalPoint(_arg6); var _local8:Number = (_arg5.x - _arg3.x); var _local9:Number = (_arg5.y - _arg3.y); lengthA = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); var _local10:Number = (_arg6.x - _arg4.x); var _local11:Number = (_arg6.y - _arg4.y); lengthB = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; var _local12:Number = (lengthA + (ratio * lengthB)); maxLengthA = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLengthB = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.JointsSection 76//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { private var m_mass:b2Mat33; private var m_impulse:b2Vec3; private var m_enableLimit:Boolean; private var m_limitState:int; private var m_motorMass:Number; private var reduced:b2Vec2; b2internal var m_localAnchor1:b2Vec2; b2internal var m_localAnchor2:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var K:b2Mat22; private var m_motorImpulse:Number; private var impulse2:b2Vec2; private var impulse3:b2Vec3; private var m_enableMotor:Boolean; private var m_referenceAngle:Number; private var m_upperAngle:Number; private var m_motorSpeed:Number; private var m_lowerAngle:Number; private var m_maxMotorTorque:Number; private static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); impulse3 = new b2Vec3(); impulse2 = new b2Vec2(); reduced = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_impulse = new b2Vec3(); m_mass = new b2Mat33(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchorA); m_localAnchor2.SetV(_arg1.localAnchorB); m_referenceAngle = _arg1.referenceAngle; m_impulse.SetZero(); m_motorImpulse = 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; m_limitState = e_inactiveLimit; } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10: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 _local2:b2Body = m_bodyA; var _local3:b2Body = m_bodyB; var _local11:b2Vec2 = _local2.m_linearVelocity; var _local12:Number = _local2.m_angularVelocity; var _local13:b2Vec2 = _local3.m_linearVelocity; var _local14:Number = _local3.m_angularVelocity; var _local15:Number = _local2.m_invMass; var _local16:Number = _local3.m_invMass; var _local17:Number = _local2.m_invI; var _local18:Number = _local3.m_invI; if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local19 = ((_local14 - _local12) - m_motorSpeed); _local20 = (m_motorMass * -(_local19)); _local21 = m_motorImpulse; _local22 = (_arg1.dt * m_maxMotorTorque); m_motorImpulse = b2Math.Clamp((m_motorImpulse + _local20), -(_local22), _local22); _local20 = (m_motorImpulse - _local21); _local12 = (_local12 - (_local17 * _local20)); _local14 = (_local14 + (_local18 * _local20)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local4 = _local2.m_xf.R; _local7 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local8 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local7) + (_local4.col2.x * _local8)); _local8 = ((_local4.col1.y * _local7) + (_local4.col2.y * _local8)); _local7 = _local5; _local4 = _local3.m_xf.R; _local9 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local10 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local9) + (_local4.col2.x * _local10)); _local10 = ((_local4.col1.y * _local9) + (_local4.col2.y * _local10)); _local9 = _local5; _local23 = (((_local13.x + (-(_local14) * _local10)) - _local11.x) - (-(_local12) * _local8)); _local24 = (((_local13.y + (_local14 * _local9)) - _local11.y) - (_local12 * _local7)); _local25 = (_local14 - _local12); m_mass.Solve33(impulse3, -(_local23), -(_local24), -(_local25)); if (m_limitState == e_equalLimits){ m_impulse.Add(impulse3); } else { if (m_limitState == e_atLowerLimit){ _local6 = (m_impulse.z + impulse3.z); if (_local6 < 0){ m_mass.Solve22(reduced, -(_local23), -(_local24)); impulse3.x = reduced.x; impulse3.y = reduced.y; impulse3.z = -(m_impulse.z); m_impulse.x = (m_impulse.x + reduced.x); m_impulse.y = (m_impulse.y + reduced.y); m_impulse.z = 0; }; } else { if (m_limitState == e_atUpperLimit){ _local6 = (m_impulse.z + impulse3.z); if (_local6 > 0){ m_mass.Solve22(reduced, -(_local23), -(_local24)); impulse3.x = reduced.x; impulse3.y = reduced.y; impulse3.z = -(m_impulse.z); m_impulse.x = (m_impulse.x + reduced.x); m_impulse.y = (m_impulse.y + reduced.y); m_impulse.z = 0; }; }; }; }; _local11.x = (_local11.x - (_local15 * impulse3.x)); _local11.y = (_local11.y - (_local15 * impulse3.y)); _local12 = (_local12 - (_local17 * (((_local7 * impulse3.y) - (_local8 * impulse3.x)) + impulse3.z))); _local13.x = (_local13.x + (_local16 * impulse3.x)); _local13.y = (_local13.y + (_local16 * impulse3.y)); _local14 = (_local14 + (_local18 * (((_local9 * impulse3.y) - (_local10 * impulse3.x)) + impulse3.z))); } else { _local4 = _local2.m_xf.R; _local7 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local8 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local7) + (_local4.col2.x * _local8)); _local8 = ((_local4.col1.y * _local7) + (_local4.col2.y * _local8)); _local7 = _local5; _local4 = _local3.m_xf.R; _local9 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local10 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local9) + (_local4.col2.x * _local10)); _local10 = ((_local4.col1.y * _local9) + (_local4.col2.y * _local10)); _local9 = _local5; _local26 = (((_local13.x + (-(_local14) * _local10)) - _local11.x) - (-(_local12) * _local8)); _local27 = (((_local13.y + (_local14 * _local9)) - _local11.y) - (_local12 * _local7)); m_mass.Solve22(impulse2, -(_local26), -(_local27)); m_impulse.x = (m_impulse.x + impulse2.x); m_impulse.y = (m_impulse.y + impulse2.y); _local11.x = (_local11.x - (_local15 * impulse2.x)); _local11.y = (_local11.y - (_local15 * impulse2.y)); _local12 = (_local12 - (_local17 * ((_local7 * impulse2.y) - (_local8 * impulse2.x)))); _local13.x = (_local13.x + (_local16 * impulse2.x)); _local13.y = (_local13.y + (_local16 * impulse2.y)); _local14 = (_local14 + (_local18 * ((_local9 * impulse2.y) - (_local10 * impulse2.x)))); }; _local2.m_linearVelocity.SetV(_local11); _local2.m_angularVelocity = _local12; _local3.m_linearVelocity.SetV(_local13); _local3.m_angularVelocity = _local14; } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchor2)); } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchor1)); } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2((_arg1 * m_impulse.x), (_arg1 * m_impulse.y))); } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:Number; var _local4:b2Mat22; var _local9:Number; var _local10:Number; var _local11:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local5:b2Body = m_bodyA; var _local6:b2Body = m_bodyB; var _local7:Number = 0; var _local8:Number = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local6.m_sweep.a - _local5.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local3 = b2Math.Clamp((_local25 - m_lowerAngle), -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local3); _local7 = b2Math.Abs(_local3); } else { if (m_limitState == e_atLowerLimit){ _local3 = (_local25 - m_lowerAngle); _local7 = -(_local3); _local3 = b2Math.Clamp((_local3 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local3); } else { if (m_limitState == e_atUpperLimit){ _local3 = (_local25 - m_upperAngle); _local7 = _local3; _local3 = b2Math.Clamp((_local3 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local3); }; }; }; _local5.m_sweep.a = (_local5.m_sweep.a - (_local5.m_invI * _local26)); _local6.m_sweep.a = (_local6.m_sweep.a + (_local6.m_invI * _local26)); _local5.SynchronizeTransform(); _local6.SynchronizeTransform(); }; _local4 = _local5.m_xf.R; var _local12:Number = (m_localAnchor1.x - _local5.m_sweep.localCenter.x); var _local13:Number = (m_localAnchor1.y - _local5.m_sweep.localCenter.y); _local9 = ((_local4.col1.x * _local12) + (_local4.col2.x * _local13)); _local13 = ((_local4.col1.y * _local12) + (_local4.col2.y * _local13)); _local12 = _local9; _local4 = _local6.m_xf.R; var _local14:Number = (m_localAnchor2.x - _local6.m_sweep.localCenter.x); var _local15:Number = (m_localAnchor2.y - _local6.m_sweep.localCenter.y); _local9 = ((_local4.col1.x * _local14) + (_local4.col2.x * _local15)); _local15 = ((_local4.col1.y * _local14) + (_local4.col2.y * _local15)); _local14 = _local9; var _local16:Number = (((_local6.m_sweep.c.x + _local14) - _local5.m_sweep.c.x) - _local12); var _local17:Number = (((_local6.m_sweep.c.y + _local15) - _local5.m_sweep.c.y) - _local13); var _local18:Number = ((_local16 * _local16) + (_local17 * _local17)); var _local19:Number = Math.sqrt(_local18); _local8 = _local19; var _local20:Number = _local5.m_invMass; var _local21:Number = _local6.m_invMass; var _local22:Number = _local5.m_invI; var _local23:Number = _local6.m_invI; var _local24:Number = (10 * b2Settings.b2_linearSlop); if (_local18 > (_local24 * _local24)){ _local27 = (_local16 / _local19); _local28 = (_local17 / _local19); _local29 = (_local20 + _local21); _local30 = (1 / _local29); _local10 = (_local30 * -(_local16)); _local11 = (_local30 * -(_local17)); _local31 = 0.5; _local5.m_sweep.c.x = (_local5.m_sweep.c.x - ((_local31 * _local20) * _local10)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y - ((_local31 * _local20) * _local11)); _local6.m_sweep.c.x = (_local6.m_sweep.c.x + ((_local31 * _local21) * _local10)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + ((_local31 * _local21) * _local11)); _local16 = (((_local6.m_sweep.c.x + _local14) - _local5.m_sweep.c.x) - _local12); _local17 = (((_local6.m_sweep.c.y + _local15) - _local5.m_sweep.c.y) - _local13); }; K1.col1.x = (_local20 + _local21); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local20 + _local21); K2.col1.x = ((_local22 * _local13) * _local13); K2.col2.x = ((-(_local22) * _local12) * _local13); K2.col1.y = ((-(_local22) * _local12) * _local13); K2.col2.y = ((_local22 * _local12) * _local12); K3.col1.x = ((_local23 * _local15) * _local15); K3.col2.x = ((-(_local23) * _local14) * _local15); K3.col1.y = ((-(_local23) * _local14) * _local15); K3.col2.y = ((_local23 * _local14) * _local14); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); _local10 = tImpulse.x; _local11 = tImpulse.y; _local5.m_sweep.c.x = (_local5.m_sweep.c.x - (_local5.m_invMass * _local10)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y - (_local5.m_invMass * _local11)); _local5.m_sweep.a = (_local5.m_sweep.a - (_local5.m_invI * ((_local12 * _local11) - (_local13 * _local10)))); _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_local6.m_invMass * _local10)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_local6.m_invMass * _local11)); _local6.m_sweep.a = (_local6.m_sweep.a + (_local6.m_invI * ((_local14 * _local11) - (_local15 * _local10)))); _local5.SynchronizeTransform(); _local6.SynchronizeTransform(); return ((((_local8 <= b2Settings.b2_linearSlop)) && ((_local7 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); m_motorSpeed = _arg1; } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetJointAngle():Number{ return (((m_bodyB.m_sweep.a - m_bodyA.m_sweep.a) - m_referenceAngle)); } public function GetJointSpeed():Number{ return ((m_bodyB.m_angularVelocity - m_bodyA.m_angularVelocity)); } public function GetMotorTorque():Number{ return (m_maxMotorTorque); } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local7:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local2 = m_bodyA; _local3 = m_bodyB; if (((m_enableMotor) || (m_enableLimit))){ }; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; m_mass.col1.x = (((_local10 + _local11) + ((_local7 * _local7) * _local12)) + ((_local9 * _local9) * _local13)); m_mass.col2.x = (((-(_local7) * _local6) * _local12) - ((_local9 * _local8) * _local13)); m_mass.col3.x = ((-(_local7) * _local12) - (_local9 * _local13)); m_mass.col1.y = m_mass.col2.x; m_mass.col2.y = (((_local10 + _local11) + ((_local6 * _local6) * _local12)) + ((_local8 * _local8) * _local13)); m_mass.col3.y = ((_local6 * _local12) + (_local8 * _local13)); m_mass.col1.z = m_mass.col3.x; m_mass.col2.z = m_mass.col3.y; m_mass.col3.z = (_local12 + _local13); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorImpulse = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_impulse.z = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_impulse.z = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_impulse.z = 0; }; }; }; } else { m_limitState = e_inactiveLimit; }; if (_arg1.warmStarting){ m_impulse.x = (m_impulse.x * _arg1.dtRatio); m_impulse.y = (m_impulse.y * _arg1.dtRatio); m_motorImpulse = (m_motorImpulse * _arg1.dtRatio); _local15 = m_impulse.x; _local16 = m_impulse.y; _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local10 * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local10 * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local12 * ((((_local6 * _local16) - (_local7 * _local15)) + m_motorImpulse) + m_impulse.z))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * ((((_local8 * _local16) - (_local9 * _local15)) + m_motorImpulse) + m_impulse.z))); } else { m_impulse.SetZero(); m_motorImpulse = 0; }; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque(_arg1:Number):Number{ return ((_arg1 * m_impulse.z)); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ m_bodyA.SetAwake(true); m_bodyB.SetAwake(true); return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } } }//package Box2D.Dynamics.JointsSection 77//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2RevoluteJointDef extends b2JointDef { public var localAnchorA:b2Vec2; public var referenceAngle:Number; public var localAnchorB:b2Vec2; public var motorSpeed:Number; public var upperAngle:Number; public var lowerAngle:Number; public var enableLimit:Boolean; public var enableMotor:Boolean; public var maxMotorTorque:Number; public function b2RevoluteJointDef(){ localAnchorA = new b2Vec2(); localAnchorB = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchorA.Set(0, 0); localAnchorB.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{ bodyA = _arg1; bodyB = _arg2; localAnchorA = bodyA.GetLocalPoint(_arg3); localAnchorB = bodyB.GetLocalPoint(_arg3); referenceAngle = (bodyB.GetAngle() - bodyA.GetAngle()); } } }//package Box2D.Dynamics.JointsSection 78//b2WeldJoint (Box2D.Dynamics.Joints.b2WeldJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2WeldJoint extends b2Joint { private var m_impulse:b2Vec3; private var m_referenceAngle:Number; private var m_localAnchorA:b2Vec2; private var m_localAnchorB:b2Vec2; private var m_mass:b2Mat33; public function b2WeldJoint(_arg1:b2WeldJointDef){ m_localAnchorA = new b2Vec2(); m_localAnchorB = new b2Vec2(); m_impulse = new b2Vec3(); m_mass = new b2Mat33(); super(_arg1); m_localAnchorA.SetV(_arg1.localAnchorA); m_localAnchorB.SetV(_arg1.localAnchorB); m_referenceAngle = _arg1.referenceAngle; m_impulse.SetZero(); m_mass = new b2Mat33(); } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body = m_bodyA; var _local5:b2Body = m_bodyB; var _local6:b2Vec2 = _local4.m_linearVelocity; var _local7:Number = _local4.m_angularVelocity; var _local8:b2Vec2 = _local5.m_linearVelocity; var _local9:Number = _local5.m_angularVelocity; var _local10:Number = _local4.m_invMass; var _local11:Number = _local5.m_invMass; var _local12:Number = _local4.m_invI; var _local13:Number = _local5.m_invI; _local2 = _local4.m_xf.R; var _local14:Number = (m_localAnchorA.x - _local4.m_sweep.localCenter.x); var _local15:Number = (m_localAnchorA.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local14) + (_local2.col2.x * _local15)); _local15 = ((_local2.col1.y * _local14) + (_local2.col2.y * _local15)); _local14 = _local3; _local2 = _local5.m_xf.R; var _local16:Number = (m_localAnchorB.x - _local5.m_sweep.localCenter.x); var _local17:Number = (m_localAnchorB.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local16) + (_local2.col2.x * _local17)); _local17 = ((_local2.col1.y * _local16) + (_local2.col2.y * _local17)); _local16 = _local3; var _local18:Number = (((_local8.x - (_local9 * _local17)) - _local6.x) + (_local7 * _local15)); var _local19:Number = (((_local8.y + (_local9 * _local16)) - _local6.y) - (_local7 * _local14)); var _local20:Number = (_local9 - _local7); var _local21:b2Vec3 = new b2Vec3(); m_mass.Solve33(_local21, -(_local18), -(_local19), -(_local20)); m_impulse.Add(_local21); _local6.x = (_local6.x - (_local10 * _local21.x)); _local6.y = (_local6.y - (_local10 * _local21.y)); _local7 = (_local7 - (_local12 * (((_local14 * _local21.y) - (_local15 * _local21.x)) + _local21.z))); _local8.x = (_local8.x + (_local11 * _local21.x)); _local8.y = (_local8.y + (_local11 * _local21.y)); _local9 = (_local9 + (_local13 * (((_local16 * _local21.y) - (_local17 * _local21.x)) + _local21.z))); _local4.m_angularVelocity = _local7; _local5.m_angularVelocity = _local9; } override public function GetReactionTorque(_arg1:Number):Number{ return ((_arg1 * m_impulse.z)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2((_arg1 * m_impulse.x), (_arg1 * m_impulse.y))); } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body = m_bodyA; var _local5:b2Body = m_bodyB; _local2 = _local4.m_xf.R; var _local6:Number = (m_localAnchorA.x - _local4.m_sweep.localCenter.x); var _local7:Number = (m_localAnchorA.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; var _local8:Number = (m_localAnchorB.x - _local5.m_sweep.localCenter.x); var _local9:Number = (m_localAnchorB.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; var _local10:Number = _local4.m_invMass; var _local11:Number = _local5.m_invMass; var _local12:Number = _local4.m_invI; var _local13:Number = _local5.m_invI; var _local14:Number = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); var _local15:Number = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); var _local16:Number = ((_local5.m_sweep.a - _local4.m_sweep.a) - m_referenceAngle); var _local17:Number = (10 * b2Settings.b2_linearSlop); var _local18:Number = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); var _local19:Number = b2Math.Abs(_local16); if (_local18 > _local17){ _local12 = (_local12 * 1); _local13 = (_local13 * 1); }; m_mass.col1.x = (((_local10 + _local11) + ((_local7 * _local7) * _local12)) + ((_local9 * _local9) * _local13)); m_mass.col2.x = (((-(_local7) * _local6) * _local12) - ((_local9 * _local8) * _local13)); m_mass.col3.x = ((-(_local7) * _local12) - (_local9 * _local13)); m_mass.col1.y = m_mass.col2.x; m_mass.col2.y = (((_local10 + _local11) + ((_local6 * _local6) * _local12)) + ((_local8 * _local8) * _local13)); m_mass.col3.y = ((_local6 * _local12) + (_local8 * _local13)); m_mass.col1.z = m_mass.col3.x; m_mass.col2.z = m_mass.col3.y; m_mass.col3.z = (_local12 + _local13); var _local20:b2Vec3 = new b2Vec3(); m_mass.Solve33(_local20, -(_local14), -(_local15), -(_local16)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x - (_local10 * _local20.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y - (_local10 * _local20.y)); _local4.m_sweep.a = (_local4.m_sweep.a - (_local12 * (((_local6 * _local20.y) - (_local7 * _local20.x)) + _local20.z))); _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_local11 * _local20.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_local11 * _local20.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_local13 * (((_local8 * _local20.y) - (_local9 * _local20.x)) + _local20.z))); _local4.SynchronizeTransform(); _local5.SynchronizeTransform(); return ((((_local18 <= b2Settings.b2_linearSlop)) && ((_local19 <= b2Settings.b2_angularSlop)))); } override b2internal 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; _local4 = m_bodyA; _local5 = m_bodyB; _local2 = _local4.m_xf.R; _local6 = (m_localAnchorA.x - _local4.m_sweep.localCenter.x); _local7 = (m_localAnchorA.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_localAnchorB.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchorB.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; _local10 = _local4.m_invMass; _local11 = _local5.m_invMass; _local12 = _local4.m_invI; _local13 = _local5.m_invI; m_mass.col1.x = (((_local10 + _local11) + ((_local7 * _local7) * _local12)) + ((_local9 * _local9) * _local13)); m_mass.col2.x = (((-(_local7) * _local6) * _local12) - ((_local9 * _local8) * _local13)); m_mass.col3.x = ((-(_local7) * _local12) - (_local9 * _local13)); m_mass.col1.y = m_mass.col2.x; m_mass.col2.y = (((_local10 + _local11) + ((_local6 * _local6) * _local12)) + ((_local8 * _local8) * _local13)); m_mass.col3.y = ((_local6 * _local12) + (_local8 * _local13)); m_mass.col1.z = m_mass.col3.x; m_mass.col2.z = m_mass.col3.y; m_mass.col3.z = (_local12 + _local13); if (_arg1.warmStarting){ m_impulse.x = (m_impulse.x * _arg1.dtRatio); m_impulse.y = (m_impulse.y * _arg1.dtRatio); m_impulse.z = (m_impulse.z * _arg1.dtRatio); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local10 * m_impulse.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local10 * m_impulse.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local12 * (((_local6 * m_impulse.y) - (_local7 * m_impulse.x)) + m_impulse.z))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local11 * m_impulse.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local11 * m_impulse.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local13 * (((_local8 * m_impulse.y) - (_local9 * m_impulse.x)) + m_impulse.z))); } else { m_impulse.SetZero(); }; } override public function GetAnchorA():b2Vec2{ return (m_bodyA.GetWorldPoint(m_localAnchorA)); } override public function GetAnchorB():b2Vec2{ return (m_bodyB.GetWorldPoint(m_localAnchorB)); } } }//package Box2D.Dynamics.JointsSection 79//b2WeldJointDef (Box2D.Dynamics.Joints.b2WeldJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2WeldJointDef extends b2JointDef { public var localAnchorA:b2Vec2; public var referenceAngle:Number; public var localAnchorB:b2Vec2; public function b2WeldJointDef(){ localAnchorA = new b2Vec2(); localAnchorB = new b2Vec2(); super(); type = b2Joint.e_weldJoint; referenceAngle = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ bodyA = _arg1; bodyB = _arg2; localAnchorA.SetV(bodyA.GetLocalPoint(_arg3)); localAnchorB.SetV(bodyB.GetLocalPoint(_arg3)); referenceAngle = (bodyB.GetAngle() - bodyA.GetAngle()); } } }//package Box2D.Dynamics.JointsSection 80//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Controllers.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2Body { b2internal var m_xf:b2Transform; b2internal var m_controllerCount:int; b2internal var m_contactList:b2ContactEdge; b2internal var m_invI:Number; b2internal var m_fixtureCount:int; b2internal var m_torque:Number; b2internal var m_angularVelocity:Number; b2internal var m_flags:uint; b2internal var m_linearVelocity:b2Vec2; b2internal var m_world:b2World; b2internal var m_inertiaScale:Number; b2internal var m_controllerList:b2ControllerEdge; b2internal var m_fixtureList:b2Fixture; b2internal var m_mass:Number; b2internal var m_next:b2Body; b2internal var m_force:b2Vec2; b2internal var m_sweep:b2Sweep; private var m_userData; b2internal var m_invMass:Number; b2internal var m_prev:b2Body; b2internal var m_linearDamping:Number; b2internal var m_type:int; b2internal var m_angularDamping:Number; b2internal var m_islandIndex:int; b2internal var m_jointList:b2JointEdge; b2internal var m_sleepTime:Number; b2internal var m_I:Number; b2internal static var e_fixedRotationFlag:uint = 16; public static var b2_kinematicBody:uint = 1; b2internal static var e_bulletFlag:uint = 8; b2internal static var e_activeFlag:uint = 32; b2internal static var e_allowSleepFlag:uint = 4; b2internal static var e_awakeFlag:uint = 2; public static var b2_dynamicBody:uint = 2; b2internal static var e_islandFlag:uint = 1; private static var s_xf1:b2Transform = new b2Transform(); public static var b2_staticBody:uint = 0; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ m_xf = new b2Transform(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.bullet){ 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.awake){ m_flags = (m_flags | e_awakeFlag); }; if (_arg1.active){ m_flags = (m_flags | e_activeFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetZero(); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_controllerList = null; m_contactList = null; m_controllerCount = 0; m_prev = null; m_next = null; m_linearVelocity.SetV(_arg1.linearVelocity); m_angularVelocity = _arg1.angularVelocity; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_sleepTime = 0; m_type = _arg1.type; if (m_type == b2_dynamicBody){ m_mass = 1; m_invMass = 1; } else { m_mass = 0; m_invMass = 0; }; m_I = 0; m_invI = 0; m_inertiaScale = _arg1.inertiaScale; m_userData = _arg1.userData; m_fixtureList = null; m_fixtureCount = 0; } public function SetLinearVelocity(_arg1:b2Vec2):void{ if (m_type == b2_staticBody){ return; }; m_linearVelocity.SetV(_arg1); } public function ResetMassData():void{ var _local4:b2MassData; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_sweep.localCenter.SetZero(); if ((((m_type == b2_staticBody)) || ((m_type == b2_kinematicBody)))){ return; }; var _local1:b2Vec2 = b2Vec2.Make(0, 0); var _local2:b2Fixture = m_fixtureList; while (_local2) { if (_local2.m_density == 0){ } else { _local4 = _local2.GetMassData(); m_mass = (m_mass + _local4.mass); _local1.x = (_local1.x + (_local4.center.x * _local4.mass)); _local1.y = (_local1.y + (_local4.center.y * _local4.mass)); m_I = (m_I + _local4.I); }; _local2 = _local2.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local1.x = (_local1.x * m_invMass); _local1.y = (_local1.y * m_invMass); } else { m_mass = 1; m_invMass = 1; }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local1.x * _local1.x) + (_local1.y * _local1.y)))); m_I = (m_I * m_inertiaScale); b2Settings.b2Assert((m_I > 0)); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; var _local3:b2Vec2 = m_sweep.c.Copy(); m_sweep.localCenter.SetV(_local1); m_sweep.c0.SetV(b2Math.MulX(m_xf, m_sweep.localCenter)); m_sweep.c.SetV(m_sweep.c0); m_linearVelocity.x = (m_linearVelocity.x + (m_angularVelocity * -((m_sweep.c.y - _local3.y)))); m_linearVelocity.y = (m_linearVelocity.y + (m_angularVelocity * (m_sweep.c.x - _local3.x))); } public function GetMassData(_arg1:b2MassData):void{ _arg1.mass = m_mass; _arg1.I = m_I; _arg1.center.SetV(m_sweep.localCenter); } public function Merge(_arg1:b2Body):void{ var _local2:b2Fixture; var _local3:b2Body; var _local4:b2Body; var _local11:b2Fixture; _local2 = _arg1.m_fixtureList; while (_local2) { _local11 = _local2.m_next; _arg1.m_fixtureCount--; _local2.m_next = m_fixtureList; m_fixtureList = _local2; m_fixtureCount++; _local2.m_body = _local4; _local2 = _local11; }; _local3.m_fixtureCount = 0; _local3 = this; _local4 = _arg1; var _local5:b2Vec2 = _local3.GetWorldCenter(); var _local6:b2Vec2 = _local4.GetWorldCenter(); var _local7:b2Vec2 = _local3.GetLinearVelocity().Copy(); var _local8:b2Vec2 = _local4.GetLinearVelocity().Copy(); var _local9:Number = _local3.GetAngularVelocity(); var _local10:Number = _local4.GetAngularVelocity(); _local3.ResetMassData(); SynchronizeFixtures(); } b2internal function SynchronizeTransform():void{ m_xf.R.Set(m_sweep.a); var _local1:b2Mat22 = m_xf.R; var _local2:b2Vec2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function SetMassData(_arg1:b2MassData):void{ b2Settings.b2Assert((m_world.IsLocked() == false)); if (m_world.IsLocked() == true){ return; }; if (m_type != b2_dynamicBody){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass <= 0){ m_mass = 1; }; m_invMass = (1 / m_mass); if ((((_arg1.I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (_arg1.I - (m_mass * ((_arg1.center.x * _arg1.center.x) + (_arg1.center.y * _arg1.center.y)))); m_invI = (1 / m_I); }; var _local2:b2Vec2 = m_sweep.c.Copy(); m_sweep.localCenter.SetV(_arg1.center); m_sweep.c0.SetV(b2Math.MulX(m_xf, m_sweep.localCenter)); m_sweep.c.SetV(m_sweep.c0); m_linearVelocity.x = (m_linearVelocity.x + (m_angularVelocity * -((m_sweep.c.y - _local2.y)))); m_linearVelocity.y = (m_linearVelocity.y + (m_angularVelocity * (m_sweep.c.x - _local2.x))); } public function GetDefinition():b2BodyDef{ var _local1:b2BodyDef = new b2BodyDef(); _local1.type = GetType(); _local1.allowSleep = ((m_flags & e_allowSleepFlag) == e_allowSleepFlag); _local1.angle = GetAngle(); _local1.angularDamping = m_angularDamping; _local1.angularVelocity = m_angularVelocity; _local1.fixedRotation = ((m_flags & e_fixedRotationFlag) == e_fixedRotationFlag); _local1.bullet = ((m_flags & e_bulletFlag) == e_bulletFlag); _local1.awake = ((m_flags & e_awakeFlag) == e_awakeFlag); _local1.linearDamping = m_linearDamping; _local1.linearVelocity.SetV(GetLinearVelocity()); _local1.position = GetPosition(); _local1.userData = GetUserData(); return (_local1); } public function GetControllerList():b2ControllerEdge{ return (m_controllerList); } public function GetFixtureList():b2Fixture{ return (m_fixtureList); } public function SetAngularVelocity(_arg1:Number):void{ if (m_type == b2_staticBody){ return; }; m_angularVelocity = _arg1; } public function GetAngle():Number{ return (m_sweep.a); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x - (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.y + (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (m_type != b2_dynamicBody){ return; }; if (IsAwake() == false){ SetAwake(true); }; 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 CreateFixture(_arg1:b2FixtureDef):b2Fixture{ var _local3:IBroadPhase; if (m_world.IsLocked() == true){ return (null); }; var _local2:b2Fixture = new b2Fixture(); _local2.Create(this, m_xf, _arg1); if ((m_flags & e_activeFlag)){ _local3 = m_world.m_contactManager.m_broadPhase; _local2.CreateProxy(_local3, m_xf); }; _local2.m_next = m_fixtureList; m_fixtureList = _local2; m_fixtureCount++; _local2.m_body = this; if (_local2.m_density > 0){ ResetMassData(); }; m_world.m_flags = (m_world.m_flags | b2World.e_newFixture); return (_local2); } public function SetTransform(_arg1:b2Transform):void{ SetPositionAndAngle(_arg1.position, _arg1.GetAngle()); } public function IsAwake():Boolean{ return (((m_flags & e_awakeFlag) == e_awakeFlag)); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.MulMV(m_xf.R, _arg1)); } b2internal 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 SetAwake(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_awakeFlag); m_sleepTime = 0; } else { m_flags = (m_flags & ~(e_awakeFlag)); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; }; } public function GetUserData(){ return (m_userData); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.MulTMV(m_xf.R, _arg1)); } public function GetPosition():b2Vec2{ return (m_xf.position); } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x - (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.y + (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function CreateFixture2(_arg1:b2Shape, _arg2:Number=0):b2Fixture{ var _local3:b2FixtureDef = new b2FixtureDef(); _local3.shape = _arg1; _local3.density = _arg2; return (CreateFixture(_local3)); } public function GetLinearDamping():Number{ return (m_linearDamping); } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function SetPosition(_arg1:b2Vec2):void{ SetPositionAndAngle(_arg1, GetAngle()); } private function connectEdges(_arg1:b2EdgeShape, _arg2:b2EdgeShape, _arg3:Number):Number{ var _local4:Number = Math.atan2(_arg2.GetDirectionVector().y, _arg2.GetDirectionVector().x); var _local5:Number = Math.tan(((_local4 - _arg3) * 0.5)); var _local6:b2Vec2 = b2Math.MulFV(_local5, _arg2.GetDirectionVector()); _local6 = b2Math.SubtractVV(_local6, _arg2.GetNormalVector()); _local6 = b2Math.MulFV(b2Settings.b2_toiSlop, _local6); _local6 = b2Math.AddVV(_local6, _arg2.GetVertex1()); var _local7:b2Vec2 = b2Math.AddVV(_arg1.GetDirectionVector(), _arg2.GetDirectionVector()); _local7.Normalize(); var _local8 = (b2Math.Dot(_arg1.GetDirectionVector(), _arg2.GetNormalVector()) > 0); _arg1.SetNextEdge(_arg2, _local6, _local7, _local8); _arg2.SetPrevEdge(_arg1, _local6, _local7, _local8); return (_local4); } public function GetType():uint{ return (m_type); } public function GetAngularDamping():Number{ return (m_angularDamping); } public function SetType(_arg1:uint):void{ if (m_type == _arg1){ return; }; m_type = _arg1; ResetMassData(); if (m_type == b2_staticBody){ m_linearVelocity.SetZero(); m_angularVelocity = 0; }; SetAwake(true); m_force.SetZero(); m_torque = 0; var _local2:b2ContactEdge = m_contactList; while (_local2) { _local2.contact.FlagForFiltering(); _local2 = _local2.next; }; } public function SetAngularDamping(_arg1:Number):void{ m_angularDamping = _arg1; } public function GetInertia():Number{ return (m_I); } public function SetAngle(_arg1:Number):void{ SetPositionAndAngle(GetPosition(), _arg1); } public function GetJointList():b2JointEdge{ return (m_jointList); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.MulXT(m_xf, _arg1)); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (m_type != b2_dynamicBody){ return; }; if (IsAwake() == false){ SetAwake(true); }; 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 GetContactList():b2ContactEdge{ return (m_contactList); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function DestroyFixture(_arg1:b2Fixture):void{ var _local6:b2Contact; var _local7:b2Fixture; var _local8:b2Fixture; var _local9:IBroadPhase; if (m_world.IsLocked() == true){ return; }; var _local2:b2Fixture = m_fixtureList; var _local3:b2Fixture; var _local4:Boolean; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_fixtureList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; var _local5:b2ContactEdge = m_contactList; while (_local5) { _local6 = _local5.contact; _local5 = _local5.next; _local7 = _local6.GetFixtureA(); _local8 = _local6.GetFixtureB(); if ((((_arg1 == _local7)) || ((_arg1 == _local8)))){ m_world.m_contactManager.Destroy(_local6); }; }; if ((m_flags & e_activeFlag)){ _local9 = m_world.m_contactManager.m_broadPhase; _arg1.DestroyProxy(_local9); }; _arg1.Destroy(); _arg1.m_body = null; _arg1.m_next = null; m_fixtureCount--; ResetMassData(); } public function IsSleepingAllowed():Boolean{ return (((m_flags & e_allowSleepFlag) == e_allowSleepFlag)); } public function GetTransform():b2Transform{ return (m_xf); } b2internal function SynchronizeFixtures():void{ var _local4:b2Fixture; var _local1:b2Transform = s_xf1; _local1.R.Set(m_sweep.a0); var _local2:b2Mat22 = _local1.R; var _local3:b2Vec2 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); var _local5:IBroadPhase = m_world.m_contactManager.m_broadPhase; _local4 = m_fixtureList; while (_local4) { _local4.Synchronize(_local5, _local1, m_xf); _local4 = _local4.m_next; }; } public function SetSleepingAllowed(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); SetAwake(true); }; } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function SetPositionAndAngle(_arg1:b2Vec2, _arg2:Number):void{ var _local3:b2Fixture; if (m_world.IsLocked() == true){ return; }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); var _local4:b2Mat22 = m_xf.R; var _local5:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); var _local6:IBroadPhase = m_world.m_contactManager.m_broadPhase; _local3 = m_fixtureList; while (_local3) { _local3.Synchronize(_local6, m_xf, m_xf); _local3 = _local3.m_next; }; m_world.m_contactManager.FindNewContacts(); } public function IsFixedRotation():Boolean{ return (((m_flags & e_fixedRotationFlag) == e_fixedRotationFlag)); } public function SetActive(_arg1:Boolean):void{ var _local2:IBroadPhase; var _local3:b2Fixture; var _local4:b2ContactEdge; var _local5:b2ContactEdge; if (_arg1 == IsActive()){ return; }; if (_arg1){ m_flags = (m_flags | e_activeFlag); _local2 = m_world.m_contactManager.m_broadPhase; _local3 = m_fixtureList; while (_local3) { _local3.CreateProxy(_local2, m_xf); _local3 = _local3.m_next; }; } else { m_flags = (m_flags & ~(e_activeFlag)); _local2 = m_world.m_contactManager.m_broadPhase; _local3 = m_fixtureList; while (_local3) { _local3.DestroyProxy(_local2); _local3 = _local3.m_next; }; _local4 = m_contactList; while (_local4) { _local5 = _local4; _local4 = _local4.next; m_world.m_contactManager.Destroy(_local5.contact); }; m_contactList = null; }; } public function IsActive():Boolean{ return (((m_flags & e_activeFlag) == e_activeFlag)); } b2internal function ShouldCollide(_arg1:b2Body):Boolean{ if (((!((m_type == b2_dynamicBody))) && (!((_arg1.m_type == b2_dynamicBody))))){ return (false); }; var _local2:b2JointEdge = m_jointList; while (_local2) { if (_local2.other == _arg1){ if (_local2.joint.m_collideConnected == false){ return (false); }; }; _local2 = _local2.next; }; return (true); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function SetFixedRotation(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_fixedRotationFlag); } else { m_flags = (m_flags & ~(e_fixedRotationFlag)); }; ResetMassData(); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function Split(_arg1:Function):b2Body{ var _local7:b2Fixture; var _local13:b2Fixture; var _local2:b2Vec2 = GetLinearVelocity().Copy(); var _local3:Number = GetAngularVelocity(); var _local4:b2Vec2 = GetWorldCenter(); var _local5:b2Body = this; var _local6:b2Body = m_world.CreateBody(GetDefinition()); var _local8:b2Fixture = _local5.m_fixtureList; while (_local8) { if (_arg1(_local8)){ _local13 = _local8.m_next; if (_local7){ _local7.m_next = _local13; } else { _local5.m_fixtureList = _local13; }; _local5.m_fixtureCount--; _local8.m_next = _local6.m_fixtureList; _local6.m_fixtureList = _local8; _local6.m_fixtureCount++; _local8.m_body = _local6; _local8 = _local13; } else { _local7 = _local8; _local8 = _local8.m_next; }; }; _local5.ResetMassData(); _local6.ResetMassData(); var _local9:b2Vec2 = _local5.GetWorldCenter(); var _local10:b2Vec2 = _local6.GetWorldCenter(); var _local11:b2Vec2 = b2Math.AddVV(_local2, b2Math.CrossFV(_local3, b2Math.SubtractVV(_local9, _local4))); var _local12:b2Vec2 = b2Math.AddVV(_local2, b2Math.CrossFV(_local3, b2Math.SubtractVV(_local10, _local4))); _local5.SetLinearVelocity(_local11); _local6.SetLinearVelocity(_local12); _local5.SetAngularVelocity(_local3); _local6.SetAngularVelocity(_local3); _local5.SynchronizeFixtures(); _local6.SynchronizeFixtures(); return (_local6); } public function SetLinearDamping(_arg1:Number):void{ m_linearDamping = _arg1; } public function GetWorld():b2World{ return (m_world); } public function ApplyTorque(_arg1:Number):void{ if (m_type != b2_dynamicBody){ return; }; if (IsAwake() == false){ SetAwake(true); }; m_torque = (m_torque + _arg1); } } }//package Box2D.DynamicsSection 81//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Common.Math.*; public class b2BodyDef { public var angularDamping:Number; public var bullet:Boolean; public var awake:Boolean; public var active:Boolean; public var allowSleep:Boolean; public var angle:Number; public var userData; public var fixedRotation:Boolean; public var linearDamping:Number; public var angularVelocity:Number; public var linearVelocity:b2Vec2; public var position:b2Vec2; public var inertiaScale:Number; public var type:uint; public function b2BodyDef(){ position = new b2Vec2(); linearVelocity = new b2Vec2(); super(); userData = null; position.Set(0, 0); angle = 0; linearVelocity.Set(0, 0); angularVelocity = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; awake = true; fixedRotation = false; bullet = false; type = b2Body.b2_staticBody; active = true; inertiaScale = 1; } } }//package Box2D.DynamicsSection 82//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Common.*; public class b2ContactFilter { b2internal static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Fixture, _arg2:b2Fixture):Boolean{ var _local3:b2FilterData = _arg1.GetFilterData(); var _local4:b2FilterData = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; var _local5:Boolean = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } public function RayCollide(_arg1, _arg2:b2Fixture):Boolean{ if (!_arg1){ return (true); }; return (ShouldCollide((_arg1 as b2Fixture), _arg2)); } } }//package Box2D.DynamicsSection 83//b2ContactImpulse (Box2D.Dynamics.b2ContactImpulse) package Box2D.Dynamics { import Box2D.Common.*; public class b2ContactImpulse { public var tangentImpulses:Array; public var normalImpulses:Array; public function b2ContactImpulse(){ normalImpulses = new Array(b2Settings.b2_maxManifoldPoints); tangentImpulses = new Array(b2Settings.b2_maxManifoldPoints); super(); } } }//package Box2D.DynamicsSection 84//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2ContactListener { b2internal static var b2_defaultListener:b2ContactListener = new (b2ContactListener); ; public function PreSolve(_arg1:b2Contact, _arg2:b2Manifold):void{ } public function EndContact(_arg1:b2Contact):void{ } public function PostSolve(_arg1:b2Contact, _arg2:b2ContactImpulse):void{ } public function BeginContact(_arg1:b2Contact):void{ } } }//package Box2D.DynamicsSection 85//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2ContactManager { b2internal var m_world:b2World; b2internal var m_contactCount:int; b2internal var m_contactFactory:b2ContactFactory; b2internal var m_contactFilter:b2ContactFilter; b2internal var m_broadPhase:IBroadPhase; b2internal var m_contactList:b2Contact; b2internal var m_contactListener:b2ContactListener; b2internal var m_allocator; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_world = null; m_contactCount = 0; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = b2ContactListener.b2_defaultListener; m_contactFactory = new b2ContactFactory(m_allocator); m_broadPhase = new b2DynamicTreeBroadPhase(); } public function FindNewContacts():void{ m_broadPhase.UpdatePairs(AddPair); } public function Destroy(_arg1:b2Contact):void{ var _local2:b2Fixture = _arg1.GetFixtureA(); var _local3:b2Fixture = _arg1.GetFixtureB(); var _local4:b2Body = _local2.GetBody(); var _local5:b2Body = _local3.GetBody(); if (_arg1.m_manifold.m_pointCount > 0){ m_contactListener.EndContact(_arg1); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; if (_arg1.m_nodeA.prev){ _arg1.m_nodeA.prev.next = _arg1.m_nodeA.next; }; if (_arg1.m_nodeA.next){ _arg1.m_nodeA.next.prev = _arg1.m_nodeA.prev; }; if (_arg1.m_nodeA == _local4.m_contactList){ _local4.m_contactList = _arg1.m_nodeA.next; }; if (_arg1.m_nodeB.prev){ _arg1.m_nodeB.prev.next = _arg1.m_nodeB.next; }; if (_arg1.m_nodeB.next){ _arg1.m_nodeB.next.prev = _arg1.m_nodeB.prev; }; if (_arg1.m_nodeB == _local5.m_contactList){ _local5.m_contactList = _arg1.m_nodeB.next; }; m_contactFactory.Destroy(_arg1); m_contactCount--; } public function AddPair(_arg1, _arg2):void{ var _local9:b2Fixture; var _local10:b2Fixture; var _local3:b2Fixture = (_arg1 as b2Fixture); var _local4:b2Fixture = (_arg2 as b2Fixture); var _local5:b2Body = _local3.GetBody(); var _local6:b2Body = _local4.GetBody(); if (_local5 == _local6){ return; }; var _local7:b2ContactEdge = _local6.GetContactList(); while (_local7) { if (_local7.other == _local5){ _local9 = _local7.contact.GetFixtureA(); _local10 = _local7.contact.GetFixtureB(); if ((((_local9 == _local3)) && ((_local10 == _local4)))){ return; }; if ((((_local9 == _local4)) && ((_local10 == _local3)))){ return; }; }; _local7 = _local7.next; }; if (_local6.ShouldCollide(_local5) == false){ return; }; if (m_contactFilter.ShouldCollide(_local3, _local4) == false){ return; }; var _local8:b2Contact = m_contactFactory.Create(_local3, _local4); _local3 = _local8.GetFixtureA(); _local4 = _local8.GetFixtureB(); _local5 = _local3.m_body; _local6 = _local4.m_body; _local8.m_prev = null; _local8.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local8; }; m_world.m_contactList = _local8; _local8.m_nodeA.contact = _local8; _local8.m_nodeA.other = _local6; _local8.m_nodeA.prev = null; _local8.m_nodeA.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local8.m_nodeA; }; _local5.m_contactList = _local8.m_nodeA; _local8.m_nodeB.contact = _local8; _local8.m_nodeB.other = _local5; _local8.m_nodeB.prev = null; _local8.m_nodeB.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local8.m_nodeB; }; _local6.m_contactList = _local8.m_nodeB; m_world.m_contactCount++; } public function Collide():void{ var _local2:b2Fixture; var _local3:b2Fixture; var _local4:b2Body; var _local5:b2Body; var _local6:*; var _local7:*; var _local8:Boolean; var _local9:b2Contact; var _local1:b2Contact = m_world.m_contactList; while (_local1) { _local2 = _local1.GetFixtureA(); _local3 = _local1.GetFixtureB(); _local4 = _local2.GetBody(); _local5 = _local3.GetBody(); if ((((_local4.IsAwake() == false)) && ((_local5.IsAwake() == false)))){ _local1 = _local1.GetNext(); } else { if ((_local1.m_flags & b2Contact.e_filterFlag)){ if (_local5.ShouldCollide(_local4) == false){ _local9 = _local1; _local1 = _local9.GetNext(); Destroy(_local9); continue; }; if (m_contactFilter.ShouldCollide(_local2, _local3) == false){ _local9 = _local1; _local1 = _local9.GetNext(); Destroy(_local9); continue; }; _local1.m_flags = (_local1.m_flags & ~(b2Contact.e_filterFlag)); }; _local6 = _local2.m_proxy; _local7 = _local3.m_proxy; _local8 = m_broadPhase.TestOverlap(_local6, _local7); if (_local8 == false){ _local9 = _local1; _local1 = _local9.GetNext(); Destroy(_local9); } else { _local1.Update(m_contactListener); _local1 = _local1.GetNext(); }; }; }; } } }//package Box2D.DynamicsSection 86//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; import flash.display.*; public class b2DebugDraw { private var m_xformScale:Number;// = 1 private var m_fillAlpha:Number;// = 1 private var m_alpha:Number;// = 1 private var m_lineThickness:Number;// = 1 private var m_drawFlags:uint; b2internal var m_sprite:Sprite; private var m_drawScale:Number;// = 1 public static var e_centerOfMassBit:uint = 16; public static var e_shapeBit:uint = 1; public static var e_aabbBit:uint = 4; public static var e_controllerBit:uint = 32; public static var e_pairBit:uint = 8; public static var e_jointBit:uint = 2; public function b2DebugDraw(){ m_drawFlags = 0; } public function SetDrawScale(_arg1:Number):void{ m_drawScale = _arg1; } public function GetFillAlpha():Number{ return (m_fillAlpha); } public function GetAlpha():Number{ return (m_alpha); } public function GetLineThickness():Number{ return (m_lineThickness); } public function GetDrawScale():Number{ return (m_drawScale); } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function 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 ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function GetSprite():Sprite{ return (m_sprite); } public function GetXFormScale():Number{ return (m_xformScale); } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function SetSprite(_arg1:Sprite):void{ m_sprite = _arg1; } public function DrawTransform(_arg1:b2Transform):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 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 SetXFormScale(_arg1:Number):void{ m_xformScale = _arg1; } public function GetFlags():uint{ return (m_drawFlags); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } public function SetFillAlpha(_arg1:Number):void{ m_fillAlpha = _arg1; } public function SetAlpha(_arg1:Number):void{ m_alpha = _arg1; } public function SetLineThickness(_arg1:Number):void{ m_lineThickness = _arg1; } } }//package Box2D.DynamicsSection 87//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeFixture(_arg1:b2Fixture):void{ } public function SayGoodbyeJoint(_arg1:b2Joint):void{ } } }//package Box2D.DynamicsSection 88//b2FilterData (Box2D.Dynamics.b2FilterData) package Box2D.Dynamics { public class b2FilterData { public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public var categoryBits:uint;// = 1 public function Copy():b2FilterData{ var _local1:b2FilterData = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.DynamicsSection 89//b2Fixture (Box2D.Dynamics.b2Fixture) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2Fixture { b2internal var m_next:b2Fixture; b2internal var m_shape:b2Shape; b2internal var m_restitution:Number; b2internal var m_friction:Number; b2internal var m_proxy; b2internal var m_filter:b2FilterData; b2internal var m_density:Number; private var m_massData:b2MassData; b2internal var m_isSensor:Boolean; b2internal var m_userData; b2internal var m_aabb:b2AABB; b2internal var m_body:b2Body; public function b2Fixture(){ m_filter = new b2FilterData(); super(); m_aabb = new b2AABB(); m_userData = null; m_body = null; m_next = null; m_shape = null; m_density = 0; m_friction = 0; m_restitution = 0; } public function TestPoint(_arg1:b2Vec2):Boolean{ return (m_shape.TestPoint(m_body.GetTransform(), _arg1)); } public function SetDensity(_arg1:Number):void{ m_density = _arg1; } public function SetRestitution(_arg1:Number):void{ m_restitution = _arg1; } public function GetNext():b2Fixture{ return (m_next); } public function GetShape():b2Shape{ return (m_shape); } public function GetFriction():Number{ return (m_friction); } public function GetDensity():Number{ return (m_density); } public function GetMassData(_arg1:b2MassData=null):b2MassData{ if (_arg1 == null){ _arg1 = new b2MassData(); }; m_shape.ComputeMass(_arg1, m_density); return (_arg1); } public function GetAABB():b2AABB{ return (m_aabb); } public function GetType():int{ return (m_shape.GetType()); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } b2internal function Destroy():void{ m_shape = null; } public function GetRestitution():Number{ return (m_restitution); } public function SetFriction(_arg1:Number):void{ m_friction = _arg1; } b2internal function Create(_arg1:b2Body, _arg2:b2Transform, _arg3:b2FixtureDef):void{ m_userData = _arg3.userData; m_friction = _arg3.friction; m_restitution = _arg3.restitution; m_body = _arg1; m_next = null; m_filter = _arg3.filter.Copy(); m_isSensor = _arg3.isSensor; m_shape = _arg3.shape.Copy(); m_density = _arg3.density; } public function IsSensor():Boolean{ return (m_isSensor); } public function RayCast(_arg1:b2RayCastOutput, _arg2:b2RayCastInput):Boolean{ return (m_shape.RayCast(_arg1, _arg2, m_body.GetTransform())); } public function GetUserData(){ return (m_userData); } b2internal function Synchronize(_arg1:IBroadPhase, _arg2:b2Transform, _arg3:b2Transform):void{ if (!m_proxy){ return; }; var _local4:b2AABB = new b2AABB(); var _local5:b2AABB = new b2AABB(); m_shape.ComputeAABB(_local4, _arg2); m_shape.ComputeAABB(_local5, _arg3); m_aabb.Combine(_local4, _local5); var _local6:b2Vec2 = b2Math.SubtractVV(_arg3.position, _arg2.position); _arg1.MoveProxy(m_proxy, m_aabb, _local6); } b2internal function CreateProxy(_arg1:IBroadPhase, _arg2:b2Transform):void{ m_shape.ComputeAABB(m_aabb, _arg2); m_proxy = _arg1.CreateProxy(m_aabb, this); } public function SetFilterData(_arg1:b2FilterData):void{ var _local3:b2Contact; var _local4:b2Fixture; var _local5:b2Fixture; m_filter = _arg1.Copy(); if (m_body){ return; }; var _local2:b2ContactEdge = m_body.GetContactList(); while (_local2) { _local3 = _local2.contact; _local4 = _local3.GetFixtureA(); _local5 = _local3.GetFixtureB(); if ((((_local4 == this)) || ((_local5 == this)))){ _local3.FlagForFiltering(); }; _local2 = _local2.next; }; } b2internal function DestroyProxy(_arg1:IBroadPhase):void{ if (m_proxy == null){ return; }; _arg1.DestroyProxy(m_proxy); m_proxy = null; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetBody():b2Body{ return (m_body); } public function SetSensor(_arg1:Boolean):void{ var _local3:b2Contact; var _local4:b2Fixture; var _local5:b2Fixture; if (m_isSensor == _arg1){ return; }; m_isSensor = _arg1; if (m_body == null){ return; }; var _local2:b2ContactEdge = m_body.GetContactList(); while (_local2) { _local3 = _local2.contact; _local4 = _local3.GetFixtureA(); _local5 = _local3.GetFixtureB(); if ((((_local4 == this)) || ((_local5 == this)))){ _local3.SetSensor(((_local4.IsSensor()) || (_local5.IsSensor()))); }; _local2 = _local2.next; }; } } }//package Box2D.DynamicsSection 90//b2FixtureDef (Box2D.Dynamics.b2FixtureDef) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; public class b2FixtureDef { public var shape:b2Shape; public var isSensor:Boolean; public var density:Number; public var restitution:Number; public var userData; public var filter:b2FilterData; public var friction:Number; public function b2FixtureDef(){ filter = new b2FilterData(); super(); shape = null; userData = null; friction = 0.2; restitution = 0; density = 0; filter.categoryBits = 1; filter.maskBits = 0xFFFF; filter.groupIndex = 0; isSensor = false; } } }//package Box2D.DynamicsSection 91//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2Island { private var m_contactSolver:b2ContactSolver; private var m_listener:b2ContactListener; private var m_bodyCapacity:int; b2internal var m_bodies:Array; b2internal var m_bodyCount:int; b2internal var m_jointCapacity:int; b2internal var m_contactCount:int; b2internal var m_contacts:Array; b2internal var m_contactCapacity:int; b2internal var m_jointCount:int; private var m_allocator; b2internal var m_joints:Array; private static var s_impulse:b2ContactImpulse = new b2ContactImpulse(); public function b2Island(){ m_bodies = new Array(); m_contacts = new Array(); m_joints = new Array(); } public function AddBody(_arg1:b2Body):void{ _arg1.m_islandIndex = m_bodyCount; 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 _local3:b2Contact; var _local4:b2ContactConstraint; var _local5:int; if (m_listener == null){ return; }; var _local2:int; while (_local2 < m_contactCount) { _local3 = m_contacts[_local2]; _local4 = _arg1[_local2]; _local5 = 0; while (_local5 < _local4.pointCount) { s_impulse.normalImpulses[_local5] = _local4.points[_local5].normalImpulse; s_impulse.tangentImpulses[_local5] = _local4.points[_local5].tangentImpulse; _local5++; }; m_listener.PostSolve(_local3, s_impulse); _local2++; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean):void{ var _local4:int; var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Boolean; var _local13:Boolean; var _local14:Boolean; var _local15:Number; var _local16:Number; var _local17:Number; _local4 = 0; while (_local4 < m_bodyCount) { _local6 = m_bodies[_local4]; if (_local6.GetType() != b2Body.b2_dynamicBody){ } 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_linearVelocity.Multiply(b2Math.Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); }; _local4++; }; m_contactSolver.Initialize(_arg1, m_contacts, m_contactCount, m_allocator); var _local8:b2ContactSolver = m_contactSolver; _local8.InitVelocityConstraints(_arg1); _local4 = 0; while (_local4 < m_jointCount) { _local7 = m_joints[_local4]; _local7.InitVelocityConstraints(_arg1); _local4++; }; _local4 = 0; while (_local4 < _arg1.velocityIterations) { _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.SolveVelocityConstraints(_arg1); _local5++; }; _local8.SolveVelocityConstraints(); _local4++; }; _local4 = 0; while (_local4 < m_jointCount) { _local7 = m_joints[_local4]; _local7.FinalizeVelocityConstraints(); _local4++; }; _local8.FinalizeVelocityConstraints(); _local4 = 0; while (_local4 < m_bodyCount) { _local6 = m_bodies[_local4]; if (_local6.GetType() == b2Body.b2_staticBody){ } else { _local9 = (_arg1.dt * _local6.m_linearVelocity.x); _local10 = (_arg1.dt * _local6.m_linearVelocity.y); if (((_local9 * _local9) + (_local10 * _local10)) > b2Settings.b2_maxTranslationSquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * (b2Settings.b2_maxTranslation * _arg1.inv_dt)); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * (b2Settings.b2_maxTranslation * _arg1.inv_dt)); }; _local11 = (_arg1.dt * _local6.m_angularVelocity); if (((_arg1.dt * _local6.m_angularVelocity) * _local11) > b2Settings.b2_maxRotationSquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = (-(b2Settings.b2_maxRotation) * _arg1.inv_dt); } else { _local6.m_angularVelocity = (b2Settings.b2_maxRotation * _arg1.inv_dt); }; }; _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(); }; _local4++; }; _local4 = 0; while (_local4 < _arg1.positionIterations) { _local12 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local13 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local14 = _local7.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local13 = ((_local13) && (_local14)); _local5++; }; if (((_local12) && (_local13))){ break; }; _local4++; }; Report(_local8.m_constraints); if (_arg3){ _local15 = Number.MAX_VALUE; _local16 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local17 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local4 = 0; while (_local4 < m_bodyCount) { _local6 = m_bodies[_local4]; if (_local6.GetType() == b2Body.b2_staticBody){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local15 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local17)))) || ((b2Math.Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local16)))){ _local6.m_sleepTime = 0; _local15 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local15 = b2Math.Min(_local15, _local6.m_sleepTime); }; }; _local4++; }; if (_local15 >= b2Settings.b2_timeToSleep){ _local4 = 0; while (_local4 < m_bodyCount) { _local6 = m_bodies[_local4]; _local6.SetAwake(false); _local4++; }; }; }; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local3:int; var _local6:b2Body; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; m_contactSolver.Initialize(_arg1, m_contacts, m_contactCount, m_allocator); var _local4:b2ContactSolver = m_contactSolver; _local2 = 0; while (_local2 < m_jointCount) { m_joints[_local2].InitVelocityConstraints(_arg1); _local2++; }; _local2 = 0; while (_local2 < _arg1.velocityIterations) { _local4.SolveVelocityConstraints(); _local3 = 0; while (_local3 < m_jointCount) { m_joints[_local3].SolveVelocityConstraints(_arg1); _local3++; }; _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local6 = m_bodies[_local2]; if (_local6.GetType() == b2Body.b2_staticBody){ } else { _local7 = (_arg1.dt * _local6.m_linearVelocity.x); _local8 = (_arg1.dt * _local6.m_linearVelocity.y); if (((_local7 * _local7) + (_local8 * _local8)) > b2Settings.b2_maxTranslationSquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * (b2Settings.b2_maxTranslation * _arg1.inv_dt)); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * (b2Settings.b2_maxTranslation * _arg1.inv_dt)); }; _local9 = (_arg1.dt * _local6.m_angularVelocity); if (((_arg1.dt * _local6.m_angularVelocity) * _local9) > b2Settings.b2_maxRotationSquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = (-(b2Settings.b2_maxRotation) * _arg1.inv_dt); } else { _local6.m_angularVelocity = (b2Settings.b2_maxRotation * _arg1.inv_dt); }; }; _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(); }; _local2++; }; var _local5:Number = 0.75; _local2 = 0; while (_local2 < _arg1.positionIterations) { _local10 = _local4.SolvePositionConstraints(_local5); _local11 = true; _local3 = 0; while (_local3 < m_jointCount) { _local12 = m_joints[_local3].SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = ((_local11) && (_local12)); _local3++; }; if (((_local10) && (_local11))){ break; }; _local2++; }; Report(_local4.m_constraints); } public function Initialize(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener, _arg6:b2ContactSolver):void{ var _local7:int; 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_contactSolver = _arg6; _local7 = m_bodies.length; while (_local7 < _arg1) { m_bodies[_local7] = null; _local7++; }; _local7 = m_contacts.length; while (_local7 < _arg2) { m_contacts[_local7] = null; _local7++; }; _local7 = m_joints.length; while (_local7 < _arg3) { m_joints[_local7] = null; _local7++; }; } } }//package Box2D.DynamicsSection 92//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var warmStarting:Boolean; public var inv_dt:Number; public var dt:Number; public var velocityIterations:int; public var dtRatio:Number; public var positionIterations:int; public function Set(_arg1:b2TimeStep):void{ dt = _arg1.dt; inv_dt = _arg1.inv_dt; positionIterations = _arg1.positionIterations; velocityIterations = _arg1.velocityIterations; warmStarting = _arg1.warmStarting; } } }//package Box2D.DynamicsSection 93//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Controllers.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2World { private var m_inv_dt0:Number; private var m_contactSolver:b2ContactSolver; private var m_controllerList:b2Controller; b2internal var m_contactList:b2Contact; private var m_controllerCount:int; private var m_allowSleep:Boolean; private var m_island:b2Island; b2internal var m_flags:int; private var m_jointCount:int; private var m_bodyCount:int; private var s_stack:Array; private var m_destructionListener:b2DestructionListener; b2internal var m_groundBody:b2Body; b2internal var m_contactCount:int; private var m_debugDraw:b2DebugDraw; b2internal var m_bodyList:b2Body; private var m_jointList:b2Joint; private var m_gravity:b2Vec2; b2internal var m_contactManager:b2ContactManager; public static const e_newFixture:int = 1; public static const e_locked:int = 2; private static var s_timestep:b2TimeStep = new b2TimeStep(); private static var s_queue:Array = new Array(); private static var s_timestep2:b2TimeStep = new b2TimeStep(); private static var s_backupA:b2Sweep = new b2Sweep(); private static var m_continuousPhysics:Boolean; private static var m_warmStarting:Boolean; private static var s_xf:b2Transform = new b2Transform(); private static var s_backupB:b2Sweep = new b2Sweep(); private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); public function b2World(_arg1:b2Vec2, _arg2:Boolean){ s_stack = new Array(); m_contactManager = new b2ContactManager(); m_contactSolver = new b2ContactSolver(); m_island = new b2Island(); super(); m_destructionListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_controllerList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_controllerCount = 0; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg2; m_gravity = _arg1; m_inv_dt0 = 0; m_contactManager.m_world = this; var _local3:b2BodyDef = new b2BodyDef(); m_groundBody = CreateBody(_local3); } b2internal function DrawJoint(_arg1:b2Joint):void{ var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; var _local2:b2Body = _arg1.GetBodyA(); var _local3:b2Body = _arg1.GetBodyB(); var _local4:b2Transform = _local2.m_xf; var _local5:b2Transform = _local3.m_xf; var _local6:b2Vec2 = _local4.position; var _local7:b2Vec2 = _local5.position; var _local8:b2Vec2 = _arg1.GetAnchorA(); var _local9:b2Vec2 = _arg1.GetAnchorB(); var _local10:b2Color = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchorA(); _local13 = _local11.GetGroundAnchorB(); 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 RayCastAll(_arg1:b2Vec2, _arg2:b2Vec2):Array{ var result:Array; var RayCastAllWrapper:Function; var point1 = _arg1; var point2 = _arg2; RayCastAllWrapper = function (_arg1:b2Fixture, _arg2:b2Vec2, _arg3:b2Vec2, _arg4:Number):Number{ result[result.length] = _arg1; return (1); }; result = new Array(); RayCast(RayCastAllWrapper, point1, point2); return (result); } public function QueryAABB(_arg1:Function, _arg2:b2AABB):void{ var broadPhase:IBroadPhase; var WorldQueryWrapper:Function; var callback = _arg1; var aabb = _arg2; WorldQueryWrapper = function (_arg1):Boolean{ return (callback(broadPhase.GetUserData(_arg1))); }; broadPhase = m_contactManager.m_broadPhase; broadPhase.Query(WorldQueryWrapper, aabb); } public function GetJointCount():int{ return (m_jointCount); } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetProxyCount():int{ return (m_contactManager.m_broadPhase.GetProxyCount()); } public function DrawDebugData():void{ var _local2:int; var _local3:b2Body; var _local4:b2Fixture; var _local5:b2Shape; var _local6:b2Joint; var _local7:IBroadPhase; var _local11:b2Transform; var _local16:b2Controller; var _local17:b2Contact; var _local18:b2Fixture; var _local19:b2Fixture; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2AABB; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); var _local1:uint = m_debugDraw.GetFlags(); var _local8:b2Vec2 = new b2Vec2(); var _local9:b2Vec2 = new b2Vec2(); var _local10:b2Vec2 = new b2Vec2(); var _local12:b2AABB = new b2AABB(); var _local13:b2AABB = new b2AABB(); var _local14:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; var _local15:b2Color = new b2Color(0, 0, 0); if ((_local1 & b2DebugDraw.e_shapeBit)){ _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetFixtureList(); while (_local4) { _local5 = _local4.GetShape(); if (_local3.IsActive() == false){ _local15.Set(0.5, 0.5, 0.3); DrawShape(_local5, _local11, _local15); } else { if (_local3.GetType() == b2Body.b2_staticBody){ _local15.Set(0.5, 0.9, 0.5); DrawShape(_local5, _local11, _local15); } else { if (_local3.GetType() == b2Body.b2_kinematicBody){ _local15.Set(0.5, 0.5, 0.9); DrawShape(_local5, _local11, _local15); } else { if (_local3.IsAwake() == false){ _local15.Set(0.6, 0.6, 0.6); DrawShape(_local5, _local11, _local15); } else { _local15.Set(0.9, 0.7, 0.7); DrawShape(_local5, _local11, _local15); }; }; }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local6 = m_jointList; while (_local6) { DrawJoint(_local6); _local6 = _local6.m_next; }; }; if ((_local1 & b2DebugDraw.e_controllerBit)){ _local16 = m_controllerList; while (_local16) { _local16.Draw(m_debugDraw); _local16 = _local16.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local15.Set(0.3, 0.9, 0.9); _local17 = m_contactManager.m_contactList; while (_local17) { _local18 = _local17.GetFixtureA(); _local19 = _local17.GetFixtureB(); _local20 = _local18.GetAABB().GetCenter(); _local21 = _local19.GetAABB().GetCenter(); m_debugDraw.DrawSegment(_local20, _local21, _local15); _local17 = _local17.GetNext(); }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local7 = m_contactManager.m_broadPhase; _local14 = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; _local3 = m_bodyList; while (_local3) { if (_local3.IsActive() == false){ } else { _local4 = _local3.GetFixtureList(); while (_local4) { _local22 = _local7.GetFatAABB(_local4.m_proxy); _local14[0].Set(_local22.lowerBound.x, _local22.lowerBound.y); _local14[1].Set(_local22.upperBound.x, _local22.lowerBound.y); _local14[2].Set(_local22.upperBound.x, _local22.upperBound.y); _local14[3].Set(_local22.lowerBound.x, _local22.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local15); _local4 = _local4.GetNext(); }; }; _local3 = _local3.GetNext(); }; }; 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.DrawTransform(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local6:b2JointEdge; var _local7:b2ControllerEdge; var _local8:b2ContactEdge; var _local9:b2Fixture; if (IsLocked() == true){ return; }; var _local2:b2JointEdge = _arg1.m_jointList; while (_local2) { _local6 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local6.joint); }; DestroyJoint(_local6.joint); }; var _local3:b2ControllerEdge = _arg1.m_controllerList; while (_local3) { _local7 = _local3; _local3 = _local3.nextController; _local7.controller.RemoveBody(_arg1); }; var _local4:b2ContactEdge = _arg1.m_contactList; while (_local4) { _local8 = _local4; _local4 = _local4.next; m_contactManager.Destroy(_local8.contact); }; _arg1.m_contactList = null; var _local5:b2Fixture = _arg1.m_fixtureList; while (_local5) { _local9 = _local5; _local5 = _local5.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeFixture(_local9); }; _local9.DestroyProxy(m_contactManager.m_broadPhase); _local9.Destroy(); }; _arg1.m_fixtureList = null; _arg1.m_fixtureCount = 0; 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--; } b2internal function DrawShape(_arg1:b2Shape, _arg2:b2Transform, _arg3:b2Color):void{ var _local4:b2CircleShape; var _local5:b2Vec2; var _local6:Number; var _local7:b2Vec2; var _local8:int; var _local9:b2PolygonShape; var _local10:int; var _local11:Array; var _local12:Array; var _local13:b2EdgeShape; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local4 = (_arg1 as b2CircleShape); _local5 = b2Math.MulX(_arg2, _local4.m_p); _local6 = _local4.m_radius; _local7 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local5, _local6, _local7, _arg3); break; case b2Shape.e_polygonShape: _local9 = (_arg1 as b2PolygonShape); _local10 = _local9.GetVertexCount(); _local11 = _local9.GetVertices(); _local12 = new Array(_local10); _local8 = 0; while (_local8 < _local10) { _local12[_local8] = b2Math.MulX(_arg2, _local11[_local8]); _local8++; }; m_debugDraw.DrawSolidPolygon(_local12, _local10, _arg3); break; case b2Shape.e_edgeShape: _local13 = (_arg1 as b2EdgeShape); m_debugDraw.DrawSegment(b2Math.MulX(_arg2, _local13.GetVertex1()), b2Math.MulX(_arg2, _local13.GetVertex2()), _arg3); break; }; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function DestroyController(_arg1:b2Controller):void{ _arg1.Clear(); if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1 == m_controllerList){ m_controllerList = _arg1.m_next; }; m_controllerCount--; } b2internal function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local10:int; var _local11:int; var _local12:b2Body; var _local13:b2ContactEdge; var _local14:b2JointEdge; var _local3:b2Controller = m_controllerList; while (_local3) { _local3.Step(_arg1); _local3 = _local3.m_next; }; var _local4:b2Island = m_island; _local4.Initialize(m_bodyCount, m_contactCount, m_jointCount, null, m_contactManager.m_contactListener, m_contactSolver); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; var _local5:b2Contact = m_contactList; while (_local5) { _local5.m_flags = (_local5.m_flags & ~(b2Contact.e_islandFlag)); _local5 = _local5.m_next; }; var _local6:b2Joint = m_jointList; while (_local6) { _local6.m_islandFlag = false; _local6 = _local6.m_next; }; var _local7:int = m_bodyCount; var _local8:Array = s_stack; var _local9:b2Body = m_bodyList; while (_local9) { if ((_local9.m_flags & b2Body.e_islandFlag)){ } else { if ((((_local9.IsAwake() == false)) || ((_local9.IsActive() == false)))){ } else { if (_local9.GetType() == b2Body.b2_staticBody){ } else { _local4.Clear(); _local10 = 0; var _temp1 = _local10; _local10 = (_local10 + 1); var _local15 = _temp1; _local8[_local15] = _local9; _local9.m_flags = (_local9.m_flags | b2Body.e_islandFlag); while (_local10 > 0) { --_local10; _local2 = _local8[_local10]; _local4.AddBody(_local2); if (_local2.IsAwake() == false){ _local2.SetAwake(true); }; if (_local2.GetType() == b2Body.b2_staticBody){ } else { _local13 = _local2.m_contactList; while (_local13) { if ((_local13.contact.m_flags & b2Contact.e_islandFlag)){ } else { if ((((((_local13.contact.IsSensor() == true)) || ((_local13.contact.IsEnabled() == false)))) || ((_local13.contact.IsTouching() == false)))){ } else { _local4.AddContact(_local13.contact); _local13.contact.m_flags = (_local13.contact.m_flags | b2Contact.e_islandFlag); _local12 = _local13.other; if ((_local12.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local10; _local10 = (_local10 + 1); var _local16 = _temp2; _local8[_local16] = _local12; _local12.m_flags = (_local12.m_flags | b2Body.e_islandFlag); }; }; }; _local13 = _local13.next; }; _local14 = _local2.m_jointList; while (_local14) { if (_local14.joint.m_islandFlag == true){ } else { _local12 = _local14.other; if (_local12.IsActive() == false){ } else { _local4.AddJoint(_local14.joint); _local14.joint.m_islandFlag = true; if ((_local12.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local10; _local10 = (_local10 + 1); _local16 = _temp3; _local8[_local16] = _local12; _local12.m_flags = (_local12.m_flags | b2Body.e_islandFlag); }; }; }; _local14 = _local14.next; }; }; }; _local4.Solve(_arg1, m_gravity, m_allowSleep); _local11 = 0; while (_local11 < _local4.m_bodyCount) { _local2 = _local4.m_bodies[_local11]; if (_local2.GetType() == b2Body.b2_staticBody){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local11++; }; }; }; }; _local9 = _local9.m_next; }; _local11 = 0; while (_local11 < _local8.length) { if (!_local8[_local11]){ break; }; _local8[_local11] = null; _local11++; }; _local2 = m_bodyList; while (_local2) { if ((((_local2.IsAwake() == false)) || ((_local2.IsActive() == false)))){ } else { if (_local2.GetType() == b2Body.b2_staticBody){ } else { _local2.SynchronizeFixtures(); }; }; _local2 = _local2.m_next; }; m_contactManager.FindNewContacts(); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactManager.m_contactFilter = _arg1; } b2internal function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Fixture; var _local4:b2Fixture; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local8:b2Joint; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:int; var _local17:b2JointEdge; var _local18:b2TimeStep; var _local19:int; var _local20:Number; var _local21:Number; var _local22:b2Body; var _local9:b2Island = m_island; _local9.Initialize(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, b2Settings.b2_maxTOIJointsPerIsland, null, m_contactManager.m_contactListener, m_contactSolver); var _local10:Array = s_queue; _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; }; _local8 = m_jointList; while (_local8) { _local8.m_islandFlag = false; _local8 = _local8.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((((((_local11.IsSensor() == true)) || ((_local11.IsEnabled() == false)))) || ((_local11.IsContinuous() == false)))){ } else { _local20 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local20 = _local11.m_toi; } else { _local3 = _local11.m_fixtureA; _local4 = _local11.m_fixtureB; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((!((_local5.GetType() == b2Body.b2_dynamicBody))) || ((_local5.IsAwake() == false)))) && (((!((_local6.GetType() == b2Body.b2_dynamicBody))) || ((_local6.IsAwake() == false)))))){ continue; }; _local21 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local21 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local21); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local21 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local21); }; }; _local20 = _local11.ComputeTOI(_local5.m_sweep, _local6.m_sweep); b2Settings.b2Assert((((0 <= _local20)) && ((_local20 <= 1)))); if ((((_local20 > 0)) && ((_local20 < 1)))){ _local20 = (((1 - _local20) * _local21) + _local20); if (_local20 > 1){ _local20 = 1; }; }; _local11.m_toi = _local20; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local20)) && ((_local20 < _local13)))){ _local12 = _local11; _local13 = _local20; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_fixtureA; _local4 = _local12.m_fixtureB; _local5 = _local3.m_body; _local6 = _local4.m_body; s_backupA.Set(_local5.m_sweep); s_backupB.Set(_local6.m_sweep); _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactManager.m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if ((((_local12.IsSensor() == true)) || ((_local12.IsEnabled() == false)))){ _local5.m_sweep.Set(s_backupA); _local6.m_sweep.Set(s_backupB); _local5.SynchronizeTransform(); _local6.SynchronizeTransform(); } else { if (_local12.IsTouching() == false){ } else { _local14 = _local5; if (_local14.GetType() != b2Body.b2_dynamicBody){ _local14 = _local6; }; _local9.Clear(); _local15 = 0; _local16 = 0; var _temp1 = _local16; _local16 = (_local16 + 1); _local10[(_local15 + _temp1)] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local16 > 0) { var _temp2 = _local15; _local15 = (_local15 + 1); _local2 = _local10[_temp2]; _local16--; _local9.AddBody(_local2); if (_local2.IsAwake() == false){ _local2.SetAwake(true); }; if (_local2.GetType() != b2Body.b2_dynamicBody){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local9.m_contactCount == _local9.m_contactCapacity){ break; }; if ((_local7.contact.m_flags & b2Contact.e_islandFlag)){ } else { if ((((((_local7.contact.IsSensor() == true)) || ((_local7.contact.IsEnabled() == false)))) || ((_local7.contact.IsTouching() == false)))){ } else { _local9.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local22 = _local7.other; if ((_local22.m_flags & b2Body.e_islandFlag)){ } else { if (_local22.GetType() != b2Body.b2_staticBody){ _local22.Advance(_local13); _local22.SetAwake(true); }; _local10[(_local15 + _local16)] = _local22; _local16++; _local22.m_flags = (_local22.m_flags | b2Body.e_islandFlag); }; }; }; _local7 = _local7.next; }; }; }; _local17 = _local2.m_jointList; while (_local17) { if (_local9.m_jointCount == _local9.m_jointCapacity){ } else { if (_local17.joint.m_islandFlag == true){ } else { _local22 = _local17.other; if (_local22.IsActive() == false){ } else { _local9.AddJoint(_local17.joint); _local17.joint.m_islandFlag = true; if ((_local22.m_flags & b2Body.e_islandFlag)){ } else { if (_local22.GetType() != b2Body.b2_staticBody){ _local22.Advance(_local13); _local22.SetAwake(true); }; _local10[(_local15 + _local16)] = _local22; _local16++; _local22.m_flags = (_local22.m_flags | b2Body.e_islandFlag); }; }; }; }; _local17 = _local17.next; }; _local18 = s_timestep; _local18.warmStarting = false; _local18.dt = ((1 - _local13) * _arg1.dt); _local18.inv_dt = (1 / _local18.dt); _local18.dtRatio = 0; _local18.velocityIterations = _arg1.velocityIterations; _local18.positionIterations = _arg1.positionIterations; _local9.SolveTOI(_local18); _local19 = 0; while (_local19 < _local9.m_bodyCount) { _local2 = _local9.m_bodies[_local19]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if (_local2.IsAwake() == false){ } else { if (_local2.GetType() != b2Body.b2_dynamicBody){ } else { _local2.SynchronizeFixtures(); _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local19++; }; _local19 = 0; while (_local19 < _local9.m_contactCount) { _local11 = _local9.m_contacts[_local19]; _local9.m_contacts[_local19].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local19++; }; _local19 = 0; while (_local19 < _local9.m_jointCount) { _local8 = _local9.m_joints[_local19]; _local8.m_islandFlag = false; _local19++; }; m_contactManager.FindNewContacts(); }; }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function GetContactCount():int{ return (m_contactCount); } public function GetBodyList():b2Body{ return (m_bodyList); } public function GetGravity():b2Vec2{ return (m_gravity); } public function RayCastOne(_arg1:b2Vec2, _arg2:b2Vec2):b2Fixture{ var result:b2Fixture; var RayCastOneWrapper:Function; var point1 = _arg1; var point2 = _arg2; RayCastOneWrapper = function (_arg1:b2Fixture, _arg2:b2Vec2, _arg3:b2Vec2, _arg4:Number):Number{ result = _arg1; return (_arg4); }; RayCast(RayCastOneWrapper, point1, point2); return (result); } public function Validate():void{ m_contactManager.m_broadPhase.Validate(); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function QueryPoint(_arg1:Function, _arg2:b2Vec2):void{ var broadPhase:IBroadPhase; var WorldQueryWrapper:Function; var callback = _arg1; var p = _arg2; WorldQueryWrapper = function (_arg1):Boolean{ var _local2:b2Fixture = (broadPhase.GetUserData(_arg1) as b2Fixture); if (_local2.TestPoint(p)){ return (callback(_local2)); }; return (true); }; broadPhase = m_contactManager.m_broadPhase; var aabb:b2AABB = new b2AABB(); aabb.lowerBound.Set((p.x - b2Settings.b2_linearSlop), (p.y - b2Settings.b2_linearSlop)); aabb.upperBound.Set((p.x + b2Settings.b2_linearSlop), (p.y + b2Settings.b2_linearSlop)); broadPhase.Query(WorldQueryWrapper, aabb); } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local5:b2ContactEdge; var _local2:b2Joint = b2Joint.Create(_arg1, null); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_edgeA.joint = _local2; _local2.m_edgeA.other = _local2.m_bodyB; _local2.m_edgeA.prev = null; _local2.m_edgeA.next = _local2.m_bodyA.m_jointList; if (_local2.m_bodyA.m_jointList){ _local2.m_bodyA.m_jointList.prev = _local2.m_edgeA; }; _local2.m_bodyA.m_jointList = _local2.m_edgeA; _local2.m_edgeB.joint = _local2; _local2.m_edgeB.other = _local2.m_bodyA; _local2.m_edgeB.prev = null; _local2.m_edgeB.next = _local2.m_bodyB.m_jointList; if (_local2.m_bodyB.m_jointList){ _local2.m_bodyB.m_jointList.prev = _local2.m_edgeB; }; _local2.m_bodyB.m_jointList = _local2.m_edgeB; var _local3:b2Body = _arg1.bodyA; var _local4:b2Body = _arg1.bodyB; if (_arg1.collideConnected == false){ _local5 = _local4.GetContactList(); while (_local5) { if (_local5.other == _local3){ _local5.contact.FlagForFiltering(); }; _local5 = _local5.next; }; }; return (_local2); } public function GetContactList():b2Contact{ return (m_contactList); } public function DestroyJoint(_arg1:b2Joint):void{ var _local5:b2ContactEdge; var _local2:Boolean = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; var _local3:b2Body = _arg1.m_bodyA; var _local4:b2Body = _arg1.m_bodyB; _local3.SetAwake(true); _local4.SetAwake(true); if (_arg1.m_edgeA.prev){ _arg1.m_edgeA.prev.next = _arg1.m_edgeA.next; }; if (_arg1.m_edgeA.next){ _arg1.m_edgeA.next.prev = _arg1.m_edgeA.prev; }; if (_arg1.m_edgeA == _local3.m_jointList){ _local3.m_jointList = _arg1.m_edgeA.next; }; _arg1.m_edgeA.prev = null; _arg1.m_edgeA.next = null; if (_arg1.m_edgeB.prev){ _arg1.m_edgeB.prev.next = _arg1.m_edgeB.next; }; if (_arg1.m_edgeB.next){ _arg1.m_edgeB.next.prev = _arg1.m_edgeB.prev; }; if (_arg1.m_edgeB == _local4.m_jointList){ _local4.m_jointList = _arg1.m_edgeB.next; }; _arg1.m_edgeB.prev = null; _arg1.m_edgeB.next = null; b2Joint.Destroy(_arg1, null); m_jointCount--; if (_local2 == false){ _local5 = _local4.GetContactList(); while (_local5) { if (_local5.other == _local3){ _local5.contact.FlagForFiltering(); }; _local5 = _local5.next; }; }; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactManager.m_contactListener = _arg1; } public function CreateController(_arg1:b2Controller):b2Controller{ if (_arg1.m_world != this){ throw (new Error("Controller can only be a member of one world")); }; _arg1.m_next = m_controllerList; _arg1.m_prev = null; if (m_controllerList){ m_controllerList.m_prev = _arg1; }; m_controllerList = _arg1; m_controllerCount++; _arg1.m_world = this; return (_arg1); } public function QueryShape(_arg1:Function, _arg2:b2Shape, _arg3:b2Transform=null):void{ var broadPhase:IBroadPhase; var WorldQueryWrapper:Function; var callback = _arg1; var shape = _arg2; var transform = _arg3; WorldQueryWrapper = function (_arg1):Boolean{ var _local2:b2Fixture = (broadPhase.GetUserData(_arg1) as b2Fixture); if (b2Shape.TestOverlap(shape, transform, _local2.GetShape(), _local2.GetBody().GetTransform())){ return (callback(_local2)); }; return (true); }; if (transform == null){ transform = new b2Transform(); transform.SetIdentity(); }; broadPhase = m_contactManager.m_broadPhase; var aabb:b2AABB = new b2AABB(); shape.ComputeAABB(aabb, transform); broadPhase.Query(WorldQueryWrapper, aabb); } public function CreateBody(_arg1:b2BodyDef):b2Body{ if (IsLocked() == true){ return (null); }; var _local2:b2Body = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function RemoveController(_arg1:b2Controller):void{ 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 (m_controllerList == _arg1){ m_controllerList = _arg1.m_next; }; m_controllerCount--; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function RayCast(_arg1:Function, _arg2:b2Vec2, _arg3:b2Vec2):void{ var broadPhase:IBroadPhase; var output:b2RayCastOutput; var RayCastWrapper:Function; var callback = _arg1; var point1 = _arg2; var point2 = _arg3; RayCastWrapper = function (_arg1:b2RayCastInput, _arg2):Number{ var _local6:Number; var _local7:b2Vec2; var _local3:* = broadPhase.GetUserData(_arg2); var _local4:b2Fixture = (_local3 as b2Fixture); var _local5:Boolean = _local4.RayCast(output, _arg1); if (_local5){ _local6 = output.fraction; _local7 = new b2Vec2((((1 - _local6) * point1.x) + (_local6 * point2.x)), (((1 - _local6) * point1.y) + (_local6 * point2.y))); return (callback(_local4, _local7, output.normal, _local6)); }; return (_arg1.maxFraction); }; broadPhase = m_contactManager.m_broadPhase; output = new b2RayCastOutput(); var input:b2RayCastInput = new b2RayCastInput(point1, point2); broadPhase.RayCast(RayCastWrapper, input); } public function Step(_arg1:Number, _arg2:int, _arg3:int):void{ if ((m_flags & e_newFixture)){ m_contactManager.FindNewContacts(); m_flags = (m_flags & ~(e_newFixture)); }; m_flags = (m_flags | e_locked); var _local4:b2TimeStep = s_timestep2; _local4.dt = _arg1; _local4.velocityIterations = _arg2; _local4.positionIterations = _arg3; if (_arg1 > 0){ _local4.inv_dt = (1 / _arg1); } else { _local4.inv_dt = 0; }; _local4.dtRatio = (m_inv_dt0 * _arg1); _local4.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local4.dt > 0){ Solve(_local4); }; if (((m_continuousPhysics) && ((_local4.dt > 0)))){ SolveTOI(_local4); }; if (_local4.dt > 0){ m_inv_dt0 = _local4.inv_dt; }; m_flags = (m_flags & ~(e_locked)); } public function IsLocked():Boolean{ return (((m_flags & e_locked) > 0)); } public function ClearForces():void{ var _local1:b2Body = m_bodyList; while (_local1) { _local1.m_force.SetZero(); _local1.m_torque = 0; _local1 = _local1.m_next; }; } public function GetBodyCount():int{ return (m_bodyCount); } public function SetBroadPhase(_arg1:IBroadPhase):void{ var _local4:b2Fixture; var _local2:IBroadPhase = m_contactManager.m_broadPhase; m_contactManager.m_broadPhase = _arg1; var _local3:b2Body = m_bodyList; while (_local3) { _local4 = _local3.m_fixtureList; while (_local4) { _local4.m_proxy = _arg1.CreateProxy(_local2.GetFatAABB(_local4.m_proxy), _local4); _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; } public function AddController(_arg1:b2Controller):b2Controller{ _arg1.m_next = m_controllerList; _arg1.m_prev = null; m_controllerList = _arg1; _arg1.m_world = this; m_controllerCount++; return (_arg1); } } }//package Box2D.DynamicsSection 94//AdLoader (CPMStar.AdLoader) package CPMStar { import flash.events.*; import flash.display.*; import flash.net.*; import flash.system.*; public class AdLoader extends Sprite { private var cpmstarLoader:Loader; private var contentspotid:String; public function AdLoader(_arg1:String){ this.contentspotid = _arg1; addEventListener(Event.ADDED, addedHandler); } private function dispatchHandler(_arg1:Event):void{ dispatchEvent(_arg1); } private function addedHandler(_arg1:Event):void{ removeEventListener(Event.ADDED, addedHandler); Security.allowDomain("server.cpmstar.com"); var _local2 = "http://server.cpmstar.com/adviewas3.swf"; var _local3:DisplayObjectContainer = parent; cpmstarLoader = new Loader(); cpmstarLoader.contentLoaderInfo.addEventListener(Event.INIT, dispatchHandler); cpmstarLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, dispatchHandler); cpmstarLoader.load(new URLRequest(((_local2 + "?contentspotid=") + contentspotid))); addChild(cpmstarLoader); } } }//package CPMStarSection 95//SimpleStatableObject (Entity.SimpleStatableObject) package Entity { import flash.display.*; public class SimpleStatableObject extends MovieClip { protected var m_state:String;// = null protected var m_stateTime:Number;// = 0 final public function changeState(_arg1:String):void{ onChangeState(m_state, _arg1); m_stateTime = 0; m_state = _arg1; } protected function onChangeState(_arg1:String, _arg2:String):void{ } final public function update(_arg1:Number):void{ m_stateTime = (m_stateTime + _arg1); vUpdate(_arg1); } protected function vUpdate(_arg1:Number):void{ } } }//package EntitySection 96//highscoreloader_54 (Gibbets_II_fla.highscoreloader_54) package Gibbets_II_fla { import flash.events.*; import flash.geom.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.text.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.ui.*; import flash.xml.*; public dynamic class highscoreloader_54 extends MovieClip { public var connectionID:Number; public var view:Number; public var readytoSend:Boolean; public var viewURL:String; public var connected:Boolean; public var score:Number; public var loader; public var AS3_lc:LocalConnection; public var game:String; public function highscoreloader_54(){ addFrameScript(0, frame1, 1, frame2); } public function as2Ready():void{ trace("AS2 Ready"); readytoSend = true; AS3_lc.send(("_AS3toAS2_" + connectionID), "communicateData", game, score, view, viewURL, ((("fl3m_uP_Ebri8zi8#" + game) + score) + "2I2RI3tH6ahl?")); } function frame2(){ Security.allowInsecureDomain("*"); Security.allowDomain("*"); readytoSend = false; connected = false; connectionID = 1; loader = new Loader(); loader.load(new URLRequest("http://www.notdoppler.com/highscores/highscores.swf")); addChild(loader); AS3_lc = new LocalConnection(); AS3_lc.allowDomain("*"); AS3_lc.allowInsecureDomain("*"); while (((!(connected)) && ((connectionID < 5)))) { try { AS3_lc.connect(("_AS2toAS3_" + connectionID)); connected = true; } catch(error:ArgumentError) { trace((("AS3: Connection No:" + connectionID) + " is already in use!")); connectionID = (connectionID + 1); }; }; AS3_lc.client = this; } public function loadHighscores(_arg1, _arg2, _arg3, _arg4){ game = _arg1; score = _arg2; view = _arg3; viewURL = _arg4; this.visible = true; gotoAndStop(2); resendData(); } function frame1(){ stop(); this.visible = false; } public function resendData():void{ if (readytoSend){ as2Ready(); }; } } }//package Gibbets_II_flaSection 97//introFlash_608 (Gibbets_II_fla.introFlash_608) package Gibbets_II_fla { import flash.display.*; public dynamic class introFlash_608 extends MovieClip { public function introFlash_608(){ addFrameScript(5, frame6); } function frame6(){ stop(); } } }//package Gibbets_II_flaSection 98//LeftPanel_542 (Gibbets_II_fla.LeftPanel_542) package Gibbets_II_fla { import flash.display.*; public dynamic class LeftPanel_542 extends MovieClip { public var m_buttonMoreGames:SimpleButton; public var m_buttonGibbetsI:SimpleButton; public function LeftPanel_542(){ addFrameScript(31, frame32); } function frame32(){ stop(); } } }//package Gibbets_II_flaSection 99//shirt_39_519 (Gibbets_II_fla.shirt_39_519) package Gibbets_II_fla { import flash.display.*; public dynamic class shirt_39_519 extends MovieClip { public function shirt_39_519(){ addFrameScript(60, frame61); } function frame61(){ stop(); } } }//package Gibbets_II_flaSection 100//shirt_41_524 (Gibbets_II_fla.shirt_41_524) package Gibbets_II_fla { import flash.display.*; public dynamic class shirt_41_524 extends MovieClip { public function shirt_41_524(){ addFrameScript(51, frame52); } function frame52(){ stop(); } } }//package Gibbets_II_flaSection 101//shirt_42_527 (Gibbets_II_fla.shirt_42_527) package Gibbets_II_fla { import flash.display.*; public dynamic class shirt_42_527 extends MovieClip { public function shirt_42_527(){ addFrameScript(51, frame52, 55, frame56, 63, frame64); } function frame52(){ } function frame64(){ stop(); } function frame56(){ } } }//package Gibbets_II_flaSection 102//shirt_44_530 (Gibbets_II_fla.shirt_44_530) package Gibbets_II_fla { import flash.display.*; public dynamic class shirt_44_530 extends MovieClip { public var m_buttonCredits:SimpleButton; public var m_buttonPlay:SimpleButton; public var m_buttonOptions:SimpleButton; public function shirt_44_530(){ addFrameScript(30, frame31); } function frame31(){ stop(); } } }//package Gibbets_II_flaSection 103//vulture_copy3_506 (Gibbets_II_fla.vulture_copy3_506) package Gibbets_II_fla { import flash.display.*; public dynamic class vulture_copy3_506 extends MovieClip { public function vulture_copy3_506(){ addFrameScript(21, frame22); } function frame22(){ stop(); } } }//package Gibbets_II_flaSection 104//FPSCounter (Main.FPSCounter) package Main { import flash.events.*; import flash.utils.*; public class FPSCounter { private var m_timer:Timer; private var m_fps:int;// = 0 private var m_framesFromLastSecond:int;// = 0 public function FPSCounter(){ m_timer = new Timer(1000); super(); m_timer.addEventListener(TimerEvent.TIMER, onTick); m_timer.start(); } public function getFPS():int{ return (m_fps); } public function onTick(_arg1:TimerEvent):void{ m_fps = m_framesFromLastSecond; m_framesFromLastSecond = 0; } public function addFrame():void{ m_framesFromLastSecond++; } } }//package MainSection 105//GameState (Main.GameState) package Main { import flash.events.*; import flash.display.*; public class GameState extends MovieClip { private var m_isMouseDown:Boolean;// = false private var m_isInitiliazed:Boolean;// = false protected var m_liveTime:Number;// = 0 protected var m_forsedLiveTime:Number;// = 0 protected var m_view:MovieClip; public function onStop():void{ } public function onCleanup():void{ if (m_view){ while (m_view.numChildren != 0) { m_view.removeChildAt(0); }; m_view = null; }; } public function update(_arg1:Number):void{ } public function getViewClip():DisplayObject{ return (null); } public function InternalInit():void{ if (!m_isInitiliazed){ m_isInitiliazed = true; onPreInit(); }; m_liveTime = 0; onInit(); } public function handleMouseMove(_arg1:MouseEvent):void{ } public function onInit():void{ } public function handleKeyUp(_arg1:KeyboardEvent):void{ } public function handleMouseUp(_arg1:MouseEvent):void{ m_isMouseDown = false; } public function forsedUpdate(_arg1:Number):void{ } public function handleMouseDown(_arg1:MouseEvent):void{ m_isMouseDown = true; } public function handleKeyDown(_arg1:KeyboardEvent):void{ } public function isInitiliazed():Boolean{ return (m_isInitiliazed); } final public function internalUpdate(_arg1:Number):void{ m_liveTime = (m_liveTime + _arg1); update(_arg1); } public function onResume():void{ } final public function internalForsedUpdate(_arg1:Number):void{ m_forsedLiveTime = (m_forsedLiveTime + _arg1); forsedUpdate(_arg1); } public function handleMouseClick(_arg1:MouseEvent):void{ } public function isMouseDown():Boolean{ return (m_isMouseDown); } public function onPreInit():void{ } } }//package MainSection 106//PhysGameState (Main.PhysGameState) package Main { import flash.events.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Utils.*; import Box2D.Dynamics.Joints.*; import flash.display.*; public class PhysGameState extends GameState { protected var m_world:b2World; protected var m_physScale:Number;// = 30 private var m_accumulateTime:Number;// = 0 protected var m_debugSprite:Sprite; protected var m_mouseDragEnabled:Boolean;// = false private var m_mouseJoint:b2MouseJoint; protected var m_gravity:b2Vec2; public function PhysGameState(){ m_debugSprite = new Sprite(); m_gravity = new b2Vec2(0, 10); super(); } override public function onCleanup():void{ var _local2:b2Body; var _local1:Array = new Array(); _local2 = m_world.GetBodyList(); while (_local2) { _local1.push(_local2); _local2 = _local2.GetNext(); }; for each (_local2 in _local1) { m_world.DestroyBody(_local2); }; m_world = null; m_debugSprite = null; m_gravity = null; m_mouseJoint = null; super.onCleanup(); } override public function update(_arg1:Number):void{ var _local3:DisplayObject; m_accumulateTime = (m_accumulateTime + _arg1); while (m_accumulateTime > Constant.TIME_STEP) { m_accumulateTime = (m_accumulateTime - Constant.TIME_STEP); m_world.Step(Constant.TIME_STEP, Constant.PHYSICS_VELOCITY_ITERATION_COUNT, Constant.PHYSICS_POSITIONS_ITERATION_COUNT); }; var _local2:b2Body = m_world.GetBodyList(); while (_local2) { if ((_local2.GetUserData() is DisplayObject)){ _local3 = (_local2.GetUserData() as DisplayObject); _local3.x = (_local2.GetPosition().x * m_physScale); _local3.y = (_local2.GetPosition().y * m_physScale); _local3.rotation = MathUtils.RadToGrad(_local2.GetAngle()); }; _local2 = _local2.GetNext(); }; if (Constant.m_debugMode){ m_world.DrawDebugData(); }; } public function parseShapeVectorFromClip(_arg1:MovieClip, _arg2:String):Array{ var _local3:Array = new Array(); var _local4:DisplayObject = new MovieClip(); var _local5:int; while (_local4) { _local4 = _arg1.getChildByName((_arg2 + _local5)); if (_local4){ _local3.push(new b2Vec2((_local4.x / m_physScale), (_local4.y / m_physScale))); }; _local5++; }; return (_local3); } override public function handleMouseMove(_arg1:MouseEvent):void{ if (m_mouseDragEnabled){ if (m_mouseJoint){ m_mouseJoint.SetTarget(getMousePhysPos()); }; }; } override public function onInit():void{ super.onInit(); m_world = new b2World(m_gravity, true); m_world.SetWarmStarting(true); m_world.SetContinuousPhysics(true); } public function initDebugDraw():void{ var _local1:b2DebugDraw; if (Constant.m_debugMode){ _local1 = new b2DebugDraw(); _local1.SetSprite(m_debugSprite); _local1.SetDrawScale(m_physScale); _local1.SetFillAlpha(0.8); _local1.SetLineThickness(1); _local1.SetFlags((b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit)); m_world.SetDebugDraw(_local1); m_view.addChild(m_debugSprite); m_debugSprite.visible = false; }; } override public function handleMouseUp(_arg1:MouseEvent):void{ super.handleMouseUp(_arg1); if (m_mouseDragEnabled){ if (m_mouseJoint){ m_world.DestroyJoint(m_mouseJoint); m_mouseJoint = null; }; }; } public function GetBodyAtMouse():b2Body{ var mouse_pos:b2Vec2; var fixture:b2Fixture; var GetBodyCallback:Function; GetBodyCallback = function (_arg1:b2Fixture):Boolean{ var _local3:Boolean; var _local2:b2Shape = _arg1.GetShape(); if (_arg1.GetBody().GetType() != b2Body.b2_staticBody){ _local3 = _local2.TestPoint(_arg1.GetBody().GetTransform(), mouse_pos); if (_local3){ body = _arg1.GetBody(); return (false); }; }; return (true); }; mouse_pos = getMousePhysPos(); var aabb:b2AABB = new b2AABB(); aabb.lowerBound.Set((mouse_pos.x - 0.001), (mouse_pos.y - 0.001)); aabb.upperBound.Set((mouse_pos.x + 0.001), (mouse_pos.y + 0.001)); var body:b2Body; m_world.QueryAABB(GetBodyCallback, aabb); return (body); } public function createStaticBoxFromClip(_arg1:DisplayObject, _arg2:Sprite):b2Fixture{ _arg2.addChild(_arg1); var _local3:Number = _arg1.rotation; _arg1.rotation = 0; var _local4:b2BodyDef = new b2BodyDef(); _local4.position = new b2Vec2((_arg1.x / m_physScale), (_arg1.y / m_physScale)); _local4.angle = MathUtils.GradToRad(_local3); var _local5:b2Body = m_world.CreateBody(_local4); var _local6:b2PolygonShape = new b2PolygonShape(); _local6.SetAsBox((((_arg1.width - 1) / m_physScale) / 2), (((_arg1.height - 1) / m_physScale) / 2)); var _local7:b2FixtureDef = new b2FixtureDef(); _local7.shape = _local6; var _local8:b2Fixture = _local5.CreateFixture(_local7); _local5.SetUserData(_arg1); _arg1.rotation = _local3; return (_local8); } override public function handleMouseDown(_arg1:MouseEvent):void{ var _local2:b2Body; var _local3:b2MouseJointDef; super.handleMouseDown(_arg1); if (m_mouseDragEnabled){ if (!m_mouseJoint){ _local2 = GetBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.bodyA = m_world.GetGroundBody(); _local3.bodyB = _local2; _local3.target.SetV(getMousePhysPos()); _local3.collideConnected = true; _local3.maxForce = (300 * _local2.GetMass()); m_mouseJoint = (m_world.CreateJoint(_local3) as b2MouseJoint); }; }; }; } public function createDynamicBoxFromClip(_arg1:Sprite, _arg2:DisplayObject):b2Body{ var _local3:Number = _arg2.rotation; _arg1.addChild(_arg2); var _local4:b2BodyDef = new b2BodyDef(); _local4.type = b2Body.b2_dynamicBody; _local4.position = new b2Vec2((_arg2.x / m_physScale), (_arg2.y / m_physScale)); _local4.angle = MathUtils.GradToRad(_local3); var _local5:b2Body = m_world.CreateBody(_local4); var _local6:b2PolygonShape = new b2PolygonShape(); _local6.SetAsBox((((_arg2.width - 1) / m_physScale) / 2), (((_arg2.height - 1) / m_physScale) / 2)); var _local7:b2FixtureDef = new b2FixtureDef(); _local7.shape = _local6; _local7.density = 1.9; _local7.friction = 0.4; _local7.restitution = 0.25; _local5.CreateFixture(_local7); _local5.SetUserData(_arg2); _arg2.rotation = _local3; return (_local5); } public function createStaticBox(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Number):b2Body{ var _local4:b2BodyDef = new b2BodyDef(); _local4.position = _arg2.Copy(); _local4.angle = MathUtils.GradToRad(_arg3); var _local5:b2Body = m_world.CreateBody(_local4); var _local6:b2PolygonShape = new b2PolygonShape(); _local6.SetAsBox((_arg1.x / 2), (_arg1.y / 2)); var _local7:b2FixtureDef = new b2FixtureDef(); _local7.shape = _local6; _local5.CreateFixture(_local7); return (_local5); } public function getMousePhysPos():b2Vec2{ return (new b2Vec2(((stage.mouseX / m_physScale) / scaleX), ((stage.mouseY / m_physScale) / scaleY))); } } }//package MainSection 107//PreloaderState (Main.PreloaderState) package Main { import flash.events.*; import flash.display.*; public class PreloaderState extends GameState { protected var m_scene:MovieClip; private var m_minimalLoadTime:Number;// = 50 private var m_isEnded:Boolean;// = false protected var m_bytesTotal:Number;// = 100 private var m_isLoadingFinished:Boolean;// = false protected var m_loaderInfo:LoaderInfo;// = null private var m_percent:Number;// = 0 protected var m_bytesLoaded:Number;// = 100 private function onLoadComplete(_arg1:Event):void{ m_loaderInfo.removeEventListener(ProgressEvent.PROGRESS, onLoadProgress); m_loaderInfo.removeEventListener(Event.COMPLETE, onLoadComplete); m_isLoadingFinished = true; } override public function onInit():void{ m_scene = StateManager.getInstance(); m_loaderInfo = StateManager.getInstance().loaderInfo; if (m_loaderInfo.bytesLoaded >= m_loaderInfo.bytesTotal){ m_isLoadingFinished = true; } else { m_loaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoadProgress); m_loaderInfo.addEventListener(Event.COMPLETE, onLoadComplete); }; } override public function update(_arg1:Number):void{ if (!m_isEnded){ m_percent = Math.min((m_bytesLoaded / m_bytesTotal), (m_liveTime / m_minimalLoadTime)); if (((m_isLoadingFinished) && ((m_liveTime >= m_minimalLoadTime)))){ StateManager.getInstance().gotoAndStop(2); onFinishLoading(); m_isEnded = true; }; }; } public function onFinishLoading():void{ } public function getPercent():Number{ return (m_percent); } public function setMinimalLoadTime(_arg1:Number):void{ m_minimalLoadTime = _arg1; } private function onLoadProgress(_arg1:ProgressEvent):void{ m_bytesTotal = _arg1.bytesTotal; m_bytesLoaded = _arg1.bytesLoaded; } } }//package MainSection 108//StateManager (Main.StateManager) package Main { import flash.events.*; import flash.display.*; import flash.utils.*; import States.*; import flash.ui.*; public class StateManager extends MovieClip { private var m_lastState:GameState;// = null private var m_states:Array; public var m_preloaderClip:CurrentPreloaderState; public var hsloader:MovieClip; private var m_currentTime:int; private var m_fpsCounter:FPSCounter; private var m_seconds:int;// = 0 private var m_timer:Timer; private var m_overlay:DisplayObject;// = null private static var m_instance:StateManager = null; public function StateManager(){ m_states = new Array(); m_fpsCounter = new FPSCounter(); m_timer = new Timer(1000); m_currentTime = getTimer(); super(); addFrameScript(0, frame1); m_instance = this; stop(); addEventListener(Event.ENTER_FRAME, update); stage.addEventListener(MouseEvent.CLICK, handleMouseClick); stage.addEventListener(MouseEvent.MOUSE_UP, handleMouseUp); stage.addEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown); stage.addEventListener(MouseEvent.MOUSE_MOVE, handleMouseMove); stage.addEventListener(KeyboardEvent.KEY_DOWN, onKey); stage.addEventListener(KeyboardEvent.KEY_UP, handleKeyUp); m_timer.addEventListener(TimerEvent.TIMER, onTimer); m_timer.start(); pushState(m_preloaderClip); customizeContextMenu(); } private function onKey(_arg1:KeyboardEvent):void{ if (m_states.length != 0){ m_states[(m_states.length - 1)].handleKeyDown(_arg1); }; } public function changeState(_arg1:GameState):void{ if (m_states.length != 0){ m_lastState = m_states[(m_states.length - 1)]; }; while (m_states.length != 0) { popState(); }; pushState(_arg1); } private function goNotdoppler(_arg1:ContextMenuEvent):void{ LinksManager.goURL(LinksManager.MAIN_PAGE_URL, ""); } public function popState():void{ if (m_states.length != 0){ m_lastState = m_states[(m_states.length - 1)]; m_lastState.onCleanup(); m_states.pop(); removeChild(m_lastState); if (m_states.length != 0){ m_states[(m_states.length - 1)].onResume(); }; }; onStateChanging(); } public function haveOverlay():Boolean{ return (!((m_overlay == null))); } private function handleMouseMove(_arg1:MouseEvent):void{ if (m_states.length != 0){ m_states[(m_states.length - 1)].handleMouseMove(_arg1); }; } public function hitTestOverlays(_arg1:Number, _arg2:Number):Boolean{ return (((m_overlay) && (m_overlay.hitTestPoint(_arg1, _arg2, true)))); } public function getSeconds():int{ return (m_seconds); } public function setOverlay(_arg1:DisplayObject):void{ if (_arg1){ m_overlay = _arg1; addChild(m_overlay); } else { trace(new Error().getStackTrace()); }; } public function pushState(_arg1:GameState):void{ if (m_states.length != 0){ m_lastState = m_states[(m_states.length - 1)]; m_lastState.onStop(); } else { m_lastState = _arg1; }; m_states.push(_arg1); addChild(_arg1); _arg1.InternalInit(); onStateChanging(); } private function handleMouseUp(_arg1:MouseEvent):void{ if (m_states.length != 0){ m_states[(m_states.length - 1)].handleMouseUp(_arg1); }; } private function handleKeyUp(_arg1:KeyboardEvent):void{ if (m_states.length != 0){ m_states[(m_states.length - 1)].handleKeyUp(_arg1); }; } private function handleMouseDown(_arg1:MouseEvent):void{ if (m_states.length != 0){ m_states[(m_states.length - 1)].handleMouseDown(_arg1); }; } private function update(_arg1:Event):void{ var _local3:GameState; var _local2:Number = (1 / stage.frameRate); if (m_states.length != 0){ m_states[(m_states.length - 1)].internalUpdate(_local2); }; for each (_local3 in m_states) { _local3.internalForsedUpdate(_local2); }; m_fpsCounter.addFrame(); SoundManager.update(_local2); } function frame1(){ } private function customizeContextMenu():void{ var _local1:ContextMenu = new ContextMenu(); _local1.hideBuiltInItems(); var _local2:ContextMenuBuiltInItems = _local1.builtInItems; _local2.print = true; _local2.quality = true; _local1.builtInItems = _local2; var _local3:ContextMenuItem = new ContextMenuItem("More games", false); _local3.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, goNotdoppler); var _local4:ContextMenuItem = new ContextMenuItem("www.notdoppler.com", false); _local4.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, goNotdoppler); _local1.customItems = [_local3, _local4]; contextMenu = _local1; } public function getLastState():GameState{ return (m_lastState); } private function handleMouseClick(_arg1:MouseEvent):void{ if (m_states.length != 0){ m_states[(m_states.length - 1)].handleMouseClick(_arg1); }; } public function getFPS():Number{ return (m_fpsCounter.getFPS()); } private function onTimer(_arg1:TimerEvent):void{ m_seconds++; } public function coolChangeState(_arg1:GameState):void{ var _local2:ShadeInState = new ShadeInState(); pushState(_local2); _local2.setNextState(_arg1); } public function getTopState():GameState{ return (m_states[(m_states.length - 1)]); } private function onStateChanging():void{ if (m_overlay != null){ addChild(m_overlay); }; } public static function getInstance():StateManager{ return (m_instance); } } }//package MainSection 109//HumanRagdoll (Ragdoll.HumanRagdoll) package Ragdoll { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; import flash.display.*; import States.PlayState.*; import flash.utils.*; public class HumanRagdoll extends MapObject { private var m_world:b2World; private var m_persID:int;// = -1 protected var m_nameBodyPath:Dictionary; private var m_allPaths:Array; private var m_isInverted:Boolean;// = false public static const LEFT_UPPER_HAND:String = "LEFT_UPPER_HAND"; public static const LEFT_LOWER_HAND:String = "LEFT_LOWER_HAND"; public static const TORSO3:String = "TORSO3"; public static const RIGHT_LOWER_LEG:String = "RIGHT_LOWER_LEG"; public static const ALL_PATHS:Array = [HEAD, TORSO1, TORSO2, TORSO3, LEFT_UPPER_HAND, LEFT_LOWER_HAND, RIGHT_UPPER_HAND, RIGHT_LOWER_HAND, LEFT_UPPER_LEG, LEFT_LOWER_LEG, RIGHT_UPPER_LEG, RIGHT_LOWER_LEG]; public static const LEFT_LOWER_LEG:String = "LEFT_LOWER_LEG"; public static const HEAD:String = "HEAD"; public static const RIGHT_UPPER_LEG:String = "RIGHT_UPPER_LEG"; public static const RIGHT_UPPER_HAND:String = "RIGHT_UPPER_HAND"; public static const RIGHT_LOWER_HAND:String = "RIGHT_LOWER_HAND"; public static const LEFT_UPPER_LEG:String = "LEFT_UPPER_LEG"; public static const TORSO1:String = "TORSO1"; public static const TORSO2:String = "TORSO2"; public function HumanRagdoll(_arg1:b2Vec2, _arg2:b2World, _arg3:Boolean, _arg4:int, _arg5:Boolean){ var _local21:b2Body; var _local22:b2Body; var _local23:MovieClip; m_nameBodyPath = new Dictionary(); m_allPaths = new Array(); super(); m_world = _arg2; m_persID = _arg4; m_isInverted = _arg3; var _local6:Number = (_arg3) ? -1 : 1; var _local7:Number = (Constant.PHYS_SCALE / 0.4); var _local8:b2Body = createCircleBody(new b2Vec2(_arg1.x, (_arg1.y - ((5 / _local7) * _local6))), (18 / _local7), "FaceColors"); var _local9:b2Body = createBoxBody(new b2Vec2(_arg1.x, (_arg1.y + ((28 / _local7) * _local6))), (15 / _local7), (10 / _local7), "Torso1"); var _local10:b2Body = createBoxBody(new b2Vec2(_arg1.x, (_arg1.y + ((43 / _local7) * _local6))), (15 / _local7), (10 / _local7), "Torso2"); var _local11:b2Body = createBoxBody(new b2Vec2(_arg1.x, (_arg1.y + ((58 / _local7) * _local6))), (15 / _local7), (10 / _local7), "Torso3"); var _local12:b2Body = createBoxBody(new b2Vec2((_arg1.x - (30 / _local7)), (_arg1.y + ((20 / _local7) * _local6))), (18 / _local7), (6.5 / _local7), "LeftUpperHand"); var _local13:b2Body = createBoxBody(new b2Vec2((_arg1.x + (30 / _local7)), (_arg1.y + ((20 / _local7) * _local6))), (18 / _local7), (6.5 / _local7), "RightUpperHand"); var _local14:b2Body = createBoxBody(new b2Vec2((_arg1.x - (64 / _local7)), (_arg1.y + ((20 / _local7) * _local6))), (17 / _local7), (6 / _local7), "LeftLowerHand"); var _local15:b2Body = createBoxBody(new b2Vec2((_arg1.x + (64 / _local7)), (_arg1.y + ((20 / _local7) * _local6))), (17 / _local7), (6 / _local7), "RightLowerHand"); var _local16:b2Body = createBoxBody(new b2Vec2((_arg1.x - (8 / _local7)), (_arg1.y + ((85 / _local7) * _local6))), (7.5 / _local7), (22 / _local7), "LeftUpperLeg"); var _local17:b2Body = createBoxBody(new b2Vec2((_arg1.x + (8 / _local7)), (_arg1.y + ((85 / _local7) * _local6))), (7.5 / _local7), (22 / _local7), "RightUpperLeg"); var _local18:b2Body = createBoxBody(new b2Vec2((_arg1.x - (8 / _local7)), (_arg1.y + ((120 / _local7) * _local6))), (6 / _local7), (20 / _local7), "LeftLowerLeg"); var _local19:b2Body = createBoxBody(new b2Vec2((_arg1.x + (8 / _local7)), (_arg1.y + ((120 / _local7) * _local6))), (6 / _local7), (20 / _local7), "RightLowerLeg"); createJoint(_local9, _local8, new b2Vec2(_arg1.x, (_arg1.y + ((15 / _local7) * _local6))), -40, 40); createJoint(_local9, _local12, new b2Vec2((_arg1.x - (18 / _local7)), (_arg1.y + ((20 / _local7) * _local6))), -85, 130); createJoint(_local9, _local13, new b2Vec2((_arg1.x + (18 / _local7)), (_arg1.y + ((20 / _local7) * _local6))), -130, 85); createJoint(_local12, _local14, new b2Vec2((_arg1.x - (45 / _local7)), (_arg1.y + ((20 / _local7) * _local6))), -130, 10); createJoint(_local13, _local15, new b2Vec2((_arg1.x + (45 / _local7)), (_arg1.y + ((20 / _local7) * _local6))), -10, 130); createJoint(_local9, _local10, new b2Vec2(_arg1.x, (_arg1.y + ((35 / _local7) * _local6))), -15, 15); createJoint(_local10, _local11, new b2Vec2(_arg1.x, (_arg1.y + ((50 / _local7) * _local6))), -15, 15); createJoint(_local11, _local16, new b2Vec2((_arg1.x - (8 / _local7)), (_arg1.y + ((72 / _local7) * _local6))), -25, 45); createJoint(_local11, _local17, new b2Vec2((_arg1.x + (8 / _local7)), (_arg1.y + ((72 / _local7) * _local6))), -45, 25); createJoint(_local16, _local18, new b2Vec2((_arg1.x - (8 / _local7)), (_arg1.y + ((105 / _local7) * _local6))), -25, 115); createJoint(_local17, _local19, new b2Vec2((_arg1.x + (8 / _local7)), (_arg1.y + ((105 / _local7) * _local6))), -115, 25); if (_arg5){ createJoint(_local18, _local19, new b2Vec2(_arg1.x, (_arg1.y + ((110 / _local7) * _local6))), 0, 0); }; m_allPaths = new Array(); var _local20:Array = [_local9, _local10, _local12, _local13, _local14, _local15, _local16, _local17, _local18, _local19, _local11, _local8]; for each (_local21 in _local20) { m_allPaths.push(_local21); }; m_nameBodyPath[HEAD] = _local8; m_nameBodyPath[TORSO1] = _local9; m_nameBodyPath[TORSO2] = _local10; m_nameBodyPath[TORSO3] = _local11; m_nameBodyPath[LEFT_UPPER_HAND] = _local12; m_nameBodyPath[LEFT_LOWER_HAND] = _local14; m_nameBodyPath[RIGHT_UPPER_HAND] = _local13; m_nameBodyPath[RIGHT_LOWER_HAND] = _local15; m_nameBodyPath[LEFT_UPPER_LEG] = _local16; m_nameBodyPath[LEFT_LOWER_LEG] = _local18; m_nameBodyPath[RIGHT_UPPER_LEG] = _local17; m_nameBodyPath[RIGHT_LOWER_LEG] = _local19; for each (_local22 in m_allPaths) { _local23 = (_local22.GetUserData() as MovieClip); if (_arg3){ _local23.scaleY = -1; }; addChild(_local23); }; } public function getAllPaths():Array{ return (m_allPaths); } public function resetVelocity():void{ var _local1:String; for each (_local1 in ALL_PATHS) { getBodyByName(_local1).SetLinearVelocity(new b2Vec2()); getBodyByName(_local1).SetAngularVelocity(0); }; } private function createCircleBody(_arg1:b2Vec2, _arg2:Number, _arg3:String):b2Body{ var _local4:MovieClip = (new ((getDefinitionByName(((_arg3 + "_") + m_persID)) as Class)) as MovieClip); _local4.stop(); var _local5:b2CircleShape = new b2CircleShape(_arg2); var _local6:b2FixtureDef = new b2FixtureDef(); _local6.shape = _local5; _local6.density = 1; _local6.friction = 0.4; _local6.restitution = 0.3; var _local7:b2BodyDef = new b2BodyDef(); _local7.type = b2Body.b2_dynamicBody; _local7.position = _arg1; var _local8:b2Body = m_world.CreateBody(_local7); _local8.CreateFixture(_local6); _local8.SetUserData(_local4); var _local9:MovieClip = new HangerFace(); _local4.addChild(_local9); _local9.name = "head_damage"; return (_local8); } public function applyImpulse(_arg1:b2Vec2):void{ var _local2:String; for each (_local2 in ALL_PATHS) { getBodyByName(_local2).ApplyImpulse(_arg1, getBodyByName(_local2).GetPosition()); }; } private function createBoxBody(_arg1:b2Vec2, _arg2:Number, _arg3:Number, _arg4:String):b2Body{ var _local5:MovieClip = (new ((getDefinitionByName(((_arg4 + "_") + m_persID)) as Class)) as MovieClip); _local5.stop(); var _local6:b2PolygonShape = new b2PolygonShape(); _local6.SetAsBox(_arg2, _arg3); var _local7:b2FixtureDef = new b2FixtureDef(); _local7.shape = _local6; _local7.density = 1; _local7.friction = 0.4; _local7.restitution = 0.3; var _local8:b2BodyDef = new b2BodyDef(); _local8.position = _arg1; _local8.type = b2Body.b2_dynamicBody; var _local9:b2Body = m_world.CreateBody(_local8); _local9.CreateFixture(_local7); _local9.SetUserData(_local5); return (_local9); } public function getBodyByName(_arg1:String):b2Body{ return (m_nameBodyPath[_arg1]); } private function createJoint(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:Number, _arg5:Number):b2Joint{ var _local6:b2RevoluteJointDef = new b2RevoluteJointDef(); _local6.enableLimit = true; _local6.lowerAngle = (_arg4 / (180 / Math.PI)); _local6.upperAngle = (_arg5 / (180 / Math.PI)); _local6.Initialize(_arg1, _arg2, _arg3); return (m_world.CreateJoint(_local6)); } public function setVelocity(_arg1:b2Vec2):void{ var _local2:String; for each (_local2 in ALL_PATHS) { getBodyByName(_local2).SetLinearVelocity(_arg1); }; } } }//package RagdollSection 110//DeathVulture (States.GrifShooting.DeathVulture) package States.GrifShooting { import Box2D.Dynamics.*; import Utils.*; import flash.display.*; import States.PlayState.*; public class DeathVulture extends MapObject { private var m_isKilled:Boolean;// = false private var m_anim:MovieClip; private var m_torsoFixture:b2Fixture;// = null private var m_needGoSensor:Boolean;// = false private var m_section:int; private var m_speed:Number; private var m_headFixture:b2Fixture;// = null private var m_legsFixture:b2Fixture;// = null public function DeathVulture(_arg1:b2Fixture, _arg2:b2Fixture, _arg3:b2Fixture, _arg4:int):void{ m_anim = new VultureHere(); super(); m_section = _arg4; m_legsFixture = _arg3; m_torsoFixture = _arg2; m_headFixture = _arg1; scaleX = -1; addChild(m_anim); m_anim.clip.stop(); } override public function update(_arg1:Number):void{ var _local2:b2Fixture; if ((((m_anim.clip.currentFrame == m_anim.clip.totalFrames)) && (!(m_isKilled)))){ m_anim.clip.gotoAndStop(1); }; if (m_body.GetPosition().y > ((Constant.WINDOW_HEIGHT / Constant.PHYS_SCALE) + (300 / Constant.PHYS_SCALE))){ m_isDead = true; }; if (m_body.GetPosition().y < (-300 / Constant.PHYS_SCALE)){ m_isDead = true; }; if (m_needGoSensor){ _local2 = m_body.GetFixtureList(); while (_local2) { _local2.SetSensor(true); _local2 = _local2.GetNext(); }; m_needGoSensor = false; }; } override public function onArrowContact(_arg1:Arrow, _arg2:b2Fixture):void{ onArrowHeadContact(_arg1, _arg2); } override public function onDead(_arg1:b2World):void{ _arg1.DestroyBody(m_body); parent.removeChild(this); } override public function onArrowHeadContact(_arg1:Arrow, _arg2:b2Fixture):void{ if (m_isKilled){ return; }; removeChild(m_anim); switch (_arg2){ case m_legsFixture: m_anim = new VultureJump(); SoundManager.play(MathUtils.anyOfString(SoundConst.VULTURE_CACLE_1, SoundConst.VULTURE_CACLE_2)); break; case m_headFixture: m_anim = new VultureBend(); break; case m_torsoFixture: m_anim = new VultureDie(); m_isKilled = true; GrifShootingState.getInstance().onVultureKill(m_body.GetPosition(), m_section); m_needGoSensor = true; SoundManager.play(MathUtils.anyOfString(SoundConst.VULTURE_CRY_1, SoundConst.VULTURE_CRY_2, SoundConst.VULTURE_CRY_3, SoundConst.VULTURE_CRY_4)); break; }; addChild(m_anim); m_anim.clip.play(); } } }//package States.GrifShootingSection 111//GrifShootingState (States.GrifShooting.GrifShootingState) package States.GrifShooting { import flash.events.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Utils.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; import Main.*; import flash.display.*; import States.PlayState.*; import flash.utils.*; import States.*; import flash.system.*; import flash.ui.*; public class GrifShootingState extends PhysGameState { private const STATE_SHOOTING:int = 2; private const STATE_NORMAL:int = 0; private const STATE_TAKE_AIM:int = 1; private const STATE_NOT_INITILIAZED:int = -1; private var m_timeLeft:int; private var m_nextState:GrifShootingWinState;// = null private var m_spawnVultureTimer:Timer; private var m_shootingPower:Number; private var m_arrowsLayer:Sprite; private var m_totalArrowCount:int; private var m_contactListener:b2ContactListener; private var m_mapObjects:Array; private var m_sightClip:MovieClip; private var m_state:int;// = -1 private var m_cloudsLayer:Sprite; private var m_allStones:Array; private var m_randomCounter:int;// = 0 private var m_guiLayer:Sprite; private var m_arrowHeadsToBodyContacts:Dictionary; private var m_arrowBodyToBodyContacts:Dictionary; private var m_layersContainer:Sprite; private var m_nextStateTimer:Timer; private var m_arrows:Array; private var m_lastSection:int;// = -1 private var m_staticLayer:Sprite; private var m_frontLayer:Sprite; private var m_arrowsLeft:int; private var m_tmpScores:int;// = 0 private var m_dynamicLayer:Sprite; private var m_timer:Timer; private var m_backgroundLayer:Sprite; private var m_bow:Bow; public static var m_vulturesKilled:int; private static var m_instance:GrifShootingState = null; public static var m_currentScores:int = 0; public static var m_curLevel:int; public static var m_wasStar:Boolean = true; public static var m_arrowsUsed:int; public function GrifShootingState(_arg1:int){ m_allStones = new Array(); m_mapObjects = new Array(); m_guiLayer = new Sprite(); m_spawnVultureTimer = new Timer(3000); m_layersContainer = new Sprite(); m_backgroundLayer = new Sprite(); m_cloudsLayer = new Sprite(); m_staticLayer = new Sprite(); m_dynamicLayer = new Sprite(); m_frontLayer = new Sprite(); m_arrowsLayer = new Sprite(); m_arrows = new Array(); m_contactListener = new GrifContactListener(); m_sightClip = new Sight(); m_nextStateTimer = new Timer(3000, 1); m_timer = new Timer(1000); m_arrowBodyToBodyContacts = new Dictionary(); m_arrowHeadsToBodyContacts = new Dictionary(); super(); m_curLevel = _arg1; m_instance = this; m_timeLeft = (90 + ((_arg1 / 6) * 10)); m_totalArrowCount = (15 + ((_arg1 / 6) * 2)); m_arrowsLeft = m_totalArrowCount; if (GameData.haveAchievement(Achievements.ACCURACY_70)){ m_arrowsLeft = (m_arrowsLeft + 10); }; } private function onSpawnVulture(_arg1:TimerEvent):void{ var _local2:b2Vec2; var _local3:Number; var _local10:int; while (_local10 == m_lastSection) { _local10 = MathUtils.RandomRangeInt(0, 2); }; m_lastSection = _local10; switch (_local10){ case 0: _local2 = new b2Vec2(((300 / m_physScale) + (MathUtils.RandomRange(-45, 45) / m_physScale)), (-100 / m_physScale)); _local3 = MathUtils.RandomRange(2.2, 2.6); break; case 1: _local2 = new b2Vec2(((450 / m_physScale) + (MathUtils.RandomRange(-45, 45) / m_physScale)), (580 / m_physScale)); _local3 = MathUtils.RandomRange(-2.4, -2); break; case 2: _local2 = new b2Vec2(((600 / m_physScale) + (MathUtils.RandomRange(-45, 5) / m_physScale)), (-100 / m_physScale)); _local3 = MathUtils.RandomRange(1.6, 2); break; }; m_spawnVultureTimer.delay = MathUtils.RandomRangeInt(1000, 3000); spawnObjectOnShelf(_local2, _local3, _local10); var _local4:b2Vec2 = new b2Vec2((50 / m_physScale), (8 / m_physScale)); var _local5:VultureShelf = new VultureShelf(_local3, _local4); var _local6:b2BodyDef = new b2BodyDef(); _local6.type = b2Body.b2_dynamicBody; _local6.position = new b2Vec2(_local2.x, (_local2.y + (20 / m_physScale))); var _local7:b2Body = m_world.CreateBody(_local6); var _local8:b2PolygonShape = new b2PolygonShape(); _local8.SetAsBox((_local4.x / 2), (_local4.y / 2)); var _local9:b2FixtureDef = new b2FixtureDef(); _local9.shape = _local8; _local9.density = 1000; _local9.restitution = 0.5; _local9.friction = 0.5; _local7.CreateFixture(_local9); m_staticLayer.addChild(_local5); _local5.connectWithBody(_local7); _local5.x = (_local7.GetPosition().x * m_physScale); _local5.y = (_local7.GetPosition().y * m_physScale); m_mapObjects.push(_local5); } private function spawnVultureOnShelf(_arg1:b2Vec2, _arg2:Number, _arg3:int):void{ var _local5:int; var _local4:b2Vec2 = new b2Vec2((47 / m_physScale), (51 / m_physScale)); var _local6:b2BodyDef = new b2BodyDef(); _local6.type = b2Body.b2_dynamicBody; _local6.position = _arg1.Copy(); var _local7:b2Body = m_world.CreateBody(_local6); var _local8:b2PolygonShape = new b2PolygonShape(); _local8.SetAsBox(_local4.x, (_local4.y / 6)); _local5 = 0; while (_local5 < 4) { _local8.GetVertices()[_local5].y = (_local8.GetVertices()[_local5].y - (_local4.y / 3)); _local5++; }; var _local9:b2FixtureDef = new b2FixtureDef(); _local9.shape = _local8; var _local10:b2Fixture = _local7.CreateFixture(_local9); _local10.SetSensor(true); var _local11:b2PolygonShape = new b2PolygonShape(); _local11.SetAsBox((_local4.x / 7), (13 / m_physScale)); var _local12:b2FixtureDef = new b2FixtureDef(); _local12.density = 1; _local12.restitution = 0.2; _local12.friction = 0.5; _local12.shape = _local11; var _local13:b2Fixture = _local7.CreateFixture(_local12); var _local14:b2PolygonShape = new b2PolygonShape(); _local14.SetAsBox(_local4.x, (_local4.y / 7)); _local5 = 0; while (_local5 < 4) { _local14.GetVertices()[_local5].y = (_local14.GetVertices()[_local5].y + (_local4.y / 3)); _local5++; }; var _local15:b2FixtureDef = new b2FixtureDef(); _local15.shape = _local14; var _local16:b2Fixture = _local7.CreateFixture(_local15); _local16.SetSensor(true); var _local17:b2PolygonShape = new b2PolygonShape(); _local17.SetAsBox((_local4.x / 7), (19 / m_physScale)); var _local18:b2FixtureDef = new b2FixtureDef(); _local18.density = 0; _local18.friction = 0.1; _local18.restitution = 0; _local18.shape = _local17; _local18.filter.groupIndex = -1; var _local19:b2Fixture = _local7.CreateFixture(_local18); var _local20:DeathVulture = new DeathVulture(_local10, _local13, _local16, _arg3); m_dynamicLayer.addChild(_local20); _local20.connectWithBody(_local7); m_mapObjects.push(_local20); _local20.stop(); _local20.x = (_arg1.x * m_physScale); _local20.y = (_arg1.y * m_physScale); } private function spawnAmmoGhost(_arg1:b2Vec2, _arg2:Number, _arg3:int):void{ var _local4:VultureAmmoGhost; switch (_arg3){ case 0: case 1: _local4 = new VultureAmmoGhost(_arg2); _local4.setPower(3); _local4.addChild(new AmmoGhost3()); break; case 2: _local4 = new VultureAmmoGhost(_arg2); _local4.setPower(5); _local4.addChild(new AmmoGhost5()); break; }; _local4.x = (_arg1.x * m_physScale); _local4.y = (_arg1.y * m_physScale); var _local5:b2BodyDef = new b2BodyDef(); _local5.position = _arg1; _local5.type = b2Body.b2_dynamicBody; var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2PolygonShape = new b2PolygonShape(); _local7.SetAsBox(((_local4.width / 2) / m_physScale), ((_local4.height / 2) / m_physScale)); var _local8:b2FixtureDef = new b2FixtureDef(); _local8.shape = _local7; var _local9:b2Fixture = _local6.CreateFixture(_local8); _local4.connectWithBody(_local6); m_dynamicLayer.addChild(_local4); m_mapObjects.push(_local4); } public function onVultureKill(_arg1:b2Vec2, _arg2:int):void{ var _local3 = 100; switch (_arg2){ case 0: _local3 = 100; break; case 1: _local3 = 200; break; case 2: _local3 = 400; break; }; if (GameData.haveAchievement(Achievements.GRIFS_KILLED)){ _local3 = (_local3 + 50); }; var _local4:AddPointsEffect = new AddPointsEffect(_local3, 1, (_arg1.x * m_physScale), (_arg1.y * m_physScale)); m_frontLayer.addChild(_local4); m_mapObjects.push(_local4); createBlood(_arg1); var _local5:VultureFeathers = new VultureFeathers(); m_arrowsLayer.addChild(_local5); _local5.x = ((_arg1.x * m_physScale) + 13); _local5.y = ((_arg1.y * m_physScale) - 45); if (Math.random() < 0.5){ _local5.scaleX = -1; }; var _local6:Number = MathUtils.RandomRange(0.95, 1.05); _local5.scaleX = (_local5.scaleX * _local6); _local5.scaleY = (_local5.scaleY * _local6); m_mapObjects.push(_local5); addScores(_local3); m_vulturesKilled++; } private function addScores(_arg1:int):void{ m_currentScores = (m_currentScores + _arg1); } private function recalcGui():void{ m_view.m_arrowsLeftClip.m_text.text = m_arrowsLeft.toString(); var _local1:String = m_currentScores.toString(); switch (m_tmpScores.toString().length){ case 4: _local1 = ("0" + m_tmpScores.toString()); break; case 3: _local1 = ("00" + m_tmpScores.toString()); break; case 2: _local1 = ("000" + m_tmpScores.toString()); break; case 1: _local1 = ("0000" + m_tmpScores.toString()); break; }; m_view.m_scoreClip.m_text.text = _local1; m_view.m_timeLeftClip.m_text.text = Utils.intToTimeString(m_timeLeft); } private function onNextStateTimer(_arg1:TimerEvent):void{ StateManager.getInstance().pushState(m_nextState); } private function onMenuClick(_arg1:MouseEvent):void{ if (m_nextState == null){ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(GameData.getSelectLevelScreen()); }; } private function setState(_arg1:int):void{ m_state = _arg1; switch (_arg1){ case STATE_NORMAL: m_sightClip.visible = false; break; case STATE_TAKE_AIM: m_sightClip.visible = true; break; }; } private function updateScores():void{ if (m_tmpScores < m_currentScores){ m_tmpScores = (m_tmpScores + 21); if (m_tmpScores > m_currentScores){ m_tmpScores = m_currentScores; }; }; } override public function handleKeyDown(_arg1:KeyboardEvent):void{ super.handleKeyDown(_arg1); if (_arg1.keyCode == Keyboard.DOWN){ m_debugSprite.visible = !(m_debugSprite.visible); }; } public function createBlood(_arg1:b2Vec2):void{ var _local3:int; var _local4:b2BodyDef; var _local5:b2Body; var _local6:b2PolygonShape; var _local7:b2FixtureDef; var _local8:b2Fixture; var _local9:Blood; if (GameData.m_isBloodDisabled){ return; }; var _local2:int = MathUtils.RandomRangeInt(6, 10); while (_local3 < _local2) { _local4 = new b2BodyDef(); _local4.position = _arg1; _local4.type = b2Body.b2_dynamicBody; _local4.angle = MathUtils.GradToRad(MathUtils.RandomRange(0, (Math.PI * 2))); _local5 = m_world.CreateBody(_local4); _local6 = new b2PolygonShape(); _local6.SetAsBox((1 / m_physScale), (1 / m_physScale)); _local7 = new b2FixtureDef(); _local7.shape = _local6; _local8 = _local5.CreateFixture(_local7); _local8.SetSensor(true); _local5.ApplyImpulse(new b2Vec2(MathUtils.RandomRange(0, 2.7), MathUtils.RandomRange(0, -3)), _arg1); _local5.ApplyTorque(MathUtils.RandomRange(-1, 1)); _local9 = new Blood(); _local9.connectWithBody(_local5); m_arrowsLayer.addChild(_local9); m_mapObjects.push(_local9); _local3++; }; } private function onTimerTick(_arg1:TimerEvent):void{ var _local2:TimeIsOutEffect; if (m_nextState == null){ if (--m_timeLeft == 0){ _local2 = new TimeIsOutEffect(); addChild(_local2); m_mapObjects.push(_local2); win(); }; }; } public function onContactWithArrowHeadBody(_arg1:Arrow, _arg2:b2Fixture):void{ var _local6:MapObject; var _local7:b2RevoluteJointDef; var _local8:b2AABB; var _local9:b2Vec2; var _local3:Boolean; var _local4:Boolean; var _local5:Boolean; for each (_local6 in m_mapObjects) { if (_local6.isItYourFixture(_arg2)){ _local6.onArrowHeadContact(_arg1, _arg2); if ((_local6 is Sun)){ _local3 = true; }; if ((_local6 is DeathVulture)){ _local4 = true; }; if ((_local6 is VultureAmmoGhost)){ _local5 = true; }; break; }; }; if (((((((!(_arg2.IsSensor())) && (!(_arg1.isStickIn())))) && (_arg1.canStickIn()))) && ((m_allStones.indexOf(_arg2) == -1)))){ if (!_local5){ if (_local4){ SoundManager.play(MathUtils.anyOfString(SoundConst.STICK_IN_BODY_0, SoundConst.STICK_IN_BODY_1, SoundConst.STICK_IN_BODY_2)); } else { SoundManager.play(SoundConst.STICK_IN_WOOD); }; }; _arg1.stopFly(); _arg1.stickIn(); if (_local3){ m_backgroundLayer.addChild(_arg1); }; _local7 = new b2RevoluteJointDef(); _local7.lowerAngle = MathUtils.RandomRange((-(Math.PI) / 8), (-(Math.PI) / 12)); _local7.upperAngle = MathUtils.RandomRange((Math.PI / 12), (Math.PI / 8)); _local7.enableLimit = true; _local8 = _arg1.getHeadFixture().GetAABB(); _local9 = new b2Vec2(((_local8.lowerBound.x + _local8.upperBound.x) / 2), ((_local8.lowerBound.y + _local8.upperBound.y) / 2)); _local7.Initialize(_arg1.getBody(), _arg2.GetBody(), _local9); m_world.CreateJoint(_local7); if (_arg2.GetBody().GetType() == b2Body.b2_dynamicBody){ _arg1.resumeFly(); }; }; if (!_arg2.IsSensor()){ _arg1.onAnyContact(); }; } public function onContactWithArrowBody(_arg1:Arrow, _arg2:b2Fixture):void{ var _local3:MapObject; for each (_local3 in m_mapObjects) { if (_local3.isItYourFixture(_arg2)){ _local3.onArrowContact(_arg1, _arg2); break; }; }; if (!_arg2.IsSensor()){ _arg1.onAnyContact(); }; } public function createArrow(_arg1:b2Vec2, _arg2:b2Vec2):Arrow{ var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position = _arg1; var _local4:b2Body = m_world.CreateBody(_local3); var _local5:b2PolygonShape = new b2PolygonShape(); _local5.SetAsBox((Arrow.m_halfWidth / m_physScale), (Arrow.m_halfWidth / m_physScale)); var _local6:int; while (_local6 < _local5.GetVertexCount()) { _local5.GetVertices()[_local6].Add(new b2Vec2(0, (-((Arrow.m_halfHeight + Arrow.m_halfWidth)) / m_physScale))); _local6++; }; var _local7:b2FixtureDef = new b2FixtureDef(); _local7.shape = _local5; _local7.density = 2.5; _local7.friction = 0.5; _local7.restitution = 0.1; _local7.filter.groupIndex = -1; var _local8:b2Fixture = _local4.CreateFixture(_local7); var _local9:b2PolygonShape = new b2PolygonShape(); _local9.SetAsBox((Arrow.m_halfWidth / m_physScale), (Arrow.m_halfHeight / m_physScale)); var _local10:b2FixtureDef = new b2FixtureDef(); _local10.shape = _local9; _local10.density = 2.5; _local10.friction = 0.5; _local10.restitution = 0.1; _local10.filter.groupIndex = -1; var _local11:b2Fixture = _local4.CreateFixture(_local10); _local4.SetLinearVelocity(_arg2); _local4.SetBullet(true); var _local12:Arrow = new Arrow(_local8, _local11, _local4); _local12.cacheAsBitmap = true; m_arrows.push(_local12); _local4.SetUserData(_local12); m_arrowsLayer.addChild(_local12); return (_local12); } override public function onStop():void{ m_spawnVultureTimer.stop(); m_timer.stop(); } private function spawnTimeGhost(_arg1:b2Vec2, _arg2:Number, _arg3:int):void{ } public function addArrows(_arg1:int, _arg2:Number, _arg3:Number):void{ m_vulturesKilled++; m_arrowsLeft = (m_arrowsLeft + _arg1); recalcGui(); var _local4:AddPointsEffect = new AddPointsEffect(_arg1, 1, _arg2, _arg3, " arrows"); m_frontLayer.addChild(_local4); m_mapObjects.push(_local4); } private function checkOutOfArrows():void{ var _local1:Arrow; var _local2:OutOfArrowsEffect; if (m_nextState){ return; }; if (m_arrowsLeft == 0){ for each (_local1 in m_arrows) { if (_local1.isNeeded()){ return; }; }; _local2 = new OutOfArrowsEffect(); addChild(_local2); m_mapObjects.push(_local2); win(); if ((GrifShootingState.m_vulturesKilled / GrifShootingState.m_arrowsUsed) >= 0.7){ GameData.giveAchievement(Achievements.ACCURACY_70); }; }; } override public function onInit():void{ m_arrowsUsed = 0; m_vulturesKilled = 0; m_currentScores = 0; super.onInit(); m_view = new GrifShootingStateView(); m_view.m_buttonMenu.addEventListener(MouseEvent.CLICK, onMenuClick); m_view.m_buttonReplay.addEventListener(MouseEvent.CLICK, onReplayClick); SoundManager.playLoop(SoundConst.MAIN_MENU_MUSIC); m_nextState = null; setState(STATE_NORMAL); addChild(m_layersContainer); m_layersContainer.addChild(m_backgroundLayer); m_layersContainer.addChild(m_cloudsLayer); m_layersContainer.addChild(m_staticLayer); m_layersContainer.addChild(m_dynamicLayer); m_layersContainer.addChild(m_frontLayer); m_layersContainer.addChild(m_arrowsLayer); addChild(m_debugSprite); addChild(m_guiLayer); m_world.SetContactListener(m_contactListener); m_bow = new Bow(); addChild(m_bow); var _local1:String = ((m_curLevel)<10) ? ("Level0" + m_curLevel) : ("Level" + m_curLevel); parseLevel(parseClipToXML(new ((ApplicationDomain.currentDomain.getDefinition(_local1) as Class)))); addChild(m_sightClip); m_sightClip.x = m_bow.x; m_sightClip.y = m_bow.y; recalcGui(); m_guiLayer.addChild(m_view); if (m_state == STATE_NOT_INITILIAZED){ setState(STATE_NORMAL); }; update((1 / 30)); super.initDebugDraw(); m_spawnVultureTimer.addEventListener(TimerEvent.TIMER, onSpawnVulture); m_spawnVultureTimer.start(); m_nextStateTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onNextStateTimer); m_timer.addEventListener(TimerEvent.TIMER, onTimerTick); m_timer.start(); var _local2:VultureShootingRules = new VultureShootingRules(); addChild(_local2); m_mapObjects.push(_local2); m_view.addChild(new MoreGamesPanel(LinksManager.MINIGAME_SCREEN, true)); GameData.onStartLevel(m_curLevel); } private function spawnObjectOnShelf(_arg1:b2Vec2, _arg2:Number, _arg3:int):void{ m_randomCounter++; if ((m_randomCounter % 13) == 0){ spawnAmmoGhost(_arg1, _arg2, _arg3); } else { spawnVultureOnShelf(_arg1, _arg2, _arg3); }; } private function parseLevel(_arg1:XML):void{ var _local2:MapObject; var _local3:Number; var _local4:Number; var _local5:b2Vec2; var _local6:Number; var _local7:DisplayObject; for each (_arg1 in _arg1.elements("Object")) { _local3 = _arg1.@x; _local4 = _arg1.@y; _local5 = new b2Vec2((_local3 / m_physScale), (_local4 / m_physScale)); _local6 = _arg1.@rotation; if (String(_arg1.@clip_name) != ""){ _local7 = (new ((getDefinitionByName(_arg1.@clip_name) as Class)) as DisplayObject); _local7.x = _local3; _local7.y = _local4; _local7.rotation = _local6; _local7.cacheAsBitmap = true; }; switch (String(_arg1.@type)){ case ParserConst.TYPE_STATIC_BOX: m_allStones.push(createStaticBoxFromClip(_local7, m_staticLayer)); break; case ParserConst.TYPE_GROUND: _local7.scaleY = 0.75; createStaticBoxFromClip(_local7, m_staticLayer); _local7.scaleY = 1; break; case ParserConst.TYPE_CLOUD: createCloud(_local7); break; case ParserConst.TYPE_SHOOTING_POINT: m_bow.x = _local3; m_bow.y = _local4; m_bow.rotation = (_local6 + 90); break; case ParserConst.TYPE_SUN: createSun(_local5); break; case ParserConst.TYPE_BACKGROUND: _local7.scaleX = _arg1.@scaleX; _local7.scaleY = _arg1.@scaleY; m_backgroundLayer.addChild(_local7); break; case ParserConst.TYPE_FRONTGROUND: m_frontLayer.addChild(_local7); break; }; }; for each (_local2 in m_mapObjects) { _local2.goTop(m_backgroundLayer, m_cloudsLayer, m_staticLayer, m_dynamicLayer, m_frontLayer); }; } private function onReplayClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(new GrifShootingState(GrifShootingState.m_curLevel)); } override public function handleMouseDown(_arg1:MouseEvent):void{ super.handleMouseDown(_arg1); switch (m_state){ case STATE_NORMAL: if (m_bow.hitTestPoint(_arg1.stageX, _arg1.stageY)){ if (m_arrowsLeft > 0){ m_shootingPower = 10; m_bow.startStretch(); setState(STATE_TAKE_AIM); handleMouseMove(_arg1); }; }; break; }; } public function createCloud(_arg1:DisplayObject):void{ m_cloudsLayer.addChild(_arg1); m_mapObjects.push((_arg1 as Cloud)); } public function createSun(_arg1:b2Vec2):void{ var _local2:b2CircleShape = new b2CircleShape((22 / m_physScale)); var _local3:b2FixtureDef = new b2FixtureDef(); _local3.density = 1; _local3.friction = 0.4; _local3.restitution = 0.3; _local3.shape = _local2; var _local4:b2BodyDef = new b2BodyDef(); _local4.position = _arg1; _local4.type = b2Body.b2_dynamicBody; var _local5:b2Body = m_world.CreateBody(_local4); _local5.CreateFixture(_local3); var _local6:Sun = new Sun(); _local6.connectWithBody(_local5); m_backgroundLayer.addChild(_local5.GetUserData()); var _local7:b2RevoluteJointDef = new b2RevoluteJointDef(); _local7.maxMotorTorque = 0.5; _local7.motorSpeed = 0; _local7.enableMotor = true; _local7.Initialize(m_world.GetGroundBody(), _local5, _arg1); m_world.CreateJoint(_local7); m_mapObjects.push(_local6); } private function updateArrows(_arg1:Number):void{ var _local3:Arrow; var _local4:Number; var _local5:Number; var _local2:Array = new Array(); for each (_local3 in m_arrows) { _local3.update(_arg1); _local4 = (_local3.getBody().GetPosition().y * m_physScale); _local5 = (_local3.getBody().GetPosition().x * m_physScale); if ((((((((_local4 < -200)) || ((_local4 > (Constant.WINDOW_HEIGHT + 200))))) || ((_local5 < -100)))) || ((_local5 > (Constant.WINDOW_WIDTH + 100))))){ _local3.kill(); }; if (!_local3.isDead()){ _local2.push(_local3); } else { _local3.destroyBody(m_world); m_arrowsLayer.removeChild(_local3); }; }; m_arrows = _local2; } public function onBeginContact(_arg1:b2Contact):void{ var _local4:Arrow; var _local2:b2Fixture = _arg1.GetFixtureA(); var _local3:b2Fixture = _arg1.GetFixtureB(); for each (_local4 in m_arrows) { if (_local2 == _local4.getBodyFixture()){ m_arrowBodyToBodyContacts[_local3] = _local4; }; if (_local3 == _local4.getBodyFixture()){ m_arrowBodyToBodyContacts[_local2] = _local4; }; if (_local2 == _local4.getHeadFixture()){ m_arrowHeadsToBodyContacts[_local3] = _local4; if (((((((!(_local3.IsSensor())) && (!(_local4.isStickIn())))) && (_local4.canStickIn()))) && ((m_allStones.indexOf(_local3) == -1)))){ _local4.stopFly(); }; }; if (_local3 == _local4.getHeadFixture()){ m_arrowHeadsToBodyContacts[_local2] = _local4; if (((((((!(_local2.IsSensor())) && (!(_local4.isStickIn())))) && (_local4.canStickIn()))) && ((m_allStones.indexOf(_local3) == -1)))){ _local4.stopFly(); }; }; }; } private function parseClipToXML(_arg1:MovieClip):XML{ var _local4:XML; var _local5:DisplayObject; var _local2:XML = <Level></Level> ; var _local3:int; while (_local3 < _arg1.numChildren) { _local4 = <Object/> ; _local5 = _arg1.getChildAt(_local3); if ((_local5 is Cloud)){ _local4.@type = ParserConst.TYPE_CLOUD; } else { if ((_local5 is StaticBoxIsStone)){ _local4.@type = ParserConst.TYPE_STATIC_BOX; } else { if ((_local5 is BowPoint)){ _local4.@type = ParserConst.TYPE_SHOOTING_POINT; } else { if ((_local5 is Sun)){ _local4.@type = ParserConst.TYPE_SUN; } else { if ((_local5 is Frontground)){ _local4.@type = ParserConst.TYPE_FRONTGROUND; } else { _local4.@scaleX = _local5.scaleX; _local4.@scaleY = _local5.scaleY; _local4.@type = ParserConst.TYPE_BACKGROUND; }; }; }; }; }; _local4.@x = int((_local5.x + 0.5)); _local4.@y = int((_local5.y + 0.5)); _local4.@rotation = _local5.rotation; _local4.@clip_name = getQualifiedClassName(_local5); _local2.appendChild(_local4); _local3++; }; return (_local2); } override public function onCleanup():void{ m_spawnVultureTimer.removeEventListener(TimerEvent.TIMER, onSpawnVulture); m_view.m_buttonMenu.removeEventListener(MouseEvent.CLICK, onMenuClick); m_view.m_buttonReplay.removeEventListener(MouseEvent.CLICK, onReplayClick); m_nextStateTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, onNextStateTimer); m_timer.removeEventListener(TimerEvent.TIMER, onTimerTick); super.onCleanup(); } override public function update(_arg1:Number):void{ super.update(_arg1); m_bow.update(_arg1); processContacts(); updateArrows(_arg1); updateMapObjects(_arg1); updateScores(); checkOutOfArrows(); recalcGui(); } override public function handleMouseMove(_arg1:MouseEvent):void{ var _local2:Vector3; super.handleMouseMove(_arg1); switch (m_state){ case STATE_TAKE_AIM: _local2 = new Vector3((m_bow.x - _arg1.stageX), (m_bow.y - _arg1.stageY), 0); if (GameData.m_invertedControl){ _local2 = _local2.negate(); }; m_shootingPower = (Constant.MIN_SHOOTING_POWER + ((_local2.length() / 7) * Math.pow((_local2.length() / Constant.MAX_SHOOTING_POWER), 0.4))); if (m_shootingPower < Constant.MIN_SHOOTING_POWER){ m_shootingPower = Constant.MIN_SHOOTING_POWER; }; if (m_shootingPower > Constant.MAX_SHOOTING_POWER){ m_shootingPower = Constant.MAX_SHOOTING_POWER; }; m_sightClip.scaleY = (m_shootingPower / 33); m_sightClip.rotation = _local2.get2DRotation(); m_bow.rotation = (_local2.get2DRotation() + 90); break; case STATE_NORMAL: if (isMouseDown()){ handleMouseDown(_arg1); }; break; }; } private function updateMapObjects(_arg1:Number):void{ var _local3:MapObject; var _local2:Array = new Array(); for each (_local3 in m_mapObjects) { _local3.update(_arg1); if (!_local3.isDead()){ _local2.push(_local3); } else { _local3.onDead(m_world); }; }; m_mapObjects = _local2; } private function win():void{ if (m_nextState == null){ m_wasStar = (m_vulturesKilled >= (m_totalArrowCount / 3)); GameData.onWinLevel(m_curLevel, m_currentScores, m_wasStar, 0); m_nextState = new GrifShootingWinState(); m_spawnVultureTimer.stop(); m_nextStateTimer.start(); }; } override public function handleMouseUp(_arg1:MouseEvent):void{ var _local2:b2Vec2; var _local3:Arrow; super.handleMouseUp(_arg1); if (m_state == STATE_TAKE_AIM){ m_bow.fire(); SoundManager.play(SoundConst.BOW_SHOOT); setState(STATE_NORMAL); _local2 = new b2Vec2((m_bow.x - _arg1.stageX), (m_bow.y - _arg1.stageY)); if (GameData.m_invertedControl){ _local2.NegativeSelf(); }; _local2.Normalize(); _local2.Multiply(m_shootingPower); _local3 = createArrow(new b2Vec2((m_bow.x / m_physScale), (m_bow.y / m_physScale)), _local2); recalcGui(); m_arrowsLeft--; m_arrowsUsed++; }; super.handleMouseUp(_arg1); } private function processContacts():void{ var _local1:* = null; for (_local1 in m_arrowBodyToBodyContacts) { onContactWithArrowBody(m_arrowBodyToBodyContacts[_local1], _local1); }; m_arrowBodyToBodyContacts = new Dictionary(); for (_local1 in m_arrowHeadsToBodyContacts) { onContactWithArrowHeadBody(m_arrowHeadsToBodyContacts[_local1], _local1); }; m_arrowHeadsToBodyContacts = new Dictionary(); } override public function onResume():void{ m_spawnVultureTimer.start(); m_timer.start(); } public static function getInstance():GrifShootingState{ return (m_instance); } } }//package States.GrifShooting import Box2D.Dynamics.*; import Box2D.Dynamics.Contacts.*; import States.PlayState.*; class GrifContactListener extends b2ContactListener { private function GrifContactListener(){ } override public function BeginContact(_arg1:b2Contact):void{ if ((((_arg1.GetFixtureA().GetBody().GetUserData() is Arrow)) && (_arg1.GetFixtureA().GetBody().GetUserData().isNeeded()))){ GrifShootingState.getInstance().onBeginContact(_arg1); return; }; if ((((_arg1.GetFixtureB().GetBody().GetUserData() is Arrow)) && ((_arg1.GetFixtureB().GetBody().GetUserData() as Arrow).isNeeded()))){ GrifShootingState.getInstance().onBeginContact(_arg1); return; }; } }Section 112//VultureAmmoGhost (States.GrifShooting.VultureAmmoGhost) package States.GrifShooting { import Box2D.Dynamics.*; import States.PlayState.*; public class VultureAmmoGhost extends MapObject { private var m_isActive:Boolean;// = true private var m_needRun:Boolean;// = false private var m_power:int; private var m_speed:Number; public function VultureAmmoGhost(_arg1:Number){ m_speed = _arg1; cacheAsBitmap = true; } public function setPower(_arg1:int):void{ m_power = _arg1; } override public function update(_arg1:Number):void{ m_liveTime = (m_liveTime + _arg1); if (m_body.GetPosition().y > ((Constant.WINDOW_HEIGHT / Constant.PHYS_SCALE) + (300 / Constant.PHYS_SCALE))){ m_isDead = true; }; if (m_body.GetPosition().y < (-300 / Constant.PHYS_SCALE)){ m_isDead = true; }; if (m_needRun){ m_needRun = false; GrifShootingState.getInstance().addArrows(m_power, x, y); } else { if (!m_isActive){ scaleX = (scaleX + (_arg1 * 1.5)); scaleY = (scaleY + (_arg1 * 1.5)); if ((alpha = (alpha - 0.1)) <= 0){ m_isDead = true; }; }; }; } override public function isDead():Boolean{ return (m_isDead); } override public function onArrowContact(_arg1:Arrow, _arg2:b2Fixture):void{ if (m_isActive){ m_isActive = false; m_needRun = true; if (Math.random() < 0.5){ SoundManager.play(SoundConst.ADD_ARROWS_0); } else { SoundManager.play(SoundConst.ADD_ARROWS_1); }; _arg1.kill(); }; } override public function onDead(_arg1:b2World):void{ _arg1.DestroyBody(m_body); parent.removeChild(this); } override public function onArrowHeadContact(_arg1:Arrow, _arg2:b2Fixture):void{ onArrowContact(_arg1, _arg2); } } }//package States.GrifShootingSection 113//VultureShelf (States.GrifShooting.VultureShelf) package States.GrifShooting { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import States.PlayState.*; public class VultureShelf extends MapObject { private var m_speed:Number; private var m_movingSpeed:Number;// = 1.66666666666667 private var m_isMovingDown:Boolean;// = true public function VultureShelf(_arg1:Number, _arg2:b2Vec2){ m_speed = _arg1; } override public function onDead(_arg1:b2World):void{ _arg1.DestroyBody(m_body); parent.removeChild(this); } override public function update(_arg1:Number):void{ m_body.SetLinearVelocity(new b2Vec2(0, m_speed)); m_body.SetAngle(0); if (m_body.GetPosition().y > ((Constant.WINDOW_HEIGHT / Constant.PHYS_SCALE) + (300 / Constant.PHYS_SCALE))){ m_isDead = true; }; if (m_body.GetPosition().y < (-300 / Constant.PHYS_SCALE)){ m_isDead = true; }; } } }//package States.GrifShootingSection 114//AddPointsEffect (States.PlayState.AddPointsEffect) package States.PlayState { import Box2D.Dynamics.*; import flash.display.*; import flash.text.*; public class AddPointsEffect extends MapObject { public var m_label:TextField; private var m_startX:Number; private var m_sign:MovieClip; public function AddPointsEffect(_arg1:int, _arg2:int, _arg3:Number, _arg4:Number, _arg5=""){ m_label.text = (("+" + _arg1.toString()) + _arg5); this.x = _arg3; this.y = _arg4; m_startX = _arg3; switch (_arg2){ case 2: m_sign = new DoubleSave(); break; case 3: m_sign = new TripleSave(); break; }; if (m_sign){ addChild(m_sign); m_sign.y = -18; }; } override public function isDead():Boolean{ return ((m_liveTime > 1.7)); } override public function update(_arg1:Number):void{ var _local3:Number; var _local4:Number; m_liveTime = (m_liveTime + _arg1); y = (y - (_arg1 * 65)); x = (m_startX + (Math.sin((m_liveTime * 4)) * (10 + (m_liveTime * 4)))); var _local2:Number = 0.5; _local3 = 1.6; if ((((m_liveTime > _local2)) && ((m_liveTime < _local3)))){ alpha = (1 - ((m_liveTime - _local2) / (_local3 - _local2))); _local4 = (1 + ((0.4 * (m_liveTime - _local2)) / (_local3 - _local2))); scaleX = _local4; scaleY = _local4; }; } override public function onDead(_arg1:b2World):void{ parent.removeChild(this); } } }//package States.PlayStateSection 115//AmmoGhost (States.PlayState.AmmoGhost) package States.PlayState { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import flash.display.*; public class AmmoGhost extends MapObject { private var m_isActive:Boolean;// = true private var m_needRun:Boolean;// = false private var m_power:int; public function AmmoGhost(){ cacheAsBitmap = true; } override public function isDead():Boolean{ return (m_isDead); } public function setPower(_arg1:int):void{ m_power = _arg1; } override public function update(_arg1:Number):void{ var _local2:Sprite; m_liveTime = (m_liveTime + _arg1); m_body.SetPosition(new b2Vec2(m_body.GetPosition().x, (m_body.GetPosition().y + (Math.sin((m_liveTime * 2.5)) * 0.007)))); if (m_needRun){ m_needRun = false; PlayState.getInstance().getWorld().DestroyBody(m_body); PlayState.getInstance().addArrows(m_power, x, y); this.cacheAsBitmap = false; } else { if (!m_isActive){ _local2 = (m_body.GetUserData() as Sprite); _local2.scaleX = (_local2.scaleX + (_arg1 * 1.5)); _local2.scaleY = (_local2.scaleY + (_arg1 * 1.5)); if ((_local2.alpha = (_local2.alpha - 0.1)) <= 0){ _local2.alpha = 0; m_isDead = true; }; }; }; } override public function onDead(_arg1:b2World):void{ parent.removeChild(this); } override public function onArrowContact(_arg1:Arrow, _arg2:b2Fixture):void{ if (m_isActive){ m_isActive = false; m_needRun = true; if (Math.random() < 0.5){ SoundManager.play(SoundConst.ADD_ARROWS_0); } else { SoundManager.play(SoundConst.ADD_ARROWS_1); }; }; } } }//package States.PlayStateSection 116//Arrow (States.PlayState.Arrow) package States.PlayState { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Utils.*; import flash.display.*; public class Arrow extends MovieClip { private var m_isDead:Boolean;// = false private var m_wasBodyContact:Boolean;// = false private var m_wasAnyContact:Boolean;// = false private var m_ropesKilled:int;// = 0 private var m_arrowHeadFixture:b2Fixture;// = null var m_isNextFrame:Boolean;// = false private var m_isFreeFly:Boolean;// = false private var m_lastVelocity:b2Vec2; private var m_liveTime:Number;// = 0 var m_isMassKilled:Boolean;// = false private var m_stickInTime:Number;// = 0 private var m_body:b2Body;// = null private var m_bodyFixture:b2Fixture;// = null private var m_isStickIn:Boolean;// = false public static const m_halfWidth:Number = 1; public static const m_halfHeight:Number = 12; public function Arrow(_arg1:b2Fixture, _arg2:b2Fixture, _arg3:b2Body){ m_lastVelocity = new b2Vec2(); super(); m_arrowHeadFixture = _arg1; m_bodyFixture = _arg2; m_body = _arg3; var _local4:int; while (_local4 < 100) { calcDirection((1 / 30)); _local4++; }; this.scaleX = 1.0001; this.scaleY = 1.0001; } public function calcDirection(_arg1:Number):void{ var _local2:b2Vec2; var _local3:Number; if (!m_wasAnyContact){ _local2 = m_body.GetLinearVelocity(); _local3 = MathUtils.GradToRad(new Vector3(_local2.x, _local2.y, 0).get2DRotation()); if (!isNaN(_local3)){ m_body.SetAngle(_local3); }; }; } public function contactWithManBody(_arg1:b2Body, _arg2:Boolean):Boolean{ var _local3:MovieClip; var _local4:MovieClip; if (getRopesKilled() != 0){ return (false); }; if (!m_wasBodyContact){ _local3 = (_arg1.GetUserData() as MovieClip); if (_local3){ if ((((((((_local3 is FaceColors_1)) || ((_local3 is FaceColors_2)))) || ((_local3 is FaceColors_3)))) || ((_local3 is FaceColors_4)))){ trace("Head Shot"); _local4 = (_local3.getChildByName("head_damage") as MovieClip); (_local3.getChildByName("head_damage") as MovieClip).gotoAndStop((_local4.currentFrame + 1)); } else { _local3.gotoAndStop((_local3.currentFrame + 1)); }; }; m_wasBodyContact = true; if (_arg2){ PlayState.getInstance().onManCry(); SoundManager.play(MathUtils.anyOfString(SoundConst.CRY_0, SoundConst.CRY_1, SoundConst.CRY_2, SoundConst.CRY_3, SoundConst.CRY_4, SoundConst.CRY_5, SoundConst.CRY_6, SoundConst.CRY_7)); }; return (true); }; return (false); } public function resumeFly():void{ m_body.SetLinearVelocity(m_lastVelocity); } public function canStickIn():Boolean{ return ((m_lastVelocity.LengthSquared() >= (15 * 15))); } public function update(_arg1:Number):void{ var _local2:b2MassData; if (m_isStickIn){ m_stickInTime = (m_stickInTime + _arg1); }; if (((!(m_isMassKilled)) && (m_isStickIn))){ if (!m_isNextFrame){ m_isNextFrame = true; } else { m_isMassKilled = true; _local2 = new b2MassData(); m_body.GetMassData(_local2); _local2.mass = (_local2.mass / 15); m_body.SetMassData(_local2); }; }; m_lastVelocity = m_body.GetLinearVelocity().Copy(); m_liveTime = (m_liveTime + _arg1); calcDirection(_arg1); } public function stopFly():void{ m_body.SetLinearVelocity(new b2Vec2()); } public function onAnyContact():void{ m_wasAnyContact = true; } public function stickIn():void{ m_isStickIn = true; m_arrowHeadFixture.SetSensor(true); m_bodyFixture.SetSensor(true); } public function canInjure():Boolean{ if (((((PlayState.getInstance()) && ((PlayState.m_curLevel == 50)))) && (GameData.haveAchievement(Achievements.TWO_HOURS_PLAYED)))){ return (false); }; return ((m_lastVelocity.LengthSquared() >= (4 * 4))); } public function isStickIn():Boolean{ return (m_isStickIn); } public function kill():void{ m_isDead = true; } public function getBody():b2Body{ return (m_body); } public function getHeadFixture():b2Fixture{ return (m_arrowHeadFixture); } public function getBodyFixture():b2Fixture{ return (m_bodyFixture); } public function setFreeFly():void{ m_isFreeFly = true; } public function getRopesKilled():int{ return (m_ropesKilled); } public function wasAnyContact():Boolean{ return (m_wasAnyContact); } public function onKillRope():void{ m_body.SetLinearVelocity(new b2Vec2((m_body.GetLinearVelocity().x * 0.6), (m_body.GetLinearVelocity().y * 0.6))); m_ropesKilled++; } public function destroyBody(_arg1:b2World):void{ _arg1.DestroyBody(m_body); m_body = null; } public function isDead():Boolean{ return (m_isDead); } public function isNeeded():Boolean{ if (((m_isStickIn) && ((m_stickInTime > 0.2)))){ return (false); }; if (!m_isFreeFly){ if (((((m_body.GetPosition().x * Constant.PHYS_SCALE) < -200)) || (((m_body.GetPosition().x * Constant.PHYS_SCALE) > (Constant.WINDOW_WIDTH + 200))))){ return (false); }; }; if ((m_body.GetPosition().y * Constant.PHYS_SCALE) > Constant.WINDOW_HEIGHT){ return (false); }; if (m_liveTime > 10){ return (false); }; return (((!(m_isDead)) && (m_body.IsAwake()))); } } }//package States.PlayStateSection 117//AutoreleaseClip (States.PlayState.AutoreleaseClip) package States.PlayState { import Box2D.Dynamics.*; public class AutoreleaseClip extends MapObject { override public function update(_arg1:Number):void{ if (currentFrame == totalFrames){ m_isDead = true; }; } override public function onDead(_arg1:b2World):void{ parent.removeChild(this); } } }//package States.PlayStateSection 118//Blood (States.PlayState.Blood) package States.PlayState { import Box2D.Dynamics.*; public class Blood extends MapObject { public function Blood(){ cacheAsBitmap = true; } override public function update(_arg1:Number):void{ m_liveTime = (m_liveTime + _arg1); if (m_liveTime > 0.3){ alpha = (alpha - (1.5 * _arg1)); }; } override public function onDead(_arg1:b2World):void{ parent.removeChild(this); _arg1.DestroyBody(m_body); } override public function isDead():Boolean{ return ((alpha <= 0)); } } }//package States.PlayStateSection 119//Bow (States.PlayState.Bow) package States.PlayState { import flash.geom.*; import flash.display.*; import Entity.*; public class Bow extends SimpleStatableObject { private const STATE_NORMAL:String = "normal"; private const STATE_TELEPORT_1:String = "teleport1"; private const STATE_TELEPORT_2:String = "teleport2"; private var m_clip:BowClip; private var m_blackHoleEnd:TeleportBack; private var m_nextPos:Point; private var m_blackHoleStart:TeleportBack; private var m_layer:Sprite; public function Bow(){ m_blackHoleStart = new TeleportBack(); m_blackHoleEnd = new TeleportBack(); m_clip = new BowClip(); super(); if (PlayState.getInstance()){ m_layer = PlayState.getInstance().getArrowsLayer(); }; addChild(m_clip); m_clip.m_field.alpha = 0; buttonMode = true; } public function startStretch():void{ m_clip.gotoAndPlay("stretch"); } override protected function vUpdate(_arg1:Number):void{ switch (m_state){ case STATE_NORMAL: if (m_blackHoleEnd.parent){ m_blackHoleEnd.alpha = (m_blackHoleEnd.alpha - (1 * _arg1)); if (m_blackHoleEnd.alpha <= 0){ m_layer.removeChild(m_blackHoleEnd); }; }; break; case STATE_TELEPORT_1: m_blackHoleStart.alpha = (m_blackHoleStart.alpha + (2 * _arg1)); m_clip.rotation = (m_clip.rotation + ((360 * _arg1) * 2)); m_clip.scaleX = (m_clip.scaleX - (1 * _arg1)); m_clip.scaleY = (m_clip.scaleY - (1 * _arg1)); m_clip.alpha = (m_clip.alpha - (1 * _arg1)); if (m_clip.scaleX <= 0){ m_blackHoleStart.alpha = 1; x = m_nextPos.x; y = m_nextPos.y; changeState(STATE_TELEPORT_2); }; break; case STATE_TELEPORT_2: m_blackHoleStart.alpha = (m_blackHoleStart.alpha - (1 * _arg1)); m_blackHoleEnd.alpha = (m_blackHoleEnd.alpha + (2 * _arg1)); m_clip.rotation = (m_clip.rotation - ((360 * _arg1) * 2)); m_clip.scaleX = (m_clip.scaleX + (1 * _arg1)); m_clip.scaleY = (m_clip.scaleY + (1 * _arg1)); m_clip.alpha = (m_clip.alpha + (1 * _arg1)); if (m_clip.scaleX >= 1){ m_blackHoleEnd.alpha = 1; m_clip.scaleX = 1; m_clip.scaleY = 1; changeState(STATE_NORMAL); m_layer.removeChild(m_blackHoleStart); PlayState.getInstance().goNormalState(); m_clip.rotation = 0; m_clip.alpha = 1; }; break; }; } override protected function onChangeState(_arg1:String, _arg2:String):void{ if (_arg2 == STATE_NORMAL){ buttonMode = true; } else { buttonMode = false; }; } public function startTeleport(_arg1:Point):void{ changeState(STATE_TELEPORT_1); m_nextPos = _arg1; m_layer.addChild(m_blackHoleStart); m_blackHoleStart.alpha = 0; m_blackHoleStart.x = this.x; m_blackHoleStart.y = this.y; m_layer.addChild(m_blackHoleEnd); m_blackHoleEnd.alpha = 0; m_blackHoleEnd.x = _arg1.x; m_blackHoleEnd.y = _arg1.y; } public function fire():void{ m_clip.gotoAndPlay("fire"); } } }//package States.PlayStateSection 120//Camera (States.PlayState.Camera) package States.PlayState { import flash.display.*; public class Camera { protected var m_guiLayer:Sprite; protected var m_stateClip:Sprite; public function onShoot(_arg1:Arrow):void{ } public function onHangerDead():void{ } public function update(_arg1:Number):void{ } public function onKillArrow():void{ } public function canShoot():Boolean{ return (true); } public function setGibbet(_arg1:Gibbet):void{ } public function setGUILayer(_arg1:Sprite):void{ m_guiLayer = _arg1; } public function onHangerSave():void{ } public function setStateClip(_arg1:Sprite):void{ m_stateClip = _arg1; } } }//package States.PlayStateSection 121//Cloud (States.PlayState.Cloud) package States.PlayState { public class Cloud extends MapObject { private var m_iSpeed:Number; private var m_speed:Number; private var m_x:int;// = 0 public function Cloud(){ m_speed = Math.round((15 + (Math.random() * 15))); scaleX = 1.001; } override public function update(_arg1:Number):void{ x = (x + (m_speed * _arg1)); if ((x - width) > 640){ x = -(width); m_speed = (15 + (Math.random() * 15)); }; } } }//package States.PlayStateSection 122//Cow (States.PlayState.Cow) package States.PlayState { import Box2D.Dynamics.*; import flash.display.*; public class Cow extends MapObject { private var m_clip:MovieClip; private var m_isCry:Boolean;// = false public function Cow(){ m_clip = new CowNormal(); addChild(m_clip); } override public function onArrowHeadContact(_arg1:Arrow, _arg2:b2Fixture):void{ if (!m_isCry){ SoundManager.play(SoundConst.MOO); removeChild(m_clip); m_clip = new CowCry(); addChild(m_clip); m_isCry = true; }; } override public function update(_arg1:Number):void{ if (m_isCry){ if (m_clip.currentFrame == m_clip.totalFrames){ removeChild(m_clip); m_clip = new CowNormal(); addChild(m_clip); m_isCry = false; }; }; } } }//package States.PlayStateSection 123//Frontground (States.PlayState.Frontground) package States.PlayState { import flash.display.*; public class Frontground extends MovieClip { } }//package States.PlayStateSection 124//Gibbet (States.PlayState.Gibbet) package States.PlayState { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Utils.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; import flash.display.*; import Ragdoll.*; public class Gibbet extends MapObject { private var m_arrowDamage:Number;// = 0.15 private var m_destroyBuffer:Array; private var m_healthWithoutDamage:Number;// = 1 private var m_ragdoll:HumanRagdoll; private var m_isSafed:Boolean;// = false private var m_arrowsInBody:int;// = 0 private var m_comixCloudTime:Number;// = -1 private var m_persID:int; private var m_comixCloudProb:Number;// = 0 private var m_faceColor:MovieClip; private var m_comixCloud:MovieClip; private var m_dieSpeed:Number;// = 0.03 private var m_world:b2World; private var m_showCloudState:int;// = 0 private var m_injureTime:Number;// = -1 private var m_healthClip:MovieClip; private var m_chain:Array; private var m_health:Number;// = 1 public function Gibbet(_arg1:b2Vec2, _arg2:String, _arg3:int, _arg4:b2World, _arg5:int, _arg6:Boolean){ var _local7:int; var _local15:b2Vec2; var _local19:b2Body; var _local20:b2Body; var _local21:b2Body; var _local22:b2Vec2; m_chain = new Array(); m_destroyBuffer = new Array(); super(); m_world = _arg4; m_dieSpeed = MathUtils.RandomRange(0.025, 0.035); if (GameData.haveAchievement(Achievements.LEVEL_30_IN_6_SHOT)){ m_dieSpeed = (m_dieSpeed * 0.9); }; var _local8:b2Vec2 = new b2Vec2((1 / Constant.PHYS_SCALE), (3 / Constant.PHYS_SCALE)); var _local9:b2BodyDef = new b2BodyDef(); _local9.position.x = _arg1.x; _local9.type = b2Body.b2_dynamicBody; var _local10:b2FixtureDef = new b2FixtureDef(); _local10.density = 30; _local10.friction = 0.5; _local10.restitution = 0.1; _local10.isSensor = true; var _local11:b2PolygonShape = new b2PolygonShape(); _local11.SetAsBox(_local8.x, _local8.y); _local10.shape = _local11; _local7 = 0; while (_local7 < _arg3) { _local9.position.y = ((_arg1.y + ((_local8.y * _local7) * 2)) - (1 / Constant.PHYS_SCALE)); _local19 = m_world.CreateBody(_local9); _local19.CreateFixture(_local10); _local19.SetUserData(new Rope()); addChild(_local19.GetUserData()); m_chain.push(_local19); _local7++; }; var _local12:b2RevoluteJointDef = new b2RevoluteJointDef(); _local12.lowerAngle = (-(Math.PI) / 2); _local12.upperAngle = (Math.PI / 2); _local12.enableLimit = true; _local7 = 0; while (_local7 < (m_chain.length - 1)) { _local20 = m_chain[_local7]; _local21 = m_chain[(_local7 + 1)]; _local22 = new b2Vec2(((_local20.GetPosition().x + _local21.GetPosition().x) / 2), ((_local20.GetPosition().y + _local21.GetPosition().y) / 2)); _local12.Initialize(_local20, _local21, _local22); m_world.CreateJoint(_local12); _local7++; }; var _local13:b2RevoluteJointDef = new b2RevoluteJointDef(); _local13.collideConnected = true; _local13.Initialize(m_world.GetGroundBody(), m_chain[0], new b2Vec2(_arg1.x, (_arg1.y - (3 / Constant.PHYS_SCALE)))); m_world.CreateJoint(_local13); var _local14:Boolean; if (_arg2 != HumanRagdoll.HEAD){ m_dieSpeed = (m_dieSpeed / 3); }; switch (_arg2){ case HumanRagdoll.HEAD: _local15 = new b2Vec2(0, 0); _local14 = false; break; case HumanRagdoll.LEFT_LOWER_HAND: _local15 = new b2Vec2((31 / Constant.PHYS_SCALE), (-5 / Constant.PHYS_SCALE)); _local14 = false; break; case HumanRagdoll.RIGHT_LOWER_HAND: _local15 = new b2Vec2((-31 / Constant.PHYS_SCALE), (-5 / Constant.PHYS_SCALE)); _local14 = false; break; case HumanRagdoll.LEFT_LOWER_LEG: _local15 = new b2Vec2((4 / Constant.PHYS_SCALE), (55 / Constant.PHYS_SCALE)); _local14 = true; break; case HumanRagdoll.RIGHT_LOWER_LEG: _local15 = new b2Vec2((-4 / Constant.PHYS_SCALE), (55 / Constant.PHYS_SCALE)); _local14 = true; break; }; var _local16:b2Vec2 = (m_chain[(m_chain.length - 1)] as b2Body).GetPosition().Copy(); m_ragdoll = new HumanRagdoll(new b2Vec2((_local16.x + _local15.x), (_local16.y + _local15.y)), m_world, _local14, _arg5, _arg6); m_faceColor = (m_ragdoll.getBodyByName(HumanRagdoll.HEAD).GetUserData() as MovieClip); addChild(m_ragdoll); var _local17:b2Body = m_ragdoll.getBodyByName(_arg2); var _local18:b2RevoluteJointDef = new b2RevoluteJointDef(); _local18.Initialize(_local17, m_chain[(m_chain.length - 1)], _local16); m_world.CreateJoint(_local18); m_healthClip = new HealthBar(); addChild(m_healthClip); calcHealthClip(false); calcComixCloudPos(); m_persID = _arg5; if (GameData.haveAchievement(Achievements.LEVEL_44_IN_6_SHOT)){ m_arrowDamage = 0.12; }; } private function calcHealthClip(_arg1:Boolean):void{ var _local2:b2Vec2 = getHeadPosition(); m_healthClip.x = ((_local2.x * Constant.PHYS_SCALE) + 15); m_healthClip.y = ((_local2.y * Constant.PHYS_SCALE) - 11); var _local3:int = int(((1 - m_health) * 3)); m_healthClip.gotoAndStop(int((m_healthClip.totalFrames * (1 - m_health)))); if (m_isSafed){ if (!m_isDead){ m_faceColor.gotoAndStop((5 + _local3)); } else { m_faceColor.gotoAndStop(4); }; } else { if (!m_isDead){ if (_arg1){ m_injureTime = 0.6; m_faceColor.gotoAndStop((8 + _local3)); } else { if (m_injureTime < 0){ m_faceColor.gotoAndStop((1 + _local3)); }; }; } else { m_faceColor.gotoAndStop(4); }; }; m_faceColor.addChild(m_faceColor.getChildByName("head_damage")); } public function getPersID():int{ return (m_persID); } private function checkRopeKill(_arg1:Arrow, _arg2:b2Fixture):void{ var _local3:b2Body; var _local4:Boolean; var _local5:int; var _local6:b2Body; var _local7:b2MassData; if (((!((m_chain.indexOf(_arg2.GetBody()) == -1))) && (!(m_isSafed)))){ _local3 = _arg2.GetBody(); SoundManager.play(MathUtils.anyOfString(SoundConst.TAPE_ROPE_0, SoundConst.TAPE_ROPE_1, SoundConst.TAPE_ROPE_2)); _arg1.onKillRope(); _local4 = false; _local5 = 0; while (_local5 < m_chain.length) { _local6 = m_chain[_local5]; if (_local3 == _local6){ _local4 = true; m_destroyBuffer.push(_local6); } else { if (_local4){ _local7 = new b2MassData(); _local6.GetMassData(_local7); _local7.mass = (_local7.mass / 40); _local6.SetMassData(_local7); } else { _local6.ApplyImpulse(new b2Vec2(-0.2, MathUtils.RandomRange(-1, 1)), _local6.GetPosition()); }; }; _local5++; }; PlayState.getInstance().onHangerSafe(_arg1.getRopesKilled(), this); m_healthClip.visible = false; m_isSafed = true; }; } private function calcComixCloudPos():void{ var _local1:b2Vec2; if (m_comixCloud){ _local1 = getHeadPosition(); m_comixCloud.x = ((_local1.x * Constant.PHYS_SCALE) - 14); m_comixCloud.y = (_local1.y * Constant.PHYS_SCALE); }; } public function getHeadPosition():b2Vec2{ return (m_ragdoll.getBodyByName(HumanRagdoll.HEAD).GetPosition().Copy()); } override public function isItYourFixture(_arg1:b2Fixture):Boolean{ var _local2:b2Body = _arg1.GetBody(); return (((!((m_chain.indexOf(_local2) == -1))) || (!((m_ragdoll.getAllPaths().indexOf(_local2) == -1))))); } public function setComixCloud(_arg1:MovieClip, _arg2:Number=1):void{ m_comixCloud = _arg1; m_comixCloud.visible = false; m_comixCloudProb = _arg2; } public function getRagdoll():HumanRagdoll{ return (m_ragdoll); } override public function isDead():Boolean{ return (false); } public function showCloud(_arg1:Number=2.5):void{ if (m_comixCloud){ if (((!(isDead())) && ((m_comixCloudProb > Math.random())))){ m_comixCloudTime = _arg1; m_comixCloud.visible = true; m_comixCloudProb = 0; m_comixCloud.alpha = 0; m_showCloudState = 0; }; }; } public function isKilled():Boolean{ return (m_isDead); } override public function update(_arg1:Number):void{ var _local2:b2Body; m_injureTime = (m_injureTime - _arg1); if (((m_comixCloud) && (m_comixCloud.visible))){ switch (m_showCloudState){ case 0: if ((m_comixCloud.alpha = (m_comixCloud.alpha + (4 * _arg1))) >= 1){ m_showCloudState = 1; m_comixCloud.alpha = 1; }; break; case 1: if ((m_comixCloudTime = (m_comixCloudTime - _arg1)) < 0){ m_showCloudState = 2; }; break; case 2: if ((m_comixCloud.alpha = (m_comixCloud.alpha - (4 * _arg1))) <= 0){ m_showCloudState = 3; m_comixCloud.visible = false; }; break; }; }; if (((!(m_isSafed)) && (!(m_isDead)))){ m_healthWithoutDamage = (m_healthWithoutDamage - (m_dieSpeed * _arg1)); if ((m_health = (m_health - (m_dieSpeed * _arg1))) <= 0){ SoundManager.play(SoundConst.DEATH_CRY); PlayState.getInstance().onHangerDead(this); m_isDead = true; m_healthClip.visible = false; if (m_comixCloud){ m_comixCloud.visible = false; }; }; }; if (m_destroyBuffer.length != 0){ for each (_local2 in m_destroyBuffer) { if (_local2.GetUserData()){ _local2.GetUserData().parent.removeChild(_local2.GetUserData()); }; m_world.DestroyBody(_local2); }; m_destroyBuffer.length = 0; m_chain.length = 0; }; calcHealthClip(false); calcComixCloudPos(); } override public function goTop(_arg1:Sprite, _arg2:Sprite, _arg3:Sprite, _arg4:Sprite, _arg5:Sprite):void{ _arg5.addChild(m_healthClip); if (m_comixCloud){ _arg5.addChild(m_comixCloud); }; } public function getHealth():Number{ return (m_health); } override public function onArrowHeadContact(_arg1:Arrow, _arg2:b2Fixture):void{ if (_arg1.canInjure()){ if (m_ragdoll.getAllPaths().indexOf(_arg2.GetBody()) != -1){ m_arrowsInBody++; if (_arg1.contactWithManBody(_arg2.GetBody(), !(m_isDead))){ if (!m_isDead){ PlayState.getInstance().createBlood(_arg2.GetBody().GetPosition()); }; if (!m_isSafed){ m_health = (m_health - m_arrowDamage); showCloud(); }; calcHealthClip(true); }; }; }; checkRopeKill(_arg1, _arg2); } override public function onArrowContact(_arg1:Arrow, _arg2:b2Fixture):void{ checkRopeKill(_arg1, _arg2); } public function makeLookUgly():void{ m_healthClip.visible = false; m_faceColor.gotoAndStop(4); m_dieSpeed = 0; } public function haveChainSection(_arg1:b2Body):Boolean{ return (!((m_chain.indexOf(_arg1) == -1))); } public function showCloudNow():void{ m_comixCloudTime = Number.MAX_VALUE; m_comixCloud.visible = true; m_showCloudState = 1; } } }//package States.PlayStateSection 125//HedgehogGhost (States.PlayState.HedgehogGhost) package States.PlayState { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Utils.*; import flash.display.*; public class HedgehogGhost extends MapObject { private var m_isActive:Boolean;// = true private var m_needRun:Boolean;// = false private var m_charge:int; private var m_arrow:Arrow; private var m_rotatedPath:DisplayObject; private var m_rotationSpeed:Number;// = 70 public function HedgehogGhost(){ m_rotatedPath = getChildByName("m_rotatedPath"); } override public function onArrowContact(_arg1:Arrow, _arg2:b2Fixture):void{ if (m_isActive){ m_arrow = _arg1; m_isActive = false; m_needRun = true; SoundManager.play(SoundConst.ARROW_GHOST); }; } public function setRotationSpeed(_arg1:Number):void{ m_rotationSpeed = _arg1; } override public function update(_arg1:Number):void{ var _local2:int; var _local3:Number; var _local4:b2Vec2; m_liveTime = (m_liveTime + _arg1); if (!m_rotatedPath){ return; }; m_rotatedPath.rotation = (m_rotatedPath.rotation + (m_rotationSpeed * _arg1)); if (m_needRun){ if (m_charge != 1){ m_arrow.kill(); }; m_needRun = false; _local2 = 0; while (_local2 < m_charge) { _local3 = ((MathUtils.GradToRad(m_rotatedPath.rotation) - (Math.PI / 2)) - (((_local2 * Math.PI) * 2) / m_charge)); _local4 = new b2Vec2(Math.cos(_local3), Math.sin(_local3)); _local4.Multiply(((Constant.MIN_SHOOTING_POWER + Constant.MAX_SHOOTING_POWER) / 2)); PlayState.getInstance().getWorld().DestroyBody(m_body); PlayState.getInstance().createArrow(m_body.GetPosition().Copy(), _local4); _local2++; }; } else { if (!m_isActive){ scaleX = (scaleX + 0.03); scaleY = (scaleY + 0.03); if ((alpha = (alpha - 0.08)) <= 0){ alpha = 0; m_isDead = true; }; }; }; } override public function onDead(_arg1:b2World):void{ parent.removeChild(this); _arg1.DestroyBody(m_body); } override public function isDead():Boolean{ return (m_isDead); } public function setCharge(_arg1:int){ m_charge = _arg1; } public function initRotation():void{ m_rotatedPath.rotation = rotation; rotation = 0; } } }//package States.PlayStateSection 126//HintText (States.PlayState.HintText) package States.PlayState { import flash.display.*; public class HintText extends MovieClip { } }//package States.PlayStateSection 127//Levels (States.PlayState.Levels) package States.PlayState { public class Levels { private static const LEVEL_27:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="OvercastSky"/> <Object scaleX="1" scaleY="1" type="background" x="-1" y="344" rotation="0" clip_name="Back4"/> <Object type="shooting_point" x="74" y="412" rotation="59.99946594238281" clip_name="BowPoint"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="115" y="222" rotation="0" clip_name="HangerPoint"/> <Object scaleX="1" scaleY="1" type="background" x="284" y="233" rotation="0" clip_name="tree_10"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="572" y="374" rotation="-42.00006103515625" clip_name="ArrowGhost1"/> <Object type="gibbet_obliquely" inverted="false" x="75" y="235" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="56" y="268" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="true" x="21" y="347" rotation="0" clip_name="ComposedStone99"/> <Object type="static_box" is_stone="false" x="89" y="217" rotation="0" clip_name="GibbetStick"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="227" y="222" rotation="-0.0008697509765625" clip_name="ArrowGhost1"/> <Object type="teleport_ghost" x="225" y="293" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="572" y="259" rotation="-42.00006103515625" clip_name="ArrowGhost1"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="115" y="106" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet_obliquely" inverted="false" x="75" y="118" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="56" y="152" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="89" y="100" rotation="0" clip_name="GibbetStick"/> <Object type="ammo_ghost" power="5" x="420" y="128" rotation="0" clip_name="AmmoGhost5"/> <Object type="static_box" is_stone="true" x="706" y="78" rotation="0" clip_name="ComposedStone99"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="552" y="99" rotation="0" clip_name="HangerPoint"/> <Object type="points_ghost" power="500" x="507" y="410" rotation="0" clip_name="PointsGhost500"/> <Object type="points_ghost" power="500" x="423" y="410" rotation="0" clip_name="PointsGhost500"/> <Object scaleX="1" scaleY="1" width="26.8" height="37.35" type="frontground" x="528" y="404" rotation="0" clip_name="flower_6"/> <Object scaleX="1" scaleY="1" width="50.85" height="25.2" type="frontground" x="114" y="421" rotation="0" clip_name="flower_5"/> <Object type="vulture" inverted="false" x="61" y="72" rotation="0" clip_name="VultureHere"/> <Object type="cloud" x="671" y="76" rotation="0" clip_name="Cloud9"/> <Object type="cloud" x="487" y="18" rotation="0" clip_name="Cloud8"/> <Object type="cloud" x="284" y="40" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="157" y="36" rotation="0" clip_name="Cloud3"/> <Object type="cloud" x="-71" y="18" rotation="0" clip_name="Cloud1"/> <Object type="cloud" x="-260" y="49" rotation="0" clip_name="Cloud0"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="107" y="212" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="107" y="95" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="55" y="216" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="55" y="100" rotation="0" clip_name="Screw"/> </Level> ; private static const LEVEL_28:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="0" y="358" rotation="0" clip_name="Back2"/> <Object scaleX="1" scaleY="1" type="background" x="295" y="284" rotation="0" clip_name="tree_3"/> <Object type="dynamic_box" x="222" y="431" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="222" y="406" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="222" y="381" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="222" y="356" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="222" y="331" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="222" y="306" rotation="0" clip_name="Box"/> <Object type="shooting_point" x="593" y="307" rotation="-89.99563598632813" clip_name="BowPoint"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="208" y="74" rotation="0" clip_name="HangerPoint"/> <Object type="tnt_barrel" x="272" y="210" rotation="0" clip_name="States.PlayState::TNTBarrel"/> <Object type="dynamic_box" x="338" y="218" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="338" y="193" rotation="0" clip_name="Box"/> <Object type="static_box" is_stone="true" x="307" y="249" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="273" y="249" rotation="0" clip_name="Stone2"/> <Object type="teleport_ghost" x="134" y="222" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="99" y="379" rotation="33.00028991699219" clip_name="ArrowGhost1"/> <Object type="dynamic_box" x="338" y="168" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="338" y="143" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="338" y="119" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="338" y="94" rotation="0" clip_name="Box"/> <Object type="static_box" is_stone="true" x="341" y="249" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="410" y="249" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="376" y="249" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="444" y="249" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="513" y="249" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="479" y="249" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="547" y="249" rotation="0" clip_name="Stone1"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="600" y="188" rotation="-69.99934387207031" clip_name="ArrowGhost1"/> <Object type="static_box" is_stone="true" x="209" y="54" rotation="0" clip_name="Stone1"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="49" y="105" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="50" y="84" rotation="0" clip_name="Stone1"/> <Object type="tnt_barrel" x="289" y="423" rotation="0" clip_name="States.PlayState::TNTBarrel"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="46" y="426" rotation="0" clip_name="herb"/> <Object scaleX="1" scaleY="1" width="27.55" height="35.7" type="frontground" x="594" y="406" rotation="0" clip_name="flower_0"/> <Object type="sun" x="569" y="72" rotation="0" clip_name="States.PlayState::Sun"/> <Object type="cloud" x="439" y="37" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="643" y="77" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="299" y="41" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="98" y="81" rotation="0" clip_name="Cloud2"/> <Object type="cloud" x="-50" y="22" rotation="0" clip_name="Cloud1"/> </Level> ; private static const LEVEL_23:XML = null; private static const LEVEL_25:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="OvercastSky"/> <Object scaleX="1" scaleY="1" type="background" x="0" y="344" rotation="0" clip_name="Back4"/> <Object type="shooting_point" x="609" y="416" rotation="-45" clip_name="BowPoint"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="9" x="103" y="153" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="102" y="337" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet_obliquely" inverted="false" x="45" y="350" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="27" y="385" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="true" x="431" y="349" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="431" y="383" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="431" y="417" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="431" y="451" rotation="0" clip_name="Stone3"/> <Object scaleX="1" scaleY="1" type="background" x="471" y="268" rotation="0" clip_name="tree_9"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="hedhehog_ghost" speed="-60" charge="4" x="200" y="233" rotation="45" clip_name="ArrowGhost4"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="8" x="296" y="153" rotation="0" clip_name="HangerPoint"/> <Object type="teleport_ghost" x="274" y="408" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object type="static_box" is_stone="false" x="63" y="333" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="false" x="27" y="265" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="27" y="200" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="63" y="149" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="false" x="152" y="149" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="false" x="242" y="149" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="false" x="290" y="149" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="true" x="352" y="162" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="352" y="196" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="352" y="230" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="352" y="264" rotation="0" clip_name="Stone3"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="26" y="332" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="26" y="149" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="96" y="144" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="288" y="144" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="95" y="327" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" type="background" x="113" y="383" rotation="0" clip_name="BgStones"/> <Object type="vulture" inverted="false" x="426" y="312" rotation="0" clip_name="VultureHere"/> <Object type="cloud" x="119" y="23" rotation="0" clip_name="Cloud0"/> <Object type="cloud" x="304" y="6" rotation="0" clip_name="Cloud1"/> <Object type="cloud" x="547" y="37" rotation="0" clip_name="Cloud4"/> <Object type="cloud" x="-46" y="31" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="411" y="84" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="-84" y="94" rotation="0" clip_name="Cloud9"/> <Object scaleX="1" scaleY="1" width="50.85" height="25.2" type="frontground" x="319" y="420" rotation="0" clip_name="flower_5"/> </Level> ; private static const LEVEL_29:XML = null; private static const LEVEL_21:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="-3" y="330" rotation="0" clip_name="Back1"/> <Object scaleX="1" scaleY="1" type="background" x="381" y="161" rotation="0" clip_name="tree_7"/> <Object type="shooting_point" x="465" y="386" rotation="-45" clip_name="BowPoint"/> <Object type="static_box" is_stone="true" x="236" y="433" rotation="0" clip_name="Stone2"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="313" y="153" rotation="0" clip_name="HangerPoint"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="104" y="141" rotation="100.00105285644531" clip_name="ArrowGhost1"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="104" y="181" rotation="89.9947509765625" clip_name="ArrowGhost1"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="104" y="222" rotation="70.0001220703125" clip_name="ArrowGhost1"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="237" y="299" rotation="-59.99946594238281" clip_name="ArrowGhost1"/> <Object type="gibbet_obliquely" inverted="true" x="339" y="164" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="357" y="200" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="321" y="147" rotation="0" clip_name="GibbetStick"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="237" y="360" rotation="-1.00006103515625" clip_name="ArrowGhost1"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="48" y="383" rotation="34.00025939941406" clip_name="ArrowGhost1"/> <Object type="static_box" is_stone="true" x="236" y="399" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="289" y="276" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="322" y="276" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="356" y="276" rotation="0" clip_name="Stone2"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="104" y="262" rotation="1.00006103515625" clip_name="ArrowGhost1"/> <Object type="sun" x="99" y="75" rotation="0" clip_name="States.PlayState::Sun"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="357" y="147" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="305" y="142" rotation="0" clip_name="RopeRings"/> <Object type="points_ghost" power="500" x="308" y="112" rotation="0" clip_name="PointsGhost500"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="113" y="427" rotation="0" clip_name="herb"/> <Object type="cloud" x="137" y="26" rotation="0" clip_name="Cloud0"/> <Object type="cloud" x="408" y="30" rotation="0" clip_name="Cloud1"/> <Object type="cloud" x="637" y="76" rotation="0" clip_name="Cloud2"/> <Object type="cloud" x="-33" y="68" rotation="0" clip_name="Cloud3"/> <Object type="cloud" x="-233" y="17" rotation="0" clip_name="Cloud5"/> </Level> ; private static const LEVEL_0:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object type="gibbet_obliquely" inverted="true" x="559" y="350" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="cloud" x="108" y="96" rotation="0" clip_name="Cloud3"/> <Object x="0" y="0" rotation="0" clip_name="ToPullBowHint"/> <Object type="cloud" x="374" y="147" rotation="0" clip_name="Cloud2"/> <Object scaleX="1" scaleY="1" type="background" x="-1" y="358" rotation="0" clip_name="Back2"/> <Object scaleX="1" scaleY="1" type="background" x="22" y="368" rotation="0" clip_name="tree_2"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="cloud" x="-126" y="27" rotation="0" clip_name="Cloud1"/> <Object x="0" y="0" rotation="0" clip_name="TryToAimHint"/> <Object type="cloud" x="269" y="18" rotation="0" clip_name="Cloud0"/> <Object type="sun" x="550" y="82" rotation="0" clip_name="States.PlayState::Sun"/> <Object type="cloud" x="602" y="52" rotation="0" clip_name="Cloud5"/> <Object scaleX="1" scaleY="1" width="27.55" height="35.7" type="frontground" x="358" y="407" rotation="0" clip_name="flower_0"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="176" y="427" rotation="0" clip_name="herb"/> <Object type="static_box" is_stone="false" x="578" y="385" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="543" y="333" rotation="180" clip_name="GibbetStick"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="531" y="339" rotation="0" clip_name="HangerPoint" cloud_name="ShotTheRopeNotMeCloud" cloud_prob="1"/> <Object type="shooting_point" x="208" y="355" rotation="59.99946594238281" clip_name="BowPoint"/> <Object type="highlight" size="150" x="530" y="377" rotation="0" clip_name="YouWillGetAStar"/> <Object type="highlight" size="150" x="530" y="357" rotation="0" clip_name="TryToAimHint"/> <Object type="highlight" size="150" x="208" y="355" rotation="0" clip_name="ToPullBowHint"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="523" y="328" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="578" y="333" rotation="0" clip_name="Screw"/> </Level> ; private static const LEVEL_1:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object type="gibbet_obliquely" inverted="true" x="498" y="349" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object scaleX="1" scaleY="1" type="background" x="-2" y="329" rotation="0" clip_name="Back1"/> <Object scaleX="1" scaleY="1" type="background" x="301" y="229" rotation="0" clip_name="tree_4"/> <Object type="gibbet_obliquely" inverted="false" x="157" y="350" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="138" y="384" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="175" y="333" rotation="180" clip_name="GibbetStick"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="185" y="338" rotation="0" clip_name="HangerPoint"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="178" y="327" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="138" y="332" rotation="0" clip_name="Screw"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="shooting_point" x="322" y="381" rotation="59.99946594238281" clip_name="BowPoint"/> <Object type="static_box" is_stone="false" x="517" y="384" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="482" y="333" rotation="180" clip_name="GibbetStick"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="470" y="338" rotation="0" clip_name="HangerPoint"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="463" y="327" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="517" y="332" rotation="0" clip_name="Screw"/> <Object type="points_ghost" power="500" x="203" y="301" rotation="0" clip_name="PointsGhost500"/> <Object type="highlight" size="150" x="201" y="302" rotation="0" clip_name="ThisIsBonusHint"/> <Object type="sun" x="68" y="81" rotation="0" clip_name="States.PlayState::Sun"/> <Object type="cloud" x="260" y="32" rotation="0" clip_name="Cloud0"/> <Object type="cloud" x="448" y="122" rotation="0" clip_name="Cloud2"/> <Object type="cloud" x="490" y="36" rotation="0" clip_name="Cloud3"/> <Object type="cloud" x="133" y="110" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="74" y="28" rotation="0" clip_name="Cloud8"/> <Object type="cloud" x="581" y="104" rotation="0" clip_name="Cloud9"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="47" y="427" rotation="0" clip_name="herb"/> <Object x="0" y="0" rotation="0" clip_name="ThisIsBonusHint"/> <Object scaleX="-1" scaleY="1" width="28.45" height="36.5" type="frontground" x="601" y="400" rotation="0" clip_name="flower_4"/> </Level> ; private static const LEVEL_2:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="-1" y="357" rotation="0" clip_name="Back2"/> <Object scaleX="1" scaleY="1" type="background" x="504" y="352" rotation="0" clip_name="tree_1"/> <Object scaleX="1" scaleY="1" type="background" x="28" y="152" rotation="0" clip_name="tree_5"/> <Object type="shooting_point" x="367" y="330" rotation="120.00117492675781" clip_name="BowPoint"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="125" y="344" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet_obliquely" inverted="false" x="100" y="355" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="81" y="390" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="117" y="338" rotation="0" clip_name="GibbetStick"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="117" y="333" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="81" y="338" rotation="0" clip_name="Screw"/> <Object type="ammo_ghost" power="5" x="476" y="409" rotation="0" clip_name="AmmoGhost5"/> <Object type="ammo_ghost" power="10" x="565" y="409" rotation="0" clip_name="AmmoGhost10"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="151" y="125" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet_obliquely" inverted="false" x="115" y="136" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="97" y="170" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="132" y="119" rotation="0" clip_name="GibbetStick"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="143" y="114" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="97" y="119" rotation="0" clip_name="Screw"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="551" y="158" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet_obliquely" inverted="true" x="582" y="170" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="601" y="203" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="565" y="152" rotation="0" clip_name="GibbetStick"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="543" y="146" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="600" y="152" rotation="0" clip_name="Screw"/> <Object type="gibbet_ground" x="558" y="298" rotation="0" clip_name="GibbetGround"/> <Object type="gibbet_ground" x="120" y="266" rotation="0" clip_name="GibbetGround"/> <Object type="highlight" size="150" x="475" y="409" rotation="0" clip_name="AmmoHint"/> <Object x="0" y="0" rotation="0" clip_name="AmmoHint"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="112" y="427" rotation="0" clip_name="herb"/> <Object scaleX="1" scaleY="1" width="38.7" height="43.05" type="frontground" x="351" y="400" rotation="0" clip_name="flower_2"/> <Object type="sun" x="564" y="76" rotation="0" clip_name="States.PlayState::Sun"/> <Object type="cloud" x="697" y="94" rotation="0" clip_name="Cloud9"/> <Object type="cloud" x="492" y="36" rotation="0" clip_name="Cloud8"/> <Object type="cloud" x="-156" y="59" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="261" y="36" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="13" y="14" rotation="0" clip_name="Cloud4"/> <Object type="highlight" size="150" x="308" y="30" rotation="0" clip_name="TheAmountOfArrows"/> <Object x="0" y="0" rotation="0" clip_name="TheAmountOfArrows"/> </Level> ; private static const LEVEL_3:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object type="gibbet_obliquely" inverted="true" x="584" y="154" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object scaleX="1.0068817138671875" scaleY="1" type="background" x="-4" y="331" rotation="0" clip_name="Back1"/> <Object type="static_box" is_stone="true" x="148" y="426" rotation="0" clip_name="Stone3"/> <Object type="shooting_point" x="358" y="163" rotation="-79.99894714355469" clip_name="BowPoint"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="97" y="142" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="257" y="142" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="174" y="141" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="488" y="142" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="549" y="142" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet_obliquely" inverted="false" x="70" y="154" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="53" y="187" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="87" y="136" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="false" x="174" y="136" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="false" x="235" y="136" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="false" x="602" y="187" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="568" y="136" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="false" x="516" y="136" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="true" x="59" y="262" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="93" y="262" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="127" y="262" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="161" y="262" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="195" y="262" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="230" y="262" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="76" y="295" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="213" y="295" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="179" y="295" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="144" y="295" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="110" y="295" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="95" y="328" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="129" y="328" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="164" y="328" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="197" y="328" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="113" y="361" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="147" y="361" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="181" y="362" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="130" y="394" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="164" y="394" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="518" y="429" rotation="0" clip_name="Stone3"/> <Object scaleX="1" scaleY="1" type="background" x="251" y="291" rotation="0" clip_name="tree_6"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="static_box" is_stone="true" x="428" y="265" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="462" y="265" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="496" y="265" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="531" y="265" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="565" y="265" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="599" y="265" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="445" y="298" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="582" y="298" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="548" y="298" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="513" y="298" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="479" y="298" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="465" y="331" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="498" y="331" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="532" y="331" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="566" y="331" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="483" y="364" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="517" y="364" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="551" y="365" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="500" y="397" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="534" y="397" rotation="0" clip_name="Stone0"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="480" y="131" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="541" y="131" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="249" y="131" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="167" y="131" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="89" y="131" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="602" y="136" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="53" y="136" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="192" y="427" rotation="0" clip_name="herb"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="436" y="426" rotation="0" clip_name="herb"/> <Object scaleX="1" scaleY="1" width="27.55" height="35.7" type="frontground" x="584" y="407" rotation="0" clip_name="flower_0"/> <Object scaleX="1" scaleY="1" width="44.95" height="42.55" type="frontground" x="19" y="401" rotation="0" clip_name="flower_3"/> <Object type="sun" x="68" y="68" rotation="0" clip_name="States.PlayState::Sun"/> <Object type="cloud" x="368" y="49" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="586" y="22" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="130" y="22" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="-181" y="10" rotation="0" clip_name="Cloud4"/> <Object type="cloud" x="467" y="90" rotation="0" clip_name="Cloud9"/> <Object type="points_ghost" power="500" x="218" y="415" rotation="0" clip_name="PointsGhost500"/> <Object type="highlight" size="150" x="173" y="161" rotation="0" clip_name="ComboSave3Hint"/> <Object type="highlight" size="150" x="517" y="157" rotation="0" clip_name="ComboSave2Hint"/> <Object x="0" y="0" rotation="0" clip_name="ComboSave2Hint"/> <Object x="0" y="0" rotation="0" clip_name="ComboSave3Hint"/> <Object type="points_ghost" power="500" x="425" y="415" rotation="0" clip_name="PointsGhost500"/> </Level> ; private static const LEVEL_4:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="0" y="358" rotation="0" clip_name="Back2"/> <Object scaleX="1" scaleY="1" type="background" x="135" y="230" rotation="0" clip_name="tree_4"/> <Object type="static_box" is_stone="true" x="577" y="427" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="576" y="392" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="577" y="358" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="576" y="323" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="577" y="289" rotation="0" clip_name="Stone0"/> <Object type="shooting_point" x="34" y="396" rotation="45" clip_name="BowPoint"/> <Object type="highlight" size="150" x="34" y="396" rotation="0" clip_name="InvertControlHint"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="438" y="282" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="377" y="427" rotation="0" clip_name="Stone0"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="sun" x="568" y="89" rotation="0" clip_name="States.PlayState::Sun"/> <Object type="static_box" is_stone="true" x="377" y="392" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="377" y="358" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="377" y="289" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="false" x="393" y="233" rotation="45" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="434" y="191" rotation="45" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="563" y="236" rotation="-45" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="516" y="187" rotation="-45" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="438" y="276" rotation="0" clip_name="GibbetStick"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="513" y="281" rotation="0" clip_name="HangerPoint" cloud_name="StopItCloud" cloud_prob="0.3"/> <Object type="static_box" is_stone="false" x="514" y="276" rotation="0" clip_name="GibbetStick"/> <Object type="cow" inverted="true" x="303" y="321" rotation="0" clip_name="InvertedCowHere"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="48" y="427" rotation="0" clip_name="herb"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="472" y="429" rotation="0" clip_name="herb"/> <Object type="cloud" x="397" y="85" rotation="0" clip_name="Cloud9"/> <Object type="cloud" x="275" y="28" rotation="0" clip_name="Cloud8"/> <Object type="cloud" x="494" y="18" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="42" y="34" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="688" y="76" rotation="0" clip_name="Cloud2"/> <Object type="cloud" x="-121" y="10" rotation="0" clip_name="Cloud1"/> <Object type="points_ghost" power="1000" x="560" y="157" rotation="0" clip_name="PointsGhost1000"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="505" y="270" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="431" y="270" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="477" y="148" rotation="0" clip_name="Screw"/> </Level> ; private static const LEVEL_5:XML = null; private static const LEVEL_6:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="-3" y="331" rotation="0" clip_name="Back1"/> <Object scaleX="1" scaleY="1" type="background" x="107" y="161" rotation="0" clip_name="tree_7"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="shooting_point" x="52" y="411" rotation="59.99946594238281" clip_name="BowPoint"/> <Object type="gibbet_obliquely" inverted="true" x="577" y="184" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="596" y="218" rotation="0" clip_name="GibbetColumn"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="541" y="173" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet_ground" x="556" y="312" rotation="0" clip_name="GibbetGround"/> <Object type="static_box" is_stone="false" x="562" y="167" rotation="0" clip_name="GibbetStick"/> <Object type="gibbet_obliquely" inverted="false" x="83" y="174" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="65" y="209" rotation="0" clip_name="GibbetColumn"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="118" y="163" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet_ground" x="101" y="302" rotation="0" clip_name="GibbetGround"/> <Object type="static_box" is_stone="false" x="98" y="157" rotation="0" clip_name="GibbetStick"/> <Object type="teleport_ghost" x="548" y="404" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object type="highlight" size="150" x="547" y="403" rotation="0" clip_name="TeleportHint"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="533" y="162" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="111" y="152" rotation="0" clip_name="RopeRings"/> <Object type="points_ghost" power="500" x="100" y="123" rotation="0" clip_name="PointsGhost500"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="595" y="167" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="64" y="157" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="44.95" height="42.55" type="frontground" x="96" y="403" rotation="0" clip_name="flower_3"/> <Object scaleX="1" scaleY="1" width="27.55" height="35.7" type="frontground" x="404" y="406" rotation="0" clip_name="flower_0"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="583" y="427" rotation="0" clip_name="herb"/> <Object type="sun" x="68" y="68" rotation="0" clip_name="States.PlayState::Sun"/> <Object type="vulture" inverted="true" x="590" y="140" rotation="0" clip_name="InvertedVultureHere"/> <Object type="cloud" x="175" y="16" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="406" y="29" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="626" y="46" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="-101" y="33" rotation="0" clip_name="Cloud8"/> <Object type="cloud" x="541" y="86" rotation="0" clip_name="Cloud9"/> <Object x="0" y="0" rotation="0" clip_name="TeleportHint"/> </Level> ; private static const LEVEL_7:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="-1" y="357" rotation="0" clip_name="Back2"/> <Object scaleX="1" scaleY="1" type="background" x="344" y="286" rotation="0" clip_name="tree_3"/> <Object type="gibbet_obliquely" inverted="true" x="365" y="357" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object scaleX="1" scaleY="1" type="background" x="83" y="369" rotation="0" clip_name="tree_2"/> <Object type="shooting_point" x="80" y="388" rotation="50.00074768066406" clip_name="BowPoint"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="328" y="345" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="324" y="227" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="false" x="383" y="390" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="349" y="339" rotation="0" clip_name="GibbetStick"/> <Object type="gibbet_obliquely" inverted="true" x="364" y="239" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="383" y="274" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="349" y="222" rotation="0" clip_name="GibbetStick"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="316" y="216" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="320" y="334" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="382" y="222" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="382" y="339" rotation="0" clip_name="Screw"/> <Object type="sun" x="563" y="76" rotation="0" clip_name="States.PlayState::Sun"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="298" y="153" rotation="104.00003051757813" clip_name="ArrowGhost1"/> <Object type="highlight" size="150" x="296" y="153" rotation="0" clip_name="ArrowGhostHint"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="558" y="264" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="559" y="243" rotation="0" clip_name="Stone2"/> <Object x="0" y="0" rotation="0" clip_name="ArrowGhostHint"/> <Object type="points_ghost" power="500" x="560" y="193" rotation="0" clip_name="PointsGhost500"/> <Object scaleX="1" scaleY="1" width="44.95" height="42.55" type="frontground" x="259" y="402" rotation="0" clip_name="flower_3"/> <Object type="cloud" x="602" y="86" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="193" y="42" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="395" y="34" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="57" y="63" rotation="0" clip_name="Cloud3"/> <Object type="cloud" x="-138" y="32" rotation="0" clip_name="Cloud1"/> </Level> ; private static const LEVEL_8:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="OvercastSky"/> <Object scaleX="1" scaleY="1" type="background" x="0" y="344" rotation="0" clip_name="Back4"/> <Object type="dynamic_box" x="345" y="431" rotation="0" clip_name="Box"/> <Object type="shooting_point" x="568" y="366" rotation="-79.99894714355469" clip_name="BowPoint"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="125" y="345" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="136" y="227" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet_obliquely" inverted="false" x="100" y="355" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="81" y="390" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="117" y="339" rotation="0" clip_name="GibbetStick"/> <Object type="gibbet_obliquely" inverted="false" x="100" y="240" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="81" y="274" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="117" y="222" rotation="0" clip_name="GibbetStick"/> <Object scaleX="1" scaleY="1" type="background" x="189" y="235" rotation="0" clip_name="tree_10"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="128" y="216" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="117" y="334" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="81" y="222" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="81" y="339" rotation="0" clip_name="Screw"/> <Object type="cloud" x="418" y="49" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="556" y="24" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="180" y="22" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="-111" y="10" rotation="0" clip_name="Cloud4"/> <Object type="cloud" x="687" y="90" rotation="0" clip_name="Cloud9"/> <Object type="dynamic_box" x="345" y="406" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="345" y="381" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="345" y="356" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="345" y="330" rotation="0" clip_name="Box"/> <Object type="points_ghost" power="300" x="87" y="185" rotation="0" clip_name="PointsGhost300"/> <Object scaleX="1" scaleY="1" type="background" x="415" y="384" rotation="0" clip_name="BgStones"/> <Object type="ammo_ghost" power="3" x="406" y="418" rotation="0" clip_name="AmmoGhost3"/> <Object type="ammo_ghost" power="3" x="479" y="419" rotation="0" clip_name="AmmoGhost3"/> </Level> ; private static const LEVEL_9:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="-1" y="357" rotation="0" clip_name="Back2"/> <Object type="static_box" is_stone="true" x="231" y="362" rotation="0" clip_name="ComposedStone2"/> <Object type="static_box" is_stone="true" x="331" y="361" rotation="0" clip_name="ComposedStone2"/> <Object type="shooting_point" x="33" y="417" rotation="20.000656127929688" clip_name="BowPoint"/> <Object type="gibbet_obliquely" inverted="true" x="577" y="354" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="596" y="388" rotation="0" clip_name="GibbetColumn"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="541" y="343" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="false" x="562" y="337" rotation="0" clip_name="GibbetStick"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="533" y="332" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="595" y="337" rotation="0" clip_name="Screw"/> <Object type="static_box" is_stone="true" x="129" y="362" rotation="0" clip_name="ComposedStone2"/> <Object type="static_box" is_stone="true" x="434" y="361" rotation="0" clip_name="ComposedStone2"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="sun" x="568" y="89" rotation="0" clip_name="States.PlayState::Sun"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="180" y="422" rotation="4.9994354248046875" clip_name="ArrowGhost1"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="281" y="423" rotation="5.00030517578125" clip_name="ArrowGhost1"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="384" y="423" rotation="3.9993743896484375" clip_name="ArrowGhost1"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="484" y="377" rotation="49.99922180175781" clip_name="ArrowGhost1"/> <Object type="points_ghost" power="300" x="180" y="373" rotation="0" clip_name="PointsGhost300"/> <Object type="points_ghost" power="300" x="180" y="322" rotation="0" clip_name="PointsGhost300"/> <Object type="points_ghost" power="500" x="280" y="373" rotation="0" clip_name="PointsGhost500"/> <Object type="points_ghost" power="500" x="280" y="323" rotation="0" clip_name="PointsGhost500"/> <Object type="points_ghost" power="1000" x="381" y="373" rotation="0" clip_name="PointsGhost1000"/> <Object type="points_ghost" power="1000" x="381" y="324" rotation="0" clip_name="PointsGhost1000"/> <Object type="points_ghost" power="1000" x="557" y="305" rotation="0" clip_name="PointsGhost1000"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="511" y="426" rotation="0" clip_name="herb"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="48" y="426" rotation="0" clip_name="herb"/> <Object type="cloud" x="193" y="14" rotation="0" clip_name="Cloud9"/> <Object type="cloud" x="74" y="63" rotation="0" clip_name="Cloud8"/> <Object type="cloud" x="326" y="10" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="409" y="50" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="613" y="10" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="-181" y="16" rotation="0" clip_name="Cloud4"/> </Level> ; private static const LEVEL_30:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="-14" y="285" rotation="0" clip_name="BonusGameBack"/> <Object type="shooting_point" x="323" y="279" rotation="0" clip_name="BowPoint"/> <Object type="gibbet" pers_id="1" path_to_hang="RIGHT_LOWER_LEG" connect_legs="true" chains_count="7" x="47" y="364" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="443" y="198" rotation="0" clip_name="Brick"/> <Object type="static_box" is_stone="true" x="200" y="198" rotation="0" clip_name="Brick"/> <Object type="static_box" is_stone="true" x="47" y="344" rotation="0" clip_name="Stone0"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="5" x="50" y="230" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="49" y="210" rotation="0" clip_name="Stone1"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="50" y="90" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="50" y="70" rotation="0" clip_name="Stone2"/> <Object type="gibbet" pers_id="4" path_to_hang="LEFT_LOWER_LEG" connect_legs="true" chains_count="7" x="589" y="359" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="590" y="339" rotation="0" clip_name="Stone3"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="5" x="590" y="226" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="590" y="206" rotation="0" clip_name="Stone1"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="589" y="85" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="590" y="65" rotation="0" clip_name="Stone0"/> <Object type="points_ghost" power="500" x="198" y="147" rotation="0" clip_name="PointsGhost500"/> <Object type="points_ghost" power="500" x="440" y="147" rotation="0" clip_name="PointsGhost500"/> <Object type="sun" x="320" y="82" rotation="0" clip_name="States.PlayState::Sun"/> <Object type="cloud" x="-90" y="22" rotation="0" clip_name="Cloud0"/> <Object type="cloud" x="615" y="49" rotation="0" clip_name="Cloud1"/> <Object type="cloud" x="391" y="22" rotation="0" clip_name="Cloud8"/> <Object type="cloud" x="150" y="61" rotation="0" clip_name="Cloud7"/> </Level> ; private static const LEVEL_31:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="-4" y="331" rotation="0" clip_name="Back1"/> <Object type="static_box" is_stone="true" x="117" y="324" rotation="0" clip_name="ComposedStone55"/> <Object type="static_box" is_stone="true" x="404" y="325" rotation="0" clip_name="ComposedStone55"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="561" y="317" rotation="0" clip_name="HangerPoint"/> <Object type="shooting_point" x="48" y="416" rotation="14.999740600585938" clip_name="BowPoint"/> <Object type="teleport_ghost" x="189" y="411" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object type="teleport_ghost" x="326" y="411" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object type="teleport_ghost" x="483" y="411" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object type="static_box" is_stone="true" x="256" y="367" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="256" y="332" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="256" y="298" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="256" y="264" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="256" y="229" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="256" y="195" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="256" y="160" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="256" y="126" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="528" y="297" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="528" y="263" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="528" y="229" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="528" y="194" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="528" y="160" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="528" y="125" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="528" y="91" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="256" y="91" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="256" y="57" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="290" y="57" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="324" y="57" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="358" y="57" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="391" y="57" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="425" y="57" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="460" y="57" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="494" y="57" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="528" y="57" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="18" y="56" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="52" y="56" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="85" y="56" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="119" y="56" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="154" y="56" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="187" y="56" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="222" y="56" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="562" y="297" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="595" y="297" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="630" y="297" rotation="0" clip_name="Stone2"/> <Object type="points_ghost" power="1000" x="592" y="246" rotation="0" clip_name="PointsGhost1000"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="761" y="414" rotation="-9.999359130859375" clip_name="ArrowGhost1"/> <Object type="points_ghost" power="1000" x="592" y="200" rotation="0" clip_name="PointsGhost1000"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="235" y="427" rotation="0" clip_name="herb"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="576" y="426" rotation="0" clip_name="herb"/> </Level> ; private static const LEVEL_32:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="OvercastSky"/> <Object type="cloud" x="-42" y="29" rotation="0" clip_name="Cloud5"/> <Object scaleX="1" scaleY="1" type="background" x="-1" y="344" rotation="0" clip_name="Back4"/> <Object scaleX="1" scaleY="1" type="background" x="413" y="268" rotation="0" clip_name="tree_9"/> <Object scaleX="1" scaleY="1" type="background" x="58" y="233" rotation="0" clip_name="tree_10"/> <Object type="static_box" is_stone="false" x="29" y="413" rotation="0" clip_name="GibbetColumn"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="224" y="87" rotation="0" clip_name="HangerPoint"/> <Object type="shooting_point" x="566" y="373" rotation="-44.99955749511719" clip_name="BowPoint"/> <Object type="cloud" x="241" y="50" rotation="0" clip_name="Cloud4"/> <Object type="gibbet" pers_id="3" path_to_hang="LEFT_LOWER_LEG" connect_legs="true" chains_count="7" x="301" y="87" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="4" path_to_hang="LEFT_LOWER_LEG" connect_legs="true" chains_count="8" x="380" y="87" rotation="0" clip_name="HangerPoint" cloud_name="UseYouForceLuke" cloud_prob="0.4"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="89" y="188" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="91" y="322" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet_obliquely" inverted="false" x="47" y="333" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="64" y="316" rotation="0" clip_name="GibbetStick"/> <Object type="gibbet_obliquely" inverted="false" x="47" y="199" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="64" y="183" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="false" x="29" y="233" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="29" y="354" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="242" y="82" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="false" x="329" y="82" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="false" x="414" y="82" rotation="0" clip_name="GibbetStick"/> <Object type="cloud" x="510" y="14" rotation="0" clip_name="Cloud0"/> <Object type="static_box" is_stone="false" x="502" y="82" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="false" x="570" y="82" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="false" x="595" y="82" rotation="0" clip_name="GibbetStick"/> <Object type="teleport_ghost" x="48" y="121" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="81" y="177" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="83" y="311" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="216" y="77" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="293" y="77" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="372" y="77" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="28" y="316" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="28" y="183" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" type="background" x="230" y="384" rotation="0" clip_name="BgStones"/> <Object scaleX="1" scaleY="1" width="26.8" height="37.35" type="frontground" x="586" y="402" rotation="0" clip_name="flower_6"/> <Object type="cloud" x="700" y="71" rotation="0" clip_name="Cloud1"/> <Object type="cloud" x="-189" y="64" rotation="0" clip_name="Cloud6"/> </Level> ; private static const LEVEL_34:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="-3" y="328" rotation="0" clip_name="Back1"/> <Object type="shooting_point" x="494" y="138" rotation="-109.9998779296875" clip_name="BowPoint"/> <Object scaleX="1" scaleY="1" type="background" x="499" y="351" rotation="0" clip_name="tree_1"/> <Object scaleX="1" scaleY="1" type="background" x="295" y="253" rotation="0" clip_name="tree_8"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="9" x="439" y="313" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="439" y="293" rotation="0" clip_name="Stone1"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="60" y="349" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="59" y="328" rotation="0" clip_name="Stone1"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="262" y="179" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="263" y="159" rotation="0" clip_name="Stone1"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="55" y="179" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="56" y="159" rotation="0" clip_name="Stone1"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="9" x="588" y="270" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="588" y="249" rotation="0" clip_name="Stone3"/> <Object type="hedhehog_ghost" speed="90" charge="3" x="524" y="340" rotation="40.000274658203125" clip_name="ArrowGhost3"/> <Object type="cow" inverted="false" x="150" y="320" rotation="0" clip_name="CowHere"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="48" y="426" rotation="0" clip_name="herb"/> <Object type="cloud" x="576" y="63" rotation="0" clip_name="Cloud8"/> <Object type="cloud" x="336" y="47" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="178" y="28" rotation="0" clip_name="Cloud1"/> <Object type="cloud" x="-184" y="59" rotation="0" clip_name="Cloud0"/> <Object type="sun" x="73" y="72" rotation="0" clip_name="States.PlayState::Sun"/> </Level> ; private static const LEVEL_35:XML = null; private static const LEVEL_36:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="-1" y="357" rotation="0" clip_name="Back2"/> <Object scaleX="1" scaleY="1" type="background" x="56" y="286" rotation="0" clip_name="tree_3"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="shooting_point" x="50" y="407" rotation="59.99946594238281" clip_name="BowPoint"/> <Object type="cloud" x="586" y="21" rotation="0" clip_name="Cloud8"/> <Object type="gibbet_obliquely" inverted="true" x="375" y="349" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="393" y="384" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="359" y="332" rotation="0" clip_name="GibbetStick"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="331" y="327" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="393" y="332" rotation="0" clip_name="Screw"/> <Object type="cloud" x="696" y="95" rotation="0" clip_name="Cloud9"/> <Object type="cloud" x="435" y="17" rotation="0" clip_name="Cloud6"/> <Object type="sun" x="77" y="78" rotation="0" clip_name="States.PlayState::Sun"/> <Object type="cloud" x="-11" y="5" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="-152" y="55" rotation="0" clip_name="Cloud3"/> <Object type="cloud" x="153" y="104" rotation="0" clip_name="Cloud2"/> <Object type="cloud" x="236" y="11" rotation="0" clip_name="Cloud1"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="338" y="338" rotation="0" clip_name="HangerPoint"/> <Object type="ammo_ghost" power="10" x="584" y="414" rotation="0" clip_name="AmmoGhost10"/> <Object type="tnt_barrel" x="522" y="374" rotation="0" clip_name="States.PlayState::TNTBarrel"/> <Object type="tnt_barrel" x="522" y="332" rotation="0" clip_name="States.PlayState::TNTBarrel"/> <Object type="dynamic_box" x="523" y="434" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="523" y="409" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="523" y="299" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="523" y="274" rotation="0" clip_name="Box"/> <Object type="static_box" is_stone="true" x="593" y="99" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="454" y="99" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="325" y="101" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="197" y="101" rotation="0" clip_name="Stone2"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="197" y="122" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="325" y="122" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="454" y="119" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="594" y="120" rotation="0" clip_name="HangerPoint"/> <Object type="points_ghost" power="300" x="197" y="51" rotation="0" clip_name="PointsGhost300"/> <Object type="points_ghost" power="500" x="324" y="51" rotation="0" clip_name="PointsGhost500"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="435" y="425" rotation="0" clip_name="herb"/> <Object type="vulture" inverted="true" x="463" y="64" rotation="0" clip_name="InvertedVultureHere"/> </Level> ; private static const LEVEL_37:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="-2" y="352" rotation="0" clip_name="Back3"/> <Object type="static_box" is_stone="false" x="626" y="385" rotation="0" clip_name="GibbetColumn"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="574" y="266" rotation="0" clip_name="HangerPoint"/> <Object type="shooting_point" x="116" y="336" rotation="59.99946594238281" clip_name="BowPoint"/> <Object type="gibbet" pers_id="3" path_to_hang="RIGHT_LOWER_LEG" connect_legs="true" chains_count="7" x="532" y="197" rotation="0" clip_name="HangerPoint" cloud_name="ILikeToHangCloud" cloud_prob="0.3"/> <Object type="gibbet_obliquely" inverted="true" x="608" y="209" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="gibbet_obliquely" inverted="true" x="609" y="279" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="626" y="264" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="626" y="146" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="592" y="192" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="false" x="555" y="192" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="false" x="591" y="263" rotation="0" clip_name="GibbetStick"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="571" y="77" rotation="0" clip_name="HangerPoint"/> <Object type="cloud" x="519" y="35" rotation="0" clip_name="Cloud8"/> <Object type="gibbet_obliquely" inverted="true" x="608" y="91" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="626" y="125" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="592" y="73" rotation="0" clip_name="GibbetStick"/> <Object scaleX="1" scaleY="1" type="background" x="302" y="192" rotation="0" clip_name="Mill"/> <Object type="rotor" speed="55" scaleX="0.8499908447265625" scaleY="0.8499908447265625" x="359" y="238" rotation="0" clip_name="MillFan"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="564" y="68" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="525" y="186" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="567" y="258" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="626" y="262" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="626" y="192" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="626" y="73" rotation="0" clip_name="Screw"/> <Object type="sun" x="107" y="76" rotation="0" clip_name="States.PlayState::Sun"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="477" y="427" rotation="0" clip_name="herb"/> <Object scaleX="1" scaleY="1" type="background" x="18" y="368" rotation="0" clip_name="tree_2"/> <Object type="cloud" x="696" y="95" rotation="0" clip_name="Cloud9"/> <Object type="cloud" x="385" y="92" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="-11" y="5" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="-152" y="55" rotation="0" clip_name="Cloud3"/> <Object type="cloud" x="153" y="104" rotation="0" clip_name="Cloud2"/> <Object type="cloud" x="236" y="11" rotation="0" clip_name="Cloud1"/> <Object type="cow" inverted="true" x="379" y="321" rotation="0" clip_name="InvertedCowHere"/> </Level> ; private static const LEVEL_38:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="OvercastSky"/> <Object type="gibbet_obliquely" inverted="false" x="391" y="236" rotation="0" clip_name="GibbetObliquely"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="10" x="62" y="271" rotation="0" clip_name="HangerPoint"/> <Object scaleX="1" scaleY="1" type="background" x="0" y="337" rotation="0" clip_name="Back4"/> <Object scaleX="1" scaleY="1" type="background" x="112" y="234" rotation="0" clip_name="tree_10"/> <Object type="shooting_point" x="590" y="417" rotation="-45" clip_name="BowPoint"/> <Object type="hedhehog_ghost" speed="50" charge="3" x="225" y="200" rotation="0" clip_name="ArrowGhost3"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="9" x="135" y="237" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="128" y="216" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="94" y="216" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="60" y="216" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="60" y="250" rotation="0" clip_name="Stone3"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="gibbet_obliquely" inverted="true" x="348" y="236" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="370" y="269" rotation="0" clip_name="GibbetColumn"/> <Object type="gibbet_ground" x="371" y="360" rotation="0" clip_name="GibbetGround"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="8" x="308" y="223" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="false" x="340" y="219" rotation="0" clip_name="GibbetStick"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="432" y="223" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="false" x="400" y="219" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="true" x="518" y="328" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="518" y="362" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="518" y="260" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="518" y="294" rotation="0" clip_name="Stone3"/> <Object type="hedhehog_ghost" speed="-70" charge="3" x="583" y="190" rotation="0" clip_name="ArrowGhost3"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="424" y="214" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="300" y="214" rotation="0" clip_name="RopeRings"/> <Object type="teleport_ghost" x="225" y="410" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="369" y="219" rotation="0" clip_name="Screw"/> <Object type="points_ghost" power="1000" x="337" y="187" rotation="0" clip_name="PointsGhost1000"/> <Object type="points_ghost" power="1000" x="404" y="187" rotation="0" clip_name="PointsGhost1000"/> <Object scaleX="1" scaleY="1" width="50.85" height="25.2" type="frontground" x="289" y="420" rotation="0" clip_name="flower_5"/> <Object scaleX="1" scaleY="1" width="26.8" height="37.35" type="frontground" x="465" y="404" rotation="0" clip_name="flower_6"/> <Object type="cloud" x="-137" y="23" rotation="0" clip_name="Cloud0"/> <Object type="cloud" x="78" y="12" rotation="0" clip_name="Cloud1"/> <Object type="cloud" x="275" y="72" rotation="0" clip_name="Cloud2"/> <Object type="cloud" x="396" y="19" rotation="0" clip_name="Cloud3"/> <Object type="cloud" x="560" y="34" rotation="0" clip_name="Cloud4"/> <Object type="vulture" inverted="true" x="52" y="179" rotation="0" clip_name="InvertedVultureHere"/> </Level> ; private static const LEVEL_39:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object type="gibbet_obliquely" inverted="false" x="76" y="222" rotation="0" clip_name="GibbetObliquely"/> <Object scaleX="1" scaleY="1" type="background" x="-3" y="351" rotation="0" clip_name="Back3"/> <Object type="shooting_point" x="551" y="391" rotation="-44.99955749511719" clip_name="BowPoint"/> <Object type="static_box" is_stone="false" x="58" y="420" rotation="0" clip_name="GibbetColumn"/> <Object type="gibbet_obliquely" inverted="false" x="76" y="347" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="58" y="301" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="92" y="331" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="false" x="58" y="181" rotation="0" clip_name="GibbetColumn"/> <Object type="gibbet_obliquely" inverted="false" x="76" y="109" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="58" y="141" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="93" y="204" rotation="0" clip_name="GibbetStick"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="106" y="210" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="false" x="92" y="91" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="false" x="182" y="331" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="false" x="268" y="331" rotation="0" clip_name="GibbetStick"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="106" y="95" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="106" y="337" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="183" y="337" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="260" y="337" rotation="0" clip_name="HangerPoint"/> <Object scaleX="0.8947296142578125" scaleY="0.8947296142578125" type="background" x="518" y="273" rotation="0" clip_name="tree_8"/> <Object scaleX="0.7641754150390625" scaleY="0.7641754150390625" type="background" x="285" y="373" rotation="0" clip_name="tree_1"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object scaleX="0.786407470703125" scaleY="0.786407470703125" width="22.3" height="28.75" type="frontground" x="133" y="408" rotation="0" clip_name="flower_4"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="252" y="326" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="175" y="326" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="98" y="326" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="98" y="199" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="98" y="86" rotation="0" clip_name="RopeRings"/> <Object type="static_box" is_stone="true" x="438" y="265" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="472" y="265" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="506" y="265" rotation="0" clip_name="Stone2"/> <Object type="sun" x="567" y="73" rotation="0" clip_name="States.PlayState::Sun"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="57" y="331" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="57" y="204" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="58" y="91" rotation="0" clip_name="Screw"/> <Object type="ammo_ghost" power="3" x="458" y="222" rotation="0" clip_name="AmmoGhost3"/> <Object scaleX="0.7081451416015625" scaleY="0.7081451416015625" width="19.5" height="25.3" type="frontground" x="457" y="417" rotation="0" clip_name="flower_0"/> <Object type="cloud" x="201" y="19" rotation="0" clip_name="Cloud0"/> <Object type="cloud" x="387" y="114" rotation="0" clip_name="Cloud9"/> <Object type="cloud" x="30" y="18" rotation="0" clip_name="Cloud8"/> <Object type="cloud" x="407" y="14" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="113" y="109" rotation="0" clip_name="Cloud2"/> <Object type="cloud" x="472" y="64" rotation="0" clip_name="Cloud1"/> </Level> ; private static const LEVEL_33:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="-9" y="280" rotation="0" clip_name="BonusGameBack"/> <Object type="gibbet_obliquely" inverted="true" x="560" y="184" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="579" y="218" rotation="0" clip_name="GibbetColumn"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="524" y="173" rotation="0" clip_name="HangerPoint"/> <Object type="shooting_point" x="452" y="392" rotation="-19.999099731445313" clip_name="BowPoint"/> <Object type="dynamic_box" x="341" y="431" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="341" y="406" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="341" y="381" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="341" y="356" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="341" y="331" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="341" y="306" rotation="0" clip_name="Box"/> <Object type="gibbet_ground" x="539" y="312" rotation="0" clip_name="GibbetGround"/> <Object type="static_box" is_stone="false" x="545" y="167" rotation="0" clip_name="GibbetStick"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="578" y="167" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="516" y="162" rotation="0" clip_name="RopeRings"/> <Object type="static_box" is_stone="true" x="350" y="281" rotation="0" clip_name="Brick"/> <Object type="tnt_barrel" x="283" y="369" rotation="0" clip_name="States.PlayState::TNTBarrel"/> <Object type="static_box" is_stone="true" x="333" y="459" rotation="0" clip_name="Brick"/> <Object type="static_box" is_stone="true" x="281" y="404" rotation="0" clip_name="Brick"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="192" y="313" rotation="49.999725341796875" clip_name="ArrowGhost1"/> <Object type="gibbet_obliquely" inverted="false" x="80" y="293" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="61" y="326" rotation="0" clip_name="GibbetColumn"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="109" y="280" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet_ground" x="89" y="420" rotation="0" clip_name="GibbetGround"/> <Object type="static_box" is_stone="false" x="95" y="275" rotation="0" clip_name="GibbetStick"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="102" y="269" rotation="0" clip_name="RopeRings"/> <Object type="gibbet_obliquely" inverted="false" x="79" y="179" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="61" y="211" rotation="0" clip_name="GibbetColumn"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="61" y="275" rotation="0" clip_name="Screw"/> <Object type="sun" x="76" y="85" rotation="0" clip_name="States.PlayState::Sun"/> <Object type="points_ghost" power="500" x="550" y="133" rotation="0" clip_name="PointsGhost500"/> <Object type="cloud" x="548" y="54" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="310" y="109" rotation="0" clip_name="Cloud8"/> <Object type="cloud" x="99" y="27" rotation="0" clip_name="Cloud9"/> <Object type="cloud" x="123" y="67" rotation="0" clip_name="Cloud1"/> <Object type="cloud" x="412" y="29" rotation="0" clip_name="Cloud2"/> <Object type="cloud" x="-187" y="44" rotation="0" clip_name="Cloud4"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="110" y="166" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="false" x="95" y="161" rotation="0" clip_name="GibbetStick"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="102" y="155" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="61" y="161" rotation="0" clip_name="Screw"/> </Level> ; private static const LEVEL_44:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object type="shooting_point" x="613" y="99" rotation="-119.9998779296875" clip_name="BowPoint"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="166" y="274" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="322" y="380" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="483" y="259" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="69" y="149" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="278" y="170" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="73" y="380" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="482" y="240" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="321" y="360" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="72" y="360" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="166" y="254" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="277" y="151" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="68" y="129" rotation="0" clip_name="Stone2"/> <Object scaleX="1" scaleY="1" type="background" x="-6" y="280" rotation="0" clip_name="BonusGameBack"/> <Object type="teleport_ghost" x="601" y="246" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object type="points_ghost" power="500" x="66" y="84" rotation="0" clip_name="PointsGhost500"/> <Object type="points_ghost" power="500" x="321" y="310" rotation="0" clip_name="PointsGhost500"/> <Object type="vulture" inverted="false" x="271" y="114" rotation="0" clip_name="VultureHere"/> <Object type="vulture" inverted="true" x="490" y="206" rotation="0" clip_name="InvertedVultureHere"/> <Object type="vulture" inverted="false" x="66" y="323" rotation="0" clip_name="VultureHere"/> <Object type="cloud" x="286" y="6" rotation="0" clip_name="Cloud0"/> <Object type="cloud" x="599" y="25" rotation="0" clip_name="Cloud1"/> <Object type="cloud" x="-114" y="6" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="99" y="64" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="504" y="93" rotation="0" clip_name="Cloud9"/> </Level> ; private static const LEVEL_42:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object type="sun" x="77" y="80" rotation="0" clip_name="States.PlayState::Sun"/> <Object scaleX="1" scaleY="1" type="background" x="-3" y="352" rotation="0" clip_name="Back3"/> <Object type="static_box" is_stone="true" x="84" y="427" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="84" y="392" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="84" y="358" rotation="0" clip_name="Stone2"/> <Object type="shooting_point" x="323" y="319" rotation="0" clip_name="BowPoint"/> <Object scaleX="1" scaleY="1" type="background" x="496" y="254" rotation="0" clip_name="tree_8"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="static_box" is_stone="false" x="240" y="118" rotation="45" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="324" y="-23" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="281" y="76" rotation="45" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="411" y="120" rotation="-45" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="363" y="72" rotation="-45" clip_name="GibbetColumn"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="206" y="161" rotation="0" clip_name="HangerPoint"/> <Object type="cloud" x="554" y="36" rotation="0" clip_name="Cloud2"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="261" y="106" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="383" y="103" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="443" y="161" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="187" y="426" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="187" y="392" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="187" y="358" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="471" y="426" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="471" y="392" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="471" y="358" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="471" y="323" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="471" y="289" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="471" y="255" rotation="0" clip_name="Stone1"/> <Object type="points_ghost" power="1000" x="589" y="408" rotation="0" clip_name="PointsGhost1000"/> <Object type="static_box" is_stone="true" x="153" y="358" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="118" y="358" rotation="0" clip_name="Stone2"/> <Object type="points_ghost" power="1000" x="32" y="414" rotation="0" clip_name="PointsGhost1000"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="324" y="34" rotation="0" clip_name="Screw"/> <Object scaleX="1.0000010787037903" scaleY="1.0000010787037903" width="18.9" height="18.9" type="frontground" x="444" y="145" rotation="45" clip_name="RopeRings"/> <Object scaleX="1.0000010787037903" scaleY="1.0000010787037903" width="18.9" height="18.9" type="frontground" x="385" y="87" rotation="45" clip_name="RopeRings"/> <Object scaleX="0.9999794995173527" scaleY="0.9999794995173527" width="18.9" height="18.9" type="frontground" x="194" y="156" rotation="-45" clip_name="RopeRings"/> <Object scaleX="0.9999794995173527" scaleY="0.9999794995173527" width="18.9" height="18.9" type="frontground" x="249" y="100" rotation="-45" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="118" y="426" rotation="0" clip_name="herb"/> <Object type="cloud" x="383" y="43" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="106" y="17" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="-175" y="51" rotation="0" clip_name="Cloud4"/> <Object type="cloud" x="665" y="59" rotation="0" clip_name="Cloud1"/> </Level> ; private static const LEVEL_46:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="-1" y="357" rotation="0" clip_name="Back2"/> <Object type="shooting_point" x="81" y="408" rotation="40.00077819824219" clip_name="BowPoint"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="542" y="326" rotation="0" clip_name="HangerPoint"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object scaleX="1" scaleY="1" type="background" x="284" y="367" rotation="0" clip_name="tree_2"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="135" y="358" rotation="0" clip_name="ArrowGhost1"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="198" y="331" rotation="0" clip_name="ArrowGhost1"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="266" y="311" rotation="0" clip_name="ArrowGhost1"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="482" y="331" rotation="0" clip_name="ArrowGhost1"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="343" y="307" rotation="0" clip_name="ArrowGhost1"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="416" y="314" rotation="0" clip_name="ArrowGhost1"/> <Object type="points_ghost" power="300" x="131" y="127" rotation="0" clip_name="PointsGhost300"/> <Object type="points_ghost" power="500" x="192" y="181" rotation="0" clip_name="PointsGhost500"/> <Object type="points_ghost" power="1000" x="266" y="123" rotation="0" clip_name="PointsGhost1000"/> <Object type="points_ghost" power="300" x="340" y="175" rotation="0" clip_name="PointsGhost300"/> <Object type="points_ghost" power="500" x="415" y="127" rotation="0" clip_name="PointsGhost500"/> <Object type="points_ghost" power="1000" x="482" y="178" rotation="0" clip_name="PointsGhost1000"/> <Object type="static_box" is_stone="true" x="543" y="305" rotation="0" clip_name="Stone3"/> <Object type="points_ghost" power="500" x="605" y="398" rotation="0" clip_name="PointsGhost500"/> <Object type="sun" x="559" y="81" rotation="0" clip_name="States.PlayState::Sun"/> <Object type="vulture" inverted="true" x="550" y="270" rotation="0" clip_name="InvertedVultureHere"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="112" y="427" rotation="0" clip_name="herb"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="479" y="428" rotation="0" clip_name="herb"/> <Object type="cloud" x="-45" y="79" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="142" y="33" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="321" y="57" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="542" y="55" rotation="0" clip_name="Cloud4"/> </Level> ; private static const LEVEL_47:XML = null; private static const LEVEL_48:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="StarrySky"/> <Object type="gibbet_obliquely" inverted="false" x="100" y="78" rotation="0" clip_name="GibbetObliquely"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="129" y="65" rotation="0" clip_name="HangerPoint"/> <Object type="shooting_point" x="61" y="384" rotation="84.99969482421875" clip_name="BowPoint"/> <Object type="cloud" x="248" y="418" rotation="0" clip_name="Cloud0"/> <Object type="cloud" x="639" y="431" rotation="0" clip_name="Cloud3"/> <Object type="cloud" x="384" y="357" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="-127" y="374" rotation="0" clip_name="Cloud8"/> <Object type="cloud" x="73" y="433" rotation="0" clip_name="Cloud7"/> <Object type="static_box" is_stone="true" x="389" y="412" rotation="0" clip_name="ComposedStone96"/> <Object type="static_box" is_stone="true" x="252" y="338" rotation="0" clip_name="ComposedStone96"/> <Object type="static_box" is_stone="true" x="389" y="261" rotation="0" clip_name="ComposedStone96"/> <Object type="static_box" is_stone="false" x="82" y="111" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="true" x="252" y="186" rotation="0" clip_name="ComposedStone96"/> <Object type="static_box" is_stone="true" x="464" y="112" rotation="0" clip_name="ComposedStone96"/> <Object type="tnt_barrel" x="454" y="376" rotation="0" clip_name="States.PlayState::TNTBarrel"/> <Object type="tnt_barrel" x="222" y="300" rotation="0" clip_name="States.PlayState::TNTBarrel"/> <Object type="teleport_ghost" x="560" y="367" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object type="teleport_ghost" x="560" y="303" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object type="teleport_ghost" x="113" y="298" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object type="teleport_ghost" x="115" y="225" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object type="tnt_barrel" x="453" y="225" rotation="0" clip_name="States.PlayState::TNTBarrel"/> <Object type="teleport_ghost" x="557" y="217" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object type="teleport_ghost" x="557" y="153" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object type="tnt_barrel" x="265" y="149" rotation="0" clip_name="States.PlayState::TNTBarrel"/> <Object type="teleport_ghost" x="190" y="142" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object type="static_box" is_stone="false" x="117" y="60" rotation="0" clip_name="GibbetStick"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="122" y="55" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="82" y="60" rotation="0" clip_name="Screw"/> <Object type="tnt_barrel" x="222" y="375" rotation="0" clip_name="States.PlayState::TNTBarrel"/> </Level> ; private static const LEVEL_43:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="OvercastSky"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="249" y="151" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="562" y="341" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet_obliquely" inverted="true" x="602" y="353" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="621" y="388" rotation="0" clip_name="GibbetColumn"/> <Object scaleX="1" scaleY="1" type="background" x="0" y="337" rotation="0" clip_name="Back4"/> <Object scaleX="0.8017730712890625" scaleY="0.8017730712890625" type="background" x="8" y="302" rotation="0" clip_name="tree_9"/> <Object type="shooting_point" x="148" y="353" rotation="59.99946594238281" clip_name="BowPoint"/> <Object type="static_box" is_stone="false" x="585" y="335" rotation="0" clip_name="GibbetStick"/> <Object scaleX="1" scaleY="1" type="background" x="318" y="382" rotation="0" clip_name="BgStones"/> <Object scaleX="1" scaleY="1" width="26.8" height="37.35" type="frontground" x="451" y="401" rotation="0" clip_name="flower_6"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="hedhehog_ghost" speed="-40" charge="3" x="497" y="285" rotation="0" clip_name="ArrowGhost3"/> <Object type="gibbet_obliquely" inverted="true" x="288" y="162" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="306" y="197" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="271" y="144" rotation="0" clip_name="GibbetStick"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="554" y="330" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="241" y="139" rotation="0" clip_name="RopeRings"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="330" y="294" rotation="0" clip_name="HangerPoint"/> <Object type="cloud" x="325" y="23" rotation="0" clip_name="Cloud4"/> <Object type="cloud" x="206" y="89" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="40" y="38" rotation="0" clip_name="Cloud8"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="70" y="145" rotation="89.9947509765625" clip_name="ArrowGhost1"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="305" y="145" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="621" y="335" rotation="0" clip_name="Screw"/> <Object type="static_box" is_stone="true" x="170" y="274" rotation="0" clip_name="ComposedStone99"/> <Object type="cloud" x="630" y="61" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="-196" y="32" rotation="0" clip_name="Cloud0"/> </Level> ; private static const LEVEL_45:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="OvercastSky"/> <Object scaleX="1" scaleY="1" type="background" x="-1" y="346" rotation="0" clip_name="Back4"/> <Object scaleX="1" scaleY="1" type="background" x="375" y="268" rotation="0" clip_name="tree_9"/> <Object type="shooting_point" x="551" y="323" rotation="-49.999725341796875" clip_name="BowPoint"/> <Object type="gibbet_obliquely" inverted="false" x="71" y="336" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="53" y="387" rotation="0" clip_name="GibbetColumn"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="107" y="324" rotation="0" clip_name="HangerPoint" cloud_name="HeadShotCloud" cloud_prob="0.3"/> <Object type="static_box" is_stone="false" x="53" y="270" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="87" y="320" rotation="0" clip_name="GibbetStick"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="105" y="149" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="false" x="251" y="395" rotation="0" clip_name="GibbetColumn"/> <Object type="gibbet_obliquely" inverted="false" x="269" y="345" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="251" y="378" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="285" y="327" rotation="0" clip_name="GibbetStick"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="306" y="332" rotation="0" clip_name="HangerPoint"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="gibbet_obliquely" inverted="false" x="71" y="162" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="53" y="196" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="88" y="145" rotation="0" clip_name="GibbetStick"/> <Object type="ammo_ghost" power="3" x="308" y="144" rotation="0" clip_name="AmmoGhost3"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="605" y="117" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="605" y="97" rotation="0" clip_name="Stone0"/> <Object type="vulture" inverted="false" x="58" y="116" rotation="0" clip_name="VultureHere"/> <Object scaleX="1" scaleY="1" type="background" x="109" y="384" rotation="0" clip_name="BgStones"/> <Object scaleX="1" scaleY="1" width="26.8" height="37.35" type="frontground" x="564" y="404" rotation="0" clip_name="flower_6"/> <Object type="cloud" x="305" y="69" rotation="0" clip_name="Cloud9"/> <Object type="cloud" x="379" y="23" rotation="0" clip_name="Cloud8"/> <Object type="cloud" x="121" y="56" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="-94" y="7" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="584" y="31" rotation="0" clip_name="Cloud1"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="251" y="327" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="52" y="320" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="52" y="144" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="299" y="322" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="100" y="314" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="97" y="139" rotation="0" clip_name="RopeRings"/> </Level> ; private static const LEVEL_49:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="StarrySky"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="89" y="81" rotation="0" clip_name="HangerPoint"/> <Object type="shooting_point" x="602" y="391" rotation="-60.00077819824219" clip_name="BowPoint"/> <Object type="cloud" x="241" y="411" rotation="0" clip_name="Cloud0"/> <Object type="cloud" x="639" y="431" rotation="0" clip_name="Cloud3"/> <Object type="cloud" x="384" y="357" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="-127" y="374" rotation="0" clip_name="Cloud8"/> <Object type="cloud" x="73" y="433" rotation="0" clip_name="Cloud7"/> <Object type="static_box" is_stone="true" x="89" y="63" rotation="0" clip_name="Brick"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="485" y="349" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="485" y="330" rotation="0" clip_name="Brick"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="280" y="214" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="280" y="196" rotation="0" clip_name="Brick"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="188" y="142" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="188" y="124" rotation="0" clip_name="Brick"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="379" y="274" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="379" y="256" rotation="0" clip_name="Brick"/> <Object type="points_ghost" power="300" x="485" y="278" rotation="0" clip_name="PointsGhost300"/> <Object type="points_ghost" power="500" x="379" y="204" rotation="0" clip_name="PointsGhost500"/> <Object type="points_ghost" power="1000" x="281" y="148" rotation="0" clip_name="PointsGhost1000"/> <Object type="points_ghost" power="300" x="187" y="74" rotation="0" clip_name="PointsGhost300"/> </Level> ; private static const LEVEL_41:XML = null; private static const LEVEL_50:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="StarrySky"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="287" y="198" rotation="0" clip_name="HangerPoint" cloud_name="TryToShotMyLegsToShakeMeCloud" cloud_prob="1"/> <Object type="shooting_point" x="71" y="321" rotation="59.99946594238281" clip_name="BowPoint"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="393" y="242" rotation="-60.0001220703125" clip_name="ArrowGhost1"/> <Object type="static_box" is_stone="true" x="254" y="180" rotation="0" clip_name="BrickNoRight"/> <Object type="static_box" is_stone="true" x="304" y="180" rotation="0" clip_name="BrickNoRightNoLeft"/> <Object type="static_box" is_stone="true" x="354" y="180" rotation="0" clip_name="BrickNoRightNoLeft"/> <Object type="static_box" is_stone="true" x="405" y="180" rotation="0" clip_name="BrickNoRightNoLeft"/> <Object type="static_box" is_stone="true" x="456" y="180" rotation="0" clip_name="BrickNoLeft"/> <Object type="static_box" is_stone="true" x="203" y="210" rotation="0" clip_name="Brick"/> <Object type="static_box" is_stone="true" x="203" y="239" rotation="0" clip_name="Brick"/> <Object type="cloud" x="564" y="413" rotation="0" clip_name="Cloud0"/> <Object type="cloud" x="343" y="390" rotation="0" clip_name="Cloud3"/> <Object type="cloud" x="164" y="343" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="-238" y="401" rotation="0" clip_name="Cloud8"/> <Object type="cloud" x="73" y="433" rotation="0" clip_name="Cloud7"/> <Object type="ammo_ghost" power="3" x="271" y="132" rotation="0" clip_name="AmmoGhost3"/> <Object type="ammo_ghost" power="5" x="357" y="131" rotation="0" clip_name="AmmoGhost5"/> <Object type="points_ghost" power="1000" x="443" y="131" rotation="0" clip_name="PointsGhost1000"/> </Level> ; private static const LEVEL_51:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="StarrySky"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="519" y="297" rotation="0" clip_name="HangerPoint" cloud_name="TakeAdditionArrows" cloud_prob="1"/> <Object type="shooting_point" x="307" y="295" rotation="59.99946594238281" clip_name="BowPoint"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="114" y="297" rotation="0" clip_name="HangerPoint" cloud_name="TakeAdditionArrows" cloud_prob="1"/> <Object type="gibbet_obliquely" inverted="false" x="85" y="308" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="67" y="343" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="100" y="292" rotation="0" clip_name="GibbetStick"/> <Object type="gibbet_obliquely" inverted="true" x="552" y="309" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="570" y="344" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="536" y="292" rotation="0" clip_name="GibbetStick"/> <Object type="gibbet_ground" x="98" y="434" rotation="0" clip_name="GibbetGround"/> <Object type="gibbet_ground" x="527" y="437" rotation="0" clip_name="GibbetGround"/> <Object type="ammo_ghost" power="10" x="685" y="28" rotation="0" clip_name="AmmoGhost10"/> <Object type="highlight" size="150" x="311" y="26" rotation="0" clip_name="OnlyOneArrowHint"/> <Object x="0" y="0" rotation="0" clip_name="OnlyOneArrowHint"/> <Object type="cloud" x="192" y="379" rotation="0" clip_name="Cloud9"/> <Object type="cloud" x="494" y="404" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="-57" y="413" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="692" y="441" rotation="0" clip_name="Cloud1"/> <Object type="cloud" x="278" y="416" rotation="0" clip_name="Cloud8"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="511" y="286" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="107" y="286" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="67" y="292" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="569" y="292" rotation="0" clip_name="Screw"/> </Level> ; private static const LEVEL_52:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="StarrySky"/> <Object type="shooting_point" x="325" y="254" rotation="-60.00077819824219" clip_name="BowPoint"/> <Object type="cloud" x="241" y="411" rotation="0" clip_name="Cloud0"/> <Object type="cloud" x="639" y="431" rotation="0" clip_name="Cloud3"/> <Object type="cloud" x="384" y="357" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="-127" y="374" rotation="0" clip_name="Cloud8"/> <Object type="cloud" x="73" y="433" rotation="0" clip_name="Cloud7"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="114" y="245" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="115" y="227" rotation="0" clip_name="Brick"/> <Object type="ammo_ghost" power="10" x="116" y="181" rotation="0" clip_name="AmmoGhost10"/> <Object type="points_ghost" power="1000" x="578" y="116" rotation="0" clip_name="PointsGhost1000"/> <Object type="points_ghost" power="1000" x="578" y="170" rotation="0" clip_name="PointsGhost1000"/> <Object type="points_ghost" power="1000" x="579" y="223" rotation="0" clip_name="PointsGhost1000"/> <Object type="points_ghost" power="1000" x="579" y="272" rotation="0" clip_name="PointsGhost1000"/> <Object type="points_ghost" power="1000" x="578" y="323" rotation="0" clip_name="PointsGhost1000"/> <Object type="points_ghost" power="1000" x="579" y="373" rotation="0" clip_name="PointsGhost1000"/> <Object type="points_ghost" power="1000" x="579" y="424" rotation="0" clip_name="PointsGhost1000"/> <Object type="highlight" size="150" x="311" y="26" rotation="0" clip_name="NoArrowsHint"/> <Object x="0" y="0" rotation="0" clip_name="NoArrowsHint"/> </Level> ; private static const LEVEL_40:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="307" y="103" rotation="0" clip_name="Mill"/> <Object scaleX="1" scaleY="1" type="background" x="-2" y="352" rotation="0" clip_name="Back3"/> <Object type="static_box" is_stone="true" x="328" y="427" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="294" y="427" rotation="0" clip_name="Stone2"/> <Object type="gibbet_obliquely" inverted="false" x="62" y="354" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="42" y="388" rotation="0" clip_name="GibbetColumn"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="shooting_point" x="520" y="386" rotation="-44.99955749511719" clip_name="BowPoint"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="101" y="342" rotation="0" clip_name="HangerPoint"/> <Object type="rotor" speed="70" scaleX="0.6999969542292874" scaleY="0.6999969542292874" x="364" y="150" rotation="89.99212646484375" clip_name="MillFan"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="92" y="187" rotation="0" clip_name="HangerPoint"/> <Object scaleX="1" scaleY="1" type="background" x="307" y="227" rotation="0" clip_name="Mill"/> <Object type="rotor" speed="-70" scaleX="0.6999816954403554" scaleY="0.6999816954403554" x="365" y="271" rotation="89.99212646484375" clip_name="MillFan"/> <Object type="static_box" is_stone="true" x="329" y="393" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="328" y="359" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="294" y="393" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="294" y="359" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="294" y="325" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="363" y="427" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="362" y="393" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="396" y="427" rotation="0" clip_name="Stone0"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="223" y="425" rotation="-49.999725341796875" clip_name="ArrowGhost1"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="223" y="380" rotation="-50.000244140625" clip_name="ArrowGhost1"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="31" y="270" rotation="39.999755859375" clip_name="ArrowGhost1"/> <Object type="static_box" is_stone="false" x="76" y="338" rotation="0" clip_name="GibbetStick"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="42" y="338" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="93" y="332" rotation="0" clip_name="RopeRings"/> <Object type="static_box" is_stone="true" x="103" y="168" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="136" y="203" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="68" y="134" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="136" y="168" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="136" y="134" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="102" y="134" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="382" y="62" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="348" y="62" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="382" y="27" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="381" y="-5" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="348" y="28" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="347" y="-5" rotation="0" clip_name="Stone0"/> <Object type="points_ghost" power="1000" x="101" y="88" rotation="0" clip_name="PointsGhost1000"/> <Object type="sun" x="576" y="85" rotation="0" clip_name="States.PlayState::Sun"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="120" y="426" rotation="0" clip_name="herb"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="473" y="427" rotation="0" clip_name="herb"/> <Object type="cloud" x="145" y="6" rotation="0" clip_name="Cloud0"/> <Object type="cloud" x="418" y="51" rotation="0" clip_name="Cloud3"/> <Object type="cloud" x="623" y="18" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="-76" y="51" rotation="0" clip_name="Cloud7"/> </Level> ; public static const LEVELS:Array = [LEVEL_0, LEVEL_1, LEVEL_2, LEVEL_3, LEVEL_4, LEVEL_5, LEVEL_6, LEVEL_7, LEVEL_8, LEVEL_9, LEVEL_10, LEVEL_11, LEVEL_12, LEVEL_13, LEVEL_14, LEVEL_15, LEVEL_16, LEVEL_17, LEVEL_18, LEVEL_19, LEVEL_20, LEVEL_21, LEVEL_22, LEVEL_23, LEVEL_24, LEVEL_25, LEVEL_26, LEVEL_27, LEVEL_28, LEVEL_29, LEVEL_30, LEVEL_31, LEVEL_32, LEVEL_33, LEVEL_34, LEVEL_35, LEVEL_36, LEVEL_37, LEVEL_38, LEVEL_39, LEVEL_40, LEVEL_41, LEVEL_42, LEVEL_43, LEVEL_44, LEVEL_45, LEVEL_46, LEVEL_47, LEVEL_48, LEVEL_49, LEVEL_50, LEVEL_51, LEVEL_52]; private static const LEVEL_10:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="-3" y="353" rotation="0" clip_name="Back3"/> <Object type="gibbet_obliquely" inverted="true" x="575" y="352" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="shooting_point" x="320" y="368" rotation="0.0008697509765625" clip_name="BowPoint"/> <Object type="gibbet_obliquely" inverted="false" x="62" y="354" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="43" y="388" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="80" y="337" rotation="180" clip_name="GibbetStick"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="92" y="342" rotation="0" clip_name="HangerPoint"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="85" y="331" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="43" y="336" rotation="0" clip_name="Screw"/> <Object type="static_box" is_stone="true" x="417" y="426" rotation="0" clip_name="Stone1"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="static_box" is_stone="true" x="231" y="428" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="false" x="593" y="385" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="558" y="333" rotation="180" clip_name="GibbetStick"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="546" y="339" rotation="0" clip_name="HangerPoint"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="538" y="328" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="593" y="333" rotation="0" clip_name="Screw"/> <Object type="static_box" is_stone="true" x="230" y="394" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="230" y="360" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="230" y="326" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="417" y="392" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="417" y="359" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="417" y="325" rotation="0" clip_name="Stone2"/> <Object type="teleport_ghost" x="474" y="406" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object type="teleport_ghost" x="319" y="413" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object type="teleport_ghost" x="164" y="402" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object type="points_ghost" power="500" x="554" y="296" rotation="0" clip_name="PointsGhost500"/> <Object type="points_ghost" power="500" x="83" y="299" rotation="0" clip_name="PointsGhost500"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="83" y="425" rotation="0" clip_name="herb"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="508" y="426" rotation="0" clip_name="herb"/> <Object type="sun" x="317" y="85" rotation="0" clip_name="States.PlayState::Sun"/> <Object type="cloud" x="408" y="50" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="543" y="22" rotation="0" clip_name="Cloud4"/> <Object type="cloud" x="67" y="69" rotation="0" clip_name="Cloud2"/> <Object type="cloud" x="-120" y="37" rotation="0" clip_name="Cloud1"/> <Object type="cloud" x="303" y="97" rotation="0" clip_name="Cloud9"/> <Object type="vulture" inverted="false" x="225" y="290" rotation="0" clip_name="VultureHere"/> </Level> ; private static const LEVEL_11:XML = null; private static const LEVEL_12:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="-1" y="357" rotation="0" clip_name="Back2"/> <Object scaleX="1" scaleY="1" type="background" x="449" y="285" rotation="0" clip_name="tree_3"/> <Object type="shooting_point" x="430" y="371" rotation="-49.999725341796875" clip_name="BowPoint"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="dynamic_box" x="234" y="432" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="233" y="407" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="233" y="357" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="233" y="332" rotation="0" clip_name="Box"/> <Object type="gibbet_obliquely" inverted="false" x="69" y="351" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="50" y="385" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="50" y="269" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="84" y="334" rotation="180" clip_name="GibbetStick"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="101" y="339" rotation="0" clip_name="HangerPoint"/> <Object type="tnt_barrel" x="463" y="92" rotation="0" clip_name="States.PlayState::TNTBarrel"/> <Object type="cloud" x="542" y="26" rotation="0" clip_name="Cloud4"/> <Object type="tnt_barrel" x="596" y="93" rotation="0" clip_name="States.PlayState::TNTBarrel"/> <Object type="static_box" is_stone="true" x="472" y="131" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="599" y="132" rotation="0" clip_name="Stone1"/> <Object type="dynamic_box" x="233" y="382" rotation="0" clip_name="Box"/> <Object type="static_box" is_stone="false" x="172" y="334" rotation="180" clip_name="GibbetStick"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="165" y="340" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet_obliquely" inverted="false" x="69" y="129" rotation="0" clip_name="GibbetObliquely"/> <Object type="sun" x="68" y="68" rotation="0" clip_name="States.PlayState::Sun"/> <Object type="static_box" is_stone="false" x="50" y="163" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="84" y="113" rotation="180" clip_name="GibbetStick"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="101" y="118" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="false" x="172" y="113" rotation="180" clip_name="GibbetStick"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="165" y="118" rotation="0" clip_name="HangerPoint"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="49" y="334" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="50" y="113" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="313" y="425" rotation="0" clip_name="herb"/> <Object scaleX="1" scaleY="1" width="33.6" height="37.6" type="frontground" x="72" y="407" rotation="0" clip_name="flower_1"/> <Object scaleX="1" scaleY="1" width="27.55" height="35.7" type="frontground" x="496" y="406" rotation="0" clip_name="flower_0"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="93" y="107" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="93" y="329" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="157" y="329" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="158" y="107" rotation="0" clip_name="RopeRings"/> <Object type="cloud" x="322" y="79" rotation="0" clip_name="Cloud9"/> <Object type="cloud" x="165" y="24" rotation="0" clip_name="Cloud8"/> <Object type="cloud" x="380" y="24" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="-92" y="9" rotation="0" clip_name="Cloud5"/> <Object type="highlight" size="150" x="461" y="92" rotation="0" clip_name="ThisIsTNTHint"/> <Object x="0" y="0" rotation="0" clip_name="ThisIsTNTHint"/> </Level> ; private static const LEVEL_13:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object type="gibbet_obliquely" inverted="true" x="424" y="69" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object scaleX="1.006256103515625" scaleY="1" type="background" x="-4" y="329" rotation="0" clip_name="Back1"/> <Object scaleX="1" scaleY="1" type="background" x="-3" y="161" rotation="0" clip_name="tree_7"/> <Object scaleX="1" scaleY="1" type="background" x="364" y="352" rotation="0" clip_name="tree_1"/> <Object type="shooting_point" x="538" y="382" rotation="-45" clip_name="BowPoint"/> <Object type="gibbet_obliquely" inverted="true" x="320" y="354" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="340" y="389" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="305" y="337" rotation="180" clip_name="GibbetStick"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="288" y="342" rotation="0" clip_name="HangerPoint"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="280" y="331" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="340" y="336" rotation="0" clip_name="Screw"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="static_box" is_stone="false" x="445" y="104" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="410" y="53" rotation="180" clip_name="GibbetStick"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="393" y="58" rotation="0" clip_name="HangerPoint"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="385" y="47" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="445" y="53" rotation="0" clip_name="Screw"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="37" y="381" rotation="69.99934387207031" clip_name="ArrowGhost1"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="137" y="413" rotation="14.0008544921875" clip_name="ArrowGhost1"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="293" y="137" rotation="40.00129699707031" clip_name="ArrowGhost1"/> <Object type="gibbet_ground" x="396" y="200" rotation="0" clip_name="GibbetGround"/> <Object type="sun" x="80" y="78" rotation="0" clip_name="States.PlayState::Sun"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="273" y="426" rotation="0" clip_name="herb"/> <Object type="cloud" x="458" y="44" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="613" y="85" rotation="0" clip_name="Cloud8"/> <Object type="cloud" x="-26" y="39" rotation="0" clip_name="Cloud1"/> <Object type="cloud" x="201" y="4" rotation="0" clip_name="Cloud0"/> <Object type="cloud" x="-109" y="96" rotation="0" clip_name="Cloud9"/> <Object type="ammo_ghost" power="5" x="411" y="412" rotation="0" clip_name="AmmoGhost5"/> </Level> ; private static const LEVEL_14:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="0" y="356" rotation="0" clip_name="Back2"/> <Object scaleX="1" scaleY="1" type="background" x="0" y="293" rotation="0" clip_name="tree_6"/> <Object type="static_box" is_stone="false" x="149" y="464" rotation="0" clip_name="GibbetColumn"/> <Object scaleX="1" scaleY="1" type="background" x="429" y="152" rotation="0" clip_name="tree_5"/> <Object type="gibbet_obliquely" inverted="true" x="478" y="316" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="497" y="464" rotation="0" clip_name="GibbetColumn"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="95" y="86" rotation="0" clip_name="HangerPoint"/> <Object type="shooting_point" x="325" y="384" rotation="0" clip_name="BowPoint"/> <Object type="hedhehog_ghost" speed="50" charge="3" x="323" y="251" rotation="-0.0008697509765625" clip_name="ArrowGhost3"/> <Object type="gibbet" pers_id="1" path_to_hang="LEFT_LOWER_LEG" connect_legs="true" chains_count="9" x="214" y="303" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="2" path_to_hang="RIGHT_LOWER_LEG" connect_legs="true" chains_count="9" x="430" y="303" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet_obliquely" inverted="false" x="168" y="317" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="149" y="348" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="184" y="298" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="false" x="497" y="348" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="462" y="298" rotation="0" clip_name="GibbetStick"/> <Object type="cloud" x="382" y="4" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="213" y="73" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="76" y="9" rotation="0" clip_name="Cloud1"/> <Object type="sun" x="562" y="84" rotation="0" clip_name="States.PlayState::Sun"/> <Object type="cloud" x="576" y="53" rotation="0" clip_name="Cloud3"/> <Object type="cloud" x="-74" y="73" rotation="0" clip_name="Cloud2"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="321" y="129" rotation="-70.0001220703125" clip_name="ArrowGhost1"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="423" y="293" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="207" y="293" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="497" y="298" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="148" y="298" rotation="0" clip_name="Screw"/> <Object type="static_box" is_stone="false" x="22" y="80" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="false" x="67" y="80" rotation="0" clip_name="GibbetStick"/> <Object type="points_ghost" power="500" x="458" y="264" rotation="0" clip_name="PointsGhost500"/> <Object type="points_ghost" power="1000" x="601" y="412" rotation="0" clip_name="PointsGhost1000"/> <Object scaleX="1" scaleY="1" width="38.7" height="43.05" type="frontground" x="355" y="400" rotation="0" clip_name="flower_2"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="188" y="427" rotation="0" clip_name="herb"/> <Object x="0" y="0" rotation="0" clip_name="ThisIsHedhehogHint"/> <Object type="highlight" size="150" x="322" y="251" rotation="0" clip_name="ThisIsHedhehogHint"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="87" y="75" rotation="0" clip_name="RopeRings"/> </Level> ; private static const LEVEL_15:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="-9" y="279" rotation="0" clip_name="BonusGameBack"/> <Object type="shooting_point" x="110" y="188" rotation="89.9947509765625" clip_name="BowPoint"/> <Object type="tnt_barrel" x="159" y="69" rotation="0" clip_name="States.PlayState::TNTBarrel"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="395" y="240" rotation="0" clip_name="HangerPoint"/> <Object type="cloud" x="118" y="82" rotation="0" clip_name="Cloud4"/> <Object type="dynamic_box" x="223" y="77" rotation="0" clip_name="Box"/> <Object type="tnt_barrel" x="401" y="69" rotation="0" clip_name="States.PlayState::TNTBarrel"/> <Object type="static_box" is_stone="true" x="514" y="361" rotation="0" clip_name="Stone1"/> <Object type="gibbet_obliquely" inverted="false" x="349" y="254" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="330" y="288" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="true" x="379" y="361" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="413" y="361" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="447" y="361" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="false" x="366" y="236" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="true" x="480" y="361" rotation="0" clip_name="Stone1"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="615" y="405" rotation="-41.08119201660156" clip_name="ArrowGhost1"/> <Object type="dynamic_box" x="514" y="330" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="514" y="305" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="514" y="280" rotation="0" clip_name="Box"/> <Object type="static_box" is_stone="true" x="280" y="108" rotation="0" clip_name="ComposedStone1"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="551" y="168" rotation="-139.99972534179688" clip_name="ArrowGhost1"/> <Object type="static_box" is_stone="true" x="311" y="360" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="345" y="360" rotation="0" clip_name="Stone0"/> <Object type="hedhehog_ghost" speed="0" charge="1" x="249" y="439" rotation="66.00038146972656" clip_name="ArrowGhost1"/> <Object type="sun" x="578" y="89" rotation="0" clip_name="States.PlayState::Sun"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="330" y="236" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="387" y="231" rotation="0" clip_name="RopeRings"/> <Object type="cloud" x="499" y="53" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="622" y="23" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="56" y="33" rotation="0" clip_name="Cloud9"/> <Object type="cloud" x="411" y="111" rotation="0" clip_name="Cloud9"/> </Level> ; private static const LEVEL_16:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object type="sun" x="77" y="74" rotation="0" clip_name="States.PlayState::Sun"/> <Object scaleX="1" scaleY="1" type="background" x="0" y="357" rotation="0" clip_name="Back2"/> <Object type="static_box" is_stone="true" x="196" y="364" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="196" y="398" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="196" y="432" rotation="0" clip_name="Stone2"/> <Object type="shooting_point" x="582" y="406" rotation="-45" clip_name="BowPoint"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="102" y="337" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet_obliquely" inverted="false" x="61" y="350" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="43" y="385" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="true" x="162" y="388" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="162" y="422" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="162" y="456" rotation="0" clip_name="Stone0"/> <Object scaleX="1" scaleY="1" type="background" x="210" y="160" rotation="0" clip_name="tree_7"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="static_box" is_stone="false" x="79" y="333" rotation="0" clip_name="GibbetStick"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="42" y="332" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="95" y="327" rotation="0" clip_name="RopeRings"/> <Object type="tnt_barrel" x="160" y="349" rotation="0" clip_name="States.PlayState::TNTBarrel"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="511" y="427" rotation="0" clip_name="herb"/> <Object scaleX="1" scaleY="1" width="28.45" height="36.5" type="frontground" x="232" y="400" rotation="0" clip_name="flower_4"/> <Object type="cloud" x="54" y="68" rotation="0" clip_name="Cloud9"/> <Object type="cloud" x="146" y="18" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="342" y="41" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="566" y="15" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="-133" y="18" rotation="0" clip_name="Cloud3"/> <Object type="points_ghost" power="300" x="59" y="298" rotation="0" clip_name="PointsGhost300"/> <Object type="points_ghost" power="300" x="301" y="414" rotation="0" clip_name="PointsGhost300"/> </Level> ; private static const LEVEL_17:XML = null; private static const LEVEL_18:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="-3" y="352" rotation="0" clip_name="Back3"/> <Object scaleX="1" scaleY="1" type="background" x="202" y="314" rotation="0" clip_name="Mill"/> <Object type="static_box" is_stone="false" x="18" y="432" rotation="0" clip_name="GibbetColumn"/> <Object scaleX="1" scaleY="1" type="background" x="335" y="228" rotation="0" clip_name="tree_4"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="79" y="107" rotation="0" clip_name="HangerPoint"/> <Object type="shooting_point" x="566" y="336" rotation="-80.00064086914063" clip_name="BowPoint"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="63" y="319" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet_obliquely" inverted="false" x="38" y="120" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="21" y="153" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="55" y="103" rotation="0" clip_name="GibbetStick"/> <Object type="gibbet_obliquely" inverted="false" x="36" y="332" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="18" y="366" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="52" y="315" rotation="0" clip_name="GibbetStick"/> <Object type="gibbet_ground" x="78" y="247" rotation="0" clip_name="GibbetGround"/> <Object type="rotor" speed="90" scaleX="0.7999877982075193" scaleY="0.7999877982075193" x="260" y="358" rotation="89.99301147460938" clip_name="MillFan"/> <Object scaleX="1" scaleY="1" type="background" x="201" y="162" rotation="0" clip_name="Mill"/> <Object type="rotor" speed="-90" scaleX="1.0000000041909516" scaleY="1.0000000041909516" x="258" y="205" rotation="89.9947509765625" clip_name="MillFan"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="17" y="314" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="20" y="103" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="55" y="309" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="71" y="97" rotation="0" clip_name="RopeRings"/> <Object type="sun" x="561" y="90" rotation="0" clip_name="States.PlayState::Sun"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="112" y="427" rotation="0" clip_name="herb"/> <Object type="cloud" x="108" y="4" rotation="0" clip_name="Cloud0"/> <Object type="cloud" x="337" y="43" rotation="0" clip_name="Cloud1"/> <Object type="cloud" x="-163" y="82" rotation="0" clip_name="Cloud2"/> <Object type="cloud" x="-68" y="22" rotation="0" clip_name="Cloud3"/> <Object type="cloud" x="557" y="15" rotation="0" clip_name="Cloud5"/> </Level> ; private static const LEVEL_19:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="1" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1.0032806396484375" scaleY="1" type="background" x="-3" y="332" rotation="0" clip_name="Back1"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="102" y="231" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet_obliquely" inverted="false" x="65" y="241" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="48" y="276" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="83" y="224" rotation="0" clip_name="GibbetStick"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="95" y="219" rotation="0" clip_name="RopeRings"/> <Object type="static_box" is_stone="false" x="601" y="123" rotation="0" clip_name="GibbetColumn"/> <Object type="shooting_point" x="516" y="354" rotation="-45" clip_name="BowPoint"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="544" y="77" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="102" y="347" rotation="0" clip_name="HangerPoint"/> <Object type="hedhehog_ghost" speed="80" charge="4" x="422" y="153" rotation="0" clip_name="ArrowGhost4"/> <Object type="gibbet_ground" x="561" y="212" rotation="0" clip_name="GibbetGround"/> <Object type="static_box" is_stone="false" x="565" y="72" rotation="0" clip_name="GibbetStick"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="601" y="72" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="537" y="67" rotation="0" clip_name="RopeRings"/> <Object type="gibbet_obliquely" inverted="false" x="65" y="357" rotation="0" clip_name="GibbetObliquely"/> <Object type="static_box" is_stone="false" x="48" y="398" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="83" y="341" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="true" x="317" y="426" rotation="0" clip_name="Stone0"/> <Object scaleX="1" scaleY="1" type="background" x="161" y="255" rotation="0" clip_name="tree_8"/> <Object scaleX="1" scaleY="1" type="background" x="391" y="367" rotation="0" clip_name="tree_2"/> <Object type="ground" x="321" y="461" rotation="0" clip_name="Ground"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="47" y="340" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="95" y="335" rotation="0" clip_name="RopeRings"/> <Object type="static_box" is_stone="true" x="317" y="392" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="317" y="357" rotation="0" clip_name="Stone2"/> <Object type="sun" x="77" y="92" rotation="0" clip_name="States.PlayState::Sun"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="47" y="224" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="115" y="428" rotation="0" clip_name="herb"/> <Object scaleX="1" scaleY="1" width="38.7" height="43.05" type="frontground" x="565" y="400" rotation="0" clip_name="flower_2"/> <Object type="cloud" x="465" y="26" rotation="0" clip_name="Cloud1"/> <Object type="cloud" x="646" y="67" rotation="0" clip_name="Cloud3"/> <Object type="cloud" x="-36" y="40" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="-159" y="85" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="183" y="30" rotation="0" clip_name="Cloud4"/> <Object type="vulture" inverted="false" x="53" y="196" rotation="0" clip_name="VultureHere"/> </Level> ; private static const LEVEL_20:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object type="static_box" is_stone="true" x="348" y="241" rotation="0" clip_name="ComposedStone98"/> <Object scaleX="1" scaleY="1" type="background" x="-12" y="280" rotation="0" clip_name="BonusGameBack"/> <Object type="shooting_point" x="61" y="344" rotation="45" clip_name="BowPoint"/> <Object type="gibbet_ground" x="563" y="481" rotation="0" clip_name="GibbetGround"/> <Object type="gibbet_obliquely" inverted="true" x="591" y="355" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="610" y="389" rotation="0" clip_name="GibbetColumn"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="549" y="343" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="false" x="575" y="337" rotation="0" clip_name="GibbetStick"/> <Object type="static_box" is_stone="true" x="246" y="428" rotation="0" clip_name="ComposedStone98"/> <Object type="cow" inverted="true" x="322" y="287" rotation="0" clip_name="InvertedCowHere"/> <Object type="cow" inverted="false" x="272" y="99" rotation="0" clip_name="CowHere"/> <Object type="ammo_ghost" power="10" x="494" y="421" rotation="0" clip_name="AmmoGhost10"/> <Object type="ammo_ghost" power="5" x="578" y="303" rotation="0" clip_name="AmmoGhost5"/> <Object type="gibbet_obliquely" inverted="true" x="558" y="86" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="576" y="120" rotation="0" clip_name="GibbetColumn"/> <Object type="gibbet_ground" x="534" y="208" rotation="0" clip_name="GibbetGround"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="515" y="74" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="false" x="540" y="68" rotation="0" clip_name="GibbetStick"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="610" y="337" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="576" y="68" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="541" y="332" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="507" y="62" rotation="0" clip_name="RopeRings"/> <Object type="sun" x="93" y="93" rotation="0" clip_name="States.PlayState::Sun"/> <Object type="cloud" x="91" y="14" rotation="0" clip_name="Cloud0"/> <Object type="cloud" x="352" y="51" rotation="0" clip_name="Cloud1"/> <Object type="cloud" x="-68" y="86" rotation="0" clip_name="Cloud2"/> <Object type="cloud" x="601" y="71" rotation="0" clip_name="Cloud6"/> </Level> ; private static const LEVEL_22:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="-3" y="353" rotation="0" clip_name="Back3"/> <Object scaleX="1" scaleY="1" type="background" x="27" y="228" rotation="0" clip_name="tree_4"/> <Object type="shooting_point" x="578" y="94" rotation="-45" clip_name="BowPoint"/> <Object type="gibbet" pers_id="3" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="559" y="340" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet_obliquely" inverted="true" x="585" y="352" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="604" y="387" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="569" y="334" rotation="0" clip_name="GibbetStick"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="603" y="334" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="551" y="328" rotation="0" clip_name="RopeRings"/> <Object type="static_box" is_stone="true" x="239" y="435" rotation="0" clip_name="Brick"/> <Object scaleX="1" scaleY="1" type="background" x="290" y="350" rotation="0" clip_name="tree_1"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="teleport_ghost" x="92" y="86" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object type="teleport_ghost" x="38" y="413" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object type="teleport_ghost" x="453" y="411" rotation="0" clip_name="States.PlayState::TeleportGhost"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="311" y="72" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet_obliquely" inverted="true" x="336" y="84" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="356" y="118" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="321" y="66" rotation="0" clip_name="GibbetStick"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="355" y="66" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="303" y="60" rotation="0" clip_name="RopeRings"/> <Object type="gibbet_ground" x="315" y="214" rotation="0" clip_name="GibbetGround"/> <Object type="hedhehog_ghost" speed="60" charge="3" x="232" y="286" rotation="0" clip_name="ArrowGhost3"/> <Object type="static_box" is_stone="true" x="144" y="238" rotation="0" clip_name="BrickNoLeft"/> <Object type="static_box" is_stone="true" x="93" y="238" rotation="0" clip_name="BrickNoRightNoLeft"/> <Object type="static_box" is_stone="true" x="43" y="238" rotation="0" clip_name="BrickNoRight"/> <Object type="points_ghost" power="300" x="51" y="191" rotation="0" clip_name="PointsGhost300"/> <Object type="static_box" is_stone="true" x="322" y="292" rotation="0" clip_name="Brick"/> <Object type="static_box" is_stone="true" x="322" y="320" rotation="0" clip_name="Brick"/> <Object type="static_box" is_stone="true" x="322" y="349" rotation="0" clip_name="Brick"/> <Object type="static_box" is_stone="true" x="239" y="406" rotation="0" clip_name="Brick"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="520" y="427" rotation="0" clip_name="herb"/> <Object type="cloud" x="690" y="81" rotation="0" clip_name="Cloud9"/> <Object type="cloud" x="506" y="29" rotation="0" clip_name="Cloud8"/> <Object type="cloud" x="-159" y="53" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="343" y="81" rotation="0" clip_name="Cloud6"/> <Object type="cloud" x="-38" y="7" rotation="0" clip_name="Cloud5"/> <Object type="cloud" x="184" y="46" rotation="0" clip_name="Cloud3"/> </Level> ; private static const LEVEL_24:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="-3" y="352" rotation="0" clip_name="Back3"/> <Object type="shooting_point" x="538" y="405" rotation="-89.99563598632813" clip_name="BowPoint"/> <Object type="static_box" is_stone="true" x="344" y="455" rotation="0" clip_name="Stone0"/> <Object scaleX="1" scaleY="1" type="background" x="401" y="229" rotation="0" clip_name="tree_4"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="static_box" is_stone="true" x="344" y="321" rotation="0" clip_name="Stone1"/> <Object type="gibbet" pers_id="2" path_to_hang="LEFT_LOWER_LEG" connect_legs="false" chains_count="8" x="87" y="109" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="84" y="88" rotation="0" clip_name="Stone1"/> <Object type="gibbet" pers_id="3" path_to_hang="LEFT_LOWER_HAND" connect_legs="false" chains_count="8" x="261" y="260" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="262" y="240" rotation="0" clip_name="Stone1"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="8" x="170" y="193" rotation="0" clip_name="HangerPoint"/> <Object type="static_box" is_stone="true" x="171" y="173" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="344" y="354" rotation="0" clip_name="Stone3"/> <Object type="static_box" is_stone="true" x="344" y="388" rotation="0" clip_name="Stone2"/> <Object type="static_box" is_stone="true" x="344" y="422" rotation="0" clip_name="Stone0"/> <Object type="static_box" is_stone="true" x="50" y="88" rotation="0" clip_name="Stone1"/> <Object type="static_box" is_stone="true" x="17" y="88" rotation="0" clip_name="Stone3"/> <Object type="cow" inverted="true" x="195" y="321" rotation="0" clip_name="InvertedCowHere"/> <Object type="points_ghost" power="1000" x="69" y="42" rotation="0" clip_name="PointsGhost1000"/> <Object type="sun" x="568" y="85" rotation="0" clip_name="States.PlayState::Sun"/> <Object scaleX="1" scaleY="1" width="27.65" height="18.1" type="frontground" x="235" y="426" rotation="0" clip_name="herb"/> <Object type="cloud" x="605" y="76" rotation="0" clip_name="Cloud8"/> <Object type="cloud" x="479" y="55" rotation="0" clip_name="Cloud7"/> <Object type="cloud" x="171" y="45" rotation="0" clip_name="Cloud4"/> <Object type="cloud" x="-46" y="15" rotation="0" clip_name="Cloud1"/> <Object type="cloud" x="-157" y="65" rotation="0" clip_name="Cloud9"/> </Level> ; private static const LEVEL_26:XML = <Level> <Object scaleX="1" scaleY="1" type="background" x="0" y="0" rotation="0" clip_name="Background"/> <Object scaleX="1" scaleY="1" type="background" x="-3" y="331" rotation="0" clip_name="Back1"/> <Object scaleX="1" scaleY="1" type="background" x="20" y="151" rotation="0" clip_name="tree_5"/> <Object type="shooting_point" x="45" y="404" rotation="40.00077819824219" clip_name="BowPoint"/> <Object type="gibbet" pers_id="2" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="559" y="340" rotation="0" clip_name="HangerPoint"/> <Object type="gibbet_obliquely" inverted="true" x="585" y="352" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="604" y="387" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="569" y="334" rotation="0" clip_name="GibbetStick"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="603" y="334" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="551" y="328" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" type="background" x="455" y="370" rotation="0" clip_name="tree_2"/> <Object type="ground" x="320" y="461" rotation="0" clip_name="Ground"/> <Object type="gibbet_obliquely" inverted="true" x="586" y="235" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="604" y="269" rotation="0" clip_name="GibbetColumn"/> <Object type="gibbet_obliquely" inverted="true" x="584" y="117" rotation="0" clip_name="InvertedGibbetObliquely"/> <Object type="static_box" is_stone="false" x="604" y="152" rotation="0" clip_name="GibbetColumn"/> <Object type="static_box" is_stone="false" x="569" y="100" rotation="0" clip_name="GibbetStick"/> <Object type="gibbet" pers_id="1" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="557" y="106" rotation="0" clip_name="HangerPoint" cloud_name="RobinHoodMadeThatMuchBetter" cloud_prob="0.3"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="549" y="94" rotation="0" clip_name="RopeRings"/> <Object type="static_box" is_stone="false" x="569" y="216" rotation="0" clip_name="GibbetStick"/> <Object type="gibbet" pers_id="4" path_to_hang="HEAD" connect_legs="false" chains_count="7" x="557" y="223" rotation="0" clip_name="HangerPoint"/> <Object scaleX="1" scaleY="1" width="15.2" height="11.55" type="frontground" x="549" y="211" rotation="0" clip_name="RopeRings"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="603" y="216" rotation="0" clip_name="Screw"/> <Object scaleX="1" scaleY="1" width="6.3" height="6.3" type="frontground" x="603" y="99" rotation="0" clip_name="Screw"/> <Object type="dynamic_box" x="285" y="431" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="285" y="406" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="285" y="381" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="285" y="356" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="285" y="331" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="285" y="307" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="580" y="82" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="547" y="82" rotation="0" clip_name="Box"/> <Object type="dynamic_box" x="564" y="57" rotation="0" clip_name="Box"/> <Object scaleX="1" scaleY="1" width="28.45" height="36.5" type="frontground" x="352" y="399" rotation="0" clip_name="flower_4"/> <Object type="sun" x="303" y="68" rotation="0" clip_name="States.PlayState::Sun"/> <Object type="cloud" x="-166" y="6" rotation="0" clip_name="Cloud0"/> <Object type="cloud" x="42" y="17" rotation="0" clip_name="Cloud1"/> <Object type="cloud" x="322" y="39" rotation="0" clip_name="Cloud2"/> <Object type="cloud" x="432" y="80" rotation="0" clip_name="Cloud3"/> <Object type="cloud" x="609" y="-2" rotation="0" clip_name="Cloud4"/> </Level> ; } }//package States.PlayStateSection 128//MapObject (States.PlayState.MapObject) package States.PlayState { import Box2D.Dynamics.*; import flash.display.*; public class MapObject extends MovieClip { protected var m_isDead:Boolean;// = false protected var m_liveTime:Number;// = 0 protected var m_body:b2Body;// = null public function isItYourFixture(_arg1:b2Fixture):Boolean{ return ((_arg1.GetBody() == m_body)); } public function get body():b2Body{ return (m_body); } public function onDead(_arg1:b2World):void{ } public function set body(_arg1:b2Body):void{ m_body = _arg1; } public function onArrowHeadContact(_arg1:Arrow, _arg2:b2Fixture):void{ } public function update(_arg1:Number):void{ } public function canStickInMe():Boolean{ return (true); } public function goTop(_arg1:Sprite, _arg2:Sprite, _arg3:Sprite, _arg4:Sprite, _arg5:Sprite):void{ } public function isDead():Boolean{ return (m_isDead); } public function connectWithBody(_arg1:b2Body):void{ this.body = _arg1; m_body.SetUserData(this); } public function onArrowContact(_arg1:Arrow, _arg2:b2Fixture):void{ } } }//package States.PlayStateSection 129//OutOfArrowsEffect (States.PlayState.OutOfArrowsEffect) package States.PlayState { public class OutOfArrowsEffect extends MapObject { private var m_stage:int;// = 0 public function OutOfArrowsEffect(){ x = 320; y = 240; scale = 0; alpha = -1; } override public function update(_arg1:Number):void{ m_liveTime = (m_liveTime + _arg1); switch (m_stage){ case 0: alpha = (alpha + (_arg1 * 4)); if ((scale = (scale + (_arg1 * 2))) > 1){ scale = 1; alpha = 1; m_liveTime = 0; m_stage = 1; }; break; case 1: scale = (1 + (Math.sin((m_liveTime * 5)) * 0.07)); break; }; } private function get scale():Number{ return (scaleX); } private function set scale(_arg1:Number):void{ scaleX = _arg1; scaleY = _arg1; } } }//package States.PlayStateSection 130//PlayState (States.PlayState.PlayState) package States.PlayState { import flash.events.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Utils.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; import flash.geom.*; import Main.*; import flash.display.*; import Ragdoll.*; import flash.utils.*; import States.*; import flash.system.*; import flash.ui.*; public class PlayState extends PhysGameState { private const STATE_TELEPORT:int = 3; private const STATE_SHOW_HIGHLIGHT:int = 5; private const STATE_SHOOTING:int = 2; private const STATE_NORMAL:int = 0; private const STATE_TAKE_AIM:int = 1; private const STATE_NOT_INITILIAZED:int = -1; private const STATE_SCROLLING_FORWARD:int = 4; private var m_nextState:GameState;// = null private var m_shootingPower:Number; private var m_arrowsLayer:Sprite; private var m_contactListener:b2ContactListener; private var m_mapObjects:Array; private var m_camera:Camera; private var m_turtorialFrame:TurtorialFrame; private var m_sightClip:MovieClip; private var m_state:int;// = -1 private var m_cloudsLayer:Sprite; private var m_allStones:Array; private var m_guiLayer:Sprite; private var m_arrowHeadsToBodyContacts:Dictionary; private var m_turtorialFrames:Array; private var m_arrowBodyToBodyContacts:Dictionary; private var m_layersContainer:Sprite; private var m_nextStateTimer:Timer; private var m_arrows:Array; private var m_staticLayer:Sprite; private var m_oldSightClip:MovieClip; private var m_frontLayer:Sprite; private var m_arrowsLeft:int; private var m_tmpScores:int;// = 0 private var m_killedCount:int;// = 0 private var m_gibbetsOnLevel:int; private var m_savedCount:int;// = 0 private var m_dynamicLayer:Sprite; private var m_backgroundLayer:Sprite; private var m_bow:Bow; private static var m_instance:PlayState = null; public static var m_currentScores:int = 0; public static var m_deadID:int; public static var m_curLevel:int = 0; public static var m_wasStar:Boolean = true; public static var m_arrowsUsed:int; public function PlayState(_arg1:int){ m_mapObjects = new Array(); m_turtorialFrames = new Array(); m_guiLayer = new Sprite(); m_layersContainer = new Sprite(); m_backgroundLayer = new Sprite(); m_cloudsLayer = new Sprite(); m_staticLayer = new Sprite(); m_dynamicLayer = new Sprite(); m_frontLayer = new Sprite(); m_arrowsLayer = new Sprite(); m_arrows = new Array(); m_contactListener = new MyContactListener(); m_sightClip = new Sight(); m_oldSightClip = new Sight(); m_nextStateTimer = new Timer(2500, 1); m_arrowBodyToBodyContacts = new Dictionary(); m_arrowHeadsToBodyContacts = new Dictionary(); m_allStones = new Array(); super(); m_curLevel = _arg1; m_instance = this; } private function processContacts():void{ var _local1:* = null; for (_local1 in m_arrowBodyToBodyContacts) { onContactWithArrowBody(m_arrowBodyToBodyContacts[_local1], _local1); }; m_arrowBodyToBodyContacts = new Dictionary(); for (_local1 in m_arrowHeadsToBodyContacts) { onContactWithArrowHeadBody(m_arrowHeadsToBodyContacts[_local1], _local1); }; m_arrowHeadsToBodyContacts = new Dictionary(); } public function onHangerSafe(_arg1:int, _arg2:Gibbet):void{ var _local3:b2Vec2; var _local4:int; var _local5:AddPointsEffect; if (!_arg2.isKilled()){ m_savedCount++; _local3 = _arg2.getHeadPosition(); _local4 = ((_arg2.getHealth() * 1000) * _arg1); if (_local4 < 100){ _local4 = 100; }; if (GameData.haveAchievement(Achievements.LEVELS_WITHOUT_LOSE)){ _local4 = (_local4 + 100); }; if (GameData.haveAchievement(Achievements.LEVELS_WITHOUT_INJURE)){ _local4 = (_local4 + 200); }; _local4 = (_local4 - (_local4 % 10)); addScores(_local4); _local5 = new AddPointsEffect(_local4, _arg1, (_local3.x * m_physScale), (_local3.y * m_physScale)); m_frontLayer.addChild(_local5); m_mapObjects.push(_local5); m_gibbetsOnLevel--; recalcGui(); testEndLevel(); }; m_camera.onHangerSave(); } public function onHangerDead(_arg1:Gibbet):void{ m_deadID = _arg1.getPersID(); m_killedCount++; recalcGui(); var _local2:b2Vec2 = _arg1.getHeadPosition(); var _local3:Soul = new ((getDefinitionByName(("Soul" + _arg1.getPersID())) as Class)); addChild(_local3); _local3.x = ((_local2.x * m_physScale) + m_layersContainer.x); _local3.y = ((_local2.y * m_physScale) + m_layersContainer.y); m_mapObjects.push(_local3); lose(); m_camera.onHangerDead(); } public function createGibbetObliquely(_arg1:DisplayObject, _arg2:Boolean):void{ var _local3:b2BodyDef = new b2BodyDef(); _local3.position.x = (_arg1.x / m_physScale); _local3.position.y = (_arg1.y / m_physScale); var _local4:b2PolygonShape = new b2PolygonShape(); var _local5:Array = new Array(); if (_arg2){ _local5.push(new b2Vec2((-22 / m_physScale), (-19 / m_physScale))); _local5.push(new b2Vec2((-14 / m_physScale), (-19 / m_physScale))); _local5.push(new b2Vec2((22 / m_physScale), (12 / m_physScale))); _local5.push(new b2Vec2((22 / m_physScale), (20 / m_physScale))); } else { _local5.push(new b2Vec2((-22 / m_physScale), (20 / m_physScale))); _local5.push(new b2Vec2((-22 / m_physScale), (12 / m_physScale))); _local5.push(new b2Vec2((14 / m_physScale), (-19 / m_physScale))); _local5.push(new b2Vec2((22 / m_physScale), (-19 / m_physScale))); }; _local4.SetAsVector(_local5, _local5.length); var _local6:b2Body = m_world.CreateBody(_local3); var _local7:b2FixtureDef = new b2FixtureDef(); _local7.shape = _local4; _local6.CreateFixture(_local7); _local6.SetUserData(_arg1); m_staticLayer.addChild(_arg1); } private function recalcGui():void{ m_view.m_arrowsLeftClip.m_text.text = m_arrowsLeft.toString(); var _local1:String = m_currentScores.toString(); switch (m_tmpScores.toString().length){ case 4: _local1 = ("0" + m_tmpScores.toString()); break; case 3: _local1 = ("00" + m_tmpScores.toString()); break; case 2: _local1 = ("000" + m_tmpScores.toString()); break; case 1: _local1 = ("0000" + m_tmpScores.toString()); break; }; m_view.m_scoreClip.m_text.text = _local1; m_view.m_levelClip.m_text.text = (m_curLevel + 1).toString(); } public function getView():Sprite{ return (m_view); } private function lose():void{ if (m_nextState == null){ GameData.onLoseLevel(m_curLevel, m_killedCount); m_nextState = new LoseState(); m_nextStateTimer.start(); }; } public function setLongShootMode():void{ m_camera = new TargetedCamera(); } private function addScores(_arg1:int):void{ m_currentScores = (m_currentScores + _arg1); } private function testEndLevel():void{ if (m_gibbetsOnLevel == 0){ win(); return; }; } public function startTeleportHere(_arg1:b2Vec2):void{ m_bow.startTeleport(new Point((_arg1.x * m_physScale), (_arg1.y * m_physScale))); setState(STATE_TELEPORT); } public function addPointsAt(_arg1:b2Vec2, _arg2:int):void{ addScores(_arg2); var _local3:AddPointsEffect = new AddPointsEffect(_arg2, 1, (_arg1.x * m_physScale), (_arg1.y * m_physScale)); addChild(_local3); m_mapObjects.push(_local3); } private function onNextStateTimer(_arg1:TimerEvent):void{ m_tmpScores = m_currentScores; recalcGui(); StateManager.getInstance().pushState(m_nextState); if ((m_nextState is WinState)){ GameData.onWinLevel(m_curLevel, m_currentScores, m_wasStar, m_savedCount); }; } private function updateTurtorialFrame(_arg1:Number):void{ if (m_turtorialFrame){ m_turtorialFrame.update(_arg1); if (((m_turtorialFrame.isFinished()) && (!(m_turtorialFrame.isShow())))){ m_state = STATE_NORMAL; m_turtorialFrame.removeEventListener(MouseEvent.CLICK, onTurtotialFrameClick); this.removeChild(m_turtorialFrame.getTextClip()); this.removeChild(m_turtorialFrame.getClickSign()); this.removeChild(m_turtorialFrame.getCheckBox()); if (m_turtorialFrame.isNeedToHide()){ m_turtorialFrames.length = 0; GameData.hideTips(); }; this.removeChild(m_turtorialFrame); m_turtorialFrame = null; if (m_turtorialFrames.length != 0){ highlightZone(m_turtorialFrames.pop()); }; }; } else { if (m_turtorialFrames.length != 0){ highlightZone(m_turtorialFrames.pop()); }; }; } private function onMenuClick(_arg1:MouseEvent):void{ if ((((m_nextState == null)) || ((m_nextState is LoseState)))){ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(GameData.getSelectLevelScreen()); }; } private function setState(_arg1:int):void{ m_state = _arg1; switch (_arg1){ case STATE_NORMAL: m_sightClip.visible = false; break; case STATE_TAKE_AIM: m_sightClip.visible = true; break; case STATE_TELEPORT: m_sightClip.visible = false; break; }; } public function getCurrentLevelCompleted():int{ return (m_curLevel); } override public function handleKeyDown(_arg1:KeyboardEvent):void{ super.handleKeyDown(_arg1); if (((Constant.m_debugMode) && ((_arg1.keyCode == Keyboard.DOWN)))){ m_debugSprite.visible = !(m_debugSprite.visible); }; if (_arg1.keyCode == 82){ onReplayClick(null); }; } public function createBlood(_arg1:b2Vec2):void{ var _local3:int; var _local4:b2BodyDef; var _local5:b2Body; var _local6:b2PolygonShape; var _local7:b2FixtureDef; var _local8:b2Fixture; var _local9:Blood; if (GameData.m_isBloodDisabled){ return; }; var _local2:int = MathUtils.RandomRangeInt(3, 8); while (_local3 < _local2) { _local4 = new b2BodyDef(); _local4.position = _arg1; _local4.type = b2Body.b2_dynamicBody; _local4.angle = MathUtils.GradToRad(MathUtils.RandomRange(0, (Math.PI * 2))); _local5 = m_world.CreateBody(_local4); _local6 = new b2PolygonShape(); _local6.SetAsBox((1 / m_physScale), (1 / m_physScale)); _local7 = new b2FixtureDef(); _local7.shape = _local6; _local8 = _local5.CreateFixture(_local7); _local8.SetSensor(true); _local5.ApplyImpulse(new b2Vec2(MathUtils.RandomRange(-0.7, 0.7), MathUtils.RandomRange(0, -3)), _arg1); _local5.ApplyTorque(MathUtils.RandomRange(-1, 1)); _local9 = new Blood(); _local9.connectWithBody(_local5); m_arrowsLayer.addChild(_local9); m_mapObjects.push(_local9); _local3++; }; } public function onContactWithArrowHeadBody(_arg1:Arrow, _arg2:b2Fixture):void{ var _local5:MapObject; var _local6:b2RevoluteJointDef; var _local7:b2AABB; var _local8:b2Vec2; var _local3:Boolean; var _local4:Boolean; for each (_local5 in m_mapObjects) { if (_local5.isItYourFixture(_arg2)){ _local5.onArrowHeadContact(_arg1, _arg2); if ((_local5 is Gibbet)){ _local3 = true; }; if ((_local5 is Sun)){ _local4 = true; }; break; }; }; if (((((((!(_arg2.IsSensor())) && (!(_arg1.isStickIn())))) && (_arg1.canStickIn()))) && ((m_allStones.indexOf(_arg2) == -1)))){ _arg1.stopFly(); _arg1.stickIn(); if (!_local3){ SoundManager.play(SoundConst.STICK_IN_WOOD); } else { SoundManager.play(MathUtils.anyOfString(SoundConst.STICK_IN_BODY_0, SoundConst.STICK_IN_BODY_1, SoundConst.STICK_IN_BODY_2)); m_staticLayer.addChild(_arg1); }; if (_local4){ m_backgroundLayer.addChild(_arg1); }; _local6 = new b2RevoluteJointDef(); _local6.lowerAngle = MathUtils.RandomRange((-(Math.PI) / 8), (-(Math.PI) / 12)); _local6.upperAngle = MathUtils.RandomRange((Math.PI / 12), (Math.PI / 8)); _local6.enableLimit = true; _local7 = _arg1.getHeadFixture().GetAABB(); _local8 = new b2Vec2(((_local7.lowerBound.x + _local7.upperBound.x) / 2), ((_local7.lowerBound.y + _local7.upperBound.y) / 2)); _local6.Initialize(_arg1.getBody(), _arg2.GetBody(), _local8); m_world.CreateJoint(_local6); if (_arg2.GetBody().GetType() == b2Body.b2_dynamicBody){ _arg1.resumeFly(); }; }; if (!_arg2.IsSensor()){ _arg1.onAnyContact(); }; } public function onContactWithArrowBody(_arg1:Arrow, _arg2:b2Fixture):void{ var _local3:MapObject; for each (_local3 in m_mapObjects) { if (_local3.isItYourFixture(_arg2)){ _local3.onArrowContact(_arg1, _arg2); break; }; }; if (!_arg2.IsSensor()){ _arg1.onAnyContact(); }; } public function createArrow(_arg1:b2Vec2, _arg2:b2Vec2):Arrow{ var _local3:b2BodyDef = new b2BodyDef(); _local3.type = b2Body.b2_dynamicBody; _local3.position = _arg1; var _local4:b2Body = m_world.CreateBody(_local3); var _local5:b2PolygonShape = new b2PolygonShape(); var _local6:Number = m_physScale; _local5.SetAsArray([new b2Vec2((-(Arrow.m_halfWidth) / _local6), (-(Arrow.m_halfWidth) / _local6)), new b2Vec2(0, ((-(Arrow.m_halfWidth) / _local6) * 1.05)), new b2Vec2((Arrow.m_halfWidth / _local6), (-(Arrow.m_halfWidth) / _local6)), new b2Vec2((Arrow.m_halfWidth / _local6), (Arrow.m_halfWidth / _local6)), new b2Vec2((-(Arrow.m_halfWidth) / _local6), (Arrow.m_halfWidth / _local6))], 5); var _local7:int; while (_local7 < _local5.GetVertexCount()) { _local5.GetVertices()[_local7].Add(new b2Vec2(0, (-((Arrow.m_halfHeight + Arrow.m_halfWidth)) / m_physScale))); _local7++; }; var _local8:b2FixtureDef = new b2FixtureDef(); _local8.shape = _local5; _local8.density = 2.5; _local8.friction = 0.5; _local8.restitution = 0.1; _local8.filter.groupIndex = -1; var _local9:b2Fixture = _local4.CreateFixture(_local8); var _local10:b2PolygonShape = new b2PolygonShape(); _local10.SetAsBox((Arrow.m_halfWidth / m_physScale), (Arrow.m_halfHeight / m_physScale)); var _local11:b2FixtureDef = new b2FixtureDef(); _local11.shape = _local10; _local11.density = 2.5; _local11.friction = 0.5; _local11.restitution = 0.1; _local11.filter.groupIndex = -1; var _local12:b2Fixture = _local4.CreateFixture(_local11); _local4.SetLinearVelocity(_arg2); _local4.SetBullet(true); var _local13:Arrow = new Arrow(_local9, _local12, _local4); m_arrows.push(_local13); _local4.SetUserData(_local13); m_arrowsLayer.addChild(_local13); _local13.x = (_arg1.x * m_physScale); _local13.y = (_arg1.y * m_physScale); _local13.rotation = MathUtils.RadToGrad(_local4.GetAngle()); if (((m_curLevel + 1) % 12) == 0){ _local13.setFreeFly(); }; return (_local13); } private function updateScores():void{ if (m_tmpScores < m_currentScores){ m_tmpScores = (m_tmpScores + 31); if (m_tmpScores > m_currentScores){ m_tmpScores = m_currentScores; }; }; } public function createGibbletGround(_arg1:Number, _arg2:Number):void{ var _local3:b2BodyDef = new b2BodyDef(); _local3.position.x = (_arg1 / m_physScale); _local3.position.y = (_arg2 / m_physScale); var _local4:b2PolygonShape = new b2PolygonShape(); var _local5:Array = [new b2Vec2((-75 / m_physScale), (-33 / m_physScale)), new b2Vec2((75 / m_physScale), (-33 / m_physScale)), new b2Vec2((30 / m_physScale), (27 / m_physScale)), new b2Vec2((0 / m_physScale), (38 / m_physScale)), new b2Vec2((-28 / m_physScale), (27 / m_physScale))]; _local4.SetAsArray(_local5, _local5.length); var _local6:b2Body = m_world.CreateBody(_local3); var _local7:b2FixtureDef = new b2FixtureDef(); _local7.shape = _local4; m_allStones.push(_local6.CreateFixture(_local7)); _local6.SetUserData(new GibbetGround()); m_staticLayer.addChild(_local6.GetUserData()); } public function boomAt(_arg1:b2Body):void{ var _local5:b2Body; var _local6:Object; var _local7:b2Vec2; var _local8:Number; SoundManager.play(SoundConst.EXPLOISON); var _local2:b2Vec2 = _arg1.GetPosition(); var _local3:Array = new Array(); var _local4:b2Body = m_world.GetBodyList(); while (_local4) { if (_arg1 == _local4){ } else { _local6 = _local4.GetUserData(); if ((((_local6 is Box)) || ((_local6 is TNTBarrel)))){ _local7 = _local2.Copy(); _local7.Subtract(_local4.GetPosition()); _local8 = _local7.Length(); _local7.Normalize(); _local7.Multiply((-(Constant.BOMB_IMPULSE) / (_local8 * _local8))); _local4.ApplyImpulse(_local7, _local4.GetPosition()); _local4.ApplyTorque(MathUtils.RandomRange(-0.01, 0.01)); }; }; _local4 = _local4.GetNext(); }; m_world.DestroyBody(_arg1); for each (_local5 in _local3) { m_world.DestroyBody(_local5); }; } private function highlightZone(_arg1:TurtorialFrame):void{ m_state = STATE_SHOW_HIGHLIGHT; if (((m_turtorialFrame) && (m_turtorialFrame.parent))){ if (m_turtorialFrame.getTextClip()){ m_turtorialFrame.getTextClip().removeEventListener(MouseEvent.CLICK, onTurtotialFrameClick); }; if (m_turtorialFrame.getClickSign()){ m_turtorialFrame.getClickSign().removeEventListener(MouseEvent.CLICK, onTurtotialFrameClick); }; m_turtorialFrame.removeEventListener(MouseEvent.CLICK, onTurtotialFrameClick); this.removeChild(m_turtorialFrame); }; m_turtorialFrame = _arg1; this.addChild(m_turtorialFrame); var _local2:ClickToContinue = new ClickToContinue(); _local2.buttonMode = true; this.addChild(_local2); _local2.x = 320; _local2.y = 460; m_turtorialFrame.setClickSign(_local2); var _local3:HideTipsPanel = new HideTipsPanel(); addChild(_local3); m_turtorialFrame.setCheckBox(_local3); m_turtorialFrame.addEventListener(MouseEvent.CLICK, onTurtotialFrameClick); m_turtorialFrame.getTextClip().addEventListener(MouseEvent.CLICK, onTurtotialFrameClick); m_turtorialFrame.getClickSign().addEventListener(MouseEvent.CLICK, onTurtotialFrameClick); this.addChild(m_turtorialFrame.getTextClip()); } private function onTurtotialFrameClick(_arg1:MouseEvent):void{ if (m_state == STATE_SHOW_HIGHLIGHT){ hideHighlight(); }; } public function addArrows(_arg1:int, _arg2:Number, _arg3:Number):void{ m_arrowsLeft = (m_arrowsLeft + _arg1); recalcGui(); var _local4:AddPointsEffect = new AddPointsEffect(_arg1, 1, _arg2, _arg3, " arrows"); m_frontLayer.addChild(_local4); m_mapObjects.push(_local4); } private function checkOutOfArrows():void{ var _local1:OutOfArrowsEffect; if (m_nextState){ return; }; if (m_arrowsLeft == 0){ if (m_arrows.length == 0){ _local1 = new OutOfArrowsEffect(); addChild(_local1); m_mapObjects.push(_local1); lose(); }; }; } override public function onInit():void{ var _local1:String; var _local2:XML; var _local3:String; var _local4:XML; var _local5:TargetedCamera; super.onInit(); m_view = new PlayStateView(); m_view.m_buttonMenu.addEventListener(MouseEvent.CLICK, onMenuClick); m_view.m_buttonReplay.addEventListener(MouseEvent.CLICK, onReplayClick); m_nextStateTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onNextStateTimer); if (m_camera){ SoundManager.playLoop(SoundConst.MAIN_MENU_MUSIC); } else { if ((m_curLevel % 2)){ SoundManager.playLoop(SoundConst.AMBIENT_1); } else { SoundManager.playLoop(SoundConst.AMBIENT_2); }; }; m_gibbetsOnLevel = 0; m_deadID = -1; m_arrowsUsed = 0; m_currentScores = 0; m_arrowsLeft = GameData.getArrowsLeft(m_curLevel); if (GameData.haveAchievement(Achievements.WITH_STAR_40)){ m_arrowsLeft++; }; m_wasStar = true; setState(STATE_NORMAL); addChild(m_layersContainer); m_layersContainer.addChild(m_backgroundLayer); m_layersContainer.addChild(m_cloudsLayer); m_layersContainer.addChild(m_staticLayer); m_layersContainer.addChild(m_dynamicLayer); m_layersContainer.addChild(m_frontLayer); m_layersContainer.addChild(m_arrowsLayer); addChild(m_debugSprite); addChild(m_guiLayer); m_world.SetContactListener(m_contactListener); m_bow = new Bow(); m_frontLayer.addChild(m_bow); if (Constant.m_debugMode){ _local1 = ((m_curLevel)<10) ? ("Level0" + m_curLevel) : ("Level" + m_curLevel); _local2 = parseClipToXML(new ((ApplicationDomain.currentDomain.getDefinition(_local1) as Class))); trace(_local2); }; if (Levels.LEVELS[m_curLevel]){ parseLevel(Levels.LEVELS[m_curLevel]); } else { _local3 = ((m_curLevel)<10) ? ("Level0" + m_curLevel) : ("Level" + m_curLevel); _local4 = parseClipToXML(new ((ApplicationDomain.currentDomain.getDefinition(_local3) as Class))); parseLevel(_local4); }; m_layersContainer.addChild(m_sightClip); m_sightClip.x = m_bow.x; m_sightClip.y = m_bow.y; recalcGui(); m_guiLayer.addChild(m_view); if (m_state == STATE_NOT_INITILIAZED){ setState(STATE_NORMAL); }; if (m_camera == null){ m_camera = new Camera(); }; m_camera.setStateClip(m_layersContainer); m_camera.setGUILayer(m_guiLayer); update((1 / 30)); if (Constant.m_debugMode){ super.initDebugDraw(); }; m_view.addChild(new MoreGamesPanel(LinksManager.PLAYSTATE_SCREEN, true)); GameData.onStartLevel(m_curLevel); if ((m_camera is TargetedCamera)){ _local5 = (m_camera as TargetedCamera); _local5.setBow(m_bow); _local5.setState(TargetedCamera.SHOW_GIBBET); }; } private function onReplayClick(_arg1:MouseEvent):void{ m_nextStateTimer.stop(); SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(GameData.getNextState(PlayState.m_curLevel)); GameData.onRestart(); } private function hideHighlight():void{ if (m_turtorialFrame){ m_turtorialFrame.hide(); }; } public function createTeleportGhost(_arg1:DisplayObject):void{ var _local2:b2CircleShape = new b2CircleShape((21 / m_physScale)); var _local3:b2FixtureDef = new b2FixtureDef(); _local3.shape = _local2; _local3.isSensor = true; var _local4:b2BodyDef = new b2BodyDef(); _local4.position = new b2Vec2((_arg1.x / m_physScale), (_arg1.y / m_physScale)); var _local5:b2Body = m_world.CreateBody(_local4); _local5.CreateFixture(_local3); var _local6:TeleportGhost = new TeleportGhost(); _local6.connectWithBody(_local5); m_dynamicLayer.addChild(_local6); m_mapObjects.push(_local6); } private function parseLevel(_arg1:XML):void{ var _local2:MapObject; var _local3:Number; var _local4:Number; var _local5:b2Vec2; var _local6:Number; var _local7:DisplayObject; var _local8:b2Fixture; var _local9:TurtorialFrame; for each (_arg1 in _arg1.elements("Object")) { _local3 = _arg1.@x; _local4 = _arg1.@y; _local5 = new b2Vec2((_local3 / m_physScale), (_local4 / m_physScale)); _local6 = _arg1.@rotation; if (String(_arg1.@clip_name) != ""){ _local7 = (new ((getDefinitionByName(_arg1.@clip_name) as Class)) as DisplayObject); _local7.x = _local3; _local7.y = _local4; _local7.rotation = _local6; }; switch (String(_arg1.@type)){ case ParserConst.TYPE_EDGE_MARKER: if (_arg1.@is_left == "true"){ _local7.name = Constant.LEFT_EDGE_MARKER_NAME; } else { _local7.name = Constant.RIGHT_EDGE_MARKER_NAME; }; m_layersContainer.addChild(_local7); _local7.alpha = 0; break; case ParserConst.TYPE_STATIC_BOX: _local7.cacheAsBitmap = true; _local8 = createStaticBoxFromClip(_local7, m_staticLayer); if (_arg1.@is_stone == "true"){ m_allStones.push(_local8); }; break; case ParserConst.TYPE_GROUND: _local7.cacheAsBitmap = true; _local7.scaleY = 0.75; createStaticBoxFromClip(_local7, m_staticLayer); _local7.scaleY = 1; break; case ParserConst.TYPE_DYNAMIC_BOX: createDynamicBoxFromClip(m_dynamicLayer, _local7); break; case ParserConst.TYPE_VULTURE: createVulture(_local7, (_arg1.@inverted == "true")); break; case ParserConst.TYPE_TNT_BARREL: createTNTBarrel(_local7); break; case ParserConst.TYPE_CLOUD: createCloud(_local7); break; case ParserConst.TYPE_GIBBET_GROUND: createGibbletGround(_local3, _local4); break; case ParserConst.TYPE_GIBBET: createGibbet(_local5, _arg1.@pers_id, _arg1.@path_to_hang, _arg1.@chains_count, (_arg1.@connect_legs == "true"), _arg1.@cloud_name, _arg1.@cloud_prob); break; case ParserConst.TYPE_SHOOTING_POINT: m_bow.x = _local3; m_bow.y = _local4; m_bow.rotation = (_local6 + 90); break; case ParserConst.TYPE_AMMO_GHOST: createAmmoGhost(_local7, _arg1.@power); break; case ParserConst.TYPE_POINTS_GHOST: createPointsGhost(_local7, _arg1.@power); break; case ParserConst.TYPE_TELEPORT_GHOST: createTeleportGhost(_local7); break; case ParserConst.TYPE_SUN: createSun(_local5); break; case ParserConst.TYPE_BACKGROUND: _local7.cacheAsBitmap = true; _local7.scaleX = _arg1.@scaleX; _local7.scaleY = _arg1.@scaleY; m_backgroundLayer.addChild(_local7); break; case ParserConst.TYPE_FRONTGROUND: _local7.scaleX = _arg1.@scaleX; _local7.scaleY = _arg1.@scaleY; _local7.width = _arg1.@width; _local7.height = _arg1.@height; m_frontLayer.addChild(_local7); break; case ParserConst.TYPE_ROTOR: _local7.scaleX = _arg1.@scaleX; _local7.scaleY = _arg1.@scaleY; createRotorFromClip(_local7, _arg1.@speed); break; case ParserConst.TYPE_HEDHEHOG_GHOST: createHedgehogGhost(_local7, _arg1.@charge, _arg1.@speed); break; case ParserConst.TYPE_HIGHLIGHT: if (((!(GameData.isAlreadyPlayed(m_curLevel))) && (GameData.isHintsOn()))){ _local9 = new TurtorialFrame(_arg1.@size, _local7); _local9.x = _local3; _local9.y = _local4; _local7.x = 0; _local7.y = 0; m_turtorialFrames.push(_local9); }; break; case ParserConst.TYPE_GIBBET_OBLIQUELY: _local7.cacheAsBitmap = true; createGibbetObliquely(_local7, (_arg1.@inverted == "true")); break; case ParserConst.TYPE_COW: createCow(_local7, (_arg1.@inverted == true)); break; }; }; for each (_local2 in m_mapObjects) { _local2.goTop(m_backgroundLayer, m_cloudsLayer, m_staticLayer, m_dynamicLayer, m_frontLayer); }; } override public function handleMouseDown(_arg1:MouseEvent):void{ super.handleMouseDown(_arg1); switch (m_state){ case STATE_NORMAL: if (((m_bow.hitTestPoint(_arg1.stageX, _arg1.stageY)) && (m_camera.canShoot()))){ if (m_arrowsLeft > 0){ m_shootingPower = 10; m_bow.startStretch(); setState(STATE_TAKE_AIM); handleMouseMove(_arg1); }; }; break; }; } public function createCloud(_arg1:DisplayObject):void{ m_cloudsLayer.addChild(_arg1); m_mapObjects.push((_arg1 as Cloud)); } private function createRotorFromClip(_arg1:DisplayObject, _arg2:Number):b2Body{ var _local3:Number = _arg1.rotation; _arg2 = MathUtils.GradToRad(_arg2); _arg1.rotation = 0; var _local4:b2BodyDef = new b2BodyDef(); _local4.type = b2Body.b2_dynamicBody; var _local5:b2Body = m_world.CreateBody(_local4); var _local6:b2PolygonShape = new b2PolygonShape(); var _local7:Array = new Array(); _local7.push(new b2Vec2(((-(_arg1.width) / 2) / m_physScale), ((_arg1.height / 2) / m_physScale))); _local7.push(new b2Vec2(((-(_arg1.width) / 2) / m_physScale), ((-(_arg1.height) / 2) / m_physScale))); _local7.push(new b2Vec2(((_arg1.width / 4) / m_physScale), 0)); _local6.SetAsVector(_local7, _local7.length); var _local8:b2FixtureDef = new b2FixtureDef(); _local8.shape = _local6; _local8.density = 150; _local8.friction = 0.4; _local8.restitution = 0.1; m_allStones.push(_local5.CreateFixture(_local8)); var _local9:b2PolygonShape = new b2PolygonShape(); var _local10:Array = new Array(); _local10.push(new b2Vec2(((_arg1.width / 2) / m_physScale), ((-(_arg1.height) / 2) / m_physScale))); _local10.push(new b2Vec2(((_arg1.width / 2) / m_physScale), ((_arg1.height / 2) / m_physScale))); _local10.push(new b2Vec2(((-(_arg1.width) / 4) / m_physScale), 0)); _local9.SetAsVector(_local10, _local10.length); var _local11:b2FixtureDef = new b2FixtureDef(); _local11.shape = _local9; _local11.density = 150; _local11.friction = 0.4; _local11.restitution = 0.1; m_allStones.push(_local5.CreateFixture(_local11)); _local5.SetUserData(_arg1); _local5.SetPositionAndAngle(new b2Vec2((_arg1.x / m_physScale), (_arg1.y / m_physScale)), MathUtils.GradToRad(_local3)); _local5.SetAngularVelocity(_arg2); var _local12:b2RevoluteJointDef = new b2RevoluteJointDef(); _local12.Initialize(m_world.GetGroundBody(), _local5, _local5.GetPosition()); m_world.CreateJoint(_local12); m_dynamicLayer.addChild(_arg1); return (_local5); } public function createSun(_arg1:b2Vec2):void{ var _local2:b2CircleShape = new b2CircleShape((22 / m_physScale)); var _local3:b2FixtureDef = new b2FixtureDef(); _local3.density = 1; _local3.friction = 0.4; _local3.restitution = 0.3; _local3.shape = _local2; var _local4:b2BodyDef = new b2BodyDef(); _local4.position = _arg1; _local4.type = b2Body.b2_dynamicBody; var _local5:b2Body = m_world.CreateBody(_local4); _local5.CreateFixture(_local3); var _local6:Sun = new Sun(); _local6.connectWithBody(_local5); m_backgroundLayer.addChild(_local5.GetUserData()); var _local7:b2RevoluteJointDef = new b2RevoluteJointDef(); _local7.maxMotorTorque = 0.5; _local7.motorSpeed = 0; _local7.enableMotor = true; _local7.Initialize(m_world.GetGroundBody(), _local5, _arg1); m_world.CreateJoint(_local7); m_mapObjects.push(_local6); } private function updateArrows(_arg1:Number):void{ var _local3:Arrow; var _local2:Array = new Array(); for each (_local3 in m_arrows) { _local3.update(_arg1); if (_local3.isNeeded()){ _local2.push(_local3); } else { if (_local3.isDead()){ _local3.destroyBody(m_world); m_arrowsLayer.removeChild(_local3); }; }; }; m_arrows = _local2; } public function onBeginContact(_arg1:b2Contact):void{ var _local4:Arrow; var _local2:b2Fixture = _arg1.GetFixtureA(); var _local3:b2Fixture = _arg1.GetFixtureB(); for each (_local4 in m_arrows) { if (_local2 == _local4.getBodyFixture()){ m_arrowBodyToBodyContacts[_local3] = _local4; }; if (_local3 == _local4.getBodyFixture()){ m_arrowBodyToBodyContacts[_local2] = _local4; }; if (_local2 == _local4.getHeadFixture()){ m_arrowHeadsToBodyContacts[_local3] = _local4; if (((((((((!((_local3.GetFilterData().groupIndex == -1))) && (!(_local3.IsSensor())))) && (!(_local4.isStickIn())))) && (_local4.canStickIn()))) && ((m_allStones.indexOf(_local3) == -1)))){ _local4.stopFly(); }; }; if (_local3 == _local4.getHeadFixture()){ m_arrowHeadsToBodyContacts[_local2] = _local4; if (((((((((!((_local2.GetFilterData().groupIndex == -1))) && (!(_local2.IsSensor())))) && (!(_local4.isStickIn())))) && (_local4.canStickIn()))) && ((m_allStones.indexOf(_local2) == -1)))){ _local4.stopFly(); }; }; }; } private function parseClipToXML(_arg1:MovieClip):XML{ var _local4:XML; var _local5:DisplayObject; var _local2:XML = <Level></Level> ; var _local3:int; while (_local3 < _arg1.numChildren) { _local4 = <Object/> ; _local5 = _arg1.getChildAt(_local3); if ((_local5 is StaticBoxIsStone)){ _local4.@type = ParserConst.TYPE_STATIC_BOX; _local4.@is_stone = true; } else { if ((_local5 is RightEdgeMarker)){ _local4.@type = ParserConst.TYPE_EDGE_MARKER; _local4.@is_left = false; } else { if ((_local5 is LeftEdgeMarker)){ _local4.@type = ParserConst.TYPE_EDGE_MARKER; _local4.@is_left = true; } else { if ((_local5 is CowHere)){ _local4.@type = ParserConst.TYPE_COW; _local4.@inverted = false; } else { if ((_local5 is InvertedCowHere)){ _local4.@type = ParserConst.TYPE_COW; _local4.@inverted = true; } else { if ((_local5 is StaticBoxIsNotStone)){ _local4.@type = ParserConst.TYPE_STATIC_BOX; _local4.@is_stone = false; } else { if ((_local5 is Ground)){ _local4.@type = ParserConst.TYPE_GROUND; } else { if ((_local5 is VultureHere)){ _local4.@type = ParserConst.TYPE_VULTURE; _local4.@inverted = false; } else { if ((_local5 is InvertedVultureHere)){ _local4.@type = ParserConst.TYPE_VULTURE; _local4.@inverted = true; } else { if ((_local5 is TNTBarrel)){ _local4.@type = ParserConst.TYPE_TNT_BARREL; } else { if ((_local5 is Box)){ _local4.@type = ParserConst.TYPE_DYNAMIC_BOX; } else { if ((_local5 is Cloud)){ _local4.@type = ParserConst.TYPE_CLOUD; } else { if ((_local5 is GibbetGround)){ _local4.@type = ParserConst.TYPE_GIBBET_GROUND; } else { if ((_local5 is HangerPoint)){ _local4.@type = ParserConst.TYPE_GIBBET; _local4.@pers_id = 1; _local4.@path_to_hang = HumanRagdoll.HEAD; _local4.@connect_legs = false; _local4.@chains_count = 7; } else { if ((_local5 is BowPoint)){ _local4.@type = ParserConst.TYPE_SHOOTING_POINT; } else { if ((_local5 is AmmoGhost3)){ _local4.@type = ParserConst.TYPE_AMMO_GHOST; _local4.@power = 3; } else { if ((_local5 is AmmoGhost5)){ _local4.@type = ParserConst.TYPE_AMMO_GHOST; _local4.@power = 5; } else { if ((_local5 is AmmoGhost10)){ _local4.@type = ParserConst.TYPE_AMMO_GHOST; _local4.@power = 10; } else { if ((_local5 is PointsGhost300)){ _local4.@type = ParserConst.TYPE_POINTS_GHOST; _local4.@power = 300; } else { if ((_local5 is PointsGhost500)){ _local4.@type = ParserConst.TYPE_POINTS_GHOST; _local4.@power = 500; } else { if ((_local5 is PointsGhost1000)){ _local4.@type = ParserConst.TYPE_POINTS_GHOST; _local4.@power = 1000; } else { if ((_local5 is TeleportGhost)){ _local4.@type = ParserConst.TYPE_TELEPORT_GHOST; } else { if ((_local5 is Sun)){ _local4.@type = ParserConst.TYPE_SUN; } else { if ((_local5 is MillFan)){ _local4.@type = ParserConst.TYPE_ROTOR; _local4.@speed = 1.1; _local4.@scaleX = _local5.scaleX; _local4.@scaleY = _local5.scaleY; } else { if ((_local5 is ArrowGhost1)){ _local4.@type = ParserConst.TYPE_HEDHEHOG_GHOST; _local4.@speed = 0; _local4.@charge = 1; } else { if ((_local5 is ArrowGhost3)){ _local4.@type = ParserConst.TYPE_HEDHEHOG_GHOST; _local4.@speed = 0; _local4.@charge = 3; } else { if ((_local5 is ArrowGhost4)){ _local4.@type = ParserConst.TYPE_HEDHEHOG_GHOST; _local4.@speed = 0; _local4.@charge = 4; } else { if ((_local5 is HintPoint)){ _local4.@type = ParserConst.TYPE_HIGHLIGHT; _local4.@size = 150; } else { if ((_local5 is HintText)){ } else { if ((_local5 is GibbetObliquely)){ _local4.@type = ParserConst.TYPE_GIBBET_OBLIQUELY; _local4.@inverted = false; } else { if ((_local5 is InvertedGibbetObliquely)){ _local4.@type = ParserConst.TYPE_GIBBET_OBLIQUELY; _local4.@inverted = true; } else { if ((_local5 is Frontground)){ _local4.@scaleX = _local5.scaleX; _local4.@scaleY = _local5.scaleY; _local4.@width = _local5.width; _local4.@height = _local5.height; _local4.@type = ParserConst.TYPE_FRONTGROUND; } else { _local4.@scaleX = _local5.scaleX; _local4.@scaleY = _local5.scaleY; _local4.@type = ParserConst.TYPE_BACKGROUND; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; _local4.@x = int((_local5.x + 0.5)); _local4.@y = int((_local5.y + 0.5)); _local4.@rotation = _local5.rotation; _local4.@clip_name = getQualifiedClassName(_local5); _local2.appendChild(_local4); _local3++; }; return (_local2); } private function createHedgehogGhost(_arg1:DisplayObject, _arg2:int, _arg3:Number):b2Body{ var _local6:Number; var _local4:b2BodyDef = new b2BodyDef(); _local4.type = b2Body.b2_staticBody; var _local5:b2Body = m_world.CreateBody(_local4); switch (_arg2){ case 1: _local6 = 18; break; case 3: _local6 = 19; break; case 4: _local6 = 19; break; }; var _local7:b2CircleShape = new b2CircleShape((_local6 / m_physScale)); var _local8:b2FixtureDef = new b2FixtureDef(); _local8.shape = _local7; _local8.isSensor = true; _local5.CreateFixture(_local8); _local5.SetUserData(_arg1); _local5.SetPositionAndAngle(new b2Vec2((_arg1.x / m_physScale), (_arg1.y / m_physScale)), 0); var _local9:HedgehogGhost = (_arg1 as HedgehogGhost); _local9.setRotationSpeed(_arg3); _local9.setCharge(_arg2); _local9.initRotation(); _local9.connectWithBody(_local5); m_mapObjects.push(_local9); m_dynamicLayer.addChild(_local9); return (_local5); } public function getArrowsLayer():Sprite{ return (m_arrowsLayer); } override public function onCleanup():void{ m_view.m_buttonMenu.removeEventListener(MouseEvent.CLICK, onMenuClick); m_view.m_buttonReplay.removeEventListener(MouseEvent.CLICK, onReplayClick); m_nextStateTimer.stop(); m_nextStateTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, onNextStateTimer); m_mapObjects = null; m_bow = null; m_turtorialFrames = null; m_turtorialFrame = null; m_guiLayer = null; m_layersContainer = null; m_backgroundLayer = null; m_cloudsLayer = null; m_staticLayer = null; m_dynamicLayer = null; m_frontLayer = null; m_arrowsLayer = null; m_arrows = null; m_contactListener = null; m_sightClip = null; m_nextState = null; m_nextStateTimer = null; m_arrowBodyToBodyContacts = null; m_arrowHeadsToBodyContacts = null; m_allStones = null; m_camera = null; super.onCleanup(); } override public function update(_arg1:Number):void{ super.update(_arg1); updateTurtorialFrame(_arg1); if (((!((m_turtorialFrames.length == 0))) || (!((m_turtorialFrame == null))))){ return; }; updateMapObjects(_arg1); m_bow.update(_arg1); processContacts(); updateArrows(_arg1); m_camera.update(_arg1); checkOutOfArrows(); updateScores(); recalcGui(); if (m_arrows.length == 0){ m_camera.onKillArrow(); }; } public function createAmmoGhost(_arg1:DisplayObject, _arg2):void{ var _local3:b2BodyDef = new b2BodyDef(); _local3.position = new b2Vec2((_arg1.x / m_physScale), (_arg1.y / m_physScale)); var _local4:b2Body = m_world.CreateBody(_local3); var _local5:b2PolygonShape = new b2PolygonShape(); _local5.SetAsBox(((_arg1.width / 2) / m_physScale), ((_arg1.height / 2) / m_physScale)); var _local6:b2FixtureDef = new b2FixtureDef(); _local6.isSensor = true; _local6.shape = _local5; var _local7:b2Fixture = _local4.CreateFixture(_local6); var _local8:AmmoGhost = (_arg1 as AmmoGhost); _local8.setPower(_arg2); _local8.connectWithBody(_local4); m_dynamicLayer.addChild(_local8); m_mapObjects.push(_local8); } override public function handleMouseMove(_arg1:MouseEvent):void{ var _local2:Vector3; super.handleMouseMove(_arg1); switch (m_state){ case STATE_TAKE_AIM: _local2 = new Vector3(((m_bow.x + m_layersContainer.x) - _arg1.stageX), ((m_bow.y + m_layersContainer.y) - _arg1.stageY), 0); if (GameData.m_invertedControl){ _local2 = _local2.negate(); }; m_shootingPower = (Constant.MIN_SHOOTING_POWER + ((_local2.length() / 7) * Math.pow((_local2.length() / Constant.MAX_SHOOTING_POWER), 0.4))); if (m_shootingPower < Constant.MIN_SHOOTING_POWER){ m_shootingPower = Constant.MIN_SHOOTING_POWER; }; if (m_shootingPower > Constant.MAX_SHOOTING_POWER){ m_shootingPower = Constant.MAX_SHOOTING_POWER; }; m_sightClip.scaleY = (m_shootingPower / 33); m_sightClip.rotation = _local2.get2DRotation(); m_bow.rotation = (_local2.get2DRotation() + 90); break; case STATE_NORMAL: if (isMouseDown()){ handleMouseDown(_arg1); }; break; }; } public function createPointsGhost(_arg1:DisplayObject, _arg2):void{ var _local3:b2BodyDef = new b2BodyDef(); _local3.position = new b2Vec2((_arg1.x / m_physScale), (_arg1.y / m_physScale)); var _local4:b2Body = m_world.CreateBody(_local3); var _local5:b2PolygonShape = new b2PolygonShape(); _local5.SetAsBox(((_arg1.width / 2) / m_physScale), ((_arg1.height / 2) / m_physScale)); var _local6:b2FixtureDef = new b2FixtureDef(); _local6.isSensor = true; _local6.shape = _local5; var _local7:b2Fixture = _local4.CreateFixture(_local6); var _local8:PointsGhost = (_arg1 as PointsGhost); _local8.setPower(_arg2); _local8.connectWithBody(_local4); m_dynamicLayer.addChild(_local8); m_mapObjects.push(_local8); } private function updateMapObjects(_arg1:Number):void{ var _local3:MapObject; var _local2:Array = new Array(); for each (_local3 in m_mapObjects) { _local3.update(_arg1); if (!_local3.isDead()){ _local2.push(_local3); } else { _local3.onDead(m_world); }; }; m_mapObjects = _local2; } public function getWorld():b2World{ return (m_world); } override public function handleMouseUp(_arg1:MouseEvent):void{ var _local2:b2Vec2; var _local3:Arrow; super.handleMouseUp(_arg1); if (m_state == STATE_TAKE_AIM){ m_bow.fire(); SoundManager.play(SoundConst.BOW_SHOOT); setState(STATE_NORMAL); _local2 = new b2Vec2(((m_bow.x + m_layersContainer.x) - _arg1.stageX), ((m_bow.y + m_layersContainer.y) - _arg1.stageY)); if (GameData.m_invertedControl){ _local2.NegativeSelf(); }; _local2.Normalize(); _local2.Multiply(m_shootingPower); _local3 = createArrow(new b2Vec2((m_bow.x / m_physScale), (m_bow.y / m_physScale)), _local2); m_camera.onShoot(_local3); m_arrowsLeft--; m_arrowsUsed++; recalcGui(); if ((m_camera is TargetedCamera)){ m_frontLayer.addChild(m_oldSightClip); m_oldSightClip.x = m_sightClip.x; m_oldSightClip.y = m_sightClip.y; m_oldSightClip.rotation = m_sightClip.rotation; m_oldSightClip.scaleX = m_sightClip.scaleX; m_oldSightClip.scaleY = m_sightClip.scaleY; m_oldSightClip.alpha = 0.25; }; }; super.handleMouseUp(_arg1); } private function win():void{ if (m_nextState == null){ GameData.onWinLevel(m_curLevel, m_currentScores, m_wasStar, m_savedCount); m_nextState = new WinState(); m_nextStateTimer.start(); }; } public function createVulture(_arg1:DisplayObject, _arg2:Boolean):void{ var _local3:int; var _local4:b2BodyDef = new b2BodyDef(); _local4.position = new b2Vec2((_arg1.x / m_physScale), (_arg1.y / m_physScale)); var _local5:b2Body = m_world.CreateBody(_local4); var _local6:b2PolygonShape = new b2PolygonShape(); _local6.SetAsBox((((_arg1.width / 2) / m_physScale) * 2), ((((_arg1.height / 2) / m_physScale) / 3) * 2)); _local3 = 0; while (_local3 < 4) { _local6.GetVertices()[_local3].y = (_local6.GetVertices()[_local3].y - ((((_arg1.height / 2) / m_physScale) / 3) * 2)); _local3++; }; var _local7:b2FixtureDef = new b2FixtureDef(); _local7.shape = _local6; var _local8:b2Fixture = _local5.CreateFixture(_local7); _local8.SetSensor(true); var _local9:b2PolygonShape = new b2PolygonShape(); _local9.SetAsBox((((_arg1.width / 2) / m_physScale) * 2), ((((_arg1.height / 2) / m_physScale) / 3) * 2)); _local3 = 0; while (_local3 < 4) { _local9.GetVertices()[_local3].y = (_local9.GetVertices()[_local3].y + ((((_arg1.height / 2) / m_physScale) / 3) * 2)); _local3++; }; var _local10:b2FixtureDef = new b2FixtureDef(); _local10.shape = _local9; var _local11:b2Fixture = _local5.CreateFixture(_local10); _local11.SetSensor(true); var _local12:Vulture = new Vulture(_local8, null, _local11, _arg2); m_staticLayer.addChild(_local12); _local12.connectWithBody(_local5); m_mapObjects.push(_local12); } public function createTNTBarrel(_arg1:DisplayObject):void{ var _local2:b2BodyDef = new b2BodyDef(); _local2.position = new b2Vec2((_arg1.x / m_physScale), (_arg1.y / m_physScale)); _local2.type = b2Body.b2_dynamicBody; var _local3:b2Body = m_world.CreateBody(_local2); var _local4:Number = 0.7; var _local5:b2PolygonShape = new b2PolygonShape(); var _local6:Array = [new b2Vec2(((-(_arg1.width) / 2) / m_physScale), 0), new b2Vec2((((-(_arg1.width) / 2) / m_physScale) * _local4), ((-(_arg1.height) / 2) / m_physScale)), new b2Vec2((((_arg1.width / 2) / m_physScale) * _local4), ((-(_arg1.height) / 2) / m_physScale)), new b2Vec2(((_arg1.width / 2) / m_physScale), 0), new b2Vec2((((_arg1.width / 2) / m_physScale) * _local4), ((_arg1.height / 2) / m_physScale)), new b2Vec2((((-(_arg1.width) / 2) / m_physScale) * _local4), ((_arg1.height / 2) / m_physScale))]; _local5.SetAsArray(_local6, _local6.length); var _local7:b2FixtureDef = new b2FixtureDef(); _local7.density = 1; _local7.friction = 0.5; _local7.restitution = 0.2; _local7.shape = _local5; m_allStones.push(_local3.CreateFixture(_local7)); var _local8:TNTBarrel = new TNTBarrel(); _local8.connectWithBody(_local3); m_dynamicLayer.addChild(_local8); m_mapObjects.push(_local8); } public function createCow(_arg1:DisplayObject, _arg2:Boolean):void{ var _local3:b2BodyDef = new b2BodyDef(); _local3.position.x = (_arg1.x / m_physScale); _local3.position.y = (_arg1.y / m_physScale); var _local4:b2PolygonShape = new b2PolygonShape(); var _local5:Array = parseShapeVectorFromClip((_arg2) ? new InvertedCowMaket() : new CowMaket(), "vertex"); _local4.SetAsVector(_local5, _local5.length); var _local6:b2Body = m_world.CreateBody(_local3); var _local7:b2FixtureDef = new b2FixtureDef(); _local7.shape = _local4; _local7.friction = 0.8; _local7.restitution = 0.1; _local6.CreateFixture(_local7); var _local8:Cow = new Cow(); if (_arg2){ _local8.scaleX = -1; }; _local8.connectWithBody(_local6); m_mapObjects.push(_local8); m_staticLayer.addChild(_local8); } public function createGibbet(_arg1:b2Vec2, _arg2:int, _arg3:String, _arg4:int, _arg5:Boolean, _arg6:String, _arg7:Number=0):void{ m_gibbetsOnLevel++; var _local8:Gibbet = new Gibbet(_arg1, _arg3, _arg4, m_world, _arg2, _arg5); if (_arg6 != ""){ _local8.setComixCloud(new ((getDefinitionByName(_arg6) as Class)), _arg7); }; m_dynamicLayer.addChild(_local8); m_mapObjects.push(_local8); _local8.getRagdoll().applyImpulse(new b2Vec2(MathUtils.RandomRange(-0.15, 0.15), 0)); if (m_camera){ m_camera.setGibbet(_local8); }; } public function onManCry():void{ if (m_nextState == null){ m_wasStar = false; }; } public function goNormalState():void{ setState(STATE_NORMAL); m_sightClip.x = m_bow.x; m_sightClip.y = m_bow.y; } public static function getInstance():PlayState{ return (m_instance); } } }//package States.PlayState import Box2D.Dynamics.*; import Box2D.Dynamics.Contacts.*; class MyContactListener extends b2ContactListener { private function MyContactListener(){ } override public function BeginContact(_arg1:b2Contact):void{ if ((((_arg1.GetFixtureA().GetBody().GetUserData() is Arrow)) && (_arg1.GetFixtureA().GetBody().GetUserData().isNeeded()))){ PlayState.getInstance().onBeginContact(_arg1); return; }; if ((((_arg1.GetFixtureB().GetBody().GetUserData() is Arrow)) && ((_arg1.GetFixtureB().GetBody().GetUserData() as Arrow).isNeeded()))){ PlayState.getInstance().onBeginContact(_arg1); return; }; } }Section 131//PointsGhost (States.PlayState.PointsGhost) package States.PlayState { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class PointsGhost extends MapObject { private var m_isActive:Boolean;// = true private var m_needRun:Boolean;// = false private var m_power:int; override public function onDead(_arg1:b2World):void{ parent.removeChild(this); } override public function update(_arg1:Number):void{ m_liveTime = (m_liveTime + _arg1); m_body.SetPosition(new b2Vec2(m_body.GetPosition().x, (m_body.GetPosition().y + (Math.sin((m_liveTime * 2.5)) * 0.007)))); if (m_needRun){ m_needRun = false; PlayState.getInstance().getWorld().DestroyBody(m_body); PlayState.getInstance().addPointsAt(m_body.GetPosition(), m_power); this.cacheAsBitmap = false; } else { if (!m_isActive){ scaleX = (scaleX + (_arg1 * 1.5)); scaleY = (scaleY + (_arg1 * 1.5)); if ((alpha = (alpha - 0.1)) <= 0){ alpha = 0; m_isDead = true; }; }; }; } override public function isDead():Boolean{ return (m_isDead); } public function setPower(_arg1:int):void{ m_power = _arg1; this.cacheAsBitmap = true; } override public function onArrowContact(_arg1:Arrow, _arg2:b2Fixture):void{ if (m_isActive){ m_isActive = false; m_needRun = true; SoundManager.play(SoundConst.POINTS); }; } } }//package States.PlayStateSection 132//Soul (States.PlayState.Soul) package States.PlayState { public class Soul extends MapObject { override public function update(_arg1:Number):void{ m_liveTime = (m_liveTime + _arg1); y = (y - (85 * _arg1)); if (m_liveTime > 0.6){ alpha = (alpha - (1.3 * _arg1)); }; } } }//package States.PlayStateSection 133//StaticBoxIsNotStone (States.PlayState.StaticBoxIsNotStone) package States.PlayState { import flash.display.*; public class StaticBoxIsNotStone extends MovieClip { } }//package States.PlayStateSection 134//StaticBoxIsStone (States.PlayState.StaticBoxIsStone) package States.PlayState { import flash.display.*; public class StaticBoxIsStone extends MovieClip { } }//package States.PlayStateSection 135//Sun (States.PlayState.Sun) package States.PlayState { import Box2D.Dynamics.*; import flash.display.*; public class Sun extends MapObject { public var m_sunCircle:MovieClip; public var m_face:MovieClip; public function Sun(){ m_face.stop(); } override public function onArrowContact(_arg1:Arrow, _arg2:b2Fixture):void{ if (m_face.currentFrame == 1){ SoundManager.play(SoundConst.SUN_VOICE); m_face.play(); }; } override public function update(_arg1:Number):void{ m_liveTime = (m_liveTime + _arg1); if (m_face.currentFrame == m_face.totalFrames){ m_face.gotoAndStop(1); }; m_sunCircle.rotation = -(rotation); } override public function onArrowHeadContact(_arg1:Arrow, _arg2:b2Fixture):void{ onArrowContact(_arg1, _arg2); } } }//package States.PlayStateSection 136//TargetedCamera (States.PlayState.TargetedCamera) package States.PlayState { import Utils.*; import flash.geom.*; import flash.display.*; import Ragdoll.*; public class TargetedCamera extends Camera { private const m_ceil:Number = 200; private const m_scrollbackMaxTime:Number = 1; private const m_maxCameraSpeed:Number = 900; private const m_floor:Number = 0; private var m_curPos:Vector3; private var m_scrollBackStartPos:Vector3; private var m_rightEdgeClip:DisplayObject; private var m_guiArrow:DisplayObject; private var m_stateTime:Number; private var m_targetPos:Vector3; private var m_arrow:Arrow; private var m_state:String;// = "AIMING_STATE" private var m_cameraSpeed:Vector3; private var m_gibbetHeadX:Number; private var m_cameraAcceleration:Vector3; private var m_gibbetHead:MovieClip; private var m_leftEdgeClip:DisplayObject; private var m_liveTime:Number;// = 0 private var m_bow:MovieClip; public static const TEST_STATE:String = "TEST_STATE"; public static const ARROW_FLY_STATE:String = "ARROW_FLY_STATE"; public static const COMPLETE_STATE:String = "COMPLETE_STATE"; public static const AIMING_STATE:String = "AIMING_STATE"; public static const SHOW_GIBBET:String = "SHOW_GIBBET"; public static const WAIT_BEFORE_BACK_STATE:String = "WAIT_BEFORE_BACK_STATE"; public static const SCROLL_BACK:String = "SCROLL_BACK"; public function TargetedCamera(){ m_guiArrow = new LongShootArrow(); super(); } override public function onShoot(_arg1:Arrow):void{ m_arrow = _arg1; setState(ARROW_FLY_STATE); } public function setBow(_arg1:MovieClip):void{ m_bow = _arg1; } override public function canShoot():Boolean{ return ((m_state == AIMING_STATE)); } override public function onKillArrow():void{ if (m_state == ARROW_FLY_STATE){ setState(WAIT_BEFORE_BACK_STATE); }; } override public function update(_arg1:Number):void{ var _local2:Number; var _local3:Number; var _local4:Number; m_liveTime = (m_liveTime + _arg1); m_stateTime = (m_stateTime + _arg1); if (m_stateClip){ switch (m_state){ case SHOW_GIBBET: if (m_gibbetHeadX > 0){ m_stateClip.x = (-(m_gibbetHeadX) + 320); } else { m_stateClip.x = (-(m_gibbetHead.x) + 320); }; m_stateClip.y = (-(m_gibbetHead.y) + 240); if (m_stateTime > 1.5){ setState(SCROLL_BACK); }; break; case AIMING_STATE: break; case ARROW_FLY_STATE: m_stateClip.x = (-(m_arrow.x) + 320); m_stateClip.y = (-(m_arrow.y) + 240); _local3 = m_rightEdgeClip.localToGlobal(new Point()).x; if (_local3 < 640){ setState(WAIT_BEFORE_BACK_STATE); }; _local4 = m_leftEdgeClip.localToGlobal(new Point()).x; if (_local4 > 0){ setState(WAIT_BEFORE_BACK_STATE); }; break; case SCROLL_BACK: if (m_stateTime < m_scrollbackMaxTime){ _local2 = Math.sin((((m_stateTime / m_scrollbackMaxTime) * Math.PI) / 2)); m_stateClip.x = (m_scrollBackStartPos.x + (((-(m_bow.x) + 320) - m_scrollBackStartPos.x) * _local2)); m_stateClip.y = (m_scrollBackStartPos.y + (((-(m_bow.y) + 240) - m_scrollBackStartPos.y) * _local2)); } else { setState(AIMING_STATE); }; break; case WAIT_BEFORE_BACK_STATE: if (m_stateTime > 0.9){ setState(SCROLL_BACK); }; break; }; if (m_stateClip.y < m_floor){ m_stateClip.y = m_floor; }; if (m_stateClip.y > m_ceil){ m_stateClip.y = m_ceil; }; updateHintArrow(); }; } override public function setStateClip(_arg1:Sprite):void{ super.setStateClip(_arg1); m_leftEdgeClip = _arg1.getChildByName(Constant.LEFT_EDGE_MARKER_NAME); m_rightEdgeClip = _arg1.getChildByName(Constant.RIGHT_EDGE_MARKER_NAME); } public function setState(_arg1:String):void{ m_stateTime = 0; m_state = _arg1; switch (m_state){ case SHOW_GIBBET: m_gibbetHeadX = m_gibbetHead.x; break; case AIMING_STATE: m_stateClip.x = (-(m_bow.x) + 320); break; case SCROLL_BACK: m_scrollBackStartPos = new Vector3(m_stateClip.x, m_stateClip.y, 0); break; case WAIT_BEFORE_BACK_STATE: break; }; } override public function setGibbet(_arg1:Gibbet):void{ m_gibbetHead = _arg1.getRagdoll().getBodyByName(HumanRagdoll.HEAD).GetUserData(); m_gibbetHeadX = m_gibbetHead.x; setState(SHOW_GIBBET); } override public function setGUILayer(_arg1:Sprite):void{ super.setGUILayer(_arg1); m_guiLayer.addChild(m_guiArrow); m_guiArrow.visible = false; } override public function onHangerDead():void{ setState(COMPLETE_STATE); } private function updateHintArrow():void{ var _local1:Number; if (m_bow){ _local1 = m_gibbetHead.localToGlobal(new Point()).x; if ((((_local1 > -50)) && ((_local1 < (640 + 50))))){ m_guiArrow.visible = false; } else { m_guiArrow.y = m_gibbetHead.localToGlobal(new Point()).y; if (m_bow.x < m_gibbetHead.x){ m_guiArrow.scaleX = 0.7; m_guiArrow.scaleY = 0.7; m_guiArrow.x = (((640 - m_guiArrow.width) - 10) + (7 * Math.sin((m_liveTime * 5)))); } else { m_guiArrow.scaleX = -0.7; m_guiArrow.scaleY = 0.7; m_guiArrow.x = ((m_guiArrow.width + 10) + (7 * Math.sin((m_liveTime * 5)))); }; m_guiArrow.visible = true; }; }; } override public function onHangerSave():void{ setState(COMPLETE_STATE); } } }//package States.PlayStateSection 137//TeleportGhost (States.PlayState.TeleportGhost) package States.PlayState { import Box2D.Dynamics.*; import flash.display.*; public class TeleportGhost extends MapObject { private var m_isActive:Boolean;// = true private var m_needRun:Boolean;// = false override public function onArrowContact(_arg1:Arrow, _arg2:b2Fixture):void{ if (m_isActive){ m_body = body; m_isActive = false; m_needRun = true; _arg1.kill(); }; } override public function update(_arg1:Number):void{ var _local2:Sprite; if (m_needRun){ m_needRun = false; PlayState.getInstance().startTeleportHere(m_body.GetPosition()); PlayState.getInstance().getWorld().DestroyBody(m_body); SoundManager.play(SoundConst.TELEPORT); } else { if (!m_isActive){ _local2 = (m_body.GetUserData() as Sprite); if ((_local2.alpha = (_local2.alpha - 0.1)) <= 0){ _local2.alpha = 0; }; }; }; } } }//package States.PlayStateSection 138//TNTBarrel (States.PlayState.TNTBarrel) package States.PlayState { import Box2D.Dynamics.*; public class TNTBarrel extends MapObject { private var m_isActivated:Boolean;// = true public function TNTBarrel(){ stop(); } override public function onDead(_arg1:b2World):void{ parent.removeChild(this); } override public function onArrowHeadContact(_arg1:Arrow, _arg2:b2Fixture):void{ if (m_isActivated){ m_isActivated = false; PlayState.getInstance().boomAt(m_body); play(); }; } override public function update(_arg1:Number):void{ if (currentFrame == totalFrames){ m_isDead = true; }; } override public function onArrowContact(_arg1:Arrow, _arg2:b2Fixture):void{ if (m_isActivated){ m_isActivated = false; PlayState.getInstance().boomAt(m_body); play(); }; } } }//package States.PlayStateSection 139//TurtorialFrame (States.PlayState.TurtorialFrame) package States.PlayState { import flash.events.*; import flash.display.*; public class TurtorialFrame extends MovieClip { private const m_maxShowTime:Number = 0.5; private const m_maxHideTime:Number = 0.2; private var m_endScale:Number;// = 1 private var m_finished:Boolean;// = false private var m_clickSign:MovieClip; private var m_isShow:Boolean;// = true private var m_startScale:Number;// = 9 private var m_needToHide:Boolean;// = false private var m_liveTime:Number;// = 0 private var m_textClip:DisplayObject; private var m_checkBox:HideTipsPanel; public function TurtorialFrame(_arg1:Number, _arg2:DisplayObject):void{ this.buttonMode = true; (_arg2 as MovieClip).buttonMode = true; m_endScale = (_arg1 / 80); m_textClip = _arg2; update(0); } public function isShow():Boolean{ return (m_isShow); } public function update(_arg1:Number):void{ var _local2:Number; m_liveTime = (m_liveTime + _arg1); if (m_clickSign){ m_clickSign.scaleX = ((Math.sin((m_liveTime * 6)) * 0.03) + 1); m_clickSign.scaleY = ((Math.sin((m_liveTime * 6)) * 0.03) + 1); }; if (!m_finished){ if (m_isShow){ _local2 = (m_liveTime / m_maxShowTime); if (_local2 > 1){ m_finished = true; _local2 = 1; }; alpha = (0.6 * _local2); if (m_clickSign){ m_clickSign.scaleX = _local2; m_clickSign.scaleY = _local2; }; if (m_textClip){ m_textClip.alpha = _local2; }; if (m_checkBox){ m_checkBox.alpha = _local2; }; scaleX = (m_startScale + ((m_endScale - m_startScale) * _local2)); scaleY = scaleX; } else { _local2 = (m_liveTime / m_maxHideTime); if (_local2 > 1){ m_finished = true; _local2 = 1; this.visible = false; }; alpha = (0.6 * (1 - _local2)); scaleX = (m_endScale + (2 * _local2)); scaleY = scaleX; if (m_clickSign){ m_clickSign.alpha = (1 - _local2); }; if (m_textClip){ m_textClip.alpha = (1 - _local2); }; if (m_checkBox){ m_checkBox.alpha = (1 - _local2); }; }; }; } public function hide():void{ m_liveTime = 0; m_isShow = false; m_finished = false; } public function isNeedToHide():Boolean{ return (m_needToHide); } public function getCheckBox():HideTipsPanel{ return (m_checkBox); } public function getTextClip():DisplayObject{ return (m_textClip); } public function setClickSign(_arg1:MovieClip):void{ m_clickSign = _arg1; m_clickSign.scaleX = 0; m_clickSign.scaleY = 0; } public function setCheckBox(_arg1:HideTipsPanel):void{ m_checkBox = _arg1; m_checkBox.alpha = 0; _arg1.m_checkBox.addEventListener(CheckBox.EVENT_CHANGE, onCheckBoxChange); } public function getClickSign():MovieClip{ return (m_clickSign); } private function onCheckBoxChange(_arg1:Event):void{ var _local2:CheckBox = (_arg1.target as CheckBox); SoundManager.play(SoundConst.CLICK); m_needToHide = _local2.isChecked(); } public function isFinished():Boolean{ return (m_finished); } } }//package States.PlayStateSection 140//Vulture (States.PlayState.Vulture) package States.PlayState { import Box2D.Dynamics.*; import flash.display.*; public class Vulture extends MapObject { private var m_anim:MovieClip; private var m_torsoFixture:b2Fixture;// = null private var m_isLeft:Boolean;// = false private var m_legsFixture:b2Fixture;// = null private var m_headFixture:b2Fixture;// = null public function Vulture(_arg1:b2Fixture, _arg2:b2Fixture, _arg3:b2Fixture, _arg4:Boolean){ m_anim = new VultureJump(); super(); m_isLeft = _arg4; m_legsFixture = _arg3; m_torsoFixture = _arg2; m_headFixture = _arg1; m_anim.clip.stop(); addChild(m_anim); if (m_isLeft){ m_anim.scaleX = -1; }; } override public function isItYourFixture(_arg1:b2Fixture):Boolean{ return ((((((_arg1 == m_legsFixture)) || ((_arg1 == m_torsoFixture)))) || ((_arg1 == m_headFixture)))); } override public function update(_arg1:Number):void{ if ((((m_anim.clip.currentFrame == m_anim.clip.totalFrames)) && (!(m_isDead)))){ m_anim.clip.gotoAndStop(1); }; } override public function onArrowContact(_arg1:Arrow, _arg2:b2Fixture):void{ if (m_anim.clip.currentFrame == 1){ removeChild(m_anim); switch (_arg2){ case m_legsFixture: m_anim = new VultureJump(); break; case m_headFixture: m_anim = new VultureBend(); break; case m_torsoFixture: break; }; if (m_isLeft){ m_anim.scaleX = -1; }; addChild(m_anim); m_anim.clip.play(); }; } } }//package States.PlayStateSection 141//AchievementsState (States.AchievementsState) package States { import flash.events.*; import Main.*; import flash.utils.*; public class AchievementsState extends GameState { private static const BONUS_COLOR:String = "#FFCC00"; private static const REQUIREMENTS_COLOR:String = "#FFCC00"; private static const TITLE_COLOR:String = "#55FF55"; private function onMenuClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(GameData.getSelectLevelScreen()); } override public function onCleanup():void{ m_view.m_buttonMenu.removeEventListener(MouseEvent.CLICK, onMenuClick); super.onCleanup(); } override public function onInit():void{ var _local2:String; var _local3:Achievement; var _local4:Hint; m_view = new AchievementsStateView(); addChild(m_view); m_view.addChild(new MoreGamesPanel(LinksManager.ACHIEVEMENTS_SCREEN)); var _local1:Dictionary = new Dictionary(); _local1[Achievements.CROWN] = (((((((("<FONT COLOR='" + TITLE_COLOR) + "'>CROWN</FONT><br>") + "<br><FONT COLOR='") + REQUIREMENTS_COLOR) + "'>Requirements:</FONT> get all achievements.<br>") + "<br><FONT COLOR='") + BONUS_COLOR) + "'>Bonus:</FONT> +30 000 points."); _local1[Achievements.HALF_COMPLETED] = (((((((("<FONT COLOR='" + TITLE_COLOR) + "'>SILVER GIBBET</FONT><br>") + "<br><FONT COLOR='") + REQUIREMENTS_COLOR) + "'>Requirements:</FONT> Pass 24 levels.<br>") + "<br><FONT COLOR='") + BONUS_COLOR) + "'>Bonus:</FONT> +5 000 points."); _local1[Achievements.FULL_COMPLETED] = (((((((("<FONT COLOR='" + TITLE_COLOR) + "'>GOLDEN GIBBET</FONT><br>") + "<br><FONT COLOR='") + REQUIREMENTS_COLOR) + "'>Requirements:</FONT> Pass all levels.<br>") + "<br><FONT COLOR='") + BONUS_COLOR) + "'>Bonus:</FONT> +5 secret space levels."); _local1[Achievements.WITH_STAR_40] = (((((((("<FONT COLOR='" + TITLE_COLOR) + "'>STAR</FONT><br>") + "<br><FONT COLOR='") + REQUIREMENTS_COLOR) + "'>Requirements:</FONT> Pass 40 levels with a star rating.<br>") + "<br><FONT COLOR='") + BONUS_COLOR) + "'>Bonus:</FONT> +1 arrow at each level."); _local1[Achievements.ACCURACY_70] = (((((((("<FONT COLOR='" + TITLE_COLOR) + "'>SNIPER CUP</FONT><br>") + "<br><FONT COLOR='") + REQUIREMENTS_COLOR) + "'>Requirements:</FONT> pass minigame with 70% accuracy.<br>") + "<br><FONT COLOR='") + BONUS_COLOR) + "'>Bonus:</FONT> +10 additional arrows in minigame"); _local1[Achievements.SAVES_50] = ((((("<FONT COLOR='" + TITLE_COLOR) + "'>SILVER STATUETTE OF THE SAVER</FONT><br>") + "<br><FONT COLOR='") + REQUIREMENTS_COLOR) + "'>Requirements:</FONT> save 50 hangmans.<br>"); _local1[Achievements.SAVES_100] = ((((("<FONT COLOR='" + TITLE_COLOR) + "'>GOLDEN STATUETTE OF THE SAVER</FONT><br>") + "<br><FONT COLOR='") + REQUIREMENTS_COLOR) + "'>Requirements:</FONT> save 100 hangmans.<br>"); _local1[Achievements.KILLED_100] = ((((("<FONT COLOR='" + TITLE_COLOR) + "'>STATUETTE OF THE MUFF</FONT><br>") + "<br><FONT COLOR='") + REQUIREMENTS_COLOR) + "'>Requirements:</FONT> kill 100 hangmans.<br>"); _local1[Achievements.GRIFS_KILLED] = (((((((("<FONT COLOR='" + TITLE_COLOR) + "'>STATUETTE OF THE VULTURE HUNTER</FONT><br>") + "<br><FONT COLOR='") + REQUIREMENTS_COLOR) + "'>Requirements:</FONT> kill 100 of vultures in minigames.") + "<br><FONT COLOR='") + BONUS_COLOR) + "'>Bonus:</FONT> +50 score for each killed vulture."); _local1[Achievements.HOUR_PLAYED] = ((((("<FONT COLOR='" + TITLE_COLOR) + "'>SILVER CUP OF GIBBETS MASTER</FONT><br>") + "<br><FONT COLOR='") + REQUIREMENTS_COLOR) + "'>Requirements:</FONT> play for 1 hour on end.<br>"); _local1[Achievements.TWO_HOURS_PLAYED] = (((((((("<FONT COLOR='" + TITLE_COLOR) + "'>GOLDEN CUP OF GIBBETS MASTER</FONT><br>") + "<br><FONT COLOR='") + REQUIREMENTS_COLOR) + "'>Requirements:</FONT> play for 2 hour on end.<br>") + "<br><FONT COLOR='") + BONUS_COLOR) + "'>Bonus:</FONT> Arrows don't hit hangmans at the 51st level."); _local1[Achievements.LEVEL_30_IN_6_SHOT] = (((((((("<FONT COLOR='" + TITLE_COLOR) + "'>SILVER BOW OF SNIPER</FONT><br>") + "<br><FONT COLOR='") + REQUIREMENTS_COLOR) + "'>Requirements:</FONT> pass 31st level with only 6 arrows shot.<br>") + "<br><FONT COLOR='") + BONUS_COLOR) + "'>Bonus:</FONT> hangmans suffocate for 10% slower."); _local1[Achievements.LEVEL_44_IN_6_SHOT] = (((((((("<FONT COLOR='" + TITLE_COLOR) + "'>GOLDEN BOW OF SNIPER</FONT><br>") + "<br><FONT COLOR='") + REQUIREMENTS_COLOR) + "'>Requirements:</FONT> pass 45th level with only 7 arrows shot.<br>") + "<br><FONT COLOR='") + BONUS_COLOR) + "'>Bonus:</FONT> hangmans get 20% less damage from arrows."); _local1[Achievements.LEVELS_WITHOUT_LOSE] = (((((((("<FONT COLOR='" + TITLE_COLOR) + "'>SILVER CUP OF WINNER</FONT>") + "<br><FONT COLOR='") + REQUIREMENTS_COLOR) + "'>Requirements:</FONT> pass 10 levels in row without losses and replays.") + "<br><FONT COLOR='") + BONUS_COLOR) + "'>Bonus:</FONT> additional 100 score points for each saved hangman."); _local1[Achievements.LEVELS_WITHOUT_INJURE] = (((((((("<FONT COLOR='" + TITLE_COLOR) + "'>GOLDEN CUP OF WINNER</FONT>") + "<br><FONT COLOR='") + REQUIREMENTS_COLOR) + "'>Requirements:</FONT> pass 5 levels in row without losses and replays and damaging of hangmans.") + "<br><FONT COLOR='") + BONUS_COLOR) + "'>Bonus:</FONT> additional 200 score points for each saved hangman."); for each (_local2 in Achievements.ALL) { _local3 = (m_view.getChildByName(_local2) as Achievement); if (_local3){ if (!GameData.haveAchievement(_local2)){ _local3.alpha = 0; } else { _local3.alpha = 1; }; _local4 = new Hint(); if (_local1[_local2]){ _local4.setText(_local1[_local2]); }; _local3.setHint(_local4); m_view.addChild(_local4); }; }; m_view.m_buttonMenu.addEventListener(MouseEvent.CLICK, onMenuClick); SoundManager.playLoop(SoundConst.MAIN_MENU_MUSIC); } } }//package StatesSection 142//CreditsState (States.CreditsState) package States { import flash.events.*; import Box2D.Common.Math.*; import Main.*; import flash.display.*; import States.PlayState.*; import Ragdoll.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class CreditsState extends PhysGameState { private var m_iter:int;// = 0 private var m_mapObjects:Array; private var m_progClouds:Array; private var m_timer:Timer; private var m_progGibbet:Gibbet; public function CreditsState(){ m_mapObjects = new Array(); m_timer = new Timer(4500); m_progClouds = [new ProgrammingCloud()]; super(); } override public function onCleanup():void{ if (Capabilities.language == "ru"){ m_view.m_blogLink.removeEventListener(MouseEvent.CLICK, onBlogClick); } else { m_view.m_mailLink.removeEventListener(MouseEvent.CLICK, onMailClick); }; m_view.m_buttonMenu.removeEventListener(MouseEvent.CLICK, onMenuClick); m_view.m_notdoppler.removeEventListener(MouseEvent.CLICK, onNotdopplerClick); m_timer.stop(); m_timer.removeEventListener(TimerEvent.TIMER, onTick); m_timer = null; m_progGibbet = null; m_progClouds = null; super.onCleanup(); } private function onBlogClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); navigateToURL(new URLRequest("http://smrdis.ya.ru"), "_blank"); } override public function update(_arg1:Number):void{ var _local2:MapObject; super.update(_arg1); for each (_local2 in m_mapObjects) { _local2.update(_arg1); }; } private function onNotdopplerClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL, LinksManager.CREDITS_SCREEN_NOTDOPPLER_BUTTON); } override public function onInit():void{ var _local1:MovieClip; var _local2:Gibbet; var _local3:MovieClip; var _local4:Gibbet; var _local5:MovieClip; var _local6:int; var _local7:DisplayObject; m_view = new CreditsStateView(); addChild(m_view); if (Capabilities.language == "ru"){ m_view.m_blogLink.visible = true; m_view.m_blogLink.addEventListener(MouseEvent.CLICK, onBlogClick); m_view.m_mailLink.visible = false; } else { m_view.m_blogLink.visible = false; m_view.m_mailLink.visible = true; m_view.m_mailLink.addEventListener(MouseEvent.CLICK, onMailClick); }; super.onInit(); m_view.m_programmingHanger.visible = false; m_view.m_artHanger.visible = false; m_view.m_musicHanger.visible = false; m_progGibbet = new Gibbet(new b2Vec2((m_view.m_programmingHanger.x / m_physScale), (m_view.m_programmingHanger.y / m_physScale)), HumanRagdoll.HEAD, 6, m_world, 1, false); m_progGibbet.makeLookUgly(); m_view.m_sky.addChild(m_progGibbet); m_progGibbet.getRagdoll().applyImpulse(new b2Vec2(-0.2, 0)); m_mapObjects.push(m_progGibbet); for each (_local1 in m_progClouds) { m_view.addChild(_local1); }; onTick(null); _local2 = new Gibbet(new b2Vec2(((m_view.m_artHanger.x / m_physScale) / scaleX), (m_view.m_artHanger.y / m_physScale)), HumanRagdoll.HEAD, 6, m_world, 2, false); _local3 = new ArtCloud(); m_view.addChild(_local3); _local2.setComixCloud(_local3); _local2.showCloudNow(); _local2.makeLookUgly(); m_view.m_sky.addChild(_local2); _local2.getRagdoll().applyImpulse(new b2Vec2(-0.2, 0)); m_mapObjects.push(_local2); _local4 = new Gibbet(new b2Vec2((m_view.m_musicHanger.x / m_physScale), (m_view.m_musicHanger.y / m_physScale)), HumanRagdoll.HEAD, 6, m_world, 4, false); _local5 = new MusicCloud(); m_view.addChild(_local5); _local4.setComixCloud(_local5); _local4.showCloudNow(); _local4.makeLookUgly(); m_view.m_sky.addChild(_local4); _local4.getRagdoll().applyImpulse(new b2Vec2(-0.2, 0)); m_mapObjects.push(_local4); _local6 = 0; while (_local6 < m_view.numChildren) { _local7 = m_view.getChildAt(_local6); if ((_local7 is Cloud)){ m_mapObjects.push((_local7 as Cloud)); }; _local6++; }; m_view.m_buttonMenu.addEventListener(MouseEvent.CLICK, onMenuClick); m_view.m_notdoppler.addEventListener(MouseEvent.CLICK, onNotdopplerClick); update((1 / 30)); m_view.addChild(new MoreGamesPanel(LinksManager.CREDITS_SCREEN)); m_timer.addEventListener(TimerEvent.TIMER, onTick); m_timer.start(); } private function onMailClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); navigateToURL(new URLRequest("mailto:gibbetsfeedback@gmail.com"), "_blank"); } private function onMenuClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(new MainMenuState()); } private function onTick(_arg1:TimerEvent):void{ var _local2:MovieClip; m_iter = (++m_iter % m_progClouds.length); for each (_local2 in m_progClouds) { _local2.visible = false; }; m_progClouds[m_iter].visible = true; m_progGibbet.setComixCloud(m_progClouds[m_iter]); m_progGibbet.showCloudNow(); } } }//package StatesSection 143//CurrentPreloaderState (States.CurrentPreloaderState) package States { import flash.events.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Utils.*; import Box2D.Dynamics.Joints.*; import Main.*; import flash.display.*; import States.PlayState.*; import Ragdoll.*; import CPMStar.*; import flash.text.*; public class CurrentPreloaderState extends PreloaderState { protected var m_world:b2World; public var m_gibbetFront:MovieClip; public var m_loadingBar:MovieClip; protected var m_physScale:Number;// = 30 public var m_adBox:MovieClip; public var m_playButton:SimpleButton; private var m_needShowPlay:Boolean;// = false private var m_accumulateTime:Number;// = 0 private var m_gibbetPlace:MovieClip; protected var m_mouseDragEnabled:Boolean;// = true private var m_mapObjects:Array; public var m_notDoppler:SimpleButton; public var m_loadingLabel:TextField; public var m_closeButton:SimpleButton; public var m_scrollBar:ScrollBar; protected var m_gravity:b2Vec2; private var m_mouseJoint:b2MouseJoint; public function CurrentPreloaderState(){ m_mapObjects = new Array(); m_gibbetPlace = new MovieClip(); m_gravity = new b2Vec2(0, 10); super(); m_playButton.visible = false; } override public function onCleanup():void{ m_notDoppler.removeEventListener(MouseEvent.CLICK, onNotDopplerClick); super.onCleanup(); } override public function onFinishLoading():void{ m_needShowPlay = true; GameData.load(); m_playButton.visible = true; } public function getMousePhysPos():b2Vec2{ return (new b2Vec2(((stage.mouseX / m_physScale) / m_gibbetPlace.scaleX), ((stage.mouseY / m_physScale) / m_gibbetPlace.scaleY))); } private function onNotDopplerClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL, LinksManager.PRELOADER_SCREEN_BANNER); } override public function onInit():void{ var _local3:DisplayObject; super.onInit(); GameData.hideAds(); m_playButton.addEventListener(MouseEvent.CLICK, onPlayClick); var _local1:int; while (_local1 < numChildren) { _local3 = getChildAt(_local1); if ((_local3 is Cloud)){ m_mapObjects.push((_local3 as Cloud)); }; _local1++; }; m_world = new b2World(m_gravity, true); m_world.SetWarmStarting(true); m_world.SetContinuousPhysics(true); m_gibbetPlace.scaleX = 1.6; m_gibbetPlace.scaleY = 1.6; addChild(m_gibbetPlace); var _local2:Gibbet = new Gibbet(new b2Vec2(((345 / m_physScale) / m_gibbetPlace.scaleX), ((105 / m_physScale) / m_gibbetPlace.scaleY)), HumanRagdoll.HEAD, 6, m_world, 3, false); _local2.makeLookUgly(); m_gibbetPlace.addChild(_local2); _local2.getRagdoll().applyImpulse(new b2Vec2(-0.05, 0)); m_mapObjects.push(_local2); addChild(m_gibbetFront); if (GameData.haveAds()){ showAds(); } else { onCloseClick(null); }; m_playButton.x = (m_playButton.x + 200); m_notDoppler.addEventListener(MouseEvent.CLICK, onNotDopplerClick); if (GameData.hasKongregateAPI()){ initKongregateAPI(); }; } override public function update(_arg1:Number):void{ var _local3:MapObject; var _local4:DisplayObject; m_accumulateTime = (m_accumulateTime + _arg1); while (m_accumulateTime > Constant.TIME_STEP) { m_accumulateTime = (m_accumulateTime - Constant.TIME_STEP); m_world.Step(Constant.TIME_STEP, Constant.PHYSICS_VELOCITY_ITERATION_COUNT, Constant.PHYSICS_POSITIONS_ITERATION_COUNT); }; var _local2:b2Body = m_world.GetBodyList(); while (_local2) { if ((_local2.GetUserData() is DisplayObject)){ _local4 = (_local2.GetUserData() as DisplayObject); _local4.x = (_local2.GetPosition().x * m_physScale); _local4.y = (_local2.GetPosition().y * m_physScale); _local4.rotation = MathUtils.RadToGrad(_local2.GetAngle()); }; _local2 = _local2.GetNext(); }; if (Constant.m_debugMode){ m_world.DrawDebugData(); }; super.update(_arg1); m_loadingBar.m_textClip.m_text.text = (("loading: " + int((getPercent() * 100))) + "%"); m_loadingBar.m_bar.gotoAndStop(Math.round((m_loadingBar.m_bar.totalFrames * getPercent()))); for each (_local3 in m_mapObjects) { _local3.update(_arg1); }; if (m_needShowPlay){ m_playButton.x = (m_playButton.x - (400 * _arg1)); if (m_playButton.x <= 523){ m_playButton.x = 523; }; }; } private function onPlayClick(_arg1:MouseEvent):void{ StateManager.getInstance().gotoAndStop(2); GameData.init(); SoundManager.play(SoundConst.CLICK); if (m_loaderInfo.url.indexOf("armorgames.com") != -1){ StateManager.getInstance().changeState(new SponsorIntroState()); } else { StateManager.getInstance().changeState(new UrlLockedState()); }; } private function loadComplete(_arg1:Event):void{ } override public function handleMouseMove(_arg1:MouseEvent):void{ if (m_mouseDragEnabled){ if (m_mouseJoint){ m_mouseJoint.SetTarget(getMousePhysPos()); }; }; } public function initKongregateAPI():void{ } override public function handleMouseDown(_arg1:MouseEvent):void{ var _local2:b2Body; var _local3:b2MouseJointDef; super.handleMouseDown(_arg1); if (m_mouseDragEnabled){ if (!m_mouseJoint){ _local2 = GetBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.bodyA = m_world.GetGroundBody(); _local3.bodyB = _local2; _local3.target.SetV(getMousePhysPos()); _local3.collideConnected = true; _local3.maxForce = (10 * _local2.GetMass()); m_mouseJoint = (m_world.CreateJoint(_local3) as b2MouseJoint); }; }; }; } public function GetBodyAtMouse():b2Body{ var mouse_pos:b2Vec2; var fixture:b2Fixture; var GetBodyCallback:Function; GetBodyCallback = function (_arg1:b2Fixture):Boolean{ var _local3:Boolean; var _local2:b2Shape = _arg1.GetShape(); if (_arg1.GetBody().GetType() != b2Body.b2_staticBody){ _local3 = _local2.TestPoint(_arg1.GetBody().GetTransform(), mouse_pos); if (_local3){ body = _arg1.GetBody(); return (false); }; }; return (true); }; mouse_pos = getMousePhysPos(); var aabb:b2AABB = new b2AABB(); aabb.lowerBound.Set((mouse_pos.x - 0.001), (mouse_pos.y - 0.001)); aabb.upperBound.Set((mouse_pos.x + 0.001), (mouse_pos.y + 0.001)); var body:b2Body; m_world.QueryAABB(GetBodyCallback, aabb); return (body); } override public function handleMouseUp(_arg1:MouseEvent):void{ super.handleMouseUp(_arg1); if (m_mouseDragEnabled){ if (m_mouseJoint){ m_world.DestroyJoint(m_mouseJoint); m_mouseJoint = null; }; }; } private function onCloseClick(_arg1:MouseEvent):void{ m_adBox.visible = false; m_closeButton.visible = false; } private function showAds():void{ var ad:DisplayObject; try { ad = new AdLoader(Constant.CPMSTAR_PREROLL_CODE); m_adBox.addChild(ad); m_closeButton.addEventListener(MouseEvent.CLICK, onCloseClick); addChild(m_adBox); addChild(m_closeButton); } catch(e:Error) { trace("CPMstar error!", e); }; } override public function onPreInit():void{ setMinimalLoadTime(0.1); } } }//package StatesSection 144//GameCompleteState (States.GameCompleteState) package States { import flash.events.*; import Box2D.Common.Math.*; import Main.*; import flash.display.*; import States.PlayState.*; import Ragdoll.*; public class GameCompleteState extends PhysGameState { private var m_mapObjects:Array; public function GameCompleteState(){ m_mapObjects = new Array(); super(); } private function onSubmitClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().pushState(new SubmitScoreState()); } private function onMenuClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(new MainMenuState()); } override public function onCleanup():void{ m_view.m_buttonSubmit.removeEventListener(MouseEvent.CLICK, onSubmitClick); m_view.m_notDoppler.removeEventListener(MouseEvent.CLICK, onNotDopplerClick); m_view.m_buttonMoreGames.removeEventListener(MouseEvent.CLICK, onMoreGamesClick); m_view.m_buttonMenu.removeEventListener(MouseEvent.CLICK, onMenuClick); super.onCleanup(); } override public function update(_arg1:Number):void{ var _local2:MapObject; super.update(_arg1); for each (_local2 in m_mapObjects) { _local2.update(_arg1); }; } private function onMoreGamesClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL, LinksManager.GAME_COMPLETE_MORE_GAMES_BUTTON); } private function onNotDopplerClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL, LinksManager.GAME_COMPLETE_NOTDOPPLER_BUTTON); } override public function onInit():void{ var _local5:DisplayObject; super.onInit(); m_view = new GameCompleteStateView(); addChild(m_view); var _local1:int; while (_local1 < m_view.numChildren) { _local5 = m_view.getChildAt(_local1); if ((_local5 is Cloud)){ m_mapObjects.push((_local5 as Cloud)); }; _local1++; }; var _local2:MovieClip = new MovieClip(); _local2.scaleX = 1.6; _local2.scaleY = 1.6; var _local3:Gibbet = new Gibbet(new b2Vec2(((345 / m_physScale) / _local2.scaleX), ((105 / m_physScale) / _local2.scaleY)), HumanRagdoll.HEAD, 6, m_world, 3, false); _local3.makeLookUgly(); var _local4:GameCompleteCloud = new GameCompleteCloud(); _local3.setComixCloud(_local4); _local3.showCloudNow(); _local2.addChild(_local3); _local2.addChild(_local4); _local3.getRagdoll().applyImpulse(new b2Vec2(-0.05, 0)); m_mapObjects.push(_local3); m_view.addChild(m_view.m_gibbetFront); m_view.addChild(_local2); m_view.m_notDoppler.addEventListener(MouseEvent.CLICK, onNotDopplerClick); m_view.m_buttonMoreGames.addEventListener(MouseEvent.CLICK, onMoreGamesClick); m_view.m_buttonMenu.addEventListener(MouseEvent.CLICK, onMenuClick); m_view.m_buttonSubmit.addEventListener(MouseEvent.CLICK, onSubmitClick); m_view.m_totalScore.m_text.text = GameData.totalScore.toString(); update(Constant.TIME_STEP); SoundManager.playLoop(SoundConst.MAIN_MENU_MUSIC); m_view.addChild(new MoreGamesPanel(LinksManager.GAME_COMPLETE_SCREEN)); if (!GameData.canSubmitScore()){ m_view.m_buttonSubmit.visible = false; }; } } }//package StatesSection 145//GamePausedState (States.GamePausedState) package States { import flash.events.*; import Main.*; public class GamePausedState extends GameState { override public function update(_arg1:Number):void{ m_view.m_clickToContinue.scaleX = ((Math.sin((m_liveTime * 6)) * 0.03) + 1); m_view.m_clickToContinue.scaleY = ((Math.sin((m_liveTime * 6)) * 0.03) + 1); } override public function handleMouseDown(_arg1:MouseEvent):void{ StateManager.getInstance().popState(); } override public function onInit():void{ m_view = new GamePausedStateView(); addChild(m_view); m_view.buttonMode = true; } } }//package StatesSection 146//GrifShootingWinState (States.GrifShootingWinState) package States { import flash.events.*; import flash.geom.*; import Main.*; import States.GrifShooting.*; public class GrifShootingWinState extends GameState { private const STATE_MOVE_DOWN:int = 0; private const m_endPosition:Point; private const m_cupEndPosition:Point; private const m_startPosition:Point; private const STATE_MOVE_END:int = 2; private const m_cupStartPosition:Point; private const STATE_MOVE_UP:int = 1; private var m_wasStarSound:Boolean;// = false private var m_wasNewAchievement:Boolean;// = false private var m_shader:Shader; private var m_state:int;// = 0 public function GrifShootingWinState(){ m_shader = new Shader(0.6, 1.2, 0, 0.5); m_startPosition = new Point(584, -215); m_endPosition = new Point(493, 62); m_cupStartPosition = new Point(841, 248); m_cupEndPosition = new Point(521, 248); super(); } override public function update(_arg1:Number):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; m_shader.update(_arg1); switch (m_state){ case STATE_MOVE_DOWN: if ((m_view.y = (m_view.y + (_arg1 * 1000))) > 20){ m_state = STATE_MOVE_UP; }; break; case STATE_MOVE_UP: if ((m_view.y = (m_view.y - (_arg1 * 150))) < 0){ m_view.y = 0; m_state = STATE_MOVE_END; }; break; }; if (GrifShootingState.m_wasStar){ _local2 = 0.9; _local3 = 1.35; if (m_liveTime > _local2){ m_view.m_star.visible = GrifShootingState.m_wasStar; _local4 = ((m_liveTime - _local2) / (_local3 - _local2)); if (m_liveTime < _local3){ m_view.m_star.x = (m_startPosition.x + ((m_endPosition.x - m_startPosition.x) * _local4)); m_view.m_star.y = (m_startPosition.y + ((m_endPosition.y - m_startPosition.y) * _local4)); } else { m_view.m_star.m_perfectSign.rotation = (Math.sin((m_liveTime * 7)) * 3.5); m_view.m_star.x = m_endPosition.x; m_view.m_star.y = m_endPosition.y; if (!m_wasStarSound){ m_wasStarSound = true; SoundManager.play(SoundConst.PERFECT_STAR); }; }; }; }; if (m_wasNewAchievement){ _local5 = 1.2; _local6 = 1.65; if (m_liveTime > _local5){ _local7 = ((m_liveTime - _local5) / (_local6 - _local5)); if (m_liveTime < _local6){ m_view.m_buttonNewAchievement.x = (m_cupStartPosition.x + ((m_cupEndPosition.x - m_cupStartPosition.x) * _local7)); m_view.m_buttonNewAchievement.y = (m_cupStartPosition.y + ((m_cupEndPosition.y - m_cupStartPosition.y) * _local7)); } else { m_view.m_buttonNewAchievement.x = m_cupEndPosition.x; m_view.m_buttonNewAchievement.y = m_cupEndPosition.y; }; }; }; } override public function onInit():void{ GameData.onWinGrifShootingLevel(GrifShootingState.m_curLevel, GrifShootingState.m_vulturesKilled); addChild(m_shader); m_view = new GrifShootingWinStateView(); addChild(m_view); m_view.y = -480; m_view.m_levelNum.text = (GrifShootingState.m_curLevel + 1).toString(); m_view.m_accuracy.m_text.text = (int(((GrifShootingState.m_vulturesKilled / GrifShootingState.m_arrowsUsed) * 100)) + "%"); m_view.m_currentScore.m_text.text = GrifShootingState.m_currentScores.toString(); m_view.m_bestScore.m_text.text = GameData.getBestScore(GrifShootingState.m_curLevel); m_view.m_star.visible = false; m_view.m_buttonNext.addEventListener(MouseEvent.CLICK, onButtonNextClick); m_view.m_buttonMenu.addEventListener(MouseEvent.CLICK, onButtonMenuClick); m_view.m_buttonNewAchievement.addEventListener(MouseEvent.CLICK, onAchievementsClick); m_wasNewAchievement = GameData.wasNewAchievements(); SoundManager.playFadeOut(SoundConst.WIN); addChild(new MoreGamesPanel(LinksManager.MINIGAME_WIN_SCREEN)); } override public function onCleanup():void{ m_view.m_buttonNext.removeEventListener(MouseEvent.CLICK, onButtonNextClick); m_view.m_buttonMenu.removeEventListener(MouseEvent.CLICK, onButtonMenuClick); m_view.m_buttonNewAchievement.removeEventListener(MouseEvent.CLICK, onAchievementsClick); super.onCleanup(); } private function onAchievementsClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(new AchievementsState()); } private function onButtonNextClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(GameData.getNextState((GrifShootingState.m_curLevel + 1))); } private function onButtonMenuClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(GameData.getSelectLevelScreen()); } } }//package StatesSection 147//LeftToRightMoveTransactionState (States.LeftToRightMoveTransactionState) package States { import Main.*; import flash.display.*; public class LeftToRightMoveTransactionState extends GameState { private var m_type:String;// = null private var m_stateView1:DisplayObject;// = null private var m_stateView2:DisplayObject;// = null private var m_state1:GameState;// = null private var m_state2:GameState;// = null private var m_maxTransitionTime:Number;// = 0.5 public static const RIGHT_TO_LEFT_TRANSACTION:String = "rightToLeft"; public static const TOP_TO_DOWN_TRANSACTION:String = "topToDown"; public static const DOWN_TO_TOP_TRANSACTION:String = "downToTop"; public static const LEFT_TO_RIGHT_TRANSACTION:String = "leftToRight"; public function LeftToRightMoveTransactionState(_arg1:GameState, _arg2:GameState, _arg3:String, _arg4:Number=0.5){ m_type = _arg3; m_state1 = _arg1; m_state2 = _arg2; m_stateView1 = _arg1.getViewClip(); m_stateView2 = _arg2.getViewClip(); m_maxTransitionTime = _arg4; } override public function onCleanup():void{ m_stateView1.x = 0; m_stateView2.x = 0; m_stateView1.y = 0; m_stateView2.y = 0; m_stateView1 = null; m_stateView2 = null; m_state1 = null; m_state2 = null; super.onCleanup(); } override public function update(_arg1:Number):void{ var _local2:Number = (m_liveTime / m_maxTransitionTime); var _local3:Number = 640; var _local4:Number = 480; switch (m_type){ case LEFT_TO_RIGHT_TRANSACTION: m_stateView1.x = (-(_local2) * _local3); m_stateView2.x = (_local3 - (_local2 * _local3)); break; case RIGHT_TO_LEFT_TRANSACTION: m_stateView1.x = (_local2 * _local3); m_stateView2.x = ((_local2 * _local3) - _local3); break; case DOWN_TO_TOP_TRANSACTION: m_stateView1.y = (-(_local2) * _local4); m_stateView2.y = (_local4 - (_local2 * _local4)); break; case TOP_TO_DOWN_TRANSACTION: m_stateView1.y = (_local2 * _local4); m_stateView2.y = ((_local2 * _local4) - _local4); break; }; if (m_liveTime >= m_maxTransitionTime){ StateManager.getInstance().changeState(m_state2); }; } override public function onInit():void{ addChild(m_stateView1); addChild(m_stateView2); update(0); } } }//package StatesSection 148//LoseState (States.LoseState) package States { import flash.events.*; import Box2D.Common.Math.*; import Utils.*; import Main.*; import flash.display.*; import States.PlayState.*; import Ragdoll.*; public class LoseState extends PhysGameState { private const STATE_MOVE_DOWN:int = 0; private const STATE_MOVE_UP:int = 1; private const STATE_MOVE_END:int = 2; private var m_shader:Shader; private var m_state:int;// = 0 public function LoseState(){ m_shader = new Shader(0.7, 1.4, 0, 0.5); super(); } override public function onCleanup():void{ m_view.m_buttonRestart.removeEventListener(MouseEvent.CLICK, onButtonRestartClick); m_view.m_buttonMenu.removeEventListener(MouseEvent.CLICK, onButtonMenuClick); m_shader = null; super.onCleanup(); } override public function update(_arg1:Number):void{ super.update(_arg1); m_shader.update(_arg1); switch (m_state){ case STATE_MOVE_DOWN: if ((m_view.y = (m_view.y + (_arg1 * 1000))) > 20){ m_state = STATE_MOVE_UP; }; break; case STATE_MOVE_UP: if ((m_view.y = (m_view.y - (_arg1 * 150))) < 0){ m_view.y = 0; m_state = STATE_MOVE_END; }; break; }; } override public function onInit():void{ super.onInit(); addChild(m_shader); m_view = new LoseStateView(); addChild(m_view); m_view.y = -480; var _local1:MovieClip = new MovieClip(); _local1.scaleX = 1.9; _local1.scaleY = 1.9; m_view.m_window.addChild(_local1); m_view.m_buttonRestart.addEventListener(MouseEvent.CLICK, onButtonRestartClick); m_view.m_buttonMenu.addEventListener(MouseEvent.CLICK, onButtonMenuClick); var _local2:int = PlayState.m_deadID; if (_local2 == -1){ _local2 = MathUtils.RandomRangeInt(1, 4); }; var _local3:Gibbet = new Gibbet(new b2Vec2(((m_view.m_window.width / 4) / m_physScale), (20 / m_physScale)), HumanRagdoll.HEAD, 7, m_world, _local2, false); _local1.addChild(_local3); _local3.getRagdoll().applyImpulse(new b2Vec2(MathUtils.RandomRange(0.1, 0.2), 0)); _local3.makeLookUgly(); SoundManager.playFadeOut(SoundConst.LOSE); addChild(new MoreGamesPanel(LinksManager.LOSE_SCREEN)); } private function onButtonRestartClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(GameData.getNextState(PlayState.m_curLevel)); } private function onButtonMenuClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(GameData.getSelectLevelScreen()); } } }//package StatesSection 149//MainMenuState (States.MainMenuState) package States { import flash.events.*; import Main.*; import flash.display.*; import States.PlayState.*; import Box2D.*; public class MainMenuState extends PhysGameState { private var m_cheat:Array; private var m_phylosophyCloud:MovieClip;// = null private var m_mapObjects:Array; private var m_count:int;// = 1 public function MainMenuState(){ m_mapObjects = new Array(); m_cheat = new Array(); super(); } override public function onCleanup():void{ m_mapObjects = null; m_cheat = null; super.onCleanup(); } override public function handleMouseClick(_arg1:MouseEvent):void{ var right_anim:MovieClip; var left_anim:MovieClip; var e = _arg1; try { right_anim = m_view.m_rightButtonsPanel; left_anim = m_view.m_leftButtonsPanel; if (right_anim.getChildByName("m_buttonPlay").hitTestPoint(e.stageX, e.stageY, true)){ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(GameData.getSelectLevelScreen()); } else { if (right_anim.getChildByName("m_buttonOptions").hitTestPoint(e.stageX, e.stageY, true)){ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().pushState(new OptionsState()); } else { if (right_anim.getChildByName("m_buttonCredits").hitTestPoint(e.stageX, e.stageY, true)){ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(new CreditsState()); } else { if (m_view.m_notdoppler.hitTestPoint(e.stageX, e.stageY, true)){ SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL, LinksManager.MAIN_MENU_NOTDOPPLER_BUTTON); } else { if (left_anim.getChildByName("m_buttonMoreGames").hitTestPoint(e.stageX, e.stageY, true)){ SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL, LinksManager.MAIN_MENU_MORE_GAMES_BUTTON); } else { if (left_anim.getChildByName("m_buttonGibbetsI").hitTestPoint(e.stageX, e.stageY, true)){ SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.GIBBETS_I_URL, LinksManager.MAIN_MENU_GIBBETS_I_BUTTON); }; }; }; }; }; }; } catch(e:Error) { trace("error here", e, e.getStackTrace()); }; if (e.target == m_view.m_vulture){ m_count++; if ((m_count % 10) == 0){ if (m_phylosophyCloud){ m_view.removeChild(m_phylosophyCloud); }; switch (((m_count / 10) % 3)){ case 0: m_phylosophyCloud = new MainMenuCloud1(); break; case 1: m_phylosophyCloud = new MainMenuCloud2(); break; case 2: m_phylosophyCloud = new MainMenuCloud3(); break; }; m_view.addChild(m_phylosophyCloud); m_phylosophyCloud.x = m_view.m_comixCloud.x; m_phylosophyCloud.y = m_view.m_comixCloud.y; SoundManager.play(SoundConst.VULTURE_CRY_4); }; }; } override public function onInit():void{ var _local2:DisplayObject; super.onInit(); m_view = new MainMenuStateView(); addChild(m_view); m_view.m_vulture.buttonMode = true; m_view.m_comixCloud.visible = false; if (!StateManager.getInstance().haveOverlay()){ StateManager.getInstance().setOverlay(new SoundButton()); }; SoundManager.playLoop(SoundConst.MAIN_MENU_MUSIC); var _local1:int; while (_local1 < m_view.numChildren) { _local2 = m_view.getChildAt(_local1); if ((_local2 is Cloud)){ m_mapObjects.push((_local2 as Cloud)); }; _local1++; }; } override public function update(_arg1:Number):void{ var _local2:MapObject; if (m_view.m_II.currentFrame == 40){ SoundManager.play(SoundConst.STICK_IN_MAIN_MENU); }; for each (_local2 in m_mapObjects) { _local2.update(_arg1); }; } override public function handleKeyDown(_arg1:KeyboardEvent):void{ var _local2:int; var _local3:String; m_cheat.push(_arg1.charCode); if (m_cheat.length == 5){ SoundManager.play(SoundConst.VULTURE_CRY_4); if (String.fromCharCode(m_cheat[0], m_cheat[1], m_cheat[2], m_cheat[3], m_cheat[4]) == "iddqd"){ _local2 = 0; while (_local2 < GameData.totalLevelsCount) { GameData.onWinLevel(_local2, 0, false, 0); _local2++; }; for each (_local3 in Achievements.ALL) { GameData.giveAchievement(_local3); }; }; }; } } }//package StatesSection 150//OptionsState (States.OptionsState) package States { import flash.events.*; import flash.geom.*; import Main.*; public class OptionsState extends GameState { private const STATE_MOVE_DOWN:int = 0; private const STATE_MOVE_BACK:int = 3; private const m_endPosition:Point; private const m_startPosition:Point; private const STATE_MOVE_END:int = 2; private const STATE_MOVE_UP:int = 1; private var m_shader:Shader; private var m_state:int;// = 0 public function OptionsState(){ m_shader = new Shader(0.6, 1.2, 0, 0.5); m_startPosition = new Point(584, -215); m_endPosition = new Point(493, 62); super(); } private function onDisableBloodChange(_arg1:Event):void{ var _local2:CheckBox = (_arg1.target as CheckBox); GameData.m_isBloodDisabled = _local2.isChecked(); SoundManager.play(SoundConst.CLICK); } override public function onCleanup():void{ m_view.m_musicVolume.removeEventListener(ScrollBar.EVENT_CHANGE, onMusicVolumeChange); m_view.m_soundVolume.removeEventListener(ScrollBar.EVENT_CHANGE, onSoundVolumeChange); m_view.m_invertControl.removeEventListener(CheckBox.EVENT_CHANGE, onInvertControlChange); m_view.m_disableBlood.removeEventListener(CheckBox.EVENT_CHANGE, onDisableBloodChange); m_view.m_hideTips.removeEventListener(CheckBox.EVENT_CHANGE, onHideTipsChange); m_view.m_buttonOk.removeEventListener(MouseEvent.CLICK, onOkClick); m_view.m_buttonReset.removeEventListener(MouseEvent.CLICK, onResetClick); m_shader = null; super.onCleanup(); } override public function update(_arg1:Number):void{ m_shader.update(_arg1); switch (m_state){ case STATE_MOVE_DOWN: if ((m_view.y = (m_view.y + (_arg1 * 1000))) > 20){ m_state = STATE_MOVE_UP; }; break; case STATE_MOVE_UP: if ((m_view.y = (m_view.y - (_arg1 * 150))) < 0){ m_view.y = 0; m_state = STATE_MOVE_END; }; break; case STATE_MOVE_BACK: if ((m_view.y = (m_view.y - (_arg1 * 1300))) < -480){ StateManager.getInstance().popState(); }; break; }; } override public function onInit():void{ m_view = new OptionsStateView(); addChild(m_shader); addChild(m_view); m_view.y = -480; m_view.m_musicVolume.setProgress(SoundManager.getMusicVolume()); m_view.m_soundVolume.setProgress(SoundManager.getSoundVolume()); m_view.m_musicVolume.addEventListener(ScrollBar.EVENT_CHANGE, onMusicVolumeChange); m_view.m_soundVolume.addEventListener(ScrollBar.EVENT_CHANGE, onSoundVolumeChange); m_view.m_invertControl.setChecked(GameData.m_invertedControl); m_view.m_invertControl.addEventListener(CheckBox.EVENT_CHANGE, onInvertControlChange); m_view.m_disableBlood.setChecked(GameData.m_isBloodDisabled); m_view.m_disableBlood.addEventListener(CheckBox.EVENT_CHANGE, onDisableBloodChange); m_view.m_hideTips.setChecked(!(GameData.m_isHintsOn)); m_view.m_hideTips.addEventListener(CheckBox.EVENT_CHANGE, onHideTipsChange); m_view.m_buttonOk.addEventListener(MouseEvent.CLICK, onOkClick); m_view.m_buttonReset.addEventListener(MouseEvent.CLICK, onResetClick); super.onInit(); } private function onMusicVolumeChange(_arg1:Event):void{ SoundManager.setMusicVolume(m_view.m_musicVolume.getProgress()); } private function onInvertControlChange(_arg1:Event):void{ var _local2:CheckBox = (_arg1.target as CheckBox); GameData.m_invertedControl = _local2.isChecked(); SoundManager.play(SoundConst.CLICK); } private function onHideTipsChange(_arg1:Event):void{ var _local2:CheckBox = (_arg1.target as CheckBox); GameData.setHideTips(_local2.isChecked()); SoundManager.play(SoundConst.CLICK); } private function onOkClick(_arg1:MouseEvent):void{ GameData.save(); SoundManager.play(SoundConst.CLICK); m_state = STATE_MOVE_BACK; removeChild(m_shader); m_shader = new Shader(0, 0.25, m_shader.getShade(), 0); addChildAt(m_shader, 0); } private function onResetClick(_arg1:MouseEvent):void{ trace("onResetClick"); SoundManager.play(SoundConst.CLICK); StateManager.getInstance().pushState(new YesNoState()); } private function onSoundVolumeChange(_arg1:Event):void{ SoundManager.play(SoundConst.CLICK); SoundManager.setSoundVolume(m_view.m_soundVolume.getProgress()); } } }//package StatesSection 151//ParserConst (States.ParserConst) package States { public class ParserConst { public static const TYPE_TELEPORT_GHOST:String = "teleport_ghost"; public static const TYPE_DYNAMIC_BOX:String = "dynamic_box"; public static const TYPE_FRONTGROUND:String = "frontground"; public static const TYPE_STATIC_BOX:String = "static_box"; public static const TYPE_HIGHLIGHT:String = "highlight"; public static const TYPE_TNT_BARREL:String = "tnt_barrel"; public static const TYPE_HEDHEHOG_GHOST:String = "hedhehog_ghost"; public static const TYPE_BACKGROUND:String = "background"; public static const TYPE_ARROW_GHOST:String = "arrow_ghost"; public static const TYPE_CLOUD:String = "cloud"; public static const TYPE_EDGE_MARKER:String = "edge_marker"; public static const TYPE_VULTURE:String = "vulture"; public static const ATTRIBUTE_TYPE:String = "type"; public static const TYPE_AMMO_GHOST:String = "ammo_ghost"; public static const TYPE_ROTOR:String = "rotor"; public static const TYPE_GIBBET_OBLIQUELY:String = "gibbet_obliquely"; public static const TYPE_SUN:String = "sun"; public static const TYPE_GIBBET_GROUND:String = "gibbet_ground"; public static const TYPE_GROUND:String = "ground"; public static const TYPE_COW:String = "cow"; public static const TYPE_GIBBET:String = "gibbet"; public static const TYPE_POINTS_GHOST:String = "points_ghost"; public static const TYPE_SHOOTING_POINT:String = "shooting_point"; } }//package StatesSection 152//SelectLevelButton (States.SelectLevelButton) package States { import flash.events.*; import flash.display.*; import flash.text.*; public class SelectLevelButton extends MovieClip { private var m_textDown:TextField; private var m_down:MovieClip; private var m_isShowStar:Boolean;// = false private var m_starOver:MovieClip; private var m_starUp:MovieClip; private var m_starDown:MovieClip; private var m_unenable:MovieClip; private var m_textOver:TextField; private var m_up:MovieClip; private var m_over:MovieClip; private var m_textUp:TextField; private var m_state:String;// = "up" public static const DOWN:String = "down"; public static const OVER:String = "over"; public static const UP:String = "up"; public static const UNENABLE:String = "unenable"; public function SelectLevelButton(){ m_textDown = (getChildByName("m_textDown") as TextField); m_textUp = (getChildByName("m_textUp") as TextField); m_textOver = (getChildByName("m_textOver") as TextField); m_starDown = (getChildByName("m_starDown") as MovieClip); m_starUp = (getChildByName("m_starUp") as MovieClip); m_starOver = (getChildByName("m_starOver") as MovieClip); m_down = (getChildByName("m_down") as MovieClip); m_up = (getChildByName("m_up") as MovieClip); m_over = (getChildByName("m_over") as MovieClip); m_unenable = (getChildByName("m_unenable") as MovieClip); buttonMode = true; this.mouseChildren = false; addEventListener(Event.REMOVED_FROM_STAGE, handleRemoveFromStage); addEventListener(MouseEvent.MOUSE_OVER, handleMouseOver); addEventListener(MouseEvent.MOUSE_OUT, handleMouseOut); addEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown); addEventListener(MouseEvent.MOUSE_UP, handleMouseUp); setState(UP); } private function handleRemoveFromStage(_arg1:Event):void{ removeEventListener(Event.REMOVED_FROM_STAGE, handleRemoveFromStage); removeEventListener(MouseEvent.MOUSE_OVER, handleMouseOver); removeEventListener(MouseEvent.MOUSE_OUT, handleMouseOut); removeEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown); removeEventListener(MouseEvent.MOUSE_UP, handleMouseUp); m_state = null; m_textUp = null; m_up = null; m_starUp = null; m_textOver = null; m_over = null; m_starOver = null; m_textDown = null; m_down = null; m_starDown = null; m_unenable = null; } private function hide():void{ m_textUp.visible = false; m_up.visible = false; m_starUp.visible = false; m_textOver.visible = false; m_over.visible = false; m_starOver.visible = false; m_textDown.visible = false; m_down.visible = false; m_starDown.visible = false; m_unenable.visible = false; } public function setState(_arg1:String):void{ hide(); buttonMode = true; switch (_arg1){ case UNENABLE: buttonMode = false; m_unenable.visible = true; break; case UP: m_up.visible = true; m_textUp.visible = true; if (m_isShowStar){ m_starUp.visible = true; }; break; case DOWN: m_down.visible = true; m_textDown.visible = true; if (m_isShowStar){ m_starDown.visible = true; }; break; case OVER: m_over.visible = true; m_textOver.visible = true; if (m_isShowStar){ m_starOver.visible = true; }; break; }; m_state = _arg1; } private function handleMouseOver(_arg1:MouseEvent):void{ if (m_state != UNENABLE){ setState(OVER); }; } public function hideStar():void{ m_isShowStar = false; setState(m_state); } public function unenable():void{ setState(UNENABLE); } private function handleMouseUp(_arg1:MouseEvent):void{ if (m_state != UNENABLE){ setState(OVER); }; } public function setText(_arg1:String):void{ m_textUp.text = _arg1; m_textOver.text = _arg1; m_textDown.text = _arg1; setState(UP); } private function handleMouseOut(_arg1:MouseEvent):void{ if (m_state != UNENABLE){ setState(UP); }; } public function showStar():void{ m_isShowStar = true; setState(m_state); } private function handleMouseDown(_arg1:MouseEvent):void{ if (m_state != UNENABLE){ setState(DOWN); }; } } }//package StatesSection 153//SelectLevelState (States.SelectLevelState) package States { import flash.events.*; import Main.*; import flash.display.*; import States.PlayState.*; import flash.filters.*; public class SelectLevelState extends GameState { private var m_mapObjects:Array; private static var m_isSecondPart:Boolean = false; public function SelectLevelState(_arg1:Boolean):void{ m_mapObjects = new Array(); super(); m_isSecondPart = _arg1; } private function onArrowUpClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().changeState(new LeftToRightMoveTransactionState(this, new SelectSecretLevelState(), LeftToRightMoveTransactionState.TOP_TO_DOWN_TRANSACTION, 1)); } private function onAchievementsClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(new AchievementsState()); } override public function update(_arg1:Number):void{ var _local2:MapObject; for each (_local2 in m_mapObjects) { _local2.update(_arg1); }; } override public function handleMouseClick(_arg1:MouseEvent):void{ var _local4:int; var _local2:int = GameData.levelsCompleted; var _local3:int; while (_local3 < 24) { _local4 = _local3; if (m_isSecondPart){ _local4 = (_local4 + 24); }; if (m_view.m_buttonsPanel.getChildByName(("m_level" + _local3)).hitTestPoint(_arg1.stageX, _arg1.stageY)){ if (_local4 <= _local2){ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(GameData.getNextState(_local4)); return; }; }; _local3++; }; } private function prepareView(_arg1:MovieClip):void{ var _local2:int = GameData.levelsCompleted; _arg1.m_totalScore.m_text.text = GameData.totalScore.toString(); prepareLevelsList(_arg1.m_buttonsPanel); } override public function onInit():void{ var _local2:DisplayObject; SoundManager.playLoop(SoundConst.MAIN_MENU_MUSIC); if (m_isSecondPart){ GameData.onEnterSelectLevelScreen(GameData.SCREEN_25_48); } else { GameData.onEnterSelectLevelScreen(GameData.SCREEN_1_24); }; m_view = new SelectLevelStateView(); prepareView(m_view); m_view.m_buttonMenu.addEventListener(MouseEvent.CLICK, onMenuClick); m_view.m_buttonAchievements.addEventListener(MouseEvent.CLICK, onAchievementsClick); if (GameData.levelsCompleted >= 48){ m_view.m_arrowUp.addEventListener(MouseEvent.CLICK, onArrowUpClick); } else { m_view.m_arrowUp.visible = false; }; m_view.m_arrowRight.addEventListener(MouseEvent.CLICK, onArrowRightClick); addChild(m_view); m_view.addChild(new MoreGamesPanel(LinksManager.SELECT_LEVEL_SCREEN)); m_view.m_buttonSubmit.addEventListener(MouseEvent.CLICK, onSubmitClick); if (!GameData.canSubmitScore()){ m_view.m_buttonSubmit.visible = false; }; var _local1:int; while (_local1 < m_view.numChildren) { _local2 = m_view.getChildAt(_local1); if ((_local2 is Cloud)){ m_mapObjects.push((_local2 as Cloud)); }; _local1++; }; } private function onSubmitClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().pushState(new SubmitScoreState()); } override public function getViewClip():DisplayObject{ var _local1:SelectLevelStateView; var _local2:int; var _local3:DisplayObject; _local1 = new SelectLevelStateView(); prepareView(_local1); if (m_view){ _local2 = 0; while (_local2 < m_view.numChildren) { _local3 = m_view.getChildAt(_local2); if ((_local3 is Cloud)){ _local1.getChildAt(_local2).x = _local3.x; _local1.getChildAt(_local2).y = _local3.y; }; _local2++; }; }; if (!GameData.canSubmitScore()){ _local1.m_buttonSubmit.visible = false; }; _local1.addChild(new MoreGamesPanel(LinksManager.NO_SCREEN)); return (_local1); } private function onArrowRightClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); m_isSecondPart = !(m_isSecondPart); prepareLevelsList(m_view.m_buttonsPanel); if (m_isSecondPart){ GameData.onEnterSelectLevelScreen(GameData.SCREEN_25_48); } else { GameData.onEnterSelectLevelScreen(GameData.SCREEN_1_24); }; } private function onMenuClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(new MainMenuState()); } private function prepareLevelsList(_arg1:MovieClip):void{ var _local3:SelectLevelButton; var _local4:int; var _local2:int; while (_local2 < 24) { _local3 = (_arg1.getChildByName(("m_level" + _local2)) as SelectLevelButton); _local4 = _local2; if (m_isSecondPart){ _local4 = (_local4 + 24); }; if (_local4 <= GameData.levelsCompleted){ _local3.setText((_local4 + 1).toString()); } else { _local3.unenable(); }; if (GameData.isLevelWithStar(_local4)){ _local3.showStar(); } else { _local3.hideStar(); }; _local2++; }; } override public function onCleanup():void{ m_view.m_buttonMenu.removeEventListener(MouseEvent.CLICK, onMenuClick); m_view.m_arrowUp.removeEventListener(MouseEvent.CLICK, onArrowUpClick); m_view.m_arrowRight.removeEventListener(MouseEvent.CLICK, onArrowRightClick); m_view.m_buttonAchievements.removeEventListener(MouseEvent.CLICK, onAchievementsClick); m_view.m_buttonSubmit.removeEventListener(MouseEvent.CLICK, onSubmitClick); m_mapObjects = null; super.onCleanup(); } } }//package StatesSection 154//SelectSecretLevelState (States.SelectSecretLevelState) package States { import flash.events.*; import Main.*; import flash.display.*; import States.PlayState.*; import CPMStar.*; public class SelectSecretLevelState extends GameState { private var m_mapObjects:Array; public function SelectSecretLevelState(){ m_mapObjects = new Array(); super(); } private function onAchievementsClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(new AchievementsState()); } override public function update(_arg1:Number):void{ var _local2:MapObject; for each (_local2 in m_mapObjects) { _local2.update(_arg1); }; if (((GameData.haveAds()) && ((m_liveTime > 0.5)))){ if (m_view.m_adBox.x < 150){ m_view.m_adBox.x = (m_view.m_adBox.x + (1600 * _arg1)); m_view.m_closeButton.x = (m_view.m_closeButton.x + (1600 * _arg1)); }; }; } private function onMenuClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(new MainMenuState()); } override public function getViewClip():DisplayObject{ var _local2:int; var _local3:DisplayObject; var _local1:MovieClip = new SelectSecretLevelStateView(); prepareView(_local1); if (m_view){ _local2 = 0; while (_local2 < m_view.numChildren) { _local3 = m_view.getChildAt(_local2); if ((_local3 is Cloud)){ _local1.getChildAt(_local2).x = _local3.x; _local1.getChildAt(_local2).y = _local3.y; }; _local2++; }; }; _local1.addChild(new MoreGamesPanel(LinksManager.NO_SCREEN)); if (!GameData.canSubmitScore()){ _local1.m_buttonSubmit.visible = false; }; return (_local1); } private function prepareView(_arg1:MovieClip):void{ var _local4:SelectLevelButton; _arg1.m_totalScore.m_text.text = GameData.totalScore.toString(); var _local2:int = GameData.levelsCompleted; var _local3 = 48; while (_local3 < (48 + 5)) { _local4 = _arg1[("m_level" + _local3)]; if (_local3 <= _local2){ _local4.setText((_local3 + 1).toString()); if (GameData.isLevelWithStar(_local3)){ _local4.showStar(); }; } else { _local4.unenable(); }; _local3++; }; } override public function onInit():void{ var _local2:DisplayObject; SoundManager.playLoop(SoundConst.MAIN_MENU_MUSIC); GameData.onEnterSelectLevelScreen(GameData.SCREEN_49_54); m_view = new SelectSecretLevelStateView(); addChild(m_view); prepareView(m_view); m_view.m_buttonMenu.addEventListener(MouseEvent.CLICK, onMenuClick); m_view.m_arrowDown.addEventListener(MouseEvent.CLICK, onArrowDownClick); m_view.m_buttonAchievements.addEventListener(MouseEvent.CLICK, onAchievementsClick); m_view.m_buttonSubmit.addEventListener(MouseEvent.CLICK, onSubmitClick); var _local1:int; while (_local1 < m_view.numChildren) { _local2 = m_view.getChildAt(_local1); if ((_local2 is Cloud)){ m_mapObjects.push((_local2 as Cloud)); }; _local1++; }; m_view.addChild(new MoreGamesPanel(LinksManager.SELECT_SECRET_LEVEL_SCREEN)); if (GameData.haveAds()){ showAds(); }; if (!GameData.canSubmitScore()){ m_view.m_buttonSubmit.visible = false; }; } private function onSubmitClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().pushState(new SubmitScoreState()); } override public function handleMouseClick(_arg1:MouseEvent):void{ var _local4:int; var _local2:int = GameData.levelsCompleted; var _local3:int; while (_local3 < 5) { _local4 = (_local3 + 48); if (m_view.getChildByName(("m_level" + _local4)).hitTestPoint(_arg1.stageX, _arg1.stageY)){ if (_local4 <= _local2){ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(GameData.getNextState(_local4)); return; }; }; _local3++; }; } private function showAds():void{ var ad:DisplayObject; try { ad = new AdLoader(Constant.CPMSTAR_INTER_LEVEL_CODE); m_view.m_adBox.addChild(ad); m_view.m_closeButton.addEventListener(MouseEvent.CLICK, onCloseClick); } catch(e:Error) { trace("CPMstar error!", e); }; } private function onCloseClick(_arg1:MouseEvent):void{ m_view.m_adBox.visible = false; m_view.m_closeButton.visible = false; } private function onArrowDownClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().changeState(new LeftToRightMoveTransactionState(this, new SelectLevelState(true), LeftToRightMoveTransactionState.DOWN_TO_TOP_TRANSACTION, 1)); } override public function onCleanup():void{ try { m_view.m_buttonSubmit.removeEventListener(MouseEvent.CLICK, onSubmitClick); m_view.m_buttonMenu.removeEventListener(MouseEvent.CLICK, onMenuClick); m_view.m_arrowDown.removeEventListener(MouseEvent.CLICK, onArrowDownClick); m_view.m_buttonAchievements.removeEventListener(MouseEvent.CLICK, onAchievementsClick); m_view.m_closeButton.removeEventListener(MouseEvent.CLICK, onCloseClick); m_mapObjects = null; super.onCleanup(); } catch(e:Error) { trace(e, e.getStackTrace()); }; } } }//package StatesSection 155//ShadeInState (States.ShadeInState) package States { import Main.*; public class ShadeInState extends GameState { private var m_nextState:GameState;// = null private var m_shader:InShader;// = null override public function onPreInit():void{ m_shader = new InShader(0.3, 1); addChild(m_shader); } override public function onCleanup():void{ m_shader = null; m_nextState = null; super.onCleanup(); } override public function update(_arg1:Number):void{ m_shader.update(_arg1); if (m_shader.isMaxTime()){ if (m_nextState != null){ StateManager.getInstance().changeState(m_nextState); StateManager.getInstance().pushState(new ShadeOutState()); }; }; } public function setNextState(_arg1:GameState):void{ m_nextState = _arg1; } override public function onInit():void{ m_shader.restart(); } } }//package StatesSection 156//ShadeOutState (States.ShadeOutState) package States { import Main.*; public class ShadeOutState extends GameState { private var m_shader:OutShader; override public function onPreInit():void{ m_shader = new OutShader(0.3, 1); addChild(m_shader); } override public function onCleanup():void{ m_shader = null; super.onCleanup(); } override public function update(_arg1:Number):void{ m_shader.update(_arg1); if (m_shader.isMaxTime()){ StateManager.getInstance().popState(); }; } override public function onInit():void{ m_shader.restart(); } } }//package StatesSection 157//SponsorIntroState (States.SponsorIntroState) package States { import flash.events.*; import Main.*; import flash.display.*; import flash.media.*; public class SponsorIntroState extends GameState { private var m_introClip:MovieClip; private var m_introButton:SimpleButton; private var m_sound:SoundChannel; override public function onCleanup():void{ m_introButton.removeEventListener(MouseEvent.CLICK, onIntroClick); try { m_sound.stop(); } catch(e:Error) { trace(e, e.getStackTrace()); }; var sound_button:SoundButton = new SoundButton(); StateManager.getInstance().setOverlay(sound_button); m_introClip = null; m_sound = null; m_introButton = null; super.onCleanup(); } override public function update(_arg1:Number):void{ if (m_introClip.currentFrame == m_introClip.totalFrames){ StateManager.getInstance().changeState(new MainMenuState()); }; } private function onIntroClick(_arg1:MouseEvent):void{ LinksManager.goURL(LinksManager.MAIN_PAGE_URL, LinksManager.INTRO_SCREEN_BUTTON); } override public function onInit():void{ var sound:Sound; m_introClip = new SponsorIntro(); m_introButton = new IntroButton(); m_introButton.addEventListener(MouseEvent.CLICK, onIntroClick); addChild(m_introClip); addChild(m_introButton); try { sound = new SponsorMusic(); m_sound = sound.play(); } catch(e:Error) { trace(e, e.getStackTrace()); }; } } }//package StatesSection 158//SubmitScoreState (States.SubmitScoreState) package States { import flash.events.*; import Main.*; import flash.display.*; public class SubmitScoreState extends GameState { private const HIDE:int = 4; private const SHOW:int = 0; private var m_closeCross:SimpleButton; private var hs_game:String;// = "gibbets2" private var m_shader:Shader; private var hs_view:Number;// = 2 private var hs_URL:String;// = "http://www.notdoppler.com/gibbets2-highscores.php?ref=gibbets2&game=gibbets2" private var hs_score:Number; private var m_state:int; public function SubmitScoreState(){ m_shader = new Shader(0.6, 1.2, 0, 0.5); m_state = SHOW; hs_score = GameData.totalScore; m_closeCross = new CloseCross(); super(); } override public function onCleanup():void{ m_closeCross.removeEventListener(MouseEvent.CLICK, onCloseClick); removeChild(m_shader); } override public function update(_arg1:Number):void{ m_shader.update(_arg1); switch (m_state){ case HIDE: if (m_shader.getShade() <= 0){ StateManager.getInstance().popState(); }; break; }; } override public function onInit():void{ addChild(m_shader); addChild(StateManager.getInstance().hsloader); StateManager.getInstance().hsloader.loadHighscores(hs_game, hs_score, hs_view, hs_URL); addChild(m_closeCross); m_closeCross.x = 479; m_closeCross.y = 160; m_closeCross.addEventListener(MouseEvent.CLICK, onCloseClick); } private function onCloseClick(_arg1:MouseEvent):void{ removeChild(StateManager.getInstance().hsloader); removeChild(m_closeCross); removeChild(m_shader); m_shader = new Shader(0, 0.25, m_shader.getShade(), 0); addChild(m_shader); m_state = HIDE; } } }//package StatesSection 159//UrlLockedState (States.UrlLockedState) package States { import flash.events.*; import Main.*; public class UrlLockedState extends GameState { public function UrlLockedState(){ super(); m_view = new UrlLockedStateView(); addChild(m_view); m_view.m_notDoppler.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ LinksManager.goURL(LinksManager.GIBBETS_II_URL, ""); }); } } }//package StatesSection 160//WinState (States.WinState) package States { import flash.events.*; import flash.geom.*; import Main.*; import States.PlayState.*; public class WinState extends GameState { private const STATE_MOVE_DOWN:int = 0; private const m_endPosition:Point; private const m_cupEndPosition:Point; private const m_startPosition:Point; private const STATE_MOVE_END:int = 2; private const m_cupStartPosition:Point; private const STATE_MOVE_UP:int = 1; private var m_wasStarSound:Boolean;// = false private var m_wasNewAchievement:Boolean;// = false private var m_shader:Shader; private var m_state:int;// = 0 public function WinState(){ m_shader = new Shader(0.6, 1.2, 0, 0.5); m_startPosition = new Point(584, -215); m_endPosition = new Point(493, 62); m_cupStartPosition = new Point(841, 248); m_cupEndPosition = new Point(521, 248); super(); } override public function update(_arg1:Number):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; m_view.m_bestScore.m_text.text = GameData.getBestScore(PlayState.m_curLevel); m_shader.update(_arg1); switch (m_state){ case STATE_MOVE_DOWN: if ((m_view.y = (m_view.y + (_arg1 * 1000))) > 20){ m_state = STATE_MOVE_UP; }; break; case STATE_MOVE_UP: if ((m_view.y = (m_view.y - (_arg1 * 150))) < 0){ m_view.y = 0; m_state = STATE_MOVE_END; }; break; }; if (PlayState.m_wasStar){ _local2 = 0.9; _local3 = 1.35; if (m_liveTime > _local2){ m_view.m_star.visible = true; _local4 = ((m_liveTime - _local2) / (_local3 - _local2)); if (m_liveTime < _local3){ m_view.m_star.x = (m_startPosition.x + ((m_endPosition.x - m_startPosition.x) * _local4)); m_view.m_star.y = (m_startPosition.y + ((m_endPosition.y - m_startPosition.y) * _local4)); } else { m_view.m_star.m_perfectSign.rotation = (Math.sin((m_liveTime * 7)) * 3.5); m_view.m_star.x = m_endPosition.x; m_view.m_star.y = m_endPosition.y; if (!m_wasStarSound){ m_wasStarSound = true; SoundManager.play(SoundConst.PERFECT_STAR); }; }; }; }; if (m_wasNewAchievement){ _local5 = 1.2; _local6 = 1.65; if (m_liveTime > _local5){ _local7 = ((m_liveTime - _local5) / (_local6 - _local5)); if (m_liveTime < _local6){ m_view.m_buttonNewAchievement.x = (m_cupStartPosition.x + ((m_cupEndPosition.x - m_cupStartPosition.x) * _local7)); m_view.m_buttonNewAchievement.y = (m_cupStartPosition.y + ((m_cupEndPosition.y - m_cupStartPosition.y) * _local7)); } else { m_view.m_buttonNewAchievement.x = m_cupEndPosition.x; m_view.m_buttonNewAchievement.y = m_cupEndPosition.y; }; }; }; } override public function onInit():void{ if ((((PlayState.m_curLevel == 30)) && ((PlayState.m_arrowsUsed == 6)))){ GameData.giveAchievement(Achievements.LEVEL_30_IN_6_SHOT); }; if ((((PlayState.m_curLevel == 44)) && ((PlayState.m_arrowsUsed == 7)))){ GameData.giveAchievement(Achievements.LEVEL_44_IN_6_SHOT); }; addChild(m_shader); m_view = new WinStateView(); addChild(m_view); m_view.y = -480; m_view.m_levelNum.text = (PlayState.m_curLevel + 1).toString(); m_view.m_arrowsUsed.m_text.text = PlayState.m_arrowsUsed.toString(); m_view.m_currentScore.m_text.text = PlayState.m_currentScores.toString(); m_view.m_bestScore.m_text.text = GameData.getBestScore(PlayState.m_curLevel); m_view.m_star.visible = false; m_view.m_buttonNext.addEventListener(MouseEvent.CLICK, onButtonNextClick); m_view.m_buttonMenu.addEventListener(MouseEvent.CLICK, onButtonMenuClick); m_view.m_buttonNewAchievement.addEventListener(MouseEvent.CLICK, onAchievementsClick); m_wasNewAchievement = GameData.wasNewAchievements(); SoundManager.playFadeOut(SoundConst.WIN); addChild(new MoreGamesPanel(LinksManager.WIN_SCREEN)); } override public function onCleanup():void{ m_view.m_buttonNext.removeEventListener(MouseEvent.CLICK, onButtonNextClick); m_view.m_buttonMenu.removeEventListener(MouseEvent.CLICK, onButtonMenuClick); m_view.m_buttonNewAchievement.removeEventListener(MouseEvent.CLICK, onAchievementsClick); m_shader = null; super.onCleanup(); } private function onAchievementsClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(new AchievementsState()); } private function onButtonNextClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(GameData.getNextState((PlayState.m_curLevel + 1))); } private function onButtonMenuClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); StateManager.getInstance().coolChangeState(GameData.getSelectLevelScreen()); } } }//package StatesSection 161//YesNoState (States.YesNoState) package States { import flash.events.*; import flash.geom.*; import Main.*; public class YesNoState extends GameState { private const m_endPosition:Point; private const STATE_MOVE_DOWN:int = 0; private const STATE_MOVE_BACK:int = 3; private const STATE_MOVE_UP:int = 1; private const m_startPosition:Point; private const STATE_MOVE_END:int = 2; private var m_shader:Shader; private var m_state:int;// = 0 public function YesNoState(){ m_shader = new Shader(0.6, 1.2, 0, 0.5); m_startPosition = new Point(584, -215); m_endPosition = new Point(493, 62); super(); } private function onYesClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); m_state = STATE_MOVE_BACK; removeChild(m_shader); m_shader = new Shader(0, 0.25, m_shader.getShade(), 0); addChildAt(m_shader, 0); GameData.resetGame(); } override public function onCleanup():void{ m_view.m_buttonYes.removeEventListener(MouseEvent.CLICK, onYesClick); m_view.m_buttonNo.removeEventListener(MouseEvent.CLICK, onNoClick); super.onCleanup(); } private function onNoClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); m_state = STATE_MOVE_BACK; removeChild(m_shader); m_shader = new Shader(0, 0.25, m_shader.getShade(), 0); addChildAt(m_shader, 0); } override public function update(_arg1:Number):void{ m_shader.update(_arg1); switch (m_state){ case STATE_MOVE_DOWN: if ((m_view.y = (m_view.y + (_arg1 * 1000))) > 20){ m_state = STATE_MOVE_UP; }; break; case STATE_MOVE_UP: if ((m_view.y = (m_view.y - (_arg1 * 150))) < 0){ m_view.y = 0; m_state = STATE_MOVE_END; }; break; case STATE_MOVE_BACK: if ((m_view.y = (m_view.y - (_arg1 * 1300))) < -480){ StateManager.getInstance().popState(); }; break; }; } override public function onInit():void{ super.onInit(); m_view = new YesNoStateView(); addChild(m_shader); addChild(m_view); m_view.y = -480; m_view.m_buttonYes.addEventListener(MouseEvent.CLICK, onYesClick); m_view.m_buttonNo.addEventListener(MouseEvent.CLICK, onNoClick); } } }//package StatesSection 162//MathUtils (Utils.MathUtils) package Utils { public class MathUtils { private static const m_radToGradKoef:Number = 57.2957795130823; private static const m_gradToRadKoef:Number = 0.0174532925199433; public static function GradToRad(_arg1:Number):Number{ return ((_arg1 * m_gradToRadKoef)); } public static function Round(_arg1:Number):int{ return (int((_arg1 + 0.5))); } public static function anyOfNumber(... _args):Number{ return ((_args[int((_args.length * Math.random()))] as Number)); } public static function anyOfString(... _args):String{ return ((_args[int((_args.length * Math.random()))] as String)); } public static function RandomRangeInt(_arg1:int, _arg2:Number):int{ return (Round((_arg1 + ((_arg2 - _arg1) * Math.random())))); } public static function rangeToInt(... _args):int{ var _local2:* = _args[0]; var _local3:int = _args.length; while (_local3 > 0) { trace(_local2, _args[_local3]); if (_local2 > _args[_local3]){ return ((_local3 - 1)); }; _local3--; }; return (-2); } public static function RandomRange(_arg1:Number, _arg2:Number):Number{ return ((_arg1 + ((_arg2 - _arg1) * Math.random()))); } public static function Sign(_arg1:Number):Number{ if (_arg1 > 0){ return (1); }; if (_arg1 < 0){ return (-1); }; return (0); } public static function RadToGrad(_arg1:Number):Number{ return ((_arg1 * m_radToGradKoef)); } } }//package UtilsSection 163//Utils (Utils.Utils) package Utils { import flash.geom.*; import flash.display.*; public class Utils { public static function AnyOf(_arg1:Array){ return (_arg1[int((Math.random() * _arg1.length))]); } public static function RandomRangeInt(_arg1:int, _arg2:int):int{ return (Math.round((_arg1 + (Math.random() * (_arg2 - _arg1))))); } public static function InRange(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ return ((((_arg1 >= _arg2)) && ((_arg1 <= _arg3)))); } public static function RandomRange(_arg1:Number, _arg2:Number):Number{ return ((_arg1 + (Math.random() * (_arg2 - _arg1)))); } public static function SetPosition(_arg1:DisplayObject, _arg2:Point):void{ _arg1.x = _arg2.x; _arg1.y = _arg2.y; } public static function Sign(_arg1:Number):Number{ if (_arg1 == 0){ return (0); }; return (((_arg1 < 0)) ? -1 : 1); } public static function intToTimeString(_arg1:int):String{ var _local3:String; var _local5:String; var _local2:int = (_arg1 / 60); if (_local2 < 10){ _local3 = ("0" + _local2); } else { _local3 = _local2.toString(); }; var _local4:int = (_arg1 % 60); if (_local4 < 10){ _local5 = ("0" + _local4); } else { _local5 = _local4.toString(); }; return (((_local3 + ":") + _local5)); } } }//package UtilsSection 164//Vector3 (Utils.Vector3) package Utils { import Box2D.Common.Math.*; import flash.geom.*; public final class Vector3 { public var z:Number; public var x:Number; public var y:Number; public function Vector3(_arg1:Number, _arg2:Number, _arg3:Number){ this.x = _arg1; this.y = _arg2; this.z = _arg3; } final public function sub(_arg1:Vector3):Vector3{ return (new Vector3((x - _arg1.x), (y - _arg1.y), (z - _arg1.z))); } final public function negate():Vector3{ return (new Vector3(-(x), -(y), -(z))); } final public function getAngleWith(_arg1:Vector3):Number{ var _local2:Number = (((x * _arg1.x) + (y * _arg1.y)) / (length() * _arg1.length())); if (_local2 > 1){ _local2 = 1; }; if (_local2 < -1){ _local2 = -1; }; return (Math.acos(_local2)); } final public function mul(_arg1:Number):Vector3{ return (new Vector3((x * _arg1), (y * _arg1), (z * _arg1))); } final public function get2DRotation():Number{ var _local1:Number = ((180 * getAngleWith(new Vector3(0, -1, 0))) / Math.PI); if (this.x < 0){ _local1 = (_local1 * -1); }; return (_local1); } final public function normalizedCopy():Vector3{ var _local1:Number = (1 / length()); if (_local1 != 0){ return (new Vector3((x * _local1), (y * _local1), (z * _local1))); }; return (zero()); } final public function normalize():Vector3{ var _local1:Number = (1 / length()); x = (x * _local1); y = (y * _local1); z = (z * _local1); return (this); } final public function crossProduct(_arg1:Vector3):Vector3{ return (new Vector3(((y * _arg1.z) - (z * _arg1.y)), ((z * _arg1.x) - (x * _arg1.z)), ((x * _arg1.y) - (y * _arg1.x)))); } public function toPoint():Point{ return (new Point(x, y)); } final public function clone():Vector3{ return (new Vector3(x, y, z)); } final public function add(_arg1:Vector3):Vector3{ return (new Vector3((x + _arg1.x), (y + _arg1.y), (z + _arg1.z))); } final public function dotProduct(_arg1:Vector3):Number{ return ((((x * _arg1.x) + (y * _arg1.y)) + (z * _arg1.z))); } final public function isLengthLess(_arg1:Number):Boolean{ return ((squaredLength() < (_arg1 * _arg1))); } final public function isEqual(_arg1:Vector3):Boolean{ return ((((((x == _arg1.x)) && ((y == _arg1.y)))) && ((z == _arg1.z)))); } final public function toString():String{ return ((((((((("v: " + "x=") + x.toFixed(3)) + ", ") + "y=") + y.toFixed(3)) + ", ") + "z=") + z.toFixed(3))); } final public function length():Number{ return (Math.sqrt(squaredLength())); } final public function haveNaN():Boolean{ return (((((isNaN(z)) || (isNaN(y)))) || (isNaN(z)))); } final public function squaredLength():Number{ return ((((x * x) + (y * y)) + (z * z))); } final public function killNaN():void{ if (isNaN(x)){ x = 0; }; if (isNaN(y)){ y = 0; }; if (isNaN(z)){ z = 0; }; } public static function fromb2Vec2(_arg1:b2Vec2):Vector3{ return (new Vector3(_arg1.x, _arg1.y, 0)); } public static function getProjection(_arg1:Vector3, _arg2:Vector3):Vector3{ return (_arg1.mul((_arg1.dotProduct(_arg2) / _arg1.squaredLength()))); } public static function fromPoint(_arg1:Point):Vector3{ return (new Vector3(_arg1.x, _arg1.y, 0)); } public static function zero():Vector3{ return (new Vector3(0, 0, 0)); } } }//package UtilsSection 165//ach_1 (ach_1) package { public dynamic class ach_1 extends Achievement { } }//packageSection 166//ach_10 (ach_10) package { public dynamic class ach_10 extends Achievement { } }//packageSection 167//ach_11 (ach_11) package { public dynamic class ach_11 extends Achievement { } }//packageSection 168//ach_12 (ach_12) package { public dynamic class ach_12 extends Achievement { } }//packageSection 169//ach_13 (ach_13) package { public dynamic class ach_13 extends Achievement { } }//packageSection 170//ach_14 (ach_14) package { public dynamic class ach_14 extends Achievement { } }//packageSection 171//ach_15 (ach_15) package { public dynamic class ach_15 extends Achievement { } }//packageSection 172//ach_2 (ach_2) package { public dynamic class ach_2 extends Achievement { } }//packageSection 173//ach_3 (ach_3) package { public dynamic class ach_3 extends Achievement { } }//packageSection 174//ach_4 (ach_4) package { public dynamic class ach_4 extends Achievement { } }//packageSection 175//ach_5 (ach_5) package { public dynamic class ach_5 extends Achievement { } }//packageSection 176//ach_6 (ach_6) package { public dynamic class ach_6 extends Achievement { } }//packageSection 177//ach_7 (ach_7) package { public dynamic class ach_7 extends Achievement { } }//packageSection 178//ach_8 (ach_8) package { public dynamic class ach_8 extends Achievement { } }//packageSection 179//ach_9 (ach_9) package { public dynamic class ach_9 extends Achievement { } }//packageSection 180//Achievement (Achievement) package { import flash.events.*; import flash.display.*; public class Achievement extends MovieClip { private var m_hint:Hint;// = null public function Achievement(){ buttonMode = true; addEventListener(Event.REMOVED_FROM_STAGE, onRemoveFromStage); addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); addEventListener(MouseEvent.MOUSE_OUT, onMouseOut); addEventListener(Event.ENTER_FRAME, update); addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); } private function onRemoveFromStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, onRemoveFromStage); removeEventListener(MouseEvent.MOUSE_OVER, onMouseOver); removeEventListener(MouseEvent.MOUSE_OUT, onMouseOut); removeEventListener(Event.ENTER_FRAME, update); removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); } private function onMouseMove(_arg1:MouseEvent):void{ if (m_hint){ m_hint.x = _arg1.stageX; m_hint.y = _arg1.stageY; }; } public function setHint(_arg1:Hint):void{ m_hint = _arg1; m_hint.x = x; m_hint.y = y; } private function update(_arg1:Event):void{ if (m_hint){ m_hint.update(); }; } private function onMouseOver(_arg1:MouseEvent):void{ if (m_hint){ m_hint.show(); }; } private function onMouseOut(_arg1:MouseEvent):void{ if (m_hint){ m_hint.hide(); }; } } }//packageSection 181//Achievements (Achievements) package { public class Achievements { public static const ALL:Array = [HALF_COMPLETED, FULL_COMPLETED, WITH_STAR_40, ACCURACY_70, GRIFS_KILLED, SAVES_50, SAVES_100, KILLED_100, CROWN, HOUR_PLAYED, TWO_HOURS_PLAYED, LEVELS_WITHOUT_LOSE, LEVELS_WITHOUT_INJURE, LEVEL_30_IN_6_SHOT, LEVEL_44_IN_6_SHOT]; public static const SAVES_50:String = "SAVES_50"; public static const HOUR_PLAYED:String = "HOUR_PLAYED"; public static const WITH_STAR_40:String = "WITH_STAR_40"; public static const TWO_HOURS_PLAYED:String = "TWO_HOURS_PLAYED"; public static const LEVELS_WITHOUT_LOSE:String = "LEVELS_WITHOUT_LOSE"; public static const LEVEL_30_IN_6_SHOT:String = "LEVEL_30_IN_6_SHOT"; public static const HALF_COMPLETED:String = "HALF_COMPLETED"; public static const CROWN:String = "CROWN"; public static const SAVES_100:String = "SAVES_100"; public static const LEVELS_WITHOUT_INJURE:String = "LEVELS_WITHOUT_INJURE"; public static const KILLED_100:String = "KILLED_100"; public static const GRIFS_KILLED:String = "GRIFS_KILLED"; public static const ACCURACY_70:String = "ACCURACY_70"; public static const LEVEL_44_IN_6_SHOT:String = "LEVEL_44_IN_6_SHOT"; public static const FULL_COMPLETED:String = "FULL_COMPLETED"; } }//packageSection 182//AchievementsStateView (AchievementsStateView) package { import flash.display.*; public dynamic class AchievementsStateView extends MovieClip { public var m_buttonMenu:SimpleButton; public var SAVES_50:ach_5; public var HOUR_PLAYED:ach_7; public var TWO_HOURS_PLAYED:ach_8; public var CROWN:ach_15; public var LEVEL_30_IN_6_SHOT:ach_1; public var ACCURACY_70:ach_13; public var LEVELS_WITHOUT_LOSE:ach_3; public var HALF_COMPLETED:ach_9; public var SAVES_100:ach_6; public var LEVELS_WITHOUT_INJURE:ach_4; public var KILLED_100:ach_14; public var GRIFS_KILLED:ach_12; public var WITH_STAR_40:ach_11; public var LEVEL_44_IN_6_SHOT:ach_2; public var FULL_COMPLETED:ach_10; } }//packageSection 183//add_arrows_sound_0 (add_arrows_sound_0) package { import flash.media.*; public dynamic class add_arrows_sound_0 extends Sound { } }//packageSection 184//add_arrows_sound_1 (add_arrows_sound_1) package { import flash.media.*; public dynamic class add_arrows_sound_1 extends Sound { } }//packageSection 185//AddArrowClip (AddArrowClip) package { import flash.display.*; import flash.text.*; public dynamic class AddArrowClip extends MovieClip { public var m_text:TextField; } }//packageSection 186//ambient_1 (ambient_1) package { import flash.media.*; public dynamic class ambient_1 extends Sound { } }//packageSection 187//ambient_2 (ambient_2) package { import flash.media.*; public dynamic class ambient_2 extends Sound { } }//packageSection 188//AmmoGhost10 (AmmoGhost10) package { import States.PlayState.*; public dynamic class AmmoGhost10 extends AmmoGhost { } }//packageSection 189//AmmoGhost3 (AmmoGhost3) package { import States.PlayState.*; public dynamic class AmmoGhost3 extends AmmoGhost { } }//packageSection 190//AmmoGhost5 (AmmoGhost5) package { import States.PlayState.*; public dynamic class AmmoGhost5 extends AmmoGhost { } }//packageSection 191//AmmoHint (AmmoHint) package { import States.PlayState.*; public dynamic class AmmoHint extends HintText { } }//packageSection 192//arrow_ghost (arrow_ghost) package { import flash.media.*; public dynamic class arrow_ghost extends Sound { } }//packageSection 193//ArrowGhost1 (ArrowGhost1) package { import States.PlayState.*; public dynamic class ArrowGhost1 extends HedgehogGhost { } }//packageSection 194//ArrowGhost3 (ArrowGhost3) package { import States.PlayState.*; public dynamic class ArrowGhost3 extends HedgehogGhost { } }//packageSection 195//ArrowGhost4 (ArrowGhost4) package { import States.PlayState.*; public dynamic class ArrowGhost4 extends HedgehogGhost { } }//packageSection 196//ArrowGhostHint (ArrowGhostHint) package { import States.PlayState.*; public dynamic class ArrowGhostHint extends HintText { } }//packageSection 197//ArtCloud (ArtCloud) package { import flash.display.*; public dynamic class ArtCloud extends MovieClip { } }//packageSection 198//AsyncClip (AsyncClip) package { import flash.display.*; public class AsyncClip extends MovieClip { public function AsyncClip(){ gotoAndPlay(int((totalFrames * Math.random()))); } } }//packageSection 199//Back1 (Back1) package { import flash.display.*; public dynamic class Back1 extends MovieClip { } }//packageSection 200//Back2 (Back2) package { import flash.display.*; public dynamic class Back2 extends MovieClip { } }//packageSection 201//Back3 (Back3) package { import flash.display.*; public dynamic class Back3 extends MovieClip { } }//packageSection 202//Back4 (Back4) package { import flash.display.*; public dynamic class Back4 extends MovieClip { } }//packageSection 203//Background (Background) package { import flash.display.*; public dynamic class Background extends MovieClip { } }//packageSection 204//BgStones (BgStones) package { import flash.display.*; public dynamic class BgStones extends MovieClip { } }//packageSection 205//black_square (black_square) package { import flash.display.*; public dynamic class black_square extends MovieClip { } }//packageSection 206//BonusGameBack (BonusGameBack) package { import flash.display.*; public dynamic class BonusGameBack extends MovieClip { } }//packageSection 207//bow_shoot (bow_shoot) package { import flash.media.*; public dynamic class bow_shoot extends Sound { } }//packageSection 208//BowClip (BowClip) package { import flash.display.*; public dynamic class BowClip extends MovieClip { public var m_field:black_square; public function BowClip(){ addFrameScript(0, frame1, 9, frame10, 17, frame18); } function frame1(){ stop(); } function frame18(){ stop(); } function frame10(){ stop(); } } }//packageSection 209//BowPoint (BowPoint) package { import flash.display.*; public dynamic class BowPoint extends MovieClip { } }//packageSection 210//Box (Box) package { import flash.display.*; public dynamic class Box extends MovieClip { } }//packageSection 211//Brick (Brick) package { import States.PlayState.*; public dynamic class Brick extends StaticBoxIsStone { } }//packageSection 212//BrickNoLeft (BrickNoLeft) package { import States.PlayState.*; public dynamic class BrickNoLeft extends StaticBoxIsStone { } }//packageSection 213//BrickNoRight (BrickNoRight) package { import States.PlayState.*; public dynamic class BrickNoRight extends StaticBoxIsStone { } }//packageSection 214//BrickNoRightNoLeft (BrickNoRightNoLeft) package { import States.PlayState.*; public dynamic class BrickNoRightNoLeft extends StaticBoxIsStone { } }//packageSection 215//CheckBox (CheckBox) package { import flash.events.*; import flash.display.*; public class CheckBox extends MovieClip { private var m_isChecked:Boolean;// = false public static const EVENT_CHANGE:String = "checkChange"; public function CheckBox(){ buttonMode = true; stop(); addEventListener(MouseEvent.CLICK, onClick); addEventListener(Event.REMOVED_FROM_STAGE, handleRemoveFromStage); } public function setChecked(_arg1:Boolean):void{ m_isChecked = _arg1; if (m_isChecked){ gotoAndStop(2); } else { gotoAndStop(1); }; } public function handleRemoveFromStage(_arg1:Event):void{ removeEventListener(MouseEvent.CLICK, onClick); removeEventListener(Event.REMOVED_FROM_STAGE, handleRemoveFromStage); } private function onClick(_arg1:MouseEvent):void{ setChecked(!(m_isChecked)); dispatchEvent(new Event(EVENT_CHANGE)); } public function isChecked():Boolean{ return (m_isChecked); } } }//packageSection 216//click (click) package { import flash.media.*; public dynamic class click extends Sound { } }//packageSection 217//ClickToContinue (ClickToContinue) package { import flash.display.*; public dynamic class ClickToContinue extends MovieClip { } }//packageSection 218//CloseCross (CloseCross) package { import flash.display.*; public dynamic class CloseCross extends SimpleButton { } }//packageSection 219//Cloud0 (Cloud0) package { import States.PlayState.*; public dynamic class Cloud0 extends Cloud { } }//packageSection 220//Cloud1 (Cloud1) package { import States.PlayState.*; public dynamic class Cloud1 extends Cloud { } }//packageSection 221//Cloud2 (Cloud2) package { import States.PlayState.*; public dynamic class Cloud2 extends Cloud { } }//packageSection 222//Cloud3 (Cloud3) package { import States.PlayState.*; public dynamic class Cloud3 extends Cloud { } }//packageSection 223//Cloud4 (Cloud4) package { import States.PlayState.*; public dynamic class Cloud4 extends Cloud { } }//packageSection 224//Cloud5 (Cloud5) package { import States.PlayState.*; public dynamic class Cloud5 extends Cloud { } }//packageSection 225//Cloud6 (Cloud6) package { import States.PlayState.*; public dynamic class Cloud6 extends Cloud { } }//packageSection 226//Cloud7 (Cloud7) package { import States.PlayState.*; public dynamic class Cloud7 extends Cloud { } }//packageSection 227//Cloud8 (Cloud8) package { import States.PlayState.*; public dynamic class Cloud8 extends Cloud { } }//packageSection 228//Cloud9 (Cloud9) package { import States.PlayState.*; public dynamic class Cloud9 extends Cloud { } }//packageSection 229//ComboSave2Hint (ComboSave2Hint) package { import States.PlayState.*; public dynamic class ComboSave2Hint extends HintText { } }//packageSection 230//ComboSave3Hint (ComboSave3Hint) package { import States.PlayState.*; public dynamic class ComboSave3Hint extends HintText { } }//packageSection 231//ComposedStone1 (ComposedStone1) package { import States.PlayState.*; public dynamic class ComposedStone1 extends StaticBoxIsStone { } }//packageSection 232//ComposedStone2 (ComposedStone2) package { import States.PlayState.*; public dynamic class ComposedStone2 extends StaticBoxIsStone { } }//packageSection 233//ComposedStone55 (ComposedStone55) package { import States.PlayState.*; public dynamic class ComposedStone55 extends StaticBoxIsStone { } }//packageSection 234//ComposedStone96 (ComposedStone96) package { import States.PlayState.*; public dynamic class ComposedStone96 extends StaticBoxIsStone { } }//packageSection 235//ComposedStone98 (ComposedStone98) package { import States.PlayState.*; public dynamic class ComposedStone98 extends StaticBoxIsStone { } }//packageSection 236//ComposedStone99 (ComposedStone99) package { import States.PlayState.*; public dynamic class ComposedStone99 extends StaticBoxIsStone { } }//packageSection 237//Constant (Constant) package { public class Constant { public static const RIGHT_EDGE_MARKER_NAME:String = "RIGHT_EDGE_MARKER_NAME"; public static const WINDOW_HEIGHT:Number = 480; public static const WINDOW_WIDTH:Number = 640; public static const CPMSTAR_INTER_LEVEL_CODE:String = "2153Q1350F46C"; public static const BOMB_KILL_DISTANCE:Number = 70; public static const PHYSICS_POSITIONS_ITERATION_COUNT:int = 1; public static const PHYSICS_VELOCITY_ITERATION_COUNT:int = 5; public static const LEFT_EDGE_MARKER_NAME:String = "LEFT_EDGE_MARKER_NAME"; public static const CPMSTAR_PREROLL_CODE:String = "2152Q6209380B"; public static const MAX_SHOOTING_POWER:Number = 25; public static const SHARED_OBJECT_NAME:String = "Gibbets_II_so_name"; public static const BOMB_DISTANCE:Number = 100; public static const MIN_SHOOTING_POWER:Number = 4; public static const BOMB_IMPULSE:Number = 50; public static const PHYS_SCALE:Number = 30; public static const TIME_STEP:Number = 0.025; public static var m_debugMode:Boolean = false; } }//packageSection 238//CowCry (CowCry) package { import flash.display.*; public dynamic class CowCry extends MovieClip { public function CowCry(){ addFrameScript(56, frame57); } function frame57(){ stop(); } } }//packageSection 239//CowHere (CowHere) package { import flash.display.*; public dynamic class CowHere extends MovieClip { } }//packageSection 240//CowMaket (CowMaket) package { import flash.display.*; public dynamic class CowMaket extends MovieClip { public var vertex0:HangerPoint; public var vertex1:HangerPoint; public var vertex2:HangerPoint; public var vertex3:HangerPoint; public var vertex4:HangerPoint; public var vertex5:HangerPoint; public var vertex6:HangerPoint; } }//packageSection 241//CowNormal (CowNormal) package { import flash.display.*; public dynamic class CowNormal extends MovieClip { } }//packageSection 242//CreditsStateView (CreditsStateView) package { import flash.display.*; public dynamic class CreditsStateView extends MovieClip { public var m_buttonMenu:SimpleButton; public var m_mailLink:SimpleButton; public var m_blogLink:SimpleButton; public var m_sky:MovieClip; public var m_artHanger:HangerPoint; public var m_musicHanger:HangerPoint; public var m_notdoppler:SimpleButton; public var m_programmingHanger:HangerPoint; } }//packageSection 243//cry_0 (cry_0) package { import flash.media.*; public dynamic class cry_0 extends Sound { } }//packageSection 244//cry_1 (cry_1) package { import flash.media.*; public dynamic class cry_1 extends Sound { } }//packageSection 245//cry_2 (cry_2) package { import flash.media.*; public dynamic class cry_2 extends Sound { } }//packageSection 246//cry_3 (cry_3) package { import flash.media.*; public dynamic class cry_3 extends Sound { } }//packageSection 247//cry_4 (cry_4) package { import flash.media.*; public dynamic class cry_4 extends Sound { } }//packageSection 248//cry_5 (cry_5) package { import flash.media.*; public dynamic class cry_5 extends Sound { } }//packageSection 249//cry_6 (cry_6) package { import flash.media.*; public dynamic class cry_6 extends Sound { } }//packageSection 250//cry_7 (cry_7) package { import flash.media.*; public dynamic class cry_7 extends Sound { } }//packageSection 251//death_cry (death_cry) package { import flash.media.*; public dynamic class death_cry extends Sound { } }//packageSection 252//DoubleSave (DoubleSave) package { import flash.display.*; public dynamic class DoubleSave extends MovieClip { } }//packageSection 253//exploison (exploison) package { import flash.media.*; public dynamic class exploison extends Sound { } }//packageSection 254//FaceColors_1 (FaceColors_1) package { import flash.display.*; public dynamic class FaceColors_1 extends MovieClip { } }//packageSection 255//FaceColors_2 (FaceColors_2) package { import flash.display.*; public dynamic class FaceColors_2 extends MovieClip { } }//packageSection 256//FaceColors_3 (FaceColors_3) package { import flash.display.*; public dynamic class FaceColors_3 extends MovieClip { } }//packageSection 257//FaceColors_4 (FaceColors_4) package { import flash.display.*; public dynamic class FaceColors_4 extends MovieClip { } }//packageSection 258//flower_0 (flower_0) package { import States.PlayState.*; public dynamic class flower_0 extends Frontground { } }//packageSection 259//flower_1 (flower_1) package { import States.PlayState.*; public dynamic class flower_1 extends Frontground { } }//packageSection 260//flower_2 (flower_2) package { import States.PlayState.*; public dynamic class flower_2 extends Frontground { } }//packageSection 261//flower_3 (flower_3) package { import States.PlayState.*; public dynamic class flower_3 extends Frontground { } }//packageSection 262//flower_4 (flower_4) package { import States.PlayState.*; public dynamic class flower_4 extends Frontground { } }//packageSection 263//flower_5 (flower_5) package { import States.PlayState.*; public dynamic class flower_5 extends Frontground { } }//packageSection 264//flower_6 (flower_6) package { import States.PlayState.*; public dynamic class flower_6 extends Frontground { } }//packageSection 265//GameCompleteCloud (GameCompleteCloud) package { import flash.display.*; public dynamic class GameCompleteCloud extends MovieClip { } }//packageSection 266//GameCompleteStateView (GameCompleteStateView) package { import flash.display.*; public dynamic class GameCompleteStateView extends MovieClip { public var m_totalScore:MovieClip; public var m_buttonMenu:SimpleButton; public var m_gibbetFront:MovieClip; public var m_buttonMoreGames:SimpleButton; public var m_notDoppler:SimpleButton; public var m_buttonSubmit:SimpleButton; } }//packageSection 267//GameData (GameData) package { import Main.*; import States.PlayState.*; import States.GrifShooting.*; import States.*; import flash.net.*; public class GameData { public static const totalLevelsCount:int = 53; public static const SCREEN_25_48:String = "screen_25_48"; public static const SCREEN_1_24:String = "screen_1_24"; public static const SCREEN_49_54:String = "screen_49_54"; private static var m_lastPlayedLevelNum:int = -1; private static var m_curSelectLevelScreen:String = null; private static var m_grifsCount:int = 0; public static var m_isKongregate:Boolean = false; private static var m_achievements:Array = new Array(); private static var m_killedCount:int = 0; private static var m_levelsInRaw:int = 0; private static var m_scorePerLevel:Array = new Array(); public static var m_isBloodDisabled:Boolean = false; private static var m_levelsCompleted:int = 0; private static var m_noInjureInRaw:int = 0; private static var m_oldAchiemeventCount:int; public static var m_invertedControl:Boolean = false; private static var m_levelsWithStar:Array = new Array(); private static var m_savedCount:int = 0; public static var kongregate; private static var m_haveAds:Boolean = true; public static var m_isHintsOn:Boolean = true; private static var m_alreadyPlayed:Array = new Array(); public static function onStartLevel(_arg1:int):void{ m_alreadyPlayed[_arg1] = true; m_oldAchiemeventCount = m_achievements.length; } public static function onWinLevel(_arg1:int, _arg2:int, _arg3:Boolean, _arg4:int):void{ if (((((_arg1 - m_lastPlayedLevelNum) == 1)) || (((_arg1 - m_lastPlayedLevelNum) == 2)))){ if (_arg3){ m_noInjureInRaw++; } else { m_noInjureInRaw = 0; }; if (m_noInjureInRaw >= 5){ giveAchievement(Achievements.LEVELS_WITHOUT_INJURE); }; m_levelsInRaw++; if (m_levelsInRaw >= 10){ giveAchievement(Achievements.LEVELS_WITHOUT_LOSE); }; } else { if (_arg1 != m_lastPlayedLevelNum){ m_levelsInRaw = 0; m_noInjureInRaw = 0; }; }; m_savedCount = (m_savedCount + _arg4); if (m_savedCount >= 50){ giveAchievement(Achievements.SAVES_50); }; if (m_savedCount >= 100){ giveAchievement(Achievements.SAVES_100); }; if (StateManager.getInstance().getSeconds() >= (60 * 60)){ giveAchievement(Achievements.HOUR_PLAYED); }; if (StateManager.getInstance().getSeconds() >= ((60 * 60) * 2)){ giveAchievement(Achievements.TWO_HOURS_PLAYED); }; if (_arg1 == m_levelsCompleted){ m_levelsCompleted++; if (m_levelsCompleted == 24){ giveAchievement(Achievements.HALF_COMPLETED); onEnterSelectLevelScreen(SCREEN_25_48); }; if (m_levelsCompleted == 48){ giveAchievement(Achievements.FULL_COMPLETED); onEnterSelectLevelScreen(SCREEN_49_54); }; }; var _local5:int; var _local6:int; while (_local6 < m_levelsCompleted) { if (isLevelWithStar(_local6)){ _local5++; }; _local6++; }; if (_local5 >= 40){ giveAchievement(Achievements.WITH_STAR_40); }; m_scorePerLevel[_arg1] = Math.max(m_scorePerLevel[_arg1], _arg2); if (_arg3){ m_levelsWithStar[_arg1] = true; }; save(); m_lastPlayedLevelNum = _arg1; submitKongregateLevel(); submitKongregateScore(); } public static function init():void{ var _local1:int; while (_local1 < totalLevelsCount) { m_alreadyPlayed.push(false); _local1++; }; } public static function hideAds():void{ m_haveAds = false; } public static function setHideTips(_arg1:Boolean):void{ if (_arg1){ hideTips(); } else { showTips(); }; } public static function hideTips():void{ m_isHintsOn = false; save(); } public static function get levelsCompleted():int{ return (m_levelsCompleted); } public static function getArrowsLeft(_arg1:int):int{ var _local2:Array = [30, 30, 1, 4, 9, 1000, 14, 10, 12, 6, 20, 99, 8, 4, 2, 7, 5, 1000, 5, 5, 3, 20, 12, 99, 15, 3, 11, 2, 7, 1000, 14, 15, 4, 10, 15, 99, 3, 10, 4, 1, 10, 1000, 5, 5, 14, 1, 1, 99, 20, 18, 3, 1, 0]; if (_arg1 >= _local2.length){ return (55); }; return (_local2[_arg1]); } public static function getNextState(_arg1:int):GameState{ var _local2:PlayState; if (_arg1 >= totalLevelsCount){ return (new GameCompleteState()); }; if (((_arg1 + 1) % 6) != 0){ return (new PlayState(_arg1)); }; if (((_arg1 + 1) % 12) == 0){ _local2 = new PlayState(_arg1); _local2.setLongShootMode(); return (_local2); }; return (new GrifShootingState(_arg1)); } public static function get totalScore():int{ var _local2:int; var _local1:int; for each (_local2 in m_scorePerLevel) { _local1 = (_local1 + _local2); }; if (haveAchievement(Achievements.HALF_COMPLETED)){ _local1 = (_local1 + 10000); }; if (haveAchievement(Achievements.CROWN)){ _local1 = (_local1 + 30000); }; return (_local1); } public static function haveAds():Boolean{ return (m_haveAds); } public static function onRestart():void{ m_noInjureInRaw = 0; m_levelsInRaw = 0; } private static function submitKongregateLevel():void{ if (hasKongregateAPI()){ try { kongregate.stats.submit("LevelsCompleted", levelsCompleted); } catch(e:Error) { trace(e, e.getStackTrace()); }; }; } public static function wasNewAchievements():Boolean{ return (!((m_oldAchiemeventCount == m_achievements.length))); } public static function getSelectLevelScreen():GameState{ if (m_curSelectLevelScreen == null){ if (levelsCompleted < 24){ return (new SelectLevelState(false)); }; if (levelsCompleted < 48){ return (new SelectLevelState(true)); }; return (new SelectSecretLevelState()); } else { switch (m_curSelectLevelScreen){ case SCREEN_1_24: return (new SelectLevelState(false)); case SCREEN_25_48: return (new SelectLevelState(true)); case SCREEN_49_54: return (new SelectSecretLevelState()); }; }; return (null); } public static function haveAchievement(_arg1:String):Boolean{ return (!((m_achievements.indexOf(_arg1) == -1))); } public static function isHintsOn():Boolean{ return (m_isHintsOn); } public static function hasKongregateAPI():Boolean{ return (m_isKongregate); } private static function submitKongregateScore():void{ if (hasKongregateAPI()){ try { kongregate.stats.submit("Score", totalScore); } catch(e:Error) { trace(e, e.getStackTrace()); }; }; } public static function isAlreadyPlayed(_arg1):Boolean{ return (m_alreadyPlayed[_arg1]); } public static function onLoseLevel(_arg1:int, _arg2:int):void{ m_levelsInRaw = 0; m_noInjureInRaw = 0; m_killedCount = (m_killedCount + _arg2); if (m_killedCount >= 100){ giveAchievement(Achievements.KILLED_100); }; save(); } public static function isLevelWithStar(_arg1):Boolean{ return (m_levelsWithStar[_arg1]); } public static function onEnterSelectLevelScreen(_arg1:String):void{ m_curSelectLevelScreen = _arg1; } public static function getBestScore(_arg1:int):int{ return (m_scorePerLevel[_arg1]); } public static function showTips():void{ var _local1:int; while (_local1 < m_alreadyPlayed.length) { m_alreadyPlayed[_local1] = false; _local1++; }; m_isHintsOn = true; save(); } public static function resetGame():void{ var _local1:int; m_savedCount = 0; m_killedCount = 0; m_grifsCount = 0; m_levelsInRaw = 0; m_noInjureInRaw = 0; m_scorePerLevel = new Array(); _local1 = 0; while (_local1 < totalLevelsCount) { m_scorePerLevel.push(0); _local1++; }; m_levelsWithStar = new Array(); _local1 = 0; while (_local1 < totalLevelsCount) { m_levelsWithStar.push(false); _local1++; }; m_levelsCompleted = 0; m_achievements = new Array(); onEnterSelectLevelScreen(SCREEN_1_24); save(); } public static function giveAchievement(_arg1:String):void{ if (Constant.m_debugMode){ trace("try to give", _arg1); }; if (!haveAchievement(_arg1)){ if (Constant.m_debugMode){ trace("give", _arg1); }; m_achievements.push(_arg1); }; if (m_achievements.length == (Achievements.ALL.length - 1)){ if (!haveAchievement(Achievements.CROWN)){ giveAchievement(Achievements.CROWN); }; }; } public static function load():void{ var _local1:int; var _local2:SharedObject = SharedObject.getLocal(Constant.SHARED_OBJECT_NAME, "/", false); if (_local2.size != 0){ m_levelsCompleted = _local2.data.m_levelsCompleted; m_scorePerLevel = _local2.data.m_scorePerLevel; m_levelsWithStar = _local2.data.m_levelsWithStar; m_achievements = _local2.data.m_achievements; m_savedCount = _local2.data.m_savedCount; m_killedCount = _local2.data.m_killedCount; m_grifsCount = _local2.data.m_grifsCount; m_isHintsOn = _local2.data.m_isHintsOn; m_invertedControl = _local2.data.m_invertedControl; SoundManager.setSoundVolume(_local2.data.m_soundVolume); SoundManager.setMusicVolume(_local2.data.m_musicVolume); } else { m_scorePerLevel = new Array(); _local1 = 0; while (_local1 < totalLevelsCount) { m_scorePerLevel.push(0); _local1++; }; m_levelsWithStar = new Array(); _local1 = 0; while (_local1 < totalLevelsCount) { m_levelsWithStar.push(false); _local1++; }; }; if (m_achievements == null){ m_achievements = new Array(); }; } public static function canSubmitScore():Boolean{ return (false); } public static function getBestScoreOnLevel(_arg1:int):int{ return (m_scorePerLevel[_arg1]); } public static function onWinGrifShootingLevel(_arg1:int, _arg2:int):void{ m_grifsCount = (m_grifsCount + _arg2); if (m_grifsCount >= 100){ giveAchievement(Achievements.GRIFS_KILLED); }; submitKongregateScore(); save(); } public static function save():void{ var _local1:SharedObject = SharedObject.getLocal(Constant.SHARED_OBJECT_NAME, "/"); _local1.data.m_levelsCompleted = m_levelsCompleted; _local1.data.m_scorePerLevel = m_scorePerLevel; _local1.data.m_levelsWithStar = m_levelsWithStar; _local1.data.m_achievements = m_achievements; _local1.data.m_soundVolume = SoundManager.getSoundVolume(); _local1.data.m_musicVolume = SoundManager.getMusicVolume(); _local1.data.m_savedCount = m_savedCount; _local1.data.m_killedCount = m_killedCount; _local1.data.m_grifsCount = m_grifsCount; _local1.data.m_isHintsOn = m_isHintsOn; _local1.data.m_invertedControl = m_invertedControl; _local1.flush(); _local1.close(); } } }//packageSection 268//GamePausedStateView (GamePausedStateView) package { import flash.display.*; public dynamic class GamePausedStateView extends MovieClip { public var m_clickToContinue:ClickToContinue; } }//packageSection 269//GiantSky (GiantSky) package { import flash.display.*; public dynamic class GiantSky extends MovieClip { } }//packageSection 270//GibbetColumn (GibbetColumn) package { import States.PlayState.*; public dynamic class GibbetColumn extends StaticBoxIsNotStone { } }//packageSection 271//GibbetGround (GibbetGround) package { import flash.display.*; public dynamic class GibbetGround extends MovieClip { } }//packageSection 272//GibbetObliquely (GibbetObliquely) package { import flash.display.*; public dynamic class GibbetObliquely extends MovieClip { } }//packageSection 273//GibbetStick (GibbetStick) package { import States.PlayState.*; public dynamic class GibbetStick extends StaticBoxIsNotStone { } }//packageSection 274//GrifShootingStateView (GrifShootingStateView) package { import flash.display.*; public dynamic class GrifShootingStateView extends MovieClip { public var m_scoreClip:MovieClip; public var m_arrowsLeftClip:MovieClip; public var m_timeLeftClip:MovieClip; public var m_buttonMenu:SimpleButton; public var m_buttonReplay:SimpleButton; } }//packageSection 275//GrifShootingWinStateView (GrifShootingWinStateView) package { import flash.display.*; import flash.text.*; public dynamic class GrifShootingWinStateView extends MovieClip { public var m_buttonMenu:SimpleButton; public var m_star:MovieClip; public var m_currentScore:MovieClip; public var m_accuracy:MovieClip; public var m_buttonNewAchievement:SimpleButton; public var m_levelNum:TextField; public var m_buttonNext:SimpleButton; public var m_bestScore:MovieClip; } }//packageSection 276//Ground (Ground) package { import flash.display.*; public dynamic class Ground extends MovieClip { } }//packageSection 277//GuiArrow (GuiArrow) package { import flash.display.*; public dynamic class GuiArrow extends SimpleButton { } }//packageSection 278//HangerFace (HangerFace) package { import flash.display.*; public dynamic class HangerFace extends MovieClip { public function HangerFace(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//packageSection 279//HangerPoint (HangerPoint) package { import flash.display.*; public dynamic class HangerPoint extends MovieClip { } }//packageSection 280//HeadShotCloud (HeadShotCloud) package { import flash.display.*; public dynamic class HeadShotCloud extends MovieClip { } }//packageSection 281//HealthBar (HealthBar) package { import flash.display.*; public dynamic class HealthBar extends MovieClip { } }//packageSection 282//herb (herb) package { import States.PlayState.*; public dynamic class herb extends Frontground { } }//packageSection 283//HideTipsPanel (HideTipsPanel) package { import flash.display.*; public dynamic class HideTipsPanel extends MovieClip { public var m_checkBox:CheckBox; } }//packageSection 284//Hint (Hint) package { import flash.display.*; import flash.text.*; public class Hint extends MovieClip { private const m_hideSpeed:Number = 0.3; private const m_showSpeed:Number = 0.2; private var m_isShow:Boolean;// = false public var m_text:TextField; public function Hint(){ mouseEnabled = false; mouseChildren = false; alpha = 0; } public function hide():void{ m_isShow = false; } public function isShow():Boolean{ return (m_isShow); } public function update():void{ if (m_isShow){ if ((alpha = (alpha + m_showSpeed)) > 1){ alpha = 1; }; } else { if ((alpha = (alpha - m_hideSpeed)) < 0){ alpha = 0; }; }; } public function setText(_arg1:String):void{ m_text.autoSize = TextFieldAutoSize.CENTER; m_text.htmlText = _arg1; m_text.y = ((height / 2) - (m_text.height / 2)); } override public function set y(_arg1:Number):void{ super.y = _arg1; if (super.y < 0){ super.y = 0; }; if ((super.y + height) > 480){ super.y = (480 - height); }; } override public function set x(_arg1:Number):void{ super.x = _arg1; if (super.x < 0){ super.x = 0; }; if ((super.x + width) > 640){ super.x = (640 - width); }; } public function show():void{ m_isShow = true; } } }//packageSection 285//HintPoint (HintPoint) package { import flash.display.*; public dynamic class HintPoint extends MovieClip { } }//packageSection 286//ILikeToHangCloud (ILikeToHangCloud) package { import flash.display.*; public dynamic class ILikeToHangCloud extends MovieClip { } }//packageSection 287//InShader (InShader) package { import flash.display.*; public class InShader extends MovieClip { private var m_maxShade:Number; private var m_maxShadeTime:Number; private var m_blackSquare:MovieClip; private var m_liveTime:Number;// = 0 public function InShader(_arg1:Number, _arg2:Number){ m_blackSquare = new black_square(); super(); m_maxShadeTime = _arg1; m_maxShade = _arg2; m_blackSquare.alpha = 0; addChild(m_blackSquare); } public function isMaxTime():Boolean{ return ((m_liveTime >= m_maxShadeTime)); } public function update(_arg1:Number):void{ if ((m_liveTime = (m_liveTime + _arg1)) > m_maxShadeTime){ m_liveTime = m_maxShadeTime; }; m_blackSquare.alpha = ((m_liveTime / m_maxShadeTime) * m_maxShade); } public function restart():void{ m_liveTime = 0; m_blackSquare.alpha = 0; } } }//packageSection 288//IntroButton (IntroButton) package { import flash.display.*; public dynamic class IntroButton extends SimpleButton { } }//packageSection 289//InvertControlHint (InvertControlHint) package { import States.PlayState.*; public dynamic class InvertControlHint extends HintText { } }//packageSection 290//InvertedCowHere (InvertedCowHere) package { import flash.display.*; public dynamic class InvertedCowHere extends MovieClip { } }//packageSection 291//InvertedCowMaket (InvertedCowMaket) package { import flash.display.*; public dynamic class InvertedCowMaket extends MovieClip { public var vertex0:HangerPoint; public var vertex1:HangerPoint; public var vertex2:HangerPoint; public var vertex3:HangerPoint; public var vertex4:HangerPoint; public var vertex5:HangerPoint; public var vertex6:HangerPoint; } }//packageSection 292//InvertedGibbetObliquely (InvertedGibbetObliquely) package { import flash.display.*; public dynamic class InvertedGibbetObliquely extends MovieClip { } }//packageSection 293//InvertedVultureHere (InvertedVultureHere) package { import flash.display.*; public dynamic class InvertedVultureHere extends MovieClip { public var clip:MovieClip; } }//packageSection 294//LeftEdgeMarker (LeftEdgeMarker) package { import flash.display.*; public dynamic class LeftEdgeMarker extends MovieClip { } }//packageSection 295//LeftLowerHand_1 (LeftLowerHand_1) package { import flash.display.*; public dynamic class LeftLowerHand_1 extends MovieClip { } }//packageSection 296//LeftLowerHand_2 (LeftLowerHand_2) package { import flash.display.*; public dynamic class LeftLowerHand_2 extends MovieClip { } }//packageSection 297//LeftLowerHand_3 (LeftLowerHand_3) package { import flash.display.*; public dynamic class LeftLowerHand_3 extends MovieClip { } }//packageSection 298//LeftLowerHand_4 (LeftLowerHand_4) package { import flash.display.*; public dynamic class LeftLowerHand_4 extends MovieClip { } }//packageSection 299//LeftLowerLeg_1 (LeftLowerLeg_1) package { import flash.display.*; public dynamic class LeftLowerLeg_1 extends MovieClip { } }//packageSection 300//LeftLowerLeg_2 (LeftLowerLeg_2) package { import flash.display.*; public dynamic class LeftLowerLeg_2 extends MovieClip { } }//packageSection 301//LeftLowerLeg_3 (LeftLowerLeg_3) package { import flash.display.*; public dynamic class LeftLowerLeg_3 extends MovieClip { } }//packageSection 302//LeftLowerLeg_4 (LeftLowerLeg_4) package { import flash.display.*; public dynamic class LeftLowerLeg_4 extends MovieClip { } }//packageSection 303//LeftUpperHand_1 (LeftUpperHand_1) package { import flash.display.*; public dynamic class LeftUpperHand_1 extends MovieClip { } }//packageSection 304//LeftUpperHand_2 (LeftUpperHand_2) package { import flash.display.*; public dynamic class LeftUpperHand_2 extends MovieClip { } }//packageSection 305//LeftUpperHand_3 (LeftUpperHand_3) package { import flash.display.*; public dynamic class LeftUpperHand_3 extends MovieClip { } }//packageSection 306//LeftUpperHand_4 (LeftUpperHand_4) package { import flash.display.*; public dynamic class LeftUpperHand_4 extends MovieClip { } }//packageSection 307//LeftUpperLeg_1 (LeftUpperLeg_1) package { import flash.display.*; public dynamic class LeftUpperLeg_1 extends MovieClip { } }//packageSection 308//LeftUpperLeg_2 (LeftUpperLeg_2) package { import flash.display.*; public dynamic class LeftUpperLeg_2 extends MovieClip { } }//packageSection 309//LeftUpperLeg_3 (LeftUpperLeg_3) package { import flash.display.*; public dynamic class LeftUpperLeg_3 extends MovieClip { } }//packageSection 310//LeftUpperLeg_4 (LeftUpperLeg_4) package { import flash.display.*; public dynamic class LeftUpperLeg_4 extends MovieClip { } }//packageSection 311//Level00 (Level00) package { import flash.display.*; public dynamic class Level00 extends MovieClip { } }//packageSection 312//Level01 (Level01) package { import flash.display.*; public dynamic class Level01 extends MovieClip { } }//packageSection 313//Level02 (Level02) package { import flash.display.*; public dynamic class Level02 extends MovieClip { } }//packageSection 314//Level03 (Level03) package { import flash.display.*; public dynamic class Level03 extends MovieClip { } }//packageSection 315//Level04 (Level04) package { import flash.display.*; public dynamic class Level04 extends MovieClip { } }//packageSection 316//Level05 (Level05) package { import flash.display.*; public dynamic class Level05 extends MovieClip { } }//packageSection 317//Level06 (Level06) package { import flash.display.*; public dynamic class Level06 extends MovieClip { } }//packageSection 318//Level07 (Level07) package { import flash.display.*; public dynamic class Level07 extends MovieClip { } }//packageSection 319//Level08 (Level08) package { import flash.display.*; public dynamic class Level08 extends MovieClip { } }//packageSection 320//Level09 (Level09) package { import flash.display.*; public dynamic class Level09 extends MovieClip { } }//packageSection 321//Level10 (Level10) package { import flash.display.*; public dynamic class Level10 extends MovieClip { } }//packageSection 322//Level11 (Level11) package { import flash.display.*; public dynamic class Level11 extends MovieClip { } }//packageSection 323//Level12 (Level12) package { import flash.display.*; public dynamic class Level12 extends MovieClip { } }//packageSection 324//Level13 (Level13) package { import flash.display.*; public dynamic class Level13 extends MovieClip { } }//packageSection 325//Level14 (Level14) package { import flash.display.*; public dynamic class Level14 extends MovieClip { } }//packageSection 326//Level15 (Level15) package { import flash.display.*; public dynamic class Level15 extends MovieClip { } }//packageSection 327//Level16 (Level16) package { import flash.display.*; public dynamic class Level16 extends MovieClip { } }//packageSection 328//Level17 (Level17) package { import flash.display.*; public dynamic class Level17 extends MovieClip { } }//packageSection 329//Level18 (Level18) package { import flash.display.*; public dynamic class Level18 extends MovieClip { } }//packageSection 330//Level19 (Level19) package { import flash.display.*; public dynamic class Level19 extends MovieClip { } }//packageSection 331//Level20 (Level20) package { import flash.display.*; public dynamic class Level20 extends MovieClip { } }//packageSection 332//Level21 (Level21) package { import flash.display.*; public dynamic class Level21 extends MovieClip { } }//packageSection 333//Level22 (Level22) package { import flash.display.*; public dynamic class Level22 extends MovieClip { } }//packageSection 334//Level23 (Level23) package { import flash.display.*; public dynamic class Level23 extends MovieClip { } }//packageSection 335//Level24 (Level24) package { import flash.display.*; public dynamic class Level24 extends MovieClip { } }//packageSection 336//Level25 (Level25) package { import flash.display.*; public dynamic class Level25 extends MovieClip { } }//packageSection 337//Level26 (Level26) package { import flash.display.*; public dynamic class Level26 extends MovieClip { } }//packageSection 338//Level27 (Level27) package { import flash.display.*; public dynamic class Level27 extends MovieClip { } }//packageSection 339//Level28 (Level28) package { import flash.display.*; public dynamic class Level28 extends MovieClip { } }//packageSection 340//Level29 (Level29) package { import flash.display.*; public dynamic class Level29 extends MovieClip { } }//packageSection 341//Level30 (Level30) package { import flash.display.*; public dynamic class Level30 extends MovieClip { } }//packageSection 342//Level31 (Level31) package { import flash.display.*; public dynamic class Level31 extends MovieClip { } }//packageSection 343//Level32 (Level32) package { import flash.display.*; public dynamic class Level32 extends MovieClip { } }//packageSection 344//Level33 (Level33) package { import flash.display.*; public dynamic class Level33 extends MovieClip { } }//packageSection 345//Level34 (Level34) package { import flash.display.*; public dynamic class Level34 extends MovieClip { } }//packageSection 346//Level35 (Level35) package { import flash.display.*; public dynamic class Level35 extends MovieClip { } }//packageSection 347//Level36 (Level36) package { import flash.display.*; public dynamic class Level36 extends MovieClip { } }//packageSection 348//Level37 (Level37) package { import flash.display.*; public dynamic class Level37 extends MovieClip { } }//packageSection 349//Level38 (Level38) package { import flash.display.*; public dynamic class Level38 extends MovieClip { } }//packageSection 350//Level39 (Level39) package { import flash.display.*; public dynamic class Level39 extends MovieClip { } }//packageSection 351//Level40 (Level40) package { import flash.display.*; public dynamic class Level40 extends MovieClip { } }//packageSection 352//Level41 (Level41) package { import flash.display.*; public dynamic class Level41 extends MovieClip { } }//packageSection 353//Level42 (Level42) package { import flash.display.*; public dynamic class Level42 extends MovieClip { } }//packageSection 354//Level43 (Level43) package { import flash.display.*; public dynamic class Level43 extends MovieClip { } }//packageSection 355//Level44 (Level44) package { import flash.display.*; public dynamic class Level44 extends MovieClip { } }//packageSection 356//Level45 (Level45) package { import flash.display.*; public dynamic class Level45 extends MovieClip { } }//packageSection 357//Level46 (Level46) package { import flash.display.*; public dynamic class Level46 extends MovieClip { } }//packageSection 358//Level47 (Level47) package { import flash.display.*; public dynamic class Level47 extends MovieClip { } }//packageSection 359//Level48 (Level48) package { import flash.display.*; public dynamic class Level48 extends MovieClip { } }//packageSection 360//Level49 (Level49) package { import flash.display.*; public dynamic class Level49 extends MovieClip { } }//packageSection 361//Level50 (Level50) package { import flash.display.*; public dynamic class Level50 extends MovieClip { } }//packageSection 362//Level51 (Level51) package { import flash.display.*; public dynamic class Level51 extends MovieClip { } }//packageSection 363//Level52 (Level52) package { import flash.display.*; public dynamic class Level52 extends MovieClip { } }//packageSection 364//LinksManager (LinksManager) package { import flash.net.*; public class LinksManager { public static const MAIN_MENU_HIGH_SCORE_BUTTON:String = "main_menu_high_score_button"; public static const MINIGAME_WIN_SCREEN:String = "MINIGAME_WIN_SCREEN"; public static const GRIF_SHOOTING_WIN_STATE_BUTTON:String = "grif_shooting_win_state_button"; public static const SELECT_LEVEL_SCREEN:String = "SELECT_LEVEL_SCREEN"; public static const SELECT_SECRET_LEVEL_SCREEN:String = "SELECT_SECRET_LEVEL_SCREEN"; public static const WALKROUTGH_URL:String = "http://www.notdoppler.com/gibbets2-walkthrough.php?ref=gibbets2"; public static const MAIN_MENU_NOTDOPPLER_BUTTON:String = "main_menu_notdoppler_button"; public static const GAME_COMPLETE_NOTDOPPLER_BUTTON:String = "game_complete_notdoppler_button"; public static const SELECT_LEVEL_STATE_WALKTHROUGH:String = "SELECT_LEVEL_STATE_WALKTHROUGH"; public static const MAIN_MENU_MORE_GAMES_BUTTON:String = "main_menu_more_games_button"; public static const GAME_COMPLETE_MORE_GAMES_BUTTON:String = "game_complete_more_games_button"; public static const HIGH_SCORE_URL:String = "http://www.notdoppler.com/gibbets2-highscores.php?ref=gibbets2&game=gibbets2"; public static const GAME_COMPLETE_SUBMIT_BUTTON:String = "game_submit_button"; public static const MINIGAME_SCREEN:String = "MINIGAME_SCREEN"; public static const NO_SCREEN:String = "NO_SCREEN"; public static const PLAYSTATE_SCREEN:String = "PLAYSTATE_SCREEN"; public static const INTRO_SCREEN_BUTTON:String = "intro_screen_button"; public static const PRELOADER_SCREEN_BANNER:String = "PRELOADER_SCREEN_BANNER"; public static const SECRET_LEVEL_STATE_MORE_GAMES:String = "SECRET_LEVEL_STATE_MORE_GAMES"; public static const MAIN_MENU_GIBBETS_I_BUTTON:String = "main_menu_gibbets_I_button"; public static const PLAYSTATE_WALKTHROUGH:String = "PLAYSTATE_WALKTHROUGH"; public static const CREDITS_SCREEN_NOTDOPPLER_BUTTON:String = "credits_screen_notdoppler_button"; public static const LOSE_STATE_MORE_GAMES_BUTTON:String = "lose_state_more_games_button"; public static const SECRET_LEVEL_STATE_WALKTHROUGH:String = "SECRET_LEVEL_STATE_WALKTHROUGH"; public static const WIN_SCREEN:String = "WIN_SCREEN"; public static const CREDITS_SCREEN:String = "CREDITS_SCREEN"; public static const LOSE_SCREEN:String = "LOSE_SCREEN"; public static const SELECT_LEVEL_STATE_MORE_GAMES:String = "SELECT_LEVEL_STATE_MORE_GAMES"; public static const GAME_COMPLETE_SCREEN:String = "GAME_COMPLETE_SCREEN"; public static const ACHIEVEMENTS_SCREEN:String = "ACHIEVEMENTS_SCREEN"; public static const WIN_STATE_MORE_GAMES_BUTTON:String = "win_state_more_games_button"; public static const MAIN_PAGE_URL:String = "http://www.notdoppler.com/?ref=gibbets2"; public static const GIBBETS_II_URL:String = "http://www.notdoppler.com/gibbets2.php"; public static const PLAYSTATE_MORE_GAMES:String = "PLAYSTATE_MORE_GAMES"; public static const GIBBETS_I_URL:String = "http://www.notdoppler.com/gibbets.php?ref=gibbets2"; public static function goURL(_arg1:String, _arg2:String):void{ navigateToURL(new URLRequest(_arg1), "_blank"); } } }//packageSection 365//LongBack (LongBack) package { import flash.display.*; public dynamic class LongBack extends MovieClip { } }//packageSection 366//LongShootArrow (LongShootArrow) package { import flash.display.*; public dynamic class LongShootArrow extends MovieClip { } }//packageSection 367//lose_sound (lose_sound) package { import flash.media.*; public dynamic class lose_sound extends Sound { } }//packageSection 368//LoseStateView (LoseStateView) package { import flash.display.*; public dynamic class LoseStateView extends MovieClip { public var m_window:MovieClip; public var m_buttonMenu:SimpleButton; public var m_buttonRestart:SimpleButton; } }//packageSection 369//main_menu_arrow_sound (main_menu_arrow_sound) package { import flash.media.*; public dynamic class main_menu_arrow_sound extends Sound { } }//packageSection 370//main_menu_music (main_menu_music) package { import flash.media.*; public dynamic class main_menu_music extends Sound { } }//packageSection 371//MainMenuCloud1 (MainMenuCloud1) package { import flash.display.*; public dynamic class MainMenuCloud1 extends MovieClip { } }//packageSection 372//MainMenuCloud2 (MainMenuCloud2) package { import flash.display.*; public dynamic class MainMenuCloud2 extends MovieClip { } }//packageSection 373//MainMenuCloud3 (MainMenuCloud3) package { import flash.display.*; public dynamic class MainMenuCloud3 extends MovieClip { } }//packageSection 374//MainMenuStateView (MainMenuStateView) package { import flash.display.*; public dynamic class MainMenuStateView extends MovieClip { public var m_rightButtonsPanel:MovieClip; public var m_vulture:MovieClip; public var m_II:MovieClip; public var m_notdoppler:SimpleButton; public var m_comixCloud:MainMenuCloud1; public var m_leftButtonsPanel:MovieClip; } }//packageSection 375//Mill (Mill) package { import flash.display.*; public dynamic class Mill extends MovieClip { } }//packageSection 376//MillFan (MillFan) package { import flash.display.*; public dynamic class MillFan extends MovieClip { } }//packageSection 377//moo (moo) package { import flash.media.*; public dynamic class moo extends Sound { } }//packageSection 378//MoreGamesPanel (MoreGamesPanel) package { import flash.events.*; import Main.*; import flash.display.*; import States.*; public class MoreGamesPanel extends MovieClip { public var m_walkthrough:SimpleButton; public var m_moreGames:SimpleButton; private var m_isNeedPause:Boolean; private var m_source:String; public function MoreGamesPanel(_arg1:String, _arg2:Boolean=false){ m_isNeedPause = _arg2; m_source = _arg1; m_moreGames.addEventListener(MouseEvent.CLICK, onMoreGamesClick); m_walkthrough.addEventListener(MouseEvent.CLICK, onWalkthroughClick); addEventListener(Event.REMOVED_FROM_STAGE, onRemoveFromStage); } private function onRemoveFromStage(_arg1:Event):void{ m_moreGames.removeEventListener(MouseEvent.CLICK, onMoreGamesClick); m_walkthrough.removeEventListener(MouseEvent.CLICK, onWalkthroughClick); removeEventListener(Event.REMOVED_FROM_STAGE, onRemoveFromStage); } private function onWalkthroughClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.WALKROUTGH_URL, m_source); if (m_isNeedPause){ StateManager.getInstance().pushState(new GamePausedState()); }; } private function onMoreGamesClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL, m_source); if (m_isNeedPause){ StateManager.getInstance().pushState(new GamePausedState()); }; } } }//packageSection 379//MusicCloud (MusicCloud) package { import flash.display.*; public dynamic class MusicCloud extends MovieClip { } }//packageSection 380//MyBlogCloud (MyBlogCloud) package { import flash.display.*; public dynamic class MyBlogCloud extends MovieClip { } }//packageSection 381//MyMailCloud (MyMailCloud) package { import flash.display.*; public dynamic class MyMailCloud extends MovieClip { } }//packageSection 382//NoArrowsHint (NoArrowsHint) package { import States.PlayState.*; public dynamic class NoArrowsHint extends HintText { } }//packageSection 383//OnlyOneArrowHint (OnlyOneArrowHint) package { import States.PlayState.*; public dynamic class OnlyOneArrowHint extends HintText { } }//packageSection 384//OptionsStateView (OptionsStateView) package { import flash.display.*; public dynamic class OptionsStateView extends MovieClip { public var m_buttonOk:SimpleButton; public var m_disableBlood:CheckBox; public var m_buttonReset:SimpleButton; public var m_hideTips:CheckBox; public var m_musicVolume:ScrollBar; public var m_invertControl:CheckBox; public var m_soundVolume:ScrollBar; } }//packageSection 385//OutShader (OutShader) package { import flash.display.*; public class OutShader extends MovieClip { private var m_maxShade:Number; private var m_maxShadeTime:Number; private var m_blackSquare:MovieClip; private var m_liveTime:Number;// = 0 public function OutShader(_arg1:Number, _arg2:Number){ m_blackSquare = new black_square(); super(); m_maxShadeTime = _arg1; m_maxShade = _arg2; m_blackSquare.alpha = 1; addChild(m_blackSquare); } public function isMaxTime():Boolean{ return ((m_liveTime >= m_maxShadeTime)); } public function update(_arg1:Number):void{ if ((m_liveTime = (m_liveTime + _arg1)) > m_maxShadeTime){ m_liveTime = m_maxShadeTime; }; m_blackSquare.alpha = ((1 - (m_liveTime / m_maxShadeTime)) * m_maxShade); } public function restart():void{ m_liveTime = 0; m_blackSquare.alpha = m_maxShade; } } }//packageSection 386//OvercastSky (OvercastSky) package { import flash.display.*; public dynamic class OvercastSky extends MovieClip { } }//packageSection 387//perfect_star (perfect_star) package { import flash.media.*; public dynamic class perfect_star extends Sound { } }//packageSection 388//PlayStateView (PlayStateView) package { import flash.display.*; public dynamic class PlayStateView extends MovieClip { public var m_scoreClip:MovieClip; public var m_levelClip:MovieClip; public var m_buttonMenu:SimpleButton; public var m_arrowsLeftClip:MovieClip; public var m_buttonReplay:SimpleButton; } }//packageSection 389//points (points) package { import flash.media.*; public dynamic class points extends Sound { } }//packageSection 390//PointsGhost1000 (PointsGhost1000) package { import States.PlayState.*; public dynamic class PointsGhost1000 extends PointsGhost { } }//packageSection 391//PointsGhost300 (PointsGhost300) package { import States.PlayState.*; public dynamic class PointsGhost300 extends PointsGhost { } }//packageSection 392//PointsGhost500 (PointsGhost500) package { import States.PlayState.*; public dynamic class PointsGhost500 extends PointsGhost { } }//packageSection 393//ProgrammingCloud (ProgrammingCloud) package { import flash.display.*; public dynamic class ProgrammingCloud extends MovieClip { } }//packageSection 394//RightEdgeMarker (RightEdgeMarker) package { import flash.display.*; public dynamic class RightEdgeMarker extends MovieClip { } }//packageSection 395//RightLowerHand_1 (RightLowerHand_1) package { import flash.display.*; public dynamic class RightLowerHand_1 extends MovieClip { } }//packageSection 396//RightLowerHand_2 (RightLowerHand_2) package { import flash.display.*; public dynamic class RightLowerHand_2 extends MovieClip { } }//packageSection 397//RightLowerHand_3 (RightLowerHand_3) package { import flash.display.*; public dynamic class RightLowerHand_3 extends MovieClip { } }//packageSection 398//RightLowerHand_4 (RightLowerHand_4) package { import flash.display.*; public dynamic class RightLowerHand_4 extends MovieClip { } }//packageSection 399//RightLowerLeg_1 (RightLowerLeg_1) package { import flash.display.*; public dynamic class RightLowerLeg_1 extends MovieClip { } }//packageSection 400//RightLowerLeg_2 (RightLowerLeg_2) package { import flash.display.*; public dynamic class RightLowerLeg_2 extends MovieClip { } }//packageSection 401//RightLowerLeg_3 (RightLowerLeg_3) package { import flash.display.*; public dynamic class RightLowerLeg_3 extends MovieClip { } }//packageSection 402//RightLowerLeg_4 (RightLowerLeg_4) package { import flash.display.*; public dynamic class RightLowerLeg_4 extends MovieClip { } }//packageSection 403//RightUpperHand_1 (RightUpperHand_1) package { import flash.display.*; public dynamic class RightUpperHand_1 extends MovieClip { } }//packageSection 404//RightUpperHand_2 (RightUpperHand_2) package { import flash.display.*; public dynamic class RightUpperHand_2 extends MovieClip { } }//packageSection 405//RightUpperHand_3 (RightUpperHand_3) package { import flash.display.*; public dynamic class RightUpperHand_3 extends MovieClip { } }//packageSection 406//RightUpperHand_4 (RightUpperHand_4) package { import flash.display.*; public dynamic class RightUpperHand_4 extends MovieClip { } }//packageSection 407//RightUpperLeg_1 (RightUpperLeg_1) package { import flash.display.*; public dynamic class RightUpperLeg_1 extends MovieClip { } }//packageSection 408//RightUpperLeg_2 (RightUpperLeg_2) package { import flash.display.*; public dynamic class RightUpperLeg_2 extends MovieClip { } }//packageSection 409//RightUpperLeg_3 (RightUpperLeg_3) package { import flash.display.*; public dynamic class RightUpperLeg_3 extends MovieClip { } }//packageSection 410//RightUpperLeg_4 (RightUpperLeg_4) package { import flash.display.*; public dynamic class RightUpperLeg_4 extends MovieClip { } }//packageSection 411//RobinHoodMadeThatMuchBetter (RobinHoodMadeThatMuchBetter) package { import flash.display.*; public dynamic class RobinHoodMadeThatMuchBetter extends MovieClip { } }//packageSection 412//Rope (Rope) package { import flash.display.*; public dynamic class Rope extends MovieClip { } }//packageSection 413//RopeRings (RopeRings) package { import States.PlayState.*; public dynamic class RopeRings extends Frontground { } }//packageSection 414//Screw (Screw) package { import States.PlayState.*; public dynamic class Screw extends Frontground { } }//packageSection 415//ScrollBar (ScrollBar) package { import flash.events.*; import flash.display.*; public class ScrollBar extends MovieClip { private var m_isMouseDown:Boolean;// = false private var m_maxWidth:Number; public var m_slider:MovieClip; private var m_progress:Number; public static const EVENT_CHANGE:String = "eventChange"; public function ScrollBar(){ buttonMode = true; mouseChildren = false; addEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown); addEventListener(MouseEvent.MOUSE_MOVE, handleMouseMove); addEventListener(Event.ADDED_TO_STAGE, handleAddToStage); addEventListener(Event.REMOVED_FROM_STAGE, handleRemoveFromStage); m_maxWidth = width; } public function getProgress():Number{ return (m_progress); } public function setProgress(_arg1:Number):void{ if (_arg1 < 0){ _arg1 = 0; }; if (_arg1 > 1){ _arg1 = 1; }; m_progress = _arg1; m_slider.x = (m_maxWidth * m_progress); } private function handleRemoveFromStage(_arg1:Event):void{ removeEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown); removeEventListener(MouseEvent.MOUSE_MOVE, handleMouseMove); removeEventListener(Event.ADDED_TO_STAGE, handleAddToStage); removeEventListener(Event.REMOVED_FROM_STAGE, handleRemoveFromStage); stage.removeEventListener(MouseEvent.MOUSE_UP, handleMouseUp); } private function handleAddToStage(_arg1:Event):void{ stage.addEventListener(MouseEvent.MOUSE_UP, handleMouseUp); } private function handleMouseDown(_arg1:MouseEvent):void{ m_isMouseDown = true; handleMouseMove(_arg1); } private function handleMouseMove(_arg1:MouseEvent):void{ if (m_isMouseDown){ setProgress((_arg1.localX / m_maxWidth)); dispatchEvent(new Event(EVENT_CHANGE)); }; } private function handleMouseUp(_arg1:MouseEvent):void{ m_isMouseDown = false; } } }//packageSection 416//SelectLevelBonusButton (SelectLevelBonusButton) package { import States.*; public dynamic class SelectLevelBonusButton extends SelectLevelButton { } }//packageSection 417//SelectLevelButton (SelectLevelButton) package { import States.*; public dynamic class SelectLevelButton extends SelectLevelButton { } }//packageSection 418//SelectLevelStateView (SelectLevelStateView) package { import flash.display.*; public dynamic class SelectLevelStateView extends MovieClip { public var m_totalScore:MovieClip; public var m_buttonMenu:SimpleButton; public var m_arrowRight:GuiArrow; public var m_buttonAchievements:SimpleButton; public var m_arrowUp:GuiArrow; public var m_buttonsPanel:MovieClip; public var m_buttonSubmit:SimpleButton; } }//packageSection 419//SelectSecretLevelStateView (SelectSecretLevelStateView) package { import flash.display.*; public dynamic class SelectSecretLevelStateView extends MovieClip { public var m_totalScore:MovieClip; public var m_buttonMenu:SimpleButton; public var m_buttonAchievements:SimpleButton; public var m_level50:SelectLevelButton; public var m_level51:SelectLevelButton; public var m_level52:SelectLevelButton; public var m_adBox:MovieClip; public var m_level48:SelectLevelButton; public var m_level49:SelectLevelButton; public var m_closeButton:CloseCross; public var m_arrowDown:GuiArrow; public var m_buttonSubmit:SimpleButton; } }//packageSection 420//Shader (Shader) package { import flash.display.*; public class Shader extends MovieClip { private var m_clip:black_square; private var m_endShade:Number; private var m_liveTime:Number;// = 0 private var m_startTime:Number; private var m_endTime:Number; private var m_startShade:Number; public function Shader(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){ m_clip = new black_square(); super(); addChild(m_clip); m_startTime = _arg1; m_endTime = _arg2; m_startShade = _arg3; m_endShade = _arg4; m_clip.alpha = _arg3; } public function update(_arg1:Number):void{ m_liveTime = (m_liveTime + _arg1); var _local2:Number = (m_startShade + (((m_liveTime - m_startTime) / (m_endTime - m_startTime)) * (m_endShade - m_startShade))); if (_local2 > Math.max(m_startShade, m_endShade)){ _local2 = Math.max(m_startShade, m_endShade); }; if (_local2 < Math.min(m_startShade, m_endShade)){ _local2 = Math.min(m_startShade, m_endShade); }; m_clip.alpha = _local2; } public function getShade():Number{ return (m_clip.alpha); } } }//packageSection 421//ShotTheRopeNotMeCloud (ShotTheRopeNotMeCloud) package { import flash.display.*; public dynamic class ShotTheRopeNotMeCloud extends MovieClip { } }//packageSection 422//Sight (Sight) package { import flash.display.*; public dynamic class Sight extends MovieClip { } }//packageSection 423//Soul1 (Soul1) package { import States.PlayState.*; public dynamic class Soul1 extends Soul { } }//packageSection 424//Soul2 (Soul2) package { import States.PlayState.*; public dynamic class Soul2 extends Soul { } }//packageSection 425//Soul3 (Soul3) package { import States.PlayState.*; public dynamic class Soul3 extends Soul { } }//packageSection 426//Soul4 (Soul4) package { import States.PlayState.*; public dynamic class Soul4 extends Soul { } }//packageSection 427//SoundButton (SoundButton) package { import flash.events.*; import flash.display.*; public class SoundButton extends MovieClip { private var m_isSoundOn:Boolean;// = false private var m_sound:DisplayObject;// = null public function SoundButton(){ onSoundClick(null); } private function onSoundClick(_arg1:MouseEvent):void{ m_isSoundOn = !(m_isSoundOn); if (m_sound){ m_sound.removeEventListener(MouseEvent.CLICK, onSoundClick); removeChild(m_sound); }; if (m_isSoundOn){ m_sound = new SoundOn(); } else { m_sound = new SoundOff(); }; m_sound.x = (640 - 40); m_sound.y = 20; addChild(m_sound); m_sound.addEventListener(MouseEvent.CLICK, onSoundClick); SoundManager.setSoundEnable(m_isSoundOn); } } }//packageSection 428//SoundConst (SoundConst) package { public class SoundConst { public static const CRY_5:String = "cry_5"; public static const CRY_6:String = "cry_6"; public static const STICK_IN_MAIN_MENU:String = "main_menu_arrow_sound"; public static const CRY_3:String = "cry_3"; public static const CRY_7:String = "cry_7"; public static const LOSE:String = "lose_sound"; public static const ARROW_GHOST:String = "arrow_ghost"; public static const STICK_IN_BODY_0:String = "stick_in_body_0"; public static const STICK_IN_BODY_1:String = "stick_in_body_1"; public static const STICK_IN_BODY_2:String = "stick_in_body_2"; public static const VULTURE_CRY_4:String = "vulture_cry_4"; public static const VULTURE_CRY_1:String = "vulture_cry_1"; public static const VULTURE_CRY_2:String = "vulture_cry_2"; public static const VULTURE_CRY_3:String = "vulture_cry_3"; public static const AMBIENT_1:String = "ambient_1"; public static const AMBIENT_2:String = "ambient_2"; public static const BOW_SHOOT:String = "bow_shoot"; public static const VULTURE_CACLE_2:String = "vulture_cacle_2"; public static const STICK_IN_WOOD:String = "stick_in_wood"; public static const ADD_ARROWS_0:String = "add_arrows_sound_0"; public static const ADD_ARROWS_1:String = "add_arrows_sound_1"; public static const SUN_VOICE:String = "sun_voice"; public static const VULTURE_CACLE_1:String = "vulture_cacle_1"; public static const WIN:String = "win_sound"; public static const EXPLOISON:String = "exploison"; public static const DEATH_CRY:String = "death_cry"; public static const TAPE_ROPE_0:String = "tape_rope_0"; public static const TAPE_ROPE_1:String = "tape_rope_1"; public static const TAPE_ROPE_2:String = "tape_rope_2"; public static const POINTS:String = "points"; public static const CLICK:String = "click"; public static const MAIN_MENU_MUSIC:String = "main_menu_music"; public static const MOO:String = "moo"; public static const TELEPORT:String = "teleport"; public static const PERFECT_STAR:String = "perfect_star"; public static const CRY_0:String = "cry_0"; public static const CRY_1:String = "cry_1"; public static const CRY_2:String = "cry_2"; public static const CRY_4:String = "cry_4"; } }//packageSection 429//SoundManager (SoundManager) package { import flash.media.*; import flash.system.*; public class SoundManager { private static const vtNormal:int = 2; private static const vtFadeOut:int = 0; private static const vtFadeIn:int = 1; private static var m_volumeType:int = 2; private static var m_musicVolume:Number = 1; private static var m_isSoundEnable:Boolean = true; private static var m_currentLoop:SoundChannel; private static var m_musicVolumeBackup:Number; private static var m_liveTime:Number; private static var m_soundVolume:Number = 1; private static var m_currentLoopName:String; private static var m_soundAfterFade:String; public static function playFadeOut(_arg1:String):void{ m_musicVolumeBackup = m_musicVolume; m_volumeType = vtFadeOut; m_soundAfterFade = _arg1; } public static function setSoundVolume(_arg1:Number):void{ m_soundVolume = _arg1; } public static function update(_arg1:Number):void{ m_liveTime = (m_liveTime + _arg1); if (m_isSoundEnable){ switch (m_volumeType){ case vtFadeOut: setMusicVolume((m_musicVolume - (0.8 * _arg1))); if (m_musicVolume <= 0.15){ play(m_soundAfterFade); m_volumeType = vtNormal; m_liveTime = 0; }; break; case vtNormal: if ((((m_liveTime > 2.3)) && (m_soundAfterFade))){ m_soundAfterFade = null; m_volumeType = vtFadeIn; }; break; case vtFadeIn: setMusicVolume((m_musicVolume + (1.5 * _arg1))); if (m_musicVolume >= m_musicVolumeBackup){ setMusicVolume(m_musicVolumeBackup); m_volumeType = vtNormal; }; break; }; }; } public static function getSoundVolume():Number{ return (m_soundVolume); } public static function setMusicVolume(_arg1:Number):void{ var _local2:SoundTransform; if (_arg1 < 0.01){ _arg1 = 0; }; if (_arg1 > 1){ _arg1 = 1; }; m_musicVolume = _arg1; if (m_currentLoop){ _local2 = m_currentLoop.soundTransform; _local2.volume = _arg1; m_currentLoop.soundTransform = _local2; }; } public static function getMusicVolume():Number{ return (m_musicVolume); } public static function forcedPlay(_arg1:String):void{ var sound_class:Class; var sound:Sound; var channel:SoundChannel; var transform:SoundTransform; var name = _arg1; try { sound_class = (ApplicationDomain.currentDomain.getDefinition(name) as Class); sound = new (sound_class); channel = sound.play(); transform = channel.soundTransform; transform.volume = m_soundVolume; channel.soundTransform = transform; } catch(e:Error) { if (Constant.m_debugMode){ trace(e); }; }; } public static function setSoundEnable(_arg1:Boolean):void{ var _local2:String; m_volumeType = vtNormal; m_isSoundEnable = _arg1; if (m_isSoundEnable){ _local2 = m_currentLoopName; m_currentLoopName = ""; playLoop(_local2); } else { if (m_currentLoop){ m_currentLoop.stop(); }; }; } public static function play(_arg1:String):void{ var sound_class:Class; var sound:Sound; var channel:SoundChannel; var transform:SoundTransform; var name = _arg1; if (m_isSoundEnable){ try { sound_class = (ApplicationDomain.currentDomain.getDefinition(name) as Class); sound = new (sound_class); channel = sound.play(); transform = channel.soundTransform; transform.volume = m_soundVolume; channel.soundTransform = transform; } catch(e:Error) { if (Constant.m_debugMode){ trace(e); }; }; }; } public static function playLoop(_arg1:String):void{ var sound_class:Class; var sound:Sound; var transform:SoundTransform; var name = _arg1; try { if (m_isSoundEnable){ if (m_currentLoopName != name){ if (m_currentLoop != null){ m_currentLoop.stop(); }; sound_class = (ApplicationDomain.currentDomain.getDefinition(name) as Class); sound = new (sound_class); m_currentLoop = sound.play(0, int.MAX_VALUE); transform = m_currentLoop.soundTransform; transform.volume = m_musicVolume; m_currentLoop.soundTransform = transform; }; }; m_currentLoopName = name; } catch(e:Error) { if (Constant.m_debugMode){ trace("SoundManager::playLoop", e); }; }; } } }//packageSection 430//SoundOff (SoundOff) package { import flash.display.*; public dynamic class SoundOff extends SimpleButton { } }//packageSection 431//SoundOn (SoundOn) package { import flash.display.*; public dynamic class SoundOn extends SimpleButton { } }//packageSection 432//SponsorIntro (SponsorIntro) package { import flash.display.*; public dynamic class SponsorIntro extends MovieClip { } }//packageSection 433//SponsorMusic (SponsorMusic) package { import flash.media.*; public dynamic class SponsorMusic extends Sound { } }//packageSection 434//StarrySky (StarrySky) package { import flash.display.*; public dynamic class StarrySky extends MovieClip { } }//packageSection 435//stick_in_body_0 (stick_in_body_0) package { import flash.media.*; public dynamic class stick_in_body_0 extends Sound { } }//packageSection 436//stick_in_body_1 (stick_in_body_1) package { import flash.media.*; public dynamic class stick_in_body_1 extends Sound { } }//packageSection 437//stick_in_body_2 (stick_in_body_2) package { import flash.media.*; public dynamic class stick_in_body_2 extends Sound { } }//packageSection 438//stick_in_wood (stick_in_wood) package { import flash.media.*; public dynamic class stick_in_wood extends Sound { } }//packageSection 439//Stone0 (Stone0) package { import States.PlayState.*; public dynamic class Stone0 extends StaticBoxIsStone { } }//packageSection 440//Stone1 (Stone1) package { import States.PlayState.*; public dynamic class Stone1 extends StaticBoxIsStone { } }//packageSection 441//Stone2 (Stone2) package { import States.PlayState.*; public dynamic class Stone2 extends StaticBoxIsStone { } }//packageSection 442//Stone3 (Stone3) package { import States.PlayState.*; public dynamic class Stone3 extends StaticBoxIsStone { } }//packageSection 443//StopItCloud (StopItCloud) package { import flash.display.*; public dynamic class StopItCloud extends MovieClip { } }//packageSection 444//sun_voice (sun_voice) package { import flash.media.*; public dynamic class sun_voice extends Sound { } }//packageSection 445//TakeAdditionArrows (TakeAdditionArrows) package { import flash.display.*; public dynamic class TakeAdditionArrows extends MovieClip { } }//packageSection 446//tape_rope_0 (tape_rope_0) package { import flash.media.*; public dynamic class tape_rope_0 extends Sound { } }//packageSection 447//tape_rope_1 (tape_rope_1) package { import flash.media.*; public dynamic class tape_rope_1 extends Sound { } }//packageSection 448//tape_rope_2 (tape_rope_2) package { import flash.media.*; public dynamic class tape_rope_2 extends Sound { } }//packageSection 449//teleport (teleport) package { import flash.media.*; public dynamic class teleport extends Sound { } }//packageSection 450//TeleportBack (TeleportBack) package { import flash.display.*; public dynamic class TeleportBack extends MovieClip { } }//packageSection 451//TeleportHint (TeleportHint) package { import States.PlayState.*; public dynamic class TeleportHint extends HintText { } }//packageSection 452//ThatBecauseIAmBlack (ThatBecauseIAmBlack) package { import flash.display.*; public dynamic class ThatBecauseIAmBlack extends MovieClip { } }//packageSection 453//TheAmountOfArrows (TheAmountOfArrows) package { import States.PlayState.*; public dynamic class TheAmountOfArrows extends HintText { } }//packageSection 454//ThisIsBonusHint (ThisIsBonusHint) package { import States.PlayState.*; public dynamic class ThisIsBonusHint extends HintText { } }//packageSection 455//ThisIsHedhehogHint (ThisIsHedhehogHint) package { import States.PlayState.*; public dynamic class ThisIsHedhehogHint extends HintText { } }//packageSection 456//ThisIsSingleHedhehogHint (ThisIsSingleHedhehogHint) package { import States.PlayState.*; public dynamic class ThisIsSingleHedhehogHint extends HintText { } }//packageSection 457//ThisIsTNTHint (ThisIsTNTHint) package { import States.PlayState.*; public dynamic class ThisIsTNTHint extends HintText { } }//packageSection 458//TimeIsOutEffect (TimeIsOutEffect) package { import States.PlayState.*; public dynamic class TimeIsOutEffect extends OutOfArrowsEffect { } }//packageSection 459//ToPullBowHint (ToPullBowHint) package { import States.PlayState.*; public dynamic class ToPullBowHint extends HintText { } }//packageSection 460//Torso1_1 (Torso1_1) package { import flash.display.*; public dynamic class Torso1_1 extends MovieClip { } }//packageSection 461//Torso1_2 (Torso1_2) package { import flash.display.*; public dynamic class Torso1_2 extends MovieClip { } }//packageSection 462//Torso1_3 (Torso1_3) package { import flash.display.*; public dynamic class Torso1_3 extends MovieClip { } }//packageSection 463//Torso1_4 (Torso1_4) package { import flash.display.*; public dynamic class Torso1_4 extends MovieClip { } }//packageSection 464//Torso2_1 (Torso2_1) package { import flash.display.*; public dynamic class Torso2_1 extends MovieClip { } }//packageSection 465//Torso2_2 (Torso2_2) package { import flash.display.*; public dynamic class Torso2_2 extends MovieClip { } }//packageSection 466//Torso2_3 (Torso2_3) package { import flash.display.*; public dynamic class Torso2_3 extends MovieClip { } }//packageSection 467//Torso2_4 (Torso2_4) package { import flash.display.*; public dynamic class Torso2_4 extends MovieClip { } }//packageSection 468//Torso3_1 (Torso3_1) package { import flash.display.*; public dynamic class Torso3_1 extends MovieClip { } }//packageSection 469//Torso3_2 (Torso3_2) package { import flash.display.*; public dynamic class Torso3_2 extends MovieClip { } }//packageSection 470//Torso3_3 (Torso3_3) package { import flash.display.*; public dynamic class Torso3_3 extends MovieClip { } }//packageSection 471//Torso3_4 (Torso3_4) package { import flash.display.*; public dynamic class Torso3_4 extends MovieClip { } }//packageSection 472//tree_1 (tree_1) package { import flash.display.*; public dynamic class tree_1 extends MovieClip { } }//packageSection 473//tree_10 (tree_10) package { import flash.display.*; public dynamic class tree_10 extends MovieClip { } }//packageSection 474//tree_2 (tree_2) package { import flash.display.*; public dynamic class tree_2 extends MovieClip { } }//packageSection 475//tree_3 (tree_3) package { import flash.display.*; public dynamic class tree_3 extends MovieClip { } }//packageSection 476//tree_4 (tree_4) package { import flash.display.*; public dynamic class tree_4 extends MovieClip { } }//packageSection 477//tree_5 (tree_5) package { import flash.display.*; public dynamic class tree_5 extends MovieClip { } }//packageSection 478//tree_6 (tree_6) package { import flash.display.*; public dynamic class tree_6 extends MovieClip { } }//packageSection 479//tree_7 (tree_7) package { import flash.display.*; public dynamic class tree_7 extends MovieClip { } }//packageSection 480//tree_8 (tree_8) package { import flash.display.*; public dynamic class tree_8 extends MovieClip { } }//packageSection 481//tree_9 (tree_9) package { import flash.display.*; public dynamic class tree_9 extends MovieClip { } }//packageSection 482//TripleSave (TripleSave) package { import flash.display.*; public dynamic class TripleSave extends MovieClip { } }//packageSection 483//TryToAimHint (TryToAimHint) package { import States.PlayState.*; public dynamic class TryToAimHint extends HintText { } }//packageSection 484//TryToShotMyLegsToShakeMeCloud (TryToShotMyLegsToShakeMeCloud) package { import flash.display.*; public dynamic class TryToShotMyLegsToShakeMeCloud extends MovieClip { } }//packageSection 485//UrlLockedStateView (UrlLockedStateView) package { import flash.display.*; import flash.text.*; public dynamic class UrlLockedStateView extends MovieClip { public var m_notDoppler:TextField; } }//packageSection 486//UseYouForceLuke (UseYouForceLuke) package { import flash.display.*; public dynamic class UseYouForceLuke extends MovieClip { } }//packageSection 487//vulture_cry_1 (vulture_cry_1) package { import flash.media.*; public dynamic class vulture_cry_1 extends Sound { } }//packageSection 488//vulture_cry_2 (vulture_cry_2) package { import flash.media.*; public dynamic class vulture_cry_2 extends Sound { } }//packageSection 489//vulture_cry_3 (vulture_cry_3) package { import flash.media.*; public dynamic class vulture_cry_3 extends Sound { } }//packageSection 490//vulture_cry_4 (vulture_cry_4) package { import flash.media.*; public dynamic class vulture_cry_4 extends Sound { } }//packageSection 491//VultureBend (VultureBend) package { import flash.display.*; public dynamic class VultureBend extends MovieClip { public var clip:MovieClip; } }//packageSection 492//VultureDie (VultureDie) package { import flash.display.*; public dynamic class VultureDie extends MovieClip { public var clip:MovieClip; } }//packageSection 493//VultureFeathers (VultureFeathers) package { import States.PlayState.*; public dynamic class VultureFeathers extends AutoreleaseClip { } }//packageSection 494//VultureHere (VultureHere) package { import flash.display.*; public dynamic class VultureHere extends MovieClip { public var clip:MovieClip; } }//packageSection 495//VultureJump (VultureJump) package { import flash.display.*; public dynamic class VultureJump extends MovieClip { public var clip:MovieClip; } }//packageSection 496//VultureShootingRules (VultureShootingRules) package { import States.PlayState.*; public dynamic class VultureShootingRules extends AutoreleaseClip { } }//packageSection 497//win_sound (win_sound) package { import flash.media.*; public dynamic class win_sound extends Sound { } }//packageSection 498//WinStateView (WinStateView) package { import flash.display.*; import flash.text.*; public dynamic class WinStateView extends MovieClip { public var m_buttonMenu:SimpleButton; public var m_star:MovieClip; public var m_currentScore:MovieClip; public var m_buttonNewAchievement:SimpleButton; public var m_levelNum:TextField; public var m_buttonNext:SimpleButton; public var m_arrowsUsed:MovieClip; public var m_bestScore:MovieClip; } }//packageSection 499//YesNoStateView (YesNoStateView) package { import flash.display.*; public dynamic class YesNoStateView extends MovieClip { public var m_buttonYes:SimpleButton; public var m_buttonNo:SimpleButton; } }//packageSection 500//YouWillGetAStar (YouWillGetAStar) package { import States.PlayState.*; public dynamic class YouWillGetAStar extends HintText { } }//packageSection 501//блик_1 (блик_1) package { public dynamic class блик_1 extends AsyncClip { } }//packageSection 502//блик_10 (блик_10) package { public dynamic class блик_10 extends AsyncClip { } }//packageSection 503//блик_11 (блик_11) package { public dynamic class блик_11 extends AsyncClip { } }//packageSection 504//блик_12 (блик_12) package { public dynamic class блик_12 extends AsyncClip { } }//packageSection 505//блик_13 (блик_13) package { public dynamic class блик_13 extends AsyncClip { } }//packageSection 506//блик_14 (блик_14) package { public dynamic class блик_14 extends AsyncClip { } }//packageSection 507//блик_15 (блик_15) package { public dynamic class блик_15 extends AsyncClip { } }//packageSection 508//блик_2 (блик_2) package { public dynamic class блик_2 extends AsyncClip { } }//packageSection 509//блик_3 (блик_3) package { public dynamic class блик_3 extends AsyncClip { } }//packageSection 510//блик_4 (блик_4) package { public dynamic class блик_4 extends AsyncClip { } }//packageSection 511//блик_5 (блик_5) package { public dynamic class блик_5 extends AsyncClip { } }//packageSection 512//блик_6 (блик_6) package { public dynamic class блик_6 extends AsyncClip { } }//packageSection 513//блик_7 (блик_7) package { public dynamic class блик_7 extends AsyncClip { } }//packageSection 514//блик_8 (блик_8) package { public dynamic class блик_8 extends AsyncClip { } }//packageSection 515//блик_9 (блик_9) package { public dynamic class блик_9 extends AsyncClip { } }//packageSection 516//звёздочка (звёздочка) package { public dynamic class звёздочка extends AsyncClip { } }//package
Library Items
| Symbol 1 Graphic | Used by:2 | |
| Symbol 2 MovieClip {Background} | Uses:1 | Used by:141 463 697 842 1145 1241 1263 1298 1380 1398 1421 1458 1471 1496 1498 1499 1500 1501 1503 1504 1505 1506 1507 1508 1510 1511 1512 1513 1514 1517 1520 1522 1524 1529 1532 1538 1546 1547 1548 1549 1564 1565 |
| Symbol 3 Graphic | Used by:4 | |
| Symbol 4 MovieClip | Uses:3 | Used by:5 |
| Symbol 5 MovieClip {Cloud3} | Uses:4 | Used by:141 1145 1263 1298 1398 1421 1432 1435 1436 1439 1458 1462 1509 1511 1512 1513 1520 1522 1532 1546 1547 1548 1549 1564 1565 |
| Symbol 6 Graphic | Used by:7 | |
| Symbol 7 MovieClip | Uses:6 | Used by:8 |
| Symbol 8 MovieClip {Cloud5} | Uses:7 | Used by:141 842 1145 1263 1298 1324 1398 1421 1442 1444 1458 1471 1496 1499 1500 1506 1508 1509 1510 1512 1513 1514 1517 1520 1522 1529 1532 1533 1538 1546 1547 1548 1549 1552 1565 |
| Symbol 9 Graphic | Used by:14 | |
| Symbol 10 Graphic | Used by:11 | |
| Symbol 11 MovieClip | Uses:10 | Used by:14 |
| Symbol 12 Graphic | Used by:14 | |
| Symbol 13 Graphic | Used by:14 | |
| Symbol 14 MovieClip | Uses:9 11 12 13 | Used by:18 |
| Symbol 15 Font | Used by:16 205 398 508 584 587 588 589 590 604 755 761 764 772 775 812 815 818 862 863 877 881 883 885 887 889 891 901 917 921 934 974 1553 | |
| Symbol 16 EditableText | Uses:15 939 | Used by:17 |
| Symbol 17 MovieClip | Uses:16 | Used by:18 |
| Symbol 18 MovieClip | Uses:14 17 | Used by:141 |
| Symbol 19 Graphic | Used by:20 25 196 200 204 393 397 579 583 606 609 611 683 686 690 779 783 854 857 861 876 952 | |
| Symbol 20 MovieClip | Uses:19 | Used by:24 25 682 683 |
| Symbol 21 Graphic | Used by:22 23 25 | |
| Symbol 22 MovieClip | Uses:21 | Used by:25 |
| Symbol 23 MovieClip | Uses:21 | Used by:24 25 |
| Symbol 24 MovieClip | Uses:20 23 | Used by:25 |
| Symbol 25 Button | Uses:20 22 24 23 19 21 | Used by:141 671 |
| Symbol 26 Graphic | Used by:27 | |
| Symbol 27 MovieClip | Uses:26 | Used by:28 |
| Symbol 28 MovieClip {Cloud6} | Uses:27 | Used by:141 523 697 1145 1298 1324 1380 1398 1421 1464 1496 1498 1499 1500 1504 1508 1510 1512 1514 1517 1520 1521 1522 1524 1529 1532 1533 1538 1546 1547 1548 1549 1564 |
| Symbol 29 Graphic | Used by:30 | |
| Symbol 30 MovieClip | Uses:29 | Used by:31 |
| Symbol 31 MovieClip {Cloud1} | Uses:30 | Used by:141 842 1145 1241 1263 1298 1324 1380 1398 1421 1442 1444 1458 1462 1499 1501 1504 1505 1506 1507 1508 1509 1511 1513 1514 1517 1520 1521 1524 1532 1546 1547 1548 1549 1552 |
| Symbol 32 Graphic | Used by:33 | |
| Symbol 33 MovieClip | Uses:32 | Used by:34 |
| Symbol 34 MovieClip {Cloud4} | Uses:33 | Used by:141 1145 1324 1380 1462 1464 1471 1498 1500 1505 1507 1510 1511 1514 1520 1521 1529 1533 1538 1546 1547 1548 1549 1552 |
| Symbol 35 Graphic | Used by:36 | |
| Symbol 36 MovieClip | Uses:35 | Used by:37 |
| Symbol 37 MovieClip {Cloud7} | Uses:36 | Used by:141 523 842 1145 1241 1432 1435 1436 1439 1442 1444 1464 1471 1496 1498 1500 1501 1505 1507 1508 1510 1512 1521 1522 1532 1533 1538 1546 1547 1548 1549 1552 1565 |
| Symbol 38 Graphic | Used by:39 | |
| Symbol 39 MovieClip | Uses:38 | Used by:40 |
| Symbol 40 MovieClip {Cloud8} | Uses:39 | Used by:141 697 1145 1241 1380 1398 1421 1432 1435 1436 1439 1442 1444 1464 1471 1496 1500 1501 1504 1506 1507 1509 1512 1517 1529 1546 1547 1548 1549 1564 |
| Symbol 41 Graphic | Used by:42 | |
| Symbol 42 MovieClip | Uses:41 | Used by:43 |
| Symbol 43 MovieClip {Cloud0} | Uses:42 | Used by:141 697 1145 1241 1263 1324 1432 1435 1436 1439 1458 1462 1464 1499 1501 1504 1506 1509 1511 1513 1521 1524 1546 1547 1548 1549 1564 1565 |
| Symbol 44 Graphic | Used by:48 | |
| Symbol 45 Graphic | Used by:48 | |
| Symbol 46 Graphic | Used by:48 | |
| Symbol 47 Graphic | Used by:48 | |
| Symbol 48 MovieClip {Torso3_3} | Uses:44 45 46 47 | Used by:141 |
| Symbol 49 Graphic | Used by:53 | |
| Symbol 50 Graphic | Used by:53 | |
| Symbol 51 Graphic | Used by:53 | |
| Symbol 52 Graphic | Used by:53 | |
| Symbol 53 MovieClip {Torso2_3} | Uses:49 50 51 52 | Used by:141 |
| Symbol 54 Graphic | Used by:56 | |
| Symbol 55 Graphic | Used by:56 | |
| Symbol 56 MovieClip {Torso1_3} | Uses:54 55 | Used by:141 |
| Symbol 57 Graphic | Used by:61 | |
| Symbol 58 Graphic | Used by:61 | |
| Symbol 59 Graphic | Used by:61 | |
| Symbol 60 Graphic | Used by:61 | |
| Symbol 61 MovieClip {RightUpperLeg_3} | Uses:57 58 59 60 | Used by:141 |
| Symbol 62 Graphic | Used by:66 | |
| Symbol 63 Graphic | Used by:66 | |
| Symbol 64 Graphic | Used by:66 | |
| Symbol 65 Graphic | Used by:66 | |
| Symbol 66 MovieClip {RightUpperHand_3} | Uses:62 63 64 65 | Used by:141 |
| Symbol 67 Graphic | Used by:71 | |
| Symbol 68 Graphic | Used by:71 | |
| Symbol 69 Graphic | Used by:71 | |
| Symbol 70 Graphic | Used by:71 | |
| Symbol 71 MovieClip {RightLowerLeg_3} | Uses:67 68 69 70 | Used by:141 |
| Symbol 72 Graphic | Used by:76 | |
| Symbol 73 Graphic | Used by:76 | |
| Symbol 74 Graphic | Used by:76 | |
| Symbol 75 Graphic | Used by:76 | |
| Symbol 76 MovieClip {RightLowerHand_3} | Uses:72 73 74 75 | Used by:141 |
| Symbol 77 Graphic | Used by:81 | |
| Symbol 78 Graphic | Used by:81 | |
| Symbol 79 Graphic | Used by:81 | |
| Symbol 80 Graphic | Used by:81 | |
| Symbol 81 MovieClip {LeftUpperLeg_3} | Uses:77 78 79 80 | Used by:141 |
| Symbol 82 Graphic | Used by:86 | |
| Symbol 83 Graphic | Used by:86 | |
| Symbol 84 Graphic | Used by:86 | |
| Symbol 85 Graphic | Used by:86 | |
| Symbol 86 MovieClip {LeftUpperHand_3} | Uses:82 83 84 85 | Used by:141 |
| Symbol 87 Graphic | Used by:91 | |
| Symbol 88 Graphic | Used by:91 | |
| Symbol 89 Graphic | Used by:91 | |
| Symbol 90 Graphic | Used by:91 | |
| Symbol 91 MovieClip {LeftLowerLeg_3} | Uses:87 88 89 90 | Used by:141 |
| Symbol 92 Graphic | Used by:96 | |
| Symbol 93 Graphic | Used by:96 | |
| Symbol 94 Graphic | Used by:96 | |
| Symbol 95 Graphic | Used by:96 | |
| Symbol 96 MovieClip {LeftLowerHand_3} | Uses:92 93 94 95 | Used by:141 |
| Symbol 97 Graphic | Used by:98 | |
| Symbol 98 MovieClip {GibbetObliquely} | Uses:97 | Used by:113 1241 1298 1324 1380 1432 1442 1444 1453 1455 1458 1462 1471 1496 1498 1505 1509 1520 1521 1522 1529 1533 1538 1564 1565 |
| Symbol 99 Graphic | Used by:100 | |
| Symbol 100 MovieClip {GibbetColumn} | Uses:99 | Used by:113 1241 1263 1298 1324 1380 1398 1421 1432 1442 1444 1453 1455 1456 1457 1458 1462 1464 1471 1496 1498 1500 1504 1505 1509 1511 1512 1513 1514 1517 1520 1521 1522 1524 1529 1532 1533 1538 1564 1565 |
| Symbol 101 Graphic | Used by:105 | |
| Symbol 102 Graphic | Used by:103 | |
| Symbol 103 MovieClip | Uses:102 | Used by:105 |
| Symbol 104 Graphic | Used by:105 | |
| Symbol 105 MovieClip | Uses:101 103 104 | Used by:106 |
| Symbol 106 MovieClip {GibbetGround} | Uses:105 | Used by:113 1380 1442 1453 1458 1462 1496 1504 1512 1520 1524 1529 |
| Symbol 107 Graphic | Used by:108 | |
| Symbol 108 MovieClip {GibbetStick} | Uses:107 | Used by:113 1241 1263 1298 1324 1380 1398 1421 1432 1442 1444 1453 1455 1456 1457 1458 1462 1464 1471 1496 1498 1500 1504 1505 1509 1511 1512 1513 1517 1520 1521 1522 1524 1529 1532 1533 1538 1564 1565 |
| Symbol 109 Graphic | Used by:110 486 | |
| Symbol 110 MovieClip {Screw} | Uses:109 | Used by:113 1241 1263 1298 1324 1380 1398 1421 1432 1442 1444 1453 1455 1456 1457 1458 1462 1464 1471 1496 1498 1500 1504 1505 1509 1511 1512 1513 1514 1517 1520 1521 1522 1524 1529 1532 1533 1538 1564 1565 |
| Symbol 111 Graphic | Used by:112 | |
| Symbol 112 MovieClip {RopeRings} | Uses:111 | Used by:113 1241 1263 1298 1324 1380 1398 1421 1432 1442 1444 1453 1455 1456 1457 1458 1462 1464 1471 1496 1498 1500 1504 1505 1509 1511 1512 1513 1514 1517 1520 1521 1522 1524 1529 1532 1533 1538 1564 1565 |
| Symbol 113 MovieClip | Uses:98 100 106 108 110 112 | Used by:141 1145 |
| Symbol 114 Graphic | Used by:115 | |
| Symbol 115 MovieClip | Uses:114 | Used by:141 1552 |
| Symbol 116 Graphic | Used by:117 | |
| Symbol 117 MovieClip | Uses:116 | Used by:119 |
| Symbol 118 Graphic | Used by:119 797 | |
| Symbol 119 Button {CloseCross} | Uses:117 118 | Used by:141 1552 |
| Symbol 120 Graphic | Used by:121 | |
| Symbol 121 MovieClip {Rope} | Uses:120 | Used by:141 |
| Symbol 122 Graphic | Used by:134 | |
| Symbol 123 Graphic | Used by:134 | |
| Symbol 124 Graphic | Used by:134 | |
| Symbol 125 Graphic | Used by:134 | |
| Symbol 126 Graphic | Used by:134 | |
| Symbol 127 Graphic | Used by:134 | |
| Symbol 128 Graphic | Used by:134 | |
| Symbol 129 Graphic | Used by:134 | |
| Symbol 130 Graphic | Used by:134 | |
| Symbol 131 Graphic | Used by:134 | |
| Symbol 132 Graphic | Used by:134 | |
| Symbol 133 Graphic | Used by:134 | |
| Symbol 134 MovieClip {FaceColors_3} | Uses:122 123 124 125 126 127 128 129 130 131 132 133 | Used by:141 |
| Symbol 135 Font | Used by:136 137 138 139 422 423 | |
| Symbol 136 Text | Uses:135 | Used by:140 |
| Symbol 137 Text | Uses:135 | Used by:140 |
| Symbol 138 Text | Uses:135 | Used by:140 |
| Symbol 139 Text | Uses:135 | Used by:140 |
| Symbol 140 Button | Uses:136 137 138 139 | Used by:141 523 697 1145 |
| Symbol 141 MovieClip {States.CurrentPreloaderState} | Uses:2 5 8 18 25 28 31 34 37 40 43 48 53 56 61 66 71 76 81 86 91 96 113 115 119 121 134 140 | Used by:Timeline |
| Symbol 142 Font | Used by:143 144 | |
| Symbol 143 Text | Uses:142 | Used by:145 |
| Symbol 144 Text | Uses:142 | Used by:145 |
| Symbol 145 MovieClip {Gibbets_II_fla.highscoreloader_54} | Uses:143 144 | Used by:Timeline |
| Symbol 146 Sound {win_sound} | ||
| Symbol 147 Sound {vulture_cry_4} | ||
| Symbol 148 Sound {vulture_cry_3} | ||
| Symbol 149 Sound {vulture_cry_2} | ||
| Symbol 150 Sound {vulture_cry_1} | ||
| Symbol 151 Sound {teleport} | ||
| Symbol 152 Sound {tape_rope_2} | ||
| Symbol 153 Sound {tape_rope_1} | ||
| Symbol 154 Sound {tape_rope_0} | ||
| Symbol 155 Sound {sun_voice} | ||
| Symbol 156 Sound {stick_in_wood} | ||
| Symbol 157 Sound {stick_in_body_2} | ||
| Symbol 158 Sound {stick_in_body_1} | ||
| Symbol 159 Sound {stick_in_body_0} | ||
| Symbol 160 Sound {points} | ||
| Symbol 161 Sound {perfect_star} | ||
| Symbol 162 Sound {moo} | ||
| Symbol 163 Sound {main_menu_music} | ||
| Symbol 164 Sound {main_menu_arrow_sound} | ||
| Symbol 165 Sound {lose_sound} | ||
| Symbol 166 Sound {exploison} | ||
| Symbol 167 Sound {death_cry} | ||
| Symbol 168 Sound {cry_7} | ||
| Symbol 169 Sound {cry_6} | ||
| Symbol 170 Sound {cry_5} | ||
| Symbol 171 Sound {cry_4} | ||
| Symbol 172 Sound {cry_3} | ||
| Symbol 173 Sound {cry_2} | ||
| Symbol 174 Sound {cry_1} | ||
| Symbol 175 Sound {cry_0} | ||
| Symbol 176 Sound {click} | ||
| Symbol 177 Sound {bow_shoot} | ||
| Symbol 178 Sound {arrow_ghost} | ||
| Symbol 179 Sound {ambient_2} | ||
| Symbol 180 Sound {ambient_1} | ||
| Symbol 181 Sound {add_arrows_sound_1} | ||
| Symbol 182 Sound {add_arrows_sound_0} | ||
| Symbol 183 Sound {SponsorMusic} | ||
| Symbol 184 Graphic | Used by:185 | |
| Symbol 185 MovieClip | Uses:184 | Used by:207 |
| Symbol 186 Graphic | Used by:207 | |
| Symbol 187 Graphic | Used by:207 | |
| Symbol 188 Graphic | Used by:189 847 | |
| Symbol 189 MovieClip | Uses:188 | Used by:194 |
| Symbol 190 Graphic | Used by:191 | |
| Symbol 191 MovieClip | Uses:190 | Used by:194 |
| Symbol 192 Graphic | Used by:193 | |
| Symbol 193 MovieClip | Uses:192 | Used by:194 |
| Symbol 194 MovieClip | Uses:189 191 193 | Used by:207 |
| Symbol 195 Graphic | Used by:207 | |
| Symbol 196 MovieClip | Uses:19 | Used by:199 200 203 204 |
| Symbol 197 Graphic | Used by:198 200 | |
| Symbol 198 MovieClip | Uses:197 | Used by:199 200 |
| Symbol 199 MovieClip | Uses:196 198 | Used by:200 |
| Symbol 200 Button | Uses:196 198 199 19 197 | Used by:207 |
| Symbol 201 Graphic | Used by:202 204 | |
| Symbol 202 MovieClip | Uses:201 | Used by:203 204 |
| Symbol 203 MovieClip | Uses:196 202 | Used by:204 |
| Symbol 204 Button | Uses:196 202 203 19 201 | Used by:207 |
| Symbol 205 Text | Uses:15 | Used by:206 |
| Symbol 206 MovieClip | Uses:205 | Used by:207 |
| Symbol 207 MovieClip {YesNoStateView} | Uses:185 186 187 194 195 200 204 206 | |
| Symbol 208 Graphic | Used by:218 | |
| Symbol 209 Graphic | Used by:218 | |
| Symbol 210 Graphic | Used by:218 | |
| Symbol 211 Graphic | Used by:218 | |
| Symbol 212 Graphic | Used by:218 | |
| Symbol 213 Graphic | Used by:218 | |
| Symbol 214 Graphic | Used by:218 | |
| Symbol 215 Graphic | Used by:218 | |
| Symbol 216 Graphic | Used by:218 | |
| Symbol 217 Graphic | Used by:218 | |
| Symbol 218 MovieClip {FaceColors_4} | Uses:208 209 210 211 212 213 214 215 216 217 | |
| Symbol 219 Graphic | Used by:231 | |
| Symbol 220 Graphic | Used by:231 | |
| Symbol 221 Graphic | Used by:231 | |
| Symbol 222 Graphic | Used by:231 | |
| Symbol 223 Graphic | Used by:231 | |
| Symbol 224 Graphic | Used by:231 | |
| Symbol 225 Graphic | Used by:231 | |
| Symbol 226 Graphic | Used by:231 | |
| Symbol 227 Graphic | Used by:231 | |
| Symbol 228 Graphic | Used by:231 | |
| Symbol 229 Graphic | Used by:231 | |
| Symbol 230 Graphic | Used by:231 | |
| Symbol 231 MovieClip {FaceColors_2} | Uses:219 220 221 222 223 224 225 226 227 228 229 230 | |
| Symbol 232 Graphic | Used by:245 | |
| Symbol 233 Graphic | Used by:245 | |
| Symbol 234 Graphic | Used by:245 | |
| Symbol 235 Graphic | Used by:245 | |
| Symbol 236 Graphic | Used by:245 | |
| Symbol 237 Graphic | Used by:245 | |
| Symbol 238 Graphic | Used by:245 | |
| Symbol 239 Graphic | Used by:245 | |
| Symbol 240 Graphic | Used by:245 | |
| Symbol 241 Graphic | Used by:245 | |
| Symbol 242 Graphic | Used by:245 | |
| Symbol 243 Graphic | Used by:245 | |
| Symbol 244 Graphic | Used by:245 | |
| Symbol 245 MovieClip {FaceColors_1} | Uses:232 233 234 235 236 237 238 239 240 241 242 243 244 | |
| Symbol 246 Graphic | Used by:247 | |
| Symbol 247 MovieClip | Uses:246 | Used by:248 |
| Symbol 248 MovieClip {TripleSave} | Uses:247 | |
| Symbol 249 Graphic | Used by:250 | |
| Symbol 250 MovieClip | Uses:249 | Used by:251 |
| Symbol 251 MovieClip {DoubleSave} | Uses:250 | |
| Symbol 252 Graphic | Used by:257 | |
| Symbol 253 Graphic | Used by:254 | |
| Symbol 254 MovieClip | Uses:253 | Used by:257 |
| Symbol 255 Font | Used by:256 511 512 513 515 517 518 519 521 529 531 536 539 542 545 547 549 552 554 556 558 613 | |
| Symbol 256 EditableText | Uses:255 | Used by:257 |
| Symbol 257 MovieClip {Hint} | Uses:252 254 256 | |
| Symbol 258 Graphic | Used by:259 | |
| Symbol 259 MovieClip | Uses:258 | Used by:290 |
| Symbol 260 Graphic | Used by:285 | |
| Symbol 261 Graphic | Used by:263 | |
| Symbol 262 Graphic | Used by:263 | |
| Symbol 263 MovieClip | Uses:261 262 | Used by:273 285 |
| Symbol 264 Graphic | Used by:265 | |
| Symbol 265 MovieClip | Uses:264 | Used by:266 |
| Symbol 266 MovieClip | Uses:265 | Used by:273 285 |
| Symbol 267 Graphic | Used by:269 | |
| Symbol 268 Graphic | Used by:269 | |
| Symbol 269 MovieClip | Uses:267 268 | Used by:273 285 |
| Symbol 270 Graphic | Used by:285 | |
| Symbol 271 Graphic | Used by:273 | |
| Symbol 272 Graphic | Used by:273 | |
| Symbol 273 MovieClip | Uses:271 263 266 269 272 | Used by:285 |
| Symbol 274 Graphic | Used by:276 281 | |
| Symbol 275 Graphic | Used by:276 281 | |
| Symbol 276 MovieClip | Uses:274 275 | Used by:285 |
| Symbol 277 Graphic | Used by:279 280 | |
| Symbol 278 Graphic | Used by:279 280 | |
| Symbol 279 MovieClip | Uses:277 278 | Used by:285 |
| Symbol 280 MovieClip | Uses:277 278 | Used by:285 |
| Symbol 281 MovieClip | Uses:274 275 | Used by:285 |
| Symbol 282 Graphic | Used by:285 | |
| Symbol 283 Graphic | Used by:285 | |
| Symbol 284 Graphic | Used by:285 | |
| Symbol 285 MovieClip | Uses:260 263 266 269 270 273 276 279 280 281 282 283 284 | Used by:290 |
| Symbol 286 Graphic | Used by:287 | |
| Symbol 287 MovieClip | Uses:286 | Used by:288 289 |
| Symbol 288 MovieClip | Uses:287 | Used by:290 |
| Symbol 289 MovieClip | Uses:287 | Used by:290 |
| Symbol 290 MovieClip {StarrySky} | Uses:259 285 288 289 | Used by:401 1432 1435 1436 1439 1442 1552 |
| Symbol 291 Graphic | Used by:292 | |
| Symbol 292 MovieClip | Uses:291 | Used by:293 294 348 351 |
| Symbol 293 MovieClip | Uses:292 | Used by:401 |
| Symbol 294 MovieClip | Uses:292 | Used by:401 |
| Symbol 295 Graphic | Used by:296 | |
| Symbol 296 MovieClip | Uses:295 | Used by:297 298 354 357 |
| Symbol 297 MovieClip | Uses:296 | Used by:401 |
| Symbol 298 MovieClip | Uses:296 | Used by:401 |
| Symbol 299 Graphic | Used by:302 | |
| Symbol 300 Graphic | Used by:301 | |
| Symbol 301 MovieClip | Uses:300 | Used by:302 |
| Symbol 302 MovieClip | Uses:299 301 | Used by:303 360 |
| Symbol 303 MovieClip | Uses:302 | Used by:401 |
| Symbol 304 Graphic | Used by:307 | |
| Symbol 305 Graphic | Used by:306 | |
| Symbol 306 MovieClip | Uses:305 | Used by:307 325 334 |
| Symbol 307 MovieClip | Uses:304 306 | Used by:308 363 |
| Symbol 308 MovieClip | Uses:307 | Used by:401 |
| Symbol 309 Graphic | Used by:310 | |
| Symbol 310 MovieClip | Uses:309 | Used by:311 312 366 369 |
| Symbol 311 MovieClip | Uses:310 | Used by:401 |
| Symbol 312 MovieClip | Uses:310 | Used by:401 |
| Symbol 313 Graphic | Used by:318 | |
| Symbol 314 Graphic | Used by:317 | |
| Symbol 315 Graphic | Used by:316 | |
| Symbol 316 MovieClip | Uses:315 | Used by:317 |
| Symbol 317 MovieClip | Uses:314 316 | Used by:318 |
| Symbol 318 MovieClip | Uses:313 317 | Used by:319 320 372 375 |
| Symbol 319 MovieClip | Uses:318 | Used by:401 |
| Symbol 320 MovieClip | Uses:318 | Used by:401 |
| Symbol 321 Graphic | Used by:322 | |
| Symbol 322 MovieClip | Uses:321 | Used by:323 378 |
| Symbol 323 MovieClip | Uses:322 | Used by:401 |
| Symbol 324 Graphic | Used by:325 | |
| Symbol 325 MovieClip | Uses:324 306 | Used by:326 382 |
| Symbol 326 MovieClip | Uses:325 | Used by:401 |
| Symbol 327 Graphic | Used by:331 | |
| Symbol 328 Graphic | Used by:329 | |
| Symbol 329 MovieClip | Uses:328 | Used by:331 |
| Symbol 330 Graphic | Used by:331 | |
| Symbol 331 MovieClip | Uses:327 329 330 | Used by:332 386 |
| Symbol 332 MovieClip | Uses:331 | Used by:401 |
| Symbol 333 Graphic | Used by:334 | |
| Symbol 334 MovieClip | Uses:333 306 | Used by:335 345 |
| Symbol 335 MovieClip | Uses:334 | Used by:401 |
| Symbol 336 Graphic | Used by:337 | |
| Symbol 337 MovieClip | Uses:336 | Used by:338 |
| Symbol 338 MovieClip | Uses:337 | Used by:401 |
| Symbol 339 Graphic | Used by:341 | |
| Symbol 340 Graphic | Used by:341 347 350 353 356 359 362 365 368 371 374 377 380 384 391 | |
| Symbol 341 MovieClip {блик_13} | Uses:339 340 | Used by:345 |
| Symbol 342 Graphic | Used by:343 841 912 | |
| Symbol 343 MovieClip {звёздочка} | Uses:342 | Used by:345 348 351 354 357 360 363 366 369 372 375 378 382 386 392 841 912 |
| Symbol 344 Graphic | Used by:345 348 351 354 357 360 363 366 369 372 375 378 | |
| Symbol 345 MovieClip {ach_14} | Uses:334 341 343 344 | Used by:401 |
| Symbol 346 Graphic | Used by:347 | |
| Symbol 347 MovieClip {блик_1} | Uses:346 340 | Used by:348 |
| Symbol 348 MovieClip {ach_1} | Uses:292 347 343 344 | Used by:401 |
| Symbol 349 Graphic | Used by:350 | |
| Symbol 350 MovieClip {блик_2} | Uses:349 340 | Used by:351 |
| Symbol 351 MovieClip {ach_2} | Uses:292 350 343 344 | Used by:401 |
| Symbol 352 Graphic | Used by:353 | |
| Symbol 353 MovieClip {блик_3} | Uses:352 340 | Used by:354 |
| Symbol 354 MovieClip {ach_3} | Uses:296 353 343 344 | Used by:401 |
| Symbol 355 Graphic | Used by:356 | |
| Symbol 356 MovieClip {блик_4} | Uses:355 340 | Used by:357 |
| Symbol 357 MovieClip {ach_4} | Uses:296 356 343 344 | Used by:401 |
| Symbol 358 Graphic | Used by:359 | |
| Symbol 359 MovieClip {блик_5} | Uses:358 340 | Used by:360 |
| Symbol 360 MovieClip {ach_5} | Uses:302 359 343 344 | Used by:401 |
| Symbol 361 Graphic | Used by:362 | |
| Symbol 362 MovieClip {блик_6} | Uses:361 340 | Used by:363 |
| Symbol 363 MovieClip {ach_6} | Uses:307 362 343 344 | Used by:401 |
| Symbol 364 Graphic | Used by:365 | |
| Symbol 365 MovieClip {блик_7} | Uses:364 340 | Used by:366 |
| Symbol 366 MovieClip {ach_7} | Uses:310 365 343 344 | Used by:401 |
| Symbol 367 Graphic | Used by:368 | |
| Symbol 368 MovieClip {блик_8} | Uses:367 340 | Used by:369 |
| Symbol 369 MovieClip {ach_8} | Uses:310 368 343 344 | Used by:401 |
| Symbol 370 Graphic | Used by:371 | |
| Symbol 371 MovieClip {блик_14} | Uses:370 340 | Used by:372 |
| Symbol 372 MovieClip {ach_9} | Uses:318 371 343 344 | Used by:401 |
| Symbol 373 Graphic | Used by:374 | |
| Symbol 374 MovieClip {блик_9} | Uses:373 340 | Used by:375 |
| Symbol 375 MovieClip {ach_10} | Uses:318 374 343 344 | Used by:401 |
| Symbol 376 Graphic | Used by:377 | |
| Symbol 377 MovieClip {блик_10} | Uses:376 340 | Used by:378 |
| Symbol 378 MovieClip {ach_11} | Uses:322 377 343 344 | Used by:401 |
| Symbol 379 Graphic | Used by:380 | |
| Symbol 380 MovieClip {блик_11} | Uses:379 340 | Used by:382 |
| Symbol 381 Graphic | Used by:382 | |
| Symbol 382 MovieClip {ach_12} | Uses:325 380 343 381 | Used by:401 |
| Symbol 383 Graphic | Used by:384 | |
| Symbol 384 MovieClip {блик_12} | Uses:383 340 | Used by:386 |
| Symbol 385 Graphic | Used by:386 | |
| Symbol 386 MovieClip {ach_13} | Uses:331 384 343 385 | Used by:401 |
| Symbol 387 Graphic | Used by:388 | |
| Symbol 388 MovieClip | Uses:387 | Used by:392 |
| Symbol 389 Graphic | Used by:391 | |
| Symbol 390 Graphic | Used by:391 | |
| Symbol 391 MovieClip {блик_15} | Uses:389 340 390 | Used by:392 |
| Symbol 392 MovieClip {ach_15} | Uses:388 343 391 | Used by:401 |
| Symbol 393 MovieClip | Uses:19 | Used by:396 397 951 952 |
| Symbol 394 Graphic | Used by:395 397 855 857 | |
| Symbol 395 MovieClip | Uses:394 | Used by:396 397 |
| Symbol 396 MovieClip | Uses:393 395 | Used by:397 |
| Symbol 397 Button | Uses:393 395 396 19 394 | Used by:401 523 842 953 1145 1552 1558 |
| Symbol 398 Text | Uses:15 | Used by:400 |
| Symbol 399 Graphic | Used by:400 509 773 1550 | |
| Symbol 400 MovieClip | Uses:398 399 | Used by:401 |
| Symbol 401 MovieClip {AchievementsStateView} | Uses:290 293 294 297 298 303 308 311 312 319 320 323 326 332 335 338 345 348 351 354 357 360 363 366 369 372 375 378 382 386 392 397 400 | |
| Symbol 402 Graphic | Used by:405 | |
| Symbol 403 Graphic | Used by:405 | |
| Symbol 404 Graphic | Used by:405 | |
| Symbol 405 MovieClip {HangerFace} | Uses:402 403 404 | |
| Symbol 406 Graphic | Used by:410 | |
| Symbol 407 ShapeTweening | Used by:409 410 | |
| Symbol 408 Graphic | Used by:409 | |
| Symbol 409 MovieClip {Gibbets_II_fla.introFlash_608} | Uses:407 408 | Used by:410 |
| Symbol 410 Button {IntroButton} | Uses:406 409 407 | |
| Symbol 411 ShapeTweening | Used by:426 | |
| Symbol 412 Graphic | Used by:426 | |
| Symbol 413 Graphic | Used by:426 | |
| Symbol 414 ShapeTweening | Used by:426 | |
| Symbol 415 Graphic | Used by:426 | |
| Symbol 416 ShapeTweening | Used by:426 | |
| Symbol 417 Graphic | Used by:426 | |
| Symbol 418 ShapeTweening | Used by:426 | |
| Symbol 419 Graphic | Used by:426 1152 1541 | |
| Symbol 420 ShapeTweening | Used by:426 | |
| Symbol 421 Graphic | Used by:426 | |
| Symbol 422 Text | Uses:135 | Used by:424 |
| Symbol 423 Text | Uses:135 | Used by:424 |
| Symbol 424 MovieClip | Uses:422 423 | Used by:426 |
| Symbol 425 ShapeTweening | Used by:426 | |
| Symbol 426 MovieClip {SponsorIntro} | Uses:411 412 413 414 415 416 417 418 419 420 421 424 425 | |
| Symbol 427 Graphic | Used by:460 | |
| Symbol 428 Graphic | Used by:430 | |
| Symbol 429 Graphic | Used by:430 | |
| Symbol 430 MovieClip | Uses:428 429 | Used by:460 1418 |
| Symbol 431 Graphic | Used by:460 | |
| Symbol 432 Graphic | Used by:460 | |
| Symbol 433 Graphic | Used by:460 | |
| Symbol 434 Graphic | Used by:460 1418 | |
| Symbol 435 Graphic | Used by:460 1418 | |
| Symbol 436 Graphic | Used by:439 | |
| Symbol 437 Graphic | Used by:439 | |
| Symbol 438 Graphic | Used by:439 | |
| Symbol 439 MovieClip | Uses:436 437 438 | Used by:460 1418 |
| Symbol 440 Graphic | Used by:441 | |
| Symbol 441 MovieClip | Uses:440 | Used by:460 1418 |
| Symbol 442 Graphic | Used by:460 1418 | |
| Symbol 443 Graphic | Used by:460 1418 | |
| Symbol 444 Graphic | Used by:460 1418 | |
| Symbol 445 Graphic | Used by:460 1418 | |
| Symbol 446 Graphic | Used by:460 1418 | |
| Symbol 447 Graphic | Used by:460 | |
| Symbol 448 Graphic | Used by:460 | |
| Symbol 449 Graphic | Used by:460 | |
| Symbol 450 Graphic | Used by:460 | |
| Symbol 451 Graphic | Used by:460 | |
| Symbol 452 Graphic | Used by:460 | |
| Symbol 453 Graphic | Used by:460 | |
| Symbol 454 Graphic | Used by:460 | |
| Symbol 455 Graphic | Used by:460 | |
| Symbol 456 Graphic | Used by:460 | |
| Symbol 457 Graphic | Used by:460 | |
| Symbol 458 Graphic | Used by:460 | |
| Symbol 459 Graphic | Used by:460 | |
| Symbol 460 MovieClip {CowCry} | Uses:427 430 431 432 433 434 435 439 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 | |
| Symbol 461 Graphic | Used by:462 | |
| Symbol 462 MovieClip {Back4} | Uses:461 | Used by:463 1324 1444 1462 1464 1509 1521 1533 |
| Symbol 463 MovieClip | Uses:2 462 | Used by:523 |
| Symbol 464 Graphic | Used by:465 | |
| Symbol 465 MovieClip | Uses:464 | Used by:466 |
| Symbol 466 MovieClip {Cloud9} | Uses:465 | Used by:523 697 842 1241 1380 1398 1421 1442 1444 1471 1496 1498 1499 1500 1504 1505 1507 1509 1512 1517 1521 1522 1529 1533 1538 1546 1547 1548 1549 1552 1564 |
| Symbol 467 Graphic | Used by:472 | |
| Symbol 468 Font | Used by:469 470 471 474 475 476 490 491 492 493 494 | |
| Symbol 469 Text | Uses:468 | Used by:472 |
| Symbol 470 Text | Uses:468 | Used by:472 |
| Symbol 471 Text | Uses:468 | Used by:472 |
| Symbol 472 MovieClip | Uses:467 469 470 471 | Used by:523 |
| Symbol 473 Graphic | Used by:477 | |
| Symbol 474 Text | Uses:468 | Used by:477 |
| Symbol 475 Text | Uses:468 | Used by:477 |
| Symbol 476 Text | Uses:468 | Used by:477 |
| Symbol 477 MovieClip | Uses:473 474 475 476 | Used by:523 |
| Symbol 478 Graphic | Used by:479 | |
| Symbol 479 MovieClip {HangerPoint} | Uses:478 | Used by:523 1241 1263 1298 1324 1380 1398 1421 1432 1435 1436 1439 1442 1444 1453 1455 1456 1457 1458 1462 1464 1471 1496 1498 1499 1500 1501 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1517 1520 1521 1522 1524 1529 1532 1533 1538 1564 1565 1566 1567 |
| Symbol 480 Graphic | Used by:481 | |
| Symbol 481 MovieClip | Uses:480 | Used by:523 |
| Symbol 482 Graphic | Used by:483 | |
| Symbol 483 MovieClip | Uses:482 | Used by:523 |
| Symbol 484 Graphic | Used by:485 | |
| Symbol 485 MovieClip | Uses:484 | Used by:523 |
| Symbol 486 MovieClip | Uses:109 | Used by:523 |
| Symbol 487 Graphic | Used by:488 | |
| Symbol 488 MovieClip | Uses:487 | Used by:523 |
| Symbol 489 Graphic | Used by:495 | |
| Symbol 490 Text | Uses:468 | Used by:495 |
| Symbol 491 Text | Uses:468 | Used by:495 |
| Symbol 492 Text | Uses:468 | Used by:495 |
| Symbol 493 Text | Uses:468 | Used by:495 |
| Symbol 494 Text | Uses:468 | Used by:495 |
| Symbol 495 MovieClip | Uses:489 490 491 492 493 494 | Used by:523 |
| Symbol 496 Graphic | Used by:500 | |
| Symbol 497 Graphic | Used by:500 | |
| Symbol 498 Graphic | Used by:499 | |
| Symbol 499 MovieClip | Uses:498 | Used by:500 |
| Symbol 500 MovieClip | Uses:496 497 499 | Used by:523 |
| Symbol 501 Graphic | Used by:502 | |
| Symbol 502 MovieClip | Uses:501 | Used by:503 |
| Symbol 503 MovieClip | Uses:502 | Used by:523 |
| Symbol 504 Graphic | Used by:523 | |
| Symbol 505 Graphic | Used by:506 | |
| Symbol 506 MovieClip | Uses:505 | Used by:507 |
| Symbol 507 MovieClip {Cloud2} | Uses:506 | Used by:523 1241 1263 1298 1380 1398 1421 1458 1462 1505 1508 1511 1513 1514 1517 1524 1546 1547 1548 1549 1564 |
| Symbol 508 Text | Uses:15 | Used by:509 |
| Symbol 509 MovieClip | Uses:508 399 | Used by:510 |
| Symbol 510 MovieClip | Uses:509 | Used by:523 |
| Symbol 511 EditableText | Uses:255 | Used by:516 |
| Symbol 512 EditableText | Uses:255 | Used by:516 |
| Symbol 513 EditableText | Uses:255 | Used by:516 |
| Symbol 514 Graphic | Used by:516 | |
| Symbol 515 EditableText | Uses:255 | Used by:516 |
| Symbol 516 Button | Uses:511 512 513 514 515 | Used by:523 |
| Symbol 517 EditableText | Uses:255 | Used by:522 |
| Symbol 518 EditableText | Uses:255 | Used by:522 |
| Symbol 519 EditableText | Uses:255 | Used by:522 |
| Symbol 520 Graphic | Used by:522 | |
| Symbol 521 EditableText | Uses:255 | Used by:522 |
| Symbol 522 Button | Uses:517 518 519 520 521 | Used by:523 |
| Symbol 523 MovieClip {CreditsStateView} | Uses:463 466 28 37 472 477 479 481 483 485 486 488 495 500 503 504 507 510 397 140 516 522 | |
| Symbol 524 Graphic | Used by:525 | |
| Symbol 525 MovieClip {MusicCloud} | Uses:524 | |
| Symbol 526 Graphic | Used by:527 | |
| Symbol 527 MovieClip {GameCompleteCloud} | Uses:526 | |
| Symbol 528 Graphic | Used by:530 532 | |
| Symbol 529 Text | Uses:255 | Used by:530 |
| Symbol 530 MovieClip {MyBlogCloud} | Uses:528 529 | |
| Symbol 531 Text | Uses:255 | Used by:532 |
| Symbol 532 MovieClip {MyMailCloud} | Uses:528 531 | |
| Symbol 533 Graphic | Used by:534 | |
| Symbol 534 MovieClip {ProgrammingCloud} | Uses:533 | |
| Symbol 535 Graphic | Used by:537 | |
| Symbol 536 Text | Uses:255 | Used by:537 |
| Symbol 537 MovieClip {MainMenuCloud3} | Uses:535 536 | |
| Symbol 538 Graphic | Used by:540 614 | |
| Symbol 539 Text | Uses:255 | Used by:540 |
| Symbol 540 MovieClip {MainMenuCloud2} | Uses:538 539 | |
| Symbol 541 Graphic | Used by:543 548 550 555 557 559 | |
| Symbol 542 Text | Uses:255 | Used by:543 |
| Symbol 543 MovieClip {TryToShotMyLegsToShakeMeCloud} | Uses:541 542 | |
| Symbol 544 Graphic | Used by:546 | |
| Symbol 545 Text | Uses:255 | Used by:546 |
| Symbol 546 MovieClip {TakeAdditionArrows} | Uses:544 545 | |
| Symbol 547 Text | Uses:255 | Used by:548 |
| Symbol 548 MovieClip {RobinHoodMadeThatMuchBetter} | Uses:541 547 | |
| Symbol 549 Text | Uses:255 | Used by:550 |
| Symbol 550 MovieClip {ThatBecauseIAmBlack} | Uses:541 549 | |
| Symbol 551 Graphic | Used by:553 | |
| Symbol 552 Text | Uses:255 | Used by:553 |
| Symbol 553 MovieClip {ILikeToHangCloud} | Uses:551 552 | |
| Symbol 554 Text | Uses:255 | Used by:555 |
| Symbol 555 MovieClip {HeadShotCloud} | Uses:541 554 | |
| Symbol 556 Text | Uses:255 | Used by:557 |
| Symbol 557 MovieClip {UseYouForceLuke} | Uses:541 556 | |
| Symbol 558 Text | Uses:255 | Used by:559 |
| Symbol 559 MovieClip {StopItCloud} | Uses:541 558 | |
| Symbol 560 Graphic | Used by:561 | |
| Symbol 561 MovieClip {ShotTheRopeNotMeCloud} | Uses:560 | |
| Symbol 562 Graphic | Used by:563 | |
| Symbol 563 MovieClip {ArtCloud} | Uses:562 | |
| Symbol 564 Graphic | Used by:565 | |
| Symbol 565 MovieClip | Uses:564 | Used by:578 |
| Symbol 566 Graphic | Used by:578 | |
| Symbol 567 Graphic | Used by:578 | |
| Symbol 568 Graphic | Used by:569 | |
| Symbol 569 MovieClip | Uses:568 | Used by:574 |
| Symbol 570 Graphic | Used by:571 | |
| Symbol 571 MovieClip | Uses:570 | Used by:574 |
| Symbol 572 Graphic | Used by:573 | |
| Symbol 573 MovieClip | Uses:572 | Used by:574 |
| Symbol 574 MovieClip | Uses:569 571 573 | Used by:578 |
| Symbol 575 Graphic | Used by:578 | |
| Symbol 576 Graphic | Used by:578 | |
| Symbol 577 Graphic | Used by:578 | |
| Symbol 578 MovieClip | Uses:565 566 567 574 575 576 577 | Used by:612 |
| Symbol 579 MovieClip | Uses:19 | Used by:582 583 |
| Symbol 580 Graphic | Used by:581 583 | |
| Symbol 581 MovieClip | Uses:580 | Used by:582 583 |
| Symbol 582 MovieClip | Uses:579 581 | Used by:583 |
| Symbol 583 Button | Uses:579 581 582 19 580 | Used by:612 |
| Symbol 584 Text | Uses:15 | Used by:586 |
| Symbol 585 Graphic | Used by:586 | |
| Symbol 586 MovieClip | Uses:584 585 | Used by:612 |
| Symbol 587 Text | Uses:15 | Used by:612 |
| Symbol 588 Text | Uses:15 | Used by:612 |
| Symbol 589 Text | Uses:15 | Used by:612 |
| Symbol 590 Text | Uses:15 | Used by:612 |
| Symbol 591 Graphic | Used by:596 | |
| Symbol 592 Graphic | Used by:593 | |
| Symbol 593 MovieClip | Uses:592 | Used by:596 |
| Symbol 594 Graphic | Used by:595 | |
| Symbol 595 MovieClip | Uses:594 | Used by:596 |
| Symbol 596 MovieClip {CheckBox} | Uses:591 593 595 | Used by:612 1582 |
| Symbol 597 Graphic | Used by:600 | |
| Symbol 598 Graphic | Used by:599 | |
| Symbol 599 MovieClip | Uses:598 | Used by:600 |
| Symbol 600 MovieClip | Uses:597 599 | Used by:603 |
| Symbol 601 Graphic | Used by:602 | |
| Symbol 602 MovieClip | Uses:601 | Used by:603 |
| Symbol 603 MovieClip {ScrollBar} | Uses:600 602 | Used by:612 |
| Symbol 604 Text | Uses:15 | Used by:605 |
| Symbol 605 MovieClip | Uses:604 | Used by:612 1582 |
| Symbol 606 MovieClip | Uses:19 | Used by:611 |
| Symbol 607 Graphic | Used by:608 611 | |
| Symbol 608 MovieClip | Uses:607 | Used by:610 611 |
| Symbol 609 MovieClip | Uses:19 | Used by:610 611 |
| Symbol 610 MovieClip | Uses:609 608 | Used by:611 |
| Symbol 611 Button | Uses:606 608 610 609 19 607 | Used by:612 |
| Symbol 612 MovieClip {OptionsStateView} | Uses:578 583 586 587 588 589 590 596 603 605 611 | |
| Symbol 613 Text | Uses:255 | Used by:614 |
| Symbol 614 MovieClip {MainMenuCloud1} | Uses:538 613 | Used by:697 |
| Symbol 615 Graphic | Used by:697 | |
| Symbol 616 Graphic | Used by:697 | |
| Symbol 617 Graphic | Used by:620 | |
| Symbol 618 Graphic | Used by:620 | |
| Symbol 619 Graphic | Used by:620 | |
| Symbol 620 MovieClip | Uses:617 618 619 | Used by:697 |
| Symbol 621 Graphic | Used by:622 | |
| Symbol 622 MovieClip | Uses:621 | Used by:623 |
| Symbol 623 MovieClip | Uses:622 | Used by:697 |
| Symbol 624 Graphic | Used by:625 | |
| Symbol 625 MovieClip | Uses:624 | Used by:697 |
| Symbol 626 Graphic | Used by:697 | |
| Symbol 627 Graphic | Used by:628 | |
| Symbol 628 MovieClip | Uses:627 | Used by:697 |
| Symbol 629 Graphic | Used by:630 | |
| Symbol 630 MovieClip | Uses:629 | Used by:697 |
| Symbol 631 Graphic | Used by:651 | |
| Symbol 632 Graphic | Used by:651 | |
| Symbol 633 Graphic | Used by:651 721 742 744 | |
| Symbol 634 Graphic | Used by:651 | |
| Symbol 635 Graphic | Used by:651 | |
| Symbol 636 Graphic | Used by:651 | |
| Symbol 637 Graphic | Used by:651 | |
| Symbol 638 Graphic | Used by:651 | |
| Symbol 639 Graphic | Used by:651 | |
| Symbol 640 Graphic | Used by:651 | |
| Symbol 641 Graphic | Used by:651 | |
| Symbol 642 Graphic | Used by:651 | |
| Symbol 643 Graphic | Used by:651 | |
| Symbol 644 Graphic | Used by:651 | |
| Symbol 645 Graphic | Used by:651 | |
| Symbol 646 Graphic | Used by:647 | |
| Symbol 647 MovieClip | Uses:646 | Used by:651 |
| Symbol 648 Graphic | Used by:651 721 742 744 | |
| Symbol 649 Graphic | Used by:650 | |
| Symbol 650 MovieClip | Uses:649 | Used by:651 |
| Symbol 651 MovieClip {Gibbets_II_fla.shirt_39_519} | Uses:631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 647 648 650 | Used by:697 |
| Symbol 652 Graphic | Used by:658 | |
| Symbol 653 Graphic | Used by:658 | |
| Symbol 654 Graphic | Used by:658 | |
| Symbol 655 Graphic | Used by:658 | |
| Symbol 656 Graphic | Used by:658 | |
| Symbol 657 Graphic | Used by:658 | |
| Symbol 658 MovieClip | Uses:652 653 654 655 656 657 | Used by:697 |
| Symbol 659 Graphic | Used by:660 | |
| Symbol 660 MovieClip | Uses:659 | Used by:697 |
| Symbol 661 Graphic | Used by:662 | |
| Symbol 662 MovieClip | Uses:661 | Used by:663 |
| Symbol 663 MovieClip | Uses:662 | Used by:664 |
| Symbol 664 MovieClip {Gibbets_II_fla.shirt_41_524} | Uses:663 | Used by:697 |
| Symbol 665 Graphic | Used by:666 | |
| Symbol 666 MovieClip | Uses:665 | Used by:667 |
| Symbol 667 MovieClip | Uses:666 | Used by:670 |
| Symbol 668 Graphic | Used by:670 | |
| Symbol 669 Graphic | Used by:670 | |
| Symbol 670 MovieClip {Gibbets_II_fla.shirt_42_527} | Uses:667 668 669 | Used by:697 |
| Symbol 671 Button | Uses:25 | Used by:685 |
| Symbol 672 Graphic | Used by:673 677 691 695 1140 1144 | |
| Symbol 673 MovieClip | Uses:672 | Used by:676 677 |
| Symbol 674 Graphic | Used by:675 677 | |
| Symbol 675 MovieClip | Uses:674 | Used by:676 677 |
| Symbol 676 MovieClip | Uses:673 675 | Used by:677 |
| Symbol 677 Button | Uses:673 675 676 672 674 | Used by:678 |
| Symbol 678 Button | Uses:677 | Used by:685 |
| Symbol 679 Graphic | Used by:680 681 683 | |
| Symbol 680 MovieClip | Uses:679 | Used by:683 |
| Symbol 681 MovieClip | Uses:679 | Used by:682 683 |
| Symbol 682 MovieClip | Uses:20 681 | Used by:683 |
| Symbol 683 Button | Uses:20 680 682 681 19 679 | Used by:684 |
| Symbol 684 Button | Uses:683 | Used by:685 |
| Symbol 685 MovieClip {Gibbets_II_fla.shirt_44_530} | Uses:671 678 684 | Used by:697 |
| Symbol 686 MovieClip | Uses:19 | Used by:689 690 |
| Symbol 687 Graphic | Used by:688 690 | |
| Symbol 688 MovieClip | Uses:687 | Used by:689 690 |
| Symbol 689 MovieClip | Uses:686 688 | Used by:690 |
| Symbol 690 Button | Uses:686 688 689 19 687 | Used by:696 |
| Symbol 691 MovieClip | Uses:672 | Used by:694 695 |
| Symbol 692 Graphic | Used by:693 695 | |
| Symbol 693 MovieClip | Uses:692 | Used by:694 695 |
| Symbol 694 MovieClip | Uses:691 693 | Used by:695 |
| Symbol 695 Button | Uses:691 693 694 672 692 | Used by:696 |
| Symbol 696 MovieClip {Gibbets_II_fla.LeftPanel_542} | Uses:690 695 | Used by:697 |
| Symbol 697 MovieClip {MainMenuStateView} | Uses:615 2 43 28 466 40 616 620 623 625 626 628 630 651 658 660 664 670 685 696 614 140 | |
| Symbol 698 Graphic | Used by:699 | |
| Symbol 699 MovieClip | Uses:698 | Used by:700 |
| Symbol 700 MovieClip {VultureShootingRules} | Uses:699 | |
| Symbol 701 Graphic | Used by:702 | |
| Symbol 702 MovieClip {VultureFeathers} | Uses:701 | |
| Symbol 703 Graphic | Used by:721 | |
| Symbol 704 Graphic | Used by:721 | |
| Symbol 705 Graphic | Used by:721 | |
| Symbol 706 Graphic | Used by:721 | |
| Symbol 707 Graphic | Used by:721 | |
| Symbol 708 Graphic | Used by:721 | |
| Symbol 709 Graphic | Used by:721 | |
| Symbol 710 Graphic | Used by:721 | |
| Symbol 711 Graphic | Used by:721 | |
| Symbol 712 Graphic | Used by:721 | |
| Symbol 713 Graphic | Used by:721 | |
| Symbol 714 Graphic | Used by:721 | |
| Symbol 715 Graphic | Used by:721 | |
| Symbol 716 Graphic | Used by:721 | |
| Symbol 717 Graphic | Used by:718 | |
| Symbol 718 MovieClip | Uses:717 | Used by:721 |
| Symbol 719 Graphic | Used by:720 | |
| Symbol 720 MovieClip | Uses:719 | Used by:721 |
| Symbol 721 MovieClip {Gibbets_II_fla.vulture_copy3_506} | Uses:703 704 633 705 706 707 708 709 710 711 712 713 714 715 716 718 648 720 | Used by:722 |
| Symbol 722 MovieClip {VultureDie} | Uses:721 | |
| Symbol 723 Graphic | Used by:742 744 | |
| Symbol 724 Graphic | Used by:742 744 | |
| Symbol 725 Graphic | Used by:742 744 | |
| Symbol 726 Graphic | Used by:742 744 | |
| Symbol 727 Graphic | Used by:742 744 | |
| Symbol 728 Graphic | Used by:742 744 | |
| Symbol 729 Graphic | Used by:742 744 | |
| Symbol 730 Graphic | Used by:742 744 | |
| Symbol 731 Graphic | Used by:742 744 | |
| Symbol 732 Graphic | Used by:742 744 | |
| Symbol 733 Graphic | Used by:742 744 | |
| Symbol 734 Graphic | Used by:742 744 | |
| Symbol 735 Graphic | Used by:742 744 | |
| Symbol 736 Graphic | Used by:742 744 | |
| Symbol 737 Graphic | Used by:742 744 | |
| Symbol 738 Graphic | Used by:739 | |
| Symbol 739 MovieClip | Uses:738 | Used by:742 744 |
| Symbol 740 Graphic | Used by:741 | |
| Symbol 741 MovieClip | Uses:740 | Used by:742 744 |
| Symbol 742 MovieClip | Uses:723 724 725 633 726 727 728 729 730 731 732 733 734 735 736 737 739 648 741 | Used by:743 |
| Symbol 743 MovieClip {VultureBend} | Uses:742 | |
| Symbol 744 MovieClip | Uses:723 724 725 633 726 727 728 729 730 731 732 733 734 735 736 737 739 648 741 | Used by:745 1397 1443 |
| Symbol 745 MovieClip {VultureJump} | Uses:744 | |
| Symbol 746 Graphic | Used by:747 | |
| Symbol 747 MovieClip {States.GrifShooting.VultureShelf} | Uses:746 | |
| Symbol 748 Graphic | Used by:749 | |
| Symbol 749 MovieClip | Uses:748 | Used by:750 |
| Symbol 750 MovieClip | Uses:749 | Used by:754 760 763 767 811 814 817 819 |
| Symbol 751 Graphic | Used by:754 767 811 819 | |
| Symbol 752 Graphic | Used by:753 | |
| Symbol 753 MovieClip | Uses:752 | Used by:754 760 763 767 |
| Symbol 754 MovieClip | Uses:750 751 753 | Used by:768 |
| Symbol 755 EditableText | Uses:15 939 | Used by:768 |
| Symbol 756 Graphic | Used by:757 | |
| Symbol 757 MovieClip | Uses:756 | Used by:758 |
| Symbol 758 MovieClip | Uses:757 | Used by:768 820 |
| Symbol 759 Graphic | Used by:760 | |
| Symbol 760 MovieClip | Uses:750 759 753 | Used by:768 |
| Symbol 761 EditableText | Uses:15 939 | Used by:768 |
| Symbol 762 Graphic | Used by:763 | |
| Symbol 763 MovieClip | Uses:750 762 753 | Used by:768 |
| Symbol 764 EditableText | Uses:15 939 | Used by:768 |
| Symbol 765 Graphic | Used by:766 | |
| Symbol 766 MovieClip | Uses:765 | Used by:767 819 |
| Symbol 767 MovieClip | Uses:750 751 766 753 | Used by:768 |
| Symbol 768 MovieClip {SelectLevelBonusButton} | Uses:754 755 758 760 761 763 764 767 | Used by:821 |
| Symbol 769 Graphic | Used by:770 | |
| Symbol 770 MovieClip {Back2} | Uses:769 | Used by:842 1263 1298 1398 1471 1500 1508 1510 1517 1522 1529 1532 |
| Symbol 771 Graphic | Used by:842 | |
| Symbol 772 Text | Uses:15 | Used by:773 1550 |
| Symbol 773 MovieClip | Uses:772 399 | Used by:774 |
| Symbol 774 MovieClip | Uses:773 | Used by:842 |
| Symbol 775 EditableText | Uses:15 939 | Used by:778 |
| Symbol 776 Graphic | Used by:777 | |
| Symbol 777 MovieClip | Uses:776 | Used by:778 |
| Symbol 778 MovieClip | Uses:775 777 | Used by:842 1145 1552 |
| Symbol 779 MovieClip | Uses:19 | Used by:782 783 |
| Symbol 780 Graphic | Used by:781 783 | |
| Symbol 781 MovieClip | Uses:780 | Used by:782 783 |
| Symbol 782 MovieClip | Uses:779 781 | Used by:783 |
| Symbol 783 Button | Uses:779 781 782 19 780 | Used by:842 1145 1552 |
| Symbol 784 Graphic | Used by:791 | |
| Symbol 785 Graphic | Used by:790 | |
| Symbol 786 Graphic | Used by:787 | |
| Symbol 787 MovieClip | Uses:786 | Used by:790 |
| Symbol 788 Graphic | Used by:790 | |
| Symbol 789 Graphic | Used by:790 | |
| Symbol 790 MovieClip | Uses:785 787 788 789 | Used by:791 |
| Symbol 791 MovieClip {tree_4} | Uses:784 790 | Used by:842 1458 1507 1512 1517 1564 |
| Symbol 792 Graphic | Used by:793 | |
| Symbol 793 MovieClip {herb} | Uses:792 | Used by:842 1263 1298 1398 1421 1453 1455 1456 1457 1458 1471 1496 1500 1503 1504 1505 1506 1507 1508 1510 1512 1513 1514 1517 1520 1522 1529 1538 1564 1565 |
| Symbol 794 Graphic | Used by:797 | |
| Symbol 795 Graphic | Used by:796 | |
| Symbol 796 MovieClip | Uses:795 | Used by:797 |
| Symbol 797 MovieClip | Uses:118 794 796 | Used by:801 |
| Symbol 798 Graphic | Used by:799 | |
| Symbol 799 MovieClip | Uses:798 | Used by:800 |
| Symbol 800 MovieClip | Uses:799 | Used by:801 |
| Symbol 801 MovieClip {Ground} | Uses:797 800 | Used by:842 1241 1263 1298 1324 1398 1421 1444 1453 1455 1456 1457 1458 1462 1464 1471 1496 1500 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1517 1520 1521 1522 1529 1532 1533 1538 1564 1565 |
| Symbol 802 Graphic | Used by:803 | |
| Symbol 803 MovieClip | Uses:802 | Used by:810 |
| Symbol 804 Graphic | Used by:809 | |
| Symbol 805 Graphic | Used by:806 | |
| Symbol 806 MovieClip | Uses:805 | Used by:809 1269 |
| Symbol 807 Graphic | Used by:809 | |
| Symbol 808 Graphic | Used by:809 | |
| Symbol 809 MovieClip | Uses:804 806 807 808 | Used by:810 |
| Symbol 810 MovieClip {tree_6} | Uses:803 809 | Used by:842 1298 1538 |
| Symbol 811 MovieClip | Uses:750 751 | Used by:820 |
| Symbol 812 EditableText | Uses:15 939 | Used by:820 |
| Symbol 813 Graphic | Used by:814 | |
| Symbol 814 MovieClip | Uses:750 813 | Used by:820 |
| Symbol 815 EditableText | Uses:15 939 | Used by:820 |
| Symbol 816 Graphic | Used by:817 | |
| Symbol 817 MovieClip | Uses:750 816 | Used by:820 |
| Symbol 818 EditableText | Uses:15 939 | Used by:820 |
| Symbol 819 MovieClip | Uses:750 751 766 | Used by:820 |
| Symbol 820 MovieClip {SelectLevelButton} | Uses:811 812 758 814 815 817 818 819 | Used by:821 1552 |
| Symbol 821 MovieClip | Uses:820 768 | Used by:842 |
| Symbol 822 Graphic | Used by:825 828 830 | |
| Symbol 823 Graphic | Used by:824 830 | |
| Symbol 824 MovieClip | Uses:823 | Used by:825 |
| Symbol 825 MovieClip | Uses:822 824 | Used by:830 |
| Symbol 826 Graphic | Used by:827 | |
| Symbol 827 MovieClip | Uses:826 | Used by:828 |
| Symbol 828 MovieClip | Uses:822 827 | Used by:829 |
| Symbol 829 MovieClip {LongShootArrow} | Uses:828 | Used by:830 |
| Symbol 830 Button {GuiArrow} | Uses:825 829 822 823 | Used by:842 1552 |
| Symbol 831 Graphic | Used by:832 841 | |
| Symbol 832 MovieClip | Uses:831 | Used by:833 |
| Symbol 833 MovieClip | Uses:832 | Used by:838 840 841 |
| Symbol 834 Graphic | Used by:835 841 | |
| Symbol 835 MovieClip | Uses:834 | Used by:838 840 841 |
| Symbol 836 Graphic | Used by:841 | |
| Symbol 837 Graphic | Used by:838 | |
| Symbol 838 MovieClip | Uses:833 835 837 | Used by:841 |
| Symbol 839 Graphic | Used by:840 841 | |
| Symbol 840 MovieClip | Uses:833 835 839 | Used by:841 |
| Symbol 841 Button | Uses:833 835 836 343 838 840 831 834 839 342 | Used by:842 1552 |
| Symbol 842 MovieClip {SelectLevelStateView} | Uses:2 31 37 8 466 770 771 774 778 783 397 791 793 801 810 821 830 841 | |
| Symbol 843 Graphic | Used by:844 | |
| Symbol 844 MovieClip | Uses:843 | Used by:869 913 922 |
| Symbol 845 Graphic | Used by:869 | |
| Symbol 846 Graphic | Used by:869 | |
| Symbol 847 MovieClip | Uses:188 | Used by:852 |
| Symbol 848 Graphic | Used by:849 | |
| Symbol 849 MovieClip | Uses:848 | Used by:852 |
| Symbol 850 Graphic | Used by:851 | |
| Symbol 851 MovieClip | Uses:850 | Used by:852 |
| Symbol 852 MovieClip | Uses:847 849 851 | Used by:869 913 922 |
| Symbol 853 Graphic | Used by:869 | |
| Symbol 854 MovieClip | Uses:19 | Used by:856 857 860 861 875 876 |
| Symbol 855 MovieClip | Uses:394 | Used by:856 857 |
| Symbol 856 MovieClip | Uses:854 855 | Used by:857 |
| Symbol 857 Button | Uses:854 855 856 19 394 | Used by:869 913 922 |
| Symbol 858 Graphic | Used by:859 861 950 952 | |
| Symbol 859 MovieClip | Uses:858 | Used by:860 861 |
| Symbol 860 MovieClip | Uses:854 859 | Used by:861 |
| Symbol 861 Button | Uses:854 859 860 19 858 | Used by:869 |
| Symbol 862 Text | Uses:15 | Used by:866 |
| Symbol 863 Text | Uses:15 | Used by:866 |
| Symbol 864 Graphic | Used by:866 | |
| Symbol 865 Graphic | Used by:866 | |
| Symbol 866 MovieClip | Uses:862 863 864 865 | Used by:869 |
| Symbol 867 Graphic | Used by:869 | |
| Symbol 868 Graphic | Used by:869 | |
| Symbol 869 MovieClip {LoseStateView} | Uses:844 845 846 852 853 857 861 866 867 868 | |
| Symbol 870 Graphic | Used by:913 | |
| Symbol 871 Graphic | Used by:913 | |
| Symbol 872 Graphic | Used by:913 | |
| Symbol 873 Graphic | Used by:874 876 | |
| Symbol 874 MovieClip | Uses:873 | Used by:875 876 |
| Symbol 875 MovieClip | Uses:854 874 | Used by:876 |
| Symbol 876 Button | Uses:854 874 875 19 873 | Used by:913 922 |
| Symbol 877 Text | Uses:15 | Used by:878 |
| Symbol 878 MovieClip | Uses:877 | Used by:880 |
| Symbol 879 Graphic | Used by:880 | |
| Symbol 880 MovieClip | Uses:878 879 | Used by:913 922 |
| Symbol 881 Text | Uses:15 | Used by:882 |
| Symbol 882 MovieClip | Uses:881 | Used by:913 |
| Symbol 883 Text | Uses:15 | Used by:884 |
| Symbol 884 MovieClip | Uses:883 | Used by:913 922 |
| Symbol 885 Text | Uses:15 | Used by:886 |
| Symbol 886 MovieClip | Uses:885 | Used by:913 922 |
| Symbol 887 EditableText | Uses:15 939 | Used by:888 |
| Symbol 888 MovieClip | Uses:887 | Used by:913 922 |
| Symbol 889 EditableText | Uses:15 939 | Used by:890 |
| Symbol 890 MovieClip | Uses:889 | Used by:913 922 |
| Symbol 891 EditableText | Uses:15 939 | Used by:892 |
| Symbol 892 MovieClip | Uses:891 | Used by:913 922 |
| Symbol 893 Graphic | Used by:913 | |
| Symbol 894 Graphic | Used by:913 | |
| Symbol 895 Graphic | Used by:896 | |
| Symbol 896 MovieClip | Uses:895 | Used by:900 |
| Symbol 897 Graphic | Used by:898 | |
| Symbol 898 MovieClip | Uses:897 | Used by:899 |
| Symbol 899 MovieClip | Uses:898 | Used by:900 |
| Symbol 900 MovieClip | Uses:896 899 | Used by:913 922 |
| Symbol 901 EditableText | Uses:15 939 | Used by:913 |
| Symbol 902 Graphic | Used by:903 912 | |
| Symbol 903 MovieClip | Uses:902 | Used by:904 |
| Symbol 904 MovieClip | Uses:903 | Used by:909 911 912 |
| Symbol 905 Graphic | Used by:906 912 | |
| Symbol 906 MovieClip | Uses:905 | Used by:909 911 912 |
| Symbol 907 Graphic | Used by:912 | |
| Symbol 908 Graphic | Used by:909 | |
| Symbol 909 MovieClip | Uses:904 906 908 | Used by:912 |
| Symbol 910 Graphic | Used by:911 912 | |
| Symbol 911 MovieClip | Uses:904 906 910 | Used by:912 |
| Symbol 912 Button | Uses:904 906 907 343 909 911 902 905 910 342 | Used by:913 922 |
| Symbol 913 MovieClip {GrifShootingWinStateView} | Uses:844 870 871 852 872 857 876 880 882 884 886 888 890 892 893 894 900 901 912 | |
| Symbol 914 Graphic | Used by:922 | |
| Symbol 915 Graphic | Used by:922 | |
| Symbol 916 Graphic | Used by:922 | |
| Symbol 917 Text | Uses:15 | Used by:918 |
| Symbol 918 MovieClip | Uses:917 | Used by:922 |
| Symbol 919 Graphic | Used by:922 | |
| Symbol 920 Graphic | Used by:922 | |
| Symbol 921 EditableText | Uses:15 939 | Used by:922 |
| Symbol 922 MovieClip {WinStateView} | Uses:844 914 915 852 880 916 857 876 918 884 886 888 890 892 919 920 921 900 912 | |
| Symbol 923 Graphic | Used by:924 928 | |
| Symbol 924 MovieClip | Uses:923 | Used by:927 |
| Symbol 925 Graphic | Used by:926 929 | |
| Symbol 926 MovieClip | Uses:925 | Used by:927 |
| Symbol 927 MovieClip | Uses:924 926 | Used by:932 |
| Symbol 928 MovieClip | Uses:923 | Used by:930 933 |
| Symbol 929 MovieClip | Uses:925 | Used by:930 |
| Symbol 930 MovieClip | Uses:928 929 | Used by:932 |
| Symbol 931 Graphic | Used by:932 933 | |
| Symbol 932 Button {SoundOff} | Uses:927 930 931 | |
| Symbol 933 Button {SoundOn} | Uses:928 931 | |
| Symbol 934 EditableText | Uses:15 939 | Used by:935 |
| Symbol 935 MovieClip | Uses:934 | Used by:953 1558 |
| Symbol 936 Graphic | Used by:937 938 | |
| Symbol 937 MovieClip | Uses:936 | Used by:938 |
| Symbol 938 Button | Uses:937 936 | Used by:953 |
| Symbol 939 Font | Used by:16 755 761 764 775 812 815 818 887 889 891 901 921 934 940 945 974 1553 | |
| Symbol 940 EditableText | Uses:939 | Used by:941 |
| Symbol 941 MovieClip | Uses:940 | Used by:953 |
| Symbol 942 Graphic | Used by:943 | |
| Symbol 943 MovieClip | Uses:942 | Used by:944 |
| Symbol 944 MovieClip | Uses:943 | Used by:953 1558 |
| Symbol 945 EditableText | Uses:939 | Used by:946 |
| Symbol 946 MovieClip | Uses:945 | Used by:953 1558 |
| Symbol 947 Graphic | Used by:948 | |
| Symbol 948 MovieClip | Uses:947 | Used by:949 |
| Symbol 949 MovieClip | Uses:948 | Used by:953 1558 |
| Symbol 950 MovieClip | Uses:858 | Used by:951 952 |
| Symbol 951 MovieClip | Uses:393 950 | Used by:952 |
| Symbol 952 Button | Uses:393 950 951 19 858 | Used by:953 1558 |
| Symbol 953 MovieClip {PlayStateView} | Uses:397 935 938 941 944 946 949 952 | |
| Symbol 954 Graphic | Used by:958 | |
| Symbol 955 Graphic | Used by:956 | |
| Symbol 956 MovieClip | Uses:955 | Used by:957 |
| Symbol 957 MovieClip | Uses:956 | Used by:958 |
| Symbol 958 MovieClip {TeleportBack} | Uses:954 957 | |
| Symbol 959 Graphic | Used by:961 | |
| Symbol 960 Graphic | Used by:961 | |
| Symbol 961 MovieClip | Uses:959 960 | Used by:964 967 970 973 |
| Symbol 962 Graphic | Used by:963 | |
| Symbol 963 MovieClip | Uses:962 | Used by:964 |
| Symbol 964 MovieClip {Soul4} | Uses:961 963 | |
| Symbol 965 Graphic | Used by:966 | |
| Symbol 966 MovieClip | Uses:965 | Used by:967 |
| Symbol 967 MovieClip {Soul2} | Uses:961 966 | |
| Symbol 968 Graphic | Used by:969 | |
| Symbol 969 MovieClip | Uses:968 | Used by:970 |
| Symbol 970 MovieClip {Soul1} | Uses:961 969 | |
| Symbol 971 Graphic | Used by:972 | |
| Symbol 972 MovieClip | Uses:971 | Used by:973 |
| Symbol 973 MovieClip {Soul3} | Uses:961 972 | |
| Symbol 974 EditableText | Uses:15 939 | Used by:975 |
| Symbol 975 MovieClip {States.PlayState.AddPointsEffect} | Uses:974 | |
| Symbol 976 Graphic | Used by:977 | |
| Symbol 977 MovieClip | Uses:976 | Used by:978 |
| Symbol 978 MovieClip {States.PlayState.OutOfArrowsEffect} | Uses:977 | |
| Symbol 979 Graphic | Used by:980 | |
| Symbol 980 MovieClip {States.PlayState.TurtorialFrame} | Uses:979 | |
| Symbol 981 Graphic | Used by:985 | |
| Symbol 982 Graphic | Used by:985 | |
| Symbol 983 Graphic | Used by:985 | |
| Symbol 984 Graphic | Used by:985 | |
| Symbol 985 MovieClip {RightLowerHand_4} | Uses:981 982 983 984 | |
| Symbol 986 Graphic | Used by:990 | |
| Symbol 987 Graphic | Used by:990 | |
| Symbol 988 Graphic | Used by:990 | |
| Symbol 989 Graphic | Used by:990 | |
| Symbol 990 MovieClip {LeftLowerHand_4} | Uses:986 987 988 989 | |
| Symbol 991 Graphic | Used by:995 | |
| Symbol 992 Graphic | Used by:995 | |
| Symbol 993 Graphic | Used by:995 | |
| Symbol 994 Graphic | Used by:995 | |
| Symbol 995 MovieClip {LeftUpperHand_4} | Uses:991 992 993 994 | |
| Symbol 996 Graphic | Used by:1000 | |
| Symbol 997 Graphic | Used by:1000 | |
| Symbol 998 Graphic | Used by:1000 | |
| Symbol 999 Graphic | Used by:1000 | |
| Symbol 1000 MovieClip {RightUpperHand_4} | Uses:996 997 998 999 | |
| Symbol 1001 Graphic | Used by:1003 | |
| Symbol 1002 Graphic | Used by:1003 | |
| Symbol 1003 MovieClip {Torso1_4} | Uses:1001 1002 | |
| Symbol 1004 Graphic | Used by:1008 | |
| Symbol 1005 Graphic | Used by:1008 | |
| Symbol 1006 Graphic | Used by:1008 | |
| Symbol 1007 Graphic | Used by:1008 | |
| Symbol 1008 MovieClip {Torso3_4} | Uses:1004 1005 1006 1007 | |
| Symbol 1009 Graphic | Used by:1013 | |
| Symbol 1010 Graphic | Used by:1013 | |
| Symbol 1011 Graphic | Used by:1013 | |
| Symbol 1012 Graphic | Used by:1013 | |
| Symbol 1013 MovieClip {Torso2_4} | Uses:1009 1010 1011 1012 | |
| Symbol 1014 Graphic | Used by:1018 | |
| Symbol 1015 Graphic | Used by:1018 | |
| Symbol 1016 Graphic | Used by:1018 | |
| Symbol 1017 Graphic | Used by:1018 | |
| Symbol 1018 MovieClip {LeftUpperLeg_4} | Uses:1014 1015 1016 1017 | |
| Symbol 1019 Graphic | Used by:1023 | |
| Symbol 1020 Graphic | Used by:1023 | |
| Symbol 1021 Graphic | Used by:1023 | |
| Symbol 1022 Graphic | Used by:1023 | |
| Symbol 1023 MovieClip {RightUpperLeg_4} | Uses:1019 1020 1021 1022 | |
| Symbol 1024 Graphic | Used by:1028 | |
| Symbol 1025 Graphic | Used by:1028 | |
| Symbol 1026 Graphic | Used by:1028 | |
| Symbol 1027 Graphic | Used by:1028 | |
| Symbol 1028 MovieClip {RightLowerLeg_4} | Uses:1024 1025 1026 1027 | |
| Symbol 1029 Graphic | Used by:1033 | |
| Symbol 1030 Graphic | Used by:1033 | |
| Symbol 1031 Graphic | Used by:1033 | |
| Symbol 1032 Graphic | Used by:1033 | |
| Symbol 1033 MovieClip {LeftLowerLeg_4} | Uses:1029 1030 1031 1032 | |
| Symbol 1034 Graphic | Used by:1038 | |
| Symbol 1035 Graphic | Used by:1038 | |
| Symbol 1036 Graphic | Used by:1038 | |
| Symbol 1037 Graphic | Used by:1038 | |
| Symbol 1038 MovieClip {RightUpperHand_2} | Uses:1034 1035 1036 1037 | |
| Symbol 1039 Graphic | Used by:1043 | |
| Symbol 1040 Graphic | Used by:1043 | |
| Symbol 1041 Graphic | Used by:1043 | |
| Symbol 1042 Graphic | Used by:1043 | |
| Symbol 1043 MovieClip {LeftLowerHand_2} | Uses:1039 1040 1041 1042 | |
| Symbol 1044 Graphic | Used by:1048 | |
| Symbol 1045 Graphic | Used by:1048 | |
| Symbol 1046 Graphic | Used by:1048 | |
| Symbol 1047 Graphic | Used by:1048 | |
| Symbol 1048 MovieClip {LeftUpperHand_2} | Uses:1044 1045 1046 1047 | |
| Symbol 1049 Graphic | Used by:1051 | |
| Symbol 1050 Graphic | Used by:1051 | |
| Symbol 1051 MovieClip {Torso1_2} | Uses:1049 1050 | |
| Symbol 1052 Graphic | Used by:1056 | |
| Symbol 1053 Graphic | Used by:1056 | |
| Symbol 1054 Graphic | Used by:1056 | |
| Symbol 1055 Graphic | Used by:1056 | |
| Symbol 1056 MovieClip {Torso2_2} | Uses:1052 1053 1054 1055 | |
| Symbol 1057 Graphic | Used by:1061 | |
| Symbol 1058 Graphic | Used by:1061 | |
| Symbol 1059 Graphic | Used by:1061 | |
| Symbol 1060 Graphic | Used by:1061 | |
| Symbol 1061 MovieClip {Torso3_2} | Uses:1057 1058 1059 1060 | |
| Symbol 1062 Graphic | Used by:1066 | |
| Symbol 1063 Graphic | Used by:1066 | |
| Symbol 1064 Graphic | Used by:1066 | |
| Symbol 1065 Graphic | Used by:1066 | |
| Symbol 1066 MovieClip {LeftUpperLeg_2} | Uses:1062 1063 1064 1065 | |
| Symbol 1067 Graphic | Used by:1071 | |
| Symbol 1068 Graphic | Used by:1071 | |
| Symbol 1069 Graphic | Used by:1071 | |
| Symbol 1070 Graphic | Used by:1071 | |
| Symbol 1071 MovieClip {RightLowerLeg_2} | Uses:1067 1068 1069 1070 | |
| Symbol 1072 Graphic | Used by:1076 | |
| Symbol 1073 Graphic | Used by:1076 | |
| Symbol 1074 Graphic | Used by:1076 | |
| Symbol 1075 Graphic | Used by:1076 | |
| Symbol 1076 MovieClip {RightUpperLeg_2} | Uses:1072 1073 1074 1075 | |
| Symbol 1077 Graphic | Used by:1081 | |
| Symbol 1078 Graphic | Used by:1081 | |
| Symbol 1079 Graphic | Used by:1081 | |
| Symbol 1080 Graphic | Used by:1081 | |
| Symbol 1081 MovieClip {LeftLowerLeg_2} | Uses:1077 1078 1079 1080 | |
| Symbol 1082 Graphic | Used by:1086 | |
| Symbol 1083 Graphic | Used by:1086 | |
| Symbol 1084 Graphic | Used by:1086 | |
| Symbol 1085 Graphic | Used by:1086 | |
| Symbol 1086 MovieClip {RightLowerHand_2} | Uses:1082 1083 1084 1085 | |
| Symbol 1087 Graphic | Used by:1091 | |
| Symbol 1088 Graphic | Used by:1091 | |
| Symbol 1089 Graphic | Used by:1091 | |
| Symbol 1090 Graphic | Used by:1091 | |
| Symbol 1091 MovieClip {LeftUpperHand_1} | Uses:1087 1088 1089 1090 | |
| Symbol 1092 Graphic | Used by:1096 | |
| Symbol 1093 Graphic | Used by:1096 | |
| Symbol 1094 Graphic | Used by:1096 | |
| Symbol 1095 Graphic | Used by:1096 | |
| Symbol 1096 MovieClip {LeftLowerHand_1} | Uses:1092 1093 1094 1095 | |
| Symbol 1097 Graphic | Used by:1101 | |
| Symbol 1098 Graphic | Used by:1101 | |
| Symbol 1099 Graphic | Used by:1101 | |
| Symbol 1100 Graphic | Used by:1101 | |
| Symbol 1101 MovieClip {RightUpperHand_1} | Uses:1097 1098 1099 1100 | |
| Symbol 1102 Graphic | Used by:1106 | |
| Symbol 1103 Graphic | Used by:1106 | |
| Symbol 1104 Graphic | Used by:1106 | |
| Symbol 1105 Graphic | Used by:1106 | |
| Symbol 1106 MovieClip {Torso2_1} | Uses:1102 1103 1104 1105 | |
| Symbol 1107 Graphic | Used by:1109 | |
| Symbol 1108 Graphic | Used by:1109 | |
| Symbol 1109 MovieClip {Torso1_1} | Uses:1107 1108 | |
| Symbol 1110 Graphic | Used by:1114 | |
| Symbol 1111 Graphic | Used by:1114 | |
| Symbol 1112 Graphic | Used by:1114 | |
| Symbol 1113 Graphic | Used by:1114 | |
| Symbol 1114 MovieClip {Torso3_1} | Uses:1110 1111 1112 1113 | |
| Symbol 1115 Graphic | Used by:1119 | |
| Symbol 1116 Graphic | Used by:1119 | |
| Symbol 1117 Graphic | Used by:1119 | |
| Symbol 1118 Graphic | Used by:1119 | |
| Symbol 1119 MovieClip {LeftUpperLeg_1} | Uses:1115 1116 1117 1118 | |
| Symbol 1120 Graphic | Used by:1124 | |
| Symbol 1121 Graphic | Used by:1124 | |
| Symbol 1122 Graphic | Used by:1124 | |
| Symbol 1123 Graphic | Used by:1124 | |
| Symbol 1124 MovieClip {RightLowerLeg_1} | Uses:1120 1121 1122 1123 | |
| Symbol 1125 Graphic | Used by:1129 | |
| Symbol 1126 Graphic | Used by:1129 | |
| Symbol 1127 Graphic | Used by:1129 | |
| Symbol 1128 Graphic | Used by:1129 | |
| Symbol 1129 MovieClip {RightUpperLeg_1} | Uses:1125 1126 1127 1128 | |
| Symbol 1130 Graphic | Used by:1134 | |
| Symbol 1131 Graphic | Used by:1134 | |
| Symbol 1132 Graphic | Used by:1134 | |
| Symbol 1133 Graphic | Used by:1134 | |
| Symbol 1134 MovieClip {LeftLowerLeg_1} | Uses:1130 1131 1132 1133 | |
| Symbol 1135 Graphic | Used by:1139 | |
| Symbol 1136 Graphic | Used by:1139 | |
| Symbol 1137 Graphic | Used by:1139 | |
| Symbol 1138 Graphic | Used by:1139 | |
| Symbol 1139 MovieClip {RightLowerHand_1} | Uses:1135 1136 1137 1138 | |
| Symbol 1140 MovieClip | Uses:672 | Used by:1143 1144 |
| Symbol 1141 Graphic | Used by:1142 1144 | |
| Symbol 1142 MovieClip | Uses:1141 | Used by:1143 1144 |
| Symbol 1143 MovieClip | Uses:1140 1142 | Used by:1144 |
| Symbol 1144 Button | Uses:1140 1142 1143 672 1141 | Used by:1145 |
| Symbol 1145 MovieClip {GameCompleteStateView} | Uses:2 8 28 31 34 37 113 40 5 43 778 783 397 1144 140 | |
| Symbol 1146 Graphic | Used by:1147 | |
| Symbol 1147 MovieClip {Sight} | Uses:1146 | |
| Symbol 1148 Graphic | Used by:1161 | |
| Symbol 1149 Graphic | Used by:1150 | |
| Symbol 1150 MovieClip | Uses:1149 | Used by:1161 |
| Symbol 1151 Graphic | Used by:1161 | |
| Symbol 1152 MovieClip {black_square} | Uses:419 | Used by:1161 1581 |
| Symbol 1153 ShapeTweening | Used by:1161 | |
| Symbol 1154 ShapeTweening | Used by:1161 | |
| Symbol 1155 ShapeTweening | Used by:1161 | |
| Symbol 1156 Graphic | Used by:1161 | |
| Symbol 1157 Graphic | Used by:1161 | |
| Symbol 1158 Graphic | Used by:1161 | |
| Symbol 1159 Graphic | Used by:1161 | |
| Symbol 1160 Graphic | Used by:1161 | |
| Symbol 1161 MovieClip {BowClip} | Uses:1148 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 | |
| Symbol 1162 Graphic | Used by:1165 | |
| Symbol 1163 Graphic | Used by:1165 | |
| Symbol 1164 Graphic | Used by:1165 | |
| Symbol 1165 MovieClip {HealthBar} | Uses:1162 1163 1164 | |
| Symbol 1166 Graphic | Used by:1167 | |
| Symbol 1167 MovieClip {States.PlayState.Arrow} | Uses:1166 | |
| Symbol 1168 Graphic | Used by:1172 | |
| Symbol 1169 Graphic | Used by:1170 | |
| Symbol 1170 MovieClip {AsyncClip} | Uses:1169 | Used by:1172 |
| Symbol 1171 Graphic | Used by:1172 | |
| Symbol 1172 MovieClip {Back3} | Uses:1168 1170 1171 | Used by:1241 1421 1458 1505 1507 1512 1514 1565 |
| Symbol 1173 Graphic | Used by:1174 | |
| Symbol 1174 MovieClip {BowPoint} | Uses:1173 | Used by:1241 1263 1298 1324 1380 1398 1421 1432 1435 1436 1439 1442 1444 1453 1455 1456 1457 1458 1462 1464 1471 1496 1498 1499 1500 1501 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1517 1520 1521 1522 1524 1529 1532 1533 1538 1546 1547 1548 1549 1564 1565 |
| Symbol 1175 Graphic | Used by:1186 | |
| Symbol 1176 Graphic | Used by:1181 | |
| Symbol 1177 Graphic | Used by:1178 | |
| Symbol 1178 MovieClip | Uses:1177 | Used by:1181 1185 1255 |
| Symbol 1179 Graphic | Used by:1181 | |
| Symbol 1180 Graphic | Used by:1181 | |
| Symbol 1181 MovieClip | Uses:1176 1178 1179 1180 | Used by:1186 |
| Symbol 1182 Graphic | Used by:1185 | |
| Symbol 1183 Graphic | Used by:1185 | |
| Symbol 1184 Graphic | Used by:1185 | |
| Symbol 1185 MovieClip | Uses:1182 1178 1183 1184 | Used by:1186 |
| Symbol 1186 MovieClip {tree_8} | Uses:1175 1181 1185 | Used by:1241 1506 1514 1520 |
| Symbol 1187 Graphic | Used by:1188 | |
| Symbol 1188 MovieClip | Uses:1187 | Used by:1195 |
| Symbol 1189 Graphic | Used by:1194 | |
| Symbol 1190 Graphic | Used by:1191 | |
| Symbol 1191 MovieClip | Uses:1190 | Used by:1194 |
| Symbol 1192 Graphic | Used by:1194 | |
| Symbol 1193 Graphic | Used by:1194 | |
| Symbol 1194 MovieClip | Uses:1189 1191 1192 1193 | Used by:1195 |
| Symbol 1195 MovieClip {tree_1} | Uses:1188 1194 | Used by:1241 1504 1506 1512 1529 |
| Symbol 1196 Graphic | Used by:1203 | |
| Symbol 1197 Graphic | Used by:1203 | |
| Symbol 1198 Graphic | Used by:1199 1203 | |
| Symbol 1199 MovieClip | Uses:1198 | Used by:1203 |
| Symbol 1200 Graphic | Used by:1203 | |
| Symbol 1201 Graphic | Used by:1203 | |
| Symbol 1202 Graphic | Used by:1203 | |
| Symbol 1203 MovieClip {flower_4} | Uses:1196 1197 1199 1200 1201 1202 1198 | Used by:1241 1453 1455 1456 1457 1511 1522 1564 |
| Symbol 1204 Graphic | Used by:1205 | |
| Symbol 1205 MovieClip {Stone0} | Uses:1204 | Used by:1241 1398 1444 1454 1462 1471 1497 1498 1499 1501 1502 1503 1505 1507 1513 1514 1517 1520 1521 1522 1523 1538 1546 1565 |
| Symbol 1206 Graphic | Used by:1207 | |
| Symbol 1207 MovieClip {Stone1} | Uses:1206 | Used by:1241 1398 1454 1462 1471 1497 1498 1499 1501 1502 1503 1505 1506 1507 1508 1513 1514 1517 1520 1521 1522 1523 1538 1546 1548 1565 |
| Symbol 1208 Graphic | Used by:1209 | |
| Symbol 1209 MovieClip {Stone2} | Uses:1208 | Used by:1241 1398 1454 1462 1497 1499 1501 1502 1503 1505 1507 1508 1513 1514 1520 1521 1522 1523 1532 1538 1546 1565 |
| Symbol 1210 Graphic | Used by:1212 | |
| Symbol 1211 Graphic | Used by:1212 | |
| Symbol 1212 MovieClip | Uses:1210 1211 | Used by:1213 |
| Symbol 1213 MovieClip | Uses:1212 | Used by:1231 |
| Symbol 1214 Graphic | Used by:1215 | |
| Symbol 1215 MovieClip | Uses:1214 | Used by:1216 |
| Symbol 1216 MovieClip | Uses:1215 | Used by:1231 |
| Symbol 1217 Graphic | Used by:1218 | |
| Symbol 1218 MovieClip | Uses:1217 | Used by:1230 |
| Symbol 1219 Graphic | Used by:1220 | |
| Symbol 1220 MovieClip | Uses:1219 | Used by:1230 |
| Symbol 1221 Graphic | Used by:1230 | |
| Symbol 1222 Graphic | Used by:1230 | |
| Symbol 1223 Graphic | Used by:1230 | |
| Symbol 1224 Graphic | Used by:1230 | |
| Symbol 1225 Graphic | Used by:1230 | |
| Symbol 1226 Graphic | Used by:1230 | |
| Symbol 1227 Graphic | Used by:1230 | |
| Symbol 1228 Graphic | Used by:1230 | |
| Symbol 1229 Graphic | Used by:1230 | |
| Symbol 1230 MovieClip | Uses:1218 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 | Used by:1231 |
| Symbol 1231 MovieClip {States.PlayState.Sun} | Uses:1213 1216 1230 | Used by:1241 1263 1298 1380 1398 1421 1458 1471 1496 1498 1500 1501 1504 1505 1506 1507 1508 1510 1511 1513 1514 1517 1520 1522 1524 1529 1532 1538 1547 1564 1565 |
| Symbol 1232 Graphic | Used by:1233 1271 1277 1281 1307 | |
| Symbol 1233 MovieClip | Uses:1232 | Used by:1238 1391 1438 |
| Symbol 1234 Graphic | Used by:1235 | |
| Symbol 1235 MovieClip | Uses:1234 | Used by:1238 1391 1438 |
| Symbol 1236 Font | Used by:1237 1243 1390 1437 1540 | |
| Symbol 1237 Text | Uses:1236 | Used by:1238 |
| Symbol 1238 MovieClip {AmmoGhost3} | Uses:1233 1235 1237 | Used by:1241 1439 1444 1533 |
| Symbol 1239 Graphic | Used by:1240 | |
| Symbol 1240 MovieClip {flower_0} | Uses:1239 | Used by:1241 1263 1453 1455 1456 1457 1471 1496 1508 1538 |
| Symbol 1241 MovieClip {Level39} | Uses:2 98 1172 1174 100 108 479 1186 1195 801 1203 112 1205 1207 1209 1231 110 1238 1240 43 466 40 37 507 31 | |
| Symbol 1242 Font | Used by:1243 1539 1540 | |
| Symbol 1243 EditableText | Uses:1236 1242 | Used by:1244 |
| Symbol 1244 MovieClip {AddArrowClip} | Uses:1243 | |
| Symbol 1245 Graphic | Used by:1246 | |
| Symbol 1246 MovieClip {InvertedGibbetObliquely} | Uses:1245 | Used by:1263 1298 1380 1398 1421 1442 1456 1457 1462 1464 1496 1500 1504 1505 1511 1512 1513 1524 1529 1532 1538 1564 |
| Symbol 1247 Font | Used by:1248 1257 1259 1296 1433 1440 1469 1494 1515 1525 1527 1530 1534 1536 1542 1562 | |
| Symbol 1248 Text | Uses:1247 | Used by:1249 |
| Symbol 1249 MovieClip {ToPullBowHint} | Uses:1248 | Used by:1263 |
| Symbol 1250 Graphic | Used by:1251 | |
| Symbol 1251 MovieClip | Uses:1250 | Used by:1256 |
| Symbol 1252 Graphic | Used by:1255 | |
| Symbol 1253 Graphic | Used by:1255 | |
| Symbol 1254 Graphic | Used by:1255 | |
| Symbol 1255 MovieClip | Uses:1252 1178 1253 1254 | Used by:1256 |
| Symbol 1256 MovieClip {tree_2} | Uses:1251 1255 | Used by:1263 1421 1510 1511 1520 1532 |
| Symbol 1257 Text | Uses:1247 | Used by:1258 |
| Symbol 1258 MovieClip {TryToAimHint} | Uses:1257 | Used by:1263 |
| Symbol 1259 Text | Uses:1247 | Used by:1260 |
| Symbol 1260 MovieClip {YouWillGetAStar} | Uses:1259 | Used by:1263 |
| Symbol 1261 Graphic | Used by:1262 | |
| Symbol 1262 MovieClip {HintPoint} | Uses:1261 | Used by:1263 1298 1435 1442 1471 1496 1517 1529 1532 1538 1564 |
| Symbol 1263 MovieClip {Level00} | Uses:2 1246 5 1249 507 770 1256 801 31 1258 43 1231 8 1240 793 1260 100 108 479 1174 1262 112 110 | |
| Symbol 1264 Graphic | Used by:1265 | |
| Symbol 1265 MovieClip | Uses:1264 | Used by:1270 |
| Symbol 1266 Graphic | Used by:1269 | |
| Symbol 1267 Graphic | Used by:1269 | |
| Symbol 1268 Graphic | Used by:1269 | |
| Symbol 1269 MovieClip | Uses:1266 806 1267 1268 | Used by:1270 |
| Symbol 1270 MovieClip {tree_5} | Uses:1265 1269 | Used by:1298 1511 1529 |
| Symbol 1271 MovieClip | Uses:1232 | Used by:1272 |
| Symbol 1272 MovieClip | Uses:1271 | Used by:1276 |
| Symbol 1273 Graphic | Used by:1274 | |
| Symbol 1274 MovieClip | Uses:1273 | Used by:1275 |
| Symbol 1275 MovieClip | Uses:1274 | Used by:1276 |
| Symbol 1276 MovieClip {ArrowGhost3} | Uses:1272 1275 | Used by:1298 1462 1464 1506 1512 |
| Symbol 1277 MovieClip | Uses:1232 | Used by:1280 1519 |
| Symbol 1278 Graphic | Used by:1279 | |
| Symbol 1279 MovieClip | Uses:1278 | Used by:1280 1518 |
| Symbol 1280 MovieClip {ArrowGhost1} | Uses:1277 1279 | Used by:1298 1380 1439 1464 1498 1500 1503 1504 1508 1509 1510 1513 1532 1565 |
| Symbol 1281 MovieClip | Uses:1232 | Used by:1284 1287 1396 |
| Symbol 1282 Graphic | Used by:1283 | |
| Symbol 1283 MovieClip | Uses:1282 | Used by:1284 |
| Symbol 1284 MovieClip {PointsGhost500} | Uses:1281 1283 | Used by:1298 1380 1398 1436 1496 1499 1500 1501 1505 1509 1510 1513 1532 1538 1564 |
| Symbol 1285 Graphic | Used by:1286 | |
| Symbol 1286 MovieClip | Uses:1285 | Used by:1287 |
| Symbol 1287 MovieClip {PointsGhost1000} | Uses:1281 1286 | Used by:1298 1435 1436 1439 1462 1500 1503 1507 1510 1514 1517 1565 |
| Symbol 1288 Graphic | Used by:1289 | |
| Symbol 1289 MovieClip | Uses:1288 | Used by:1295 |
| Symbol 1290 Graphic | Used by:1295 | |
| Symbol 1291 Graphic | Used by:1295 | |
| Symbol 1292 Graphic | Used by:1295 | |
| Symbol 1293 Graphic | Used by:1295 | |
| Symbol 1294 Graphic | Used by:1295 | |
| Symbol 1295 MovieClip {flower_2} | Uses:1289 1290 1291 1292 1293 1294 | Used by:1298 1520 1529 |
| Symbol 1296 Text | Uses:1247 | Used by:1297 |
| Symbol 1297 MovieClip {ThisIsHedhehogHint} | Uses:1296 | Used by:1298 |
| Symbol 1298 MovieClip {Level14} | Uses:2 770 810 100 1270 1246 801 479 1174 1276 98 108 8 28 31 1231 5 507 1280 112 110 1284 1287 1295 793 1297 1262 | |
| Symbol 1299 Graphic | Used by:1300 | |
| Symbol 1300 MovieClip {OvercastSky} | Uses:1299 | Used by:1324 1444 1462 1464 1509 1521 1533 |
| Symbol 1301 Graphic | Used by:1302 | |
| Symbol 1302 MovieClip | Uses:1301 | Used by:1303 |
| Symbol 1303 MovieClip {tree_9} | Uses:1302 | Used by:1324 1444 1464 1521 |
| Symbol 1304 Graphic | Used by:1305 | |
| Symbol 1305 MovieClip | Uses:1304 | Used by:1306 |
| Symbol 1306 MovieClip {tree_10} | Uses:1305 | Used by:1324 1462 1509 1533 |
| Symbol 1307 MovieClip | Uses:1232 | Used by:1311 |
| Symbol 1308 Graphic | Used by:1309 | |
| Symbol 1309 MovieClip | Uses:1308 | Used by:1310 |
| Symbol 1310 MovieClip | Uses:1309 | Used by:1311 |
| Symbol 1311 MovieClip {States.PlayState.TeleportGhost} | Uses:1307 1310 | Used by:1324 1432 1462 1496 1499 1503 1505 1508 1509 1512 1521 |
| Symbol 1312 Graphic | Used by:1320 | |
| Symbol 1313 Graphic | Used by:1314 | |
| Symbol 1314 MovieClip | Uses:1313 | Used by:1320 |
| Symbol 1315 Graphic | Used by:1316 | |
| Symbol 1316 MovieClip | Uses:1315 | Used by:1320 |
| Symbol 1317 Graphic | Used by:1318 | |
| Symbol 1318 MovieClip | Uses:1317 | Used by:1320 |
| Symbol 1319 Graphic | Used by:1320 | |
| Symbol 1320 MovieClip {BgStones} | Uses:1312 1314 1316 1318 1319 | Used by:1324 1444 1464 1521 1533 |
| Symbol 1321 Graphic | Used by:1322 | |
| Symbol 1322 MovieClip | Uses:1321 | Used by:1323 |
| Symbol 1323 MovieClip {flower_6} | Uses:1322 | Used by:1324 1444 1462 1464 1509 |
| Symbol 1324 MovieClip {Level32} | Uses:1300 8 462 1303 1306 100 801 479 1174 34 98 108 43 1311 112 110 1320 1323 31 28 | |
| Symbol 1325 Graphic | Used by:1326 | |
| Symbol 1326 MovieClip {BonusGameBack} | Uses:1325 | Used by:1380 1498 1499 1501 1524 1546 1547 1548 1549 |
| Symbol 1327 Graphic | Used by:1328 | |
| Symbol 1328 MovieClip | Uses:1327 | Used by:1329 |
| Symbol 1329 MovieClip {Box} | Uses:1328 | Used by:1380 1398 1471 1498 1508 1511 1533 |
| Symbol 1330 Graphic | Used by:1331 | |
| Symbol 1331 MovieClip | Uses:1330 | Used by:1332 |
| Symbol 1332 MovieClip {Brick} | Uses:1331 | Used by:1380 1435 1436 1439 1501 1512 |
| Symbol 1333 Graphic | Used by:1334 | |
| Symbol 1334 MovieClip | Uses:1333 | Used by:1379 |
| Symbol 1335 Graphic | Used by:1379 | |
| Symbol 1336 Graphic | Used by:1337 | |
| Symbol 1337 MovieClip | Uses:1336 | Used by:1379 |
| Symbol 1338 Bitmap | Used by:1339 1341 1343 1345 1347 1349 1351 1353 1355 1357 | |
| Symbol 1339 Graphic | Uses:1338 | Used by:1340 |
| Symbol 1340 MovieClip | Uses:1339 | Used by:1379 |
| Symbol 1341 Graphic | Uses:1338 | Used by:1342 |
| Symbol 1342 MovieClip | Uses:1341 | Used by:1379 |
| Symbol 1343 Graphic | Uses:1338 | Used by:1344 |
| Symbol 1344 MovieClip | Uses:1343 | Used by:1379 |
| Symbol 1345 Graphic | Uses:1338 | Used by:1346 |
| Symbol 1346 MovieClip | Uses:1345 | Used by:1379 |
| Symbol 1347 Graphic | Uses:1338 | Used by:1348 |
| Symbol 1348 MovieClip | Uses:1347 | Used by:1379 |
| Symbol 1349 Graphic | Uses:1338 | Used by:1350 |
| Symbol 1350 MovieClip | Uses:1349 | Used by:1379 |
| Symbol 1351 Graphic | Uses:1338 | Used by:1352 |
| Symbol 1352 MovieClip | Uses:1351 | Used by:1379 |
| Symbol 1353 Graphic | Uses:1338 | Used by:1354 |
| Symbol 1354 MovieClip | Uses:1353 | Used by:1379 |
| Symbol 1355 Graphic | Uses:1338 | Used by:1356 |
| Symbol 1356 MovieClip | Uses:1355 | Used by:1379 |
| Symbol 1357 Graphic | Uses:1338 | Used by:1358 |
| Symbol 1358 MovieClip | Uses:1357 | Used by:1379 |
| Symbol 1359 Graphic | Used by:1360 | |
| Symbol 1360 MovieClip | Uses:1359 | Used by:1379 |
| Symbol 1361 Graphic | Used by:1362 | |
| Symbol 1362 MovieClip | Uses:1361 | Used by:1379 |
| Symbol 1363 Graphic | Used by:1364 | |
| Symbol 1364 MovieClip | Uses:1363 | Used by:1379 |
| Symbol 1365 Graphic | Used by:1366 | |
| Symbol 1366 MovieClip | Uses:1365 | Used by:1379 |
| Symbol 1367 Graphic | Used by:1368 | |
| Symbol 1368 MovieClip | Uses:1367 | Used by:1379 |
| Symbol 1369 Graphic | Used by:1370 | |
| Symbol 1370 MovieClip | Uses:1369 | Used by:1379 |
| Symbol 1371 Graphic | Used by:1372 | |
| Symbol 1372 MovieClip | Uses:1371 | Used by:1379 |
| Symbol 1373 Graphic | Used by:1374 | |
| Symbol 1374 MovieClip | Uses:1373 | Used by:1379 |
| Symbol 1375 Graphic | Used by:1376 | |
| Symbol 1376 MovieClip | Uses:1375 | Used by:1379 |
| Symbol 1377 Graphic | Used by:1378 | |
| Symbol 1378 MovieClip | Uses:1377 | Used by:1379 |
| Symbol 1379 MovieClip {States.PlayState.TNTBarrel} | Uses:1334 1335 1337 1340 1342 1344 1346 1348 1350 1352 1354 1356 1358 1360 1362 1364 1366 1368 1370 1372 1374 1376 1378 | Used by:1380 1398 1432 1471 1498 1508 1522 |
| Symbol 1380 MovieClip {Level33} | Uses:2 1326 1246 100 479 1174 1329 106 108 110 112 1332 1379 1280 98 1231 1284 28 40 466 31 507 34 | |
| Symbol 1381 Graphic | Used by:1382 | |
| Symbol 1382 MovieClip | Uses:1381 | Used by:1389 |
| Symbol 1383 Graphic | Used by:1388 | |
| Symbol 1384 Graphic | Used by:1385 | |
| Symbol 1385 MovieClip | Uses:1384 | Used by:1388 |
| Symbol 1386 Graphic | Used by:1388 | |
| Symbol 1387 Graphic | Used by:1388 | |
| Symbol 1388 MovieClip | Uses:1383 1385 1386 1387 | Used by:1389 |
| Symbol 1389 MovieClip {tree_3} | Uses:1382 1388 | Used by:1398 1471 1508 1532 |
| Symbol 1390 Text | Uses:1236 | Used by:1391 |
| Symbol 1391 MovieClip {AmmoGhost10} | Uses:1233 1235 1390 | Used by:1398 1435 1442 1524 1529 |
| Symbol 1392 Graphic | Used by:1393 | |
| Symbol 1393 MovieClip {Stone3} | Uses:1392 | Used by:1398 1454 1462 1463 1497 1498 1499 1501 1502 1503 1505 1506 1507 1510 1514 1517 1521 1523 1538 1546 1565 |
| Symbol 1394 Graphic | Used by:1395 | |
| Symbol 1395 MovieClip | Uses:1394 | Used by:1396 |
| Symbol 1396 MovieClip {PointsGhost300} | Uses:1281 1395 | Used by:1398 1436 1500 1510 1512 1522 1533 |
| Symbol 1397 MovieClip {InvertedVultureHere} | Uses:744 | Used by:1398 1462 1496 1499 1510 |
| Symbol 1398 MovieClip {Level36} | Uses:2 770 1389 801 1174 40 1246 100 108 112 110 466 28 1231 8 5 507 31 479 1391 1379 1329 1205 1207 1393 1209 1396 1284 793 1397 | |
| Symbol 1399 Graphic | Used by:1403 | |
| Symbol 1400 Graphic | Used by:1401 | |
| Symbol 1401 MovieClip | Uses:1400 | Used by:1403 |
| Symbol 1402 Graphic | Used by:1403 | |
| Symbol 1403 MovieClip | Uses:1399 1401 1402 | Used by:1408 |
| Symbol 1404 Graphic | Used by:1405 | |
| Symbol 1405 MovieClip | Uses:1404 | Used by:1408 |
| Symbol 1406 Graphic | Used by:1407 | |
| Symbol 1407 MovieClip | Uses:1406 | Used by:1408 |
| Symbol 1408 MovieClip {Mill} | Uses:1403 1405 1407 | Used by:1421 1458 1565 |
| Symbol 1409 Graphic | Used by:1412 | |
| Symbol 1410 Graphic | Used by:1411 | |
| Symbol 1411 MovieClip | Uses:1410 | Used by:1412 |
| Symbol 1412 MovieClip {MillFan} | Uses:1409 1411 | Used by:1421 1458 1565 |
| Symbol 1413 Graphic | Used by:1418 | |
| Symbol 1414 Graphic | Used by:1418 | |
| Symbol 1415 Graphic | Used by:1418 | |
| Symbol 1416 Graphic | Used by:1418 | |
| Symbol 1417 Graphic | Used by:1418 | |
| Symbol 1418 MovieClip {CowNormal} | Uses:1413 430 1414 1415 434 435 439 441 442 443 444 445 446 1416 1417 | Used by:1419 1567 |
| Symbol 1419 MovieClip {CowHere} | Uses:1418 | Used by:1420 1506 1524 1566 |
| Symbol 1420 MovieClip {InvertedCowHere} | Uses:1419 | Used by:1421 1507 1517 1524 |
| Symbol 1421 MovieClip {Level37} | Uses:2 1172 100 801 479 1174 1246 108 40 1408 1412 112 110 1231 793 1256 466 28 8 5 507 31 1420 | |
| Symbol 1422 Graphic | Used by:1423 | |
| Symbol 1423 MovieClip | Uses:1422 | Used by:1424 |
| Symbol 1424 MovieClip {BrickNoRight} | Uses:1423 | Used by:1431 1439 1512 |
| Symbol 1425 Graphic | Used by:1426 | |
| Symbol 1426 MovieClip | Uses:1425 | Used by:1427 |
| Symbol 1427 MovieClip {BrickNoRightNoLeft} | Uses:1426 | Used by:1431 1439 1512 |
| Symbol 1428 Graphic | Used by:1429 | |
| Symbol 1429 MovieClip | Uses:1428 | Used by:1430 |
| Symbol 1430 MovieClip {BrickNoLeft} | Uses:1429 | Used by:1431 1439 1512 |
| Symbol 1431 MovieClip {ComposedStone96} | Uses:1424 1427 1430 | Used by:1432 |
| Symbol 1432 MovieClip {Level48} | Uses:290 98 479 1174 43 5 37 40 1431 100 1379 1311 108 112 110 | |
| Symbol 1433 Text | Uses:1247 | Used by:1434 |
| Symbol 1434 MovieClip {NoArrowsHint} | Uses:1433 | Used by:1435 |
| Symbol 1435 MovieClip {Level52} | Uses:290 1174 43 5 37 40 479 1332 1391 1287 1262 1434 | |
| Symbol 1436 MovieClip {Level49} | Uses:290 479 1174 43 5 37 40 1332 1396 1284 1287 | |
| Symbol 1437 Text | Uses:1236 | Used by:1438 |
| Symbol 1438 MovieClip {AmmoGhost5} | Uses:1233 1235 1437 | Used by:1439 1504 1509 1524 1529 |
| Symbol 1439 MovieClip {Level50} | Uses:290 479 1174 1280 1424 1427 1430 1332 43 5 37 40 1238 1438 1287 | |
| Symbol 1440 Text | Uses:1247 | Used by:1441 |
| Symbol 1441 MovieClip {OnlyOneArrowHint} | Uses:1440 | Used by:1442 |
| Symbol 1442 MovieClip {Level51} | Uses:290 479 1174 98 100 108 1246 106 1391 1262 1441 466 37 8 31 40 112 110 | |
| Symbol 1443 MovieClip {VultureHere} | Uses:744 | Used by:1444 1499 1505 1509 1520 1521 |
| Symbol 1444 MovieClip {Level45} | Uses:1300 462 1303 1174 98 100 479 108 801 1238 1205 1443 1320 1323 466 40 37 8 31 110 112 | |
| Symbol 1445 Graphic | Used by:1446 | |
| Symbol 1446 MovieClip {GiantSky} | Uses:1445 | Used by:1453 1455 1456 1457 |
| Symbol 1447 Graphic | Used by:1448 | |
| Symbol 1448 MovieClip {LongBack} | Uses:1447 | Used by:1453 1455 1456 1457 |
| Symbol 1449 Graphic | Used by:1450 | |
| Symbol 1450 MovieClip {LeftEdgeMarker} | Uses:1449 | Used by:1453 1455 1456 1457 |
| Symbol 1451 Graphic | Used by:1452 | |
| Symbol 1452 MovieClip {RightEdgeMarker} | Uses:1451 | Used by:1453 1455 1456 1457 |
| Symbol 1453 MovieClip {Level11} | Uses:1446 1448 479 801 98 100 1174 793 1240 1203 108 112 110 106 1450 1452 | |
| Symbol 1454 MovieClip {ComposedStone2} | Uses:1205 1207 1209 1393 | Used by:1455 1500 |
| Symbol 1455 MovieClip {Level47} | Uses:1446 1448 479 100 801 1454 98 1174 793 1240 1203 108 112 110 1450 1452 | |
| Symbol 1456 MovieClip {Level35} | Uses:1446 1448 479 100 801 1246 1174 793 1240 1203 108 112 110 1450 1452 | |
| Symbol 1457 MovieClip {Level23} | Uses:1446 1246 1448 479 100 801 1174 793 1240 1203 108 112 110 1450 1452 | |
| Symbol 1458 MovieClip {Level18} | Uses:2 1172 1408 100 791 801 479 1174 98 108 106 1412 110 112 1231 793 43 31 507 5 8 | |
| Symbol 1459 Graphic | Used by:1460 | |
| Symbol 1460 MovieClip | Uses:1459 | Used by:1461 |
| Symbol 1461 MovieClip {flower_5} | Uses:1460 | Used by:1462 1509 1521 |
| Symbol 1462 MovieClip {Level38} | Uses:1300 98 479 462 1306 1174 1276 1205 1207 1209 1393 801 1246 100 106 108 112 1311 110 1287 1461 1323 43 31 507 5 34 1397 | |
| Symbol 1463 MovieClip {ComposedStone99} | Uses:1393 | Used by:1464 1509 |
| Symbol 1464 MovieClip {Level43} | Uses:1300 479 1246 100 462 1303 1174 108 1320 1323 801 1276 112 34 37 40 1280 110 1463 28 43 | |
| Symbol 1465 Graphic | Used by:1468 | |
| Symbol 1466 Graphic | Used by:1468 | |
| Symbol 1467 Graphic | Used by:1468 | |
| Symbol 1468 MovieClip {flower_1} | Uses:1465 1466 1467 | Used by:1471 |
| Symbol 1469 Text | Uses:1247 | Used by:1470 |
| Symbol 1470 MovieClip {ThisIsTNTHint} | Uses:1469 | Used by:1471 |
| Symbol 1471 MovieClip {Level12} | Uses:2 770 1389 1174 801 1329 98 100 108 479 1379 34 1205 1207 1231 110 793 1468 1240 112 466 40 37 8 1262 1470 | |
| Symbol 1472 Graphic | Used by:1473 | |
| Symbol 1473 MovieClip {Back1} | Uses:1472 | Used by:1496 1503 1504 1506 1511 1513 1520 1538 1564 |
| Symbol 1474 Graphic | Used by:1475 | |
| Symbol 1475 MovieClip | Uses:1474 | Used by:1486 |
| Symbol 1476 Graphic | Used by:1481 | |
| Symbol 1477 Graphic | Used by:1478 | |
| Symbol 1478 MovieClip | Uses:1477 | Used by:1481 1485 |
| Symbol 1479 Graphic | Used by:1481 | |
| Symbol 1480 Graphic | Used by:1481 | |
| Symbol 1481 MovieClip | Uses:1476 1478 1479 1480 | Used by:1486 |
| Symbol 1482 Graphic | Used by:1485 | |
| Symbol 1483 Graphic | Used by:1485 | |
| Symbol 1484 Graphic | Used by:1485 | |
| Symbol 1485 MovieClip | Uses:1482 1478 1483 1484 | Used by:1486 |
| Symbol 1486 MovieClip {tree_7} | Uses:1475 1481 1485 | Used by:1496 1504 1513 1522 |
| Symbol 1487 Graphic | Used by:1493 | |
| Symbol 1488 Graphic | Used by:1493 | |
| Symbol 1489 Graphic | Used by:1493 | |
| Symbol 1490 Graphic | Used by:1493 | |
| Symbol 1491 Graphic | Used by:1493 | |
| Symbol 1492 Graphic | Used by:1493 | |
| Symbol 1493 MovieClip {flower_3} | Uses:1487 1488 1489 1490 1491 1492 | Used by:1496 1532 1538 |
| Symbol 1494 Text | Uses:1247 | Used by:1495 |
| Symbol 1495 MovieClip {TeleportHint} | Uses:1494 | Used by:1496 |
| Symbol 1496 MovieClip {Level06} | Uses:2 1473 1486 801 1174 1246 100 479 106 108 98 1311 1262 112 1284 110 1493 1240 793 1231 1397 8 28 37 40 466 1495 | |
| Symbol 1497 MovieClip {ComposedStone1} | Uses:1207 1209 1393 1205 | Used by:1498 |
| Symbol 1498 MovieClip {Level15} | Uses:2 1326 1174 1379 479 34 1329 1207 98 100 1393 1205 108 1280 1497 1231 110 112 37 28 466 | |
| Symbol 1499 MovieClip {Level44} | Uses:2 1174 479 1205 1207 1209 1393 1326 1311 1284 1443 1397 43 31 8 28 466 | |
| Symbol 1500 MovieClip {Level09} | Uses:2 770 1454 1174 1246 100 479 108 112 110 801 1231 1280 1396 1284 1287 793 466 40 37 28 8 34 | |
| Symbol 1501 MovieClip {Level30} | Uses:2 1326 1174 479 1332 1205 1207 1209 1393 1284 1231 43 31 40 37 | |
| Symbol 1502 MovieClip {ComposedStone55} | Uses:1205 1207 1209 1393 | Used by:1503 |
| Symbol 1503 MovieClip {Level31} | Uses:2 1473 1502 801 479 1174 1311 1205 1207 1209 1393 1287 1280 793 | |
| Symbol 1504 MovieClip {Level13} | Uses:2 1246 1473 1486 1195 1174 100 108 479 112 110 801 1280 106 1231 793 28 40 31 43 466 1438 | |
| Symbol 1505 MovieClip {Level10} | Uses:2 1172 1246 1174 98 100 108 479 112 110 1207 801 1209 1393 1205 1311 1284 793 1231 37 34 507 31 466 1443 | |
| Symbol 1506 MovieClip {Level34} | Uses:2 1473 1174 1195 1186 801 479 1207 1393 1276 1419 793 40 8 31 43 1231 | |
| Symbol 1507 MovieClip {Level24} | Uses:2 1172 1174 1205 791 801 1207 479 1393 1209 1420 1287 1231 793 40 37 34 31 466 | |
| Symbol 1508 MovieClip {Level28} | Uses:2 770 1389 1329 1174 801 479 1379 1207 1209 1311 1280 793 1240 1231 8 28 37 507 31 | |
| Symbol 1509 MovieClip {Level27} | Uses:1300 462 1174 479 1306 801 1280 98 100 1463 108 1311 1438 1284 1323 1461 1443 466 40 8 5 31 43 112 110 | |
| Symbol 1510 MovieClip {Level46} | Uses:2 770 1174 479 801 1256 1280 1396 1284 1287 1393 1231 1397 793 37 28 8 34 | |
| Symbol 1511 MovieClip {Level26} | Uses:2 1473 1270 1174 479 1246 100 108 110 112 1256 801 1329 1203 1231 43 31 507 5 34 | |
| Symbol 1512 MovieClip {Level22} | Uses:2 1172 791 1174 479 1246 100 108 110 112 1332 1195 801 1311 106 1276 1430 1427 1424 1396 793 466 40 37 28 8 5 | |
| Symbol 1513 MovieClip {Level21} | Uses:2 1473 1486 1174 1209 801 479 1280 1246 100 108 1207 1205 1231 110 112 1284 793 43 31 507 5 8 | |
| Symbol 1514 MovieClip {Level42} | Uses:2 1231 1172 1205 1207 1209 1174 1186 801 100 479 507 1393 1287 110 112 793 28 8 34 31 | |
| Symbol 1515 Text | Uses:1247 | Used by:1516 |
| Symbol 1516 MovieClip {InvertControlHint} | Uses:1515 | Used by:1517 |
| Symbol 1517 MovieClip {Level04} | Uses:2 770 791 1205 1207 1393 1174 479 801 1231 100 108 1420 793 466 40 28 8 507 31 1287 112 110 1516 1262 | |
| Symbol 1518 MovieClip | Uses:1279 | Used by:1519 |
| Symbol 1519 MovieClip {ArrowGhost4} | Uses:1277 1518 | Used by:1520 1521 |
| Symbol 1520 MovieClip {Level19} | Uses:2 1473 479 98 100 108 112 1174 1519 106 110 1205 1186 1256 801 1207 1209 1231 793 1295 31 5 8 28 34 1443 | |
| Symbol 1521 MovieClip {Level25} | Uses:1300 462 1174 479 98 100 1205 1207 1209 1393 1303 801 1519 1311 108 110 112 1320 1443 43 31 34 28 37 466 1461 | |
| Symbol 1522 MovieClip {Level16} | Uses:2 1231 770 1205 1207 1209 1174 479 98 100 1486 801 108 110 112 1379 793 1203 466 37 28 8 5 1396 | |
| Symbol 1523 MovieClip {ComposedStone98} | Uses:1205 1207 1209 1393 | Used by:1524 |
| Symbol 1524 MovieClip {Level20} | Uses:2 1523 1326 1174 106 1246 100 479 108 1420 1419 1391 1438 110 112 1231 43 31 507 28 | |
| Symbol 1525 Text | Uses:1247 | Used by:1526 |
| Symbol 1526 MovieClip {AmmoHint} | Uses:1525 | Used by:1529 |
| Symbol 1527 Text | Uses:1247 | Used by:1528 |
| Symbol 1528 MovieClip {TheAmountOfArrows} | Uses:1527 | Used by:1529 |
| Symbol 1529 MovieClip {Level02} | Uses:2 770 1195 1270 1174 479 98 100 108 801 112 110 1438 1391 1246 106 1262 1526 793 1295 1231 466 40 28 8 34 1528 | |
| Symbol 1530 Text | Uses:1247 | Used by:1531 |
| Symbol 1531 MovieClip {ArrowGhostHint} | Uses:1530 | Used by:1532 |
| Symbol 1532 MovieClip {Level07} | Uses:2 770 1389 1246 1256 1174 479 100 108 801 112 110 1231 1280 1262 1209 1531 1284 1493 37 28 8 5 31 | |
| Symbol 1533 MovieClip {Level08} | Uses:1300 462 1329 1174 479 98 100 108 1306 801 112 110 37 28 8 34 466 1396 1320 1238 | |
| Symbol 1534 Text | Uses:1247 | Used by:1535 |
| Symbol 1535 MovieClip {ComboSave2Hint} | Uses:1534 | Used by:1538 |
| Symbol 1536 Text | Uses:1247 | Used by:1537 |
| Symbol 1537 MovieClip {ComboSave3Hint} | Uses:1536 | Used by:1538 |
| Symbol 1538 MovieClip {Level03} | Uses:2 1246 1473 1393 1174 479 98 100 108 1205 1207 1209 810 801 112 110 793 1240 1493 1231 37 28 8 34 466 1284 1262 1535 1537 | |
| Symbol 1539 Text | Uses:1242 | Used by:1541 |
| Symbol 1540 EditableText | Uses:1236 1242 | Used by:1541 |
| Symbol 1541 MovieClip {UrlLockedStateView} | Uses:419 1539 1540 | |
| Symbol 1542 Text | Uses:1247 | Used by:1543 |
| Symbol 1543 MovieClip {ThisIsSingleHedhehogHint} | Uses:1542 | |
| Symbol 1544 Graphic | Used by:1545 | |
| Symbol 1545 MovieClip {States.PlayState.Blood} | Uses:1544 | |
| Symbol 1546 MovieClip {Level41} | Uses:2 1326 1174 507 5 34 8 28 37 40 466 31 43 1205 1207 1209 1393 | |
| Symbol 1547 MovieClip {Level29} | Uses:2 1326 1174 507 5 34 8 28 37 40 466 31 43 1231 | |
| Symbol 1548 MovieClip {Level17} | Uses:2 1326 1174 507 5 34 8 28 37 40 466 1207 31 43 | |
| Symbol 1549 MovieClip {Level05} | Uses:2 1326 1174 43 31 507 5 34 8 28 37 40 466 | |
| Symbol 1550 MovieClip | Uses:772 399 | Used by:1551 |
| Symbol 1551 MovieClip | Uses:1550 | Used by:1552 |
| Symbol 1552 MovieClip {SelectSecretLevelStateView} | Uses:290 466 37 8 34 1551 778 783 397 820 830 31 841 115 119 | |
| Symbol 1553 EditableText | Uses:15 939 | Used by:1554 |
| Symbol 1554 MovieClip | Uses:1553 | Used by:1558 |
| Symbol 1555 Graphic | Used by:1556 | |
| Symbol 1556 MovieClip | Uses:1555 | Used by:1557 |
| Symbol 1557 MovieClip | Uses:1556 | Used by:1558 |
| Symbol 1558 MovieClip {GrifShootingStateView} | Uses:397 935 944 946 949 952 1554 1557 | |
| Symbol 1559 Graphic | Used by:1560 | |
| Symbol 1560 MovieClip | Uses:1559 | Used by:1561 |
| Symbol 1561 MovieClip {TimeIsOutEffect} | Uses:1560 | |
| Symbol 1562 Text | Uses:1247 | Used by:1563 |
| Symbol 1563 MovieClip {ThisIsBonusHint} | Uses:1562 | Used by:1564 |
| Symbol 1564 MovieClip {Level01} | Uses:2 1246 1473 791 98 100 108 479 112 110 801 1174 1284 1262 1231 43 507 5 28 40 466 793 1563 1203 | |
| Symbol 1565 MovieClip {Level40} | Uses:2 1408 1172 1207 1209 98 100 801 1174 479 1412 1393 1205 1280 108 110 112 1287 1231 793 43 5 8 37 | |
| Symbol 1566 MovieClip {InvertedCowMaket} | Uses:1419 479 | |
| Symbol 1567 MovieClip {CowMaket} | Uses:1418 479 | |
| Symbol 1568 Graphic | Used by:1569 1571 | |
| Symbol 1569 MovieClip | Uses:1568 | Used by:1571 |
| Symbol 1570 Graphic | Used by:1571 1574 | |
| Symbol 1571 Button | Uses:1569 1570 1568 | Used by:1575 |
| Symbol 1572 Graphic | Used by:1573 1574 | |
| Symbol 1573 MovieClip | Uses:1572 | Used by:1574 |
| Symbol 1574 Button | Uses:1573 1570 1572 | Used by:1575 |
| Symbol 1575 MovieClip {MoreGamesPanel} | Uses:1571 1574 | |
| Symbol 1576 Font | Used by:1577 1579 | |
| Symbol 1577 Text | Uses:1576 | Used by:1578 |
| Symbol 1578 MovieClip {ClickToContinue} | Uses:1577 | Used by:1581 |
| Symbol 1579 Text | Uses:1576 | Used by:1580 |
| Symbol 1580 MovieClip | Uses:1579 | Used by:1581 |
| Symbol 1581 MovieClip {GamePausedStateView} | Uses:1152 1580 1578 | |
| Symbol 1582 MovieClip {HideTipsPanel} | Uses:605 596 |
Instance Names
| "m_preloaderClip" | Frame 1 | Symbol 141 MovieClip {States.CurrentPreloaderState} |
| "hsloader" | Frame 1 | Symbol 145 MovieClip {Gibbets_II_fla.highscoreloader_54} |
| "m_text" | Symbol 17 MovieClip Frame 1 | Symbol 16 EditableText |
| "m_bar" | Symbol 18 MovieClip Frame 1 | Symbol 14 MovieClip |
| "m_textClip" | Symbol 18 MovieClip Frame 1 | Symbol 17 MovieClip |
| "m_loadingBar" | Symbol 141 MovieClip {States.CurrentPreloaderState} Frame 1 | Symbol 18 MovieClip |
| "m_playButton" | Symbol 141 MovieClip {States.CurrentPreloaderState} Frame 1 | Symbol 25 Button |
| "m_gibbetFront" | Symbol 141 MovieClip {States.CurrentPreloaderState} Frame 1 | Symbol 113 MovieClip |
| "m_adBox" | Symbol 141 MovieClip {States.CurrentPreloaderState} Frame 1 | Symbol 115 MovieClip |
| "m_closeButton" | Symbol 141 MovieClip {States.CurrentPreloaderState} Frame 1 | Symbol 119 Button {CloseCross} |
| "m_notDoppler" | Symbol 141 MovieClip {States.CurrentPreloaderState} Frame 1 | Symbol 140 Button |
| "m_buttonYes" | Symbol 207 MovieClip {YesNoStateView} Frame 1 | Symbol 200 Button |
| "m_buttonNo" | Symbol 207 MovieClip {YesNoStateView} Frame 1 | Symbol 204 Button |
| "m_text" | Symbol 257 MovieClip {Hint} Frame 1 | Symbol 256 EditableText |
| "KILLED_100" | Symbol 401 MovieClip {AchievementsStateView} Frame 1 | Symbol 345 MovieClip {ach_14} |
| "LEVEL_30_IN_6_SHOT" | Symbol 401 MovieClip {AchievementsStateView} Frame 1 | Symbol 348 MovieClip {ach_1} |
| "LEVEL_44_IN_6_SHOT" | Symbol 401 MovieClip {AchievementsStateView} Frame 1 | Symbol 351 MovieClip {ach_2} |
| "LEVELS_WITHOUT_LOSE" | Symbol 401 MovieClip {AchievementsStateView} Frame 1 | Symbol 354 MovieClip {ach_3} |
| "LEVELS_WITHOUT_INJURE" | Symbol 401 MovieClip {AchievementsStateView} Frame 1 | Symbol 357 MovieClip {ach_4} |
| "SAVES_50" | Symbol 401 MovieClip {AchievementsStateView} Frame 1 | Symbol 360 MovieClip {ach_5} |
| "SAVES_100" | Symbol 401 MovieClip {AchievementsStateView} Frame 1 | Symbol 363 MovieClip {ach_6} |
| "HOUR_PLAYED" | Symbol 401 MovieClip {AchievementsStateView} Frame 1 | Symbol 366 MovieClip {ach_7} |
| "TWO_HOURS_PLAYED" | Symbol 401 MovieClip {AchievementsStateView} Frame 1 | Symbol 369 MovieClip {ach_8} |
| "HALF_COMPLETED" | Symbol 401 MovieClip {AchievementsStateView} Frame 1 | Symbol 372 MovieClip {ach_9} |
| "FULL_COMPLETED" | Symbol 401 MovieClip {AchievementsStateView} Frame 1 | Symbol 375 MovieClip {ach_10} |
| "WITH_STAR_40" | Symbol 401 MovieClip {AchievementsStateView} Frame 1 | Symbol 378 MovieClip {ach_11} |
| "GRIFS_KILLED" | Symbol 401 MovieClip {AchievementsStateView} Frame 1 | Symbol 382 MovieClip {ach_12} |
| "ACCURACY_70" | Symbol 401 MovieClip {AchievementsStateView} Frame 1 | Symbol 386 MovieClip {ach_13} |
| "CROWN" | Symbol 401 MovieClip {AchievementsStateView} Frame 1 | Symbol 392 MovieClip {ach_15} |
| "m_buttonMenu" | Symbol 401 MovieClip {AchievementsStateView} Frame 1 | Symbol 397 Button |
| "m_sky" | Symbol 463 MovieClip Frame 1 | Symbol 2 MovieClip {Background} |
| "m_sky" | Symbol 523 MovieClip {CreditsStateView} Frame 1 | Symbol 463 MovieClip |
| "m_artHanger" | Symbol 523 MovieClip {CreditsStateView} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
| "m_musicHanger" | Symbol 523 MovieClip {CreditsStateView} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
| "m_programmingHanger" | Symbol 523 MovieClip {CreditsStateView} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
| "m_buttonMenu" | Symbol 523 MovieClip {CreditsStateView} Frame 1 | Symbol 397 Button |
| "m_notdoppler" | Symbol 523 MovieClip {CreditsStateView} Frame 1 | Symbol 140 Button |
| "m_blogLink" | Symbol 523 MovieClip {CreditsStateView} Frame 1 | Symbol 516 Button |
| "m_mailLink" | Symbol 523 MovieClip {CreditsStateView} Frame 1 | Symbol 522 Button |
| "m_slider" | Symbol 603 MovieClip {ScrollBar} Frame 1 | Symbol 602 MovieClip |
| "m_buttonOk" | Symbol 612 MovieClip {OptionsStateView} Frame 1 | Symbol 583 Button |
| "m_invertControl" | Symbol 612 MovieClip {OptionsStateView} Frame 1 | Symbol 596 MovieClip {CheckBox} |
| "m_disableBlood" | Symbol 612 MovieClip {OptionsStateView} Frame 1 | Symbol 596 MovieClip {CheckBox} |
| "m_soundVolume" | Symbol 612 MovieClip {OptionsStateView} Frame 1 | Symbol 603 MovieClip {ScrollBar} |
| "m_musicVolume" | Symbol 612 MovieClip {OptionsStateView} Frame 1 | Symbol 603 MovieClip {ScrollBar} |
| "m_hideTips" | Symbol 612 MovieClip {OptionsStateView} Frame 1 | Symbol 596 MovieClip {CheckBox} |
| "m_buttonReset" | Symbol 612 MovieClip {OptionsStateView} Frame 1 | Symbol 611 Button |
| "m_buttonPlay" | Symbol 685 MovieClip {Gibbets_II_fla.shirt_44_530} Frame 1 | Symbol 671 Button |
| "m_buttonOptions" | Symbol 685 MovieClip {Gibbets_II_fla.shirt_44_530} Frame 1 | Symbol 678 Button |
| "m_buttonCredits" | Symbol 685 MovieClip {Gibbets_II_fla.shirt_44_530} Frame 1 | Symbol 684 Button |
| "m_buttonGibbetsI" | Symbol 696 MovieClip {Gibbets_II_fla.LeftPanel_542} Frame 1 | Symbol 690 Button |
| "m_buttonMoreGames" | Symbol 696 MovieClip {Gibbets_II_fla.LeftPanel_542} Frame 1 | Symbol 695 Button |
| "m_vulture" | Symbol 697 MovieClip {MainMenuStateView} Frame 1 | Symbol 651 MovieClip {Gibbets_II_fla.shirt_39_519} |
| "m_II" | Symbol 697 MovieClip {MainMenuStateView} Frame 1 | Symbol 670 MovieClip {Gibbets_II_fla.shirt_42_527} |
| "m_rightButtonsPanel" | Symbol 697 MovieClip {MainMenuStateView} Frame 1 | Symbol 685 MovieClip {Gibbets_II_fla.shirt_44_530} |
| "m_leftButtonsPanel" | Symbol 697 MovieClip {MainMenuStateView} Frame 1 | Symbol 696 MovieClip {Gibbets_II_fla.LeftPanel_542} |
| "m_comixCloud" | Symbol 697 MovieClip {MainMenuStateView} Frame 1 | Symbol 614 MovieClip {MainMenuCloud1} |
| "m_notdoppler" | Symbol 697 MovieClip {MainMenuStateView} Frame 1 | Symbol 140 Button |
| "clip" | Symbol 722 MovieClip {VultureDie} Frame 1 | Symbol 721 MovieClip {Gibbets_II_fla.vulture_copy3_506} |
| "clip" | Symbol 743 MovieClip {VultureBend} Frame 1 | Symbol 742 MovieClip |
| "clip" | Symbol 745 MovieClip {VultureJump} Frame 1 | Symbol 744 MovieClip |
| "m_up" | Symbol 768 MovieClip {SelectLevelBonusButton} Frame 1 | Symbol 754 MovieClip |
| "m_textUp" | Symbol 768 MovieClip {SelectLevelBonusButton} Frame 1 | Symbol 755 EditableText |
| "m_starUp" | Symbol 768 MovieClip {SelectLevelBonusButton} Frame 1 | Symbol 758 MovieClip |
| "m_over" | Symbol 768 MovieClip {SelectLevelBonusButton} Frame 1 | Symbol 760 MovieClip |
| "m_textOver" | Symbol 768 MovieClip {SelectLevelBonusButton} Frame 1 | Symbol 761 EditableText |
| "m_starOver" | Symbol 768 MovieClip {SelectLevelBonusButton} Frame 1 | Symbol 758 MovieClip |
| "m_down" | Symbol 768 MovieClip {SelectLevelBonusButton} Frame 1 | Symbol 763 MovieClip |
| "m_starDown" | Symbol 768 MovieClip {SelectLevelBonusButton} Frame 1 | Symbol 758 MovieClip |
| "m_textDown" | Symbol 768 MovieClip {SelectLevelBonusButton} Frame 1 | Symbol 764 EditableText |
| "m_unenable" | Symbol 768 MovieClip {SelectLevelBonusButton} Frame 1 | Symbol 767 MovieClip |
| "m_text" | Symbol 778 MovieClip Frame 1 | Symbol 775 EditableText |
| "m_up" | Symbol 820 MovieClip {SelectLevelButton} Frame 1 | Symbol 811 MovieClip |
| "m_textUp" | Symbol 820 MovieClip {SelectLevelButton} Frame 1 | Symbol 812 EditableText |
| "m_starUp" | Symbol 820 MovieClip {SelectLevelButton} Frame 1 | Symbol 758 MovieClip |
| "m_over" | Symbol 820 MovieClip {SelectLevelButton} Frame 1 | Symbol 814 MovieClip |
| "m_textOver" | Symbol 820 MovieClip {SelectLevelButton} Frame 1 | Symbol 815 EditableText |
| "m_starOver" | Symbol 820 MovieClip {SelectLevelButton} Frame 1 | Symbol 758 MovieClip |
| "m_down" | Symbol 820 MovieClip {SelectLevelButton} Frame 1 | Symbol 817 MovieClip |
| "m_textDown" | Symbol 820 MovieClip {SelectLevelButton} Frame 1 | Symbol 818 EditableText |
| "m_starDown" | Symbol 820 MovieClip {SelectLevelButton} Frame 1 | Symbol 758 MovieClip |
| "m_unenable" | Symbol 820 MovieClip {SelectLevelButton} Frame 1 | Symbol 819 MovieClip |
| "m_level0" | Symbol 821 MovieClip Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level1" | Symbol 821 MovieClip Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level5" | Symbol 821 MovieClip Frame 1 | Symbol 768 MovieClip {SelectLevelBonusButton} |
| "m_level2" | Symbol 821 MovieClip Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level3" | Symbol 821 MovieClip Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level4" | Symbol 821 MovieClip Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level6" | Symbol 821 MovieClip Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level7" | Symbol 821 MovieClip Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level11" | Symbol 821 MovieClip Frame 1 | Symbol 768 MovieClip {SelectLevelBonusButton} |
| "m_level8" | Symbol 821 MovieClip Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level9" | Symbol 821 MovieClip Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level10" | Symbol 821 MovieClip Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level12" | Symbol 821 MovieClip Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level13" | Symbol 821 MovieClip Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level17" | Symbol 821 MovieClip Frame 1 | Symbol 768 MovieClip {SelectLevelBonusButton} |
| "m_level14" | Symbol 821 MovieClip Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level15" | Symbol 821 MovieClip Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level16" | Symbol 821 MovieClip Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level18" | Symbol 821 MovieClip Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level19" | Symbol 821 MovieClip Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level23" | Symbol 821 MovieClip Frame 1 | Symbol 768 MovieClip {SelectLevelBonusButton} |
| "m_level20" | Symbol 821 MovieClip Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level21" | Symbol 821 MovieClip Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level22" | Symbol 821 MovieClip Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_totalScore" | Symbol 842 MovieClip {SelectLevelStateView} Frame 1 | Symbol 778 MovieClip |
| "m_buttonSubmit" | Symbol 842 MovieClip {SelectLevelStateView} Frame 1 | Symbol 783 Button |
| "m_buttonMenu" | Symbol 842 MovieClip {SelectLevelStateView} Frame 1 | Symbol 397 Button |
| "m_buttonsPanel" | Symbol 842 MovieClip {SelectLevelStateView} Frame 1 | Symbol 821 MovieClip |
| "m_arrowRight" | Symbol 842 MovieClip {SelectLevelStateView} Frame 1 | Symbol 830 Button {GuiArrow} |
| "m_arrowUp" | Symbol 842 MovieClip {SelectLevelStateView} Frame 1 | Symbol 830 Button {GuiArrow} |
| "m_buttonAchievements" | Symbol 842 MovieClip {SelectLevelStateView} Frame 1 | Symbol 841 Button |
| "m_window" | Symbol 869 MovieClip {LoseStateView} Frame 1 | Symbol 852 MovieClip |
| "m_buttonMenu" | Symbol 869 MovieClip {LoseStateView} Frame 1 | Symbol 857 Button |
| "m_buttonRestart" | Symbol 869 MovieClip {LoseStateView} Frame 1 | Symbol 861 Button |
| "m_tmpClip" | Symbol 880 MovieClip Frame 1 | Symbol 878 MovieClip |
| "m_text" | Symbol 888 MovieClip Frame 1 | Symbol 887 EditableText |
| "m_text" | Symbol 890 MovieClip Frame 1 | Symbol 889 EditableText |
| "m_text" | Symbol 892 MovieClip Frame 1 | Symbol 891 EditableText |
| "m_perfectSign" | Symbol 900 MovieClip Frame 1 | Symbol 899 MovieClip |
| "m_buttonMenu" | Symbol 913 MovieClip {GrifShootingWinStateView} Frame 1 | Symbol 857 Button |
| "m_buttonNext" | Symbol 913 MovieClip {GrifShootingWinStateView} Frame 1 | Symbol 876 Button |
| "m_accuracy" | Symbol 913 MovieClip {GrifShootingWinStateView} Frame 1 | Symbol 888 MovieClip |
| "m_currentScore" | Symbol 913 MovieClip {GrifShootingWinStateView} Frame 1 | Symbol 890 MovieClip |
| "m_bestScore" | Symbol 913 MovieClip {GrifShootingWinStateView} Frame 1 | Symbol 892 MovieClip |
| "m_star" | Symbol 913 MovieClip {GrifShootingWinStateView} Frame 1 | Symbol 900 MovieClip |
| "m_levelNum" | Symbol 913 MovieClip {GrifShootingWinStateView} Frame 1 | Symbol 901 EditableText |
| "m_buttonNewAchievement" | Symbol 913 MovieClip {GrifShootingWinStateView} Frame 1 | Symbol 912 Button |
| "m_buttonMenu" | Symbol 922 MovieClip {WinStateView} Frame 1 | Symbol 857 Button |
| "m_buttonNext" | Symbol 922 MovieClip {WinStateView} Frame 1 | Symbol 876 Button |
| "m_arrowsUsed" | Symbol 922 MovieClip {WinStateView} Frame 1 | Symbol 888 MovieClip |
| "m_currentScore" | Symbol 922 MovieClip {WinStateView} Frame 1 | Symbol 890 MovieClip |
| "m_bestScore" | Symbol 922 MovieClip {WinStateView} Frame 1 | Symbol 892 MovieClip |
| "m_levelNum" | Symbol 922 MovieClip {WinStateView} Frame 1 | Symbol 921 EditableText |
| "m_star" | Symbol 922 MovieClip {WinStateView} Frame 1 | Symbol 900 MovieClip |
| "m_buttonNewAchievement" | Symbol 922 MovieClip {WinStateView} Frame 1 | Symbol 912 Button |
| "m_text" | Symbol 935 MovieClip Frame 1 | Symbol 934 EditableText |
| "m_text" | Symbol 941 MovieClip Frame 1 | Symbol 940 EditableText |
| "m_text" | Symbol 946 MovieClip Frame 1 | Symbol 945 EditableText |
| "m_buttonMenu" | Symbol 953 MovieClip {PlayStateView} Frame 1 | Symbol 397 Button |
| "m_scoreClip" | Symbol 953 MovieClip {PlayStateView} Frame 1 | Symbol 935 MovieClip |
| "m_levelClip" | Symbol 953 MovieClip {PlayStateView} Frame 1 | Symbol 941 MovieClip |
| "m_arrowsLeftClip" | Symbol 953 MovieClip {PlayStateView} Frame 1 | Symbol 946 MovieClip |
| "m_buttonReplay" | Symbol 953 MovieClip {PlayStateView} Frame 1 | Symbol 952 Button |
| "m_label" | Symbol 975 MovieClip {States.PlayState.AddPointsEffect} Frame 1 | Symbol 974 EditableText |
| "m_gibbetFront" | Symbol 1145 MovieClip {GameCompleteStateView} Frame 1 | Symbol 113 MovieClip |
| "m_totalScore" | Symbol 1145 MovieClip {GameCompleteStateView} Frame 1 | Symbol 778 MovieClip |
| "m_buttonSubmit" | Symbol 1145 MovieClip {GameCompleteStateView} Frame 1 | Symbol 783 Button |
| "m_buttonMenu" | Symbol 1145 MovieClip {GameCompleteStateView} Frame 1 | Symbol 397 Button |
| "m_buttonMoreGames" | Symbol 1145 MovieClip {GameCompleteStateView} Frame 1 | Symbol 1144 Button |
| "m_notDoppler" | Symbol 1145 MovieClip {GameCompleteStateView} Frame 1 | Symbol 140 Button |
| "m_field" | Symbol 1161 MovieClip {BowClip} Frame 1 | Symbol 1152 MovieClip {black_square} |
| "m_sunCircle" | Symbol 1231 MovieClip {States.PlayState.Sun} Frame 1 | Symbol 1216 MovieClip |
| "m_face" | Symbol 1231 MovieClip {States.PlayState.Sun} Frame 1 | Symbol 1230 MovieClip |
| "m_text" | Symbol 1244 MovieClip {AddArrowClip} Frame 1 | Symbol 1243 EditableText |
| "m_ovalClip" | Symbol 1276 MovieClip {ArrowGhost3} Frame 1 | Symbol 1272 MovieClip |
| "m_rotatedPath" | Symbol 1276 MovieClip {ArrowGhost3} Frame 1 | Symbol 1275 MovieClip |
| "m_rotatedPath" | Symbol 1280 MovieClip {ArrowGhost1} Frame 1 | Symbol 1279 MovieClip |
| "clip" | Symbol 1397 MovieClip {InvertedVultureHere} Frame 1 | Symbol 744 MovieClip |
| "clip" | Symbol 1443 MovieClip {VultureHere} Frame 1 | Symbol 744 MovieClip |
| "m_ovalClip" | Symbol 1519 MovieClip {ArrowGhost4} Frame 1 | Symbol 1277 MovieClip |
| "m_rotatedPath" | Symbol 1519 MovieClip {ArrowGhost4} Frame 1 | Symbol 1518 MovieClip |
| "m_notDoppler" | Symbol 1541 MovieClip {UrlLockedStateView} Frame 1 | Symbol 1540 EditableText |
| "m_totalScore" | Symbol 1552 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 778 MovieClip |
| "m_buttonSubmit" | Symbol 1552 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 783 Button |
| "m_buttonMenu" | Symbol 1552 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 397 Button |
| "m_level48" | Symbol 1552 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level49" | Symbol 1552 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level50" | Symbol 1552 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level51" | Symbol 1552 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_level52" | Symbol 1552 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 820 MovieClip {SelectLevelButton} |
| "m_arrowDown" | Symbol 1552 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 830 Button {GuiArrow} |
| "m_buttonAchievements" | Symbol 1552 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 841 Button |
| "m_adBox" | Symbol 1552 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 115 MovieClip |
| "m_closeButton" | Symbol 1552 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 119 Button {CloseCross} |
| "m_text" | Symbol 1554 MovieClip Frame 1 | Symbol 1553 EditableText |
| "m_buttonMenu" | Symbol 1558 MovieClip {GrifShootingStateView} Frame 1 | Symbol 397 Button |
| "m_scoreClip" | Symbol 1558 MovieClip {GrifShootingStateView} Frame 1 | Symbol 935 MovieClip |
| "m_arrowsLeftClip" | Symbol 1558 MovieClip {GrifShootingStateView} Frame 1 | Symbol 946 MovieClip |
| "m_buttonReplay" | Symbol 1558 MovieClip {GrifShootingStateView} Frame 1 | Symbol 952 Button |
| "m_timeLeftClip" | Symbol 1558 MovieClip {GrifShootingStateView} Frame 1 | Symbol 1554 MovieClip |
| "vertex6" | Symbol 1566 MovieClip {InvertedCowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
| "vertex2" | Symbol 1566 MovieClip {InvertedCowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
| "vertex1" | Symbol 1566 MovieClip {InvertedCowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
| "vertex3" | Symbol 1566 MovieClip {InvertedCowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
| "vertex4" | Symbol 1566 MovieClip {InvertedCowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
| "vertex5" | Symbol 1566 MovieClip {InvertedCowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
| "vertex0" | Symbol 1566 MovieClip {InvertedCowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
| "vertex0" | Symbol 1567 MovieClip {CowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
| "vertex4" | Symbol 1567 MovieClip {CowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
| "vertex5" | Symbol 1567 MovieClip {CowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
| "vertex3" | Symbol 1567 MovieClip {CowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
| "vertex2" | Symbol 1567 MovieClip {CowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
| "vertex1" | Symbol 1567 MovieClip {CowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
| "vertex6" | Symbol 1567 MovieClip {CowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
| "m_moreGames" | Symbol 1575 MovieClip {MoreGamesPanel} Frame 1 | Symbol 1571 Button |
| "m_walkthrough" | Symbol 1575 MovieClip {MoreGamesPanel} Frame 1 | Symbol 1574 Button |
| "m_clickToContinue" | Symbol 1581 MovieClip {GamePausedStateView} Frame 1 | Symbol 1578 MovieClip {ClickToContinue} |
| "m_checkBox" | Symbol 1582 MovieClip {HideTipsPanel} Frame 1 | Symbol 596 MovieClip {CheckBox} |
Special Tags
| FileAttributes (69) | Timeline Frame 1 | Access local files only, Metadata present, AS3. |
| SWFMetaData (77) | Timeline Frame 1 | 1284 bytes "<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmln ..." |
| Protect (24) | Timeline Frame 1 | 31 bytes "..$1$Kt$McsnFYEKsMvUAgB1PzTpb1." |
Labels
| "normal" | Symbol 1161 MovieClip {BowClip} Frame 1 |
| "stretch" | Symbol 1161 MovieClip {BowClip} Frame 2 |
| "fire" | Symbol 1161 MovieClip {BowClip} Frame 11 |
|
|