STORY LOOP FURRY PORN GAMES C SERVICES [?] [R] RND POPULAR | Archived flashes: 229595 |
/disc/ · /res/ — /show/ · /fap/ · /gg/ · /swf/ | P0001 · P2595 · P5190 |
This is the info page for Flash #132505 |
<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 until May 13. You can still play the game until then 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); 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.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2ContactPoint { public var friction:Number; public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var restitution:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public var velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.CollisionSection 10//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; 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_612 (Gibbets_II_fla.introFlash_612) package Gibbets_II_fla { import flash.display.*; public dynamic class introFlash_612 extends MovieClip { public function introFlash_612(){ 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_buttonHighScores:SimpleButton; 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.Common.Math.*; import Utils.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; 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(){ MochiBot.track(this, "bb4d2594"); } 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.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; 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 Utils.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Utils.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Utils.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Utils.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; 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.Common.Math.*; import Utils.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Utils.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; import Main.*; import flash.geom.*; 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.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Utils.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Main.*; import flash.display.*; import States.PlayState.*; import Ragdoll.*; import CPMStar.*; import flash.net.*; import flash.text.*; import flash.system.*; 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(); if (((((((((((!((m_loaderInfo.url.indexOf("notdoppler.com") == -1))) || (!((m_loaderInfo.url.indexOf("addictinggames.com") == -1))))) || (!((m_loaderInfo.url.indexOf("andkon.com") == -1))))) || (!((m_loaderInfo.url.indexOf("armorgames.com") == -1))))) || (!((m_loaderInfo.url.indexOf("agame.com") == -1))))) || (!((m_loaderInfo.url.indexOf("kongregate.com") == -1))))){ GameData.hideAds(); }; if (m_loaderInfo.url.indexOf("kongregate.com") != -1){ GameData.m_isKongregate = true; }; 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); StateManager.getInstance().changeState(new SponsorIntroState()); } private function loadComplete(_arg1:Event):void{ var event = _arg1; try { GameData.kongregate = event.target.content; GameData.kongregate.services.connect(); } catch(e:Error) { trace(e, e.getStackTrace()); }; } override public function handleMouseMove(_arg1:MouseEvent):void{ if (m_mouseDragEnabled){ if (m_mouseJoint){ m_mouseJoint.SetTarget(getMousePhysPos()); }; }; } public function initKongregateAPI():void{ var paramObj:Object; var apiPath:String; var request:URLRequest; var loader:Loader; try { paramObj = LoaderInfo(root.loaderInfo).parameters; apiPath = ((paramObj.kongregate_api_path) || ("http://www.kongregate.com/flash/API_AS3_Local.swf")); trace("api path:", apiPath); Security.allowDomain(apiPath); request = new URLRequest(apiPath); loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); loader.load(request); StateManager.getInstance().addChild(loader); } catch(e:Error) { trace(e, e.getStackTrace()); }; } 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 Main.*; import flash.geom.*; 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; }; }; }; } private function onButtonMoreGamesClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL, LinksManager.GRIF_SHOOTING_WIN_STATE_BUTTON); } 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_buttonMoreGames.addEventListener(MouseEvent.CLICK, onButtonMoreGamesClick); 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_buttonMoreGames.removeEventListener(MouseEvent.CLICK, onButtonMoreGamesClick); 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_view.m_buttonMoreGames.removeEventListener(MouseEvent.CLICK, onButtonMoreGamesClick); 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; }; } private function onButtonMoreGamesClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL, LinksManager.LOSE_STATE_MORE_GAMES_BUTTON); } 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); m_view.m_buttonMoreGames.addEventListener(MouseEvent.CLICK, onButtonMoreGamesClick); 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 (left_anim.getChildByName("m_buttonHighScores").hitTestPoint(e.stageX, e.stageY, true)){ SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.HIGH_SCORE_URL, ""); } 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 Main.*; import flash.geom.*; 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//WinState (States.WinState) package States { import flash.events.*; import Main.*; import flash.geom.*; 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; }; }; }; } private function onButtonMoreGamesClick(_arg1:MouseEvent):void{ SoundManager.play(SoundConst.CLICK); LinksManager.goURL(LinksManager.MAIN_PAGE_URL, LinksManager.WIN_STATE_MORE_GAMES_BUTTON); } 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_buttonMoreGames.addEventListener(MouseEvent.CLICK, onButtonMoreGamesClick); 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_buttonMoreGames.removeEventListener(MouseEvent.CLICK, onButtonMoreGamesClick); 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 160//YesNoState (States.YesNoState) package States { import flash.events.*; import Main.*; import flash.geom.*; 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 161//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 162//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 163//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 164//ach_1 (ach_1) package { public dynamic class ach_1 extends Achievement { } }//packageSection 165//ach_10 (ach_10) package { public dynamic class ach_10 extends Achievement { } }//packageSection 166//ach_11 (ach_11) package { public dynamic class ach_11 extends Achievement { } }//packageSection 167//ach_12 (ach_12) package { public dynamic class ach_12 extends Achievement { } }//packageSection 168//ach_13 (ach_13) package { public dynamic class ach_13 extends Achievement { } }//packageSection 169//ach_14 (ach_14) package { public dynamic class ach_14 extends Achievement { } }//packageSection 170//ach_15 (ach_15) package { public dynamic class ach_15 extends Achievement { } }//packageSection 171//ach_2 (ach_2) package { public dynamic class ach_2 extends Achievement { } }//packageSection 172//ach_3 (ach_3) package { public dynamic class ach_3 extends Achievement { } }//packageSection 173//ach_4 (ach_4) package { public dynamic class ach_4 extends Achievement { } }//packageSection 174//ach_5 (ach_5) package { public dynamic class ach_5 extends Achievement { } }//packageSection 175//ach_6 (ach_6) package { public dynamic class ach_6 extends Achievement { } }//packageSection 176//ach_7 (ach_7) package { public dynamic class ach_7 extends Achievement { } }//packageSection 177//ach_8 (ach_8) package { public dynamic class ach_8 extends Achievement { } }//packageSection 178//ach_9 (ach_9) package { public dynamic class ach_9 extends Achievement { } }//packageSection 179//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 180//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 181//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 182//add_arrows_sound_0 (add_arrows_sound_0) package { import flash.media.*; public dynamic class add_arrows_sound_0 extends Sound { } }//packageSection 183//add_arrows_sound_1 (add_arrows_sound_1) package { import flash.media.*; public dynamic class add_arrows_sound_1 extends Sound { } }//packageSection 184//AddArrowClip (AddArrowClip) package { import flash.display.*; import flash.text.*; public dynamic class AddArrowClip extends MovieClip { public var m_text:TextField; } }//packageSection 185//ambient_1 (ambient_1) package { import flash.media.*; public dynamic class ambient_1 extends Sound { } }//packageSection 186//ambient_2 (ambient_2) package { import flash.media.*; public dynamic class ambient_2 extends Sound { } }//packageSection 187//AmmoGhost10 (AmmoGhost10) package { import States.PlayState.*; public dynamic class AmmoGhost10 extends AmmoGhost { } }//packageSection 188//AmmoGhost3 (AmmoGhost3) package { import States.PlayState.*; public dynamic class AmmoGhost3 extends AmmoGhost { } }//packageSection 189//AmmoGhost5 (AmmoGhost5) package { import States.PlayState.*; public dynamic class AmmoGhost5 extends AmmoGhost { } }//packageSection 190//AmmoHint (AmmoHint) package { import States.PlayState.*; public dynamic class AmmoHint extends HintText { } }//packageSection 191//arrow_ghost (arrow_ghost) package { import flash.media.*; public dynamic class arrow_ghost extends Sound { } }//packageSection 192//ArrowGhost1 (ArrowGhost1) package { import States.PlayState.*; public dynamic class ArrowGhost1 extends HedgehogGhost { } }//packageSection 193//ArrowGhost3 (ArrowGhost3) package { import States.PlayState.*; public dynamic class ArrowGhost3 extends HedgehogGhost { } }//packageSection 194//ArrowGhost4 (ArrowGhost4) package { import States.PlayState.*; public dynamic class ArrowGhost4 extends HedgehogGhost { } }//packageSection 195//ArrowGhostHint (ArrowGhostHint) package { import States.PlayState.*; public dynamic class ArrowGhostHint extends HintText { } }//packageSection 196//ArtCloud (ArtCloud) package { import flash.display.*; public dynamic class ArtCloud extends MovieClip { } }//packageSection 197//AsyncClip (AsyncClip) package { import flash.display.*; public class AsyncClip extends MovieClip { public function AsyncClip(){ gotoAndPlay(int((totalFrames * Math.random()))); } } }//packageSection 198//Back1 (Back1) package { import flash.display.*; public dynamic class Back1 extends MovieClip { } }//packageSection 199//Back2 (Back2) package { import flash.display.*; public dynamic class Back2 extends MovieClip { } }//packageSection 200//Back3 (Back3) package { import flash.display.*; public dynamic class Back3 extends MovieClip { } }//packageSection 201//Back4 (Back4) package { import flash.display.*; public dynamic class Back4 extends MovieClip { } }//packageSection 202//Background (Background) package { import flash.display.*; public dynamic class Background extends MovieClip { } }//packageSection 203//BgStones (BgStones) package { import flash.display.*; public dynamic class BgStones extends MovieClip { } }//packageSection 204//black_square (black_square) package { import flash.display.*; public dynamic class black_square extends MovieClip { } }//packageSection 205//BonusGameBack (BonusGameBack) package { import flash.display.*; public dynamic class BonusGameBack extends MovieClip { } }//packageSection 206//bow_shoot (bow_shoot) package { import flash.media.*; public dynamic class bow_shoot extends Sound { } }//packageSection 207//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 208//BowPoint (BowPoint) package { import flash.display.*; public dynamic class BowPoint extends MovieClip { } }//packageSection 209//Box (Box) package { import flash.display.*; public dynamic class Box extends MovieClip { } }//packageSection 210//Brick (Brick) package { import States.PlayState.*; public dynamic class Brick extends StaticBoxIsStone { } }//packageSection 211//BrickNoLeft (BrickNoLeft) package { import States.PlayState.*; public dynamic class BrickNoLeft extends StaticBoxIsStone { } }//packageSection 212//BrickNoRight (BrickNoRight) package { import States.PlayState.*; public dynamic class BrickNoRight extends StaticBoxIsStone { } }//packageSection 213//BrickNoRightNoLeft (BrickNoRightNoLeft) package { import States.PlayState.*; public dynamic class BrickNoRightNoLeft extends StaticBoxIsStone { } }//packageSection 214//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 215//click (click) package { import flash.media.*; public dynamic class click extends Sound { } }//packageSection 216//ClickToContinue (ClickToContinue) package { import flash.display.*; public dynamic class ClickToContinue extends MovieClip { } }//packageSection 217//CloseCross (CloseCross) package { import flash.display.*; public dynamic class CloseCross extends SimpleButton { } }//packageSection 218//Cloud0 (Cloud0) package { import States.PlayState.*; public dynamic class Cloud0 extends Cloud { } }//packageSection 219//Cloud1 (Cloud1) package { import States.PlayState.*; public dynamic class Cloud1 extends Cloud { } }//packageSection 220//Cloud2 (Cloud2) package { import States.PlayState.*; public dynamic class Cloud2 extends Cloud { } }//packageSection 221//Cloud3 (Cloud3) package { import States.PlayState.*; public dynamic class Cloud3 extends Cloud { } }//packageSection 222//Cloud4 (Cloud4) package { import States.PlayState.*; public dynamic class Cloud4 extends Cloud { } }//packageSection 223//Cloud5 (Cloud5) package { import States.PlayState.*; public dynamic class Cloud5 extends Cloud { } }//packageSection 224//Cloud6 (Cloud6) package { import States.PlayState.*; public dynamic class Cloud6 extends Cloud { } }//packageSection 225//Cloud7 (Cloud7) package { import States.PlayState.*; public dynamic class Cloud7 extends Cloud { } }//packageSection 226//Cloud8 (Cloud8) package { import States.PlayState.*; public dynamic class Cloud8 extends Cloud { } }//packageSection 227//Cloud9 (Cloud9) package { import States.PlayState.*; public dynamic class Cloud9 extends Cloud { } }//packageSection 228//ComboSave2Hint (ComboSave2Hint) package { import States.PlayState.*; public dynamic class ComboSave2Hint extends HintText { } }//packageSection 229//ComboSave3Hint (ComboSave3Hint) package { import States.PlayState.*; public dynamic class ComboSave3Hint extends HintText { } }//packageSection 230//ComposedStone1 (ComposedStone1) package { import States.PlayState.*; public dynamic class ComposedStone1 extends StaticBoxIsStone { } }//packageSection 231//ComposedStone2 (ComposedStone2) package { import States.PlayState.*; public dynamic class ComposedStone2 extends StaticBoxIsStone { } }//packageSection 232//ComposedStone55 (ComposedStone55) package { import States.PlayState.*; public dynamic class ComposedStone55 extends StaticBoxIsStone { } }//packageSection 233//ComposedStone96 (ComposedStone96) package { import States.PlayState.*; public dynamic class ComposedStone96 extends StaticBoxIsStone { } }//packageSection 234//ComposedStone98 (ComposedStone98) package { import States.PlayState.*; public dynamic class ComposedStone98 extends StaticBoxIsStone { } }//packageSection 235//ComposedStone99 (ComposedStone99) package { import States.PlayState.*; public dynamic class ComposedStone99 extends StaticBoxIsStone { } }//packageSection 236//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 237//CowCry (CowCry) package { import flash.display.*; public dynamic class CowCry extends MovieClip { public function CowCry(){ addFrameScript(56, frame57); } function frame57(){ stop(); } } }//packageSection 238//CowHere (CowHere) package { import flash.display.*; public dynamic class CowHere extends MovieClip { } }//packageSection 239//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 240//CowNormal (CowNormal) package { import flash.display.*; public dynamic class CowNormal extends MovieClip { } }//packageSection 241//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 242//cry_0 (cry_0) package { import flash.media.*; public dynamic class cry_0 extends Sound { } }//packageSection 243//cry_1 (cry_1) package { import flash.media.*; public dynamic class cry_1 extends Sound { } }//packageSection 244//cry_2 (cry_2) package { import flash.media.*; public dynamic class cry_2 extends Sound { } }//packageSection 245//cry_3 (cry_3) package { import flash.media.*; public dynamic class cry_3 extends Sound { } }//packageSection 246//cry_4 (cry_4) package { import flash.media.*; public dynamic class cry_4 extends Sound { } }//packageSection 247//cry_5 (cry_5) package { import flash.media.*; public dynamic class cry_5 extends Sound { } }//packageSection 248//cry_6 (cry_6) package { import flash.media.*; public dynamic class cry_6 extends Sound { } }//packageSection 249//cry_7 (cry_7) package { import flash.media.*; public dynamic class cry_7 extends Sound { } }//packageSection 250//death_cry (death_cry) package { import flash.media.*; public dynamic class death_cry extends Sound { } }//packageSection 251//DoubleSave (DoubleSave) package { import flash.display.*; public dynamic class DoubleSave extends MovieClip { } }//packageSection 252//exploison (exploison) package { import flash.media.*; public dynamic class exploison extends Sound { } }//packageSection 253//FaceColors_1 (FaceColors_1) package { import flash.display.*; public dynamic class FaceColors_1 extends MovieClip { } }//packageSection 254//FaceColors_2 (FaceColors_2) package { import flash.display.*; public dynamic class FaceColors_2 extends MovieClip { } }//packageSection 255//FaceColors_3 (FaceColors_3) package { import flash.display.*; public dynamic class FaceColors_3 extends MovieClip { } }//packageSection 256//FaceColors_4 (FaceColors_4) package { import flash.display.*; public dynamic class FaceColors_4 extends MovieClip { } }//packageSection 257//flower_0 (flower_0) package { import States.PlayState.*; public dynamic class flower_0 extends Frontground { } }//packageSection 258//flower_1 (flower_1) package { import States.PlayState.*; public dynamic class flower_1 extends Frontground { } }//packageSection 259//flower_2 (flower_2) package { import States.PlayState.*; public dynamic class flower_2 extends Frontground { } }//packageSection 260//flower_3 (flower_3) package { import States.PlayState.*; public dynamic class flower_3 extends Frontground { } }//packageSection 261//flower_4 (flower_4) package { import States.PlayState.*; public dynamic class flower_4 extends Frontground { } }//packageSection 262//flower_5 (flower_5) package { import States.PlayState.*; public dynamic class flower_5 extends Frontground { } }//packageSection 263//flower_6 (flower_6) package { import States.PlayState.*; public dynamic class flower_6 extends Frontground { } }//packageSection 264//GameCompleteCloud (GameCompleteCloud) package { import flash.display.*; public dynamic class GameCompleteCloud extends MovieClip { } }//packageSection 265//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 266//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 (true); } 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 267//GamePausedStateView (GamePausedStateView) package { import flash.display.*; public dynamic class GamePausedStateView extends MovieClip { public var m_clickToContinue:ClickToContinue; } }//packageSection 268//GiantSky (GiantSky) package { import flash.display.*; public dynamic class GiantSky extends MovieClip { } }//packageSection 269//GibbetColumn (GibbetColumn) package { import States.PlayState.*; public dynamic class GibbetColumn extends StaticBoxIsNotStone { } }//packageSection 270//GibbetGround (GibbetGround) package { import flash.display.*; public dynamic class GibbetGround extends MovieClip { } }//packageSection 271//GibbetObliquely (GibbetObliquely) package { import flash.display.*; public dynamic class GibbetObliquely extends MovieClip { } }//packageSection 272//GibbetStick (GibbetStick) package { import States.PlayState.*; public dynamic class GibbetStick extends StaticBoxIsNotStone { } }//packageSection 273//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 274//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_buttonMoreGames:SimpleButton; public var m_accuracy:MovieClip; public var m_currentScore:MovieClip; public var m_buttonNewAchievement:SimpleButton; public var m_levelNum:TextField; public var m_bestScore:MovieClip; public var m_buttonNext:SimpleButton; } }//packageSection 275//Ground (Ground) package { import flash.display.*; public dynamic class Ground extends MovieClip { } }//packageSection 276//GuiArrow (GuiArrow) package { import flash.display.*; public dynamic class GuiArrow extends SimpleButton { } }//packageSection 277//HangerFace (HangerFace) package { import flash.display.*; public dynamic class HangerFace extends MovieClip { public function HangerFace(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//packageSection 278//HangerPoint (HangerPoint) package { import flash.display.*; public dynamic class HangerPoint extends MovieClip { } }//packageSection 279//HeadShotCloud (HeadShotCloud) package { import flash.display.*; public dynamic class HeadShotCloud extends MovieClip { } }//packageSection 280//HealthBar (HealthBar) package { import flash.display.*; public dynamic class HealthBar extends MovieClip { } }//packageSection 281//herb (herb) package { import States.PlayState.*; public dynamic class herb extends Frontground { } }//packageSection 282//HideTipsPanel (HideTipsPanel) package { import flash.display.*; public dynamic class HideTipsPanel extends MovieClip { public var m_checkBox:CheckBox; } }//packageSection 283//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 284//HintPoint (HintPoint) package { import flash.display.*; public dynamic class HintPoint extends MovieClip { } }//packageSection 285//ILikeToHangCloud (ILikeToHangCloud) package { import flash.display.*; public dynamic class ILikeToHangCloud extends MovieClip { } }//packageSection 286//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 287//IntroButton (IntroButton) package { import flash.display.*; public dynamic class IntroButton extends SimpleButton { } }//packageSection 288//InvertControlHint (InvertControlHint) package { import States.PlayState.*; public dynamic class InvertControlHint extends HintText { } }//packageSection 289//InvertedCowHere (InvertedCowHere) package { import flash.display.*; public dynamic class InvertedCowHere extends MovieClip { } }//packageSection 290//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 291//InvertedGibbetObliquely (InvertedGibbetObliquely) package { import flash.display.*; public dynamic class InvertedGibbetObliquely extends MovieClip { } }//packageSection 292//InvertedVultureHere (InvertedVultureHere) package { import flash.display.*; public dynamic class InvertedVultureHere extends MovieClip { public var clip:MovieClip; } }//packageSection 293//LeftEdgeMarker (LeftEdgeMarker) package { import flash.display.*; public dynamic class LeftEdgeMarker extends MovieClip { } }//packageSection 294//LeftLowerHand_1 (LeftLowerHand_1) package { import flash.display.*; public dynamic class LeftLowerHand_1 extends MovieClip { } }//packageSection 295//LeftLowerHand_2 (LeftLowerHand_2) package { import flash.display.*; public dynamic class LeftLowerHand_2 extends MovieClip { } }//packageSection 296//LeftLowerHand_3 (LeftLowerHand_3) package { import flash.display.*; public dynamic class LeftLowerHand_3 extends MovieClip { } }//packageSection 297//LeftLowerHand_4 (LeftLowerHand_4) package { import flash.display.*; public dynamic class LeftLowerHand_4 extends MovieClip { } }//packageSection 298//LeftLowerLeg_1 (LeftLowerLeg_1) package { import flash.display.*; public dynamic class LeftLowerLeg_1 extends MovieClip { } }//packageSection 299//LeftLowerLeg_2 (LeftLowerLeg_2) package { import flash.display.*; public dynamic class LeftLowerLeg_2 extends MovieClip { } }//packageSection 300//LeftLowerLeg_3 (LeftLowerLeg_3) package { import flash.display.*; public dynamic class LeftLowerLeg_3 extends MovieClip { } }//packageSection 301//LeftLowerLeg_4 (LeftLowerLeg_4) package { import flash.display.*; public dynamic class LeftLowerLeg_4 extends MovieClip { } }//packageSection 302//LeftUpperHand_1 (LeftUpperHand_1) package { import flash.display.*; public dynamic class LeftUpperHand_1 extends MovieClip { } }//packageSection 303//LeftUpperHand_2 (LeftUpperHand_2) package { import flash.display.*; public dynamic class LeftUpperHand_2 extends MovieClip { } }//packageSection 304//LeftUpperHand_3 (LeftUpperHand_3) package { import flash.display.*; public dynamic class LeftUpperHand_3 extends MovieClip { } }//packageSection 305//LeftUpperHand_4 (LeftUpperHand_4) package { import flash.display.*; public dynamic class LeftUpperHand_4 extends MovieClip { } }//packageSection 306//LeftUpperLeg_1 (LeftUpperLeg_1) package { import flash.display.*; public dynamic class LeftUpperLeg_1 extends MovieClip { } }//packageSection 307//LeftUpperLeg_2 (LeftUpperLeg_2) package { import flash.display.*; public dynamic class LeftUpperLeg_2 extends MovieClip { } }//packageSection 308//LeftUpperLeg_3 (LeftUpperLeg_3) package { import flash.display.*; public dynamic class LeftUpperLeg_3 extends MovieClip { } }//packageSection 309//LeftUpperLeg_4 (LeftUpperLeg_4) package { import flash.display.*; public dynamic class LeftUpperLeg_4 extends MovieClip { } }//packageSection 310//Level00 (Level00) package { import flash.display.*; public dynamic class Level00 extends MovieClip { } }//packageSection 311//Level01 (Level01) package { import flash.display.*; public dynamic class Level01 extends MovieClip { } }//packageSection 312//Level02 (Level02) package { import flash.display.*; public dynamic class Level02 extends MovieClip { } }//packageSection 313//Level03 (Level03) package { import flash.display.*; public dynamic class Level03 extends MovieClip { } }//packageSection 314//Level04 (Level04) package { import flash.display.*; public dynamic class Level04 extends MovieClip { } }//packageSection 315//Level05 (Level05) package { import flash.display.*; public dynamic class Level05 extends MovieClip { } }//packageSection 316//Level06 (Level06) package { import flash.display.*; public dynamic class Level06 extends MovieClip { } }//packageSection 317//Level07 (Level07) package { import flash.display.*; public dynamic class Level07 extends MovieClip { } }//packageSection 318//Level08 (Level08) package { import flash.display.*; public dynamic class Level08 extends MovieClip { } }//packageSection 319//Level09 (Level09) package { import flash.display.*; public dynamic class Level09 extends MovieClip { } }//packageSection 320//Level10 (Level10) package { import flash.display.*; public dynamic class Level10 extends MovieClip { } }//packageSection 321//Level11 (Level11) package { import flash.display.*; public dynamic class Level11 extends MovieClip { } }//packageSection 322//Level12 (Level12) package { import flash.display.*; public dynamic class Level12 extends MovieClip { } }//packageSection 323//Level13 (Level13) package { import flash.display.*; public dynamic class Level13 extends MovieClip { } }//packageSection 324//Level14 (Level14) package { import flash.display.*; public dynamic class Level14 extends MovieClip { } }//packageSection 325//Level15 (Level15) package { import flash.display.*; public dynamic class Level15 extends MovieClip { } }//packageSection 326//Level16 (Level16) package { import flash.display.*; public dynamic class Level16 extends MovieClip { } }//packageSection 327//Level17 (Level17) package { import flash.display.*; public dynamic class Level17 extends MovieClip { } }//packageSection 328//Level18 (Level18) package { import flash.display.*; public dynamic class Level18 extends MovieClip { } }//packageSection 329//Level19 (Level19) package { import flash.display.*; public dynamic class Level19 extends MovieClip { } }//packageSection 330//Level20 (Level20) package { import flash.display.*; public dynamic class Level20 extends MovieClip { } }//packageSection 331//Level21 (Level21) package { import flash.display.*; public dynamic class Level21 extends MovieClip { } }//packageSection 332//Level22 (Level22) package { import flash.display.*; public dynamic class Level22 extends MovieClip { } }//packageSection 333//Level23 (Level23) package { import flash.display.*; public dynamic class Level23 extends MovieClip { } }//packageSection 334//Level24 (Level24) package { import flash.display.*; public dynamic class Level24 extends MovieClip { } }//packageSection 335//Level25 (Level25) package { import flash.display.*; public dynamic class Level25 extends MovieClip { } }//packageSection 336//Level26 (Level26) package { import flash.display.*; public dynamic class Level26 extends MovieClip { } }//packageSection 337//Level27 (Level27) package { import flash.display.*; public dynamic class Level27 extends MovieClip { } }//packageSection 338//Level28 (Level28) package { import flash.display.*; public dynamic class Level28 extends MovieClip { } }//packageSection 339//Level29 (Level29) package { import flash.display.*; public dynamic class Level29 extends MovieClip { } }//packageSection 340//Level30 (Level30) package { import flash.display.*; public dynamic class Level30 extends MovieClip { } }//packageSection 341//Level31 (Level31) package { import flash.display.*; public dynamic class Level31 extends MovieClip { } }//packageSection 342//Level32 (Level32) package { import flash.display.*; public dynamic class Level32 extends MovieClip { } }//packageSection 343//Level33 (Level33) package { import flash.display.*; public dynamic class Level33 extends MovieClip { } }//packageSection 344//Level34 (Level34) package { import flash.display.*; public dynamic class Level34 extends MovieClip { } }//packageSection 345//Level35 (Level35) package { import flash.display.*; public dynamic class Level35 extends MovieClip { } }//packageSection 346//Level36 (Level36) package { import flash.display.*; public dynamic class Level36 extends MovieClip { } }//packageSection 347//Level37 (Level37) package { import flash.display.*; public dynamic class Level37 extends MovieClip { } }//packageSection 348//Level38 (Level38) package { import flash.display.*; public dynamic class Level38 extends MovieClip { } }//packageSection 349//Level39 (Level39) package { import flash.display.*; public dynamic class Level39 extends MovieClip { } }//packageSection 350//Level40 (Level40) package { import flash.display.*; public dynamic class Level40 extends MovieClip { } }//packageSection 351//Level41 (Level41) package { import flash.display.*; public dynamic class Level41 extends MovieClip { } }//packageSection 352//Level42 (Level42) package { import flash.display.*; public dynamic class Level42 extends MovieClip { } }//packageSection 353//Level43 (Level43) package { import flash.display.*; public dynamic class Level43 extends MovieClip { } }//packageSection 354//Level44 (Level44) package { import flash.display.*; public dynamic class Level44 extends MovieClip { } }//packageSection 355//Level45 (Level45) package { import flash.display.*; public dynamic class Level45 extends MovieClip { } }//packageSection 356//Level46 (Level46) package { import flash.display.*; public dynamic class Level46 extends MovieClip { } }//packageSection 357//Level47 (Level47) package { import flash.display.*; public dynamic class Level47 extends MovieClip { } }//packageSection 358//Level48 (Level48) package { import flash.display.*; public dynamic class Level48 extends MovieClip { } }//packageSection 359//Level49 (Level49) package { import flash.display.*; public dynamic class Level49 extends MovieClip { } }//packageSection 360//Level50 (Level50) package { import flash.display.*; public dynamic class Level50 extends MovieClip { } }//packageSection 361//Level51 (Level51) package { import flash.display.*; public dynamic class Level51 extends MovieClip { } }//packageSection 362//Level52 (Level52) package { import flash.display.*; public dynamic class Level52 extends MovieClip { } }//packageSection 363//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 364//LongBack (LongBack) package { import flash.display.*; public dynamic class LongBack extends MovieClip { } }//packageSection 365//LongShootArrow (LongShootArrow) package { import flash.display.*; public dynamic class LongShootArrow extends MovieClip { } }//packageSection 366//lose_sound (lose_sound) package { import flash.media.*; public dynamic class lose_sound extends Sound { } }//packageSection 367//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_buttonMoreGames:SimpleButton; public var m_buttonRestart:SimpleButton; } }//packageSection 368//main_menu_arrow_sound (main_menu_arrow_sound) package { import flash.media.*; public dynamic class main_menu_arrow_sound extends Sound { } }//packageSection 369//main_menu_music (main_menu_music) package { import flash.media.*; public dynamic class main_menu_music extends Sound { } }//packageSection 370//MainMenuCloud1 (MainMenuCloud1) package { import flash.display.*; public dynamic class MainMenuCloud1 extends MovieClip { } }//packageSection 371//MainMenuCloud2 (MainMenuCloud2) package { import flash.display.*; public dynamic class MainMenuCloud2 extends MovieClip { } }//packageSection 372//MainMenuCloud3 (MainMenuCloud3) package { import flash.display.*; public dynamic class MainMenuCloud3 extends MovieClip { } }//packageSection 373//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 374//Mill (Mill) package { import flash.display.*; public dynamic class Mill extends MovieClip { } }//packageSection 375//MillFan (MillFan) package { import flash.display.*; public dynamic class MillFan extends MovieClip { } }//packageSection 376//MochiBot (MochiBot) package { import flash.display.*; import flash.net.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ if (Security.sandboxType == "localWithFile"){ return (null); }; var _local3:MochiBot = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); var _local4 = "http://core.mochibot.com/my/core.swf"; var _local5:URLVariables = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; var _local6:String = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; var _local7:URLRequest = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; var _local8:Loader = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//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//win_sound (win_sound) package { import flash.media.*; public dynamic class win_sound extends Sound { } }//packageSection 488//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_buttonMoreGames:SimpleButton; public var m_currentScore:MovieClip; public var m_buttonNewAchievement:SimpleButton; public var m_levelNum:TextField; public var m_arrowsUsed:MovieClip; public var m_bestScore:MovieClip; public var m_buttonNext:SimpleButton; } }//packageSection 489//vulture_cry_1 (vulture_cry_1) package { import flash.media.*; public dynamic class vulture_cry_1 extends Sound { } }//packageSection 490//vulture_cry_2 (vulture_cry_2) package { import flash.media.*; public dynamic class vulture_cry_2 extends Sound { } }//packageSection 491//vulture_cry_3 (vulture_cry_3) package { import flash.media.*; public dynamic class vulture_cry_3 extends Sound { } }//packageSection 492//vulture_cry_4 (vulture_cry_4) package { import flash.media.*; public dynamic class vulture_cry_4 extends Sound { } }//packageSection 493//VultureBend (VultureBend) package { import flash.display.*; public dynamic class VultureBend extends MovieClip { public var clip:MovieClip; } }//packageSection 494//VultureDie (VultureDie) package { import flash.display.*; public dynamic class VultureDie extends MovieClip { public var clip:MovieClip; } }//packageSection 495//VultureFeathers (VultureFeathers) package { import States.PlayState.*; public dynamic class VultureFeathers extends AutoreleaseClip { } }//packageSection 496//VultureHere (VultureHere) package { import flash.display.*; public dynamic class VultureHere extends MovieClip { public var clip:MovieClip; } }//packageSection 497//VultureJump (VultureJump) package { import flash.display.*; public dynamic class VultureJump extends MovieClip { public var clip:MovieClip; } }//packageSection 498//VultureShootingRules (VultureShootingRules) package { import States.PlayState.*; public dynamic class VultureShootingRules extends AutoreleaseClip { } }//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 702 847 1150 1246 1268 1303 1385 1403 1426 1463 1476 1501 1503 1504 1505 1506 1508 1509 1510 1511 1512 1513 1515 1516 1517 1518 1519 1522 1525 1527 1529 1534 1537 1543 1551 1552 1553 1554 1569 1570 |
Symbol 3 Graphic | Used by:4 | |
Symbol 4 MovieClip | Uses:3 | Used by:5 |
Symbol 5 MovieClip {Cloud3} | Uses:4 | Used by:141 1150 1268 1303 1403 1426 1437 1440 1441 1444 1463 1467 1514 1516 1517 1518 1525 1527 1537 1551 1552 1553 1554 1569 1570 |
Symbol 6 Graphic | Used by:7 | |
Symbol 7 MovieClip | Uses:6 | Used by:8 |
Symbol 8 MovieClip {Cloud5} | Uses:7 | Used by:141 847 1150 1268 1303 1329 1403 1426 1447 1449 1463 1476 1501 1504 1505 1511 1513 1514 1515 1517 1518 1519 1522 1525 1527 1534 1537 1538 1543 1551 1552 1553 1554 1557 1570 |
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 760 766 769 777 780 817 820 823 872 873 887 891 893 895 897 899 901 911 927 931 944 984 1558 | |
Symbol 16 EditableText | Uses:15 949 | 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 700 784 788 859 862 866 886 962 | |
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 702 1150 1303 1329 1385 1403 1426 1469 1501 1503 1504 1505 1509 1513 1515 1517 1519 1522 1525 1526 1527 1529 1534 1537 1538 1543 1551 1552 1553 1554 1569 |
Symbol 29 Graphic | Used by:30 | |
Symbol 30 MovieClip | Uses:29 | Used by:31 |
Symbol 31 MovieClip {Cloud1} | Uses:30 | Used by:141 847 1150 1246 1268 1303 1329 1385 1403 1426 1447 1449 1463 1467 1504 1506 1509 1510 1511 1512 1513 1514 1516 1518 1519 1522 1525 1526 1529 1537 1551 1552 1553 1554 1557 |
Symbol 32 Graphic | Used by:33 | |
Symbol 33 MovieClip | Uses:32 | Used by:34 |
Symbol 34 MovieClip {Cloud4} | Uses:33 | Used by:141 1150 1329 1385 1467 1469 1476 1503 1505 1510 1512 1515 1516 1519 1525 1526 1534 1538 1543 1551 1552 1553 1554 1557 |
Symbol 35 Graphic | Used by:36 | |
Symbol 36 MovieClip | Uses:35 | Used by:37 |
Symbol 37 MovieClip {Cloud7} | Uses:36 | Used by:141 523 847 1150 1246 1437 1440 1441 1444 1447 1449 1469 1476 1501 1503 1505 1506 1510 1512 1513 1515 1517 1526 1527 1537 1538 1543 1551 1552 1553 1554 1557 1570 |
Symbol 38 Graphic | Used by:39 | |
Symbol 39 MovieClip | Uses:38 | Used by:40 |
Symbol 40 MovieClip {Cloud8} | Uses:39 | Used by:141 702 1150 1246 1385 1403 1426 1437 1440 1441 1444 1447 1449 1469 1476 1501 1505 1506 1509 1511 1512 1514 1517 1522 1534 1551 1552 1553 1554 1569 |
Symbol 41 Graphic | Used by:42 | |
Symbol 42 MovieClip | Uses:41 | Used by:43 |
Symbol 43 MovieClip {Cloud0} | Uses:42 | Used by:141 702 1150 1246 1268 1329 1437 1440 1441 1444 1463 1467 1469 1504 1506 1509 1511 1514 1516 1518 1526 1529 1551 1552 1553 1554 1569 1570 |
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 1246 1303 1329 1385 1437 1447 1449 1458 1460 1463 1467 1476 1501 1503 1510 1514 1525 1526 1527 1534 1538 1543 1569 1570 |
Symbol 99 Graphic | Used by:100 | |
Symbol 100 MovieClip {GibbetColumn} | Uses:99 | Used by:113 1246 1268 1303 1329 1385 1403 1426 1437 1447 1449 1458 1460 1461 1462 1463 1467 1469 1476 1501 1503 1505 1509 1510 1514 1516 1517 1518 1519 1522 1525 1526 1527 1529 1534 1537 1538 1543 1569 1570 |
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 1385 1447 1458 1463 1467 1501 1509 1517 1525 1529 1534 |
Symbol 107 Graphic | Used by:108 | |
Symbol 108 MovieClip {GibbetStick} | Uses:107 | Used by:113 1246 1268 1303 1329 1385 1403 1426 1437 1447 1449 1458 1460 1461 1462 1463 1467 1469 1476 1501 1503 1505 1509 1510 1514 1516 1517 1518 1522 1525 1526 1527 1529 1534 1537 1538 1543 1569 1570 |
Symbol 109 Graphic | Used by:110 486 | |
Symbol 110 MovieClip {Screw} | Uses:109 | Used by:113 1246 1268 1303 1329 1385 1403 1426 1437 1447 1449 1458 1460 1461 1462 1463 1467 1469 1476 1501 1503 1505 1509 1510 1514 1516 1517 1518 1519 1522 1525 1526 1527 1529 1534 1537 1538 1543 1569 1570 |
Symbol 111 Graphic | Used by:112 | |
Symbol 112 MovieClip {RopeRings} | Uses:111 | Used by:113 1246 1268 1303 1329 1385 1403 1426 1437 1447 1449 1458 1460 1461 1462 1463 1467 1469 1476 1501 1503 1505 1509 1510 1514 1516 1517 1518 1519 1522 1525 1526 1527 1529 1534 1537 1538 1543 1569 1570 |
Symbol 113 MovieClip | Uses:98 100 106 108 110 112 | Used by:141 1150 |
Symbol 114 Graphic | Used by:115 | |
Symbol 115 MovieClip | Uses:114 | Used by:141 1557 |
Symbol 116 Graphic | Used by:117 | |
Symbol 117 MovieClip | Uses:116 | Used by:119 |
Symbol 118 Graphic | Used by:119 802 | |
Symbol 119 Button {CloseCross} | Uses:117 118 | Used by:141 1557 |
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 702 1150 |
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 852 | |
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 1437 1440 1441 1444 1447 1557 |
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 846 922 | |
Symbol 343 MovieClip {звёздочка} | Uses:342 | Used by:345 348 351 354 357 360 363 366 369 372 375 378 382 386 392 846 922 |
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 961 962 |
Symbol 394 Graphic | Used by:395 397 860 862 | |
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 847 963 1150 1557 1563 |
Symbol 398 Text | Uses:15 | Used by:400 |
Symbol 399 Graphic | Used by:400 509 778 1555 | |
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_612} | 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 1157 1546 | |
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 1423 |
Symbol 431 Graphic | Used by:460 | |
Symbol 432 Graphic | Used by:460 | |
Symbol 433 Graphic | Used by:460 | |
Symbol 434 Graphic | Used by:460 1423 | |
Symbol 435 Graphic | Used by:460 1423 | |
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 1423 |
Symbol 440 Graphic | Used by:441 | |
Symbol 441 MovieClip | Uses:440 | Used by:460 1423 |
Symbol 442 Graphic | Used by:460 1423 | |
Symbol 443 Graphic | Used by:460 1423 | |
Symbol 444 Graphic | Used by:460 1423 | |
Symbol 445 Graphic | Used by:460 1423 | |
Symbol 446 Graphic | Used by:460 1423 | |
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 1329 1449 1467 1469 1514 1526 1538 |
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 702 847 1246 1385 1403 1426 1447 1449 1476 1501 1503 1504 1505 1509 1510 1512 1514 1517 1522 1526 1527 1534 1538 1543 1551 1552 1553 1554 1557 1569 |
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 1246 1268 1303 1329 1385 1403 1426 1437 1440 1441 1444 1447 1449 1458 1460 1461 1462 1463 1467 1469 1476 1501 1503 1504 1505 1506 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1522 1525 1526 1527 1529 1534 1537 1538 1543 1569 1570 1571 1572 |
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 1246 1268 1303 1385 1403 1426 1463 1467 1510 1513 1516 1518 1519 1522 1529 1551 1552 1553 1554 1569 |
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 1587 |
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 1587 |
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:702 |
Symbol 615 Graphic | Used by:702 | |
Symbol 616 Graphic | Used by:702 | |
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:702 |
Symbol 621 Graphic | Used by:622 | |
Symbol 622 MovieClip | Uses:621 | Used by:623 |
Symbol 623 MovieClip | Uses:622 | Used by:702 |
Symbol 624 Graphic | Used by:625 | |
Symbol 625 MovieClip | Uses:624 | Used by:702 |
Symbol 626 Graphic | Used by:702 | |
Symbol 627 Graphic | Used by:628 | |
Symbol 628 MovieClip | Uses:627 | Used by:702 |
Symbol 629 Graphic | Used by:630 | |
Symbol 630 MovieClip | Uses:629 | Used by:702 |
Symbol 631 Graphic | Used by:651 | |
Symbol 632 Graphic | Used by:651 | |
Symbol 633 Graphic | Used by:651 726 747 749 | |
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 726 747 749 | |
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:702 |
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:702 |
Symbol 659 Graphic | Used by:660 | |
Symbol 660 MovieClip | Uses:659 | Used by:702 |
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:702 |
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:702 |
Symbol 671 Button | Uses:25 | Used by:685 |
Symbol 672 Graphic | Used by:673 677 691 695 867 871 | |
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:702 |
Symbol 686 MovieClip | Uses:19 | Used by:689 690 699 700 |
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:701 |
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:701 |
Symbol 696 Graphic | Used by:697 698 700 | |
Symbol 697 MovieClip | Uses:696 | Used by:700 |
Symbol 698 MovieClip | Uses:696 | Used by:699 |
Symbol 699 MovieClip | Uses:686 698 | Used by:700 |
Symbol 700 Button | Uses:686 697 699 19 696 | Used by:701 |
Symbol 701 MovieClip {Gibbets_II_fla.LeftPanel_542} | Uses:690 695 700 | Used by:702 |
Symbol 702 MovieClip {MainMenuStateView} | Uses:615 2 43 28 466 40 616 620 623 625 626 628 630 651 658 660 664 670 685 701 614 140 | |
Symbol 703 Graphic | Used by:704 | |
Symbol 704 MovieClip | Uses:703 | Used by:705 |
Symbol 705 MovieClip {VultureShootingRules} | Uses:704 | |
Symbol 706 Graphic | Used by:707 | |
Symbol 707 MovieClip {VultureFeathers} | Uses:706 | |
Symbol 708 Graphic | Used by:726 | |
Symbol 709 Graphic | Used by:726 | |
Symbol 710 Graphic | Used by:726 | |
Symbol 711 Graphic | Used by:726 | |
Symbol 712 Graphic | Used by:726 | |
Symbol 713 Graphic | Used by:726 | |
Symbol 714 Graphic | Used by:726 | |
Symbol 715 Graphic | Used by:726 | |
Symbol 716 Graphic | Used by:726 | |
Symbol 717 Graphic | Used by:726 | |
Symbol 718 Graphic | Used by:726 | |
Symbol 719 Graphic | Used by:726 | |
Symbol 720 Graphic | Used by:726 | |
Symbol 721 Graphic | Used by:726 | |
Symbol 722 Graphic | Used by:723 | |
Symbol 723 MovieClip | Uses:722 | Used by:726 |
Symbol 724 Graphic | Used by:725 | |
Symbol 725 MovieClip | Uses:724 | Used by:726 |
Symbol 726 MovieClip {Gibbets_II_fla.vulture_copy3_506} | Uses:708 709 633 710 711 712 713 714 715 716 717 718 719 720 721 723 648 725 | Used by:727 |
Symbol 727 MovieClip {VultureDie} | Uses:726 | |
Symbol 728 Graphic | Used by:747 749 | |
Symbol 729 Graphic | Used by:747 749 | |
Symbol 730 Graphic | Used by:747 749 | |
Symbol 731 Graphic | Used by:747 749 | |
Symbol 732 Graphic | Used by:747 749 | |
Symbol 733 Graphic | Used by:747 749 | |
Symbol 734 Graphic | Used by:747 749 | |
Symbol 735 Graphic | Used by:747 749 | |
Symbol 736 Graphic | Used by:747 749 | |
Symbol 737 Graphic | Used by:747 749 | |
Symbol 738 Graphic | Used by:747 749 | |
Symbol 739 Graphic | Used by:747 749 | |
Symbol 740 Graphic | Used by:747 749 | |
Symbol 741 Graphic | Used by:747 749 | |
Symbol 742 Graphic | Used by:747 749 | |
Symbol 743 Graphic | Used by:744 | |
Symbol 744 MovieClip | Uses:743 | Used by:747 749 |
Symbol 745 Graphic | Used by:746 | |
Symbol 746 MovieClip | Uses:745 | Used by:747 749 |
Symbol 747 MovieClip | Uses:728 729 730 633 731 732 733 734 735 736 737 738 739 740 741 742 744 648 746 | Used by:748 |
Symbol 748 MovieClip {VultureBend} | Uses:747 | |
Symbol 749 MovieClip | Uses:728 729 730 633 731 732 733 734 735 736 737 738 739 740 741 742 744 648 746 | Used by:750 1402 1448 |
Symbol 750 MovieClip {VultureJump} | Uses:749 | |
Symbol 751 Graphic | Used by:752 | |
Symbol 752 MovieClip {States.GrifShooting.VultureShelf} | Uses:751 | |
Symbol 753 Graphic | Used by:754 | |
Symbol 754 MovieClip | Uses:753 | Used by:755 |
Symbol 755 MovieClip | Uses:754 | Used by:759 765 768 772 816 819 822 824 |
Symbol 756 Graphic | Used by:759 772 816 824 | |
Symbol 757 Graphic | Used by:758 | |
Symbol 758 MovieClip | Uses:757 | Used by:759 765 768 772 |
Symbol 759 MovieClip | Uses:755 756 758 | Used by:773 |
Symbol 760 EditableText | Uses:15 949 | Used by:773 |
Symbol 761 Graphic | Used by:762 | |
Symbol 762 MovieClip | Uses:761 | Used by:763 |
Symbol 763 MovieClip | Uses:762 | Used by:773 825 |
Symbol 764 Graphic | Used by:765 | |
Symbol 765 MovieClip | Uses:755 764 758 | Used by:773 |
Symbol 766 EditableText | Uses:15 949 | Used by:773 |
Symbol 767 Graphic | Used by:768 | |
Symbol 768 MovieClip | Uses:755 767 758 | Used by:773 |
Symbol 769 EditableText | Uses:15 949 | Used by:773 |
Symbol 770 Graphic | Used by:771 | |
Symbol 771 MovieClip | Uses:770 | Used by:772 824 |
Symbol 772 MovieClip | Uses:755 756 771 758 | Used by:773 |
Symbol 773 MovieClip {SelectLevelBonusButton} | Uses:759 760 763 765 766 768 769 772 | Used by:826 |
Symbol 774 Graphic | Used by:775 | |
Symbol 775 MovieClip {Back2} | Uses:774 | Used by:847 1268 1303 1403 1476 1505 1513 1515 1522 1527 1534 1537 |
Symbol 776 Graphic | Used by:847 | |
Symbol 777 Text | Uses:15 | Used by:778 1555 |
Symbol 778 MovieClip | Uses:777 399 | Used by:779 |
Symbol 779 MovieClip | Uses:778 | Used by:847 |
Symbol 780 EditableText | Uses:15 949 | Used by:783 |
Symbol 781 Graphic | Used by:782 | |
Symbol 782 MovieClip | Uses:781 | Used by:783 |
Symbol 783 MovieClip | Uses:780 782 | Used by:847 1150 1557 |
Symbol 784 MovieClip | Uses:19 | Used by:787 788 |
Symbol 785 Graphic | Used by:786 788 | |
Symbol 786 MovieClip | Uses:785 | Used by:787 788 |
Symbol 787 MovieClip | Uses:784 786 | Used by:788 |
Symbol 788 Button | Uses:784 786 787 19 785 | Used by:847 1150 1557 |
Symbol 789 Graphic | Used by:796 | |
Symbol 790 Graphic | Used by:795 | |
Symbol 791 Graphic | Used by:792 | |
Symbol 792 MovieClip | Uses:791 | Used by:795 |
Symbol 793 Graphic | Used by:795 | |
Symbol 794 Graphic | Used by:795 | |
Symbol 795 MovieClip | Uses:790 792 793 794 | Used by:796 |
Symbol 796 MovieClip {tree_4} | Uses:789 795 | Used by:847 1463 1512 1517 1522 1569 |
Symbol 797 Graphic | Used by:798 | |
Symbol 798 MovieClip {herb} | Uses:797 | Used by:847 1268 1303 1403 1426 1458 1460 1461 1462 1463 1476 1501 1505 1508 1509 1510 1511 1512 1513 1515 1517 1518 1519 1522 1525 1527 1534 1543 1569 1570 |
Symbol 799 Graphic | Used by:802 | |
Symbol 800 Graphic | Used by:801 | |
Symbol 801 MovieClip | Uses:800 | Used by:802 |
Symbol 802 MovieClip | Uses:118 799 801 | Used by:806 |
Symbol 803 Graphic | Used by:804 | |
Symbol 804 MovieClip | Uses:803 | Used by:805 |
Symbol 805 MovieClip | Uses:804 | Used by:806 |
Symbol 806 MovieClip {Ground} | Uses:802 805 | Used by:847 1246 1268 1303 1329 1403 1426 1449 1458 1460 1461 1462 1463 1467 1469 1476 1501 1505 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1522 1525 1526 1527 1534 1537 1538 1543 1569 1570 |
Symbol 807 Graphic | Used by:808 | |
Symbol 808 MovieClip | Uses:807 | Used by:815 |
Symbol 809 Graphic | Used by:814 | |
Symbol 810 Graphic | Used by:811 | |
Symbol 811 MovieClip | Uses:810 | Used by:814 1274 |
Symbol 812 Graphic | Used by:814 | |
Symbol 813 Graphic | Used by:814 | |
Symbol 814 MovieClip | Uses:809 811 812 813 | Used by:815 |
Symbol 815 MovieClip {tree_6} | Uses:808 814 | Used by:847 1303 1543 |
Symbol 816 MovieClip | Uses:755 756 | Used by:825 |
Symbol 817 EditableText | Uses:15 949 | Used by:825 |
Symbol 818 Graphic | Used by:819 | |
Symbol 819 MovieClip | Uses:755 818 | Used by:825 |
Symbol 820 EditableText | Uses:15 949 | Used by:825 |
Symbol 821 Graphic | Used by:822 | |
Symbol 822 MovieClip | Uses:755 821 | Used by:825 |
Symbol 823 EditableText | Uses:15 949 | Used by:825 |
Symbol 824 MovieClip | Uses:755 756 771 | Used by:825 |
Symbol 825 MovieClip {SelectLevelButton} | Uses:816 817 763 819 820 822 823 824 | Used by:826 1557 |
Symbol 826 MovieClip | Uses:825 773 | Used by:847 |
Symbol 827 Graphic | Used by:830 833 835 | |
Symbol 828 Graphic | Used by:829 835 | |
Symbol 829 MovieClip | Uses:828 | Used by:830 |
Symbol 830 MovieClip | Uses:827 829 | Used by:835 |
Symbol 831 Graphic | Used by:832 | |
Symbol 832 MovieClip | Uses:831 | Used by:833 |
Symbol 833 MovieClip | Uses:827 832 | Used by:834 |
Symbol 834 MovieClip {LongShootArrow} | Uses:833 | Used by:835 |
Symbol 835 Button {GuiArrow} | Uses:830 834 827 828 | Used by:847 1557 |
Symbol 836 Graphic | Used by:837 846 | |
Symbol 837 MovieClip | Uses:836 | Used by:838 |
Symbol 838 MovieClip | Uses:837 | Used by:843 845 846 |
Symbol 839 Graphic | Used by:840 846 | |
Symbol 840 MovieClip | Uses:839 | Used by:843 845 846 |
Symbol 841 Graphic | Used by:846 | |
Symbol 842 Graphic | Used by:843 | |
Symbol 843 MovieClip | Uses:838 840 842 | Used by:846 |
Symbol 844 Graphic | Used by:845 846 | |
Symbol 845 MovieClip | Uses:838 840 844 | Used by:846 |
Symbol 846 Button | Uses:838 840 841 343 843 845 836 839 844 342 | Used by:847 1557 |
Symbol 847 MovieClip {SelectLevelStateView} | Uses:2 31 37 8 466 775 776 779 783 788 397 796 798 806 815 826 835 846 | |
Symbol 848 Graphic | Used by:849 | |
Symbol 849 MovieClip | Uses:848 | Used by:879 923 932 |
Symbol 850 Graphic | Used by:879 | |
Symbol 851 Graphic | Used by:879 | |
Symbol 852 MovieClip | Uses:188 | Used by:857 |
Symbol 853 Graphic | Used by:854 | |
Symbol 854 MovieClip | Uses:853 | Used by:857 |
Symbol 855 Graphic | Used by:856 | |
Symbol 856 MovieClip | Uses:855 | Used by:857 |
Symbol 857 MovieClip | Uses:852 854 856 | Used by:879 923 932 |
Symbol 858 Graphic | Used by:879 | |
Symbol 859 MovieClip | Uses:19 | Used by:861 862 865 866 885 886 |
Symbol 860 MovieClip | Uses:394 | Used by:861 862 |
Symbol 861 MovieClip | Uses:859 860 | Used by:862 |
Symbol 862 Button | Uses:859 860 861 19 394 | Used by:879 923 932 |
Symbol 863 Graphic | Used by:864 866 960 962 | |
Symbol 864 MovieClip | Uses:863 | Used by:865 866 |
Symbol 865 MovieClip | Uses:859 864 | Used by:866 |
Symbol 866 Button | Uses:859 864 865 19 863 | Used by:879 |
Symbol 867 MovieClip | Uses:672 | Used by:870 871 |
Symbol 868 Graphic | Used by:869 871 | |
Symbol 869 MovieClip | Uses:868 | Used by:870 871 |
Symbol 870 MovieClip | Uses:867 869 | Used by:871 |
Symbol 871 Button | Uses:867 869 870 672 868 | Used by:879 923 932 1150 |
Symbol 872 Text | Uses:15 | Used by:876 |
Symbol 873 Text | Uses:15 | Used by:876 |
Symbol 874 Graphic | Used by:876 | |
Symbol 875 Graphic | Used by:876 | |
Symbol 876 MovieClip | Uses:872 873 874 875 | Used by:879 |
Symbol 877 Graphic | Used by:879 | |
Symbol 878 Graphic | Used by:879 | |
Symbol 879 MovieClip {LoseStateView} | Uses:849 850 851 857 858 862 866 871 876 877 878 | |
Symbol 880 Graphic | Used by:923 | |
Symbol 881 Graphic | Used by:923 | |
Symbol 882 Graphic | Used by:923 | |
Symbol 883 Graphic | Used by:884 886 | |
Symbol 884 MovieClip | Uses:883 | Used by:885 886 |
Symbol 885 MovieClip | Uses:859 884 | Used by:886 |
Symbol 886 Button | Uses:859 884 885 19 883 | Used by:923 932 |
Symbol 887 Text | Uses:15 | Used by:888 |
Symbol 888 MovieClip | Uses:887 | Used by:890 |
Symbol 889 Graphic | Used by:890 | |
Symbol 890 MovieClip | Uses:888 889 | Used by:923 932 |
Symbol 891 Text | Uses:15 | Used by:892 |
Symbol 892 MovieClip | Uses:891 | Used by:923 |
Symbol 893 Text | Uses:15 | Used by:894 |
Symbol 894 MovieClip | Uses:893 | Used by:923 932 |
Symbol 895 Text | Uses:15 | Used by:896 |
Symbol 896 MovieClip | Uses:895 | Used by:923 932 |
Symbol 897 EditableText | Uses:15 949 | Used by:898 |
Symbol 898 MovieClip | Uses:897 | Used by:923 932 |
Symbol 899 EditableText | Uses:15 949 | Used by:900 |
Symbol 900 MovieClip | Uses:899 | Used by:923 932 |
Symbol 901 EditableText | Uses:15 949 | Used by:902 |
Symbol 902 MovieClip | Uses:901 | Used by:923 932 |
Symbol 903 Graphic | Used by:923 | |
Symbol 904 Graphic | Used by:923 | |
Symbol 905 Graphic | Used by:906 | |
Symbol 906 MovieClip | Uses:905 | Used by:910 |
Symbol 907 Graphic | Used by:908 | |
Symbol 908 MovieClip | Uses:907 | Used by:909 |
Symbol 909 MovieClip | Uses:908 | Used by:910 |
Symbol 910 MovieClip | Uses:906 909 | Used by:923 932 |
Symbol 911 EditableText | Uses:15 949 | Used by:923 |
Symbol 912 Graphic | Used by:913 922 | |
Symbol 913 MovieClip | Uses:912 | Used by:914 |
Symbol 914 MovieClip | Uses:913 | Used by:919 921 922 |
Symbol 915 Graphic | Used by:916 922 | |
Symbol 916 MovieClip | Uses:915 | Used by:919 921 922 |
Symbol 917 Graphic | Used by:922 | |
Symbol 918 Graphic | Used by:919 | |
Symbol 919 MovieClip | Uses:914 916 918 | Used by:922 |
Symbol 920 Graphic | Used by:921 922 | |
Symbol 921 MovieClip | Uses:914 916 920 | Used by:922 |
Symbol 922 Button | Uses:914 916 917 343 919 921 912 915 920 342 | Used by:923 932 |
Symbol 923 MovieClip {GrifShootingWinStateView} | Uses:849 880 881 857 882 862 886 890 892 894 896 898 900 902 903 904 910 871 911 922 | |
Symbol 924 Graphic | Used by:932 | |
Symbol 925 Graphic | Used by:932 | |
Symbol 926 Graphic | Used by:932 | |
Symbol 927 Text | Uses:15 | Used by:928 |
Symbol 928 MovieClip | Uses:927 | Used by:932 |
Symbol 929 Graphic | Used by:932 | |
Symbol 930 Graphic | Used by:932 | |
Symbol 931 EditableText | Uses:15 949 | Used by:932 |
Symbol 932 MovieClip {WinStateView} | Uses:849 924 925 857 890 926 862 886 871 928 894 896 898 900 902 929 930 931 910 922 | |
Symbol 933 Graphic | Used by:934 938 | |
Symbol 934 MovieClip | Uses:933 | Used by:937 |
Symbol 935 Graphic | Used by:936 939 | |
Symbol 936 MovieClip | Uses:935 | Used by:937 |
Symbol 937 MovieClip | Uses:934 936 | Used by:942 |
Symbol 938 MovieClip | Uses:933 | Used by:940 943 |
Symbol 939 MovieClip | Uses:935 | Used by:940 |
Symbol 940 MovieClip | Uses:938 939 | Used by:942 |
Symbol 941 Graphic | Used by:942 943 | |
Symbol 942 Button {SoundOff} | Uses:937 940 941 | |
Symbol 943 Button {SoundOn} | Uses:938 941 | |
Symbol 944 EditableText | Uses:15 949 | Used by:945 |
Symbol 945 MovieClip | Uses:944 | Used by:963 1563 |
Symbol 946 Graphic | Used by:947 948 | |
Symbol 947 MovieClip | Uses:946 | Used by:948 |
Symbol 948 Button | Uses:947 946 | Used by:963 |
Symbol 949 Font | Used by:16 760 766 769 780 817 820 823 897 899 901 911 931 944 950 955 984 1558 | |
Symbol 950 EditableText | Uses:949 | Used by:951 |
Symbol 951 MovieClip | Uses:950 | Used by:963 |
Symbol 952 Graphic | Used by:953 | |
Symbol 953 MovieClip | Uses:952 | Used by:954 |
Symbol 954 MovieClip | Uses:953 | Used by:963 1563 |
Symbol 955 EditableText | Uses:949 | Used by:956 |
Symbol 956 MovieClip | Uses:955 | Used by:963 1563 |
Symbol 957 Graphic | Used by:958 | |
Symbol 958 MovieClip | Uses:957 | Used by:959 |
Symbol 959 MovieClip | Uses:958 | Used by:963 1563 |
Symbol 960 MovieClip | Uses:863 | Used by:961 962 |
Symbol 961 MovieClip | Uses:393 960 | Used by:962 |
Symbol 962 Button | Uses:393 960 961 19 863 | Used by:963 1563 |
Symbol 963 MovieClip {PlayStateView} | Uses:397 945 948 951 954 956 959 962 | |
Symbol 964 Graphic | Used by:968 | |
Symbol 965 Graphic | Used by:966 | |
Symbol 966 MovieClip | Uses:965 | Used by:967 |
Symbol 967 MovieClip | Uses:966 | Used by:968 |
Symbol 968 MovieClip {TeleportBack} | Uses:964 967 | |
Symbol 969 Graphic | Used by:971 | |
Symbol 970 Graphic | Used by:971 | |
Symbol 971 MovieClip | Uses:969 970 | Used by:974 977 980 983 |
Symbol 972 Graphic | Used by:973 | |
Symbol 973 MovieClip | Uses:972 | Used by:974 |
Symbol 974 MovieClip {Soul4} | Uses:971 973 | |
Symbol 975 Graphic | Used by:976 | |
Symbol 976 MovieClip | Uses:975 | Used by:977 |
Symbol 977 MovieClip {Soul2} | Uses:971 976 | |
Symbol 978 Graphic | Used by:979 | |
Symbol 979 MovieClip | Uses:978 | Used by:980 |
Symbol 980 MovieClip {Soul1} | Uses:971 979 | |
Symbol 981 Graphic | Used by:982 | |
Symbol 982 MovieClip | Uses:981 | Used by:983 |
Symbol 983 MovieClip {Soul3} | Uses:971 982 | |
Symbol 984 EditableText | Uses:15 949 | Used by:985 |
Symbol 985 MovieClip {States.PlayState.AddPointsEffect} | Uses:984 | |
Symbol 986 Graphic | Used by:987 | |
Symbol 987 MovieClip | Uses:986 | Used by:988 |
Symbol 988 MovieClip {States.PlayState.OutOfArrowsEffect} | Uses:987 | |
Symbol 989 Graphic | Used by:990 | |
Symbol 990 MovieClip {States.PlayState.TurtorialFrame} | Uses: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 {RightLowerHand_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 {LeftLowerHand_4} | Uses:996 997 998 999 | |
Symbol 1001 Graphic | Used by:1005 | |
Symbol 1002 Graphic | Used by:1005 | |
Symbol 1003 Graphic | Used by:1005 | |
Symbol 1004 Graphic | Used by:1005 | |
Symbol 1005 MovieClip {LeftUpperHand_4} | Uses:1001 1002 1003 1004 | |
Symbol 1006 Graphic | Used by:1010 | |
Symbol 1007 Graphic | Used by:1010 | |
Symbol 1008 Graphic | Used by:1010 | |
Symbol 1009 Graphic | Used by:1010 | |
Symbol 1010 MovieClip {RightUpperHand_4} | Uses:1006 1007 1008 1009 | |
Symbol 1011 Graphic | Used by:1013 | |
Symbol 1012 Graphic | Used by:1013 | |
Symbol 1013 MovieClip {Torso1_4} | Uses: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 {Torso3_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 {Torso2_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 {LeftUpperLeg_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 {RightUpperLeg_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 {RightLowerLeg_4} | 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 {LeftLowerLeg_4} | 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 {RightUpperHand_2} | Uses:1044 1045 1046 1047 | |
Symbol 1049 Graphic | Used by:1053 | |
Symbol 1050 Graphic | Used by:1053 | |
Symbol 1051 Graphic | Used by:1053 | |
Symbol 1052 Graphic | Used by:1053 | |
Symbol 1053 MovieClip {LeftLowerHand_2} | Uses:1049 1050 1051 1052 | |
Symbol 1054 Graphic | Used by:1058 | |
Symbol 1055 Graphic | Used by:1058 | |
Symbol 1056 Graphic | Used by:1058 | |
Symbol 1057 Graphic | Used by:1058 | |
Symbol 1058 MovieClip {LeftUpperHand_2} | Uses:1054 1055 1056 1057 | |
Symbol 1059 Graphic | Used by:1061 | |
Symbol 1060 Graphic | Used by:1061 | |
Symbol 1061 MovieClip {Torso1_2} | Uses: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 {Torso2_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 {Torso3_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 {LeftUpperLeg_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 {RightLowerLeg_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 {RightUpperLeg_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 {LeftLowerLeg_2} | 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 {RightLowerHand_2} | 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 {LeftUpperHand_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 {LeftLowerHand_1} | Uses:1102 1103 1104 1105 | |
Symbol 1107 Graphic | Used by:1111 | |
Symbol 1108 Graphic | Used by:1111 | |
Symbol 1109 Graphic | Used by:1111 | |
Symbol 1110 Graphic | Used by:1111 | |
Symbol 1111 MovieClip {RightUpperHand_1} | Uses:1107 1108 1109 1110 | |
Symbol 1112 Graphic | Used by:1116 | |
Symbol 1113 Graphic | Used by:1116 | |
Symbol 1114 Graphic | Used by:1116 | |
Symbol 1115 Graphic | Used by:1116 | |
Symbol 1116 MovieClip {Torso2_1} | Uses:1112 1113 1114 1115 | |
Symbol 1117 Graphic | Used by:1119 | |
Symbol 1118 Graphic | Used by:1119 | |
Symbol 1119 MovieClip {Torso1_1} | Uses: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 {Torso3_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 {LeftUpperLeg_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 {RightLowerLeg_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 {RightUpperLeg_1} | Uses:1135 1136 1137 1138 | |
Symbol 1140 Graphic | Used by:1144 | |
Symbol 1141 Graphic | Used by:1144 | |
Symbol 1142 Graphic | Used by:1144 | |
Symbol 1143 Graphic | Used by:1144 | |
Symbol 1144 MovieClip {LeftLowerLeg_1} | Uses:1140 1141 1142 1143 | |
Symbol 1145 Graphic | Used by:1149 | |
Symbol 1146 Graphic | Used by:1149 | |
Symbol 1147 Graphic | Used by:1149 | |
Symbol 1148 Graphic | Used by:1149 | |
Symbol 1149 MovieClip {RightLowerHand_1} | Uses:1145 1146 1147 1148 | |
Symbol 1150 MovieClip {GameCompleteStateView} | Uses:2 8 28 31 34 37 113 40 5 43 783 788 397 871 140 | |
Symbol 1151 Graphic | Used by:1152 | |
Symbol 1152 MovieClip {Sight} | Uses:1151 | |
Symbol 1153 Graphic | Used by:1166 | |
Symbol 1154 Graphic | Used by:1155 | |
Symbol 1155 MovieClip | Uses:1154 | Used by:1166 |
Symbol 1156 Graphic | Used by:1166 | |
Symbol 1157 MovieClip {black_square} | Uses:419 | Used by:1166 1586 |
Symbol 1158 ShapeTweening | Used by:1166 | |
Symbol 1159 ShapeTweening | Used by:1166 | |
Symbol 1160 ShapeTweening | Used by:1166 | |
Symbol 1161 Graphic | Used by:1166 | |
Symbol 1162 Graphic | Used by:1166 | |
Symbol 1163 Graphic | Used by:1166 | |
Symbol 1164 Graphic | Used by:1166 | |
Symbol 1165 Graphic | Used by:1166 | |
Symbol 1166 MovieClip {BowClip} | Uses:1153 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 | |
Symbol 1167 Graphic | Used by:1170 | |
Symbol 1168 Graphic | Used by:1170 | |
Symbol 1169 Graphic | Used by:1170 | |
Symbol 1170 MovieClip {HealthBar} | Uses:1167 1168 1169 | |
Symbol 1171 Graphic | Used by:1172 | |
Symbol 1172 MovieClip {States.PlayState.Arrow} | Uses:1171 | |
Symbol 1173 Graphic | Used by:1177 | |
Symbol 1174 Graphic | Used by:1175 | |
Symbol 1175 MovieClip {AsyncClip} | Uses:1174 | Used by:1177 |
Symbol 1176 Graphic | Used by:1177 | |
Symbol 1177 MovieClip {Back3} | Uses:1173 1175 1176 | Used by:1246 1426 1463 1510 1512 1517 1519 1570 |
Symbol 1178 Graphic | Used by:1179 | |
Symbol 1179 MovieClip {BowPoint} | Uses:1178 | Used by:1246 1268 1303 1329 1385 1403 1426 1437 1440 1441 1444 1447 1449 1458 1460 1461 1462 1463 1467 1469 1476 1501 1503 1504 1505 1506 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1522 1525 1526 1527 1529 1534 1537 1538 1543 1551 1552 1553 1554 1569 1570 |
Symbol 1180 Graphic | Used by:1191 | |
Symbol 1181 Graphic | Used by:1186 | |
Symbol 1182 Graphic | Used by:1183 | |
Symbol 1183 MovieClip | Uses:1182 | Used by:1186 1190 1260 |
Symbol 1184 Graphic | Used by:1186 | |
Symbol 1185 Graphic | Used by:1186 | |
Symbol 1186 MovieClip | Uses:1181 1183 1184 1185 | Used by:1191 |
Symbol 1187 Graphic | Used by:1190 | |
Symbol 1188 Graphic | Used by:1190 | |
Symbol 1189 Graphic | Used by:1190 | |
Symbol 1190 MovieClip | Uses:1187 1183 1188 1189 | Used by:1191 |
Symbol 1191 MovieClip {tree_8} | Uses:1180 1186 1190 | Used by:1246 1511 1519 1525 |
Symbol 1192 Graphic | Used by:1193 | |
Symbol 1193 MovieClip | Uses:1192 | Used by:1200 |
Symbol 1194 Graphic | Used by:1199 | |
Symbol 1195 Graphic | Used by:1196 | |
Symbol 1196 MovieClip | Uses:1195 | Used by:1199 |
Symbol 1197 Graphic | Used by:1199 | |
Symbol 1198 Graphic | Used by:1199 | |
Symbol 1199 MovieClip | Uses:1194 1196 1197 1198 | Used by:1200 |
Symbol 1200 MovieClip {tree_1} | Uses:1193 1199 | Used by:1246 1509 1511 1517 1534 |
Symbol 1201 Graphic | Used by:1208 | |
Symbol 1202 Graphic | Used by:1208 | |
Symbol 1203 Graphic | Used by:1204 1208 | |
Symbol 1204 MovieClip | Uses:1203 | Used by:1208 |
Symbol 1205 Graphic | Used by:1208 | |
Symbol 1206 Graphic | Used by:1208 | |
Symbol 1207 Graphic | Used by:1208 | |
Symbol 1208 MovieClip {flower_4} | Uses:1201 1202 1204 1205 1206 1207 1203 | Used by:1246 1458 1460 1461 1462 1516 1527 1569 |
Symbol 1209 Graphic | Used by:1210 | |
Symbol 1210 MovieClip {Stone0} | Uses:1209 | Used by:1246 1403 1449 1459 1467 1476 1502 1503 1504 1506 1507 1508 1510 1512 1518 1519 1522 1525 1526 1527 1528 1543 1551 1570 |
Symbol 1211 Graphic | Used by:1212 | |
Symbol 1212 MovieClip {Stone1} | Uses:1211 | Used by:1246 1403 1459 1467 1476 1502 1503 1504 1506 1507 1508 1510 1511 1512 1513 1518 1519 1522 1525 1526 1527 1528 1543 1551 1553 1570 |
Symbol 1213 Graphic | Used by:1214 | |
Symbol 1214 MovieClip {Stone2} | Uses:1213 | Used by:1246 1403 1459 1467 1502 1504 1506 1507 1508 1510 1512 1513 1518 1519 1525 1526 1527 1528 1537 1543 1551 1570 |
Symbol 1215 Graphic | Used by:1217 | |
Symbol 1216 Graphic | Used by:1217 | |
Symbol 1217 MovieClip | Uses:1215 1216 | Used by:1218 |
Symbol 1218 MovieClip | Uses:1217 | Used by:1236 |
Symbol 1219 Graphic | Used by:1220 | |
Symbol 1220 MovieClip | Uses:1219 | Used by:1221 |
Symbol 1221 MovieClip | Uses:1220 | Used by:1236 |
Symbol 1222 Graphic | Used by:1223 | |
Symbol 1223 MovieClip | Uses:1222 | Used by:1235 |
Symbol 1224 Graphic | Used by:1225 | |
Symbol 1225 MovieClip | Uses:1224 | Used by:1235 |
Symbol 1226 Graphic | Used by:1235 | |
Symbol 1227 Graphic | Used by:1235 | |
Symbol 1228 Graphic | Used by:1235 | |
Symbol 1229 Graphic | Used by:1235 | |
Symbol 1230 Graphic | Used by:1235 | |
Symbol 1231 Graphic | Used by:1235 | |
Symbol 1232 Graphic | Used by:1235 | |
Symbol 1233 Graphic | Used by:1235 | |
Symbol 1234 Graphic | Used by:1235 | |
Symbol 1235 MovieClip | Uses:1223 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 | Used by:1236 |
Symbol 1236 MovieClip {States.PlayState.Sun} | Uses:1218 1221 1235 | Used by:1246 1268 1303 1385 1403 1426 1463 1476 1501 1503 1505 1506 1509 1510 1511 1512 1513 1515 1516 1518 1519 1522 1525 1527 1529 1534 1537 1543 1552 1569 1570 |
Symbol 1237 Graphic | Used by:1238 1276 1282 1286 1312 | |
Symbol 1238 MovieClip | Uses:1237 | Used by:1243 1396 1443 |
Symbol 1239 Graphic | Used by:1240 | |
Symbol 1240 MovieClip | Uses:1239 | Used by:1243 1396 1443 |
Symbol 1241 Font | Used by:1242 1248 1395 1442 1545 | |
Symbol 1242 Text | Uses:1241 | Used by:1243 |
Symbol 1243 MovieClip {AmmoGhost3} | Uses:1238 1240 1242 | Used by:1246 1444 1449 1538 |
Symbol 1244 Graphic | Used by:1245 | |
Symbol 1245 MovieClip {flower_0} | Uses:1244 | Used by:1246 1268 1458 1460 1461 1462 1476 1501 1513 1543 |
Symbol 1246 MovieClip {Level39} | Uses:2 98 1177 1179 100 108 479 1191 1200 806 1208 112 1210 1212 1214 1236 110 1243 1245 43 466 40 37 507 31 | |
Symbol 1247 Font | Used by:1248 1544 1545 | |
Symbol 1248 EditableText | Uses:1241 1247 | Used by:1249 |
Symbol 1249 MovieClip {AddArrowClip} | Uses:1248 | |
Symbol 1250 Graphic | Used by:1251 | |
Symbol 1251 MovieClip {InvertedGibbetObliquely} | Uses:1250 | Used by:1268 1303 1385 1403 1426 1447 1461 1462 1467 1469 1501 1505 1509 1510 1516 1517 1518 1529 1534 1537 1543 1569 |
Symbol 1252 Font | Used by:1253 1262 1264 1301 1438 1445 1474 1499 1520 1530 1532 1535 1539 1541 1547 1567 | |
Symbol 1253 Text | Uses:1252 | Used by:1254 |
Symbol 1254 MovieClip {ToPullBowHint} | Uses:1253 | Used by:1268 |
Symbol 1255 Graphic | Used by:1256 | |
Symbol 1256 MovieClip | Uses:1255 | Used by:1261 |
Symbol 1257 Graphic | Used by:1260 | |
Symbol 1258 Graphic | Used by:1260 | |
Symbol 1259 Graphic | Used by:1260 | |
Symbol 1260 MovieClip | Uses:1257 1183 1258 1259 | Used by:1261 |
Symbol 1261 MovieClip {tree_2} | Uses:1256 1260 | Used by:1268 1426 1515 1516 1525 1537 |
Symbol 1262 Text | Uses:1252 | Used by:1263 |
Symbol 1263 MovieClip {TryToAimHint} | Uses:1262 | Used by:1268 |
Symbol 1264 Text | Uses:1252 | Used by:1265 |
Symbol 1265 MovieClip {YouWillGetAStar} | Uses:1264 | Used by:1268 |
Symbol 1266 Graphic | Used by:1267 | |
Symbol 1267 MovieClip {HintPoint} | Uses:1266 | Used by:1268 1303 1440 1447 1476 1501 1522 1534 1537 1543 1569 |
Symbol 1268 MovieClip {Level00} | Uses:2 1251 5 1254 507 775 1261 806 31 1263 43 1236 8 1245 798 1265 100 108 479 1179 1267 112 110 | |
Symbol 1269 Graphic | Used by:1270 | |
Symbol 1270 MovieClip | Uses:1269 | Used by:1275 |
Symbol 1271 Graphic | Used by:1274 | |
Symbol 1272 Graphic | Used by:1274 | |
Symbol 1273 Graphic | Used by:1274 | |
Symbol 1274 MovieClip | Uses:1271 811 1272 1273 | Used by:1275 |
Symbol 1275 MovieClip {tree_5} | Uses:1270 1274 | Used by:1303 1516 1534 |
Symbol 1276 MovieClip | Uses:1237 | Used by:1277 |
Symbol 1277 MovieClip | Uses:1276 | Used by:1281 |
Symbol 1278 Graphic | Used by:1279 | |
Symbol 1279 MovieClip | Uses:1278 | Used by:1280 |
Symbol 1280 MovieClip | Uses:1279 | Used by:1281 |
Symbol 1281 MovieClip {ArrowGhost3} | Uses:1277 1280 | Used by:1303 1467 1469 1511 1517 |
Symbol 1282 MovieClip | Uses:1237 | Used by:1285 1524 |
Symbol 1283 Graphic | Used by:1284 | |
Symbol 1284 MovieClip | Uses:1283 | Used by:1285 1523 |
Symbol 1285 MovieClip {ArrowGhost1} | Uses:1282 1284 | Used by:1303 1385 1444 1469 1503 1505 1508 1509 1513 1514 1515 1518 1537 1570 |
Symbol 1286 MovieClip | Uses:1237 | Used by:1289 1292 1401 |
Symbol 1287 Graphic | Used by:1288 | |
Symbol 1288 MovieClip | Uses:1287 | Used by:1289 |
Symbol 1289 MovieClip {PointsGhost500} | Uses:1286 1288 | Used by:1303 1385 1403 1441 1501 1504 1505 1506 1510 1514 1515 1518 1537 1543 1569 |
Symbol 1290 Graphic | Used by:1291 | |
Symbol 1291 MovieClip | Uses:1290 | Used by:1292 |
Symbol 1292 MovieClip {PointsGhost1000} | Uses:1286 1291 | Used by:1303 1440 1441 1444 1467 1505 1508 1512 1515 1519 1522 1570 |
Symbol 1293 Graphic | Used by:1294 | |
Symbol 1294 MovieClip | Uses:1293 | Used by:1300 |
Symbol 1295 Graphic | Used by:1300 | |
Symbol 1296 Graphic | Used by:1300 | |
Symbol 1297 Graphic | Used by:1300 | |
Symbol 1298 Graphic | Used by:1300 | |
Symbol 1299 Graphic | Used by:1300 | |
Symbol 1300 MovieClip {flower_2} | Uses:1294 1295 1296 1297 1298 1299 | Used by:1303 1525 1534 |
Symbol 1301 Text | Uses:1252 | Used by:1302 |
Symbol 1302 MovieClip {ThisIsHedhehogHint} | Uses:1301 | Used by:1303 |
Symbol 1303 MovieClip {Level14} | Uses:2 775 815 100 1275 1251 806 479 1179 1281 98 108 8 28 31 1236 5 507 1285 112 110 1289 1292 1300 798 1302 1267 | |
Symbol 1304 Graphic | Used by:1305 | |
Symbol 1305 MovieClip {OvercastSky} | Uses:1304 | Used by:1329 1449 1467 1469 1514 1526 1538 |
Symbol 1306 Graphic | Used by:1307 | |
Symbol 1307 MovieClip | Uses:1306 | Used by:1308 |
Symbol 1308 MovieClip {tree_9} | Uses:1307 | Used by:1329 1449 1469 1526 |
Symbol 1309 Graphic | Used by:1310 | |
Symbol 1310 MovieClip | Uses:1309 | Used by:1311 |
Symbol 1311 MovieClip {tree_10} | Uses:1310 | Used by:1329 1467 1514 1538 |
Symbol 1312 MovieClip | Uses:1237 | Used by:1316 |
Symbol 1313 Graphic | Used by:1314 | |
Symbol 1314 MovieClip | Uses:1313 | Used by:1315 |
Symbol 1315 MovieClip | Uses:1314 | Used by:1316 |
Symbol 1316 MovieClip {States.PlayState.TeleportGhost} | Uses:1312 1315 | Used by:1329 1437 1467 1501 1504 1508 1510 1513 1514 1517 1526 |
Symbol 1317 Graphic | Used by:1325 | |
Symbol 1318 Graphic | Used by:1319 | |
Symbol 1319 MovieClip | Uses:1318 | Used by:1325 |
Symbol 1320 Graphic | Used by:1321 | |
Symbol 1321 MovieClip | Uses:1320 | Used by:1325 |
Symbol 1322 Graphic | Used by:1323 | |
Symbol 1323 MovieClip | Uses:1322 | Used by:1325 |
Symbol 1324 Graphic | Used by:1325 | |
Symbol 1325 MovieClip {BgStones} | Uses:1317 1319 1321 1323 1324 | Used by:1329 1449 1469 1526 1538 |
Symbol 1326 Graphic | Used by:1327 | |
Symbol 1327 MovieClip | Uses:1326 | Used by:1328 |
Symbol 1328 MovieClip {flower_6} | Uses:1327 | Used by:1329 1449 1467 1469 1514 |
Symbol 1329 MovieClip {Level32} | Uses:1305 8 462 1308 1311 100 806 479 1179 34 98 108 43 1316 112 110 1325 1328 31 28 | |
Symbol 1330 Graphic | Used by:1331 | |
Symbol 1331 MovieClip {BonusGameBack} | Uses:1330 | Used by:1385 1503 1504 1506 1529 1551 1552 1553 1554 |
Symbol 1332 Graphic | Used by:1333 | |
Symbol 1333 MovieClip | Uses:1332 | Used by:1334 |
Symbol 1334 MovieClip {Box} | Uses:1333 | Used by:1385 1403 1476 1503 1513 1516 1538 |
Symbol 1335 Graphic | Used by:1336 | |
Symbol 1336 MovieClip | Uses:1335 | Used by:1337 |
Symbol 1337 MovieClip {Brick} | Uses:1336 | Used by:1385 1440 1441 1444 1506 1517 |
Symbol 1338 Graphic | Used by:1339 | |
Symbol 1339 MovieClip | Uses:1338 | Used by:1384 |
Symbol 1340 Graphic | Used by:1384 | |
Symbol 1341 Graphic | Used by:1342 | |
Symbol 1342 MovieClip | Uses:1341 | Used by:1384 |
Symbol 1343 Bitmap | Used by:1344 1346 1348 1350 1352 1354 1356 1358 1360 1362 | |
Symbol 1344 Graphic | Uses:1343 | Used by:1345 |
Symbol 1345 MovieClip | Uses:1344 | Used by:1384 |
Symbol 1346 Graphic | Uses:1343 | Used by:1347 |
Symbol 1347 MovieClip | Uses:1346 | Used by:1384 |
Symbol 1348 Graphic | Uses:1343 | Used by:1349 |
Symbol 1349 MovieClip | Uses:1348 | Used by:1384 |
Symbol 1350 Graphic | Uses:1343 | Used by:1351 |
Symbol 1351 MovieClip | Uses:1350 | Used by:1384 |
Symbol 1352 Graphic | Uses:1343 | Used by:1353 |
Symbol 1353 MovieClip | Uses:1352 | Used by:1384 |
Symbol 1354 Graphic | Uses:1343 | Used by:1355 |
Symbol 1355 MovieClip | Uses:1354 | Used by:1384 |
Symbol 1356 Graphic | Uses:1343 | Used by:1357 |
Symbol 1357 MovieClip | Uses:1356 | Used by:1384 |
Symbol 1358 Graphic | Uses:1343 | Used by:1359 |
Symbol 1359 MovieClip | Uses:1358 | Used by:1384 |
Symbol 1360 Graphic | Uses:1343 | Used by:1361 |
Symbol 1361 MovieClip | Uses:1360 | Used by:1384 |
Symbol 1362 Graphic | Uses:1343 | Used by:1363 |
Symbol 1363 MovieClip | Uses:1362 | Used by:1384 |
Symbol 1364 Graphic | Used by:1365 | |
Symbol 1365 MovieClip | Uses:1364 | Used by:1384 |
Symbol 1366 Graphic | Used by:1367 | |
Symbol 1367 MovieClip | Uses:1366 | Used by:1384 |
Symbol 1368 Graphic | Used by:1369 | |
Symbol 1369 MovieClip | Uses:1368 | Used by:1384 |
Symbol 1370 Graphic | Used by:1371 | |
Symbol 1371 MovieClip | Uses:1370 | Used by:1384 |
Symbol 1372 Graphic | Used by:1373 | |
Symbol 1373 MovieClip | Uses:1372 | Used by:1384 |
Symbol 1374 Graphic | Used by:1375 | |
Symbol 1375 MovieClip | Uses:1374 | Used by:1384 |
Symbol 1376 Graphic | Used by:1377 | |
Symbol 1377 MovieClip | Uses:1376 | Used by:1384 |
Symbol 1378 Graphic | Used by:1379 | |
Symbol 1379 MovieClip | Uses:1378 | Used by:1384 |
Symbol 1380 Graphic | Used by:1381 | |
Symbol 1381 MovieClip | Uses:1380 | Used by:1384 |
Symbol 1382 Graphic | Used by:1383 | |
Symbol 1383 MovieClip | Uses:1382 | Used by:1384 |
Symbol 1384 MovieClip {States.PlayState.TNTBarrel} | Uses:1339 1340 1342 1345 1347 1349 1351 1353 1355 1357 1359 1361 1363 1365 1367 1369 1371 1373 1375 1377 1379 1381 1383 | Used by:1385 1403 1437 1476 1503 1513 1527 |
Symbol 1385 MovieClip {Level33} | Uses:2 1331 1251 100 479 1179 1334 106 108 110 112 1337 1384 1285 98 1236 1289 28 40 466 31 507 34 | |
Symbol 1386 Graphic | Used by:1387 | |
Symbol 1387 MovieClip | Uses:1386 | Used by:1394 |
Symbol 1388 Graphic | Used by:1393 | |
Symbol 1389 Graphic | Used by:1390 | |
Symbol 1390 MovieClip | Uses:1389 | Used by:1393 |
Symbol 1391 Graphic | Used by:1393 | |
Symbol 1392 Graphic | Used by:1393 | |
Symbol 1393 MovieClip | Uses:1388 1390 1391 1392 | Used by:1394 |
Symbol 1394 MovieClip {tree_3} | Uses:1387 1393 | Used by:1403 1476 1513 1537 |
Symbol 1395 Text | Uses:1241 | Used by:1396 |
Symbol 1396 MovieClip {AmmoGhost10} | Uses:1238 1240 1395 | Used by:1403 1440 1447 1529 1534 |
Symbol 1397 Graphic | Used by:1398 | |
Symbol 1398 MovieClip {Stone3} | Uses:1397 | Used by:1403 1459 1467 1468 1502 1503 1504 1506 1507 1508 1510 1511 1512 1515 1519 1522 1526 1528 1543 1551 1570 |
Symbol 1399 Graphic | Used by:1400 | |
Symbol 1400 MovieClip | Uses:1399 | Used by:1401 |
Symbol 1401 MovieClip {PointsGhost300} | Uses:1286 1400 | Used by:1403 1441 1505 1515 1517 1527 1538 |
Symbol 1402 MovieClip {InvertedVultureHere} | Uses:749 | Used by:1403 1467 1501 1504 1515 |
Symbol 1403 MovieClip {Level36} | Uses:2 775 1394 806 1179 40 1251 100 108 112 110 466 28 1236 8 5 507 31 479 1396 1384 1334 1210 1212 1398 1214 1401 1289 798 1402 | |
Symbol 1404 Graphic | Used by:1408 | |
Symbol 1405 Graphic | Used by:1406 | |
Symbol 1406 MovieClip | Uses:1405 | Used by:1408 |
Symbol 1407 Graphic | Used by:1408 | |
Symbol 1408 MovieClip | Uses:1404 1406 1407 | Used by:1413 |
Symbol 1409 Graphic | Used by:1410 | |
Symbol 1410 MovieClip | Uses:1409 | Used by:1413 |
Symbol 1411 Graphic | Used by:1412 | |
Symbol 1412 MovieClip | Uses:1411 | Used by:1413 |
Symbol 1413 MovieClip {Mill} | Uses:1408 1410 1412 | Used by:1426 1463 1570 |
Symbol 1414 Graphic | Used by:1417 | |
Symbol 1415 Graphic | Used by:1416 | |
Symbol 1416 MovieClip | Uses:1415 | Used by:1417 |
Symbol 1417 MovieClip {MillFan} | Uses:1414 1416 | Used by:1426 1463 1570 |
Symbol 1418 Graphic | Used by:1423 | |
Symbol 1419 Graphic | Used by:1423 | |
Symbol 1420 Graphic | Used by:1423 | |
Symbol 1421 Graphic | Used by:1423 | |
Symbol 1422 Graphic | Used by:1423 | |
Symbol 1423 MovieClip {CowNormal} | Uses:1418 430 1419 1420 434 435 439 441 442 443 444 445 446 1421 1422 | Used by:1424 1572 |
Symbol 1424 MovieClip {CowHere} | Uses:1423 | Used by:1425 1511 1529 1571 |
Symbol 1425 MovieClip {InvertedCowHere} | Uses:1424 | Used by:1426 1512 1522 1529 |
Symbol 1426 MovieClip {Level37} | Uses:2 1177 100 806 479 1179 1251 108 40 1413 1417 112 110 1236 798 1261 466 28 8 5 507 31 1425 | |
Symbol 1427 Graphic | Used by:1428 | |
Symbol 1428 MovieClip | Uses:1427 | Used by:1429 |
Symbol 1429 MovieClip {BrickNoRight} | Uses:1428 | Used by:1436 1444 1517 |
Symbol 1430 Graphic | Used by:1431 | |
Symbol 1431 MovieClip | Uses:1430 | Used by:1432 |
Symbol 1432 MovieClip {BrickNoRightNoLeft} | Uses:1431 | Used by:1436 1444 1517 |
Symbol 1433 Graphic | Used by:1434 | |
Symbol 1434 MovieClip | Uses:1433 | Used by:1435 |
Symbol 1435 MovieClip {BrickNoLeft} | Uses:1434 | Used by:1436 1444 1517 |
Symbol 1436 MovieClip {ComposedStone96} | Uses:1429 1432 1435 | Used by:1437 |
Symbol 1437 MovieClip {Level48} | Uses:290 98 479 1179 43 5 37 40 1436 100 1384 1316 108 112 110 | |
Symbol 1438 Text | Uses:1252 | Used by:1439 |
Symbol 1439 MovieClip {NoArrowsHint} | Uses:1438 | Used by:1440 |
Symbol 1440 MovieClip {Level52} | Uses:290 1179 43 5 37 40 479 1337 1396 1292 1267 1439 | |
Symbol 1441 MovieClip {Level49} | Uses:290 479 1179 43 5 37 40 1337 1401 1289 1292 | |
Symbol 1442 Text | Uses:1241 | Used by:1443 |
Symbol 1443 MovieClip {AmmoGhost5} | Uses:1238 1240 1442 | Used by:1444 1509 1514 1529 1534 |
Symbol 1444 MovieClip {Level50} | Uses:290 479 1179 1285 1429 1432 1435 1337 43 5 37 40 1243 1443 1292 | |
Symbol 1445 Text | Uses:1252 | Used by:1446 |
Symbol 1446 MovieClip {OnlyOneArrowHint} | Uses:1445 | Used by:1447 |
Symbol 1447 MovieClip {Level51} | Uses:290 479 1179 98 100 108 1251 106 1396 1267 1446 466 37 8 31 40 112 110 | |
Symbol 1448 MovieClip {VultureHere} | Uses:749 | Used by:1449 1504 1510 1514 1525 1526 |
Symbol 1449 MovieClip {Level45} | Uses:1305 462 1308 1179 98 100 479 108 806 1243 1210 1448 1325 1328 466 40 37 8 31 110 112 | |
Symbol 1450 Graphic | Used by:1451 | |
Symbol 1451 MovieClip {GiantSky} | Uses:1450 | Used by:1458 1460 1461 1462 |
Symbol 1452 Graphic | Used by:1453 | |
Symbol 1453 MovieClip {LongBack} | Uses:1452 | Used by:1458 1460 1461 1462 |
Symbol 1454 Graphic | Used by:1455 | |
Symbol 1455 MovieClip {LeftEdgeMarker} | Uses:1454 | Used by:1458 1460 1461 1462 |
Symbol 1456 Graphic | Used by:1457 | |
Symbol 1457 MovieClip {RightEdgeMarker} | Uses:1456 | Used by:1458 1460 1461 1462 |
Symbol 1458 MovieClip {Level11} | Uses:1451 1453 479 806 98 100 1179 798 1245 1208 108 112 110 106 1455 1457 | |
Symbol 1459 MovieClip {ComposedStone2} | Uses:1210 1212 1214 1398 | Used by:1460 1505 |
Symbol 1460 MovieClip {Level47} | Uses:1451 1453 479 100 806 1459 98 1179 798 1245 1208 108 112 110 1455 1457 | |
Symbol 1461 MovieClip {Level35} | Uses:1451 1453 479 100 806 1251 1179 798 1245 1208 108 112 110 1455 1457 | |
Symbol 1462 MovieClip {Level23} | Uses:1451 1251 1453 479 100 806 1179 798 1245 1208 108 112 110 1455 1457 | |
Symbol 1463 MovieClip {Level18} | Uses:2 1177 1413 100 796 806 479 1179 98 108 106 1417 110 112 1236 798 43 31 507 5 8 | |
Symbol 1464 Graphic | Used by:1465 | |
Symbol 1465 MovieClip | Uses:1464 | Used by:1466 |
Symbol 1466 MovieClip {flower_5} | Uses:1465 | Used by:1467 1514 1526 |
Symbol 1467 MovieClip {Level38} | Uses:1305 98 479 462 1311 1179 1281 1210 1212 1214 1398 806 1251 100 106 108 112 1316 110 1292 1466 1328 43 31 507 5 34 1402 | |
Symbol 1468 MovieClip {ComposedStone99} | Uses:1398 | Used by:1469 1514 |
Symbol 1469 MovieClip {Level43} | Uses:1305 479 1251 100 462 1308 1179 108 1325 1328 806 1281 112 34 37 40 1285 110 1468 28 43 | |
Symbol 1470 Graphic | Used by:1473 | |
Symbol 1471 Graphic | Used by:1473 | |
Symbol 1472 Graphic | Used by:1473 | |
Symbol 1473 MovieClip {flower_1} | Uses:1470 1471 1472 | Used by:1476 |
Symbol 1474 Text | Uses:1252 | Used by:1475 |
Symbol 1475 MovieClip {ThisIsTNTHint} | Uses:1474 | Used by:1476 |
Symbol 1476 MovieClip {Level12} | Uses:2 775 1394 1179 806 1334 98 100 108 479 1384 34 1210 1212 1236 110 798 1473 1245 112 466 40 37 8 1267 1475 | |
Symbol 1477 Graphic | Used by:1478 | |
Symbol 1478 MovieClip {Back1} | Uses:1477 | Used by:1501 1508 1509 1511 1516 1518 1525 1543 1569 |
Symbol 1479 Graphic | Used by:1480 | |
Symbol 1480 MovieClip | Uses:1479 | Used by:1491 |
Symbol 1481 Graphic | Used by:1486 | |
Symbol 1482 Graphic | Used by:1483 | |
Symbol 1483 MovieClip | Uses:1482 | Used by:1486 1490 |
Symbol 1484 Graphic | Used by:1486 | |
Symbol 1485 Graphic | Used by:1486 | |
Symbol 1486 MovieClip | Uses:1481 1483 1484 1485 | Used by:1491 |
Symbol 1487 Graphic | Used by:1490 | |
Symbol 1488 Graphic | Used by:1490 | |
Symbol 1489 Graphic | Used by:1490 | |
Symbol 1490 MovieClip | Uses:1487 1483 1488 1489 | Used by:1491 |
Symbol 1491 MovieClip {tree_7} | Uses:1480 1486 1490 | Used by:1501 1509 1518 1527 |
Symbol 1492 Graphic | Used by:1498 | |
Symbol 1493 Graphic | Used by:1498 | |
Symbol 1494 Graphic | Used by:1498 | |
Symbol 1495 Graphic | Used by:1498 | |
Symbol 1496 Graphic | Used by:1498 | |
Symbol 1497 Graphic | Used by:1498 | |
Symbol 1498 MovieClip {flower_3} | Uses:1492 1493 1494 1495 1496 1497 | Used by:1501 1537 1543 |
Symbol 1499 Text | Uses:1252 | Used by:1500 |
Symbol 1500 MovieClip {TeleportHint} | Uses:1499 | Used by:1501 |
Symbol 1501 MovieClip {Level06} | Uses:2 1478 1491 806 1179 1251 100 479 106 108 98 1316 1267 112 1289 110 1498 1245 798 1236 1402 8 28 37 40 466 1500 | |
Symbol 1502 MovieClip {ComposedStone1} | Uses:1212 1214 1398 1210 | Used by:1503 |
Symbol 1503 MovieClip {Level15} | Uses:2 1331 1179 1384 479 34 1334 1212 98 100 1398 1210 108 1285 1502 1236 110 112 37 28 466 | |
Symbol 1504 MovieClip {Level44} | Uses:2 1179 479 1210 1212 1214 1398 1331 1316 1289 1448 1402 43 31 8 28 466 | |
Symbol 1505 MovieClip {Level09} | Uses:2 775 1459 1179 1251 100 479 108 112 110 806 1236 1285 1401 1289 1292 798 466 40 37 28 8 34 | |
Symbol 1506 MovieClip {Level30} | Uses:2 1331 1179 479 1337 1210 1212 1214 1398 1289 1236 43 31 40 37 | |
Symbol 1507 MovieClip {ComposedStone55} | Uses:1210 1212 1214 1398 | Used by:1508 |
Symbol 1508 MovieClip {Level31} | Uses:2 1478 1507 806 479 1179 1316 1210 1212 1214 1398 1292 1285 798 | |
Symbol 1509 MovieClip {Level13} | Uses:2 1251 1478 1491 1200 1179 100 108 479 112 110 806 1285 106 1236 798 28 40 31 43 466 1443 | |
Symbol 1510 MovieClip {Level10} | Uses:2 1177 1251 1179 98 100 108 479 112 110 1212 806 1214 1398 1210 1316 1289 798 1236 37 34 507 31 466 1448 | |
Symbol 1511 MovieClip {Level34} | Uses:2 1478 1179 1200 1191 806 479 1212 1398 1281 1424 798 40 8 31 43 1236 | |
Symbol 1512 MovieClip {Level24} | Uses:2 1177 1179 1210 796 806 1212 479 1398 1214 1425 1292 1236 798 40 37 34 31 466 | |
Symbol 1513 MovieClip {Level28} | Uses:2 775 1394 1334 1179 806 479 1384 1212 1214 1316 1285 798 1245 1236 8 28 37 507 31 | |
Symbol 1514 MovieClip {Level27} | Uses:1305 462 1179 479 1311 806 1285 98 100 1468 108 1316 1443 1289 1328 1466 1448 466 40 8 5 31 43 112 110 | |
Symbol 1515 MovieClip {Level46} | Uses:2 775 1179 479 806 1261 1285 1401 1289 1292 1398 1236 1402 798 37 28 8 34 | |
Symbol 1516 MovieClip {Level26} | Uses:2 1478 1275 1179 479 1251 100 108 110 112 1261 806 1334 1208 1236 43 31 507 5 34 | |
Symbol 1517 MovieClip {Level22} | Uses:2 1177 796 1179 479 1251 100 108 110 112 1337 1200 806 1316 106 1281 1435 1432 1429 1401 798 466 40 37 28 8 5 | |
Symbol 1518 MovieClip {Level21} | Uses:2 1478 1491 1179 1214 806 479 1285 1251 100 108 1212 1210 1236 110 112 1289 798 43 31 507 5 8 | |
Symbol 1519 MovieClip {Level42} | Uses:2 1236 1177 1210 1212 1214 1179 1191 806 100 479 507 1398 1292 110 112 798 28 8 34 31 | |
Symbol 1520 Text | Uses:1252 | Used by:1521 |
Symbol 1521 MovieClip {InvertControlHint} | Uses:1520 | Used by:1522 |
Symbol 1522 MovieClip {Level04} | Uses:2 775 796 1210 1212 1398 1179 479 806 1236 100 108 1425 798 466 40 28 8 507 31 1292 112 110 1521 1267 | |
Symbol 1523 MovieClip | Uses:1284 | Used by:1524 |
Symbol 1524 MovieClip {ArrowGhost4} | Uses:1282 1523 | Used by:1525 1526 |
Symbol 1525 MovieClip {Level19} | Uses:2 1478 479 98 100 108 112 1179 1524 106 110 1210 1191 1261 806 1212 1214 1236 798 1300 31 5 8 28 34 1448 | |
Symbol 1526 MovieClip {Level25} | Uses:1305 462 1179 479 98 100 1210 1212 1214 1398 1308 806 1524 1316 108 110 112 1325 1448 43 31 34 28 37 466 1466 | |
Symbol 1527 MovieClip {Level16} | Uses:2 1236 775 1210 1212 1214 1179 479 98 100 1491 806 108 110 112 1384 798 1208 466 37 28 8 5 1401 | |
Symbol 1528 MovieClip {ComposedStone98} | Uses:1210 1212 1214 1398 | Used by:1529 |
Symbol 1529 MovieClip {Level20} | Uses:2 1528 1331 1179 106 1251 100 479 108 1425 1424 1396 1443 110 112 1236 43 31 507 28 | |
Symbol 1530 Text | Uses:1252 | Used by:1531 |
Symbol 1531 MovieClip {AmmoHint} | Uses:1530 | Used by:1534 |
Symbol 1532 Text | Uses:1252 | Used by:1533 |
Symbol 1533 MovieClip {TheAmountOfArrows} | Uses:1532 | Used by:1534 |
Symbol 1534 MovieClip {Level02} | Uses:2 775 1200 1275 1179 479 98 100 108 806 112 110 1443 1396 1251 106 1267 1531 798 1300 1236 466 40 28 8 34 1533 | |
Symbol 1535 Text | Uses:1252 | Used by:1536 |
Symbol 1536 MovieClip {ArrowGhostHint} | Uses:1535 | Used by:1537 |
Symbol 1537 MovieClip {Level07} | Uses:2 775 1394 1251 1261 1179 479 100 108 806 112 110 1236 1285 1267 1214 1536 1289 1498 37 28 8 5 31 | |
Symbol 1538 MovieClip {Level08} | Uses:1305 462 1334 1179 479 98 100 108 1311 806 112 110 37 28 8 34 466 1401 1325 1243 | |
Symbol 1539 Text | Uses:1252 | Used by:1540 |
Symbol 1540 MovieClip {ComboSave2Hint} | Uses:1539 | Used by:1543 |
Symbol 1541 Text | Uses:1252 | Used by:1542 |
Symbol 1542 MovieClip {ComboSave3Hint} | Uses:1541 | Used by:1543 |
Symbol 1543 MovieClip {Level03} | Uses:2 1251 1478 1398 1179 479 98 100 108 1210 1212 1214 815 806 112 110 798 1245 1498 1236 37 28 8 34 466 1289 1267 1540 1542 | |
Symbol 1544 Text | Uses:1247 | Used by:1546 |
Symbol 1545 EditableText | Uses:1241 1247 | Used by:1546 |
Symbol 1546 MovieClip {UrlLockedStateView} | Uses:419 1544 1545 | |
Symbol 1547 Text | Uses:1252 | Used by:1548 |
Symbol 1548 MovieClip {ThisIsSingleHedhehogHint} | Uses:1547 | |
Symbol 1549 Graphic | Used by:1550 | |
Symbol 1550 MovieClip {States.PlayState.Blood} | Uses:1549 | |
Symbol 1551 MovieClip {Level41} | Uses:2 1331 1179 507 5 34 8 28 37 40 466 31 43 1210 1212 1214 1398 | |
Symbol 1552 MovieClip {Level29} | Uses:2 1331 1179 507 5 34 8 28 37 40 466 31 43 1236 | |
Symbol 1553 MovieClip {Level17} | Uses:2 1331 1179 507 5 34 8 28 37 40 466 1212 31 43 | |
Symbol 1554 MovieClip {Level05} | Uses:2 1331 1179 43 31 507 5 34 8 28 37 40 466 | |
Symbol 1555 MovieClip | Uses:777 399 | Used by:1556 |
Symbol 1556 MovieClip | Uses:1555 | Used by:1557 |
Symbol 1557 MovieClip {SelectSecretLevelStateView} | Uses:290 466 37 8 34 1556 783 788 397 825 835 31 846 115 119 | |
Symbol 1558 EditableText | Uses:15 949 | Used by:1559 |
Symbol 1559 MovieClip | Uses:1558 | Used by:1563 |
Symbol 1560 Graphic | Used by:1561 | |
Symbol 1561 MovieClip | Uses:1560 | Used by:1562 |
Symbol 1562 MovieClip | Uses:1561 | Used by:1563 |
Symbol 1563 MovieClip {GrifShootingStateView} | Uses:397 945 954 956 959 962 1559 1562 | |
Symbol 1564 Graphic | Used by:1565 | |
Symbol 1565 MovieClip | Uses:1564 | Used by:1566 |
Symbol 1566 MovieClip {TimeIsOutEffect} | Uses:1565 | |
Symbol 1567 Text | Uses:1252 | Used by:1568 |
Symbol 1568 MovieClip {ThisIsBonusHint} | Uses:1567 | Used by:1569 |
Symbol 1569 MovieClip {Level01} | Uses:2 1251 1478 796 98 100 108 479 112 110 806 1179 1289 1267 1236 43 507 5 28 40 466 798 1568 1208 | |
Symbol 1570 MovieClip {Level40} | Uses:2 1413 1177 1212 1214 98 100 806 1179 479 1417 1398 1210 1285 108 110 112 1292 1236 798 43 5 8 37 | |
Symbol 1571 MovieClip {InvertedCowMaket} | Uses:1424 479 | |
Symbol 1572 MovieClip {CowMaket} | Uses:1423 479 | |
Symbol 1573 Graphic | Used by:1574 1576 | |
Symbol 1574 MovieClip | Uses:1573 | Used by:1576 |
Symbol 1575 Graphic | Used by:1576 1579 | |
Symbol 1576 Button | Uses:1574 1575 1573 | Used by:1580 |
Symbol 1577 Graphic | Used by:1578 1579 | |
Symbol 1578 MovieClip | Uses:1577 | Used by:1579 |
Symbol 1579 Button | Uses:1578 1575 1577 | Used by:1580 |
Symbol 1580 MovieClip {MoreGamesPanel} | Uses:1576 1579 | |
Symbol 1581 Font | Used by:1582 1584 | |
Symbol 1582 Text | Uses:1581 | Used by:1583 |
Symbol 1583 MovieClip {ClickToContinue} | Uses:1582 | Used by:1586 |
Symbol 1584 Text | Uses:1581 | Used by:1585 |
Symbol 1585 MovieClip | Uses:1584 | Used by:1586 |
Symbol 1586 MovieClip {GamePausedStateView} | Uses:1157 1585 1583 | |
Symbol 1587 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 701 MovieClip {Gibbets_II_fla.LeftPanel_542} Frame 1 | Symbol 690 Button |
"m_buttonMoreGames" | Symbol 701 MovieClip {Gibbets_II_fla.LeftPanel_542} Frame 1 | Symbol 695 Button |
"m_buttonHighScores" | Symbol 701 MovieClip {Gibbets_II_fla.LeftPanel_542} Frame 1 | Symbol 700 Button |
"m_vulture" | Symbol 702 MovieClip {MainMenuStateView} Frame 1 | Symbol 651 MovieClip {Gibbets_II_fla.shirt_39_519} |
"m_II" | Symbol 702 MovieClip {MainMenuStateView} Frame 1 | Symbol 670 MovieClip {Gibbets_II_fla.shirt_42_527} |
"m_rightButtonsPanel" | Symbol 702 MovieClip {MainMenuStateView} Frame 1 | Symbol 685 MovieClip {Gibbets_II_fla.shirt_44_530} |
"m_leftButtonsPanel" | Symbol 702 MovieClip {MainMenuStateView} Frame 1 | Symbol 701 MovieClip {Gibbets_II_fla.LeftPanel_542} |
"m_comixCloud" | Symbol 702 MovieClip {MainMenuStateView} Frame 1 | Symbol 614 MovieClip {MainMenuCloud1} |
"m_notdoppler" | Symbol 702 MovieClip {MainMenuStateView} Frame 1 | Symbol 140 Button |
"clip" | Symbol 727 MovieClip {VultureDie} Frame 1 | Symbol 726 MovieClip {Gibbets_II_fla.vulture_copy3_506} |
"clip" | Symbol 748 MovieClip {VultureBend} Frame 1 | Symbol 747 MovieClip |
"clip" | Symbol 750 MovieClip {VultureJump} Frame 1 | Symbol 749 MovieClip |
"m_up" | Symbol 773 MovieClip {SelectLevelBonusButton} Frame 1 | Symbol 759 MovieClip |
"m_textUp" | Symbol 773 MovieClip {SelectLevelBonusButton} Frame 1 | Symbol 760 EditableText |
"m_starUp" | Symbol 773 MovieClip {SelectLevelBonusButton} Frame 1 | Symbol 763 MovieClip |
"m_over" | Symbol 773 MovieClip {SelectLevelBonusButton} Frame 1 | Symbol 765 MovieClip |
"m_textOver" | Symbol 773 MovieClip {SelectLevelBonusButton} Frame 1 | Symbol 766 EditableText |
"m_starOver" | Symbol 773 MovieClip {SelectLevelBonusButton} Frame 1 | Symbol 763 MovieClip |
"m_down" | Symbol 773 MovieClip {SelectLevelBonusButton} Frame 1 | Symbol 768 MovieClip |
"m_starDown" | Symbol 773 MovieClip {SelectLevelBonusButton} Frame 1 | Symbol 763 MovieClip |
"m_textDown" | Symbol 773 MovieClip {SelectLevelBonusButton} Frame 1 | Symbol 769 EditableText |
"m_unenable" | Symbol 773 MovieClip {SelectLevelBonusButton} Frame 1 | Symbol 772 MovieClip |
"m_text" | Symbol 783 MovieClip Frame 1 | Symbol 780 EditableText |
"m_up" | Symbol 825 MovieClip {SelectLevelButton} Frame 1 | Symbol 816 MovieClip |
"m_textUp" | Symbol 825 MovieClip {SelectLevelButton} Frame 1 | Symbol 817 EditableText |
"m_starUp" | Symbol 825 MovieClip {SelectLevelButton} Frame 1 | Symbol 763 MovieClip |
"m_over" | Symbol 825 MovieClip {SelectLevelButton} Frame 1 | Symbol 819 MovieClip |
"m_textOver" | Symbol 825 MovieClip {SelectLevelButton} Frame 1 | Symbol 820 EditableText |
"m_starOver" | Symbol 825 MovieClip {SelectLevelButton} Frame 1 | Symbol 763 MovieClip |
"m_down" | Symbol 825 MovieClip {SelectLevelButton} Frame 1 | Symbol 822 MovieClip |
"m_textDown" | Symbol 825 MovieClip {SelectLevelButton} Frame 1 | Symbol 823 EditableText |
"m_starDown" | Symbol 825 MovieClip {SelectLevelButton} Frame 1 | Symbol 763 MovieClip |
"m_unenable" | Symbol 825 MovieClip {SelectLevelButton} Frame 1 | Symbol 824 MovieClip |
"m_level0" | Symbol 826 MovieClip Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level1" | Symbol 826 MovieClip Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level5" | Symbol 826 MovieClip Frame 1 | Symbol 773 MovieClip {SelectLevelBonusButton} |
"m_level2" | Symbol 826 MovieClip Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level3" | Symbol 826 MovieClip Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level4" | Symbol 826 MovieClip Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level6" | Symbol 826 MovieClip Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level7" | Symbol 826 MovieClip Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level11" | Symbol 826 MovieClip Frame 1 | Symbol 773 MovieClip {SelectLevelBonusButton} |
"m_level8" | Symbol 826 MovieClip Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level9" | Symbol 826 MovieClip Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level10" | Symbol 826 MovieClip Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level12" | Symbol 826 MovieClip Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level13" | Symbol 826 MovieClip Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level17" | Symbol 826 MovieClip Frame 1 | Symbol 773 MovieClip {SelectLevelBonusButton} |
"m_level14" | Symbol 826 MovieClip Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level15" | Symbol 826 MovieClip Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level16" | Symbol 826 MovieClip Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level18" | Symbol 826 MovieClip Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level19" | Symbol 826 MovieClip Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level23" | Symbol 826 MovieClip Frame 1 | Symbol 773 MovieClip {SelectLevelBonusButton} |
"m_level20" | Symbol 826 MovieClip Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level21" | Symbol 826 MovieClip Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level22" | Symbol 826 MovieClip Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_totalScore" | Symbol 847 MovieClip {SelectLevelStateView} Frame 1 | Symbol 783 MovieClip |
"m_buttonSubmit" | Symbol 847 MovieClip {SelectLevelStateView} Frame 1 | Symbol 788 Button |
"m_buttonMenu" | Symbol 847 MovieClip {SelectLevelStateView} Frame 1 | Symbol 397 Button |
"m_buttonsPanel" | Symbol 847 MovieClip {SelectLevelStateView} Frame 1 | Symbol 826 MovieClip |
"m_arrowRight" | Symbol 847 MovieClip {SelectLevelStateView} Frame 1 | Symbol 835 Button {GuiArrow} |
"m_arrowUp" | Symbol 847 MovieClip {SelectLevelStateView} Frame 1 | Symbol 835 Button {GuiArrow} |
"m_buttonAchievements" | Symbol 847 MovieClip {SelectLevelStateView} Frame 1 | Symbol 846 Button |
"m_window" | Symbol 879 MovieClip {LoseStateView} Frame 1 | Symbol 857 MovieClip |
"m_buttonMenu" | Symbol 879 MovieClip {LoseStateView} Frame 1 | Symbol 862 Button |
"m_buttonRestart" | Symbol 879 MovieClip {LoseStateView} Frame 1 | Symbol 866 Button |
"m_buttonMoreGames" | Symbol 879 MovieClip {LoseStateView} Frame 1 | Symbol 871 Button |
"m_tmpClip" | Symbol 890 MovieClip Frame 1 | Symbol 888 MovieClip |
"m_text" | Symbol 898 MovieClip Frame 1 | Symbol 897 EditableText |
"m_text" | Symbol 900 MovieClip Frame 1 | Symbol 899 EditableText |
"m_text" | Symbol 902 MovieClip Frame 1 | Symbol 901 EditableText |
"m_perfectSign" | Symbol 910 MovieClip Frame 1 | Symbol 909 MovieClip |
"m_buttonMenu" | Symbol 923 MovieClip {GrifShootingWinStateView} Frame 1 | Symbol 862 Button |
"m_buttonNext" | Symbol 923 MovieClip {GrifShootingWinStateView} Frame 1 | Symbol 886 Button |
"m_accuracy" | Symbol 923 MovieClip {GrifShootingWinStateView} Frame 1 | Symbol 898 MovieClip |
"m_currentScore" | Symbol 923 MovieClip {GrifShootingWinStateView} Frame 1 | Symbol 900 MovieClip |
"m_bestScore" | Symbol 923 MovieClip {GrifShootingWinStateView} Frame 1 | Symbol 902 MovieClip |
"m_star" | Symbol 923 MovieClip {GrifShootingWinStateView} Frame 1 | Symbol 910 MovieClip |
"m_buttonMoreGames" | Symbol 923 MovieClip {GrifShootingWinStateView} Frame 1 | Symbol 871 Button |
"m_levelNum" | Symbol 923 MovieClip {GrifShootingWinStateView} Frame 1 | Symbol 911 EditableText |
"m_buttonNewAchievement" | Symbol 923 MovieClip {GrifShootingWinStateView} Frame 1 | Symbol 922 Button |
"m_buttonMenu" | Symbol 932 MovieClip {WinStateView} Frame 1 | Symbol 862 Button |
"m_buttonNext" | Symbol 932 MovieClip {WinStateView} Frame 1 | Symbol 886 Button |
"m_buttonMoreGames" | Symbol 932 MovieClip {WinStateView} Frame 1 | Symbol 871 Button |
"m_arrowsUsed" | Symbol 932 MovieClip {WinStateView} Frame 1 | Symbol 898 MovieClip |
"m_currentScore" | Symbol 932 MovieClip {WinStateView} Frame 1 | Symbol 900 MovieClip |
"m_bestScore" | Symbol 932 MovieClip {WinStateView} Frame 1 | Symbol 902 MovieClip |
"m_levelNum" | Symbol 932 MovieClip {WinStateView} Frame 1 | Symbol 931 EditableText |
"m_star" | Symbol 932 MovieClip {WinStateView} Frame 1 | Symbol 910 MovieClip |
"m_buttonNewAchievement" | Symbol 932 MovieClip {WinStateView} Frame 1 | Symbol 922 Button |
"m_text" | Symbol 945 MovieClip Frame 1 | Symbol 944 EditableText |
"m_text" | Symbol 951 MovieClip Frame 1 | Symbol 950 EditableText |
"m_text" | Symbol 956 MovieClip Frame 1 | Symbol 955 EditableText |
"m_buttonMenu" | Symbol 963 MovieClip {PlayStateView} Frame 1 | Symbol 397 Button |
"m_scoreClip" | Symbol 963 MovieClip {PlayStateView} Frame 1 | Symbol 945 MovieClip |
"m_levelClip" | Symbol 963 MovieClip {PlayStateView} Frame 1 | Symbol 951 MovieClip |
"m_arrowsLeftClip" | Symbol 963 MovieClip {PlayStateView} Frame 1 | Symbol 956 MovieClip |
"m_buttonReplay" | Symbol 963 MovieClip {PlayStateView} Frame 1 | Symbol 962 Button |
"m_label" | Symbol 985 MovieClip {States.PlayState.AddPointsEffect} Frame 1 | Symbol 984 EditableText |
"m_gibbetFront" | Symbol 1150 MovieClip {GameCompleteStateView} Frame 1 | Symbol 113 MovieClip |
"m_totalScore" | Symbol 1150 MovieClip {GameCompleteStateView} Frame 1 | Symbol 783 MovieClip |
"m_buttonSubmit" | Symbol 1150 MovieClip {GameCompleteStateView} Frame 1 | Symbol 788 Button |
"m_buttonMenu" | Symbol 1150 MovieClip {GameCompleteStateView} Frame 1 | Symbol 397 Button |
"m_buttonMoreGames" | Symbol 1150 MovieClip {GameCompleteStateView} Frame 1 | Symbol 871 Button |
"m_notDoppler" | Symbol 1150 MovieClip {GameCompleteStateView} Frame 1 | Symbol 140 Button |
"m_field" | Symbol 1166 MovieClip {BowClip} Frame 1 | Symbol 1157 MovieClip {black_square} |
"m_sunCircle" | Symbol 1236 MovieClip {States.PlayState.Sun} Frame 1 | Symbol 1221 MovieClip |
"m_face" | Symbol 1236 MovieClip {States.PlayState.Sun} Frame 1 | Symbol 1235 MovieClip |
"m_text" | Symbol 1249 MovieClip {AddArrowClip} Frame 1 | Symbol 1248 EditableText |
"m_ovalClip" | Symbol 1281 MovieClip {ArrowGhost3} Frame 1 | Symbol 1277 MovieClip |
"m_rotatedPath" | Symbol 1281 MovieClip {ArrowGhost3} Frame 1 | Symbol 1280 MovieClip |
"m_rotatedPath" | Symbol 1285 MovieClip {ArrowGhost1} Frame 1 | Symbol 1284 MovieClip |
"clip" | Symbol 1402 MovieClip {InvertedVultureHere} Frame 1 | Symbol 749 MovieClip |
"clip" | Symbol 1448 MovieClip {VultureHere} Frame 1 | Symbol 749 MovieClip |
"m_ovalClip" | Symbol 1524 MovieClip {ArrowGhost4} Frame 1 | Symbol 1282 MovieClip |
"m_rotatedPath" | Symbol 1524 MovieClip {ArrowGhost4} Frame 1 | Symbol 1523 MovieClip |
"m_notDoppler" | Symbol 1546 MovieClip {UrlLockedStateView} Frame 1 | Symbol 1545 EditableText |
"m_totalScore" | Symbol 1557 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 783 MovieClip |
"m_buttonSubmit" | Symbol 1557 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 788 Button |
"m_buttonMenu" | Symbol 1557 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 397 Button |
"m_level48" | Symbol 1557 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level49" | Symbol 1557 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level50" | Symbol 1557 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level51" | Symbol 1557 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_level52" | Symbol 1557 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 825 MovieClip {SelectLevelButton} |
"m_arrowDown" | Symbol 1557 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 835 Button {GuiArrow} |
"m_buttonAchievements" | Symbol 1557 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 846 Button |
"m_adBox" | Symbol 1557 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 115 MovieClip |
"m_closeButton" | Symbol 1557 MovieClip {SelectSecretLevelStateView} Frame 1 | Symbol 119 Button {CloseCross} |
"m_text" | Symbol 1559 MovieClip Frame 1 | Symbol 1558 EditableText |
"m_buttonMenu" | Symbol 1563 MovieClip {GrifShootingStateView} Frame 1 | Symbol 397 Button |
"m_scoreClip" | Symbol 1563 MovieClip {GrifShootingStateView} Frame 1 | Symbol 945 MovieClip |
"m_arrowsLeftClip" | Symbol 1563 MovieClip {GrifShootingStateView} Frame 1 | Symbol 956 MovieClip |
"m_buttonReplay" | Symbol 1563 MovieClip {GrifShootingStateView} Frame 1 | Symbol 962 Button |
"m_timeLeftClip" | Symbol 1563 MovieClip {GrifShootingStateView} Frame 1 | Symbol 1559 MovieClip |
"vertex6" | Symbol 1571 MovieClip {InvertedCowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
"vertex2" | Symbol 1571 MovieClip {InvertedCowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
"vertex1" | Symbol 1571 MovieClip {InvertedCowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
"vertex3" | Symbol 1571 MovieClip {InvertedCowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
"vertex4" | Symbol 1571 MovieClip {InvertedCowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
"vertex5" | Symbol 1571 MovieClip {InvertedCowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
"vertex0" | Symbol 1571 MovieClip {InvertedCowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
"vertex0" | Symbol 1572 MovieClip {CowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
"vertex4" | Symbol 1572 MovieClip {CowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
"vertex5" | Symbol 1572 MovieClip {CowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
"vertex3" | Symbol 1572 MovieClip {CowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
"vertex2" | Symbol 1572 MovieClip {CowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
"vertex1" | Symbol 1572 MovieClip {CowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
"vertex6" | Symbol 1572 MovieClip {CowMaket} Frame 1 | Symbol 479 MovieClip {HangerPoint} |
"m_moreGames" | Symbol 1580 MovieClip {MoreGamesPanel} Frame 1 | Symbol 1576 Button |
"m_walkthrough" | Symbol 1580 MovieClip {MoreGamesPanel} Frame 1 | Symbol 1579 Button |
"m_clickToContinue" | Symbol 1586 MovieClip {GamePausedStateView} Frame 1 | Symbol 1583 MovieClip {ClickToContinue} |
"m_checkBox" | Symbol 1587 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$lO$L34KbeBRm7nD8puJ3y83z.." |
Labels
"normal" | Symbol 1166 MovieClip {BowClip} Frame 1 |
"stretch" | Symbol 1166 MovieClip {BowClip} Frame 2 |
"fire" | Symbol 1166 MovieClip {BowClip} Frame 11 |
|