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

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

raving-rabbids-travel-in-time.swf

This is the info page for
Flash #116701

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


Text
100%

soundbox

partnerlogo

<p align="left"><font face="SignPainter HouseBrush" size="22" color="#fce122" letterSpacing="0.000000" kerning="1">BUY FIGURI</font></p>

Legal lines: © 2010 Ubisoft Entertainment. All Rights
Reserved. Raving Rabbids, Ubisoft and the Ubisoft
logo are trademarks of Ubisoft Entertainment in the
U.S. and/or other countries. Wii and the Wii logo are
trademarks of Nintendo. © 2006 Nintendo.

<p align="left"><font face="SignPainter HouseBrush" size="24" color="#ffffff" letterSpacing="0.000000" kerning="1">PRE-ORDER</font></p>

<p align="left"><font face="SignPainter HouseBrush" size="24" color="#ffffff" letterSpacing="0.000000" kerning="1">PRE-ORDER</font></p>

<p align="left"><font face="SignPainter HouseBrush" size="22" color="#fce122" letterSpacing="0.000000" kerning="1">PLAY THE GAME</font></p>

<p align="left"><font face="SignPainter HouseBrush" size="22" color="#fce122" letterSpacing="0.000000" kerning="1">HIGHSCORES</font></p>

<p align="left"><font face="SignPainter HouseBrush" size="22" color="#fce122" letterSpacing="0.000000" kerning="1">VISIT ISLAND</font></p>

<p align="left"><font face="SignPainter HouseBrush" size="22" color="#fce122" letterSpacing="0.000000" kerning="1">VISIT WEBSITE</font></p>

2

1

3

5

4

6

OK

<p align="center"><font face="Rabbids_go_home" size="24" color="#3c3c3c" letterSpacing="0.000000" kerning="1">LOREM ISPUM DOLOR SIT AMET</font></p>

<p align="center"><font face="Rabbids_go_home" size="37" color="#141414" letterSpacing="1.850000" kerning="1">msg</font></p>

<p align="center"><font face="Rabbids_go_home" size="28" color="#3c3c3c" letterSpacing="0.000000" kerning="1">OOPS!</font></p>

<p align="right"><font face="Rabbids_go_home" size="14" color="#d8d4d4" letterSpacing="1.100000" kerning="1">hom</font></p>

<p align="left"><font face="Rabbids_go_home" size="14" color="#d8d4d4" letterSpacing="1.100000" kerning="1">rply</font></p>

<p align="center"><font face="Rabbids_go_home" size="37" color="#141414" letterSpacing="1.850000" kerning="1">FAILED!</font></p>

<p align="left"><font face="Rabbids_go_home" size="19" color="#fa0014" letterSpacing="0.000000" kerning="1">5678</font></p>

<p align="left"><font face="Rabbids_go_home" size="16" color="#244488" letterSpacing="0.000000" kerning="1">99</font></p>

<p align="left"><font face="Rabbids_go_home" size="16" color="#244488" letterSpacing="0.000000" kerning="1">1234</font></p>

<p align="right"><font face="Rabbids_go_home" size="16" color="#3c3c3c" letterSpacing="0.000000" kerning="1">hitz</font></p>

<p align="right"><font face="Rabbids_go_home" size="19" color="#ffffff" letterSpacing="0.000000" kerning="1">ttl scor</font></p>

<p align="right"><font face="Rabbids_go_home" size="14" color="#d8d4d4" letterSpacing="1.100000" kerning="1">hom</font></p>

<p align="left"><font face="Rabbids_go_home" size="14" color="#d8d4d4" letterSpacing="1.100000" kerning="1">nxt</font></p>

<p align="right"><font face="Rabbids_go_home" size="16" color="#3c3c3c" letterSpacing="0.000000" kerning="1">bns</font></p>

<p align="center"><font face="Rabbids_go_home" size="37" color="#141414" letterSpacing="1.850000" kerning="1">clrd.</font></p>

SCORE

ROLLS

LEVEL

TIME

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

engine

<p align="right"><font face="Rabbids_go_home" size="19" color="#ffffff" letterSpacing="0.000000" kerning="1">TOTAL SCORE</font></p>

<p align="center"><font face="Rabbids_go_home" size="24" color="#3c3c3c" letterSpacing="0.000000" kerning="1">CONGRATULATIONS!</font></p>

<p align="center"><font face="Rabbids_go_home" size="18" color="#3c3c3c" letterSpacing="0.000000" kerning="1">LOREM ISPUM DOLOR SIT AMET</font></p>

<p align="right"><font face="Rabbids_go_home" size="19" color="#fa0014" letterSpacing="0.000000" kerning="1">1234567</font></p>

<p align="left"><font face="SignPainter HouseBrush" size="26" color="#ffffff" letterSpacing="0.000000" kerning="1">BUY NOW</font></p>

ActionScript [AS3]

Section 1
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2CircleDef extends b2ShapeDef { public var localPosition:b2Vec2; public var radius:Number; public function b2CircleDef(){ localPosition = new b2Vec2(0, 0); super(); type = b2Shape.e_circleShape; radius = 1; } } }//package Box2D.Collision.Shapes
Section 2
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { b2internal var m_localPosition:b2Vec2; b2internal var m_radius:Number; public function b2CircleShape(_arg1:b2ShapeDef){ var _local2:b2CircleDef; m_localPosition = new b2Vec2(); super(_arg1); _local2 = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function ComputeSubmergedArea(_arg1:b2Vec2, _arg2:Number, _arg3:b2XForm, _arg4:b2Vec2):Number{ var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local5 = b2Math.b2MulX(_arg3, m_localPosition); _local6 = -((b2Math.b2Dot(_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)); }; _local7 = (m_radius * m_radius); _local8 = (_local6 * _local6); _local9 = ((_local7 * (Math.asin((_local6 / m_radius)) + (Math.PI / 2))) + (_local6 * Math.sqrt((_local7 - _local8)))); _local10 = (((-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 ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; _local3 = _arg2.R; _local4 = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = _arg2.R; _local5 = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local6 = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; _local7 = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local8 = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; _local3 = _arg1.R; _local4 = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):int{ var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local6 = _arg1.R; _local7 = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); _local8 = (_arg1.position.y + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); _local9 = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); _local11 = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ _arg2[0] = 0; return (e_startsInsideCollide); }; _local12 = (_arg4.p2.x - _arg4.p1.x); _local13 = (_arg4.p2.y - _arg4.p1.y); _local14 = ((_local9 * _local12) + (_local10 * _local13)); _local15 = ((_local12 * _local12) + (_local13 * _local13)); _local16 = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (e_missCollide); }; _local17 = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (e_hitCollide); }; return (e_missCollide); } public function GetRadius():Number{ return (m_radius); } override b2internal function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number; var _local3:Number; _local2 = (m_localPosition.x - _arg1.x); _local3 = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } } }//package Box2D.Collision.Shapes
Section 3
//b2EdgeChainDef (Box2D.Collision.Shapes.b2EdgeChainDef) package Box2D.Collision.Shapes { public class b2EdgeChainDef extends b2ShapeDef { public var isALoop:Boolean; public var vertexCount:int; public var vertices:Array; public function b2EdgeChainDef(){ type = b2Shape.e_edgeShape; vertexCount = 0; isALoop = true; vertices = []; } } }//package Box2D.Collision.Shapes
Section 4
//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_v2:b2Vec2; b2internal var m_v1:b2Vec2; b2internal var m_coreV1:b2Vec2; private var s_supportVec:b2Vec2; b2internal var m_coreV2:b2Vec2; b2internal var m_length:Number; b2internal var m_cornerConvex1:Boolean; b2internal var m_cornerConvex2:Boolean; b2internal var m_direction:b2Vec2; b2internal var m_cornerDir1:b2Vec2; b2internal var m_cornerDir2:b2Vec2; b2internal var m_nextEdge:b2EdgeShape; b2internal var m_prevEdge:b2EdgeShape; b2internal var m_normal:b2Vec2; public function b2EdgeShape(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2ShapeDef){ 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(_arg3); 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 TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public function GetCorner2Vector():b2Vec2{ return (m_cornerDir2); } public function GetDirectionVector():b2Vec2{ return (m_direction); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):int{ var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; _local7 = (_arg4.p2.x - _arg4.p1.x); _local8 = (_arg4.p2.y - _arg4.p1.y); _local6 = _arg1.R; _local9 = (_arg1.position.x + ((_local6.col1.x * m_v1.x) + (_local6.col2.x * m_v1.y))); _local10 = (_arg1.position.y + ((_local6.col1.y * m_v1.x) + (_local6.col2.y * m_v1.y))); _local11 = ((_arg1.position.y + ((_local6.col1.y * m_v2.x) + (_local6.col2.y * m_v2.y))) - _local10); _local12 = -(((_arg1.position.x + ((_local6.col1.x * m_v2.x) + (_local6.col2.x * m_v2.y))) - _local9)); _local13 = (100 * Number.MIN_VALUE); _local14 = -(((_local7 * _local11) + (_local8 * _local12))); if (_local14 > _local13){ _local15 = (_arg4.p1.x - _local9); _local16 = (_arg4.p1.y - _local10); _local17 = ((_local15 * _local11) + (_local16 * _local12)); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local14))))){ _local18 = ((-(_local7) * _local16) + (_local8 * _local15)); if (((((-(_local13) * _local14) <= _local18)) && ((_local18 <= (_local14 * (1 + _local13)))))){ _local17 = (_local17 / _local14); _arg2[0] = _local17; _local19 = Math.sqrt(((_local11 * _local11) + (_local12 * _local12))); _arg3.x = (_local11 / _local19); _arg3.y = (_local12 / _local19); return (e_hitCollide); }; }; }; return (e_missCollide); } public function GetNextEdge():b2EdgeShape{ return (m_nextEdge); } override public function ComputeMass(_arg1:b2MassData):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:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = _arg1.R; _local5 = (_arg1.position.x + ((_local4.col1.x * m_coreV1.x) + (_local4.col2.x * m_coreV1.y))); _local6 = (_arg1.position.y + ((_local4.col1.y * m_coreV1.x) + (_local4.col2.y * m_coreV1.y))); _local7 = (_arg1.position.x + ((_local4.col1.x * m_coreV2.x) + (_local4.col2.x * m_coreV2.y))); _local8 = (_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 GetLength():Number{ return (m_length); } override public function ComputeSubmergedArea(_arg1:b2Vec2, _arg2:Number, _arg3:b2XForm, _arg4:b2Vec2):Number{ var _local5:b2Vec2; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:Number; var _local9:Number; _local5 = new b2Vec2((_arg1.x * _arg2), (_arg1.y * _arg2)); _local6 = b2Math.b2MulX(_arg3, m_v1); _local7 = b2Math.b2MulX(_arg3, m_v2); _local8 = (b2Math.b2Dot(_arg1, _local6) - _arg2); _local9 = (b2Math.b2Dot(_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 ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; _local4 = _arg2.R; _local5 = (_arg2.position.x + ((_local4.col1.x * m_v1.x) + (_local4.col2.x * m_v1.y))); _local6 = (_arg2.position.y + ((_local4.col1.y * m_v1.x) + (_local4.col2.y * m_v1.y))); _local7 = (_arg2.position.x + ((_local4.col1.x * m_v2.x) + (_local4.col2.x * m_v2.y))); _local8 = (_arg2.position.y + ((_local4.col1.y * m_v2.x) + (_local4.col2.y * m_v2.y))); _local4 = _arg3.R; _local9 = (_arg3.position.x + ((_local4.col1.x * m_v1.x) + (_local4.col2.x * m_v1.y))); _local10 = (_arg3.position.y + ((_local4.col1.y * m_v1.x) + (_local4.col2.y * m_v1.y))); _local11 = (_arg3.position.x + ((_local4.col1.x * m_v2.x) + (_local4.col2.x * m_v2.y))); _local12 = (_arg3.position.y + ((_local4.col1.y * m_v2.x) + (_local4.col2.y * m_v2.y))); _arg1.lowerBound.x = ((((((_local5 < _local7)) ? _local5 : _local7 < _local9)) ? ((_local5 < _local7)) ? _local5 : _local7 : _local9 < _local11)) ? ((((_local5 < _local7)) ? _local5 : _local7 < _local9)) ? ((_local5 < _local7)) ? _local5 : _local7 : _local9 : _local11; _arg1.lowerBound.y = ((((((_local6 < _local8)) ? _local6 : _local8 < _local10)) ? ((_local6 < _local8)) ? _local6 : _local8 : _local10 < _local12)) ? ((((_local6 < _local8)) ? _local6 : _local8 < _local10)) ? ((_local6 < _local8)) ? _local6 : _local8 : _local10 : _local12; _arg1.upperBound.x = ((((((_local5 > _local7)) ? _local5 : _local7 > _local9)) ? ((_local5 > _local7)) ? _local5 : _local7 : _local9 > _local11)) ? ((((_local5 > _local7)) ? _local5 : _local7 > _local9)) ? ((_local5 > _local7)) ? _local5 : _local7 : _local9 : _local11; _arg1.upperBound.y = ((((((_local6 > _local8)) ? _local6 : _local8 > _local10)) ? ((_local6 > _local8)) ? _local6 : _local8 : _local10 > _local12)) ? ((((_local6 > _local8)) ? _local6 : _local8 > _local10)) ? ((_local6 > _local8)) ? _local6 : _local8 : _local10 : _local12; } public function GetCoreVertex1():b2Vec2{ return (m_coreV1); } public function GetCoreVertex2():b2Vec2{ return (m_coreV2); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ var _local2:b2Mat22; _local2 = _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 GetCorner1Vector():b2Vec2{ return (m_cornerDir1); } public function GetPrevEdge():b2EdgeShape{ return (m_prevEdge); } b2internal function SetPrevEdge(_arg1:b2EdgeShape, _arg2:b2Vec2, _arg3:b2Vec2, _arg4:Boolean):void{ m_prevEdge = _arg1; m_coreV1 = _arg2; m_cornerDir1 = _arg3; m_cornerConvex1 = _arg4; } override b2internal function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = (m_coreV1.x - _arg1.x); _local3 = (m_coreV1.y - _arg1.y); _local4 = ((_local2 * _local2) + (_local3 * _local3)); _local2 = (m_coreV2.x - _arg1.x); _local3 = (m_coreV2.y - _arg1.y); _local5 = ((_local2 * _local2) + (_local3 * _local3)); m_sweepRadius = Math.sqrt(((_local4 > _local5)) ? _local4 : _local5); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local3 = _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 GetVertex2():b2Vec2{ return (m_v2); } public function GetVertex1():b2Vec2{ return (m_v1); } } }//package Box2D.Collision.Shapes
Section 5
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { public class b2FilterData { public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public var categoryBits:uint;// = 1 public function b2FilterData(){ categoryBits = 1; maskBits = 0xFFFF; groupIndex = 0; super(); } public function Copy():b2FilterData{ var _local1:b2FilterData; _local1 = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 6
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ mass = 0; center = new b2Vec2(0, 0); I = 0; super(); } } }//package Box2D.Collision.Shapes
Section 7
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertexCount:int; public var vertices:Array; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ var _local1:int; vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; _local1 = 0; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); if (_arg3){ _local5 = _arg3; _local6 = s_mat; _local6.Set(_arg4); _local7 = 0; while (_local7 < vertexCount) { _arg3 = vertices[_local7]; _arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y))); _arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y))); _arg3.x = _arg1; _local7++; }; }; } public function SetAsBox(_arg1:Number, _arg2:Number):void{ vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); } } }//package Box2D.Collision.Shapes
Section 8
//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_vertices:Array; private var s_supportVec:b2Vec2; b2internal var m_normals:Array; private var m_obb:b2OBB; private var m_coreVertices:Array; b2internal var m_centroid:b2Vec2; b2internal var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local2:b2PolygonDef; var _local3:int; var _local4:int; var _local5:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; _local2 = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; _local4 = _local3; _local5 = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } public function GetCoreVertices():Array{ return (m_coreVertices); } public function GetCentroid():b2Vec2{ return (m_centroid); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):int{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:Number; var _local21:Number; _local6 = 0; _local7 = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; _local12 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local13 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; _local14 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local15 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local16 = (_local14 - _local12); _local17 = (_local15 - _local13); _local18 = -1; _local19 = 0; while (_local19 < m_vertexCount) { _local11 = m_vertices[_local19]; _local8 = (_local11.x - _local12); _local9 = (_local11.y - _local13); _local11 = m_normals[_local19]; _local20 = ((_local11.x * _local8) + (_local11.y * _local9)); _local21 = ((_local11.x * _local16) + (_local11.y * _local17)); if (_local21 == 0){ if (_local20 < 0){ return (e_missCollide); }; } else { if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){ _local6 = (_local20 / _local21); _local18 = _local19; } else { if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){ _local7 = (_local20 / _local21); }; }; }; if (_local7 < _local6){ return (e_missCollide); }; _local19++; }; if (_local18 >= 0){ _arg2[0] = _local6; _local10 = _arg1.R; _local11 = m_normals[_local18]; _arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); return (e_hitCollide); }; _arg2[0] = 0; return (e_startsInsideCollide); } override public function ComputeMass(_arg1:b2MassData):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _local2 = 0; _local3 = 0; _local4 = 0; _local5 = 0; _local6 = 0; _local7 = 0; _local8 = (1 / 3); _local9 = 0; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0]; _local12 = (_local10.x - _local6); _local13 = (_local10.y - _local7); _local14 = (_local11.x - _local6); _local15 = (_local11.y - _local7); _local16 = ((_local12 * _local15) - (_local13 * _local14)); _local17 = (0.5 * _local16); _local4 = (_local4 + _local17); _local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x))); _local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y))); _local18 = _local6; _local19 = _local7; _local20 = _local12; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18)); _local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local5 = (_local5 + (_local16 * (_local24 + _local25))); _local9++; }; _arg1.mass = (m_density * _local4); _local2 = (_local2 * (1 / _local4)); _local3 = (_local3 * (1 / _local4)); _arg1.center.Set(_local2, _local3); _arg1.I = (m_density * _local5); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local6:Number; var _local7:Number; var _local8:int; var _local9:Number; var _local10:int; var _local11:Number; _local5 = _arg1.R; _local6 = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); _local7 = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); _local8 = 0; _local4 = m_coreVertices[0]; _local9 = ((_local4.x * _local6) + (_local4.y * _local7)); _local10 = 1; while (_local10 < m_vertexCount) { _local4 = m_coreVertices[_local10]; _local11 = ((_local4.x * _local6) + (_local4.y * _local7)); if (_local11 > _local9){ _local8 = _local10; _local9 = _local11; }; _local10++; }; _local5 = _arg1.R; _local4 = m_coreVertices[_local8]; s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y))); s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeSubmergedArea(_arg1:b2Vec2, _arg2:Number, _arg3:b2XForm, _arg4:b2Vec2):Number{ var _local5:b2Vec2; var _local6:Number; var _local7:Array; var _local8:int; var _local9:int; var _local10:int; var _local11:Boolean; var _local12:int; var _local13:int; var _local14:int; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Vec2; var _local23:Boolean; var _local24:b2MassData; var _local25:Number; _local5 = b2Math.b2MulTMV(_arg3.R, _arg1); _local6 = (_arg2 - b2Math.b2Dot(_arg1, _arg3.position)); _local7 = new Array(); _local8 = 0; _local9 = -1; _local10 = -1; _local11 = false; _local12 = 0; while (_local12 < m_vertexCount) { _local7[_local12] = (b2Math.b2Dot(_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); _arg4.SetV(b2Math.b2MulX(_arg3, _local24.center)); return ((_local24.mass / m_density)); }; return (0); case 1: if (_local9 == -1){ _local9 = (m_vertexCount - 1); } else { _local10 = (m_vertexCount - 1); }; break; }; _local13 = ((_local9 + 1) % m_vertexCount); _local14 = ((_local10 + 1) % m_vertexCount); _local15 = ((0 - _local7[_local9]) / (_local7[_local13] - _local7[_local9])); _local16 = ((0 - _local7[_local10]) / (_local7[_local14] - _local7[_local10])); _local17 = new b2Vec2(((m_vertices[_local9].x * (1 - _local15)) + (m_vertices[_local13].x * _local15)), ((m_vertices[_local9].y * (1 - _local15)) + (m_vertices[_local13].y * _local15))); _local18 = new b2Vec2(((m_vertices[_local10].x * (1 - _local16)) + (m_vertices[_local14].x * _local16)), ((m_vertices[_local10].y * (1 - _local16)) + (m_vertices[_local14].y * _local16))); _local19 = 0; _local20 = new b2Vec2(); _local21 = 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.b2MulX(_arg3, _local20)); return (_local19); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB; var _local5:b2AABB; _local4 = s_sweptAABB1; _local5 = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y); _arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y); } public function GetVertices():Array{ return (m_vertices); } public function GetNormals():Array{ return (m_normals); } public function GetOBB():b2OBB{ return (m_obb); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_coreVertices[0])); } public function Centroid(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_centroid)); } override b2internal function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local3:int; var _local4:Number; var _local5:Number; m_sweepRadius = 0; _local3 = 0; while (_local3 < m_vertexCount) { _local2 = m_coreVertices[_local3]; _local4 = (_local2.x - _arg1.x); _local5 = (_local2.y - _arg1.y); _local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local4 > m_sweepRadius){ m_sweepRadius = _local4; }; _local3++; }; } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22; var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local5 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); _local6 = _local5; _local4 = m_obb.extents; _local7 = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); _local8 = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; _local9 = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); _local10 = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; var _local10:Number; _local4 = _arg1.R; _local5 = (_arg2.x - _arg1.position.x); _local6 = (_arg2.y - _arg1.position.y); _local7 = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); _local8 = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); _local9 = 0; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:int; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); _local4 = 0; _local5 = 0; _local6 = 0; _local7 = (1 / 3); _local8 = 0; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } b2internal static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local5:Array; var _local6:Number; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; _local5 = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; _local6 = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 9
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Shape { b2internal var m_next:b2Shape; b2internal var m_friction:Number; private var m_filter:b2FilterData; public var userData:Object; b2internal var m_density:Number; b2internal var m_restitution:Number; private var m_proxy:b2Proxy; private var m_isSensor:Boolean; private var m_userData; b2internal var m_body:b2Body; b2internal var m_type:int; b2internal var m_sweepRadius:Number; 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_unknownShape:int = -1; b2internal static const e_circleShape:int = 0; b2internal static const e_shapeTypeCount:int = 3; public static const e_startsInsideCollide:int = -1; private static var s_resetAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_proxyAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxy = null; m_filter = _arg1.filter.Copy(); m_isSensor = _arg1.isSensor; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetType():int{ return (m_type); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):int{ return (e_missCollide); } public function SetSensor(_arg1:Boolean):void{ m_isSensor = _arg1; } public function IsSensor():Boolean{ return (m_isSensor); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } b2internal function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB; var _local4:Boolean; _local3 = s_proxyAABB; ComputeAABB(_local3, _arg2); _local4 = _arg1.InRange(_local3); if (_local4){ m_proxy = _arg1.CreateProxy(_local3, this); } else { m_proxy = null; }; } b2internal function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ var _local4:b2AABB; if (m_proxy == null){ return (false); }; _local4 = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxy, _local4); return (true); }; return (false); } b2internal function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxy){ _arg1.DestroyProxy(m_proxy); m_proxy = null; }; } public function ComputeSubmergedArea(_arg1:b2Vec2, _arg2:Number, _arg3:b2XForm, _arg4:b2Vec2):Number{ return (0); } public function ComputeMass(_arg1:b2MassData):void{ } b2internal function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB; var _local4:Boolean; if (m_proxy == null){ return; }; _arg1.DestroyProxy(m_proxy); _local3 = s_resetAABB; ComputeAABB(_local3, _arg2); _local4 = _arg1.InRange(_local3); if (_local4){ m_proxy = _arg1.CreateProxy(_local3, this); } else { m_proxy = null; }; } public function SetRestitution(_arg1:Number):void{ m_restitution = _arg1; } public function GetNext():b2Shape{ return (m_next); } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function GetFriction():Number{ return (m_friction); } public function GetRestitution():Number{ return (m_restitution); } public function SetFriction(_arg1:Number):void{ m_friction = _arg1; } public function GetUserData(){ return (m_userData); } b2internal function UpdateSweepRadius(_arg1:b2Vec2):void{ } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function GetBody():b2Body{ return (m_body); } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } b2internal static function Destroy(_arg1:b2Shape, _arg2):void{ var _local3:b2EdgeShape; switch (_arg1.m_type){ case e_edgeShape: _local3 = (_arg1 as b2EdgeShape); if (_local3.m_nextEdge != null){ _local3.m_nextEdge.m_prevEdge = null; }; if (_local3.m_prevEdge != null){ _local3.m_prevEdge.m_nextEdge = null; }; break; }; } b2internal static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } } }//package Box2D.Collision.Shapes
Section 10
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var isSensor:Boolean;// = false public var density:Number;// = 0 public var type:int;// = -1 public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var friction:Number;// = 0.2 public function b2ShapeDef(){ type = b2Shape.e_unknownShape; userData = null; friction = 0.2; restitution = 0; density = 0; isSensor = false; filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 11
//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 RayCast(_arg1:b2RayCastOutput, _arg2:b2RayCastInput):void{ 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:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = Number.MIN_VALUE; _local4 = Number.MAX_VALUE; _arg1.hit = false; _local5 = _arg2.p1.x; _local6 = _arg2.p1.y; _local7 = (_arg2.p2.x - _arg2.p1.x); _local8 = (_arg2.p2.y - _arg2.p1.y); _local9 = Math.abs(_local7); _local10 = Math.abs(_local8); _local11 = _arg1.normal; if (_local9 < Number.MIN_VALUE){ if ((((_local5 < lowerBound.x)) || ((upperBound.x < _local5)))){ return; }; } 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; }; }; if (_local10 < Number.MIN_VALUE){ if ((((_local6 < lowerBound.y)) || ((upperBound.y < _local6)))){ return; }; } 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; }; }; } public function GetCenter():b2Vec2{ return (new b2Vec2(((lowerBound.x + upperBound.x) / 2), ((lowerBound.y + upperBound.y) / 2))); } public function IsValid():Boolean{ var _local1:Number; var _local2:Number; var _local3:Boolean; _local1 = (upperBound.x - lowerBound.x); _local2 = (upperBound.y - lowerBound.y); _local3 = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } public function GetExtents():b2Vec2{ return (new b2Vec2(((upperBound.x - lowerBound.x) / 2), ((upperBound.y - lowerBound.y) / 2))); } public function Contains(_arg1:b2AABB):Boolean{ var _local2:Boolean; _local2 = true; _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 static function Combine(_arg1:b2AABB, _arg2:b2AABB):b2AABB{ var _local3:b2AABB; _local3 = new (b2AABB); _local3.lowerBound.x = Math.min(_arg1.lowerBound.x, _arg2.lowerBound.x); _local3.lowerBound.y = Math.min(_arg1.lowerBound.y, _arg2.lowerBound.y); _local3.upperBound.x = Math.max(_arg1.upperBound.x, _arg2.upperBound.x); _local3.upperBound.y = Math.max(_arg1.upperBound.y, _arg2.upperBound.y); return (_local3); } } }//package Box2D.Collision
Section 12
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var stabbingCount:uint; public var proxy:b2Proxy; public var value:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint; var _local3:b2Proxy; var _local4:uint; _local2 = value; _local3 = proxy; _local4 = stabbingCount; value = _arg1.value; proxy = _arg1.proxy; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxy = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//package Box2D.Collision
Section 13
//b2BoundValues (Box2D.Collision.b2BoundValues) package Box2D.Collision { public class b2BoundValues { public var lowerValues:Array; public var upperValues:Array; public function b2BoundValues(){ lowerValues = [0, 0]; upperValues = [0, 0]; super(); } } }//package Box2D.Collision
Section 14
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { b2internal var m_quantizationFactor:b2Vec2; b2internal var m_worldAABB:b2AABB; b2internal var m_bounds:Array; private var m_freeProxy:b2Proxy; b2internal var m_proxyCount:int; b2internal var m_proxyPool:Array; private var m_querySortKeys:Array; b2internal var m_pairManager:b2PairManager; private var m_queryResultCount:int; private var m_timeStamp:uint; private var m_queryResults:Array; public static const b2_nullEdge:uint = b2Settings.USHRT_MAX; public static const b2_invalid:uint = b2Settings.USHRT_MAX; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local4:Number; var _local5:Number; m_pairManager = new b2PairManager(); m_proxyPool = new Array(); m_bounds = new Array(); m_querySortKeys = new Array(); m_queryResults = new Array(); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array(); _local3++; }; _local4 = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); m_timeStamp = 1; m_queryResultCount = 0; } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local4:Array; var _local5:Array; var _local6:uint; var _local7:uint; var _local8:Array; var _local9:Array; var _local10:int; var _local11:int; var _local12:b2Proxy; _local4 = new Array(); _local5 = new Array(); ComputeBounds(_local4, _local5, _arg1); _local8 = [_local6]; _local9 = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); _local10 = 0; _local11 = 0; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_queryResults[_local11]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Commit():void{ m_pairManager.Commit(); } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < m_proxyPool.length) { (m_proxyPool[_local1] as b2Proxy).timeStamp = 0; _local1++; }; m_timeStamp = 1; } else { m_timeStamp++; }; } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local11:uint; var _local12:int; var _local13:int; var _local14:b2Proxy; _local8 = BinarySearch(_arg5, _arg6, _arg3); _local9 = BinarySearch(_arg5, _arg6, _arg4); _local11 = _local8; while (_local11 < _local9) { _local10 = _arg5[_local11]; if (_local10.IsLower()){ IncrementOverlapCount(_local10.proxy); }; _local11++; }; if (_local8 > 0){ _local12 = (_local8 - 1); _local10 = _arg5[_local12]; _local13 = _local10.stabbingCount; while (_local13) { _local10 = _arg5[_local12]; if (_local10.IsLower()){ _local14 = _local10.proxy; if (_local8 <= _local14.upperBounds[_arg7]){ IncrementOverlapCount(_local10.proxy); _local13--; }; }; _local12--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function AddProxyResult(_arg1:b2Proxy, _arg2:Number, _arg3:Function):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:b2Proxy; var _local8:Number; var _local9:b2Proxy; _local4 = _arg3(_arg1.userData); if (_local4 < 0){ return; }; _local5 = 0; while ((((_local5 < m_queryResultCount)) && ((m_querySortKeys[_local5] < _local4)))) { _local5++; }; _local6 = _local4; _local7 = _arg1; m_queryResultCount = (m_queryResultCount + 1); if (m_queryResultCount > _arg2){ m_queryResultCount = _arg2; }; while (_local5 < m_queryResultCount) { _local8 = m_querySortKeys[_local5]; _local9 = m_queryResults[_local5]; m_querySortKeys[_local5] = _local6; m_queryResults[_local5] = _local7; _local6 = _local8; _local7 = _local9; _local5++; }; } public function QuerySegment(_arg1:b2Segment, _arg2, _arg3:int, _arg4:Function):int{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:int; var _local9:int; var _local10:Number; var _local11:Number; var _local12:Array; var _local13:Array; var _local14:Array; var _local15:int; var _local16:int; var _local17:b2Proxy; var _local18:uint; var _local19:uint; var _local20:Array; var _local21:Array; var _local22:int; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:b2Proxy; var _local27:Number; var _local28:Number; _local5 = 1; _local6 = ((_arg1.p2.x - _arg1.p1.x) * m_quantizationFactor.x); _local7 = ((_arg1.p2.y - _arg1.p1.y) * m_quantizationFactor.y); _local8 = ((_local6 < -(Number.MIN_VALUE))) ? -1 : ((_local6 > Number.MIN_VALUE)) ? 1 : 0; _local9 = ((_local7 < -(Number.MIN_VALUE))) ? -1 : ((_local7 > Number.MIN_VALUE)) ? 1 : 0; _local10 = (m_quantizationFactor.x * (_arg1.p1.x - m_worldAABB.lowerBound.x)); _local11 = (m_quantizationFactor.y * (_arg1.p1.y - m_worldAABB.lowerBound.y)); _local12 = new Array(); _local13 = new Array(); _local12[0] = (uint(_local10) & (b2Settings.USHRT_MAX - 1)); _local12[1] = (uint(_local11) & (b2Settings.USHRT_MAX - 1)); _local13[0] = (_local12[0] + 1); _local13[1] = (_local12[1] + 1); _local14 = new Array(); _local20 = [_local18]; _local21 = [_local19]; Query(_local20, _local21, _local12[0], _local13[0], m_bounds[0], (2 * m_proxyCount), 0); if (_local8 >= 0){ _local15 = (_local21[0] - 1); } else { _local15 = _local20[0]; }; Query(_local20, _local21, _local12[1], _local13[1], m_bounds[1], (2 * m_proxyCount), 1); if (_local9 >= 0){ _local16 = (_local21[0] - 1); } else { _local16 = _local20[0]; }; if (_arg4 != null){ _local23 = 0; while (_local23 < m_queryResultCount) { m_querySortKeys[_local23] = _arg4(m_queryResults[_local23].userData); _local23++; }; _local23 = 0; while (_local23 < (m_queryResultCount - 1)) { _local24 = m_querySortKeys[_local23]; _local25 = m_querySortKeys[(_local23 + 1)]; if (((_local24)<0) ? (_local25 >= 0) : (((_local24 > _local25)) && ((_local25 >= 0)))){ m_querySortKeys[(_local23 + 1)] = _local24; m_querySortKeys[_local23] = _local25; _local26 = m_queryResults[(_local23 + 1)]; m_queryResults[(_local23 + 1)] = m_queryResults[_local23]; m_queryResults[_local23] = _local26; --_local23; if (_local23 == -1){ _local23 = 1; }; } else { _local23++; }; }; while ((((m_queryResultCount > 0)) && ((m_querySortKeys[(m_queryResultCount - 1)] < 0)))) { m_queryResultCount--; }; }; while (true) { _local27 = 0; _local28 = 0; _local15 = (_local15 + ((_local8 >= 0)) ? 1 : -1); if ((((_local15 < 0)) || ((_local15 >= (m_proxyCount * 2))))){ break; }; if (_local8 != 0){ _local27 = ((m_bounds[0][_local15].value - _local10) / _local6); }; _local16 = (_local16 + ((_local9 >= 0)) ? 1 : -1); if ((((_local16 < 0)) || ((_local16 >= (m_proxyCount * 2))))){ break; }; if (_local9 != 0){ _local28 = ((m_bounds[1][_local16].value - _local11) / _local7); }; while (true) { if ((((_local9 == 0)) || (((!((_local8 == 0))) && ((_local27 < _local28)))))){ if (_local27 > _local5){ break; }; if (((_local8 > 0)) ? m_bounds[0][_local15].IsLower() : m_bounds[0][_local15].IsUpper()){ _local17 = m_bounds[0][_local15].proxy; if (_local9 >= 0){ if ((((_local17.lowerBounds[1] <= (_local16 - 1))) && ((_local17.upperBounds[1] >= _local16)))){ if (_arg4 != null){ AddProxyResult(_local17, _arg3, _arg4); } else { m_queryResults[m_queryResultCount] = _local17; m_queryResultCount++; }; }; } else { if ((((_local17.lowerBounds[1] <= _local16)) && ((_local17.upperBounds[1] >= (_local16 + 1))))){ if (_arg4 != null){ AddProxyResult(_local17, _arg3, _arg4); } else { m_queryResults[m_queryResultCount] = _local17; m_queryResultCount++; }; }; }; }; if (((((((!((_arg4 == null))) && ((m_queryResultCount == _arg3)))) && ((m_queryResultCount > 0)))) && ((_local27 > m_querySortKeys[(m_queryResultCount - 1)])))){ break; }; if (_local8 > 0){ _local15++; if (_local15 == (m_proxyCount * 2)){ break; }; } else { --_local15; if (_local15 < 0){ break; }; }; _local27 = ((m_bounds[0][_local15].value - _local10) / _local6); } else { if (_local28 > _local5){ break; }; if (((_local9 > 0)) ? m_bounds[1][_local16].IsLower() : m_bounds[1][_local16].IsUpper()){ _local17 = m_bounds[1][_local16].proxy; if (_local8 >= 0){ if ((((_local17.lowerBounds[0] <= (_local15 - 1))) && ((_local17.upperBounds[0] >= _local15)))){ if (_arg4 != null){ AddProxyResult(_local17, _arg3, _arg4); } else { m_queryResults[m_queryResultCount] = _local17; m_queryResultCount++; }; }; } else { if ((((_local17.lowerBounds[0] <= _local15)) && ((_local17.upperBounds[0] >= (_local15 + 1))))){ if (_arg4 != null){ AddProxyResult(_local17, _arg3, _arg4); } else { m_queryResults[m_queryResultCount] = _local17; m_queryResultCount++; }; }; }; }; if (((((((!((_arg4 == null))) && ((m_queryResultCount == _arg3)))) && ((m_queryResultCount > 0)))) && ((_local28 > m_querySortKeys[(m_queryResultCount - 1)])))){ break; }; if (_local9 > 0){ _local16++; if (_local16 == (m_proxyCount * 2)){ break; }; } else { --_local16; if (_local16 < 0){ break; }; }; _local28 = ((m_bounds[1][_local16].value - _local11) / _local7); }; }; break; }; _local22 = 0; _local23 = 0; while ((((_local23 < m_queryResultCount)) && ((_local22 < _arg3)))) { _local17 = m_queryResults[_local23]; _arg2[_local23] = _local17.userData; _local23++; _local22++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local22); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local4 = _arg3.lowerBound.x; _local5 = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); _local6 = _arg3.upperBound.x; _local7 = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } public function CreateProxy(_arg1:b2AABB, _arg2):b2Proxy{ var _local3:uint; var _local4:b2Proxy; var _local5:int; var _local6:int; var _local7:uint; var _local8:Array; var _local9:Array; var _local10:int; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:b2Bound; var _local17:b2Bound; var _local18:b2Bound; var _local19:b2Proxy; if (!m_freeProxy){ m_freeProxy = (m_proxyPool[m_proxyCount] = new b2Proxy()); m_freeProxy.next = null; m_freeProxy.timeStamp = 0; m_freeProxy.overlapCount = b2_invalid; m_freeProxy.userData = null; _local5 = 0; while (_local5 < 2) { _local6 = (m_proxyCount * 2); var _temp1 = _local6; _local6 = (_local6 + 1); var _local20 = _temp1; m_bounds[_local5][_local20] = new b2Bound(); m_bounds[_local5][_local6] = new b2Bound(); _local5++; }; }; _local4 = m_freeProxy; m_freeProxy = _local4.next; _local4.overlapCount = 0; _local4.userData = _arg2; _local7 = (2 * m_proxyCount); _local8 = new Array(); _local9 = new Array(); ComputeBounds(_local8, _local9, _arg1); _local10 = 0; while (_local10 < 2) { _local11 = m_bounds[_local10]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local8[_local10], _local9[_local10], _local11, _local7, _local10); _local12 = _local14[0]; _local13 = _local15[0]; _local11.splice(_local13, 0, _local11[(_local11.length - 1)]); _local11.length--; _local11.splice(_local12, 0, _local11[(_local11.length - 1)]); _local11.length--; _local13++; _local16 = _local11[_local12]; _local17 = _local11[_local13]; _local16.value = _local8[_local10]; _local16.proxy = _local4; _local17.value = _local9[_local10]; _local17.proxy = _local4; _local18 = _local11[int((_local12 - 1))]; _local16.stabbingCount = ((_local12 == 0)) ? 0 : _local18.stabbingCount; _local18 = _local11[int((_local13 - 1))]; _local17.stabbingCount = _local18.stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local18 = _local11[_local3]; _local18.stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local7 + 2)) { _local16 = _local11[_local3]; _local19 = _local16.proxy; if (_local16.IsLower()){ _local19.lowerBounds[_local10] = _local3; } else { _local19.upperBounds[_local10] = _local3; }; _local3++; }; _local10++; }; m_proxyCount++; _local5 = 0; while (_local5 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local4, m_queryResults[_local5]); _local5++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local4); } public function DestroyProxy(_arg1:b2Proxy):void{ var _local2:b2Bound; var _local3:b2Bound; var _local4:int; var _local5:int; var _local6:int; var _local7:Array; var _local8:uint; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:int; var _local13:uint; var _local14:int; var _local15:b2Proxy; _local4 = (2 * m_proxyCount); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5]; _local8 = _arg1.lowerBounds[_local5]; _local9 = _arg1.upperBounds[_local5]; _local2 = _local7[_local8]; _local10 = _local2.value; _local3 = _local7[_local9]; _local11 = _local3.value; _local7.splice(_local9, 1); _local7.splice(_local8, 1); _local7.push(_local2); _local7.push(_local3); _local12 = (_local4 - 2); _local13 = _local8; while (_local13 < _local12) { _local2 = _local7[_local13]; _local15 = _local2.proxy; if (_local2.IsLower()){ _local15.lowerBounds[_local5] = _local13; } else { _local15.upperBounds[_local5] = _local13; }; _local13++; }; _local12 = (_local9 - 1); _local14 = _local8; while (_local14 < _local12) { _local2 = _local7[_local14]; _local2.stabbingCount--; _local14++; }; Query([0], [0], _local10, _local11, _local7, (_local4 - 2), _local5); _local5++; }; _local6 = 0; while (_local6 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local6]); _local6++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _arg1.userData = null; _arg1.overlapCount = b2_invalid; _arg1.lowerBounds[0] = b2_invalid; _arg1.lowerBounds[1] = b2_invalid; _arg1.upperBounds[0] = b2_invalid; _arg1.upperBounds[1] = b2_invalid; _arg1.next = m_freeProxy; m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; var _local5:b2Bound; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg2.upperBounds[_local3]]; if (_arg1.lowerValues[_local3] > _local5.value){ return (false); }; _local5 = _local4[_arg2.lowerBounds[_local3]]; if (_arg1.upperValues[_local3] < _local5.value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local5:int; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; _local5 = 0; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function IncrementOverlapCount(_arg1:b2Proxy):void{ if (_arg1.timeStamp < m_timeStamp){ _arg1.timeStamp = m_timeStamp; _arg1.overlapCount = 1; } else { _arg1.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } public function InRange(_arg1:b2AABB):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = _arg1.lowerBound.x; _local3 = _arg1.lowerBound.y; _local2 = (_local2 - m_worldAABB.upperBound.x); _local3 = (_local3 - m_worldAABB.upperBound.y); _local4 = m_worldAABB.lowerBound.x; _local5 = m_worldAABB.lowerBound.y; _local4 = (_local4 - _arg1.upperBound.x); _local5 = (_local5 - _arg1.upperBound.y); _local2 = b2Math.b2Max(_local2, _local4); _local3 = b2Math.b2Max(_local3, _local5); return ((b2Math.b2Max(_local2, _local3) < 0)); } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } public function MoveProxy(_arg1:b2Proxy, _arg2:b2AABB):void{ var _local3:Array; var _local4:int; var _local5:uint; var _local6:uint; var _local7:b2Bound; var _local8:b2Bound; var _local9:b2Bound; var _local10:uint; var _local11:b2Proxy; var _local12:uint; var _local13:b2BoundValues; var _local14:b2BoundValues; var _local15:Array; var _local16:uint; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:int; var _local21:int; var _local22:b2Proxy; if (_arg1 == null){ return; }; if (_arg2.IsValid() == false){ return; }; _local12 = (2 * m_proxyCount); _local13 = new b2BoundValues(); ComputeBounds(_local13.lowerValues, _local13.upperValues, _arg2); _local14 = new b2BoundValues(); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5][_arg1.lowerBounds[_local5]]; _local14.lowerValues[_local5] = _local7.value; _local7 = m_bounds[_local5][_arg1.upperBounds[_local5]]; _local14.upperValues[_local5] = _local7.value; _local5++; }; _local5 = 0; while (_local5 < 2) { _local15 = m_bounds[_local5]; _local16 = _arg1.lowerBounds[_local5]; _local17 = _arg1.upperBounds[_local5]; _local18 = _local13.lowerValues[_local5]; _local19 = _local13.upperValues[_local5]; _local7 = _local15[_local16]; _local20 = (_local18 - _local7.value); _local7.value = _local18; _local7 = _local15[_local17]; _local21 = (_local19 - _local7.value); _local7.value = _local19; if (_local20 < 0){ _local6 = _local16; while ((((_local6 > 0)) && ((_local18 < (_local15[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local15[_local6]; _local8 = _local15[int((_local6 - 1))]; _local22 = _local8.proxy; _local8.stabbingCount++; if (_local8.IsUpper() == true){ if (TestOverlap(_local13, _local22)){ m_pairManager.AddBufferedPair(_arg1, _local22); }; _local3 = _local22.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local22.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _arg1.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; if (_local21 > 0){ _local6 = _local17; while ((((_local6 < (_local12 - 1))) && (((_local15[int((_local6 + 1))] as b2Bound).value <= _local19)))) { _local7 = _local15[_local6]; _local9 = _local15[int((_local6 + 1))]; _local11 = _local9.proxy; _local9.stabbingCount++; if (_local9.IsLower() == true){ if (TestOverlap(_local13, _local11)){ m_pairManager.AddBufferedPair(_arg1, _local11); }; _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _arg1.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local20 > 0){ _local6 = _local16; while ((((_local6 < (_local12 - 1))) && (((_local15[int((_local6 + 1))] as b2Bound).value <= _local18)))) { _local7 = _local15[_local6]; _local9 = _local15[int((_local6 + 1))]; _local11 = _local9.proxy; _local9.stabbingCount--; if (_local9.IsUpper()){ if (TestOverlap(_local14, _local11)){ m_pairManager.RemoveBufferedPair(_arg1, _local11); }; _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _arg1.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local21 < 0){ _local6 = _local17; while ((((_local6 > 0)) && ((_local19 < (_local15[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local15[_local6]; _local8 = _local15[int((_local6 - 1))]; _local22 = _local8.proxy; _local8.stabbingCount--; if (_local8.IsLower() == true){ if (TestOverlap(_local14, _local22)){ m_pairManager.RemoveBufferedPair(_arg1, _local22); }; _local3 = _local22.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local22.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _arg1.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; _local5++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local4:int; var _local5:int; var _local6:int; var _local7:b2Bound; _local4 = 0; _local5 = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); _local7 = _arg1[_local6]; if (_local7.value > _arg3){ _local5 = (_local6 - 1); } else { if (_local7.value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.Collision
Section 15
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:int; var _local7:Array; var _local8:Array; var _local9:int; var _local10:Array; var _local11:b2Mat22; var _local12:b2Vec2; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:int; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _local6 = _arg1.m_vertexCount; _local7 = _arg1.m_vertices; _local8 = _arg1.m_normals; _local9 = _arg4.m_vertexCount; _local10 = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; _local13 = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); _local14 = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; _local15 = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); _local16 = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); _local17 = 0; _local18 = Number.MAX_VALUE; _local19 = 0; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; _local20 = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); _local21 = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; _local22 = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); _local23 = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); _local24 = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local3 = _arg2.lowerBound; _local4 = _arg1.upperBound; _local5 = (_local3.x - _local4.x); _local6 = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; _local7 = (_local3.x - _local4.x); _local8 = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local7:int; var _local8:Array; var _local9:int; var _local10:Array; var _local11:Array; var _local12:b2Mat22; var _local13:b2Vec2; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:int; var _local20:ClipVertex; var _local21:int; var _local22:int; var _local23:Number; _local7 = _arg2.m_vertexCount; _local8 = _arg2.m_normals; _local9 = _arg5.m_vertexCount; _local10 = _arg5.m_vertices; _local11 = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; _local14 = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); _local15 = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; _local16 = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; _local17 = 0; _local18 = Number.MAX_VALUE; _local19 = 0; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; _local21 = _local17; _local22 = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local7:int; var _local8:Array; var _local9:Number; var _local10:int; var _local11:Array; var _local12:Number; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local15:b2XForm; var _local16:b2XForm; var _local17:int; var _local18:uint; var _local19:Number; var _local20:Number; var _local21:Array; var _local22:int; var _local23:Array; var _local24:b2Vec2; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:b2Vec2; var _local28:b2Vec2; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Array; var _local33:Array; var _local34:int; var _local35:int; var _local36:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; _local7 = 0; _local8 = [_local7]; _local9 = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; _local10 = 0; _local11 = [_local10]; _local12 = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; _local15 = new b2XForm(); _local16 = new b2XForm(); _local19 = 0.98; _local20 = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; _local21 = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); _local22 = _local13.m_vertexCount; _local23 = _local13.m_vertices; _local24 = _local23[_local17]; _local25 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; _local26 = b2Math.SubtractVV(_local37, _local25); _local27 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); _local28 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); _local29 = b2Math.b2Dot(_local28, _local25); _local30 = -(b2Math.b2Dot(_local27, _local25)); _local31 = b2Math.b2Dot(_local27, _local37); _local32 = [new ClipVertex(), new ClipVertex()]; _local33 = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); _local35 = 0; _local36 = 0; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (((_local28.x * _local6.v.x) + (_local28.y * _local6.v.y)) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:int; var _local7:Array; var _local8:b2Vec2; var _local9:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:int; var _local15:Number; var _local16:int; var _local17:Number; var _local18:int; var _local19:Number; var _local20:int; var _local21:Number; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; _local6 = _arg2.m_vertexCount; _local7 = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; _local10 = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); _local11 = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); _local12 = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); _local13 = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); _local14 = 0; _local15 = -(Number.MAX_VALUE); _local16 = 0; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; _local18 = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); _local19 = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; _local20 = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; _local21 = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); _local10 = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:b2ManifoldPoint; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; _local8 = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local9 = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; _local10 = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local11 = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local12 = (_local10 - _local8); _local13 = (_local11 - _local9); _local14 = ((_local12 * _local12) + (_local13 * _local13)); _local15 = _arg2.m_radius; _local16 = _arg4.m_radius; _local17 = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; _local19 = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); _local20 = (0.5 * (_local8 + _local10)); _local21 = (0.5 * (_local9 + _local11)); _local22 = (_local20 - _arg3.position.x); _local23 = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:Number; var _local20:Number; var _local21:int; var _local22:Array; var _local23:Array; var _local24:int; var _local25:int; var _local26:int; var _local27:b2Vec2; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; _local13 = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); _local14 = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; _local15 = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local16 = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local18 = 0; _local19 = -(Number.MAX_VALUE); _local20 = _arg4.m_radius; _local21 = _arg2.m_vertexCount; _local22 = _arg2.m_vertices; _local23 = _arg2.m_normals; _local24 = 0; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; _local25 = _local18; _local26 = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; _local27 = _local22[_local26]; _local28 = (_local27.x - _local11.x); _local29 = (_local27.y - _local11.y); _local30 = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local31 = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } } }//package Box2D.Collision
Section 16
//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; _local1 = new b2ContactID(); _local1.key = key; return (_local1); } public function get key():uint{ return (_key); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } } }//package Box2D.Collision
Section 17
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2ContactPoint { public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var restitution:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public var friction:Number; public var velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 18
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local4:Number; var _local5:int; var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local4 = (100 * Number.MIN_VALUE); _local5 = 0; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = (((_arg1.x - _local6.x) < 0)) ? -((_arg1.x - _local6.x)) : (_arg1.x - _local6.x); _local8 = (((_arg1.y - _local6.y) < 0)) ? -((_arg1.y - _local6.y)) : (_arg1.y - _local6.y); _local9 = ((_arg1.x < 0)) ? -(_arg1.x) : (((_arg1.x > _local6.x) < 0)) ? -(_local6.x) : (_local6.x) ? ((_arg1.x < 0)) ? -(_arg1.x) : _arg1.x : ((_local6.x < 0)) ? -(_local6.x) : _local6.x; _local10 = ((_arg1.x < 0)) ? -(_arg1.y) : (((_arg1.y > _local6.y) < 0)) ? -(_local6.y) : (_local6.y) ? ((_arg1.y < 0)) ? -(_arg1.y) : _arg1.y : ((_local6.y < 0)) ? -(_local6.y) : _local6.y; if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local8:Array; var _local9:Array; var _local10:Array; var _local11:int; var _local12:Number; var _local13:int; var _local14:int; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; _local8 = s_p1s; _local9 = s_p2s; _local10 = s_points; _local11 = 0; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); _local12 = 0; _local13 = 20; _local14 = 0; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - _local21) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); if (_local12 <= ((100 * Number.MIN_VALUE) * _local22)){ g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceEdgeCircle(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2EdgeShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local8:Number; var _local9:b2Mat22; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local8 = (_arg5.m_radius - b2Settings.b2_toiSlop); _local9 = _arg6.R; _local10 = _arg5.m_localPosition; _local11 = (_arg6.position.x + ((_local9.col1.x * _local10.x) + (_local9.col2.x * _local10.y))); _local12 = (_arg6.position.y + ((_local9.col1.y * _local10.x) + (_local9.col2.y * _local10.y))); _local9 = _arg4.R; _local13 = (_local11 - _arg4.position.x); _local14 = (_local12 - _arg4.position.y); _local15 = ((_local13 * _local9.col1.x) + (_local14 * _local9.col1.y)); _local16 = ((_local13 * _local9.col2.x) + (_local14 * _local9.col2.y)); _local17 = (((_local15 - _arg3.m_coreV1.x) * _arg3.m_direction.x) + ((_local16 - _arg3.m_coreV1.y) * _arg3.m_direction.y)); if (_local17 <= 0){ _local9 = _arg4.R; _local10 = _arg3.m_coreV1; _arg1.x = (_arg4.position.x + ((_local9.col1.x * _local10.x) + (_local9.col2.x * _local10.y))); _arg1.y = (_arg4.position.y + ((_local9.col1.y * _local10.x) + (_local9.col2.y * _local10.y))); } else { if (_local17 >= _arg3.m_length){ _local9 = _arg4.R; _local10 = _arg3.m_coreV2; _arg1.x = (_arg4.position.x + ((_local9.col1.x * _local10.x) + (_local9.col2.x * _local10.y))); _arg1.y = (_arg4.position.y + ((_local9.col1.y * _local10.x) + (_local9.col2.y * _local10.y))); } else { _local9 = _arg4.R; _local13 = (_arg3.m_coreV1.x + (_local17 * _arg3.m_direction.x)); _local14 = (_arg3.m_coreV1.y + (_local17 * _arg3.m_direction.y)); _arg1.x = (_arg4.position.x + ((_local9.col1.x * _local13) + (_local9.col2.x * _local14))); _arg1.y = (_arg4.position.y + ((_local9.col1.y * _local13) + (_local9.col2.y * _local14))); _local17 = (((_local15 - _arg3.m_coreV1.x) * _arg3.m_normal.x) + ((_local16 - _arg3.m_coreV1.y) * _arg3.m_normal.y)); if (_local17 < 0){ if (_local17 < -(_local8)){ _local9 = _arg4.R; _local13 = (_local15 + (_local8 * _arg3.m_normal.x)); _local14 = (_local16 + (_local8 * _arg3.m_normal.y)); _arg2.x = (_arg4.position.x + ((_local9.col1.x * _local13) + (_local9.col2.x * _local14))); _arg2.y = (_arg4.position.y + ((_local9.col1.y * _local13) + (_local9.col2.y * _local14))); return ((-(_local17) - _local8)); }; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } else { if (_local17 > _local8){ _local9 = _arg4.R; _local13 = (_local15 - (_local8 * _arg3.m_normal.x)); _local14 = (_local16 - (_local8 * _arg3.m_normal.y)); _arg2.x = (_arg4.position.x + ((_local9.col1.x * _local13) + (_local9.col2.x * _local14))); _arg2.y = (_arg4.position.y + ((_local9.col1.y * _local13) + (_local9.col2.y * _local14))); return ((_local17 - _local8)); }; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; }; }; _local13 = (_local11 - _arg1.x); _local14 = (_local12 - _arg1.y); _local17 = ((_local13 * _local13) + (_local14 * _local14)); if (_local17 > (_local8 * _local8)){ _local17 = Math.sqrt(_local17); _arg2.x = (_local11 - ((_local8 * _local13) / _local17)); _arg2.y = (_local12 - ((_local8 * _local14) / _local17)); return ((_local17 - _local8)); }; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; _local9 = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local10 = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; _local11 = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local12 = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = ((_local13 * _local13) + (_local14 * _local14)); _local16 = (_arg3.m_radius - b2Settings.b2_toiSlop); _local17 = (_arg5.m_radius - b2Settings.b2_toiSlop); _local18 = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local14:b2Vec2; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; _local14 = _arg4[2]; _local15 = _local6.x; _local16 = _local6.y; _local17 = _local7.x; _local18 = _local7.y; _local19 = _local8.x; _local20 = _local8.y; _local21 = (_local17 - _local15); _local22 = (_local18 - _local16); _local23 = (_local19 - _local15); _local24 = (_local20 - _local16); _local25 = (_local19 - _local17); _local26 = (_local20 - _local18); _local27 = -(((_local15 * _local21) + (_local16 * _local22))); _local28 = ((_local17 * _local21) + (_local18 * _local22)); _local29 = -(((_local15 * _local23) + (_local16 * _local24))); _local30 = ((_local19 * _local23) + (_local20 * _local24)); _local31 = -(((_local17 * _local25) + (_local18 * _local26))); _local32 = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; _local33 = ((_local21 * _local24) - (_local22 * _local23)); _local34 = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); _local36 = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; _local37 = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; _local38 = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); _local39 = (_local36 * _local38); _local40 = (_local37 * _local38); _local41 = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local9:b2Point; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local9 = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local10 = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); _local11 = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int; var _local8:int; _local7 = _arg3.m_type; _local8 = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6)); }; if ((((_local7 == b2Shape.e_edgeShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceEdgeCircle(_arg1, _arg2, (_arg3 as b2EdgeShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_edgeShape)))){ return (DistanceEdgeCircle(_arg2, _arg1, (_arg5 as b2EdgeShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_edgeShape)))){ return (DistanceGeneric(_arg2, _arg1, _arg5, _arg6, _arg3, _arg4)); }; if ((((_local7 == b2Shape.e_edgeShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; _local12 = -(_local7.x); _local13 = -(_local7.y); _local14 = (_local6.x - _local7.x); _local15 = (_local6.y - _local7.y); _local16 = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } }//package Box2D.Collision
Section 19
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var points:Array; public var pointCount:int;// = 0 public var normal:b2Vec2; public function b2Manifold(){ var _local1:int; pointCount = 0; super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ var _local2:int; pointCount = _arg1.pointCount; _local2 = 0; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } public function Reset():void{ var _local1:int; _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 20
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var separation:Number; public var localPoint2:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var localPoint1:b2Vec2; public var id:b2ContactID; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } public function Set(_arg1:b2ManifoldPoint):void{ localPoint1.SetV(_arg1.localPoint1); localPoint2.SetV(_arg1.localPoint2); separation = _arg1.separation; normalImpulse = _arg1.normalImpulse; tangentImpulse = _arg1.tangentImpulse; id.key = _arg1.id.key; } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalImpulse = 0; tangentImpulse = 0; id.key = 0; } } }//package Box2D.Collision
Section 21
//b2OBB (Box2D.Collision.b2OBB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2OBB { public var R:b2Mat22; public var center:b2Vec2; public var extents:b2Vec2; public function b2OBB(){ R = new b2Mat22(); center = new b2Vec2(); extents = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 22
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { public class b2Pair { public var proxy1:b2Proxy; public var proxy2:b2Proxy; public var status:uint; public var userData;// = null public var next:b2Pair; public static var e_pairBuffered:uint = 1; public static var b2_nullProxy:uint = 0xFFFF; public static var e_pairFinal:uint = 4; public static var e_pairRemoved:uint = 2; public function b2Pair(){ userData = null; super(); } public function SetBuffered():void{ status = (status | e_pairBuffered); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } } }//package Box2D.Collision
Section 23
//b2PairCallback (Box2D.Collision.b2PairCallback) package Box2D.Collision { public class b2PairCallback { public function PairRemoved(_arg1, _arg2, _arg3):void{ } public function PairAdded(_arg1, _arg2){ return (null); } } }//package Box2D.Collision
Section 24
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.*; public class b2PairManager { b2internal var m_pairCount:int; private var m_pairBuffer:Array; private var m_callback:b2PairCallback; b2internal var m_pairs:Array; private var m_pairBufferCount:int; private var m_broadPhase:b2BroadPhase; private var m_freePair:b2Pair; public function b2PairManager(){ m_pairs = new Array(); m_pairBuffer = new Array(); m_pairCount = 0; m_pairBufferCount = 0; m_freePair = null; } private function Find(_arg1:b2Proxy, _arg2:b2Proxy):b2Pair{ return (_arg1.pairs[_arg2]); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:int; var _local2:int; var _local3:b2Pair; var _local4:b2Proxy; var _local5:b2Proxy; _local2 = 0; _local1 = 0; while (_local1 < m_pairBufferCount) { _local3 = m_pairBuffer[_local1]; _local3.ClearBuffered(); _local4 = _local3.proxy1; _local5 = _local3.proxy2; if (_local3.IsRemoved()){ if (_local3.IsFinal() == true){ m_callback.PairRemoved(_local4.userData, _local5.userData, _local3.userData); }; m_pairBuffer[_local2] = _local3; _local2++; } else { if (_local3.IsFinal() == false){ _local3.userData = m_callback.PairAdded(_local4.userData, _local5.userData); _local3.SetFinal(); }; }; _local1++; }; _local1 = 0; while (_local1 < _local2) { _local3 = m_pairBuffer[_local1]; RemovePair(_local3.proxy1, _local3.proxy2); _local1++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:b2Proxy, _arg2:b2Proxy):void{ var _local3:b2Pair; _local3 = Find(_arg1, _arg2); if (_local3 == null){ return; }; if (_local3.IsBuffered() == false){ _local3.SetBuffered(); m_pairBuffer[m_pairBufferCount] = _local3; m_pairBufferCount++; }; _local3.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:b2Proxy, _arg2:b2Proxy){ var _local3:b2Pair; var _local4:*; _local3 = _arg1.pairs[_arg2]; if (_local3 == null){ return (null); }; _local4 = _local3.userData; delete _arg1.pairs[_arg2]; delete _arg2.pairs[_arg1]; _local3.next = m_freePair; _local3.proxy1 = null; _local3.proxy2 = null; _local3.userData = null; _local3.status = 0; m_freePair = _local3; m_pairCount--; return (_local4); } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:b2Proxy, _arg2:b2Proxy):void{ var _local3:b2Pair; _local3 = AddPair(_arg1, _arg2); if (_local3.IsBuffered() == false){ _local3.SetBuffered(); m_pairBuffer[m_pairBufferCount] = _local3; m_pairBufferCount++; }; _local3.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:b2Proxy, _arg2:b2Proxy):b2Pair{ var _local3:b2Pair; _local3 = _arg1.pairs[_arg2]; if (_local3 != null){ return (_local3); }; if (m_freePair == null){ m_freePair = new b2Pair(); m_pairs.push(m_freePair); }; _local3 = m_freePair; m_freePair = _local3.next; _local3.proxy1 = _arg1; _local3.proxy2 = _arg2; _local3.status = 0; _local3.userData = null; _local3.next = null; _arg1.pairs[_arg2] = _local3; _arg2.pairs[_arg1] = _local3; m_pairCount++; return (_local3); } private function ValidateTable():void{ } } }//package Box2D.Collision
Section 25
//b2Point (Box2D.Collision.b2Point) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Point { public var p:b2Vec2; public function b2Point(){ p = new b2Vec2(); super(); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 26
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { import flash.utils.*; public class b2Proxy { public var overlapCount:uint; public var userData;// = null public var lowerBounds:Array; public var upperBounds:Array; public var pairs:Dictionary; public var next:b2Proxy; public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; pairs = new Dictionary(); userData = null; super(); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } } }//package Box2D.Collision
Section 27
//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; } }//package Box2D.Collision
Section 28
//b2RayCastOutput (Box2D.Collision.b2RayCastOutput) package Box2D.Collision { import Box2D.Common.Math.*; public class b2RayCastOutput { public var fraction:Number; public var hit:Boolean; public var normal:b2Vec2; } }//package Box2D.Collision
Section 29
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; _local5 = _arg3.p1; _local6 = (_arg3.p2.x - _local5.x); _local7 = (_arg3.p2.y - _local5.y); _local8 = (p2.x - p1.x); _local9 = (p2.y - p1.y); _local10 = _local9; _local11 = -(_local8); _local12 = (100 * Number.MIN_VALUE); _local13 = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local6) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } public function ExtendForward(_arg1:b2AABB):void{ var _local2:Number; var _local3:Number; var _local4:Number; _local2 = (p2.x - p1.x); _local3 = (p2.y - p1.y); _local4 = Math.min(((_local2 > 0)) ? ((_arg1.upperBound.x - p1.x) / _local2) : ((_local2 < 0)) ? ((_arg1.lowerBound.x - p1.x) / _local2) : Number.POSITIVE_INFINITY, ((_local3 > 0)) ? ((_arg1.upperBound.y - p1.y) / _local3) : ((_local3 < 0)) ? ((_arg1.lowerBound.y - p1.y) / _local3) : Number.POSITIVE_INFINITY); p2.x = (p1.x + (_local2 * _local4)); p2.y = (p1.y + (_local3 * _local4)); } public function Extend(_arg1:b2AABB):void{ ExtendForward(_arg1); ExtendBackward(_arg1); } public function ExtendBackward(_arg1:b2AABB):void{ var _local2:Number; var _local3:Number; var _local4:Number; _local2 = (-(p2.x) + p1.x); _local3 = (-(p2.y) + p1.y); _local4 = Math.min(((_local2 > 0)) ? ((_arg1.upperBound.x - p2.x) / _local2) : ((_local2 < 0)) ? ((_arg1.lowerBound.x - p2.x) / _local2) : Number.POSITIVE_INFINITY, ((_local3 > 0)) ? ((_arg1.upperBound.y - p2.y) / _local3) : ((_local3 < 0)) ? ((_arg1.lowerBound.y - p2.y) / _local3) : Number.POSITIVE_INFINITY); p1.x = (p2.x + (_local2 * _local4)); p1.y = (p2.y + (_local3 * _local4)); } } }//package Box2D.Collision
Section 30
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2TimeOfImpact { private static var b2_maxToiRootIters:int = 0; private static var b2_maxToiIters:int = 0; public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:int; var _local20:int; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; _local7 = _arg1.m_sweepRadius; _local8 = _arg3.m_sweepRadius; _local9 = _arg2.t0; _local10 = (_arg2.c.x - _arg2.c0.x); _local11 = (_arg2.c.y - _arg2.c0.y); _local12 = (_arg4.c.x - _arg4.c0.x); _local13 = (_arg4.c.y - _arg4.c0.y); _local14 = (_arg2.a - _arg2.a0); _local15 = (_arg4.a - _arg4.a0); _local16 = 0; _local17 = s_p1; _local18 = s_p2; _local19 = 20; _local20 = 0; _local21 = 0; _local22 = 0; _local23 = 0; _local24 = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; b2_maxToiIters = b2Math.b2Max(_local20, b2_maxToiIters); return (_local16); } } }//package Box2D.Collision
Section 31
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var v:b2Vec2; public var id:b2ContactID; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 32
//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.Collision
Section 33
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function Set(_arg1:Number):void{ var _local2:Number; var _local3:Number; _local2 = Math.cos(_arg1); _local3 = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function GetInverse(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = col1.x; _local3 = col2.x; _local4 = col1.y; _local5 = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = col1.x; _local5 = col2.x; _local6 = col1.y; _local7 = col2.y; _local8 = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 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 Solve33(_arg1:b2Vec3, _arg2:Number, _arg3:Number, _arg4:Number):b2Vec3{ 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; _local5 = col1.x; _local6 = col1.y; _local7 = col1.z; _local8 = col2.x; _local9 = col2.y; _local10 = col2.z; _local11 = col3.x; _local12 = col3.y; _local13 = col3.z; _local14 = (((_local5 * ((_local9 * _local13) - (_local10 * _local12))) + (_local6 * ((_local10 * _local11) - (_local8 * _local13)))) + (_local7 * ((_local8 * _local12) - (_local9 * _local11)))); _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); } 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 Solve22(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = col1.x; _local5 = col2.x; _local6 = col1.y; _local7 = col2.y; _local8 = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 35
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = b2MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:*; _local3 = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22; _local2 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2; _local2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2Mat22; _local3 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); _local4 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); _local5 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean; _local2 = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number; _local3 = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } }//package Box2D.Common.Math
Section 36
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var c:b2Vec2; public var a:Number; public var c0:b2Vec2; public var t0:Number; public var a0: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 GetXForm2(_arg1:b2XForm, _arg2:Number):void{ var _local3:b2Mat22; var _local4:Number; if ((1 - t0) > Number.MIN_VALUE){ _arg1.position.x = (((1 - _arg2) * c0.x) + (_arg2 * c.x)); _arg1.position.y = (((1 - _arg2) * c0.y) + (_arg2 * c.y)); _local4 = (((1 - _arg2) * a0) + (_arg2 * a)); _arg1.R.Set(_local4); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; _local3 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; _local3 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } }//package Box2D.Common.Math
Section 37
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var x:Number; public var y:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function SetZero():void{ x = 0; y = 0; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function CrossVF(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function MulM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function Normalize():Number{ var _local1:Number; var _local2:Number; _local1 = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; _local2 = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function CrossFV(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 38
//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 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 SetV(_arg1:b2Vec3):void{ x = _arg1.x; y = _arg1.y; z = _arg1.z; } public function Negative():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); } public function Copy():b2Vec3{ return (new b2Vec3(x, y, z)); } } }//package Box2D.Common.Math
Section 39
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var R:b2Mat22; public var position:b2Vec2; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } public function GetAngle():Number{ return (Math.atan2(R.col1.y, R.col1.x)); } } }//package Box2D.Common.Math
Section 40
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _g:uint;// = 0 private var _b:uint;// = 0 private var _r:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = 0; _g = 0; _b = 0; super(); _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function get color():uint{ return ((((_r << 16) | (_g << 8)) | _b)); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } } }//package Box2D.Common
Section 41
//b2internal (Box2D.Common.b2internal) package Box2D.Common { public namespace b2internal = "http://www.box2d.org/ns/b2internal"; }//package Box2D.Common
Section 42
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const b2_fatAABBFactor:Number = 1.5; public static const b2_maxTranslation:Number = 2; public static const b2_pi:Number = 3.14159265358979; public static const b2_angularSleepTolerance:Number = 0.0349065850398866; 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_maxTOIJointsPerIsland:int = 32; public static const b2_maxPolygonVertices:int = 8; public static const b2_velocityThreshold:Number = 1; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_timeToSleep:Number = 0.5; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const USHRT_MAX:int = 0xFFFF; public static const VERSION:String = "2.0.2"; public static const b2_toiSlop:Number = 0.04; 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):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 43
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; private var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ var _local3:b2ManifoldPoint; m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; _local3 = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override b2internal function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactPoint; var _local8:b2ManifoldPoint; _local5 = m_shape1.m_body; _local6 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = b2Settings.b2MixFriction(m_shape1.GetFriction(), m_shape2.GetFriction()); _local7.restitution = b2Settings.b2MixRestitution(m_shape1.GetRestitution(), m_shape2.GetRestitution()); if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 44
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Contact { b2internal var m_shape1:b2Shape; b2internal var m_shape2:b2Shape; b2internal var m_prev:b2Contact; b2internal var m_toi:Number; b2internal var m_next:b2Contact; b2internal var m_manifoldCount:int; b2internal var m_node1:b2ContactEdge; b2internal var m_node2:b2ContactEdge; b2internal var m_flags:uint; b2internal static var e_toiFlag:uint = 8; b2internal static var e_nonSolidFlag:uint = 1; b2internal static var e_slowFlag:uint = 2; b2internal static var e_islandFlag:uint = 4; b2internal static var s_registers:Array; b2internal static var s_initialized:Boolean = false; public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){ m_node1 = new b2ContactEdge(); m_node2 = new b2ContactEdge(); super(); m_flags = 0; if (((!(_arg1)) || (!(_arg2)))){ m_shape1 = null; m_shape2 = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_nonSolidFlag); }; m_shape1 = _arg1; m_shape2 = _arg2; m_manifoldCount = 0; m_prev = null; m_next = null; m_node1.contact = null; m_node1.prev = null; m_node1.next = null; m_node1.other = null; m_node2.contact = null; m_node2.prev = null; m_node2.next = null; m_node2.other = null; } public function GetShape1():b2Shape{ return (m_shape1); } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetNext():b2Contact{ return (m_next); } public function GetManifolds():Array{ return (null); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetManifoldCount():int{ return (m_manifoldCount); } b2internal function Update(_arg1:b2ContactListener):void{ var _local2:int; var _local3:int; var _local4:b2Body; var _local5:b2Body; _local2 = m_manifoldCount; Evaluate(_arg1); _local3 = m_manifoldCount; _local4 = m_shape1.m_body; _local5 = m_shape2.m_body; if ((((_local3 == 0)) && ((_local2 > 0)))){ _local4.WakeUp(); _local5.WakeUp(); }; if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } b2internal function Evaluate(_arg1:b2ContactListener):void{ } b2internal static function InitializeRegisters():void{ var _local1:int; var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); _local1 = 0; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); AddType(b2EdgeAndCircleContact.Create, b2EdgeAndCircleContact.Destroy, b2Shape.e_edgeShape, b2Shape.e_circleShape); AddType(b2PolyAndEdgeContact.Create, b2PolyAndEdgeContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_edgeShape); } b2internal static function Destroy(_arg1:b2Contact, _arg2):void{ var _local3:int; var _local4:int; var _local5:b2ContactRegister; var _local6:Function; if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; _local3 = _arg1.m_shape1.m_type; _local4 = _arg1.m_shape2.m_type; _local5 = s_registers[_local3][_local4]; _local6 = _local5.destroyFcn; _local6(_arg1, _arg2); } b2internal static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } b2internal static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local4:int; var _local5:int; var _local6:b2ContactRegister; var _local7:Function; var _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; _local4 = _arg1.m_type; _local5 = _arg2.m_type; _local6 = s_registers[_local4][_local5]; _local7 = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 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 pointCount:int; public var points:Array; public var restitution:Number; public var K:b2Mat22; public var manifold:b2Manifold; public var body2:b2Body; public var friction:Number; public var normalMass:b2Mat22; public var body1:b2Body; public var normal:b2Vec2; public function b2ContactConstraint(){ var _local1:int; normal = new b2Vec2(); normalMass = new b2Mat22(); K = new b2Mat22(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 46
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var r2:b2Vec2; public var separation:Number; public var normalImpulse:Number; public var equalizedMass:Number; public var tangentMass:Number; public var tangentImpulse:Number; public var localAnchor1:b2Vec2; public var velocityBias:Number; public var localAnchor2:b2Vec2; public var normalMass:Number; public var r1:b2Vec2; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 47
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var next:b2ContactEdge; public var other:b2Body; public var contact:b2Contact; public var prev:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 48
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn:Function; public var destroyFcn:Function; } }//package Box2D.Dynamics.Contacts
Section 49
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; public class b2ContactResult { public var normal:b2Vec2; public var position:b2Vec2; public var shape1:b2Shape; public var shape2:b2Shape; public var normalImpulse:Number; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ContactResult(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Dynamics.Contacts
Section 50
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; 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; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local9:int; var _local10:b2Shape; var _local11:b2Shape; var _local12:b2Body; var _local13:b2Body; var _local14:int; var _local15:Array; 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:int; var _local25:b2Manifold; 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 = new b2TimeStep(); m_constraints = new Array(); super(); m_step.dt = _arg1.dt; m_step.inv_dt = _arg1.inv_dt; m_step.positionIterations = _arg1.positionIterations; m_step.velocityIterations = _arg1.velocityIterations; m_allocator = _arg4; m_constraintCount = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; m_constraintCount = (m_constraintCount + _local5.m_manifoldCount); _local6++; }; _local6 = 0; while (_local6 < m_constraintCount) { m_constraints[_local6] = new b2ContactConstraint(); _local6++; }; _local9 = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1; _local11 = _local5.m_shape2; _local12 = _local10.m_body; _local13 = _local11.m_body; _local14 = _local5.m_manifoldCount; _local15 = _local5.GetManifolds(); _local16 = b2Settings.b2MixFriction(_local10.GetFriction(), _local11.GetFriction()); _local17 = b2Settings.b2MixRestitution(_local10.GetRestitution(), _local11.GetRestitution()); _local18 = _local12.m_linearVelocity.x; _local19 = _local12.m_linearVelocity.y; _local20 = _local13.m_linearVelocity.x; _local21 = _local13.m_linearVelocity.y; _local22 = _local12.m_angularVelocity; _local23 = _local13.m_angularVelocity; _local24 = 0; while (_local24 < _local14) { _local25 = _local15[_local24]; _local26 = _local25.normal.x; _local27 = _local25.normal.y; _local28 = m_constraints[_local9]; _local28.body1 = _local12; _local28.body2 = _local13; _local28.manifold = _local25; _local28.normal.x = _local26; _local28.normal.y = _local27; _local28.pointCount = _local25.pointCount; _local28.friction = _local16; _local28.restitution = _local17; _local29 = 0; while (_local29 < _local28.pointCount) { _local30 = _local25.points[_local29]; _local31 = _local28.points[_local29]; _local31.normalImpulse = _local30.normalImpulse; _local31.tangentImpulse = _local30.tangentImpulse; _local31.separation = _local30.separation; _local31.localAnchor1.SetV(_local30.localPoint1); _local31.localAnchor2.SetV(_local30.localPoint2); _local8 = _local12.m_xf.R; _local34 = (_local30.localPoint1.x - _local12.m_sweep.localCenter.x); _local35 = (_local30.localPoint1.y - _local12.m_sweep.localCenter.y); _local32 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local32; _local31.r1.Set(_local34, _local35); _local8 = _local13.m_xf.R; _local36 = (_local30.localPoint2.x - _local13.m_sweep.localCenter.x); _local37 = (_local30.localPoint2.y - _local13.m_sweep.localCenter.y); _local32 = ((_local8.col1.x * _local36) + (_local8.col2.x * _local37)); _local37 = ((_local8.col1.y * _local36) + (_local8.col2.y * _local37)); _local36 = _local32; _local31.r2.Set(_local36, _local37); _local38 = ((_local34 * _local27) - (_local35 * _local26)); _local39 = ((_local36 * _local27) - (_local37 * _local26)); _local38 = (_local38 * _local38); _local39 = (_local39 * _local39); _local40 = (((_local12.m_invMass + _local13.m_invMass) + (_local12.m_invI * _local38)) + (_local13.m_invI * _local39)); _local31.normalMass = (1 / _local40); _local41 = ((_local12.m_mass * _local12.m_invMass) + (_local13.m_mass * _local13.m_invMass)); _local41 = (_local41 + (((_local12.m_mass * _local12.m_invI) * _local38) + ((_local13.m_mass * _local13.m_invI) * _local39))); _local31.equalizedMass = (1 / _local41); _local42 = _local27; _local43 = -(_local26); _local44 = ((_local34 * _local43) - (_local35 * _local42)); _local45 = ((_local36 * _local43) - (_local37 * _local42)); _local44 = (_local44 * _local44); _local45 = (_local45 * _local45); _local46 = (((_local12.m_invMass + _local13.m_invMass) + (_local12.m_invI * _local44)) + (_local13.m_invI * _local45)); _local31.tangentMass = (1 / _local46); _local31.velocityBias = 0; if (_local31.separation > 0){ _local31.velocityBias = (-60 * _local31.separation); } else { _local32 = (((_local20 + (-(_local23) * _local37)) - _local18) - (-(_local22) * _local35)); _local33 = (((_local21 + (_local23 * _local36)) - _local19) - (_local22 * _local34)); _local47 = ((_local28.normal.x * _local32) + (_local28.normal.y * _local33)); 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 = _local12.m_invMass; _local51 = _local12.m_invI; _local52 = _local13.m_invMass; _local53 = _local13.m_invI; _local54 = ((_local48.r1.x * _local27) - (_local48.r1.y * _local26)); _local55 = ((_local48.r2.x * _local27) - (_local48.r2.y * _local26)); _local56 = ((_local49.r1.x * _local27) - (_local49.r1.y * _local26)); _local57 = ((_local49.r2.x * _local27) - (_local49.r2.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; }; }; _local9++; _local24++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local5:int; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; _local5 = 0; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:int; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; _local2 = 0; _local5 = 0; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = (_local35 * _local17); _local37 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local36)); _local9.y = (_local9.y - (_local13 * _local37)); _local10 = (_local10 - (_local14 * ((_local22 * _local37) - (_local23 * _local36)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local36)); _local11.y = (_local11.y + (_local15 * _local37)); _local12 = (_local12 + (_local16 * ((_local24 * _local37) - (_local25 * _local36)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:b2Mat22; var _local24:b2Vec2; var _local25:int; var _local26:b2ContactConstraint; var _local27:b2Body; var _local28:b2Body; var _local29:Number; var _local30:Number; var _local31:b2Vec2; var _local32:b2Vec2; 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:int; var _local44:Number; var _local45:b2ContactConstraintPoint; var _local46:b2ContactConstraintPoint; 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 _local58:Number; var _local59:Number; _local25 = 0; while (_local25 < m_constraintCount) { _local26 = m_constraints[_local25]; _local27 = _local26.body1; _local28 = _local26.body2; _local29 = _local27.m_angularVelocity; _local30 = _local28.m_angularVelocity; _local31 = _local27.m_linearVelocity; _local32 = _local28.m_linearVelocity; _local33 = _local27.m_invMass; _local34 = _local27.m_invI; _local35 = _local28.m_invMass; _local36 = _local28.m_invI; _local37 = _local26.normal.x; _local38 = _local26.normal.y; _local39 = _local38; _local40 = -(_local37); _local41 = _local26.friction; _local43 = _local26.pointCount; if (_local26.pointCount == 1){ _local2 = _local26.points[0]; _local7 = (((_local32.x + (-(_local30) * _local2.r2.y)) - _local31.x) - (-(_local29) * _local2.r1.y)); _local8 = (((_local32.y + (_local30 * _local2.r2.x)) - _local31.y) - (_local29 * _local2.r1.x)); _local9 = ((_local7 * _local37) + (_local8 * _local38)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local10 = ((_local7 * _local39) + (_local8 * _local40)); _local12 = (_local2.tangentMass * -(_local10)); _local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0); _local11 = (_local13 - _local2.normalImpulse); _local44 = (_local41 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local44), _local44); _local12 = (_local14 - _local2.tangentImpulse); _local15 = ((_local11 * _local37) + (_local12 * _local39)); _local16 = ((_local11 * _local38) + (_local12 * _local40)); _local31.x = (_local31.x - (_local33 * _local15)); _local31.y = (_local31.y - (_local33 * _local16)); _local29 = (_local29 - (_local34 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local32.x = (_local32.x + (_local35 * _local15)); _local32.y = (_local32.y + (_local35 * _local16)); _local30 = (_local30 + (_local36 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.normalImpulse = _local13; _local2.tangentImpulse = _local14; } else { _local45 = _local26.points[0]; _local46 = _local26.points[1]; _local47 = _local45.normalImpulse; _local48 = _local46.normalImpulse; _local49 = (((_local32.x - (_local30 * _local45.r2.y)) - _local31.x) + (_local29 * _local45.r1.y)); _local50 = (((_local32.y + (_local30 * _local45.r2.x)) - _local31.y) - (_local29 * _local45.r1.x)); _local51 = (((_local32.x - (_local30 * _local46.r2.y)) - _local31.x) + (_local29 * _local46.r1.y)); _local52 = (((_local32.y + (_local30 * _local46.r2.x)) - _local31.y) - (_local29 * _local46.r1.x)); _local53 = ((_local49 * _local37) + (_local50 * _local38)); _local54 = ((_local51 * _local37) + (_local52 * _local38)); _local55 = (_local53 - _local45.velocityBias); _local56 = (_local54 - _local46.velocityBias); _local23 = _local26.K; _local55 = (_local55 - ((_local23.col1.x * _local47) + (_local23.col2.x * _local48))); _local56 = (_local56 - ((_local23.col1.y * _local47) + (_local23.col2.y * _local48))); _local57 = 0.001; while (true) { _local23 = _local26.normalMass; _local58 = -(((_local23.col1.x * _local55) + (_local23.col2.x * _local56))); _local59 = -(((_local23.col1.y * _local55) + (_local23.col2.y * _local56))); if ((((_local58 >= 0)) && ((_local59 >= 0)))){ _local17 = (_local58 - _local47); _local18 = (_local59 - _local48); _local19 = (_local17 * _local37); _local20 = (_local17 * _local38); _local21 = (_local18 * _local37); _local22 = (_local18 * _local38); _local31.x = (_local31.x - (_local33 * (_local19 + _local21))); _local31.y = (_local31.y - (_local33 * (_local20 + _local22))); _local29 = (_local29 - (_local34 * ((((_local45.r1.x * _local20) - (_local45.r1.y * _local19)) + (_local46.r1.x * _local22)) - (_local46.r1.y * _local21)))); _local32.x = (_local32.x + (_local35 * (_local19 + _local21))); _local32.y = (_local32.y + (_local35 * (_local20 + _local22))); _local30 = (_local30 + (_local36 * ((((_local45.r2.x * _local20) - (_local45.r2.y * _local19)) + (_local46.r2.x * _local22)) - (_local46.r2.y * _local21)))); _local45.normalImpulse = _local58; _local46.normalImpulse = _local59; break; }; _local58 = (-(_local45.normalMass) * _local55); _local59 = 0; _local53 = 0; _local54 = ((_local26.K.col1.y * _local58) + _local56); if ((((_local58 >= 0)) && ((_local54 >= 0)))){ _local17 = (_local58 - _local47); _local18 = (_local59 - _local48); _local19 = (_local17 * _local37); _local20 = (_local17 * _local38); _local21 = (_local18 * _local37); _local22 = (_local18 * _local38); _local31.x = (_local31.x - (_local33 * (_local19 + _local21))); _local31.y = (_local31.y - (_local33 * (_local20 + _local22))); _local29 = (_local29 - (_local34 * ((((_local45.r1.x * _local20) - (_local45.r1.y * _local19)) + (_local46.r1.x * _local22)) - (_local46.r1.y * _local21)))); _local32.x = (_local32.x + (_local35 * (_local19 + _local21))); _local32.y = (_local32.y + (_local35 * (_local20 + _local22))); _local30 = (_local30 + (_local36 * ((((_local45.r2.x * _local20) - (_local45.r2.y * _local19)) + (_local46.r2.x * _local22)) - (_local46.r2.y * _local21)))); _local45.normalImpulse = _local58; _local46.normalImpulse = _local59; break; }; _local58 = 0; _local59 = (-(_local46.normalMass) * _local56); _local53 = ((_local26.K.col2.x * _local59) + _local55); _local54 = 0; if ((((_local59 >= 0)) && ((_local53 >= 0)))){ _local17 = (_local58 - _local47); _local18 = (_local59 - _local48); _local19 = (_local17 * _local37); _local20 = (_local17 * _local38); _local21 = (_local18 * _local37); _local22 = (_local18 * _local38); _local31.x = (_local31.x - (_local33 * (_local19 + _local21))); _local31.y = (_local31.y - (_local33 * (_local20 + _local22))); _local29 = (_local29 - (_local34 * ((((_local45.r1.x * _local20) - (_local45.r1.y * _local19)) + (_local46.r1.x * _local22)) - (_local46.r1.y * _local21)))); _local32.x = (_local32.x + (_local35 * (_local19 + _local21))); _local32.y = (_local32.y + (_local35 * (_local20 + _local22))); _local30 = (_local30 + (_local36 * ((((_local45.r2.x * _local20) - (_local45.r2.y * _local19)) + (_local46.r2.x * _local22)) - (_local46.r2.y * _local21)))); _local45.normalImpulse = _local58; _local46.normalImpulse = _local59; break; }; _local58 = 0; _local59 = 0; _local53 = _local55; _local54 = _local56; if ((((_local53 >= 0)) && ((_local54 >= 0)))){ _local17 = (_local58 - _local47); _local18 = (_local59 - _local48); _local19 = (_local17 * _local37); _local20 = (_local17 * _local38); _local21 = (_local18 * _local37); _local22 = (_local18 * _local38); _local31.x = (_local31.x - (_local33 * (_local19 + _local21))); _local31.y = (_local31.y - (_local33 * (_local20 + _local22))); _local29 = (_local29 - (_local34 * ((((_local45.r1.x * _local20) - (_local45.r1.y * _local19)) + (_local46.r1.x * _local22)) - (_local46.r1.y * _local21)))); _local32.x = (_local32.x + (_local35 * (_local19 + _local21))); _local32.y = (_local32.y + (_local35 * (_local20 + _local22))); _local30 = (_local30 + (_local36 * ((((_local45.r2.x * _local20) - (_local45.r2.y * _local19)) + (_local46.r2.x * _local22)) - (_local46.r2.y * _local21)))); _local45.normalImpulse = _local58; _local46.normalImpulse = _local59; break; }; break; }; _local1 = 0; while (_local1 < _local26.pointCount) { _local2 = _local26.points[_local1]; _local7 = (((_local32.x - (_local30 * _local2.r2.y)) - _local31.x) + (_local29 * _local2.r1.y)); _local8 = (((_local32.y + (_local30 * _local2.r2.x)) - _local31.y) - (_local29 * _local2.r1.x)); _local10 = ((_local7 * _local39) + (_local8 * _local40)); _local12 = (_local2.tangentMass * -(_local10)); _local44 = (_local41 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local44), _local44); _local12 = (_local14 - _local2.tangentImpulse); _local15 = (_local12 * _local39); _local16 = (_local12 * _local40); _local31.x = (_local31.x - (_local33 * _local15)); _local31.y = (_local31.y - (_local33 * _local16)); _local29 = (_local29 - (_local34 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local32.x = (_local32.x + (_local35 * _local15)); _local32.y = (_local32.y + (_local35 * _local16)); _local30 = (_local30 + (_local36 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.tangentImpulse = _local14; _local1++; }; }; _local27.m_angularVelocity = _local29; _local28.m_angularVelocity = _local30; _local25++; }; } public function FinalizeVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; _local1 = 0; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 51
//b2EdgeAndCircleContact (Box2D.Dynamics.Contacts.b2EdgeAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2EdgeAndCircleContact extends b2Contact { private var m_manifolds:Array; private var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2EdgeAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ var _local3:b2ManifoldPoint; m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; _local3 = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function GetManifolds():Array{ return (m_manifolds); } private function b2CollideEdgeAndCircle(_arg1:b2Manifold, _arg2:b2EdgeShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:b2ManifoldPoint; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:b2Vec2; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Boolean; var _local24:Number; _arg1.pointCount = 0; _local6 = _arg5.R; _local7 = _arg4.m_localPosition; _local13 = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local14 = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg3.R; _local10 = (_local13 - _arg3.position.x); _local11 = (_local14 - _arg3.position.y); _local15 = ((_local10 * _local6.col1.x) + (_local11 * _local6.col1.y)); _local16 = ((_local10 * _local6.col2.x) + (_local11 * _local6.col2.y)); _local17 = _arg2.m_normal; _local18 = _arg2.m_v1; _local19 = _arg2.m_v2; _local20 = _arg4.m_radius; _local22 = (((_local15 - _local18.x) * _arg2.m_direction.x) + ((_local16 - _local18.y) * _arg2.m_direction.y)); _local23 = false; if (_local22 <= 0){ _local8 = (_local15 - _local18.x); _local9 = (_local16 - _local18.y); if (((_local8 * _arg2.m_cornerDir1.x) + (_local9 * _arg2.m_cornerDir1.y)) < 0){ return; }; _local8 = (_local13 - (_arg3.position.x + ((_local6.col1.x * _local18.x) + (_local6.col2.x * _local18.y)))); _local9 = (_local14 - (_arg3.position.y + ((_local6.col1.y * _local18.x) + (_local6.col2.y * _local18.y)))); } else { if (_local22 >= _arg2.m_length){ _local8 = (_local15 - _local19.x); _local9 = (_local16 - _local19.y); if (((_local8 * _arg2.m_cornerDir2.x) + (_local9 * _arg2.m_cornerDir2.y)) > 0){ return; }; _local8 = (_local13 - (_arg3.position.x + ((_local6.col1.x * _local19.x) + (_local6.col2.x * _local19.y)))); _local9 = (_local14 - (_arg3.position.y + ((_local6.col1.y * _local19.x) + (_local6.col2.y * _local19.y)))); } else { _local21 = (((_local15 - _local18.x) * _local17.x) + ((_local16 - _local18.y) * _local17.y)); if ((((_local21 > _local20)) || ((_local21 < -(_local20))))){ return; }; _local21 = (_local21 - _local20); _local6 = _arg3.R; _arg1.normal.x = ((_local6.col1.x * _local17.x) + (_local6.col2.x * _local17.y)); _arg1.normal.y = ((_local6.col1.y * _local17.x) + (_local6.col2.y * _local17.y)); _local23 = true; }; }; if (!_local23){ _local24 = ((_local8 * _local8) + (_local9 * _local9)); if (_local24 > (_local20 * _local20)){ return; }; if (_local24 < Number.MIN_VALUE){ _local21 = -(_local20); _arg1.normal.x = ((_local6.col1.x * _local17.x) + (_local6.col2.x * _local17.y)); _arg1.normal.y = ((_local6.col1.y * _local17.x) + (_local6.col2.y * _local17.y)); } else { _local24 = Math.sqrt(_local24); _local8 = (_local8 / _local24); _local9 = (_local9 / _local24); _local21 = (_local24 - _local20); _arg1.normal.x = _local8; _arg1.normal.y = _local9; }; }; _local12 = _arg1.points[0]; _arg1.pointCount = 1; _local12.id.key = 0; _local12.separation = _local21; _local13 = (_local13 - (_local20 * _arg1.normal.x)); _local14 = (_local14 - (_local20 * _arg1.normal.y)); _local10 = (_local13 - _arg3.position.x); _local11 = (_local14 - _arg3.position.y); _local12.localPoint1.x = ((_local10 * _local6.col1.x) + (_local11 * _local6.col1.y)); _local12.localPoint1.y = ((_local10 * _local6.col2.x) + (_local11 * _local6.col2.y)); _local6 = _arg5.R; _local10 = (_local13 - _arg5.position.x); _local11 = (_local14 - _arg5.position.y); _local12.localPoint2.x = ((_local10 * _local6.col1.x) + (_local11 * _local6.col1.y)); _local12.localPoint2.y = ((_local10 * _local6.col2.x) + (_local11 * _local6.col2.y)); } override b2internal function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactPoint; var _local8:b2ManifoldPoint; _local5 = m_shape1.m_body; _local6 = m_shape2.m_body; m0.Set(m_manifold); b2CollideEdgeAndCircle(m_manifold, (m_shape1 as b2EdgeShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = b2Settings.b2MixFriction(m_shape1.GetFriction(), m_shape2.GetFriction()); _local7.restitution = b2Settings.b2MixRestitution(m_shape1.GetRestitution(), m_shape2.GetRestitution()); if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2EdgeAndCircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 52
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Common.*; public class b2NullContact extends b2Contact { override public function GetManifolds():Array{ return (null); } override b2internal function Evaluate(_arg1:b2ContactListener):void{ } } }//package Box2D.Dynamics.Contacts
Section 53
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; private var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override b2internal function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local6:b2Body; var _local7:b2Body; var _local8:Array; var _local9:b2ContactPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; _local6 = m_shape1.m_body; _local7 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); _local8 = [false, false]; _local9 = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = b2Settings.b2MixFriction(m_shape1.GetFriction(), m_shape2.GetFriction()); _local9.restitution = b2Settings.b2MixRestitution(m_shape1.GetRestitution(), m_shape2.GetRestitution()); if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 54
//b2PolyAndEdgeContact (Box2D.Dynamics.Contacts.b2PolyAndEdgeContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyAndEdgeContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; private var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndEdgeContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_edgeShape)); m_manifold.pointCount = 0; } override public function GetManifolds():Array{ return (m_manifolds); } private function b2CollidePolyAndEdge(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2EdgeShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local10:Number; var _local11:b2ManifoldPoint; 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:int; var _local27:Number; var _local28:Number; var _local29:int; var _local30:Number; var _local31:Number; var _local32:Boolean; var _local33:int; var _local34:int; var _local35:Array; var _local36:Array; var _local37:int; var _local38:int; var _local39:int; var _local40:int; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:int; var _local47:Number; var _local48:Number; _arg1.pointCount = 0; _local6 = _arg5.R; _local7 = _arg4.m_v1; _local13 = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local14 = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local7 = _arg4.m_v2; _local15 = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local16 = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local7 = _arg4.m_normal; _local17 = ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y)); _local18 = ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y)); _local6 = _arg3.R; _local9 = (_local13 - _arg3.position.x); _local10 = (_local14 - _arg3.position.y); _local19 = ((_local9 * _local6.col1.x) + (_local10 * _local6.col1.y)); _local20 = ((_local9 * _local6.col2.x) + (_local10 * _local6.col2.y)); _local9 = (_local15 - _arg3.position.x); _local10 = (_local16 - _arg3.position.y); _local21 = ((_local9 * _local6.col1.x) + (_local10 * _local6.col1.y)); _local22 = ((_local9 * _local6.col2.x) + (_local10 * _local6.col2.y)); _local23 = ((_local17 * _local6.col1.x) + (_local18 * _local6.col1.y)); _local24 = ((_local17 * _local6.col2.x) + (_local18 * _local6.col2.y)); _local26 = -1; _local27 = -(Number.MAX_VALUE); _local29 = -1; _local30 = -(Number.MAX_VALUE); _local31 = -(Number.MAX_VALUE); _local32 = false; _local33 = -1; _local34 = _arg2.m_vertexCount; _local35 = _arg2.m_vertices; _local36 = _arg2.m_normals; _local37 = -1; _local38 = -1; _local39 = -1; _local40 = -1; _local41 = 0; _local42 = 0; _local43 = 0; _local44 = 0; _local45 = Number.MAX_VALUE; _local7 = _local35[(_local34 - 1)]; _local41 = (((_local7.x - _local19) * _local23) + ((_local7.y - _local20) * _local24)); _local46 = 0; while (_local46 < _local34) { _local7 = _local35[_local46]; _local8 = _local36[_local46]; _local25 = (((_local19 - _local7.x) * _local8.x) + ((_local20 - _local7.y) * _local8.y)); _local28 = (((_local21 - _local7.x) * _local8.x) + ((_local22 - _local7.y) * _local8.y)); if (_local28 < _local25){ if (_local28 > _local31){ _local31 = _local28; _local32 = false; _local33 = _local46; }; } else { if (_local25 > _local31){ _local31 = _local25; _local32 = true; _local33 = _local46; }; }; if (_local25 > _local27){ _local27 = _local25; _local26 = _local46; }; if (_local28 > _local30){ _local30 = _local28; _local29 = _local46; }; _local42 = (((_local7.x - _local19) * _local23) + ((_local7.y - _local20) * _local24)); if ((((_local42 >= 0)) && ((_local41 < 0)))){ _local39 = ((_local46)==0) ? (_local34 - 1) : (_local46 - 1); _local40 = _local46; _local44 = _local41; } else { if ((((_local42 < 0)) && ((_local41 >= 0)))){ _local37 = ((_local46)==0) ? (_local34 - 1) : (_local46 - 1); _local38 = _local46; _local43 = _local42; }; }; if (_local42 < _local45){ _local45 = _local42; }; _local41 = _local42; _local46++; }; if (_local37 == -1){ return; }; if (_local31 > 0){ return; }; if (((((_local32) && (_arg4.m_cornerConvex1))) || (((!(_local32)) && (_arg4.m_cornerConvex2))))){ if (_local31 > (_local45 + b2Settings.b2_linearSlop)){ if (_local32){ _local6 = _arg5.R; _local7 = _arg4.m_cornerDir1; _local9 = ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y)); _local10 = ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y)); _local6 = _arg3.R; _local13 = ((_local6.col1.x * _local9) + (_local6.col2.x * _local10)); _local14 = ((_local6.col1.y * _local9) + (_local6.col2.y * _local10)); _local8 = _local36[_local26]; if (((_local8.x * _local13) + (_local8.y * _local14)) >= 0){ return; }; } else { _local6 = _arg5.R; _local7 = _arg4.m_cornerDir2; _local9 = ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y)); _local10 = ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y)); _local6 = _arg3.R; _local13 = ((_local6.col1.x * _local9) + (_local6.col2.x * _local10)); _local14 = ((_local6.col1.y * _local9) + (_local6.col2.y * _local10)); _local8 = _local36[_local29]; if (((_local8.x * _local13) + (_local8.y * _local14)) <= 0){ return; }; }; _local11 = _arg1.points[0]; _arg1.pointCount = 1; _local6 = _arg3.R; _local8 = _local36[_local33]; _arg1.normal.x = ((_local6.col1.x * _local8.x) + (_local6.col2.x * _local8.y)); _arg1.normal.y = ((_local6.col1.y * _local8.x) + (_local6.col2.y * _local8.y)); _local11.separation = _local31; _local11.id.features.incidentEdge = _local33; _local11.id.features.incidentVertex = b2Collision.b2_nullFeature; _local11.id.features.referenceEdge = 0; _local11.id.features.flip = 0; if (_local32){ _local11.localPoint1.x = _local19; _local11.localPoint1.y = _local20; _local11.localPoint2.x = _arg4.m_v1.x; _local11.localPoint2.y = _arg4.m_v1.y; } else { _local11.localPoint1.x = _local21; _local11.localPoint1.y = _local22; _local11.localPoint2.x = _arg4.m_v2.x; _local11.localPoint2.y = _arg4.m_v2.y; }; return; }; }; _arg1.normal.x = -(_local17); _arg1.normal.y = -(_local18); if (_local38 == _local39){ _local11 = _arg1.points[0]; _arg1.pointCount = 1; _local11.id.features.incidentEdge = _local38; _local11.id.features.incidentVertex = b2Collision.b2_nullFeature; _local11.id.features.referenceEdge = 0; _local11.id.features.flip = 0; _local7 = _local35[_local38]; _local11.localPoint1.x = _local7.x; _local11.localPoint1.y = _local7.y; _local6 = _arg3.R; _local9 = ((_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))) - _arg5.position.x); _local10 = ((_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))) - _arg5.position.y); _local6 = _arg5.R; _local11.localPoint2.x = ((_local9 * _local6.col1.x) + (_local10 * _local6.col1.y)); _local11.localPoint2.y = ((_local9 * _local6.col2.x) + (_local10 * _local6.col2.y)); _local11.separation = _local43; return; }; _arg1.pointCount = 2; _local9 = -(_local24); _local10 = _local23; _local7 = _local35[_local38]; _local47 = ((_local9 * (_local7.x - _local19)) + (_local10 * (_local7.y - _local20))); _local40 = ((_local38)==(_local34 - 1)) ? 0 : (_local38 + 1); _local7 = _local35[_local39]; if (_local40 != _local39){ _local39 = _local40; _local44 = ((_local23 * (_local7.x - _local19)) + (_local24 * (_local7.y - _local20))); }; _local48 = ((_local9 * (_local7.x - _local19)) + (_local10 * (_local7.y - _local20))); _local11 = _arg1.points[0]; _local11.id.features.incidentEdge = _local38; _local11.id.features.incidentVertex = b2Collision.b2_nullFeature; _local11.id.features.referenceEdge = 0; _local11.id.features.flip = 0; if (_local47 > _arg4.m_length){ _local11.localPoint1.x = _local21; _local11.localPoint1.y = _local22; _local11.localPoint2.x = _arg4.m_v2.x; _local11.localPoint2.y = _arg4.m_v2.y; _local12 = ((_arg4.m_length - _local48) / (_local47 - _local48)); if ((((_local12 > (100 * Number.MIN_VALUE))) && ((_local12 < 1)))){ _local11.separation = ((_local44 * (1 - _local12)) + (_local43 * _local12)); } else { _local11.separation = _local43; }; } else { _local7 = _local35[_local38]; _local11.localPoint1.x = _local7.x; _local11.localPoint1.y = _local7.y; _local6 = _arg3.R; _local9 = ((_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))) - _arg5.position.x); _local10 = ((_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))) - _arg5.position.y); _local6 = _arg5.R; _local11.localPoint2.x = ((_local9 * _local6.col1.x) + (_local10 * _local6.col1.y)); _local11.localPoint2.y = ((_local9 * _local6.col2.x) + (_local10 * _local6.col2.y)); _local11.separation = _local43; }; _local11 = _arg1.points[1]; _local11.id.features.incidentEdge = _local39; _local11.id.features.incidentVertex = b2Collision.b2_nullFeature; _local11.id.features.referenceEdge = 0; _local11.id.features.flip = 0; if (_local48 < 0){ _local11.localPoint1.x = _local19; _local11.localPoint1.y = _local20; _local11.localPoint2.x = _arg4.m_v1.x; _local11.localPoint2.y = _arg4.m_v1.y; _local12 = (-(_local47) / (_local48 - _local47)); if ((((_local12 > (100 * Number.MIN_VALUE))) && ((_local12 < 1)))){ _local11.separation = ((_local43 * (1 - _local12)) + (_local44 * _local12)); } else { _local11.separation = _local44; }; } else { _local7 = _local35[_local39]; _local11.localPoint1.x = _local7.x; _local11.localPoint1.y = _local7.y; _local6 = _arg3.R; _local9 = ((_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))) - _arg5.position.x); _local10 = ((_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))) - _arg5.position.y); _local6 = _arg5.R; _local11.localPoint2.x = ((_local9 * _local6.col1.x) + (_local10 * _local6.col1.y)); _local11.localPoint2.y = ((_local9 * _local6.col2.x) + (_local10 * _local6.col2.y)); _local11.separation = _local44; }; } override b2internal function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local6:b2Body; var _local7:b2Body; var _local8:Array; var _local9:b2ContactPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; _local6 = m_shape1.m_body; _local7 = m_shape2.m_body; m0.Set(m_manifold); b2CollidePolyAndEdge(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2EdgeShape), _local7.m_xf); _local8 = [false, false]; _local9 = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = b2Settings.b2MixFriction(m_shape1.GetFriction(), m_shape2.GetFriction()); _local9.restitution = b2Settings.b2MixRestitution(m_shape1.GetRestitution(), m_shape2.GetRestitution()); if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndEdgeContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 55
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; private var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override b2internal function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactPoint; var _local8:int; var _local9:Array; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; _local5 = m_shape1.m_body; _local6 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); _local9 = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = b2Settings.b2MixFriction(m_shape1.GetFriction(), m_shape2.GetFriction()); _local7.restitution = b2Settings.b2MixRestitution(m_shape1.GetRestitution(), m_shape2.GetRestitution()); if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local9[_local13] == true){ } else { _local4 = m0.points[_local13]; if (_local4.id._key == _local12){ _local9[_local13] = true; _local10.normalImpulse = _local4.normalImpulse; _local10.tangentImpulse = _local4.tangentImpulse; _local11 = true; if (_arg1 != null){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Persist(_local7); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Add(_local7); }; _local8++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local8 = 0; while (_local8 < m0.pointCount) { if (_local9[_local8]){ } else { _local4 = m0.points[_local8]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; _local8++; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 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_next:b2Controller; protected var m_bodyList:b2ControllerEdge; b2internal var m_prev:b2Controller; protected var m_bodyCount:int; public function AddBody(_arg1:b2Body):void{ var _local2:b2ControllerEdge; _local2 = 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; 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 Step(_arg1:b2TimeStep):void{ } public function Clear():void{ while (m_bodyList) { RemoveBody(m_bodyList.body); }; } public function GetBodyList():b2ControllerEdge{ return (m_bodyList); } public function GetWorld():b2World{ return (m_world); } } }//package Box2D.Dynamics.Controllers
Section 57
//b2ControllerEdge (Box2D.Dynamics.Controllers.b2ControllerEdge) package Box2D.Dynamics.Controllers { import Box2D.Dynamics.*; public class b2ControllerEdge { public var body:b2Body; public var nextController:b2ControllerEdge; public var nextBody:b2ControllerEdge; public var prevController:b2ControllerEdge; public var prevBody:b2ControllerEdge; public var controller:b2Controller; } }//package Box2D.Dynamics.Controllers
Section 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_mass:Number; private var m_u:b2Vec2; private var m_impulse:Number; private var m_dampingRatio:Number; private var m_localAnchor1:b2Vec2; private var m_localAnchor2:b2Vec2; private var m_bias:Number; private var m_frequencyHz:Number; private var m_gamma:Number; private var m_length:Number; public function b2DistanceJoint(_arg1:b2DistanceJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce(_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; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; if (m_frequencyHz > 0){ return (true); }; _local3 = m_body1; _local4 = m_body2; _local2 = _local3.m_xf.R; _local5 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; _local8 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; _local10 = (((_local4.m_sweep.c.x + _local8) - _local3.m_sweep.c.x) - _local5); _local11 = (((_local4.m_sweep.c.y + _local9) - _local3.m_sweep.c.y) - _local6); _local12 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local12); _local11 = (_local11 / _local12); _local13 = (_local12 - m_length); _local13 = b2Math.b2Clamp(_local13, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local14 = (-(m_mass) * _local13); m_u.Set(_local10, _local11); _local15 = (_local14 * m_u.x); _local16 = (_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.b2Abs(_local13) < b2Settings.b2_linearSlop)); } 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; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); _local10 = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; _local11 = ((_local6 * m_u.y) - (_local7 * m_u.x)); _local12 = ((_local8 * m_u.y) - (_local9 * m_u.x)); _local13 = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function GetReactionTorque(_arg1:Number):Number{ return (0); } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local3 = m_body1; _local4 = m_body2; _local2 = _local3.m_xf.R; _local5 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; _local8 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; _local10 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); _local11 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); _local12 = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); _local13 = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); _local14 = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); _local15 = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); _local16 = (_local15 * m_u.x); _local17 = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } } }//package Box2D.Dynamics.Joints
Section 59
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2DistanceJointDef extends b2JointDef { public var length:Number; public var dampingRatio:Number; public var frequencyHz:Number; public var localAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ var _local5:Number; var _local6:Number; body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); _local5 = (_arg4.x - _arg3.x); _local6 = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.Joints
Section 60
//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_ratio:Number; private var m_mass:Number; private var m_impulse:Number; private var m_prismatic1:b2PrismaticJoint; private var m_prismatic2:b2PrismaticJoint; private var m_ground1:b2Body; private var m_constant:Number; private var m_ground2:b2Body; private var m_groundAnchor2:b2Vec2; private var m_groundAnchor1:b2Vec2; private var m_localAnchor2:b2Vec2; private var m_revolute1:b2RevoluteJoint; private var m_revolute2:b2RevoluteJoint; private var m_localAnchor1:b2Vec2; private var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local2:int; var _local3:int; var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); _local2 = _arg1.joint1.m_type; _local3 = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.m_body1; m_body1 = _arg1.joint1.m_body2; if (_local2 == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local4 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local4 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_local3 == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local5 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local5 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local4 + (m_ratio * _local5)); m_impulse = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce(_arg1:Number):b2Vec2{ return (new b2Vec2(((_arg1 * m_impulse) * m_J.linear2.x), ((_arg1 * m_impulse) * m_J.linear2.y))); } override b2internal function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local2 = 0; _local3 = m_body1; _local4 = m_body2; if (m_revolute1){ _local5 = m_revolute1.GetJointAngle(); } else { _local5 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local6 = m_revolute2.GetJointAngle(); } else { _local6 = m_prismatic2.GetJointTranslation(); }; _local7 = (m_constant - (_local5 + (m_ratio * _local6))); _local8 = (-(m_mass) * _local7); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local8) * m_J.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local8) * m_J.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local8) * m_J.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local4.m_invMass * _local8) * m_J.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local4.m_invMass * _local8) * m_J.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local4.m_invI * _local8) * m_J.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); return ((_local2 < b2Settings.b2_linearSlop)); } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; _local2 = m_ground1; _local3 = m_ground2; _local4 = m_body1; _local5 = m_body2; _local14 = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * m_impulse) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * m_impulse) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * m_impulse) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * m_impulse) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * m_impulse) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * m_impulse) * m_J.angular2)); } else { m_impulse = 0; }; } override public function GetReactionTorque(_arg1:Number):Number{ var _local2:b2Mat22; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local2 = m_body2.m_xf.R; _local3 = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); _local4 = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); _local5 = ((_local2.col1.x * _local3) + (_local2.col2.x * _local4)); _local4 = ((_local2.col1.y * _local3) + (_local2.col2.y * _local4)); _local3 = _local5; _local6 = (m_impulse * m_J.linear2.x); _local7 = (m_impulse * m_J.linear2.y); return ((_arg1 * (((m_impulse * m_J.angular2) - (_local3 * _local7)) + (_local4 * _local6)))); } public function GetRatio():Number{ return (m_ratio); } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; _local2 = m_body1; _local3 = m_body2; _local4 = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local5 = (-(m_mass) * _local4); m_impulse = (m_impulse + _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local5) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local5) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local5) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local5) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local5) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local5) * m_J.angular2)); } } }//package Box2D.Dynamics.Joints
Section 61
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint2:b2Joint; public var joint1:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 62
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var linear2:b2Vec2; public var angular2:Number; public var angular1:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 63
//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_collideConnected:Boolean; b2internal var m_prev:b2Joint; b2internal var m_type:int; b2internal var m_next:b2Joint; b2internal var m_node1:b2JointEdge; b2internal var m_node2:b2JointEdge; b2internal var m_localCenter1:b2Vec2; b2internal var m_localCenter2:b2Vec2; b2internal var m_invMass1:Number; b2internal var m_invI2:Number; b2internal var m_invMass2:Number; private var m_userData; b2internal var m_body1:b2Body; b2internal var m_body2:b2Body; b2internal var m_invI1:Number; b2internal static const e_prismaticJoint:int = 2; b2internal static const e_equalLimits:int = 3; 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_node1 = new b2JointEdge(); m_node2 = new b2JointEdge(); m_localCenter1 = new b2Vec2(); m_localCenter2 = new b2Vec2(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } b2internal function ComputeXForm(_arg1:b2XForm, _arg2:b2Vec2, _arg3:b2Vec2, _arg4:Number):void{ _arg1.R.Set(_arg4); _arg1.position.SetV(b2Math.SubtractVV(_arg2, b2Math.b2MulMV(_arg1.R, _arg3))); } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetType():int{ return (m_type); } public function GetBody2():b2Body{ return (m_body2); } public function GetNext():b2Joint{ return (m_next); } public function GetReactionTorque(_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 SetUserData(_arg1):void{ m_userData = _arg1; } public function GetBody1():b2Body{ return (m_body1); } b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } b2internal static function Destroy(_arg1:b2Joint, _arg2):void{ } b2internal static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; _local3 = null; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; case e_lineJoint: _local3 = new b2LineJoint((_arg1 as b2LineJointDef)); break; default: break; }; return (_local3); } } }//package Box2D.Dynamics.Joints
Section 64
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var collideConnected:Boolean; public var body1:b2Body; public var body2:b2Body; public var userData; public var type:int; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 65
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var joint:b2Joint; public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; } }//package Box2D.Dynamics.Joints
Section 66
//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_enableLimit:Boolean; private var m_impulse:b2Vec2; private var m_localYAxis1:b2Vec2; private var m_s2:Number; private var m_s1:Number; private var m_axis:b2Vec2; private var m_motorImpulse:Number; private var m_upperTranslation:Number; private var m_lowerTranslation:Number; b2internal var m_localXAxis1:b2Vec2; private var m_perp:b2Vec2; private var m_maxMotorForce:Number; private var m_motorMass:Number; b2internal var m_localAnchor1:b2Vec2; b2internal var m_localAnchor2:b2Vec2; private var m_limitState:int; private var m_enableMotor:Boolean; private var m_motorSpeed:Number; 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.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); 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 public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_body1.WakeUp(); m_body2.WakeUp(); m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetJointTranslation():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:b2Vec2; var _local9:Number; _local1 = m_body1; _local2 = m_body2; _local4 = _local1.GetWorldPoint(m_localAnchor1); _local5 = _local2.GetWorldPoint(m_localAnchor2); _local6 = (_local5.x - _local4.x); _local7 = (_local5.y - _local4.y); _local8 = _local1.GetWorldVector(m_localXAxis1); _local9 = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetMotorForce():Number{ return (m_motorImpulse); } 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); } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Vec2; var _local5:Number; 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; var _local17:Number; var _local18:b2Vec2; var _local19:b2Vec2; var _local20:Number; var _local21:Number; var _local22:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_linearVelocity; _local5 = _local2.m_angularVelocity; _local6 = _local3.m_linearVelocity; _local7 = _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.b2Clamp((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_invMass1 * _local8)); _local4.y = (_local4.y - (m_invMass1 * _local9)); _local5 = (_local5 - (m_invI1 * _local10)); _local6.x = (_local6.x + (m_invMass2 * _local8)); _local6.y = (_local6.y + (m_invMass2 * _local9)); _local7 = (_local7 + (m_invI2 * _local11)); }; _local12 = ((((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.b2Max(m_impulse.y, 0); } else { if (m_limitState == e_atUpperLimit){ m_impulse.y = b2Math.b2Min(m_impulse.y, 0); }; }; _local20 = (-(_local12) - ((m_impulse.y - _local18.y) * m_K.col2.x)); _local21 = ((_local20 / m_K.col1.x) + _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_invMass1 * _local8)); _local4.y = (_local4.y - (m_invMass1 * _local9)); _local5 = (_local5 - (m_invI1 * _local10)); _local6.x = (_local6.x + (m_invMass2 * _local8)); _local6.y = (_local6.y + (m_invMass2 * _local9)); _local7 = (_local7 + (m_invI2 * _local11)); } else { _local22 = (-(_local12) / m_K.col1.x); 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_invMass1 * _local8)); _local4.y = (_local4.y - (m_invMass1 * _local9)); _local5 = (_local5 - (m_invI1 * _local10)); _local6.x = (_local6.x + (m_invMass2 * _local8)); _local6.y = (_local6.y + (m_invMass2 * _local9)); _local7 = (_local7 + (m_invI2 * _local11)); }; _local2.m_linearVelocity.SetV(_local4); _local2.m_angularVelocity = _local5; _local3.m_linearVelocity.SetV(_local6); _local3.m_angularVelocity = _local7; } public function EnableMotor(_arg1:Boolean):void{ m_body1.WakeUp(); m_body2.WakeUp(); m_enableMotor = _arg1; } 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 _local4:b2Body; var _local5:b2Body; var _local6:b2Vec2; var _local7:Number; var _local8:b2Vec2; var _local9:Number; var _local10:b2Mat22; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Boolean; var _local19:Number; var _local20:b2Mat22; var _local21:b2Mat22; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:b2Vec2; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; _local4 = m_body1; _local5 = m_body2; _local6 = _local4.m_sweep.c; _local7 = _local4.m_sweep.a; _local8 = _local5.m_sweep.c; _local9 = _local5.m_sweep.a; _local16 = 0; _local17 = 0; _local18 = false; _local19 = 0; _local20 = new b2Mat22(_local7); _local21 = new b2Mat22(_local9); _local10 = _local20; _local22 = (m_localAnchor1.x - m_localCenter1.x); _local23 = (m_localAnchor1.y - m_localCenter1.y); _local11 = ((_local10.col1.x * _local22) + (_local10.col2.x * _local23)); _local23 = ((_local10.col1.y * _local22) + (_local10.col2.y * _local23)); _local22 = _local11; _local10 = _local21; _local24 = (m_localAnchor2.x - m_localCenter2.x); _local25 = (m_localAnchor2.y - m_localCenter2.y); _local11 = ((_local10.col1.x * _local24) + (_local10.col2.x * _local25)); _local25 = ((_local10.col1.y * _local24) + (_local10.col2.y * _local25)); _local24 = _local11; _local26 = (((_local8.x + _local24) - _local6.x) - _local22); _local27 = (((_local8.y + _local25) - _local6.y) - _local23); if (m_enableLimit){ m_axis = b2Math.b2MulMV(_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.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ _local19 = b2Math.b2Clamp(_local34, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local16 = b2Math.b2Abs(_local34); _local18 = true; } else { if (_local34 <= m_lowerTranslation){ _local19 = b2Math.b2Clamp(((_local34 - m_lowerTranslation) + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local16 = (m_lowerTranslation - _local34); _local18 = true; } else { if (_local34 >= m_upperTranslation){ _local19 = b2Math.b2Clamp(((_local34 - m_upperTranslation) + b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local16 = (_local34 - m_upperTranslation); _local18 = true; }; }; }; }; m_perp = b2Math.b2MulMV(_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)); _local28 = new b2Vec2(); _local29 = ((m_perp.x * _local26) + (m_perp.y * _local27)); _local16 = b2Math.b2Max(_local16, b2Math.b2Abs(_local29)); _local17 = 0; if (_local18){ _local12 = m_invMass1; _local13 = m_invMass2; _local14 = m_invI1; _local15 = m_invI2; 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_invMass1; _local13 = m_invMass2; _local14 = m_invI1; _local15 = m_invI2; _local35 = (((_local12 + _local13) + ((_local14 * m_s1) * m_s1)) + ((_local15 * m_s2) * m_s2)); _local36 = (-(_local29) / _local35); _local28.x = _local36; _local28.y = 0; }; _local30 = ((_local28.x * m_perp.x) + (_local28.y * m_axis.x)); _local31 = ((_local28.x * m_perp.y) + (_local28.y * m_axis.y)); _local32 = ((_local28.x * m_s1) + (_local28.y * m_a1)); _local33 = ((_local28.x * m_s2) + (_local28.y * m_a2)); _local6.x = (_local6.x - (m_invMass1 * _local30)); _local6.y = (_local6.y - (m_invMass1 * _local31)); _local7 = (_local7 - (m_invI1 * _local32)); _local8.x = (_local8.x + (m_invMass2 * _local30)); _local8.y = (_local8.y + (m_invMass2 * _local31)); _local9 = (_local9 + (m_invI2 * _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 GetJointSpeed():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:b2Vec2; var _local16:b2Vec2; var _local17:b2Vec2; var _local18:Number; var _local19:Number; var _local20:Number; _local1 = m_body1; _local2 = m_body2; _local3 = _local1.m_xf.R; _local4 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local5 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; _local7 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local8 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; _local9 = (_local1.m_sweep.c.x + _local4); _local10 = (_local1.m_sweep.c.y + _local5); _local11 = (_local2.m_sweep.c.x + _local7); _local12 = (_local2.m_sweep.c.y + _local8); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = _local1.GetWorldVector(m_localXAxis1); _local16 = _local1.m_linearVelocity; _local17 = _local2.m_linearVelocity; _local18 = _local1.m_angularVelocity; _local19 = _local2.m_angularVelocity; _local20 = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } public function SetMotorSpeed(_arg1:Number):void{ m_body1.WakeUp(); m_body2.WakeUp(); m_motorSpeed = _arg1; } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:b2XForm; var _local7:b2XForm; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; _local2 = m_body1; _local3 = m_body2; m_localCenter1.SetV(_local2.GetLocalCenter()); m_localCenter2.SetV(_local3.GetLocalCenter()); _local6 = _local2.GetXForm(); _local7 = _local3.GetXForm(); _local4 = _local2.m_xf.R; _local8 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local2.m_sweep.localCenter.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; _local10 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local10) + (_local4.col2.x * _local11)); _local11 = ((_local4.col1.y * _local10) + (_local4.col2.y * _local11)); _local10 = _local5; _local12 = (((_local3.m_sweep.c.x + _local10) - _local2.m_sweep.c.x) - _local8); _local13 = (((_local3.m_sweep.c.y + _local11) - _local2.m_sweep.c.y) - _local9); m_invMass1 = _local2.m_invMass; m_invMass2 = _local3.m_invMass; m_invI1 = _local2.m_invI; m_invI2 = _local3.m_invI; m_axis.SetV(b2Math.b2MulMV(_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_invMass1 + m_invMass2) + ((m_invI1 * m_a1) * m_a1)) + ((m_invI2 * m_a2) * m_a2)); m_motorMass = (1 / m_motorMass); m_perp.SetV(b2Math.b2MulMV(_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)); _local14 = m_invMass1; _local15 = m_invMass2; _local16 = m_invI1; _local17 = m_invI2; 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.b2Abs((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_invMass1 * _local19)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (m_invMass1 * _local20)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (m_invI1 * _local21)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (m_invMass2 * _local19)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (m_invMass2 * _local20)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (m_invI2 * _local22)); } else { m_impulse.SetZero(); m_motorImpulse = 0; }; } public function EnableLimit(_arg1:Boolean):void{ m_body1.WakeUp(); m_body2.WakeUp(); m_enableLimit = _arg1; } public function SetMaxMotorForce(_arg1:Number):void{ m_body1.WakeUp(); m_body2.WakeUp(); m_maxMotorForce = _arg1; } } }//package Box2D.Dynamics.Joints
Section 67
//b2LineJointDef (Box2D.Dynamics.Joints.b2LineJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2LineJointDef extends b2JointDef { public var localAxis1:b2Vec2; public var maxMotorForce:Number; public var motorSpeed:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var lowerTranslation:Number; public function b2LineJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_lineJoint; localAxis1.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{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); } } }//package Box2D.Dynamics.Joints
Section 68
//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 m_beta:Number; private var m_mass:b2Mat22; private var m_target:b2Vec2; private var m_impulse:b2Vec2; private var m_localAnchor:b2Vec2; private var m_dampingRatio:Number; private var K2:b2Mat22; private var K:b2Mat22; private var K1:b2Mat22; private var m_frequencyHz:Number; private var m_gamma:Number; private var m_C:b2Vec2; private var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local2:Number; var _local3: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_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); _local4 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_beta = 0; m_gamma = 0; } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } 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 InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:b2Mat22; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; _local2 = m_body2; _local3 = _local2.GetMass(); _local4 = ((2 * Math.PI) * m_frequencyHz); _local5 = (((2 * _local3) * m_dampingRatio) * _local4); _local6 = ((_local3 * _local4) * _local4); m_gamma = (1 / (_arg1.dt * (_local5 + (_arg1.dt * _local6)))); m_beta = ((_arg1.dt * _local6) * m_gamma); _local7 = _local2.m_xf.R; _local8 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local9 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local10 = ((_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 GetReactionTorque(_arg1:Number):Number{ return (0); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local6 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; _local8 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); _local9 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + (m_beta * m_C.x)) + (m_gamma * m_impulse.x)); _local5 = ((_local9 + (m_beta * m_C.y)) + (m_gamma * m_impulse.y)); _local10 = -(((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); _local11 = -(((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); _local12 = m_impulse.x; _local13 = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); _local14 = (_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)))); } } }//package Box2D.Dynamics.Joints
Section 69
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var frequencyHz:Number; public var dampingRatio:Number; public var maxForce:Number; public var target:b2Vec2; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; } } }//package Box2D.Dynamics.Joints
Section 70
//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_enableLimit:Boolean; private var m_impulse:b2Vec3; private var m_localYAxis1:b2Vec2; private var m_s2:Number; private var m_s1:Number; private var m_axis:b2Vec2; private var m_motorImpulse:Number; private var m_upperTranslation:Number; private var m_lowerTranslation:Number; b2internal var m_localXAxis1:b2Vec2; private var m_perp:b2Vec2; private var m_refAngle:Number; private var m_maxMotorForce:Number; private var m_motorMass:Number; b2internal var m_localAnchor1:b2Vec2; b2internal var m_localAnchor2:b2Vec2; private var m_limitState:int; private var m_enableMotor:Boolean; private var m_motorSpeed:Number; 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.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_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 public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_body1.WakeUp(); m_body2.WakeUp(); m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetJointTranslation():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:b2Vec2; var _local9:Number; _local1 = m_body1; _local2 = m_body2; _local4 = _local1.GetWorldPoint(m_localAnchor1); _local5 = _local2.GetWorldPoint(m_localAnchor2); _local6 = (_local5.x - _local4.x); _local7 = (_local5.y - _local4.y); _local8 = _local1.GetWorldVector(m_localXAxis1); _local9 = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetMotorForce():Number{ return (m_motorImpulse); } 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); } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Vec2; var _local5:Number; 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; var _local17:Number; var _local18:Number; var _local19:b2Vec3; var _local20:b2Vec3; var _local21:Number; var _local22:Number; var _local23:b2Vec2; var _local24:b2Vec2; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_linearVelocity; _local5 = _local2.m_angularVelocity; _local6 = _local3.m_linearVelocity; _local7 = _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.b2Clamp((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_invMass1 * _local8)); _local4.y = (_local4.y - (m_invMass1 * _local9)); _local5 = (_local5 - (m_invI1 * _local10)); _local6.x = (_local6.x + (m_invMass2 * _local8)); _local6.y = (_local6.y + (m_invMass2 * _local9)); _local7 = (_local7 + (m_invI2 * _local11)); }; _local12 = ((((m_perp.x * (_local6.x - _local4.x)) + (m_perp.y * (_local6.y - _local4.y))) + (m_s2 * _local7)) - (m_s1 * _local5)); _local13 = (_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.b2Max(m_impulse.z, 0); } else { if (m_limitState == e_atUpperLimit){ m_impulse.z = b2Math.b2Min(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_invMass1 * _local8)); _local4.y = (_local4.y - (m_invMass1 * _local9)); _local5 = (_local5 - (m_invI1 * _local10)); _local6.x = (_local6.x + (m_invMass2 * _local8)); _local6.y = (_local6.y + (m_invMass2 * _local9)); _local7 = (_local7 + (m_invI2 * _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_invMass1 * _local8)); _local4.y = (_local4.y - (m_invMass1 * _local9)); _local5 = (_local5 - (m_invI1 * _local10)); _local6.x = (_local6.x + (m_invMass2 * _local8)); _local6.y = (_local6.y + (m_invMass2 * _local9)); _local7 = (_local7 + (m_invI2 * _local11)); }; _local2.m_linearVelocity.SetV(_local4); _local2.m_angularVelocity = _local5; _local3.m_linearVelocity.SetV(_local6); _local3.m_angularVelocity = _local7; } public function EnableMotor(_arg1:Boolean):void{ m_body1.WakeUp(); m_body2.WakeUp(); m_enableMotor = _arg1; } 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 _local4:b2Body; var _local5:b2Body; var _local6:b2Vec2; var _local7:Number; var _local8:b2Vec2; var _local9:Number; var _local10:b2Mat22; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Boolean; var _local19:Number; var _local20:b2Mat22; var _local21:b2Mat22; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:b2Vec3; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:b2Vec2; _local4 = m_body1; _local5 = m_body2; _local6 = _local4.m_sweep.c; _local7 = _local4.m_sweep.a; _local8 = _local5.m_sweep.c; _local9 = _local5.m_sweep.a; _local16 = 0; _local17 = 0; _local18 = false; _local19 = 0; _local20 = new b2Mat22(_local7); _local21 = new b2Mat22(_local9); _local10 = _local20; _local22 = (m_localAnchor1.x - m_localCenter1.x); _local23 = (m_localAnchor1.y - m_localCenter1.y); _local11 = ((_local10.col1.x * _local22) + (_local10.col2.x * _local23)); _local23 = ((_local10.col1.y * _local22) + (_local10.col2.y * _local23)); _local22 = _local11; _local10 = _local21; _local24 = (m_localAnchor2.x - m_localCenter2.x); _local25 = (m_localAnchor2.y - m_localCenter2.y); _local11 = ((_local10.col1.x * _local24) + (_local10.col2.x * _local25)); _local25 = ((_local10.col1.y * _local24) + (_local10.col2.y * _local25)); _local24 = _local11; _local26 = (((_local8.x + _local24) - _local6.x) - _local22); _local27 = (((_local8.y + _local25) - _local6.y) - _local23); if (m_enableLimit){ m_axis = b2Math.b2MulMV(_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.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ _local19 = b2Math.b2Clamp(_local35, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local16 = b2Math.b2Abs(_local35); _local18 = true; } else { if (_local35 <= m_lowerTranslation){ _local19 = b2Math.b2Clamp(((_local35 - m_lowerTranslation) + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local16 = (m_lowerTranslation - _local35); _local18 = true; } else { if (_local35 >= m_upperTranslation){ _local19 = b2Math.b2Clamp(((_local35 - m_upperTranslation) + b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local16 = (_local35 - m_upperTranslation); _local18 = true; }; }; }; }; m_perp = b2Math.b2MulMV(_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)); _local28 = new b2Vec3(); _local29 = ((m_perp.x * _local26) + (m_perp.y * _local27)); _local30 = ((_local9 - _local7) - m_refAngle); _local16 = b2Math.b2Max(_local16, b2Math.b2Abs(_local29)); _local17 = b2Math.b2Abs(_local30); if (_local18){ _local12 = m_invMass1; _local13 = m_invMass2; _local14 = m_invI1; _local15 = m_invI2; 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_invMass1; _local13 = m_invMass2; _local14 = m_invI1; _local15 = m_invI2; _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; }; _local31 = ((_local28.x * m_perp.x) + (_local28.z * m_axis.x)); _local32 = ((_local28.x * m_perp.y) + (_local28.z * m_axis.y)); _local33 = (((_local28.x * m_s1) + _local28.y) + (_local28.z * m_a1)); _local34 = (((_local28.x * m_s2) + _local28.y) + (_local28.z * m_a2)); _local6.x = (_local6.x - (m_invMass1 * _local31)); _local6.y = (_local6.y - (m_invMass1 * _local32)); _local7 = (_local7 - (m_invI1 * _local33)); _local8.x = (_local8.x + (m_invMass2 * _local31)); _local8.y = (_local8.y + (m_invMass2 * _local32)); _local9 = (_local9 + (m_invI2 * _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 GetJointSpeed():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:b2Vec2; var _local16:b2Vec2; var _local17:b2Vec2; var _local18:Number; var _local19:Number; var _local20:Number; _local1 = m_body1; _local2 = m_body2; _local3 = _local1.m_xf.R; _local4 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local5 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; _local7 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local8 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; _local9 = (_local1.m_sweep.c.x + _local4); _local10 = (_local1.m_sweep.c.y + _local5); _local11 = (_local2.m_sweep.c.x + _local7); _local12 = (_local2.m_sweep.c.y + _local8); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = _local1.GetWorldVector(m_localXAxis1); _local16 = _local1.m_linearVelocity; _local17 = _local2.m_linearVelocity; _local18 = _local1.m_angularVelocity; _local19 = _local2.m_angularVelocity; _local20 = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } public function SetMotorSpeed(_arg1:Number):void{ m_body1.WakeUp(); m_body2.WakeUp(); m_motorSpeed = _arg1; } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:b2XForm; var _local7:b2XForm; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; _local2 = m_body1; _local3 = m_body2; m_localCenter1.SetV(_local2.GetLocalCenter()); m_localCenter2.SetV(_local3.GetLocalCenter()); _local6 = _local2.GetXForm(); _local7 = _local3.GetXForm(); _local4 = _local2.m_xf.R; _local8 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local2.m_sweep.localCenter.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; _local10 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local10) + (_local4.col2.x * _local11)); _local11 = ((_local4.col1.y * _local10) + (_local4.col2.y * _local11)); _local10 = _local5; _local12 = (((_local3.m_sweep.c.x + _local10) - _local2.m_sweep.c.x) - _local8); _local13 = (((_local3.m_sweep.c.y + _local11) - _local2.m_sweep.c.y) - _local9); m_invMass1 = _local2.m_invMass; m_invMass2 = _local3.m_invMass; m_invI1 = _local2.m_invI; m_invI2 = _local3.m_invI; m_axis.SetV(b2Math.b2MulMV(_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_invMass1 + m_invMass2) + ((m_invI1 * m_a1) * m_a1)) + ((m_invI2 * m_a2) * m_a2)); m_motorMass = (1 / m_motorMass); m_perp.SetV(b2Math.b2MulMV(_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)); _local14 = m_invMass1; _local15 = m_invMass2; _local16 = m_invI1; _local17 = m_invI2; 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.b2Abs((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_invMass1 * _local19)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (m_invMass1 * _local20)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (m_invI1 * _local21)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (m_invMass2 * _local19)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (m_invMass2 * _local20)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (m_invI2 * _local22)); } else { m_impulse.SetZero(); m_motorImpulse = 0; }; } public function EnableLimit(_arg1:Boolean):void{ m_body1.WakeUp(); m_body2.WakeUp(); m_enableLimit = _arg1; } public function SetMaxMotorForce(_arg1:Number):void{ m_body1.WakeUp(); m_body2.WakeUp(); m_maxMotorForce = _arg1; } } }//package Box2D.Dynamics.Joints
Section 71
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PrismaticJointDef extends b2JointDef { public var localAxis1:b2Vec2; public var referenceAngle:Number; public var maxMotorForce:Number; public var motorSpeed:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var lowerTranslation:Number; public function b2PrismaticJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxis1.Set(1, 0); referenceAngle = 0; enableLimit = false; lowerTranslation = 0; upperTranslation = 0; enableMotor = false; maxMotorForce = 0; motorSpeed = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 72
//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_ground:b2Body; private var m_maxLength2:Number; private var m_maxLength1:Number; private var m_limitState1:int; private var m_limitState2:int; private var m_pulleyMass:Number; private var m_constant:Number; private var m_impulse:Number; private var m_state:int; private var m_ratio:Number; private var m_groundAnchor2:b2Vec2; private var m_groundAnchor1:b2Vec2; private var m_localAnchor2:b2Vec2; private var m_localAnchor1:b2Vec2; private var m_limitMass2:Number; private var m_limitMass1:Number; private var m_limitImpulse2:Number; private var m_u1:b2Vec2; private var m_u2:b2Vec2; private var m_limitImpulse1:Number; 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_body1.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_ratio = _arg1.ratio; m_constant = (_arg1.length1 + (m_ratio * _arg1.length2)); m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio)); m_impulse = 0; m_limitImpulse1 = 0; m_limitImpulse2 = 0; } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2; _local1 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetRatio():Number{ return (m_ratio); } 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 _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; _local2 = m_body1; _local3 = m_body2; _local5 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local6 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local7 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local8 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local24 = 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.b2Max(_local24, -(_local19)); _local19 = b2Math.b2Clamp((_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.b2Max(_local24, -(_local19)); _local19 = b2Math.b2Clamp((_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.b2Max(_local24, -(_local19)); _local19 = b2Math.b2Clamp((_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 _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; _local10 = (_local2.m_sweep.c.x + _local5); _local11 = (_local2.m_sweep.c.y + _local6); _local12 = (_local3.m_sweep.c.x + _local8); _local13 = (_local3.m_sweep.c.y + _local9); _local14 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local15 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local16 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local17 = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); _local18 = m_u1.Length(); _local19 = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; _local20 = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_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; }; _local21 = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); _local22 = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ 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 GetLength1():Number{ var _local1:b2Vec2; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.GetWorldPoint(m_localAnchor1); _local2 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetLength2():Number{ var _local1:b2Vec2; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body2.GetWorldPoint(m_localAnchor2); _local2 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = (m_pulleyMass * -(_local18)); _local20 = m_impulse; m_impulse = b2Math.b2Max(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.b2Max(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.b2Max(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 GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2; _local1 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.Joints
Section 73
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength2:Number; public var length1:Number; public var length2:Number; public var maxLength1:Number; public var ratio:Number; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); _local8 = (_arg5.x - _arg3.x); _local9 = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local10 = (_arg6.x - _arg4.x); _local11 = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; _local12 = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 74
//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_referenceAngle:Number; private var m_enableLimit:Boolean; private var m_impulse:b2Vec3; private var m_limitState:int; private var m_motorMass:Number; b2internal var m_localAnchor2:b2Vec2; private var K2:b2Mat22; b2internal var m_localAnchor1:b2Vec2; private var K1:b2Mat22; private var K3:b2Mat22; private var K:b2Mat22; private var m_motorImpulse:Number; private var m_mass:b2Mat33; private var m_enableMotor:Boolean; private var m_upperAngle:Number; private var m_motorSpeed:Number; private var m_maxMotorTorque:Number; private var m_lowerAngle: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(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_impulse = new b2Vec3(); m_mass = new b2Mat33(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); 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 public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } 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 _local5:b2Body; var _local6:b2Body; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; _local5 = m_body1; _local6 = m_body2; _local7 = 0; _local8 = 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.b2Clamp((_local25 - m_lowerAngle), -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local3); _local7 = b2Math.b2Abs(_local3); } else { if (m_limitState == e_atLowerLimit){ _local3 = (_local25 - m_lowerAngle); _local7 = -(_local3); _local3 = b2Math.b2Clamp((_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.b2Clamp((_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; _local12 = (m_localAnchor1.x - _local5.m_sweep.localCenter.x); _local13 = (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; _local14 = (m_localAnchor2.x - _local6.m_sweep.localCenter.x); _local15 = (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; _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); _local18 = ((_local16 * _local16) + (_local17 * _local17)); _local19 = Math.sqrt(_local18); _local8 = _local19; _local20 = _local5.m_invMass; _local21 = _local6.m_invMass; _local22 = _local5.m_invI; _local23 = _local6.m_invI; _local24 = (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 GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMotorSpeed(_arg1:Number):void{ m_body1.WakeUp(); m_body2.WakeUp(); m_motorSpeed = _arg1; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } override b2internal function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local2 = m_body1; _local3 = m_body2; if (((m_enableMotor) || (m_enableLimit))){ }; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local10 = _local2.m_invMass; _local11 = _local3.m_invMass; _local12 = _local2.m_invI; _local13 = _local3.m_invI; 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.b2Abs((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 GetMotorTorque():Number{ return (m_maxMotorTorque); } override public function GetReactionTorque(_arg1:Number):Number{ return ((_arg1 * m_impulse.z)); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ m_body1.WakeUp(); m_body2.WakeUp(); return (m_enableMotor); } override b2internal function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:b2Vec2; var _local13:Number; var _local14:b2Vec2; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:b2Vec3; var _local28:Number; var _local29:Number; var _local30:b2Vec2; _local2 = m_body1; _local3 = m_body2; _local12 = _local2.m_linearVelocity; _local13 = _local2.m_angularVelocity; _local14 = _local3.m_linearVelocity; _local15 = _local3.m_angularVelocity; _local16 = _local2.m_invMass; _local17 = _local3.m_invMass; _local18 = _local2.m_invI; _local19 = _local3.m_invI; if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local20 = ((_local15 - _local13) - m_motorSpeed); _local21 = (m_motorMass * -(_local20)); _local22 = m_motorImpulse; _local23 = (_arg1.dt * m_maxMotorTorque); m_motorImpulse = b2Math.b2Clamp((m_motorImpulse + _local21), -(_local23), _local23); _local21 = (m_motorImpulse - _local22); _local13 = (_local13 - (_local18 * _local21)); _local15 = (_local15 + (_local19 * _local21)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local4 = _local2.m_xf.R; _local8 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local2.m_sweep.localCenter.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; _local10 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local10) + (_local4.col2.x * _local11)); _local11 = ((_local4.col1.y * _local10) + (_local4.col2.y * _local11)); _local10 = _local5; _local24 = (((_local14.x + (-(_local15) * _local11)) - _local12.x) - (-(_local13) * _local9)); _local25 = (((_local14.y + (_local15 * _local10)) - _local12.y) - (_local13 * _local8)); _local26 = (_local15 - _local13); _local27 = m_mass.Solve33(new b2Vec3(), -(_local24), -(_local25), -(_local26)); if (m_limitState == e_equalLimits){ m_impulse.Add(_local27); } else { if (m_limitState == e_atLowerLimit){ _local6 = (m_impulse.z + _local27.z); if (_local6 < 0){ _local7 = m_mass.Solve22(new b2Vec2(), -(_local24), -(_local25)); _local27.x = _local7.x; _local27.y = _local7.y; _local27.z = -(m_impulse.z); m_impulse.x = (m_impulse.x + _local7.x); m_impulse.y = (m_impulse.y + _local7.y); m_impulse.z = 0; }; } else { if (m_limitState == e_atUpperLimit){ _local6 = (m_impulse.z + _local27.z); if (_local6 > 0){ _local7 = m_mass.Solve22(new b2Vec2(), -(_local24), -(_local25)); _local27.x = _local7.x; _local27.y = _local7.y; _local27.z = -(m_impulse.z); m_impulse.x = (m_impulse.x + _local7.x); m_impulse.y = (m_impulse.y + _local7.y); m_impulse.z = 0; }; }; }; }; _local12.x = (_local12.x - (_local16 * _local27.x)); _local12.y = (_local12.y - (_local16 * _local27.y)); _local13 = (_local13 - (_local18 * (((_local8 * _local27.y) - (_local9 * _local27.x)) + _local27.z))); _local14.x = (_local14.x + (_local17 * _local27.x)); _local14.y = (_local14.y + (_local17 * _local27.y)); _local15 = (_local15 + (_local19 * (((_local10 * _local27.y) - (_local11 * _local27.x)) + _local27.z))); } else { _local4 = _local2.m_xf.R; _local8 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local2.m_sweep.localCenter.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; _local10 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local10) + (_local4.col2.x * _local11)); _local11 = ((_local4.col1.y * _local10) + (_local4.col2.y * _local11)); _local10 = _local5; _local28 = (((_local14.x + (-(_local15) * _local11)) - _local12.x) - (-(_local13) * _local9)); _local29 = (((_local14.y + (_local15 * _local10)) - _local12.y) - (_local13 * _local8)); _local30 = m_mass.Solve22(new b2Vec2(), -(_local28), -(_local29)); m_impulse.x = (m_impulse.x + _local30.x); m_impulse.y = (m_impulse.y + _local30.y); _local12.x = (_local12.x - (_local16 * _local30.x)); _local12.y = (_local12.y - (_local16 * _local30.y)); _local13 = (_local13 - (_local18 * ((_local8 * _local30.y) - (_local9 * _local30.x)))); _local14.x = (_local14.x + (_local17 * _local30.x)); _local14.y = (_local14.y + (_local17 * _local30.y)); _local15 = (_local15 + (_local19 * ((_local10 * _local30.y) - (_local11 * _local30.x)))); }; _local2.m_linearVelocity.SetV(_local12); _local2.m_angularVelocity = _local13; _local3.m_linearVelocity.SetV(_local14); _local3.m_angularVelocity = _local15; } } }//package Box2D.Dynamics.Joints
Section 75
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2RevoluteJointDef extends b2JointDef { public var referenceAngle:Number; public var upperAngle:Number; public var lowerAngle:Number; public var motorSpeed:Number; public var maxMotorTorque:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 76
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Controllers.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2Body { b2internal var m_shapeCount:int; b2internal var m_controllerCount:int; public var isPushed:Boolean;// = false public var isHit:Boolean;// = false b2internal var m_contactList:b2ContactEdge; b2internal var m_angularVelocity:Number; b2internal var m_xf:b2XForm; b2internal var m_invI:Number; b2internal var m_torque:Number; b2internal var m_flags:uint; b2internal var m_linearVelocity:b2Vec2; b2internal var m_world:b2World; b2internal var m_controllerList:b2ControllerEdge; public var isEnemy:Boolean;// = false b2internal var m_next:b2Body; b2internal var m_shapeList:b2Shape; public var isOnGround:Boolean;// = false b2internal var m_force:b2Vec2; b2internal var m_sweep:b2Sweep; b2internal var m_mass:Number; private var m_userData; public var isDead:Boolean;// = false b2internal var m_invMass:Number; public var isGrenade:Boolean;// = false b2internal var m_prev:b2Body; b2internal var m_linearDamping:Number; private var m_type:int; b2internal var m_angularDamping:Number; b2internal var m_islandIndex:int; b2internal var m_sleepTime:Number; b2internal var m_jointList:b2JointEdge; b2internal var m_I:Number; b2internal static var e_fixedRotationFlag:uint = 64; b2internal static var e_frozenFlag:uint = 2; b2internal static var e_maxTypes:uint = 3; b2internal static var e_sleepFlag:uint = 8; private static var s_massData:b2MassData = new b2MassData(); b2internal static var e_bulletFlag:uint = 32; b2internal static var e_staticType:uint = 1; b2internal static var e_islandFlag:uint = 4; b2internal static var e_allowSleepFlag:uint = 16; private static var s_xf1:b2XForm = new b2XForm(); b2internal static var e_dynamicType:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ var _local3:b2Mat22; var _local4:b2Vec2; isHit = false; isEnemy = false; isPushed = false; isDead = false; isGrenade = false; isOnGround = false; m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); _local3 = m_xf.R; _local4 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_controllerList = null; m_contactList = null; m_controllerCount = 0; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function SetLinearDamping(_arg1:Number):void{ m_linearDamping = _arg1; } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function GetMassData():b2MassData{ var _local1:b2MassData; _local1 = new b2MassData(); _local1.mass = m_mass; _local1.I = m_I; _local1.center = GetWorldCenter(); return (_local1); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } b2internal function SynchronizeTransform():void{ var _local1:b2Mat22; var _local2:b2Vec2; m_xf.R.Set(m_sweep.a); _local1 = m_xf.R; _local2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function PutToSleep():void{ m_flags = (m_flags | e_sleepFlag); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; } public function GetControllerList():b2ControllerEdge{ return (m_controllerList); } public function SetMassFromShapes():void{ var _local1:b2Shape; var _local2:Number; var _local3:Number; var _local4:b2MassData; var _local5:b2Mat22; var _local6:b2Vec2; var _local7:int; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; _local2 = 0; _local3 = 0; _local4 = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); _local5 = m_xf.R; _local6 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; _local7 = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function SetXForm(_arg1:b2XForm):Boolean{ return (SetPositionAndAngle(_arg1.position, _arg1.GetAngle())); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } b2internal function SynchronizeShapes():Boolean{ var _local1:b2XForm; var _local2:b2Mat22; var _local3:b2Vec2; var _local4:b2Shape; var _local5:Boolean; _local1 = s_xf1; _local1.R.Set(m_sweep.a0); _local2 = _local1.R; _local3 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); _local5 = true; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22; var _local3:b2Vec2; _local2 = m_xf.R; _local3 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x - (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.y + (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetShapeList():b2Shape{ return (m_shapeList); } public function GetMass():Number{ return (m_mass); } public function GetAngle():Number{ return (m_sweep.a); } public function SetStatic():void{ var _local1:b2Shape; if (m_type == e_staticType){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_type = e_staticType; _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:int; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; m_I = _arg1.I; if ((((m_I > 0)) && (((m_flags & b2Body.e_fixedRotationFlag) == 0)))){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); _local3 = m_xf.R; _local4 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; _local5 = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetNext():b2Body{ return (m_next); } 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 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.b2MulTMV(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 WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } 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; var _local5:Number; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:Boolean; _local4 = Math.atan2(_arg2.GetDirectionVector().y, _arg2.GetDirectionVector().x); _local5 = Math.tan(((_local4 - _arg3) * 0.5)); _local6 = b2Math.MulFV(_local5, _arg2.GetDirectionVector()); _local6 = b2Math.SubtractVV(_local6, _arg2.GetNormalVector()); _local6 = b2Math.MulFV(b2Settings.b2_toiSlop, _local6); _local6 = b2Math.AddVV(_local6, _arg2.GetVertex1()); _local7 = b2Math.AddVV(_arg1.GetDirectionVector(), _arg2.GetDirectionVector()); _local7.Normalize(); _local8 = (b2Math.b2Dot(_arg1.GetDirectionVector(), _arg2.GetNormalVector()) > 0); _arg1.SetNextEdge(_arg2, _local6, _local7, _local8); _arg2.SetPrevEdge(_arg1, _local6, _local7, _local8); return (_local4); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function GetAngularDamping():Number{ return (m_angularDamping); } 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.b2MulXT(m_xf, _arg1)); } public function GetXForm():b2XForm{ return (m_xf); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x)); m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y)); m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)))); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } b2internal function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge; _local2 = m_jointList; while (_local2) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function CreateShape(_arg1:b2ShapeDef):b2Shape{ var _local2:b2Shape; var _local3:b2EdgeChainDef; var _local4:b2Vec2; var _local5:b2Vec2; var _local6:int; var _local7:b2EdgeShape; var _local8:b2EdgeShape; var _local9:b2EdgeShape; var _local10:Number; if (m_world.m_lock == true){ return (null); }; if (_arg1.type == b2Shape.e_edgeShape){ _local3 = (_arg1 as b2EdgeChainDef); if (_local3.isALoop){ _local4 = _local3.vertices[(_local3.vertexCount - 1)]; _local6 = 0; } else { _local4 = _local3.vertices[0]; _local6 = 1; }; _local7 = null; _local8 = null; _local9 = null; _local10 = 0; while (_local6 < _local3.vertexCount) { _local5 = _local3.vertices[_local6]; _local9 = new b2EdgeShape(_local4, _local5, _arg1); _local9.m_next = m_shapeList; m_shapeList = _local9; m_shapeCount++; _local9.m_body = this; _local9.CreateProxy(m_world.m_broadPhase, m_xf); _local9.UpdateSweepRadius(m_sweep.localCenter); if (_local8 == null){ _local7 = _local9; _local10 = Math.atan2(_local9.GetDirectionVector().y, _local9.GetDirectionVector().x); } else { _local10 = connectEdges(_local8, _local9, _local10); }; _local8 = _local9; _local4 = _local5; _local6++; }; if (_local3.isALoop){ connectEdges(_local8, _local7, _local10); }; return (_local7); }; _local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); _local2.userData = _arg1.userData; return (_local2); } public function DestroyShape(_arg1:b2Shape):void{ var _local2:b2Shape; var _local3:b2Shape; var _local4:Boolean; if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); _local2 = m_shapeList; _local3 = null; _local4 = false; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_shapeList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function IsFixedRotation():Boolean{ return (((m_flags & e_fixedRotationFlag) == e_fixedRotationFlag)); } public function IsAllowSleeping():Boolean{ return (((m_flags & e_allowSleepFlag) == e_allowSleepFlag)); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function SetPositionAndAngle(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local4:b2Mat22; var _local5:b2Vec2; var _local6:Boolean; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); _local4 = m_xf.R; _local5 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); _local6 = false; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function SetFixedRotation(_arg1:Boolean):void{ if (_arg1){ m_angularVelocity = 0; m_invI = 0; m_flags = (m_flags | e_fixedRotationFlag); } else { if (m_I > 0){ m_invI = (1 / m_I); m_flags = (m_flags & e_fixedRotationFlag); }; }; } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22; var _local3:b2Vec2; _local2 = m_xf.R; _local3 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorld():b2World{ return (m_world); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } } }//package Box2D.Dynamics
Section 77
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2BodyDef { public var massData:b2MassData; public var isBullet:Boolean; public var allowSleep:Boolean; public var angle:Number; public var userData; public var angularDamping:Number; public var fixedRotation:Boolean; public var linearDamping:Number; public var angularVelocity:Number; public var linearVelocity:b2Vec2; public var position:b2Vec2; public var isSleeping:Boolean; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); linearVelocity = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearVelocity.Set(0, 0); angularVelocity = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.Dynamics
Section 78
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 79
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2ContactFilter { b2internal static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function RayCollide(_arg1, _arg2:b2Shape):Boolean{ if (!_arg1){ return (true); }; return (ShouldCollide((_arg1 as b2Shape), _arg2)); } public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:b2FilterData; var _local4:b2FilterData; var _local5:Boolean; _local3 = _arg1.GetFilterData(); _local4 = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; _local5 = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.Dynamics
Section 80
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; import Box2D.*; public class b2ContactListener { public function Add(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ if (_arg1.shape1.userData.isGrenade){ _arg1.shape1.userData.isOnGround = false; }; if (_arg1.shape2.userData.isGrenade){ _arg1.shape2.userData.isOnGround = false; }; } public function Persist(_arg1:b2ContactPoint):void{ if (_arg1.shape1.userData.isGrenade){ _arg1.shape1.userData.isOnGround = true; }; if (_arg1.shape2.userData.isGrenade){ _arg1.shape2.userData.isOnGround = true; }; } public function Result(_arg1:b2ContactResult):void{ } } }//package Box2D.Dynamics
Section 81
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2ContactManager extends b2PairCallback { b2internal var m_world:b2World; private var m_destroyImmediate:Boolean; private var m_nullContact:b2NullContact; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2Contact; _local3 = (_arg1 as b2Shape); _local4 = (_arg2 as b2Shape); _local5 = _local3.m_body; _local6 = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; _local7 = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } override public function PairRemoved(_arg1, _arg2, _arg3):void{ var _local4:b2Contact; if (_arg3 == null){ return; }; _local4 = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local2:b2Shape; var _local3:b2Shape; var _local4:b2Body; var _local5:b2Body; var _local6:b2ContactPoint; var _local7:int; var _local8:Array; var _local9:int; var _local10:b2Manifold; var _local11:int; var _local12:b2ManifoldPoint; var _local13:b2Vec2; var _local14:b2Vec2; _local2 = _arg1.m_shape1; _local3 = _arg1.m_shape2; _local4 = _local2.m_body; _local5 = _local3.m_body; _local6 = s_evalCP; _local6.shape1 = _arg1.m_shape1; _local6.shape2 = _arg1.m_shape2; _local6.friction = b2Settings.b2MixFriction(_local2.GetFriction(), _local3.GetFriction()); _local6.restitution = b2Settings.b2MixRestitution(_local2.GetRestitution(), _local3.GetRestitution()); _local7 = _arg1.m_manifoldCount; if ((((_local7 > 0)) && (m_world.m_contactListener))){ _local8 = _arg1.GetManifolds(); _local9 = 0; while (_local9 < _local7) { _local10 = _local8[_local9]; _local6.normal.SetV(_local10.normal); _local11 = 0; while (_local11 < _local10.pointCount) { _local12 = _local10.points[_local11]; _local6.position = _local4.GetWorldPoint(_local12.localPoint1); _local13 = _local4.GetLinearVelocityFromLocalPoint(_local12.localPoint1); _local14 = _local5.GetLinearVelocityFromLocalPoint(_local12.localPoint2); _local6.velocity.Set((_local14.x - _local13.x), (_local14.y - _local13.y)); _local6.separation = _local12.separation; _local6.id.key = _local12.id._key; m_world.m_contactListener.Remove(_local6); _local11++; }; _local9++; }; }; 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_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local4.m_contactList){ _local4.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } public function Collide():void{ var _local1:b2Contact; var _local2:b2Body; var _local3:b2Body; _local1 = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.Dynamics
Section 82
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import flash.display.*; import Box2D.Common.*; 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_coreShapeBit:uint = 4; public static var e_shapeBit:uint = 1; public static var e_centerOfMassBit:uint = 64; public static var e_aabbBit:uint = 8; public static var e_controllerBit:uint = 128; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_jointBit:uint = 2; public function b2DebugDraw(){ m_drawScale = 1; m_lineThickness = 1; m_alpha = 1; m_fillAlpha = 1; m_xformScale = 1; super(); m_drawFlags = 0; } public function 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{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function 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 DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function 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 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{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } 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.Dynamics
Section 83
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeJoint(_arg1:b2Joint):void{ } public function SayGoodbyeShape(_arg1:b2Shape):void{ } } }//package Box2D.Dynamics
Section 84
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2Island { b2internal var m_joints:Array; private var m_listener:b2ContactListener; private var m_bodyCapacity:int; b2internal var m_bodies:Array; 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_bodyCount:int; private static var s_reportCR:b2ContactResult = new b2ContactResult(); public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){ var _local6:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; m_bodies = new Array(_arg1); _local6 = 0; while (_local6 < _arg1) { m_bodies[_local6] = null; _local6++; }; m_contacts = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { m_contacts[_local6] = null; _local6++; }; m_joints = new Array(_arg3); _local6 = 0; while (_local6 < _arg3) { m_joints[_local6] = null; _local6++; }; } 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 _local2:b2Mat22; var _local3:b2Vec2; var _local4:int; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; _local4 = 0; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean):void{ var _local4:int; var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local8:b2ContactSolver; var _local9:b2Vec2; var _local10:Number; var _local11:Boolean; var _local12:Boolean; var _local13:Boolean; var _local14:Number; var _local15:Number; var _local16:Number; _local4 = 0; while (_local4 < m_bodyCount) { _local6 = m_bodies[_local4]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); }; _local4++; }; _local8 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _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++; }; _local8.FinalizeVelocityConstraints(); _local4 = 0; while (_local4 < m_bodyCount) { _local6 = m_bodies[_local4]; if (_local6.IsStatic()){ } else { _local9 = b2Math.MulFV(_arg1.dt, _local6.m_linearVelocity); if (_local9.LengthSquared() > 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)); }; _local10 = (_arg1.dt * _local6.m_angularVelocity); if (((_arg1.dt * _local6.m_angularVelocity) * _local10) > 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) { _local11 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local12 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local13 = _local7.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local12 = ((_local12) && (_local13)); _local5++; }; if (((_local11) && (_local12))){ break; }; _local4++; }; Report(_local8.m_constraints); if (_arg3){ _local14 = Number.MAX_VALUE; _local15 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local16 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local4 = 0; while (_local4 < m_bodyCount) { _local6 = m_bodies[_local4]; if (_local6.m_invMass == 0){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local14 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local16)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local15)))){ _local6.m_sleepTime = 0; _local14 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local14 = b2Math.b2Min(_local14, _local6.m_sleepTime); }; }; _local4++; }; if (_local14 >= b2Settings.b2_timeToSleep){ _local4 = 0; while (_local4 < m_bodyCount) { _local6 = m_bodies[_local4]; m_bodies[_local4].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local4++; }; }; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local3:int; var _local4:b2ContactSolver; var _local5:Number; var _local6:b2Body; var _local7:b2Vec2; var _local8:Number; var _local9:Boolean; var _local10:Boolean; var _local11:Boolean; _local4 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _arg1.warmStarting = true; _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].InitVelocityConstraints(_arg1); _local3++; }; _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local6 = m_bodies[_local2]; if (_local6.IsStatic()){ } else { _local7 = b2Math.MulFV(_arg1.dt, _local6.m_linearVelocity); if (_local7.LengthSquared() > 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)); }; _local8 = (_arg1.dt * _local6.m_angularVelocity); if (((_arg1.dt * _local6.m_angularVelocity) * _local8) > 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++; }; _local5 = 0.75; _local2 = 0; while (_local2 < _arg1.positionIterations) { _local9 = _local4.SolvePositionConstraints(_local5); _local10 = true; _local3 = 0; while (_local3 < m_jointCount) { _local11 = m_joints[_local3].SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local10 = ((_local10) && (_local11)); _local3++; }; if (((_local9) && (_local10))){ break; }; _local2++; }; Report(_local4.m_constraints); } } }//package Box2D.Dynamics
Section 85
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var warmStarting:Boolean; public var dt:Number; public var velocityIterations:int; public var dtRatio:Number; public var inv_dt:Number; public var positionIterations:int; } }//package Box2D.Dynamics
Section 86
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Controllers.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2World { private var m_inv_dt0:Number; private var m_boundaryListener:b2BoundaryListener; private var m_controllerList:b2Controller; private var m_controllerCount:int; b2internal var m_contactList:b2Contact; b2internal var m_blockAllocator; b2internal var m_contactListener:b2ContactListener; b2internal var m_raycastSegment:b2Segment; b2internal var m_broadPhase:b2BroadPhase; private var m_jointCount:int; private var m_bodyCount:int; private var m_destructionListener:b2DestructionListener; b2internal var m_lock:Boolean; b2internal var m_raycastUserData; private var m_allowSleep:Boolean; b2internal var m_groundBody:b2Body; b2internal var m_contactCount:int; b2internal var m_raycastNormal:b2Vec2; b2internal var m_contactFilter:b2ContactFilter; b2internal var m_bodyList:b2Body; private var m_debugDraw:b2DebugDraw; b2internal var m_stackAllocator; private var m_jointList:b2Joint; private var m_gravity:b2Vec2; private var m_contactManager:b2ContactManager; private static var s_xf:b2XForm = new b2XForm(); private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); private static var m_continuousPhysics:Boolean; private static var m_warmStarting:Boolean; private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ var _local4:b2BodyDef; m_raycastNormal = new b2Vec2(); m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_controllerList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_controllerCount = 0; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_inv_dt0 = 0; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); _local4 = new b2BodyDef(); m_groundBody = CreateBody(_local4); } b2internal function DrawJoint(_arg1:b2Joint):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2XForm; var _local5:b2XForm; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; _local2 = _arg1.m_body1; _local3 = _arg1.m_body2; _local4 = _local2.m_xf; _local5 = _local3.m_xf; _local6 = _local4.position; _local7 = _local5.position; _local8 = _arg1.GetAnchor1(); _local9 = _arg1.GetAnchor2(); _local10 = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } b2internal function DrawDebugData():void{ var _local1:uint; var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2XForm; var _local12:b2AABB; var _local13:b2AABB; var _local14:Array; var _local15:Boolean; var _local16:b2Controller; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); _local1 = m_debugDraw.GetFlags(); _local7 = new b2Vec2(); _local8 = new b2Vec2(); _local9 = new b2Vec2(); _local10 = new b2Color(0, 0, 0); _local12 = new b2AABB(); _local13 = new b2AABB(); _local14 = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_controllerBit)){ _local16 = m_controllerList; while (_local16) { _local16.Draw(m_debugDraw); _local16 = _local16.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); for each (_local17 in _local6.m_pairManager.m_pairs) { _local18 = _local17.proxy1; _local19 = _local17.proxy2; if (((!(_local18)) || (!(_local19)))){ } else { _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); }; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < _local6.m_proxyPool.length) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local2:b2JointEdge; var _local3:b2ControllerEdge; var _local4:b2Shape; var _local5:b2JointEdge; var _local6:b2ControllerEdge; var _local7:b2Shape; if (_arg1.isDead){ return; }; _arg1.isDead = true; if (m_lock == true){ return; }; _local2 = _arg1.m_jointList; while (_local2) { _local5 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local5.joint); }; DestroyJoint(_local5.joint); }; _local3 = _arg1.m_controllerList; while (_local3) { _local6 = _local3; _local3 = _local3.nextController; _local6.controller.RemoveBody(_arg1); }; _local4 = _arg1.m_shapeList; while (_local4) { _local7 = _local4; _local4 = _local4.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local7); }; _local7.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local7, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } b2internal function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local5:b2Color; var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; var _local16:b2EdgeShape; _local5 = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; case b2Shape.e_edgeShape: _local16 = (_arg1 as b2EdgeShape); m_debugDraw.DrawSegment(b2Math.b2MulX(_arg2, _local16.GetVertex1()), b2Math.b2MulX(_arg2, _local16.GetVertex2()), _arg3); if (_arg4){ m_debugDraw.DrawSegment(b2Math.b2MulX(_arg2, _local16.GetCoreVertex1()), b2Math.b2MulX(_arg2, _local16.GetCoreVertex2()), _local5); }; 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 _local3:b2Controller; var _local4:b2Island; var _local5:b2Contact; var _local6:b2Joint; var _local7:int; var _local8:Array; var _local9:b2Body; var _local10:int; var _local11:int; var _local12:b2Body; var _local13:b2ContactEdge; var _local14:b2JointEdge; var _local15:Boolean; _local3 = m_controllerList; while (_local3) { _local3.Step(_arg1); _local3 = _local3.m_next; }; _local4 = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; _local5 = m_contactList; while (_local5) { _local5.m_flags = (_local5.m_flags & ~(b2Contact.e_islandFlag)); _local5 = _local5.m_next; }; _local6 = m_jointList; while (_local6) { _local6.m_islandFlag = false; _local6 = _local6.m_next; }; _local7 = m_bodyCount; _local8 = new Array(_local7); _local9 = m_bodyList; while (_local9) { if ((_local9.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local9.IsStatic()){ } else { _local4.Clear(); _local10 = 0; var _temp1 = _local10; _local10 = (_local10 + 1); var _local16 = _temp1; _local8[_local16] = _local9; _local9.m_flags = (_local9.m_flags | b2Body.e_islandFlag); while (_local10 > 0) { --_local10; _local2 = _local8[_local10]; _local4.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local13 = _local2.m_contactList; while (_local13) { if ((_local13.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local13.contact.m_manifoldCount == 0){ } 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 _local17 = _temp2; _local8[_local17] = _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 { _local4.AddJoint(_local14.joint); _local14.joint.m_islandFlag = true; _local12 = _local14.other; if ((_local12.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local10; _local10 = (_local10 + 1); _local17 = _temp3; _local8[_local17] = _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.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local11++; }; }; }; _local9 = _local9.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local15 = _local2.SynchronizeShapes(); if ((((_local15 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array; var _local5:int; var _local6:int; _local4 = new Array(_arg3); _local5 = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); _local6 = 0; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } b2internal function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local8:b2Joint; var _local9:b2Island; var _local10:int; var _local11:Array; var _local12:b2Contact; var _local13:b2Contact; var _local14:Number; var _local15:b2Body; var _local16:int; var _local17:int; var _local18:b2JointEdge; var _local19:b2TimeStep; var _local20:int; var _local21:Number; var _local22:Number; var _local23:b2Body; var _local24:Boolean; _local9 = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, b2Settings.b2_maxTOIJointsPerIsland, m_stackAllocator, m_contactListener); _local10 = m_bodyCount; _local11 = new Array(_local10); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local12 = m_contactList; while (_local12) { _local12.m_flags = (_local12.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local12 = _local12.m_next; }; _local8 = m_jointList; while (_local8) { _local8.m_islandFlag = false; _local8 = _local8.m_next; }; while (true) { _local13 = null; _local14 = 1; _local12 = m_contactList; for (;_local12;(_local12 = _local12.m_next)) { if ((_local12.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local21 = 1; if ((_local12.m_flags & b2Contact.e_toiFlag)){ _local21 = _local12.m_toi; } else { _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local22 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local22 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local22); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local22 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local22); }; }; _local21 = b2TimeOfImpact.TimeOfImpact(_local12.m_shape1, _local5.m_sweep, _local12.m_shape2, _local6.m_sweep); if ((((_local21 > 0)) && ((_local21 < 1)))){ _local21 = (((1 - _local21) * _local22) + _local21); if (_local21 > 1){ _local21 = 1; }; }; _local12.m_toi = _local21; _local12.m_flags = (_local12.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local21)) && ((_local21 < _local14)))){ _local13 = _local12; _local14 = _local21; }; }; }; if ((((_local13 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local14)))){ break; }; _local3 = _local13.m_shape1; _local4 = _local13.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local14); _local6.Advance(_local14); _local13.Update(m_contactListener); _local13.m_flags = (_local13.m_flags & ~(b2Contact.e_toiFlag)); if (_local13.m_manifoldCount == 0){ } else { _local15 = _local5; if (_local15.IsStatic()){ _local15 = _local6; }; _local9.Clear(); _local16 = 0; _local17 = 0; var _temp1 = _local17; _local17 = (_local17 + 1); _local11[(_local16 + _temp1)] = _local15; _local15.m_flags = (_local15.m_flags | b2Body.e_islandFlag); while (_local17 > 0) { var _temp2 = _local16; _local16 = (_local16 + 1); _local2 = _local11[_temp2]; _local17--; _local9.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local9.m_contactCount == _local9.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local9.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local23 = _local7.other; if ((_local23.m_flags & b2Body.e_islandFlag)){ } else { if (_local23.IsStatic() == false){ _local23.Advance(_local14); _local23.WakeUp(); }; _local11[(_local16 + _local17)] = _local23; _local17++; _local23.m_flags = (_local23.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local18 = _local2.m_jointList; while (_local18) { if (_local9.m_jointCount == _local9.m_jointCapacity){ } else { if (_local18.joint.m_islandFlag == true){ } else { _local9.AddJoint(_local18.joint); _local18.joint.m_islandFlag = true; _local23 = _local18.other; if ((_local23.m_flags & b2Body.e_islandFlag)){ } else { if (!_local23.IsStatic()){ _local23.Advance(_local14); _local23.WakeUp(); }; _local11[(_local16 + _local17)] = _local23; _local17++; _local23.m_flags = (_local23.m_flags | b2Body.e_islandFlag); }; }; }; _local18 = _local18.next; }; _local19 = new b2TimeStep(); _local19.warmStarting = false; _local19.dt = ((1 - _local14) * _arg1.dt); _local19.inv_dt = (1 / _local19.dt); _local19.dtRatio = 0; _local19.velocityIterations = _arg1.velocityIterations; _local19.positionIterations = _arg1.positionIterations; _local9.SolveTOI(_local19); _local20 = 0; while (_local20 < _local9.m_bodyCount) { _local2 = _local9.m_bodies[_local20]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local24 = _local2.SynchronizeShapes(); if ((((_local24 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local20++; }; _local20 = 0; while (_local20 < _local9.m_contactCount) { _local12 = _local9.m_contacts[_local20]; _local9.m_contacts[_local20].m_flags = (_local12.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local20++; }; _local20 = 0; while (_local20 < _local9.m_jointCount) { _local8 = _local9.m_joints[_local20]; _local8.m_islandFlag = false; _local20++; }; m_broadPhase.Commit(); }; }; } 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 Validate():void{ m_broadPhase.Validate(); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function Raycast(_arg1:b2Segment, _arg2:Array, _arg3:int, _arg4:Boolean, _arg5):int{ var _local6:Array; var _local7:int; var _local8:int; _local6 = new Array(_arg3); m_raycastSegment = _arg1; m_raycastUserData = _arg5; if (_arg4){ _local7 = m_broadPhase.QuerySegment(_arg1, _local6, _arg3, RaycastSortKey); } else { _local7 = m_broadPhase.QuerySegment(_arg1, _local6, _arg3, RaycastSortKey2); }; _local8 = 0; while (_local8 < _local7) { _arg2[_local8] = _local6[_local8]; _local8++; }; return (_local7); } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local2:b2Joint; var _local3:b2Body; var _local4:b2Shape; _local2 = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local2:Boolean; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:b2Shape; _local2 = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; _local3 = _arg1.m_body1; _local4 = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function 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); } b2internal function RaycastSortKey2(_arg1:b2Shape):Number{ var _local2:b2Body; var _local3:b2XForm; var _local4:Array; if (((m_contactFilter) && (!(m_contactFilter.RayCollide(m_raycastUserData, _arg1))))){ return (-1); }; _local2 = _arg1.GetBody(); _local3 = _local2.GetXForm(); _local4 = [0]; if (_arg1.TestSegment(_local3, _local4, m_raycastNormal, m_raycastSegment, 1) != b2Shape.e_hitCollide){ return (-1); }; return (_local4[0]); } public function RaycastOne(_arg1:b2Segment, _arg2:Array, _arg3:b2Vec2, _arg4:Boolean, _arg5):b2Shape{ var _local6:Array; var _local7:Number; var _local8:b2Shape; var _local9:b2XForm; _local6 = new Array(1); _local7 = Raycast(_arg1, _local6, 1, _arg4, _arg5); if (_local7 == 0){ return (null); }; if (_local7 > 1){ trace(_local7); }; _local8 = _local6[0]; _local9 = _local8.GetBody().GetXForm(); _local8.TestSegment(_local9, _arg2, _arg3, _arg1, 1); return (_local8); } public function CreateBody(_arg1:b2BodyDef):b2Body{ var _local2:b2Body; if (m_lock == true){ return (null); }; _local2 = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } b2internal function RaycastSortKey(_arg1:b2Shape):Number{ var _local2:b2Body; var _local3:b2XForm; var _local4:Array; if (((m_contactFilter) && (!(m_contactFilter.RayCollide(m_raycastUserData, _arg1))))){ return (-1); }; _local2 = _arg1.GetBody(); _local3 = _local2.GetXForm(); _local4 = [0]; if (_arg1.TestSegment(_local3, _local4, m_raycastNormal, m_raycastSegment, 1) == b2Shape.e_missCollide){ return (-1); }; return (_local4[0]); } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } 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 Step(_arg1:Number, _arg2:int, _arg3:int):void{ var _local4:b2TimeStep; m_lock = true; _local4 = new b2TimeStep(); _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); }; DrawDebugData(); m_inv_dt0 = _local4.inv_dt; m_lock = false; } public function GetBodyCount():int{ return (m_bodyCount); } public function InRange(_arg1:b2AABB):Boolean{ return (m_broadPhase.InRange(_arg1)); } public function GetJointCount():int{ return (m_jointCount); } 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.Dynamics
Section 87
//PropTween (com.greensock.core.PropTween) package com.greensock.core { public class PropTween { public var start:Number; public var name:String; public var prevNode:PropTween; public var change:Number; public var target:Object; public var priority:int; public var property:String; public var nextNode:PropTween; public var isPlugin:Boolean; public function PropTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:String, _arg6:Boolean, _arg7:PropTween=null, _arg8:int=0){ this.target = _arg1; this.property = _arg2; this.start = _arg3; this.change = _arg4; this.name = _arg5; this.isPlugin = _arg6; if (_arg7){ _arg7.prevNode = this; this.nextNode = _arg7; }; this.priority = _arg8; } } }//package com.greensock.core
Section 88
//SimpleTimeline (com.greensock.core.SimpleTimeline) package com.greensock.core { public class SimpleTimeline extends TweenCore { public var autoRemoveChildren:Boolean; protected var _lastChild:TweenCore; protected var _firstChild:TweenCore; public function SimpleTimeline(_arg1:Object=null){ super(0, _arg1); } override public function renderTime(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{ var _local4:TweenCore; var _local5:Number; var _local6:TweenCore; _local4 = _firstChild; this.cachedTotalTime = _arg1; this.cachedTime = _arg1; while (_local4) { _local6 = _local4.nextNode; if (((_local4.active) || ((((((_arg1 >= _local4.cachedStartTime)) && (!(_local4.cachedPaused)))) && (!(_local4.gc)))))){ if (!_local4.cachedReversed){ _local4.renderTime(((_arg1 - _local4.cachedStartTime) * _local4.cachedTimeScale), _arg2, false); } else { _local5 = (_local4.cacheIsDirty) ? _local4.totalDuration : _local4.cachedTotalDuration; _local4.renderTime((_local5 - ((_arg1 - _local4.cachedStartTime) * _local4.cachedTimeScale)), _arg2, false); }; }; _local4 = _local6; }; } public function addChild(_arg1:TweenCore):void{ if (((!(_arg1.gc)) && (_arg1.timeline))){ _arg1.timeline.remove(_arg1, true); }; _arg1.timeline = this; if (_arg1.gc){ _arg1.setEnabled(true, true); }; if (_firstChild){ _firstChild.prevNode = _arg1; }; _arg1.nextNode = _firstChild; _firstChild = _arg1; _arg1.prevNode = null; } public function get rawTime():Number{ return (this.cachedTotalTime); } public function remove(_arg1:TweenCore, _arg2:Boolean=false):void{ if (((!(_arg1.gc)) && (!(_arg2)))){ _arg1.setEnabled(false, true); }; if (_arg1.nextNode){ _arg1.nextNode.prevNode = _arg1.prevNode; } else { if (_lastChild == _arg1){ _lastChild = _arg1.prevNode; }; }; if (_arg1.prevNode){ _arg1.prevNode.nextNode = _arg1.nextNode; } else { if (_firstChild == _arg1){ _firstChild = _arg1.nextNode; }; }; } } }//package com.greensock.core
Section 89
//TweenCore (com.greensock.core.TweenCore) package com.greensock.core { import com.greensock.*; public class TweenCore { public var initted:Boolean; protected var _hasUpdate:Boolean; public var active:Boolean; protected var _delay:Number; public var cachedReversed:Boolean; public var nextNode:TweenCore; public var cachedTime:Number; protected var _rawPrevTime:Number;// = -1 public var vars:Object; public var cachedTotalTime:Number; public var data; public var timeline:SimpleTimeline; public var cachedStartTime:Number; public var prevNode:TweenCore; public var cachedDuration:Number; public var gc:Boolean; protected var _pauseTime:Number; public var cacheIsDirty:Boolean; public var cachedPaused:Boolean; public var cachedTimeScale:Number; public var cachedTotalDuration:Number; public static const version:Number = 1.13; protected static var _classInitted:Boolean; public function TweenCore(_arg1:Number=0, _arg2:Object=null){ var _local3:SimpleTimeline; _rawPrevTime = -1; super(); this.vars = ((_arg2) || ({})); this.cachedDuration = (this.cachedTotalDuration = ((_arg1) || (0))); _delay = ((this.vars.delay) || (0)); this.cachedTimeScale = ((this.vars.timeScale) || (1)); this.active = Boolean((((((_arg1 == 0)) && ((_delay == 0)))) && (!((this.vars.immediateRender == false))))); this.cachedTotalTime = (this.cachedTime = 0); this.data = this.vars.data; if (!_classInitted){ if (isNaN(TweenLite.rootFrame)){ TweenLite.initClass(); _classInitted = true; } else { return; }; }; _local3 = ((this.vars.timeline is SimpleTimeline)) ? this.vars.timeline : (this.vars.useFrames) ? TweenLite.rootFramesTimeline : TweenLite.rootTimeline; this.cachedStartTime = (_local3.cachedTotalTime + _delay); _local3.addChild(this); if (this.vars.reversed){ this.cachedReversed = true; }; if (this.vars.paused){ this.paused = true; }; } public function renderTime(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{ } public function get delay():Number{ return (_delay); } public function get duration():Number{ return (this.cachedDuration); } public function set reversed(_arg1:Boolean):void{ if (_arg1 != this.cachedReversed){ this.cachedReversed = _arg1; setTotalTime(this.cachedTotalTime, true); }; } public function set startTime(_arg1:Number):void{ var _local2:Boolean; _local2 = Boolean(((!((this.timeline == null))) && (((!((_arg1 == this.cachedStartTime))) || (this.gc))))); this.cachedStartTime = _arg1; if (_local2){ this.timeline.addChild(this); }; } public function set delay(_arg1:Number):void{ this.startTime = (this.startTime + (_arg1 - _delay)); _delay = _arg1; } public function resume():void{ this.paused = false; } public function get paused():Boolean{ return (this.cachedPaused); } public function play():void{ this.reversed = false; this.paused = false; } public function set duration(_arg1:Number):void{ this.cachedDuration = (this.cachedTotalDuration = _arg1); setDirtyCache(false); } public function invalidate():void{ } public function restart(_arg1:Boolean=false, _arg2:Boolean=true):void{ this.reversed = false; this.paused = false; this.setTotalTime((_arg1) ? -(_delay) : 0, _arg2); } public function complete(_arg1:Boolean=false, _arg2:Boolean=false):void{ if (!_arg1){ renderTime(this.cachedTotalDuration, _arg2, false); return; }; if (this.timeline.autoRemoveChildren){ this.setEnabled(false, false); } else { this.active = false; }; if (!_arg2){ if (((((this.vars.onComplete) && ((this.cachedTotalTime == this.cachedTotalDuration)))) && (!(this.cachedReversed)))){ this.vars.onComplete.apply(null, this.vars.onCompleteParams); } else { if (((((this.cachedReversed) && ((this.cachedTotalTime == 0)))) && (this.vars.onReverseComplete))){ this.vars.onReverseComplete.apply(null, this.vars.onReverseCompleteParams); }; }; }; } public function get reversed():Boolean{ return (this.cachedReversed); } public function get totalTime():Number{ return (this.cachedTotalTime); } public function get startTime():Number{ return (this.cachedStartTime); } public function set currentTime(_arg1:Number):void{ setTotalTime(_arg1, false); } protected function setDirtyCache(_arg1:Boolean=true):void{ var _local2:TweenCore; _local2 = (_arg1) ? this : this.timeline; while (_local2) { _local2.cacheIsDirty = true; _local2 = _local2.timeline; }; } public function reverse(_arg1:Boolean=true):void{ this.reversed = true; if (_arg1){ this.paused = false; } else { if (this.gc){ this.setEnabled(true, false); }; }; } public function set paused(_arg1:Boolean):void{ if (((!((_arg1 == this.cachedPaused))) && (this.timeline))){ if (_arg1){ _pauseTime = this.timeline.rawTime; } else { this.cachedStartTime = (this.cachedStartTime + (this.timeline.rawTime - _pauseTime)); _pauseTime = NaN; setDirtyCache(false); }; this.cachedPaused = _arg1; this.active = Boolean(((((!(this.cachedPaused)) && ((this.cachedTotalTime > 0)))) && ((this.cachedTotalTime < this.cachedTotalDuration)))); }; if (((!(_arg1)) && (this.gc))){ this.setTotalTime(this.cachedTotalTime, false); this.setEnabled(true, false); }; } public function kill():void{ setEnabled(false, false); } public function set totalTime(_arg1:Number):void{ setTotalTime(_arg1, false); } public function get currentTime():Number{ return (this.cachedTime); } protected function setTotalTime(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; var _local4:Number; if (this.timeline){ _local3 = (((_pauseTime) || ((_pauseTime == 0)))) ? _pauseTime : this.timeline.cachedTotalTime; if (this.cachedReversed){ _local4 = (this.cacheIsDirty) ? this.totalDuration : this.cachedTotalDuration; this.cachedStartTime = (_local3 - ((_local4 - _arg1) / this.cachedTimeScale)); } else { this.cachedStartTime = (_local3 - (_arg1 / this.cachedTimeScale)); }; if (!this.timeline.cacheIsDirty){ setDirtyCache(false); }; if (this.cachedTotalTime != _arg1){ renderTime(_arg1, _arg2, false); }; }; } public function pause():void{ this.paused = true; } public function set totalDuration(_arg1:Number):void{ this.duration = _arg1; } public function get totalDuration():Number{ return (this.cachedTotalDuration); } public function setEnabled(_arg1:Boolean, _arg2:Boolean=false):Boolean{ if (_arg1){ this.active = Boolean(((((!(this.cachedPaused)) && ((this.cachedTotalTime > 0)))) && ((this.cachedTotalTime < this.cachedTotalDuration)))); if (((!(_arg2)) && (this.gc))){ this.timeline.addChild(this); }; } else { this.active = false; if (!_arg2){ this.timeline.remove(this, true); }; }; this.gc = !(_arg1); return (false); } } }//package com.greensock.core
Section 90
//Bounce (com.greensock.easing.Bounce) package com.greensock.easing { public class Bounce { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); if (_arg1 < (1 / 2.75)){ return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2)); }; if (_arg1 < (2 / 2.75)){ _arg1 = (_arg1 - (1.5 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2)); }; if (_arg1 < (2.5 / 2.75)){ _arg1 = (_arg1 - (2.25 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2)); }; _arg1 = (_arg1 - (2.625 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg3 - easeOut((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 * 0.5)){ return (((easeIn((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2)); }; return ((((easeOut(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2)); } } }//package com.greensock.easing
Section 91
//Elastic (com.greensock.easing.Elastic) package com.greensock.easing { public class Elastic { private static const _2PI:Number = (Math.PI * 2); public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * 0.3); }; if (((((!(_arg5)) || ((((_arg3 > 0)) && ((_arg5 < _arg3)))))) || ((((_arg3 < 0)) && ((_arg5 < -(_arg3))))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / _2PI) * Math.asin((_arg3 / _arg5))); }; --_arg1; return ((-(((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6)))) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / (_arg4 * 0.5)); if (_arg1 == 2){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * (0.3 * 1.5)); }; if (((((!(_arg5)) || ((((_arg3 > 0)) && ((_arg5 < _arg3)))))) || ((((_arg3 < 0)) && ((_arg5 < -(_arg3))))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / _2PI) * Math.asin((_arg3 / _arg5))); }; if (_arg1 < 1){ --_arg1; return (((-0.5 * ((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6)))) + _arg2)); }; --_arg1; return ((((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6))) * 0.5) + _arg3) + _arg2)); } public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * 0.3); }; if (((((!(_arg5)) || ((((_arg3 > 0)) && ((_arg5 < _arg3)))))) || ((((_arg3 < 0)) && ((_arg5 < -(_arg3))))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / _2PI) * Math.asin((_arg3 / _arg5))); }; return (((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6))) + _arg3) + _arg2)); } } }//package com.greensock.easing
Section 92
//Strong (com.greensock.easing.Strong) package com.greensock.easing { public class Strong { public static const power:uint = 4; public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 * 0.5)); if (_arg1 < 1){ return ((((((((_arg3 * 0.5) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 * 0.5) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2)); } } }//package com.greensock.easing
Section 93
//TweenLite (com.greensock.TweenLite) package com.greensock { import flash.display.*; import com.greensock.core.*; import flash.utils.*; import flash.events.*; import com.greensock.plugins.*; public class TweenLite extends TweenCore { public var target:Object; protected var _overwrite:uint; public var ratio:Number;// = 0 protected var _notifyPluginsOfEnabled:Boolean; protected var _hasPlugins:Boolean; public var cachedPT1:PropTween; protected var _overwrittenProps:Object; public var propTweenLookup:Object; protected var _ease:Function; public static const version:Number = 11.131; public static var rootTimeline:SimpleTimeline; public static var fastEaseLookup:Dictionary = new Dictionary(false); public static var onPluginEvent:Function; public static var rootFramesTimeline:SimpleTimeline; public static var defaultEase:Function = TweenLite.easeOut; public static var plugins:Object = {}; public static var masterList:Dictionary = new Dictionary(false); public static var overwriteManager:Object; public static var rootFrame:Number; public static var killDelayedCallsTo:Function = TweenLite.killTweensOf; private static var _shape:Shape = new Shape(); protected static var _reservedProps:Object = {ease:1, delay:1, overwrite:1, onComplete:1, onCompleteParams:1, useFrames:1, runBackwards:1, startAt:1, onUpdate:1, onUpdateParams:1, roundProps:1, onStart:1, onStartParams:1, onReverseComplete:1, onReverseCompleteParams:1, onRepeat:1, onRepeatParams:1, proxiedEase:1, easeParams:1, yoyo:1, onCompleteListener:1, onUpdateListener:1, onStartListener:1, onReverseCompleteListener:1, onRepeatListener:1, orientToBezier:1, timeScale:1, immediateRender:1, repeat:1, repeatDelay:1, timeline:1, data:1, paused:1}; public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){ var _local4:Array; var _local5:TweenLite; ratio = 0; super(_arg2, _arg3); this.target = _arg1; if ((((this.target is TweenCore)) && (("timeScale" in this.vars)))){ this.cachedTimeScale = 1; }; propTweenLookup = {}; _ease = defaultEase; _overwrite = (((!((Number(_arg3.overwrite) > -1))) || (((!(overwriteManager.enabled)) && ((_arg3.overwrite > 1)))))) ? overwriteManager.mode : int(_arg3.overwrite); _local4 = masterList[_arg1]; if (!_local4){ masterList[_arg1] = [this]; } else { if (_overwrite == 1){ for each (_local5 in _local4) { if (!_local5.gc){ _local5.setEnabled(false, false); }; }; masterList[_arg1] = [this]; } else { _local4[_local4.length] = this; }; }; if (((this.active) || (this.vars.immediateRender))){ renderTime(0, false, true); }; } override public function renderTime(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{ var _local4:Boolean; var _local5:Number; var _local6:PropTween; _local5 = this.cachedTime; if (_arg1 >= this.cachedDuration){ this.cachedTotalTime = (this.cachedTime = this.cachedDuration); this.ratio = 1; _local4 = true; if (this.cachedDuration == 0){ if ((((((_arg1 == 0)) || ((_rawPrevTime < 0)))) && (!((_rawPrevTime == _arg1))))){ _arg3 = true; }; _rawPrevTime = _arg1; }; } else { if (_arg1 <= 0){ this.cachedTotalTime = (this.cachedTime = (this.ratio = 0)); if (_arg1 < 0){ this.active = false; if (this.cachedDuration == 0){ if (_rawPrevTime > 0){ _arg3 = true; _local4 = true; }; _rawPrevTime = _arg1; }; }; if (((this.cachedReversed) && (!((_local5 == 0))))){ _local4 = true; }; } else { this.cachedTotalTime = (this.cachedTime = _arg1); this.ratio = _ease(_arg1, 0, 1, this.cachedDuration); }; }; if ((((this.cachedTime == _local5)) && (!(_arg3)))){ return; }; if (!this.initted){ init(); if (((!(_local4)) && (this.cachedTime))){ this.ratio = _ease(this.cachedTime, 0, 1, this.cachedDuration); }; }; if (((!(this.active)) && (!(this.cachedPaused)))){ this.active = true; }; if ((((((((_local5 == 0)) && (this.vars.onStart))) && (!((this.cachedTime == 0))))) && (!(_arg2)))){ this.vars.onStart.apply(null, this.vars.onStartParams); }; _local6 = this.cachedPT1; while (_local6) { _local6.target[_local6.property] = (_local6.start + (this.ratio * _local6.change)); _local6 = _local6.nextNode; }; if (((_hasUpdate) && (!(_arg2)))){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; if (_local4){ if (((_hasPlugins) && (this.cachedPT1))){ onPluginEvent("onComplete", this); }; complete(true, _arg2); }; } protected function init():void{ var _local1:String; var _local2:int; var _local3:*; var _local4:Boolean; var _local5:Array; var _local6:PropTween; if (typeof(this.vars.ease) == "function"){ _ease = this.vars.ease; }; if (this.vars.easeParams){ this.vars.proxiedEase = _ease; _ease = easeProxy; }; this.cachedPT1 = null; this.propTweenLookup = {}; for (_local1 in this.vars) { if ((((_local1 in _reservedProps)) && (!((((_local1 == "timeScale")) && ((this.target is TweenCore))))))){ } else { if ((((_local1 in plugins)) && (new ((plugins[_local1] as Class)).onInitTween(this.target, this.vars[_local1], this)))){ this.cachedPT1 = new PropTween(_local3, "changeFactor", 0, 1, ((_local3.overwriteProps.length)==1) ? _local3.overwriteProps[0] : "_MULTIPLE_", true, this.cachedPT1); if (this.cachedPT1.name == "_MULTIPLE_"){ _local2 = _local3.overwriteProps.length; while (_local2--) { this.propTweenLookup[_local3.overwriteProps[_local2]] = this.cachedPT1; }; } else { this.propTweenLookup[this.cachedPT1.name] = this.cachedPT1; }; if (_local3.priority){ this.cachedPT1.priority = _local3.priority; _local4 = true; }; if (((_local3.onDisable) || (_local3.onEnable))){ _notifyPluginsOfEnabled = true; }; _hasPlugins = true; } else { this.cachedPT1 = new PropTween(this.target, _local1, Number(this.target[_local1]), ((typeof(this.vars[_local1]))=="number") ? (Number(this.vars[_local1]) - this.target[_local1]) : Number(this.vars[_local1]), _local1, false, this.cachedPT1); this.propTweenLookup[_local1] = this.cachedPT1; }; }; }; if (_local4){ onPluginEvent("onInit", this); }; if (this.vars.runBackwards){ _local6 = this.cachedPT1; while (_local6) { _local6.start = (_local6.start + _local6.change); _local6.change = -(_local6.change); _local6 = _local6.nextNode; }; }; _hasUpdate = Boolean(!((this.vars.onUpdate == null))); if (_overwrittenProps){ killVars(_overwrittenProps); if (this.cachedPT1 == null){ this.setEnabled(false, false); }; }; if ((((((((_overwrite > 1)) && (this.cachedPT1))) && (masterList[this.target]))) && ((_local5.length > 1)))){ if (overwriteManager.manageOverwrites(this, this.propTweenLookup, _local5, _overwrite)){ init(); }; }; this.initted = true; } protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams))); } override public function invalidate():void{ if (((_notifyPluginsOfEnabled) && (this.cachedPT1))){ onPluginEvent("onDisable", this); }; this.cachedPT1 = null; _overwrittenProps = null; _hasUpdate = (this.initted = (this.active = (_notifyPluginsOfEnabled = false))); this.propTweenLookup = {}; } public function killVars(_arg1:Object, _arg2:Boolean=true):Boolean{ var _local3:String; var _local4:PropTween; var _local5:Boolean; if (_overwrittenProps == null){ _overwrittenProps = {}; }; for (_local3 in _arg1) { if ((_local3 in propTweenLookup)){ _local4 = propTweenLookup[_local3]; if (((_local4.isPlugin) && ((_local4.name == "_MULTIPLE_")))){ _local4.target.killProps(_arg1); if (_local4.target.overwriteProps.length == 0){ _local4.name = ""; }; }; if (_local4.name != "_MULTIPLE_"){ if (_local4.nextNode){ _local4.nextNode.prevNode = _local4.prevNode; }; if (_local4.prevNode){ _local4.prevNode.nextNode = _local4.nextNode; } else { if (this.cachedPT1 == _local4){ this.cachedPT1 = _local4.nextNode; }; }; if (((_local4.isPlugin) && (_local4.target.onDisable))){ _local4.target.onDisable(); if (_local4.target.activeDisable){ _local5 = true; }; }; delete propTweenLookup[_local3]; }; }; if (_arg2){ _overwrittenProps[_local3] = 1; }; }; return (_local5); } override public function setEnabled(_arg1:Boolean, _arg2:Boolean=false):Boolean{ var _local3:Array; if (_arg1){ _local3 = TweenLite.masterList[this.target]; if (!_local3){ TweenLite.masterList[this.target] = [this]; } else { _local3[_local3.length] = this; }; }; super.setEnabled(_arg1, _arg2); if (((_notifyPluginsOfEnabled) && (this.cachedPT1))){ return (onPluginEvent((_arg1) ? "onEnable" : "onDisable", this)); }; return (false); } public static function initClass():void{ rootFrame = 0; rootTimeline = new SimpleTimeline(null); rootFramesTimeline = new SimpleTimeline(null); rootTimeline.cachedStartTime = (getTimer() * 0.001); rootFramesTimeline.cachedStartTime = rootFrame; rootTimeline.autoRemoveChildren = true; rootFramesTimeline.autoRemoveChildren = true; _shape.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true); if (overwriteManager == null){ overwriteManager = {mode:1, enabled:false}; }; } public static function killTweensOf(_arg1:Object, _arg2:Boolean=false):void{ var _local3:Array; var _local4:int; if ((_arg1 in masterList)){ _local3 = masterList[_arg1]; _local4 = _local3.length; while (_local4--) { if (!TweenLite(_local3[_local4]).gc){ if (_arg2){ TweenLite(_local3[_local4]).complete(false, false); } else { TweenLite(_local3[_local4]).setEnabled(false, false); }; }; }; delete masterList[_arg1]; }; } public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ _arg3.runBackwards = true; if (!("immediateRender" in _arg3)){ _arg3.immediateRender = true; }; return (new TweenLite(_arg1, _arg2, _arg3)); } protected static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (1 - (_arg1 / _arg4)); return ((1 - (_arg1 * _arg1))); } public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null, _arg4:Boolean=false):TweenLite{ return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, immediateRender:false, useFrames:_arg4, overwrite:0})); } protected static function updateAll(_arg1:Event=null):void{ var _local2:Dictionary; var _local3:Object; var _local4:Array; var _local5:int; rootTimeline.renderTime((((getTimer() * 0.001) - rootTimeline.cachedStartTime) * rootTimeline.cachedTimeScale), false, false); rootFrame++; rootFramesTimeline.renderTime(((rootFrame - rootFramesTimeline.cachedStartTime) * rootFramesTimeline.cachedTimeScale), false, false); if (!(rootFrame % 60)){ _local2 = masterList; for (_local3 in _local2) { _local4 = _local2[_local3]; _local5 = _local4.length; while (_local5--) { if (TweenLite(_local4[_local5]).gc){ _local4.splice(_local5, 1); }; }; if (_local4.length == 0){ delete _local2[_local3]; }; }; }; } public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ return (new TweenLite(_arg1, _arg2, _arg3)); } } }//package com.greensock
Section 94
//Box2DMouseUtils (couk.psyked.box2d.utils.Box2DMouseUtils) package couk.psyked.box2d.utils { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import flash.display.*; public class Box2DMouseUtils { private static var m_world:b2World; private static var m_physScale:Number; private static var mousePVec:b2Vec2 = new b2Vec2(); private static var m_sprite:Sprite; private static var accuracy:Number = 2; private static var k_maxCount:int = 100; public static function initialise(_arg1:b2World, _arg2:Number, _arg3:Sprite):void{ m_world = _arg1; m_physScale = _arg2; m_sprite = _arg3; } public static function getTopBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local2:b2Vec2; var _local3:Number; var _local4:Number; var _local5:b2AABB; var _local6:Array; var _local7:int; var _local8:b2Body; var _local9:int; var _local10:b2Shape; var _local11:Boolean; _local2 = new b2Vec2(); _local3 = (m_sprite.mouseX / m_physScale); _local4 = (m_sprite.mouseY / m_physScale); _local2.Set(_local3, _local4); _local5 = new b2AABB(); _local5.lowerBound.Set((_local3 - accuracy), (_local4 - accuracy)); _local5.upperBound.Set((_local3 + accuracy), (_local4 + accuracy)); _local6 = new Array(); _local7 = m_world.Query(_local5, _local6, k_maxCount); _local8 = null; _local9 = 0; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), _local2); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; return (_local8); } public static function getAllBodiesAtMouse(_arg1:Boolean=false):Array{ var _local2:b2Vec2; var _local3:Number; var _local4:Number; var _local5:b2AABB; var _local6:Array; var _local7:int; var _local8:Array; var _local9:int; var _local10:b2Shape; var _local11:Boolean; _local2 = new b2Vec2(); _local3 = (m_sprite.mouseX / m_physScale); _local4 = (m_sprite.mouseY / m_physScale); _local2.Set(_local3, _local4); _local5 = new b2AABB(); _local5.lowerBound.Set((_local3 - accuracy), (_local4 - accuracy)); _local5.upperBound.Set((_local3 + accuracy), (_local4 + accuracy)); _local6 = new Array(); _local7 = m_world.Query(_local5, _local6, k_maxCount); _local8 = new Array(); _local9 = 0; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), _local2); if (_local11){ _local8.push(_local10.GetBody()); }; }; _local9++; }; return (_local8); } } }//package couk.psyked.box2d.utils
Section 95
//Box2DUtils (couk.psyked.box2d.utils.Box2DUtils) package couk.psyked.box2d.utils { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import couk.psyked.box2d.*; import flash.display.*; public class Box2DUtils { public static function createBoxedWorld(_arg1:Box2DWorldOptions):Box2DWorld{ var _local2:b2World; var _local3:b2PolygonDef; var _local4:b2BodyDef; var _local5:b2Body; _local2 = new b2World(_arg1.aabb, _arg1.gravity, true); _local3 = new b2PolygonDef(); _local4 = new b2BodyDef(); if (_arg1.edgeLeft){ _local4.position.Set((-100 / _arg1.scale), ((_arg1.height / _arg1.scale) / 2)); _local3.SetAsBox((100 / _arg1.scale), (((_arg1.height + 40) / _arg1.scale) / 2)); _local5 = _local2.CreateBody(_local4); _local5.CreateShape(_local3); _local5.SetMassFromShapes(); }; if (_arg1.edgeRight){ _local4.position.Set(((_arg1.width + 99) / _arg1.scale), ((_arg1.height / _arg1.scale) / 2)); _local5 = _local2.CreateBody(_local4); _local5.CreateShape(_local3); _local5.SetMassFromShapes(); }; if (_arg1.edgeTop){ _local4.position.Set(((_arg1.width / _arg1.scale) / 2), (-100 / _arg1.scale)); _local3.SetAsBox((((_arg1.width + 40) / _arg1.scale) / 2), (100 / _arg1.scale)); _local5 = _local2.CreateBody(_local4); _local5.CreateShape(_local3); _local5.SetMassFromShapes(); }; if (_arg1.edgeBottom){ _local4.position.Set(((_arg1.width / _arg1.scale) / 2), ((_arg1.height + 99) / _arg1.scale)); _local5 = _local2.CreateBody(_local4); _local5.CreateShape(_local3); _local5.SetMassFromShapes(); }; return (new Box2DWorld(_local2, _arg1)); } public static function addDebugDraw(_arg1:b2World):Sprite{ var _local2:b2DebugDraw; var _local3:Sprite; _local2 = new b2DebugDraw(); _local3 = new Sprite(); _local2.SetSprite(_local3); _local2.SetDrawScale(30); _local2.SetFillAlpha(0.3); _local2.SetLineThickness(1); _local2.SetFlags((b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit)); _arg1.SetDebugDraw(_local2); return (_local3); } } }//package couk.psyked.box2d.utils
Section 96
//Box2DWorldOptions (couk.psyked.box2d.utils.Box2DWorldOptions) package couk.psyked.box2d.utils { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class Box2DWorldOptions { public var aabb:b2AABB; public var edgeLeft:Boolean; public var width:int; public var edgeBottom:Boolean; public var height:int; public var scale:Number; public var world:b2World; public var gravity:b2Vec2; public var edgeTop:Boolean; public var edgeRight:Boolean; public function Box2DWorldOptions(_arg1:int=800, _arg2:int=600, _arg3:int=30, _arg4:Number=9.8, _arg5:b2AABB=null){ scale = _arg3; width = _arg1; height = _arg2; if (!_arg5){ aabb = new b2AABB(); aabb.lowerBound.Set(-1000, -1000); aabb.upperBound.Set(1000, 1000); } else { aabb = _arg5; }; gravity = new b2Vec2(0, _arg4); } public function setWorldEdges(_arg1:Boolean=false, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Boolean=false):void{ edgeBottom = _arg1; edgeTop = _arg2; edgeLeft = _arg3; edgeRight = _arg4; } } }//package couk.psyked.box2d.utils
Section 97
//GrahamScan (couk.psyked.box2d.utils.GrahamScan) package couk.psyked.box2d.utils { import flash.geom.*; public class GrahamScan { public function convexHull(_arg1:Array):Array{ return (findHull(order(_arg1))); } public function findHull(_arg1:Array):Array{ var _local2:int; var _local3:Array; var _local4:int; _local2 = _arg1.length; _local3 = new Array(); _local3.push(_arg1[0]); _local3.push(_arg1[1]); _local4 = 2; while (_local4 < _local2) { while (direction(_local3[(_local3.length - 2)], _local3[(_local3.length - 1)], _arg1[_local4]) > 0) { _local3.pop(); }; _local3.push(_arg1[_local4]); _local4++; }; return (_local3); } private function direction(_arg1:Point, _arg2:Point, _arg3:Point):Number{ return ((((_arg2.x - _arg1.x) * (_arg3.y - _arg1.y)) - ((_arg2.y - _arg1.y) * (_arg3.x - _arg1.x)))); } public function order(_arg1:Array):Array{ var _local2:Point; var _local3:int; var _local4:int; var _local5:Array; var _local6:Array; var _local7:Array; var _local8:Array; var _local9:Number; var _local10:Number; var _local11:Number; _local2 = _arg1[0]; _local3 = _arg1.length; _local4 = 0; while (_local4 < _local3) { if (_arg1[_local4].y < _local2.y){ _local2 = _arg1[_local4]; } else { if ((((_arg1[_local4].y == _local2.y)) && ((_arg1[_local4].x < _local2.x)))){ _local2 = _arg1[_local4]; }; }; _local4++; }; _local5 = new Array(); _local6 = new Array(); _local7 = new Array(); _local4 = 0; while (_local4 < _local3) { _local9 = (_arg1[_local4].x - _local2.x); _local10 = (_arg1[_local4].y - _local2.y); _local11 = (_local10 / _local9); if (_local11 < 0){ _local7.push({point:_arg1[_local4], cotangent:_local11}); } else { _local6.push({point:_arg1[_local4], cotangent:_local11}); }; _local4++; }; _local6.sortOn("cotangent", (Array.NUMERIC | Array.DESCENDING)); _local7.sortOn("cotangent", (Array.NUMERIC | Array.DESCENDING)); _local5 = _local7.concat(_local6); _local8 = new Array(); _local8.push(_local2); _local4 = 0; while (_local4 < _local3) { if (_local2 == _local5[_local4].point){ } else { _local8.push(_local5[_local4].point); }; _local4++; }; return (_local8); } } }//package couk.psyked.box2d.utils
Section 98
//PolygonTool (couk.psyked.box2d.utils.PolygonTool) package couk.psyked.box2d.utils { public class PolygonTool { public static function getConvexPoly(_arg1:Array):Array{ var _local2:GrahamScan; _local2 = new GrahamScan(); return (_local2.convexHull(_arg1.slice(0))); } public static function isPolyClockwise(_arg1:Array):Boolean{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:Number; _local5 = 0; if (_arg1.length < 3){ return (false); }; _local2 = 0; while (_local2 < _arg1.length) { _local3 = ((_local2 + 1) % _arg1.length); _local4 = ((_local2 + 2) % _arg1.length); _local6 = ((_arg1[_local3].x - _arg1[_local2].x) * (_arg1[_local4].y - _arg1[_local3].y)); _local6 = (_local6 - ((_arg1[_local3].y - _arg1[_local2].y) * (_arg1[_local4].x - _arg1[_local3].x))); if (_local6 < 0){ _local5--; } else { if (_local6 > 0){ _local5++; }; }; _local2++; }; if (_local5 > 0){ return (false); }; if (_local5 < 0){ return (true); }; return (false); } public static function isPolyConvex(_arg1:Array):Boolean{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:Number; var _local7:int; _local5 = 0; _local7 = _arg1.length; if (_local7 < 3){ return (false); }; _local2 = 0; while (_local2 < _local7) { _local3 = ((_local2 + 1) % _local7); _local4 = ((_local2 + 2) % _local7); _local6 = ((_arg1[_local3].x - _arg1[_local2].x) * (_arg1[_local4].y - _arg1[_local3].y)); _local6 = (_local6 - ((_arg1[_local3].y - _arg1[_local2].y) * (_arg1[_local4].x - _arg1[_local3].x))); if (_local6 < 0){ _local5 = (_local5 | 1); } else { if (_local6 > 0){ _local5 = (_local5 | 2); }; }; if (_local5 == 3){ return (false); }; _local2++; }; if (_local5 != 0){ return (true); }; return (false); } public static function getTriangulatedPoly(_arg1:Array):Array{ var _local2:Triangulate; _local2 = new Triangulate(); return (_local2.process(_arg1.slice(0))); } } }//package couk.psyked.box2d.utils
Section 99
//Triangulate (couk.psyked.box2d.utils.Triangulate) package couk.psyked.box2d.utils { public class Triangulate { private static var EPSILON:Number = 1E-10; private function snip(_arg1:Array, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:Array):Boolean{ var _local7:int; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; _local8 = _arg1[_arg6[_arg2]].x; _local9 = _arg1[_arg6[_arg2]].y; _local10 = _arg1[_arg6[_arg3]].x; _local11 = _arg1[_arg6[_arg3]].y; _local12 = _arg1[_arg6[_arg4]].x; _local13 = _arg1[_arg6[_arg4]].y; if (EPSILON > (((_local10 - _local8) * (_local13 - _local9)) - ((_local11 - _local9) * (_local12 - _local8)))){ return (false); }; _local7 = 0; while (_local7 < _arg5) { if ((((((_local7 == _arg2)) || ((_local7 == _arg3)))) || ((_local7 == _arg4)))){ } else { _local14 = _arg1[_arg6[_local7]].x; _local15 = _arg1[_arg6[_local7]].y; if (insideTriangle(_local8, _local9, _local10, _local11, _local12, _local13, _local14, _local15)){ return (false); }; }; _local7++; }; return (true); } public function insideTriangle(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number):Boolean{ 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; _local9 = (_arg5 - _arg3); _local10 = (_arg6 - _arg4); _local11 = (_arg1 - _arg5); _local12 = (_arg2 - _arg6); _local13 = (_arg3 - _arg1); _local14 = (_arg4 - _arg2); _local15 = (_arg7 - _arg1); _local16 = (_arg8 - _arg2); _local17 = (_arg7 - _arg3); _local18 = (_arg8 - _arg4); _local19 = (_arg7 - _arg5); _local20 = (_arg8 - _arg6); _local23 = ((_local9 * _local18) - (_local10 * _local17)); _local21 = ((_local13 * _local16) - (_local14 * _local15)); _local22 = ((_local11 * _local20) - (_local12 * _local19)); return ((((((_local23 >= 0)) && ((_local22 >= 0)))) && ((_local21 >= 0)))); } public function area(_arg1:Array):Number{ var _local2:int; var _local3:Number; var _local4:int; var _local5:int; _local2 = _arg1.length; _local3 = 0; _local4 = (_local2 - 1); _local5 = 0; while (_local5 < _local2) { _local3 = (_local3 + ((_arg1[_local4].x * _arg1[_local5].y) - (_arg1[_local5].x * _arg1[_local4].y))); var _temp1 = _local5; _local5 = (_local5 + 1); _local4 = _temp1; }; return ((_local3 * 0.5)); } public function process(_arg1:Array):Array{ var _local2:Array; var _local3:int; var _local4:Array; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:int; _local2 = new Array(); _local3 = _arg1.length; if (_local3 < 3){ return (null); }; _local4 = new Array(); if (0 < area(_arg1)){ _local5 = 0; while (_local5 < _local3) { _local4[_local5] = _local5; _local5++; }; } else { _local5 = 0; while (_local5 < _local3) { _local4[_local5] = ((_local3 - 1) - _local5); _local5++; }; }; _local6 = _local3; _local7 = (2 * _local6); _local8 = 0; _local5 = (_local6 - 1); while (_local6 > 2) { var _temp1 = _local7; _local7 = (_local7 - 1); if (0 >= _temp1){ return (null); }; _local9 = _local5; if (_local6 <= _local9){ _local9 = 0; }; _local5 = (_local9 + 1); if (_local6 <= _local5){ _local5 = 0; }; _local10 = (_local5 + 1); if (_local6 <= _local10){ _local10 = 0; }; if (snip(_arg1, _local9, _local5, _local10, _local6, _local4)){ _local11 = _local4[_local9]; _local12 = _local4[_local5]; _local13 = _local4[_local10]; _local2.push(_arg1[_local11]); _local2.push(_arg1[_local12]); _local2.push(_arg1[_local13]); _local8++; _local14 = _local5; _local15 = (_local5 + 1); while (_local15 < _local6) { _local4[_local14] = _local4[_local15]; _local14++; _local15++; }; _local6--; _local7 = (2 * _local6); }; }; return (_local2); } } }//package couk.psyked.box2d.utils
Section 100
//Box2DWorld (couk.psyked.box2d.Box2DWorld) package couk.psyked.box2d { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import couk.psyked.box2d.utils.*; import flash.display.*; import flash.utils.*; import flash.geom.*; import flash.events.*; import wumedia.vector.*; import flash.net.*; public class Box2DWorld extends Sprite { private var _framerateIndependantAnimation:Boolean; private var _animateOnEnterFrame:Boolean; private var isUpdating:Boolean;// = true public var _world:b2World; private var _deferedMouseInteraction:Boolean; private var _mouseInteraction:Boolean; private var options:Box2DWorldOptions; private var _debugDraw:Boolean; private var framerate:Number;// = 16.6666666666667 public var mouseInteractExclusions:Array; private var mouseJoint:b2MouseJoint; private var worldSprite:Sprite; private var mouseDefinition:b2MouseJointDef; public var fiaTimer:Timer; public function Box2DWorld(_arg1:b2World, _arg2:Box2DWorldOptions){ isUpdating = true; framerate = (1000 / 60); super(); options = _arg2; _world = _arg1; worldSprite = Box2DUtils.addDebugDraw(_arg1); Box2DMouseUtils.initialise(_world, options.scale, worldSprite); addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); } public function unPauseUpdate(){ isUpdating = true; } public function createCircle(_arg1:int=0, _arg2:int=0, _arg3:int=30, _arg4:int=0, _arg5:Number=1, _arg6:Number=0){ var _local7:b2BodyDef; var _local8:b2CircleDef; var _local9:b2Body; _local7 = new b2BodyDef(); _local7.isBullet = true; _local7.position.Set((_arg1 / options.scale), (_arg2 / options.scale)); _local7.linearDamping = 0.25; _local7.angularDamping = 0.25; _local8 = new b2CircleDef(); _local8.radius = (_arg3 / options.scale); _local8.density = _arg5; _local8.friction = 3; _local8.restitution = _arg6; _local9 = _world.CreateBody(_local7); _local9.SetAngle(((_arg4 % 360) * (Math.PI / 180))); _local8.userData = _local9; _local9.CreateShape(_local8); _local9.SetMassFromShapes(); return (_local9); } public function get framerateIndependantAnimation():Boolean{ return (_framerateIndependantAnimation); } public function updateBox2D(_arg1:Event=null):void{ var _local2:Number; var _local3:Number; var _local4:b2Vec2; if (!isUpdating){ return; }; _world.Step((1 / 30), 10, 10); if (mouseJoint){ _local2 = (mouseX / 30); _local3 = (mouseY / 30); _local4 = new b2Vec2(_local2, _local3); mouseJoint.SetTarget(_local4); }; } public function get mouseInteraction():Boolean{ return (_mouseInteraction); } public function get animateOnEnterFrame():Boolean{ return (_animateOnEnterFrame); } public function set framerateIndependantAnimation(_arg1:Boolean):void{ if (_arg1){ if (!_framerateIndependantAnimation){ fiaTimer = new Timer(framerate); fiaTimer.addEventListener(TimerEvent.TIMER, updateBox2D, false, 0, true); fiaTimer.start(); }; } else { if (_framerateIndependantAnimation){ fiaTimer.removeEventListener(TimerEvent.TIMER, updateBox2D); fiaTimer.stop(); fiaTimer = null; }; }; _framerateIndependantAnimation = _arg1; } public function get debugDraw():Boolean{ return (_debugDraw); } function onMouseUp(_arg1:Event):void{ if (mouseJoint){ _world.DestroyJoint(mouseJoint); mouseJoint = null; }; } public function pauseUpdate(){ isUpdating = false; } public function stopTimer(){ fiaTimer.removeEventListener(TimerEvent.TIMER, updateBox2D); fiaTimer = null; } public function set mouseInteraction(_arg1:Boolean):void{ if (stage){ if (_arg1){ if (!_mouseInteraction){ stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp); }; } else { if (_mouseInteraction){ stage.removeEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp); }; }; _mouseInteraction = _arg1; _deferedMouseInteraction = _arg1; } else { _deferedMouseInteraction = _arg1; }; } public function set animateOnEnterFrame(_arg1:Boolean):void{ if (_arg1){ if (!_animateOnEnterFrame){ addEventListener(Event.ENTER_FRAME, updateBox2D); }; } else { if (_animateOnEnterFrame){ removeEventListener(Event.ENTER_FRAME, updateBox2D); }; }; _animateOnEnterFrame = _arg1; } public function set debugDraw(_arg1:Boolean):void{ if (_arg1){ if (!contains(worldSprite)){ addChild(worldSprite); }; } else { if (contains(worldSprite)){ removeChild(worldSprite); }; }; _debugDraw = _arg1; } public function createPolyFromLibraryShape(_arg1:int, _arg2:int, _arg3:String, _arg4:String, _arg5:int=0):void{ var loader:URLLoader; var onLoaded:Function; var x = _arg1; var y = _arg2; var shapeName = _arg3; var libraryName = _arg4; var rotation = _arg5; onLoaded = function (_arg1:Event=null):void{ var _local2:Array; var _local3:Point; VectorShapes.extractFromLibrary(loader.data, [shapeName]); _local2 = VectorShapes.getPoints(shapeName, 1); for each (_local3 in _local2) { trace(_local3.x, _local3.y); }; if (_local2){ createComplexPolygon(x, y, _local2, rotation); }; }; loader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE, onLoaded); loader.load(new URLRequest(libraryName)); } public function createComplexPolygon(_arg1:int, _arg2:int, _arg3:Array, _arg4:int=0, _arg5:Number=1){ var _local6:b2BodyDef; var _local7:b2Body; var _local8:Array; if (_arg3.length < 3){ throw (new Error("Complex Polygons must have at least 3 points.")); }; _local6 = new b2BodyDef(); _local6.position.Set((_arg1 / options.scale), (_arg2 / options.scale)); _local6.linearDamping = 0.25; _local6.angularDamping = 0.25; _local7 = _world.CreateBody(_local6); _local7.SetAngle(((_arg4 % 360) * (Math.PI / 180))); _local8 = PolygonTool.getTriangulatedPoly(_arg3); if (_local8 != null){ makeComplexBody(_local7, _local8, _arg5); } else { makeComplexBody(_local7, PolygonTool.getConvexPoly(_arg3), _arg5); }; _local7.SetMassFromShapes(); return (_local7); } private function onAddedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage); mouseInteraction = _deferedMouseInteraction; } function makeComplexBody(_arg1:b2Body, _arg2:Array, _arg3:Number=1):void{ var _local4:int; var _local5:int; var _local6:b2PolygonDef; var _local7:int; _local4 = int((_arg2.length / 3)); _local5 = 0; while (_local5 < _local4) { _local6 = new b2PolygonDef(); _local6.density = _arg3; _local6.friction = 0.43; _local6.vertexCount = 3; _local7 = (_local5 * 3); _local6.vertices[0].Set((_arg2[_local7].x / 30), (_arg2[_local7].y / 30)); _local6.vertices[1].Set((_arg2[(_local7 + 1)].x / 30), (_arg2[(_local7 + 1)].y / 30)); _local6.vertices[2].Set((_arg2[(_local7 + 2)].x / 30), (_arg2[(_local7 + 2)].y / 30)); _local6.userData = _arg1; _arg1.CreateShape(_local6); _local5++; }; _arg1.SetMassFromShapes(); _local6.userData = _arg1; _arg1.CreateShape(_local6); } public function destroyBody(_arg1:b2Body){ _world.DestroyBody(_arg1); } function onMouseDown(_arg1:Event):void{ var _local2:b2Body; var _local3:b2MouseJointDef; _local2 = Box2DMouseUtils.getTopBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.body1 = _world.GetGroundBody(); _local3.body2 = _local2; _local3.target.Set((mouseX / 30), (mouseY / 30)); _local3.maxForce = 30000; mouseJoint = (_world.CreateJoint(_local3) as b2MouseJoint); }; } public function createRectangle(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int=0, _arg6:Number=1){ var _local7:b2BodyDef; var _local8:b2PolygonDef; var _local9:b2Body; _local7 = new b2BodyDef(); _local7.position.Set((_arg1 / options.scale), (_arg2 / options.scale)); _local7.linearDamping = 0.25; _local7.angularDamping = 0.25; _local8 = new b2PolygonDef(); _local8.SetAsBox((_arg3 / options.scale), (_arg4 / options.scale)); _local8.density = _arg6; _local8.friction = 5; _local9 = _world.CreateBody(_local7); _local9.SetAngle(((_arg5 % 360) * (Math.PI / 180))); _local8.userData = _local9; _local9.CreateShape(_local8); _local9.SetMassFromShapes(); return (_local9); } } }//package couk.psyked.box2d
Section 101
//btn_10 (GAME_08_fla.btn_10) package GAME_08_fla { import flash.display.*; public dynamic class btn_10 extends MovieClip { public function btn_10(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 102
//btn_100 (GAME_08_fla.btn_100) package GAME_08_fla { import flash.display.*; public dynamic class btn_100 extends MovieClip { public var btn:MovieClip; public function btn_100(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package GAME_08_fla
Section 103
//btn_101 (GAME_08_fla.btn_101) package GAME_08_fla { import flash.display.*; import flash.text.*; public dynamic class btn_101 extends MovieClip { public var island:MovieClip; public var bText:TextField; public function btn_101(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 104
//btn_103 (GAME_08_fla.btn_103) package GAME_08_fla { import flash.display.*; import flash.text.*; public dynamic class btn_103 extends MovieClip { public var bText:TextField; public function btn_103(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 105
//btn_107 (GAME_08_fla.btn_107) package GAME_08_fla { import flash.display.*; public dynamic class btn_107 extends MovieClip { public var lock:MovieClip; public var shade:MovieClip; public function btn_107(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 106
//btn_11 (GAME_08_fla.btn_11) package GAME_08_fla { import flash.display.*; public dynamic class btn_11 extends MovieClip { public function btn_11(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 107
//btn_110 (GAME_08_fla.btn_110) package GAME_08_fla { import flash.display.*; public dynamic class btn_110 extends MovieClip { public var lock:MovieClip; public var shade:MovieClip; public function btn_110(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 108
//btn_111 (GAME_08_fla.btn_111) package GAME_08_fla { import flash.display.*; public dynamic class btn_111 extends MovieClip { public var lock:MovieClip; public var shade:MovieClip; public function btn_111(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 109
//btn_112 (GAME_08_fla.btn_112) package GAME_08_fla { import flash.display.*; public dynamic class btn_112 extends MovieClip { public var lock:MovieClip; public var shade:MovieClip; public function btn_112(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 110
//btn_113 (GAME_08_fla.btn_113) package GAME_08_fla { import flash.display.*; public dynamic class btn_113 extends MovieClip { public var lock:MovieClip; public var shade:MovieClip; public function btn_113(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 111
//btn_114 (GAME_08_fla.btn_114) package GAME_08_fla { import flash.display.*; public dynamic class btn_114 extends MovieClip { public var lock:MovieClip; public var shade:MovieClip; public function btn_114(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 112
//btn_12 (GAME_08_fla.btn_12) package GAME_08_fla { import flash.display.*; public dynamic class btn_12 extends MovieClip { public function btn_12(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 113
//btn_13 (GAME_08_fla.btn_13) package GAME_08_fla { import flash.display.*; public dynamic class btn_13 extends MovieClip { public function btn_13(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 114
//btn_14 (GAME_08_fla.btn_14) package GAME_08_fla { import flash.display.*; public dynamic class btn_14 extends MovieClip { public function btn_14(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 115
//btn_15 (GAME_08_fla.btn_15) package GAME_08_fla { import flash.display.*; public dynamic class btn_15 extends MovieClip { public function btn_15(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 116
//btn_155 (GAME_08_fla.btn_155) package GAME_08_fla { import flash.display.*; public dynamic class btn_155 extends MovieClip { public function btn_155(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 117
//btn_195 (GAME_08_fla.btn_195) package GAME_08_fla { import flash.display.*; public dynamic class btn_195 extends MovieClip { public function btn_195(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 118
//btn_197 (GAME_08_fla.btn_197) package GAME_08_fla { import flash.display.*; public dynamic class btn_197 extends MovieClip { public function btn_197(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 119
//btn_215 (GAME_08_fla.btn_215) package GAME_08_fla { import flash.display.*; public dynamic class btn_215 extends MovieClip { public function btn_215(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 120
//btn_225 (GAME_08_fla.btn_225) package GAME_08_fla { import flash.display.*; public dynamic class btn_225 extends MovieClip { public function btn_225(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 121
//btn_258 (GAME_08_fla.btn_258) package GAME_08_fla { import flash.display.*; import flash.text.*; public dynamic class btn_258 extends MovieClip { public var bText:TextField; public var poUS:MovieClip; public function btn_258(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package GAME_08_fla
Section 122
//btn_7 (GAME_08_fla.btn_7) package GAME_08_fla { import flash.display.*; public dynamic class btn_7 extends MovieClip { public function btn_7(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 123
//btn_8 (GAME_08_fla.btn_8) package GAME_08_fla { import flash.display.*; public dynamic class btn_8 extends MovieClip { public function btn_8(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 124
//btn_9 (GAME_08_fla.btn_9) package GAME_08_fla { import flash.display.*; public dynamic class btn_9 extends MovieClip { public function btn_9(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 125
//btn_90 (GAME_08_fla.btn_90) package GAME_08_fla { import flash.display.*; import flash.text.*; public dynamic class btn_90 extends MovieClip { public var bText:TextField; public function btn_90(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 126
//btn_92 (GAME_08_fla.btn_92) package GAME_08_fla { import flash.display.*; import flash.text.*; public dynamic class btn_92 extends MovieClip { public var bText:TextField; public var poUS:MovieClip; public function btn_92(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package GAME_08_fla
Section 127
//btn_93 (GAME_08_fla.btn_93) package GAME_08_fla { import flash.display.*; public dynamic class btn_93 extends MovieClip { public function btn_93(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 128
//btn_96 (GAME_08_fla.btn_96) package GAME_08_fla { import flash.display.*; public dynamic class btn_96 extends MovieClip { public function btn_96(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 129
//btn_98 (GAME_08_fla.btn_98) package GAME_08_fla { import flash.display.*; import flash.text.*; public dynamic class btn_98 extends MovieClip { public var bText:TextField; public function btn_98(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 130
//btn_99 (GAME_08_fla.btn_99) package GAME_08_fla { import flash.display.*; import flash.text.*; public dynamic class btn_99 extends MovieClip { public var bText:TextField; public function btn_99(){ addFrameScript(0, frame1, 7, frame8); } function frame1(){ stop(); } function frame8(){ stop(); } } }//package GAME_08_fla
Section 131
//digitDisplay_223 (GAME_08_fla.digitDisplay_223) package GAME_08_fla { import flash.display.*; import flash.utils.*; import flash.geom.*; import flash.events.*; import flash.text.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.media.*; import flash.printing.*; import flash.system.*; import flash.ui.*; import flash.xml.*; public dynamic class digitDisplay_223 extends MovieClip { public var num0:TextField; public var num1:TextField; public var num3:TextField; public var num6:TextField; public var num4:TextField; public var num5:TextField; public var num2:TextField; public var numsArray:Array; public function digitDisplay_223(){ addFrameScript(0, frame1); } function frame1(){ numsArray = new Array(num0, num1, num2, num3, num4, num5, num6); } public function setNum(_arg1:uint){ var _local2:String; var _local3:uint; var _local4:int; _local2 = String(_arg1); _local3 = 0; _local4 = 0; while (_local4 < numsArray.length) { numsArray[_local4].text = "0"; _local4++; }; if (_local2.length > numsArray.length){ _local2 = _local2.slice(0, numsArray.length); }; _local4 = (_local2.length - 1); while (_local4 >= 0) { numsArray[_local3].text = _local2.charAt(_local4); _local3++; _local4--; }; } } }//package GAME_08_fla
Section 132
//digitDisplayLevel_221 (GAME_08_fla.digitDisplayLevel_221) package GAME_08_fla { import flash.display.*; import flash.utils.*; import flash.geom.*; import flash.events.*; import flash.text.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.media.*; import flash.printing.*; import flash.system.*; import flash.ui.*; import flash.xml.*; public dynamic class digitDisplayLevel_221 extends MovieClip { public var num0:TextField; public var num1:TextField; public var t:Timer; public var myNum:uint; public var numsArray:Array; public function digitDisplayLevel_221(){ addFrameScript(0, frame1); } public function setNumDelayed(_arg1:uint){ t.start(); myNum = _arg1; } function frame1(){ numsArray = new Array(num0, num1); myNum = 0; t = new Timer(200); t.addEventListener(TimerEvent.TIMER, doTime, false, 0, true); } public function setNum(_arg1:uint){ var _local2:String; var _local3:uint; var _local4:int; myNum = _arg1; _local2 = String(_arg1); _local3 = 0; _local4 = 0; while (_local4 < numsArray.length) { numsArray[_local4].text = "0"; _local4++; }; _local4 = (_local2.length - 1); while (_local4 >= 0) { numsArray[_local3].text = _local2.charAt(_local4); _local3++; _local4--; }; } public function doTime(_arg1:TimerEvent){ setNum(myNum); } } }//package GAME_08_fla
Section 133
//digitDisplayRolls_222 (GAME_08_fla.digitDisplayRolls_222) package GAME_08_fla { import flash.display.*; import flash.utils.*; import flash.geom.*; import flash.events.*; import flash.text.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.media.*; import flash.printing.*; import flash.system.*; import flash.ui.*; import flash.xml.*; public dynamic class digitDisplayRolls_222 extends MovieClip { public var num0:TextField; public var num1:TextField; public var t:Timer; public var myNum:uint; public var numsArray:Array; public function digitDisplayRolls_222(){ addFrameScript(0, frame1); } public function setNumDelayed(_arg1:uint){ t.start(); myNum = _arg1; } function frame1(){ numsArray = new Array(num0, num1); myNum = 0; t = new Timer(200); t.addEventListener(TimerEvent.TIMER, doTime, false, 0, true); } public function setNum(_arg1:uint){ var _local2:String; var _local3:uint; var _local4:int; myNum = _arg1; _local2 = String(_arg1); _local3 = 0; _local4 = 0; while (_local4 < numsArray.length) { numsArray[_local4].text = "0"; _local4++; }; _local4 = (_local2.length - 1); while (_local4 >= 0) { numsArray[_local3].text = _local2.charAt(_local4); _local3++; _local4--; }; } public function doTime(_arg1:TimerEvent){ setNum(myNum); } } }//package GAME_08_fla
Section 134
//digitDisplayTimer_224 (GAME_08_fla.digitDisplayTimer_224) package GAME_08_fla { import flash.display.*; import flash.utils.*; import flash.geom.*; import flash.events.*; import flash.text.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.media.*; import flash.printing.*; import flash.system.*; import flash.ui.*; import flash.xml.*; public dynamic class digitDisplayTimer_224 extends MovieClip { public var baseTime; public var num0:TextField; public var num1:TextField; public var num3:TextField; public var num2:TextField; public var deadLine:uint; public var timeLeft:int; public var numsArray:Array; public function digitDisplayTimer_224(){ addFrameScript(0, frame1); } public function timeRemains(){ var _local1:int; var _local2:int; _local1 = (getTimer() - baseTime); _local1 = ((deadLine - _local1) / 1000); if (_local1 < 0){ _local1 = 0; }; timeLeft = _local1; _local2 = Math.floor((_local1 / 60)); _local1 = (_local1 - (_local2 * 60)); return ((String(_local2) + String(_local1))); } public function updateTime(){ setNum(timeRemains()); } function frame1(){ numsArray = new Array(num0, num1, num2, num3); baseTime = getTimer(); deadLine = 10000; timeLeft = 1000; } public function setNum(_arg1:uint){ var _local2:String; var _local3:uint; var _local4:int; _local2 = String(_arg1); _local3 = 0; _local4 = 0; while (_local4 < numsArray.length) { numsArray[_local4].text = "0"; _local4++; }; _local4 = (_local2.length - 1); while (_local4 >= 0) { numsArray[_local3].text = _local2.charAt(_local4); _local3++; _local4--; }; } public function timeElapsed(){ var _local1:int; var _local2:int; _local1 = ((getTimer() - baseTime) / 1000); _local2 = Math.floor((_local1 / 60)); _local1 = (_local1 - (_local2 * 60)); return ((String(_local2) + String(_local1))); } } }//package GAME_08_fla
Section 135
//engine_227 (GAME_08_fla.engine_227) package GAME_08_fla { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import couk.psyked.box2d.*; import couk.psyked.box2d.utils.*; import flash.display.*; import flash.utils.*; import flash.geom.*; import flash.events.*; import flash.text.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.media.*; import flash.printing.*; import flash.system.*; import flash.ui.*; import flash.xml.*; public dynamic class engine_227 extends MovieClip { public var tpExp:MovieClip; public var powerArrow:MovieClip; public var isCatchAllow:Boolean; public var enemies:Array; public var MAX_POWER:int; public var levelGraphics:MovieClip; public var pBodies:Array; public var finalWinTimer:Timer; public var grPrevX:Number; public var b:b2Body; public var BOOM_RADIUS:int; public var enemyCount:uint; public var grPrevY:Number; public var allowGrenadeChangeTimer:Timer; public var BOOM_POWER:int; public var grGfx:MovieClip; public var MIN_POWER:int; public var score:int; public var options:Box2DWorldOptions; public var powerLine:MovieClip; public var activeRabbid:MovieClip; public var liveGrenade:Boolean; public var TIME:int; public var firstRabbid:MovieClip; public var HITSCORE:uint; public var cLevel:uint; public var gameBoxes; public var launch_y:int; public var shapes:Array; public var isPaused:Boolean; public var launch_x:int; public var killHitTimer:Timer; public var levelBg:MovieClip; public var throwDelayTimer; public var m_contactListener; public var pBoxes:Array; public var TRIPLEHITSCORE:uint; public var PROPHITSCORE:uint; public var grenade:b2Body; public var canvas:MovieClip; public var air:Boolean; public var FUSE:Timer; public var restarting:Boolean; public var ROLLS:uint; public var allowTimer:Timer; public var dad:MovieClip; public var world:Box2DWorld; public var isGrenadeChange; public var pEnemies:Array; public var currentShape:MovieClip; public var rabbids:Array; public var DOUBLEHITSCORE:uint; public var boxes:Array; public var clickX:int; public var clickY:int; public var gameEnemies; public var isThrowDelayed:Boolean; public var levelXML:XML; public function engine_227(){ addFrameScript(0, frame1); } public function doImport(){ var _local1:XML; var _local2:props; var _local3:uint; var _local4:uint; var _local5:uint; clearEditor(); enemyCount = 0; _local3 = 0; while (_local3 < levelXML.props.children().length()) { _local1 = levelXML.props.children()[_local3]; _local2 = new props(); _local2.x = (_local1.@x - 100); _local2.y = (_local1.@y - 100); _local2.rotation = _local1.@rotation; _local2.gotoAndStop(_local1.name); addChildAt(_local2, (this.getChildIndex(levelGraphics) - 1)); if (String(_local1.name).indexOf("grunt") != -1){ enemies.push(_local2); _local2.dead = false; enemyCount++; } else { if (String(_local1.name).indexOf("rabbid") == -1){ boxes.push(_local2); }; }; _local3++; }; _local4 = 0; while (_local4 < levelXML.polys.children().length()) { _local1 = levelXML.polys.children()[_local4]; currentShape = new MovieClip(); currentShape.pointsData = stringToPoints(String(_local1.points)); shapes.push(currentShape); _local4++; }; _local5 = 0; while (_local5 < levelXML.rabbids.children().length()) { _local1 = levelXML.rabbids.children()[_local5]; _local2 = new props(); _local2.x = (_local1.@x - 100); _local2.y = (_local1.@y - 100); _local2.gotoAndStop(_local1.@name); if (_local1.@facing == "right"){ _local2.scaleX = -(_local2.scaleX); }; addChildAt(_local2, (this.getChildIndex(levelGraphics) - 1)); rabbids.push(_local2); if (_local2.currentLabel == "teammate_rabbid"){ _local2.rabbid.gotoAndStop("throw"); _local2.rabbid.doLoop = true; } else { firstRabbid = _local2; }; _local5++; }; } public function clearEditor(){ shapes = new Array(); while (enemies.length > 0) { if (this.contains(enemies[(enemies.length - 1)])){ removeChild(enemies.pop()); } else { enemies.pop(); }; }; while (boxes.length > 0) { if (this.contains(boxes[(boxes.length - 1)])){ removeChild(boxes.pop()); } else { boxes.pop(); }; }; while (rabbids.length > 0) { if (this.contains(rabbids[(rabbids.length - 1)])){ removeChild(rabbids.pop()); } else { rabbids.pop(); }; }; } public function ridBg(_arg1:MovieClip){ var _local2:Object; var _local3:uint; _local3 = 0; while (_local3 < _arg1.numChildren) { _local2 = _arg1.getChildAt(_local3); if (_local2 != _arg1.FG){ _local2.visible = false; }; _local3++; }; } public function doFinalWin(_arg1:TimerEvent=null){ finalWinTimer.removeEventListener(TimerEvent.TIMER, doFinalWin); finalWinTimer.stop(); dad.gotoAndStop("final_screen"); } public function doFail(_arg1:String){ powerArrow.visible = false; isPaused = true; MovieClip(parent).msg.popScreenDelayed(2, false, 1000); if (_arg1 == "grenades"){ MovieClip(parent).crampText(MovieClip(parent).msg.box.fail.failText, MovieClip(parent).langXML.failedtextgrenades); } else { if (_arg1 == "time"){ MovieClip(parent).crampText(MovieClip(parent).msg.box.fail.failText, MovieClip(parent).langXML.failedtexttime); }; }; } public function nextLevel(){ score = 0; restarting = true; world.pauseUpdate(); destroyAllBodies(); clearAllGraphics(); cLevel++; dad.cLevel++; trace(dad.cLevel, cLevel, "*******************************************************************"); initGame(cLevel, dad.getLevelName()); doImport(); createAllBodies(); liveGrenade = false; throwGrenade(true); isCatchAllow = false; allowTimer.stop(); FUSE.stop(); world.unPauseUpdate(); restarting = false; dad.gameUi.levelNum.setNum((cLevel + 1)); isPaused = false; } public function pointsToDeg(_arg1, _arg2, _arg3, _arg4){ var _local5:*; _local5 = Math.atan2((_arg2 - _arg4), (_arg1 - _arg3)); return ((_local5 * (180 / Math.PI))); } function frame1(){ stop(); isPaused = true; HITSCORE = 250; DOUBLEHITSCORE = 1000; TRIPLEHITSCORE = 2000; PROPHITSCORE = 100; score = 0; restarting = false; options = new Box2DWorldOptions(900, 700, 30, 9.8); options.setWorldEdges(); world = Box2DUtils.createBoxedWorld(options); world.mouseInteractExclusions = new Array(); world.mouseInteraction = false; world.framerateIndependantAnimation = true; m_contactListener = new b2ContactListener(); world._world.SetContactListener(m_contactListener); addChild(world); grGfx.mouseEnabled = false; grGfx.mouseChildren = false; shapes = new Array(); enemies = new Array(); boxes = new Array(); rabbids = new Array(); pBodies = new Array(); pEnemies = new Array(); pBoxes = new Array(); grenade = null; gameEnemies = new Array(); gameBoxes = new Array(); isGrenadeChange = true; allowTimer = new Timer(100); killHitTimer = new Timer(40); allowGrenadeChangeTimer = new Timer(80); allowGrenadeChangeTimer.addEventListener(TimerEvent.TIMER, allowGrenadeChange); allowTimer.addEventListener(TimerEvent.TIMER, allowCatch); killHitTimer.addEventListener(TimerEvent.TIMER, killHit); FUSE = new Timer(3000); throwDelayTimer = new Timer(400); FUSE.addEventListener(TimerEvent.TIMER, doFuse); throwDelayTimer.addEventListener(TimerEvent.TIMER, liftThrowDelay); MIN_POWER = 20; MAX_POWER = 250; liveGrenade = false; isThrowDelayed = false; isCatchAllow = true; air = false; grPrevX = 0; grPrevY = 0; launch_x = 0; launch_y = 0; BOOM_RADIUS = 3; BOOM_POWER = 8; doImport(); createAllBodies(); powerLine = new MovieClip(); this.addChild(powerLine); throwGrenade(true); finalWinTimer = new Timer(3000); this.addEventListener(Event.ENTER_FRAME, doFrame, false, 0, true); this.addEventListener(MouseEvent.MOUSE_DOWN, doClick, false, 0, true); } public function stringToPoints(_arg1:String){ var _local2:Array; var _local3:Array; var _local4:uint; _local2 = new Array(); _local3 = _arg1.split(" "); _local4 = 0; while (_local4 < _local3.length) { if (_local3[_local4] == ""){ return (_local2); }; _local2.push([(_local3[_local4] - 100), (_local3[(_local4 + 1)] - 100)]); _local4 = (_local4 + 2); }; return (_local2); } public function explodeHere(_arg1:int=0, _arg2:int=0){ var _local3:uint; var _local4:Array; var _local5:b2Vec2; var _local6:b2Segment; var _local7:b2Shape; var _local8:uint; _local3 = 0; _local4 = [1]; _local5 = new b2Vec2(); _local6 = new b2Segment(); _local8 = 0; while (_local8 < pBodies.length) { pBodies[_local8].isHit = false; _local8++; }; _local8 = 0; while (_local8 < 360) { _local6 = new b2Segment(); _local6.p1.SetV(new b2Vec2((_arg1 / 30), (_arg2 / 30))); _local6.p2.SetV(new b2Vec2((Math.sin(degToRad(_local8)) * BOOM_RADIUS), (Math.cos(degToRad(_local8)) * BOOM_RADIUS))); _local6.p2.Add(_local6.p1); _local7 = world._world.RaycastOne(_local6, _local4, _local5, true, null); if (_local7 != null){ _local7.userData.isHit = true; _local7.userData.ApplyImpulse(new b2Vec2((Math.sin(degToRad(_local8)) * BOOM_POWER), (Math.cos(degToRad(_local8)) * BOOM_POWER)), new b2Vec2((_arg1 / 30), (_arg2 / 30))); }; _local8 = (_local8 + 20); }; _local8 = 0; while (_local8 < pEnemies.length) { if (pEnemies[_local8].isHit){ enemies[_local8].rotation = 0; enemies[_local8].enemy.gotoAndStop("hit"); this.setChildIndex(enemies[_local8], this.getChildIndex(levelGraphics)); if (!enemies[_local8].dead){ enemyCount--; enemies[_local8].dead = true; _local3++; trace("ENEMY DOWN!", "enemies: ", enemyCount); }; if ((((enemies[_local8].x > _arg1)) && (!((enemies[_local8].currentLabel.indexOf("right") == -1))))){ enemies[_local8].scaleX = -1; } else { if ((((enemies[_local8].x < _arg1)) && (!((enemies[_local8].currentLabel.indexOf("left") == -1))))){ enemies[_local8].scaleX = -1; }; }; }; _local8++; }; if (_local3 == 1){ addScore(HITSCORE); } else { if (_local3 == 2){ addScore(DOUBLEHITSCORE); } else { if (_local3 >= 3){ addScore(TRIPLEHITSCORE); }; }; }; dad.soundBox.explode(); tpExp = new tpExplode(); this.addChild(tpExp); tpExp.x = _arg1; tpExp.y = _arg2; killHitTimer.start(); } public function radToDeg(_arg1:Number){ return (((_arg1 * 180) / Math.PI)); } public function addScore(_arg1:int){ score = (score + _arg1); MovieClip(parent).gameUi.scoreNum.setNum(score); } public function doFuse(_arg1:TimerEvent){ var _local2:int; var _local3:int; var _local4:MovieClip; var _local5:uint; if (dad.currentFrame != 41){ FUSE.stop(); return; }; throwDelayTimer.stop(); isThrowDelayed = false; if (grenade != null){ _local2 = (grenade.GetPosition().x * 30); _local3 = (grenade.GetPosition().y * 30); world.destroyBody(grenade); grenade = null; } else { if (liveGrenade){ _local2 = launch_x; _local3 = launch_y; activeRabbid.rabbid.gotoAndStop("boom"); dad.soundBox.shortScream(); }; }; liveGrenade = false; allowTimer.stop(); explodeHere(_local2, _local3); FUSE.stop(); if (isPaused){ return; }; if (ROLLS > 0){ throwGrenade(true); firstRabbid.rabbid.gotoAndStop("reload"); } else { if (enemyCount > 0){ dad.soundBox.scream(); firstRabbid.rabbid.gotoAndStop("fail"); doFail("grenades"); } else { firstRabbid.rabbid.gotoAndStop("success"); dad.soundBox.victory(); }; }; _local5 = 0; while (_local5 < rabbids.length) { _local4 = rabbids[_local5]; if (_local4.currentLabel == "teammate_rabbid"){ if (((!((_local4.rabbid.currentLabel == "throw"))) && (!((_local4.rabbid.currentLabel == "boom"))))){ _local4.rabbid.doLoop = true; _local4.rabbid.gotoAndStop("throw"); }; }; _local5++; }; } public function powerVector(_arg1, _arg2, _arg3, _arg4){ var _local5:int; var _local6:int; var _local7:Number; var _local8:Number; _local5 = (_arg3 - _arg1); _local6 = (_arg4 - _arg2); _local7 = Math.atan2(_local5, _local6); _local8 = (Math.sqrt(((_local5 * _local5) + (_local6 * _local6))) * 1.2); if (_local8 < MIN_POWER){ _local8 = MIN_POWER; } else { if (_local8 > MAX_POWER){ _local8 = MAX_POWER; }; }; return (new b2Vec2(((Math.sin(_local7) * _local8) / 30), ((Math.cos(_local7) * _local8) / 30))); } public function restartLevel(){ score = 0; addScore(0); restarting = true; ROLLS = uint(levelXML.info.@rolls); TIME = uint(levelXML.info.@time); MovieClip(parent).gameUi.rollsNum.setNum(ROLLS); MovieClip(parent).gameUi.timeNum.baseTime = getTimer(); world.pauseUpdate(); destroyAllBodies(); doImport(); createAllBodies(); liveGrenade = false; throwGrenade(true); isCatchAllow = false; allowTimer.stop(); FUSE.stop(); world.unPauseUpdate(); restarting = false; isPaused = false; } public function clearAllGraphics(){ var _local1:uint; this.removeChild(levelGraphics); this.removeChild(levelBg); _local1 = 0; while (_local1 < enemies.length) { if (this.contains(enemies[_local1])){ removeChild(enemies[_local1]); }; _local1++; }; _local1 = 0; while (_local1 < boxes.length) { if (this.contains(boxes[_local1])){ removeChild(boxes[_local1]); }; _local1++; }; _local1 = 0; while (_local1 < rabbids.length) { if (this.contains(rabbids[_local1])){ removeChild(rabbids[_local1]); }; _local1++; }; boxes = new Array(); rabbids = new Array(); enemies = new Array(); } public function cleanUp(){ removeEventListener(Event.ENTER_FRAME, doFrame); removeEventListener(MouseEvent.MOUSE_DOWN, doClick); allowGrenadeChangeTimer.removeEventListener(TimerEvent.TIMER, allowGrenadeChange); allowTimer.removeEventListener(TimerEvent.TIMER, allowCatch); killHitTimer.removeEventListener(TimerEvent.TIMER, killHit); FUSE.removeEventListener(TimerEvent.TIMER, doFuse); throwDelayTimer.removeEventListener(TimerEvent.TIMER, liftThrowDelay); world.pauseUpdate(); destroyAllBodies(); world.stopTimer(); world._world = null; world = null; } public function pointHitBox(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ if ((((((((_arg1 > (_arg3 - (_arg5 >> 1)))) && ((_arg1 < (_arg3 + (_arg5 >> 1)))))) && ((_arg2 > (_arg4 - (_arg6 >> 1)))))) && ((_arg2 < (_arg4 + (_arg6 >> 1)))))){ return (true); }; return (false); } public function nameToPoints(_arg1:String){ var _local2:Array; var _local3:Array; var _local4:uint; var _local5:uint; _local2 = new Array(); _local4 = 0; while (_local4 < dad.propXML.children().length()) { if (dad.propXML.children()[_local4].name == _arg1){ _local3 = String(dad.propXML.children()[_local4].points).split(" "); }; _local4++; }; _local5 = 0; while (_local5 < _local3.length) { if (_local3[_local5] == ""){ return (_local2); }; _local2.push(new Point(_local3[_local5], _local3[(_local5 + 1)])); _local5 = (_local5 + 2); }; return (_local2); } public function allowCatch(_arg1:TimerEvent){ isCatchAllow = true; } public function createAllBodies(){ var _local1:uint; var _local2:Array; var _local3:props; var _local4:uint; var _local5:int; var _local6:uint; var _local7:uint; var _local8:uint; world.pauseUpdate(); _local1 = 0; _local4 = 0; while (_local4 < shapes.length) { _local2 = new Array(); _local8 = 0; while (_local8 < shapes[_local4].pointsData.length) { _local2.push(new Point(shapes[_local4].pointsData[_local8][0], shapes[_local4].pointsData[_local8][1])); _local8++; }; b = world.createComplexPolygon(0, 0, _local2, 0, 0); pBodies.push(b); _local1++; _local4++; }; _local4 = 0; while (_local4 < enemies.length) { b = world.createComplexPolygon(enemies[_local4].x, enemies[_local4].y, nameToPoints(String(enemies[_local4].currentLabel)), enemies[_local4].rotation, 1); pBodies.push(b); pEnemies.push(b); b.isEnemy = true; _local3 = new props(); _local3.gotoAndStop(enemies[_local4].currentLabel); _local3.x = enemies[_local4].x; _local3.y = enemies[_local4].y; _local3.rotation = enemies[_local4].rotation; _local1++; _local4++; }; _local4 = 0; while (_local4 < boxes.length) { _local5 = boxes[_local4].rotation; boxes[_local4].rotation = 0; _local6 = (boxes[_local4].width / 2); _local7 = (boxes[_local4].height / 2); boxes[_local4].rotation = _local5; b = world.createComplexPolygon(boxes[_local4].x, boxes[_local4].y, nameToPoints(String(boxes[_local4].currentLabel)), boxes[_local4].rotation, 1); pBodies.push(b); pBoxes.push(b); _local3 = new props(); _local3.gotoAndStop(boxes[_local4].currentLabel); _local3.x = boxes[_local4].x; _local3.y = boxes[_local4].y; _local3.rotation = boxes[_local4].rotation; _local1++; _local4++; }; _local4 = 0; while (_local4 < rabbids.length) { _local3 = new props(); _local3.gotoAndStop(rabbids[_local4].currentLabel); _local3.x = rabbids[_local4].x; _local3.y = rabbids[_local4].y; _local3.scaleX = rabbids[_local4].scaleX; _local4++; }; world.unPauseUpdate(); } public function initGame(_arg1:uint, _arg2:String){ var _local3:Class; MovieClip(parent).gameUi.timeNum.baseTime = getTimer(); cLevel = _arg1; _local3 = (getDefinitionByName(_arg2) as Class); levelGraphics = new (_local3); levelBg = new (_local3); this.addChild(levelBg); this.addChild(levelGraphics); ridBg(levelGraphics); levelBg.FG.visible = false; this.setChildIndex(grGfx, (this.getChildIndex(levelGraphics) - 1)); this.setChildIndex(powerArrow, this.getChildIndex(levelGraphics)); levelXML = dad.levelsXML.children()[cLevel]; ROLLS = uint(levelXML.info.@rolls); TIME = uint(levelXML.info.@time); MovieClip(parent).gameUi.rollsNum.setNum(ROLLS); score = 0; MovieClip(parent).gameUi.scoreNum.setNum(score); MovieClip(parent).gameUi.timeNum.deadLine = levelXML.info.@time; } public function degToRad(_arg1:Number){ return (((_arg1 * Math.PI) / 180)); } public function updateSprites(){ var _local1:uint; _local1 = 0; while (_local1 < enemies.length) { if (!pEnemies[_local1].isHit){ enemies[_local1].x = uint((pEnemies[_local1].GetPosition().x * 30)); enemies[_local1].y = uint((pEnemies[_local1].GetPosition().y * 30)); enemies[_local1].rotation = radToDeg(pEnemies[_local1].GetAngle()); if ((((enemies[_local1].y > 550)) && (!(pEnemies[_local1].isDead)))){ pEnemies[_local1].isHit = true; killHit(); addScore(HITSCORE); enemyCount--; enemies[_local1].dead = true; }; }; _local1++; }; _local1 = 0; while (_local1 < boxes.length) { boxes[_local1].x = uint((pBoxes[_local1].GetPosition().x * 30)); boxes[_local1].y = uint((pBoxes[_local1].GetPosition().y * 30)); boxes[_local1].rotation = radToDeg(pBoxes[_local1].GetAngle()); _local1++; }; if (grenade != null){ grGfx.visible = true; grGfx.x = uint((grenade.GetPosition().x * 30)); grGfx.y = uint((grenade.GetPosition().y * 30)); if (grenade.isOnGround){ if (isGrenadeChange){ isGrenadeChange = false; allowGrenadeChangeTimer.start(); grGfx.gotoAndStop(1); }; if (grGfx.currentFrame == 1){ grGfx.rotation = radToDeg(grenade.GetAngle()); }; } else { if (isGrenadeChange){ isGrenadeChange = false; allowGrenadeChangeTimer.start(); grGfx.gotoAndStop(2); if (pointDistance((grenade.GetPosition().x * 30), (grenade.GetPosition().y * 30), grPrevX, grPrevY) < 10){ grGfx.gotoAndStop(3); }; }; if (grGfx.currentFrame >= 2){ grGfx.rotation = pointsToDeg((grenade.GetPosition().x * 30), (grenade.GetPosition().y * 30), grPrevX, grPrevY); }; }; grPrevX = (grenade.GetPosition().x * 30); grPrevY = (grenade.GetPosition().y * 30); } else { grGfx.visible = false; }; } public function killHit(_arg1:TimerEvent=null){ var _local2:uint; world.pauseUpdate(); killHitTimer.stop(); _local2 = 0; while (_local2 < pEnemies.length) { if (pEnemies[_local2].isHit){ if (!pEnemies[_local2].isDead){ world.destroyBody(pEnemies[_local2]); pEnemies[_local2].isDead = true; }; }; _local2++; }; _local2 = 0; while (_local2 < pBoxes.length) { if (pBoxes[_local2].isHit){ if (!pBoxes[_local2].isDead){ world.destroyBody(pBoxes[_local2]); pBoxes[_local2].isDead = true; }; if (this.contains(boxes[_local2])){ removeChild(boxes[_local2]); }; addScore(PROPHITSCORE); }; _local2++; }; world.unPauseUpdate(); } public function startGame(){ isPaused = false; MovieClip(parent).gameUi.timeNum.baseTime = getTimer(); } public function throwGrenade(_arg1:Boolean=false){ var _local2:uint; if (grenade == null){ if ((((ROLLS < 1)) && (!(liveGrenade)))){ return; }; _local2 = 0; while (_local2 < rabbids.length) { if ((((String(rabbids[_local2].currentLabel) == "rabbid")) && (!(liveGrenade)))){ launch_x = rabbids[_local2].x; launch_y = (rabbids[_local2].y - 10); _local2 = rabbids.length; activeRabbid = firstRabbid; if (!_arg1){ ROLLS--; MovieClip(parent).gameUi.rollsNum.setNum(ROLLS); }; }; _local2++; }; if (((_arg1) || (isThrowDelayed))){ return; }; FUSE.start(); liveGrenade = true; isCatchAllow = false; if (activeRabbid.rabbid.currentLabel == "throw"){ activeRabbid.rabbid.rabbidThrow.gotoAndPlay(1); } else { activeRabbid.rabbid.gotoAndStop("throw"); }; throwDelayTimer.start(); isThrowDelayed = true; }; } public function handleThrow(){ var _local1:b2Vec2; var _local2:int; var _local3:int; var _local4:Boolean; var _local5:uint; if (isPaused){ powerArrow.visible = false; return; }; if ((((grenade == null)) && (!(isThrowDelayed)))){ powerLine.x = launch_x; powerLine.y = launch_y; powerArrow.x = launch_x; powerArrow.y = launch_y; if (activeRabbid.x < mouseX){ activeRabbid.scaleX = 1; } else { activeRabbid.scaleX = -1; }; powerLine.graphics.clear(); powerLine.graphics.lineStyle(2, 0xFF0000); _local1 = powerVector(launch_x, launch_y, mouseX, mouseY); powerArrow.powerMask.scaleX = ((_local1.Length() * 30) / MAX_POWER); powerArrow.rotation = pointsToDeg(mouseX, mouseY, launch_x, launch_y); powerArrow.visible = true; } else { powerArrow.visible = false; powerLine.graphics.clear(); if (!isThrowDelayed){ _local2 = (grenade.GetPosition().x * 30); _local3 = (grenade.GetPosition().y * 30); _local4 = true; _local5 = 0; while (_local5 < rabbids.length) { if (pointHitBox(_local2, _local3, rabbids[_local5].x, rabbids[_local5].y, 40, 60)){ _local4 = false; if (isCatchAllow){ allowTimer.stop(); world.destroyBody(grenade); grenade = null; launch_x = rabbids[_local5].x; launch_y = (rabbids[_local5].y - 10); activeRabbid = rabbids[_local5]; activeRabbid.rabbid.gotoAndStop("reload"); throwGrenade(true); isCatchAllow = false; }; }; _local5++; }; }; if (_local4){ allowTimer.start(); }; }; } public function pointDistance(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Number{ return (Math.sqrt((Math.pow((_arg3 - _arg1), 2) + Math.pow((_arg4 - _arg2), 2)))); } public function doFrame(_arg1:Event){ if (restarting){ return; }; updateSprites(); if (isPaused){ return; }; MovieClip(parent).gameUi.timeNum.updateTime(); if (MovieClip(parent).gameUi.timeNum.timeLeft <= 0){ doFail("time"); }; handleThrow(); if (enemyCount <= 0){ if (firstRabbid.rabbid.currentLabel != "success"){ firstRabbid.rabbid.gotoAndPlay("success"); dad.soundBox.victory(); }; isPaused = true; MovieClip(parent).calculateScore(score, ROLLS, MovieClip(parent).gameUi.timeNum.timeLeft); powerArrow.visible = false; if (dad.winLevel > cLevel){ MovieClip(parent).msg.popScreenDelayed(3, false, 2000); dad.unlockNext(); } else { finalWinTimer.addEventListener(TimerEvent.TIMER, doFinalWin, false, 0, true); finalWinTimer.start(); }; }; } public function zeroize(_arg1:uint, _arg2:uint){ var _local3:String; var _local4:String; _local3 = "00000000000000000000000000000000000000000000000000"; _local4 = String(_arg1); _local3 = _local3.slice(0, (_arg2 - _local4.length)); return ((_local3 + _local4)); } public function liftThrowDelay(_arg1:TimerEvent){ throwDelayTimer.stop(); isThrowDelayed = false; dad.soundBox.throwTP(); grenade = world.createCircle(launch_x, launch_y, 10, 0, 1, 0.2); grenade.isGrenade = true; grenade.ApplyImpulse(powerVector((grenade.GetPosition().x * 30), (grenade.GetPosition().y * 30), clickX, clickY), grenade.GetWorldCenter()); } public function doClick(_arg1:MouseEvent){ if (isPaused){ powerArrow.visible = false; return; }; clickX = mouseX; clickY = mouseY; throwGrenade(); } public function allowGrenadeChange(_arg1:TimerEvent){ isGrenadeChange = true; allowGrenadeChangeTimer.stop(); } public function destroyAllBodies(){ var _local1:uint; world.pauseUpdate(); _local1 = 0; while (pBodies.length > 0) { if (!pBodies.isDead){ world.destroyBody(pBodies[(pBodies.length - 1)]); world.destroyBody(pBodies.pop()); } else { pBodies.pop(); }; _local1++; }; pEnemies = new Array(); pBoxes = new Array(); if (grenade != null){ world.destroyBody(grenade); grenade = null; }; world.unPauseUpdate(); } } }//package GAME_08_fla
Section 136
//gameLogo_5 (GAME_08_fla.gameLogo_5) package GAME_08_fla { import flash.display.*; public dynamic class gameLogo_5 extends MovieClip { public function gameLogo_5(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package GAME_08_fla
Section 137
//gameUi_216 (GAME_08_fla.gameUi_216) package GAME_08_fla { import flash.display.*; import flash.text.*; public dynamic class gameUi_216 extends MovieClip { public var rollsText:TextField; public var rollsNum:MovieClip; public var timer:MovieClip; public var levelNum:MovieClip; public var level:MovieClip; public var timeNum:MovieClip; public var score:MovieClip; public var timeText:TextField; public var rolls:MovieClip; public var scoreNum:MovieClip; public var levelText:TextField; public var scoreText:TextField; public function gameUi_216(){ addFrameScript(0, frame1); } function frame1(){ this.buttonMode = false; this.mouseEnabled = false; this.mouseChildren = false; } } }//package GAME_08_fla
Section 138
//MainTimeline (GAME_08_fla.MainTimeline) package GAME_08_fla { import flash.display.*; import flash.utils.*; import flash.geom.*; import com.greensock.*; import flash.events.*; import flash.text.*; import com.greensock.easing.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.media.*; import flash.printing.*; import flash.system.*; import flash.ui.*; import flash.xml.*; public dynamic class MainTimeline extends MovieClip { public var fridge:MovieClip; public var restartButton:MovieClip; public var gameUi:MovieClip; public var levelsXML:XML; public var soundBox:MovieClip; public var t2:MovieClip; public var t3:MovieClip; public var t5:MovieClip; public var t1:MovieClip; public var t4:MovieClip; public var so:SharedObject; public var gameLogoGame:MovieClip; public var h:uint; public var engine:MovieClip; public var flags:Array; public var gameLogoLevels:MovieClip; public var t6:MovieClip; public var pLeft:SimpleButton; public var partnerLogo:MovieClip; public var freeze:Boolean; public var gameLogo:MovieClip; public var langPanel:MovieClip; public var gameLogoEnd:MovieClip; public var cLevel:uint; public var waitTimer:Timer; public var freezeTimer:Timer; public var b_play:MovieClip; public var unLocked:uint; public var winLevel:uint; public var thumbsArray:Array; public var percentText:TextField; public var langIdString:String; public var b_visit:MovieClip; public var chapterLock:int; public var ubiLogo:MovieClip; public var langXML:XML; public var b_high:MovieClip; public var rabbid3:MovieClip; public var rabbid1:MovieClip; public var rabbid2:MovieClip; public var msg:MovieClip; public var cPage:uint; public var pRight:SimpleButton; public var langsXML:XML; public var langId:uint; public var propXML; public var b_preorder:MovieClip; public var b_figurine:MovieClip; public function MainTimeline(){ addFrameScript(0, frame1, 9, frame10, 19, frame20, 29, frame30, 39, frame40, 40, frame41, 49, frame50); } public function unlockNext(){ if ((cLevel + 1) > unLocked){ unLocked = (cLevel + 1); so.data.unLocked = unLocked; }; } function frame10(){ TweenLite.from(langPanel, 0.7, {y:"-50", ease:Elastic.easeOut}); TweenLite.from(gameLogo, 0.7, {alpha:0, ease:Strong.easeOut}); flags = new Array(langPanel.flagUS, langPanel.flagAUT, langPanel.flagGER, langPanel.flagESP, langPanel.flagFRA, langPanel.flagITA, langPanel.flagUK, langPanel.flagNED, langPanel.flagSWE); initFlags(); } public function toMainMenu(){ gotoAndStop("main_menu"); } function frame1(){ propXML = <props> <prop> <name>rabbid</name> <points>21 37 -19 37 -20 -34 19 -34</points> </prop> <prop> <name>teammate_rabbid</name> <points>21 38 -21 37 -21 -35 19 -34</points> </prop> <prop> <name>grunt_cave_1_left</name> <points>30 38 -9 38 -27 -3 4 -36 33 -13</points> </prop> <prop> <name>grunt_cave_1_right</name> <points>9 37 -30 37 -23 -17 -5 -31 10 -30 25 0</points> </prop> <prop> <name>grunt_egypt_1_left</name> <points>-20 37 21 37 29 -20 -21 -35</points> </prop> <prop> <name>grunt_egypt_1_right</name> <points>21 36 -19 35 -24 -20 21 -32</points> </prop> <prop> <name>grunt_med_1_left</name> <points>13 45 -24 45 -25 -19 -6 -44 9 -39 6 1</points> </prop> <prop> <name>grunt_med_swordpull_right</name> <points>18 42 -25 42 -10 -46 4 -47 3 -5</points> </prop> <prop> <name>cave_rock_1</name> <points>1 -16 -15 -10 -10 11 5 16 15 2</points> </prop> <prop> <name>cave_rock_2</name> <points>2 -7 -10 -2 -7 7 8 8 10 -1</points> </prop> <prop> <name>cave_branch_1</name> <points>-1 -36 8 -33 -1 36 -6 35</points> </prop> <prop> <name>cave_branch_2</name> <points>5 -65 17 -60 -7 65 -13 65</points> </prop> <prop> <name>egypt_brick_1</name> <points>14 8 -14 9 -14 -7 13 -8</points> </prop> <prop> <name>egypt_brick_2</name> <points>23 -17 17 -23 -19 -22 -23 -18 -24 19 -20 24 18 23 22 18</points> </prop> <prop> <name>egypt_plank_1</name> <points>-4 -39 4 -39 4 38 -4 37</points> </prop> <prop> <name>egypt_plank_2</name> <points>-6 -69 6 -70 6 68 -5 68</points> </prop> <prop> <name>egypt_plank_3</name> <points>-30 -26 -21 -26 -20 -5 20 -4 21 -26 30 -26 31 57 20 58 21 4 -20 5 -19 57 -30 57</points> </prop> <prop> <name>medieval_stone_1</name> <points>-16 -10 15 -10 14 11 -16 12</points> </prop> <prop> <name>medieval_catapult_stone</name> <points>-5 -18 -20 -5 -16 12 -1 21 15 13 19 -2 12 -13</points> </prop> <prop> <name>grunt_med_1_right</name> <points>24 46 -14 45 -4 -3 -7 -42 9 -45 24 -16</points> </prop> <prop> <name>grunt_med_swordpull_left</name> <points>24 42 -19 42 -2 -4 -7 -46 9 -46</points> </prop> </props> ; levelsXML = <levels> <level> <info rolls='20' time='150000'></info> <rabbids> <rabbid name="rabbid" x="388" y="452" facing="undefined"/> </rabbids> <polys> <poly> <points>580 480 670 480 650 590 630 590</points> </poly> <poly> <points>80 580 140 550 700 550 760 580 690 600 130 600</points> </poly> <poly> <points>150 500 210 500 190 640 160 630</points> </poly> <poly> <points>190 550 200 500 260 490 550 490 650 500 630 560 190 560</points> </poly> <poly> <points>220 350 160 350 120 300 140 230 220 200 270 210 340 280 410 280 460 260 510 230 560 230 610 250 630 300 640 350 620 370 530 390 480 380 500 400 580 410 630 380 660 370 680 310 700 190 690 130 120 130 110 320 150 360 200 370</points> </poly> <poly> <points>330 270 350 350 380 360 410 350 440 310 470 240 370 250</points> </poly> </polys> <props> <prop rotation="0" x="179" y="312"> <name>grunt_cave_1_left</name> </prop> <prop rotation="0" x="148" y="462"> <name>grunt_cave_1_left</name> </prop> <prop rotation="6" x="511" y="347"> <name>grunt_cave_1_left</name> </prop> <prop rotation="-3" x="264" y="482"> <name>cave_rock_2</name> </prop> <prop rotation="-3" x="286" y="482"> <name>cave_rock_2</name> </prop> <prop rotation="-4" x="275" y="470"> <name>cave_rock_2</name> </prop> <prop rotation="-8" x="298" y="446"> <name>cave_rock_2</name> </prop> <prop rotation="-3" x="309" y="482"> <name>cave_rock_2</name> </prop> <prop rotation="-11" x="298" y="470"> <name>cave_rock_2</name> </prop> <prop rotation="-37" x="289" y="460"> <name>cave_rock_2</name> </prop> <prop rotation="-3" x="329" y="482"> <name>cave_rock_2</name> </prop> <prop rotation="-3" x="495" y="482"> <name>cave_rock_2</name> </prop> <prop rotation="-3" x="522" y="482"> <name>cave_rock_2</name> </prop> <prop rotation="29" x="506" y="473"> <name>cave_rock_2</name> </prop> <prop rotation="-13" x="648" y="465"> <name>cave_rock_1</name> </prop> <prop rotation="-18" x="619" y="466"> <name>cave_rock_1</name> </prop> <prop rotation="-9" x="319" y="462"> <name>cave_rock_1</name> </prop> </props> </level> <level> <!-- Level 2--> <info rolls='20' time='150000'></info> <rabbids> <rabbid name="rabbid" x="192" y="205" facing="undefined"/> <rabbid name="teammate_rabbid" x="514" y="233" facing="right"/> </rabbids> <polys> <poly> <points>80 580 150 510 100 420 120 320 120 210 140 240 300 240 250 270 160 280 140 330 140 420 180 460 250 490 300 480 340 340 420 340 430 400 420 440 400 500 400 540 440 550 510 560 560 540 590 500 600 450 560 400 510 370 490 340 480 320 480 300 500 270 540 270 580 310 620 280 620 220 590 180 510 170 440 170 400 180 440 160 500 140 590 130 660 160 670 210 690 350 670 390 690 450 720 530 720 590 90 590</points> </poly> </polys> <props> <prop rotation="0" x="489" y="518"> <name>grunt_cave_1_left</name> </prop> <prop rotation="0" x="267" y="447"> <name>grunt_cave_1_right</name> </prop> <prop rotation="-6" x="387" y="297"> <name>cave_rock_1</name> </prop> <prop rotation="-15" x="415" y="326"> <name>cave_rock_1</name> </prop> <prop rotation="15" x="365" y="304"> <name>cave_rock_1</name> </prop> <prop rotation="-18" x="355" y="326"> <name>cave_rock_1</name> </prop> <prop rotation="-8" x="358" y="282"> <name>cave_rock_2</name> </prop> <prop rotation="105" x="368" y="269"> <name>cave_rock_2</name> </prop> <prop rotation="-13" x="385" y="325"> <name>cave_rock_1</name> </prop> <prop rotation="-39" x="403" y="308"> <name>cave_rock_2</name> </prop> <prop rotation="-30" x="377" y="277"> <name>cave_rock_2</name> </prop> </props> </level> <level> <!-- Level 3--> <info rolls='20' time='150000'></info> <rabbids> <rabbid name="rabbid" x="627" y="253" facing="right"/> </rabbids> <polys> <poly> <points>129 176 129 150 154 167 180 159 197 150 206 167 206 184</points> </poly> <poly> <points>86 468 60 563 627 563 722 546 731 494 731 425 713 417 550 417 481 434 404 477 146 494</points> </poly> <poly> <points>559 425 593 288 670 288 696 425 619 442</points> </poly> <poly> <points>135 169 102 189 95 322 114 417 158 454 165 478 147 496 130 503 90 574 428 573 420 517 401 491 338 472 342 449 370 420 396 388 411 321 406 291 374 300 369 313 363 307 350 318 337 361 308 401 184 403 154 344 154 284 193 232 230 198 290 183 338 183 376 182 386 174 380 167 361 168 326 171 291 171 250 179 202 176</points> </poly> <poly> <points>288 178 362 200 373 217 377 240 382 212 391 192 378 176</points> </poly> <poly> <points>292 176 301 159 326 167 344 167 361 159 378 167 387 184 369 193</points> </poly> <poly> <points>369 313 361 296 352 305 361 313</points> </poly> </polys> <props> <prop rotation="-1" x="273" y="364"> <name>grunt_cave_1_left</name> </prop> <prop rotation="0" x="213" y="365"> <name>grunt_cave_1_right</name> </prop> <prop rotation="-2" x="370" y="271"> <name>cave_branch_1</name> </prop> <prop rotation="5" x="326" y="158"> <name>cave_rock_2</name> </prop> <prop rotation="-42" x="154" y="152"> <name>cave_rock_1</name> </prop> </props> </level> <level> <!-- Level 4--> <info rolls='10' time='90000'></info> <rabbids> <rabbid name="rabbid" x="168" y="387" facing="undefined"/> </rabbids> <polys> <poly> <points>285 239 368 285 368 267 312 221</points> </poly> <poly> <points>358 249 349 267 368 276 368 258</points> </poly> <poly> <points>282 326 423 396 437 426 374 480 368 523 426 566 583 566 621 521 628 489 589 458 570 419 679 310 723 374 785 536 753 582 81 585 55 390 97 388 116 421 236 422</points> </poly> <poly> <points>674 253 718 145 715 122 734 132 738 310 695 365</points> </poly> <poly> <points>629 266 647 250 695 232 695 266 698 297 646 304</points> </poly> <poly> <points>645 269 623 249 623 267 631 329 673 427 722 441 721 287</points> </poly> <poly> <points>282 347 296 240 315 249 318 373</points> </poly> <poly> <points>414 442 607 442 524 552 460 552</points> </poly> <poly> <points>450 258 450 304 469 285</points> </poly> <poly> <points>570 258 570 304 598 313 588 276</points> </poly> </polys> <props> <prop rotation="0" x="493" y="405"> <name>grunt_cave_1_left</name> </prop> <prop rotation="0" x="471" y="202"> <name>grunt_cave_1_left</name> </prop> <prop rotation="-12" x="656" y="229"> <name>cave_rock_1</name> </prop> <prop rotation="-70" x="337" y="200"> <name>cave_rock_1</name> </prop> <prop rotation="27" x="343" y="227"> <name>cave_rock_1</name> </prop> <prop rotation="81" x="501" y="243"> <name>cave_branch_2</name> </prop> <prop rotation="84" x="410" y="248"> <name>cave_branch_2</name> </prop> <prop rotation="-36" x="636" y="215"> <name>cave_rock_2</name> </prop> <prop rotation="40" x="625" y="204"> <name>cave_rock_2</name> </prop> <prop rotation="-82" x="621" y="228"> <name>cave_rock_2</name> </prop> <prop rotation="-49" x="613" y="216"> <name>cave_rock_2</name> </prop> <prop rotation="-118" x="321" y="221"> <name>cave_rock_2</name> </prop> <prop rotation="21" x="674" y="212"> <name>cave_rock_1</name> </prop> <prop rotation="-74" x="684" y="186"> <name>cave_rock_1</name> </prop> <prop rotation="-42" x="601" y="199"> <name>cave_rock_1</name> </prop> <prop rotation="-30" x="650" y="197"> <name>cave_rock_1</name> </prop> <prop rotation="171" x="437" y="208"> <name>cave_rock_1</name> </prop> <prop rotation="-167" x="364" y="196"> <name>cave_rock_1</name> </prop> <prop rotation="69" x="581" y="250"> <name>cave_branch_2</name> </prop> <prop rotation="-106" x="576" y="215"> <name>cave_rock_1</name> </prop> <prop rotation="-76" x="548" y="226"> <name>cave_rock_1</name> </prop> <prop rotation="-89" x="594" y="231"> <name>cave_rock_1</name> </prop> <prop rotation="-41" x="397" y="229"> <name>cave_rock_1</name> </prop> <prop rotation="-80" x="368" y="224"> <name>cave_rock_1</name> </prop> <prop rotation="-76" x="517" y="226"> <name>cave_rock_1</name> </prop> <prop rotation="57" x="425" y="232"> <name>cave_rock_1</name> </prop> </props> </level> <level> <!-- Level 5--> <info rolls='12' time='60000'></info> <rabbids> <rabbid name="rabbid" x="161" y="183" facing="undefined"/> <rabbid name="teammate_rabbid" x="613" y="184" facing="right"/> </rabbids> <polys> <poly> <points>580 219 650 219 620 249</points> </poly> <poly> <points>130 219 190 219 160 249</points> </poly> <poly> <points>300 229 260 299 230 299 190 389 150 389 140 429 220 429 260 329 310 329 330 249 350 249 360 229</points> </poly> <poly> <points>390 229 400 239 420 249 430 249 520 419 570 419 590 499 630 509 660 519 670 509 660 479 620 479 590 379 540 379 450 229</points> </poly> <poly> <points>120 499 100 539 70 559 70 589 110 629 190 629 200 559 190 529</points> </poly> <poly> <points>360 489 370 479 380 479 400 489 400 519 380 519</points> </poly> </polys> <props> <prop rotation="0" x="554" y="342"> <name>grunt_cave_1_left</name> </prop> <prop rotation="0" x="368" y="442"> <name>grunt_cave_1_left</name> </prop> <prop rotation="0" x="170" y="352"> <name>grunt_cave_1_right</name> </prop> <prop rotation="58" x="367" y="228"> <name>cave_rock_2</name> </prop> <prop rotation="-2" x="446" y="221"> <name>cave_rock_2</name> </prop> <prop rotation="-3" x="328" y="221"> <name>cave_rock_2</name> </prop> <prop rotation="9" x="402" y="219"> <name>cave_rock_2</name> </prop> <prop rotation="-12" x="315" y="201"> <name>cave_rock_1</name> </prop> <prop rotation="-18" x="423" y="215"> <name>cave_rock_1</name> </prop> <prop rotation="-31" x="387" y="203"> <name>cave_rock_1</name> </prop> <prop rotation="-3" x="347" y="221"> <name>cave_rock_2</name> </prop> <prop rotation="-42" x="383" y="225"> <name>cave_rock_2</name> </prop> <prop rotation="-42" x="409" y="198"> <name>cave_rock_2</name> </prop> <prop rotation="-19" x="345" y="201"> <name>cave_rock_1</name> </prop> <prop rotation="20" x="326" y="179"> <name>cave_rock_1</name> </prop> <prop rotation="2" x="397" y="181"> <name>cave_rock_1</name> </prop> <prop rotation="-3" x="308" y="221"> <name>cave_rock_2</name> </prop> <prop rotation="46" x="365" y="192"> <name>cave_rock_2</name> </prop> <prop rotation="31" x="370" y="214"> <name>cave_rock_2</name> </prop> <prop rotation="-13" x="446" y="207"> <name>cave_rock_2</name> </prop> <prop rotation="-39" x="434" y="199"> <name>cave_rock_2</name> </prop> <prop rotation="-23" x="425" y="187"> <name>cave_rock_2</name> </prop> <prop rotation="-123" x="373" y="183"> <name>cave_rock_2</name> </prop> </props> </level> <level> <!-- Level 6--> <info rolls='12' time='60000'></info> <rabbids> <rabbid name="rabbid" x="569" y="194" facing="right"/> <rabbid name="teammate_rabbid" x="126" y="206" facing="undefined"/> </rabbids> <polys> <poly> <points>550 460 570 440 570 430 590 440 580 450 570 480</points> </poly> <poly> <points>650 490 680 440 660 420 640 420 650 390 690 390 720 420 730 510 680 530 680 570</points> </poly> <poly> <points>127 501 314 498 331 517 318 536 275 552 203 554 105 523 104 485</points> </poly> <poly> <points>556 230 588 231 562 250</points> </poly> <poly> <points>380 330 427 367 494 398 551 443 567 456 597 498 527 527 390 414 364 392</points> </poly> <poly> <points>115 243 140 242 122 280</points> </poly> <poly> <points>614 130 698 205 695 128 598 118</points> </poly> <poly> <points>167 121 101 167 90 129</points> </poly> <poly> <points>692 189 702 216 698 228 685 241 698 244 723 237 722 210</points> </poly> <poly> <points>662 349 697 349 707 375 691 392 648 396</points> </poly> <poly> <points>209 285 278 282 304 309 278 368</points> </poly> <poly> <points>240 507 203 486 192 444 189 407 205 381 219 360 278 339 239 306 186 303 169 346 138 405 111 423 104 489 156 531</points> </poly> </polys> <props> <prop rotation="12" x="471" y="310"> <name>grunt_cave_1_left</name> </prop> <prop rotation="0" x="662" y="313"> <name>grunt_cave_1_left</name> </prop> <prop rotation="-1" x="269" y="461"> <name>grunt_cave_1_left</name> </prop> <prop rotation="-2" x="223" y="247"> <name>grunt_cave_1_left</name> </prop> <prop rotation="10" x="421" y="344"> <name>cave_rock_1</name> </prop> <prop rotation="6" x="447" y="361"> <name>cave_rock_1</name> </prop> <prop rotation="6" x="475" y="374"> <name>cave_rock_1</name> </prop> <prop rotation="16" x="573" y="413"> <name>cave_branch_1</name> </prop> <prop rotation="48" x="552" y="432"> <name>cave_rock_2</name> </prop> <prop rotation="21" x="556" y="420"> <name>cave_rock_2</name> </prop> <prop rotation="34" x="536" y="422"> <name>cave_rock_2</name> </prop> <prop rotation="-9" x="531" y="397"> <name>cave_rock_2</name> </prop> <prop rotation="33" x="521" y="410"> <name>cave_rock_2</name> </prop> <prop rotation="9" x="539" y="409"> <name>cave_rock_2</name> </prop> <prop rotation="-4" x="560" y="407"> <name>cave_rock_2</name> </prop> <prop rotation="8" x="541" y="379"> <name>cave_rock_1</name> </prop> <prop rotation="11" x="507" y="390"> <name>cave_rock_1</name> </prop> <prop rotation="-18" x="466" y="354"> <name>cave_rock_2</name> </prop> <prop rotation="-74" x="527" y="353"> <name>cave_rock_1</name> </prop> <prop rotation="-30" x="550" y="397"> <name>cave_rock_2</name> </prop> <prop rotation="-98" x="505" y="354"> <name>cave_rock_2</name> </prop> <prop rotation="-39" x="491" y="360"> <name>cave_rock_2</name> </prop> <prop rotation="38" x="400" y="336"> <name>cave_rock_2</name> </prop> <prop rotation="-12" x="500" y="369"> <name>cave_rock_2</name> </prop> <prop rotation="97" x="350" y="307"> <name>cave_branch_2</name> </prop> </props> </level> <level> <!-- Level 7--> <info rolls='12' time='60000'></info> <rabbids> <rabbid name="rabbid" x="408" y="176" facing="right"/> </rabbids> <polys> <poly> <points>70 547 686 547 710 571 46 571</points> </poly> <poly> <points>422 211 694 211 694 499 614 499 614 283 494 283 470 267 438 267 390 211</points> </poly> <poly> <points>622 443 534 443 566 475 614 475</points> </poly> <poly> <points>342 187 222 307 222 371 278 435 310 451 326 451 310 467 270 467 206 387 198 315 206 299 318 179</points> </poly> <poly> <points>38 579 70 547 70 123 318 123 318 179 206 299 198 315 206 387 270 467 270 579</points> </poly> </polys> <props> <prop rotation="-1" x="516" y="511"> <name>grunt_egypt_1_right</name> </prop> <prop rotation="1" x="433" y="446"> <name>egypt_brick_1</name> </prop> <prop rotation="1" x="434" y="477"> <name>egypt_brick_2</name> </prop> <prop rotation="1" x="429" y="523"> <name>egypt_brick_2</name> </prop> </props> </level> <level> <!-- Level 8--> <info rolls='12' time='60000'></info> <rabbids> <rabbid name="rabbid" x="404" y="512" facing="undefined"/> <rabbid name="teammate_rabbid" x="223" y="407" facing="undefined"/> <rabbid name="teammate_rabbid" x="599" y="422" facing="right"/> <rabbid name="teammate_rabbid" x="404" y="330" facing="undefined"/> </rabbids> <polys> <poly> <points>165 549 704 549 725 570 144 570</points> </poly> <poly> <points>389 367 368 416 438 416 417 367</points> </poly> <poly> <points>165 255 361 255 319 304 130 304 130 479 109 479 109 255</points> </poly> <poly> <points>473 255 711 255 711 507 641 507 641 318 536 318 515 304 487 304 445 255</points> </poly> <poly> <points>648 458 571 458 599 486 641 486</points> </poly> <poly> <points>235 444 123 444 123 486 144 486 144 479 235 479</points> </poly> </polys> <props> <prop rotation="-1" x="324" y="219"> <name>grunt_egypt_1_right</name> </prop> <prop rotation="0" x="469" y="220"> <name>grunt_egypt_1_left</name> </prop> <prop rotation="1" x="231" y="231"> <name>egypt_brick_2</name> </prop> <prop rotation="1" x="160" y="231"> <name>egypt_brick_2</name> </prop> <prop rotation="2" x="274" y="246"> <name>egypt_brick_1</name> </prop> <prop rotation="1" x="532" y="231"> <name>egypt_brick_2</name> </prop> <prop rotation="2" x="276" y="230"> <name>egypt_brick_1</name> </prop> <prop rotation="1" x="271" y="215"> <name>egypt_brick_1</name> </prop> <prop rotation="-2" x="250" y="199"> <name>egypt_brick_1</name> </prop> <prop rotation="2" x="568" y="246"> <name>egypt_brick_1</name> </prop> <prop rotation="2" x="578" y="230"> <name>egypt_brick_1</name> </prop> <prop rotation="2" x="573" y="214"> <name>egypt_brick_1</name> </prop> </props> </level> <level> <!-- Level 9--> <info rolls='12' time='60000'></info> <rabbids> <rabbid name="rabbid" x="428" y="464" facing="undefined"/> </rabbids> <polys> <poly> <points>312 438 272 438 288 446 352 446</points> </poly> <poly> <points>236 498 540 498 564 426 668 418 716 474 716 522 124 522 164 426 188 426 220 498</points> </poly> <poly> <points>556 458 508 514 508 546 556 546</points> </poly> <poly> <points>188 442 252 530 196 530</points> </poly> <poly> <points>274 436 328 438 338 421 396 421 399 436 384 445 287 446</points> </poly> <poly> <points>628 419 562 418 565 537 644 526</points> </poly> <poly> <points>468 421 527 419 517 441 465 438</points> </poly> <poly> <points>278 436 250 435 280 445</points> </poly> <poly> <points>185 425 138 424 164 453</points> </poly> </polys> <props> <prop rotation="2" x="294" y="401"> <name>grunt_egypt_1_left</name> </prop> <prop rotation="1" x="161" y="326"> <name>grunt_egypt_1_right</name> </prop> <prop rotation="-6" x="626" y="201"> <name>grunt_egypt_1_right</name> </prop> <prop rotation="0" x="375" y="278"> <name>grunt_egypt_1_left</name> </prop> <prop rotation="1" x="355" y="321"> <name>egypt_brick_1</name> </prop> <prop rotation="-2" x="648" y="396"> <name>egypt_brick_2</name> </prop> <prop rotation="-3" x="494" y="362"> <name>egypt_plank_3</name> </prop> <prop rotation="0" x="590" y="360"> <name>egypt_plank_3</name> </prop> <prop rotation="0" x="161" y="367"> <name>egypt_plank_3</name> </prop> <prop rotation="0" x="601" y="288"> <name>egypt_plank_2</name> </prop> <prop rotation="1" x="376" y="351"> <name>egypt_brick_2</name> </prop> <prop rotation="-3" x="637" y="258"> <name>egypt_brick_2</name> </prop> <prop rotation="-2" x="492" y="315"> <name>egypt_brick_2</name> </prop> <prop rotation="-3" x="644" y="350"> <name>egypt_brick_2</name> </prop> <prop rotation="1" x="388" y="320"> <name>egypt_brick_1</name> </prop> <prop rotation="-3" x="641" y="304"> <name>egypt_brick_2</name> </prop> <prop rotation="1" x="372" y="397"> <name>egypt_brick_2</name> </prop> </props> </level> <level> <!-- Level 10--> <info rolls='12' time='60000'></info> <rabbids> <rabbid name="rabbid" x="134" y="466" facing="undefined"/> <rabbid name="teammate_rabbid" x="567" y="166" facing="right"/> </rabbids> <polys> <poly> <points>220 390 180 440 260 460</points> </poly> <poly> <points>380 460 330 530 360 540 400 470</points> </poly> <poly> <points>380 460 420 400 450 400 400 470</points> </poly> <poly> <points>330 530 330 570 350 570 350 550</points> </poly> <poly> <points>330 560 230 560 230 570 330 570</points> </poly> <poly> <points>240 370 320 440 340 410 250 360</points> </poly> <poly> <points>450 400 580 400 510 430 460 430</points> </poly> <poly> <points>680 340 650 400 680 450 690 450</points> </poly> <poly> <points>490 550 640 550 680 470 680 590 440 590 410 490 420 490 460 560</points> </poly> <poly> <points>120 500 150 500 150 610 120 610</points> </poly> <poly> <points>340 230 290 310 350 310 350 230</points> </poly> <poly> <points>351 232 370 232 370 258 351 286</points> </poly> <poly> <points>590 480 630 470 610 500</points> </poly> <poly> <points>620 470 580 470 620 490</points> </poly> <poly> <points>187 614 176 660 204 634</points> </poly> <poly> <points>430 260 451 260 449 273</points> </poly> <poly> <points>550 200 600 200 600 240 550 240</points> </poly> <poly> <points>530 300 570 300 570 320 520 320 520 300</points> </poly> </polys> <props> <prop rotation="-1" x="431" y="364"> <name>grunt_egypt_1_right</name> </prop> <prop rotation="4" x="412" y="199"> <name>grunt_egypt_1_left</name> </prop> <prop rotation="-1" x="604" y="434"> <name>grunt_egypt_1_right</name> </prop> <prop rotation="2" x="266" y="535"> <name>egypt_brick_1</name> </prop> <prop rotation="24" x="321" y="508"> <name>egypt_brick_1</name> </prop> <prop rotation="24" x="333" y="495"> <name>egypt_brick_1</name> </prop> <prop rotation="24" x="344" y="433"> <name>egypt_brick_1</name> </prop> <prop rotation="24" x="311" y="520"> <name>egypt_brick_1</name> </prop> <prop rotation="2" x="294" y="535"> <name>egypt_brick_1</name> </prop> <prop rotation="2" x="307" y="551"> <name>egypt_brick_1</name> </prop> <prop rotation="2" x="277" y="551"> <name>egypt_brick_1</name> </prop> <prop rotation="23" x="335" y="463"> <name>egypt_brick_2</name> </prop> <prop rotation="35" x="350" y="406"> <name>egypt_brick_1</name> </prop> <prop rotation="33" x="350" y="387"> <name>egypt_brick_1</name> </prop> <prop rotation="-14" x="306" y="372"> <name>egypt_brick_1</name> </prop> <prop rotation="31" x="325" y="392"> <name>egypt_brick_1</name> </prop> <prop rotation="-14" x="302" y="340"> <name>egypt_brick_1</name> </prop> <prop rotation="32" x="362" y="376"> <name>egypt_brick_1</name> </prop> <prop rotation="-23" x="333" y="368"> <name>egypt_brick_1</name> </prop> <prop rotation="-14" x="301" y="357"> <name>egypt_brick_1</name> </prop> <prop rotation="10" x="382" y="423"> <name>egypt_brick_1</name> </prop> <prop rotation="2" x="239" y="551"> <name>egypt_brick_1</name> </prop> <prop rotation="2" x="238" y="535"> <name>egypt_brick_1</name> </prop> <prop rotation="2" x="238" y="519"> <name>egypt_brick_1</name> </prop> <prop rotation="1" x="239" y="504"> <name>egypt_brick_1</name> </prop> <prop rotation="0" x="467" y="332"> <name>egypt_plank_2</name> </prop> <prop rotation="31" x="273" y="363"> <name>egypt_brick_1</name> </prop> <prop rotation="31" x="273" y="345"> <name>egypt_brick_1</name> </prop> <prop rotation="-26" x="373" y="444"> <name>egypt_brick_1</name> </prop> <prop rotation="9" x="400" y="350"> <name>egypt_plank_2</name> </prop> <prop rotation="6" x="407" y="256"> <name>egypt_brick_2</name> </prop> <prop rotation="7" x="457" y="237"> <name>egypt_brick_2</name> </prop> <prop rotation="8" x="387" y="348"> <name>egypt_plank_2</name> </prop> </props> </level> <level> <!-- Level 11--> <info rolls='12' time='60000'></info> <rabbids> <rabbid name="rabbid" x="670" y="273" facing="right"/> <rabbid name="teammate_rabbid" x="118" y="204" facing="undefined"/> </rabbids> <polys> <poly> <points>320 180 400 270 320 270</points> </poly> <poly> <points>160 280 220 360 160 360</points> </poly> <poly> <points>490 290 550 350 490 350</points> </poly> <poly> <points>240 440 300 440 300 530 240 530</points> </poly> <poly> <points>690 310 650 310 650 420 690 420</points> </poly> <poly> <points>470 490 520 490 520 540 470 540 470 500</points> </poly> <poly> <points>130 480 190 480 190 560 130 560</points> </poly> <poly> <points>90 350 120 350 120 240 80 240 80 350</points> </poly> <poly> <points>120 240 130 240 130 310 70 310 70 240</points> </poly> <poly> <points>209 140 242 140 220 121 190 140</points> </poly> </polys> <props> <prop rotation="-1" x="269" y="404"> <name>grunt_egypt_1_right</name> </prop> <prop rotation="0" x="489" y="455"> <name>grunt_egypt_1_left</name> </prop> <prop rotation="0" x="160" y="445"> <name>grunt_egypt_1_left</name> </prop> </props> </level> <level> <!-- Level 12--> <info rolls='12' time='60000'></info> <rabbids> <rabbid name="rabbid" x="132" y="254" facing="undefined"/> </rabbids> <polys> <poly> <points>260 310 504 310 448 479 448 629 335 629 335 470</points> </poly> <poly> <points>307 329 260 282 222 338 297 526 316 648 363 648 363 385</points> </poly> <poly> <points>551 535 570 535 626 601 683 629 655 667 476 667 485 601 542 573</points> </poly> <poly> <points>100 291 156 291 128 394</points> </poly> </polys> <props> <prop rotation="0" x="560" y="500"> <name>grunt_egypt_1_left</name> </prop> <prop rotation="1" x="494" y="301"> <name>egypt_brick_1</name> </prop> <prop rotation="2" x="363" y="301"> <name>egypt_brick_1</name> </prop> <prop rotation="1" x="344" y="270"> <name>egypt_brick_2</name> </prop> <prop rotation="1" x="486" y="270"> <name>egypt_brick_2</name> </prop> <prop rotation="2" x="335" y="301"> <name>egypt_brick_1</name> </prop> <prop rotation="2" x="466" y="301"> <name>egypt_brick_1</name> </prop> <prop rotation="0" x="416" y="196"> <name>egypt_plank_2</name> </prop> <prop rotation="1" x="417" y="286"> <name>egypt_brick_2</name> </prop> </props> </level> <level> <!-- Level 13 --> <info rolls='12' time='60000'></info> <rabbids> <rabbid name="rabbid" x="207" y="255" facing="undefined"/> </rabbids> <polys> <poly> <points>390 250 390 300 640 300 640 250 620 250 620 280 570 280 570 250 550 250 550 280 490 280 490 250 480 250 470 250 470 270 470 280 420 280 420 250</points> </poly> <poly> <points>450 300 450 490 350 600 740 600 610 490 610 300</points> </poly> <poly> <points>420 300 420 490 320 590 330 610 540 610 530 300</points> </poly> <poly> <points>190 290 240 290 240 270 270 270 270 330 140 330 140 270 170 270 170 290</points> </poly> <poly> <points>190 330 190 640 230 640 230 330</points> </poly> <poly> <points>190 330 180 330 180 630 200 630 200 330</points> </poly> </polys> <props> <prop rotation="0" x="519" y="236"> <name>grunt_med_1_left</name> </prop> <prop rotation="1" x="454" y="268"> <name>medieval_stone_1</name> </prop> <prop rotation="27" x="598" y="261"> <name>medieval_catapult_stone</name> </prop> </props> </level> <level> <!-- Level 14--> <info rolls='12' time='60000'></info> <rabbids> <rabbid name="rabbid" x="410" y="376" facing="undefined"/> </rabbids> <polys> <poly> <points>130 370 170 370 170 430 130 430</points> </poly> <poly> <points>280 330 280 390 320 390 320 330</points> </poly> <poly> <points>390 410 430 410 430 450 390 450</points> </poly> <poly> <points>520 410 520 460 560 460 560 410</points> </poly> <poly> <points>610 260 610 310 650 310 650 260</points> </poly> <poly> <points>150 430 140 430 140 620 160 620 160 430</points> </poly> <poly> <points>290 390 290 620 320 620 320 600 310 600 310 390</points> </poly> <poly> <points>400 450 400 640 420 640 420 450</points> </poly> <poly> <points>530 460 530 620 560 620 560 590 550 590 550 460</points> </poly> <poly> <points>620 310 640 310 640 600 620 600</points> </poly> </polys> <props> <prop rotation="0" x="300" y="286"> <name>grunt_med_1_left</name> </prop> <prop rotation="0" x="159" y="326"> <name>grunt_med_1_left</name> </prop> <prop rotation="0" x="550" y="366"> <name>grunt_med_1_left</name> </prop> <prop rotation="0" x="630" y="216"> <name>grunt_med_1_left</name> </prop> </props> </level> <level> <!-- Level 15--> <info rolls='12' time='60000'></info> <rabbids> <rabbid name="rabbid" x="142" y="500" facing="undefined"/> <rabbid name="teammate_rabbid" x="275" y="349" facing="undefined"/> </rabbids> <polys> <poly> <points>336 385 265 385 239 411 239 429 265 429 265 411 275 403 336 403</points> </poly> <poly> <points>380 385 380 403 398 403 407 411 407 535 424 535 424 411 407 394 407 385</points> </poly> <poly> <points>380 403 380 491 345 526 345 535 407 535 407 411 398 403</points> </poly> <poly> <points>336 403 336 464 327 464 327 403</points> </poly> <poly> <points>327 526 345 526 345 535 327 535</points> </poly> <poly> <points>239 500 265 500 265 526 327 526 327 535 239 535</points> </poly> <poly> <points>247 535 44 535 44 580 681 580 681 438 584 438 540 456 540 473 522 491 486 500 486 518 468 526 460 535</points> </poly> <poly> <points>584 438 512 411 540 447 522 456 540 526</points> </poly> </polys> <props> <prop rotation="0" x="301" y="482"> <name>grunt_med_1_left</name> </prop> <prop rotation="3" x="604" y="393"> <name>grunt_med_1_left</name> </prop> <prop rotation="1" x="252" y="488"> <name>medieval_stone_1</name> </prop> <prop rotation="3" x="251" y="467"> <name>medieval_stone_1</name> </prop> <prop rotation="5" x="251" y="446"> <name>medieval_stone_1</name> </prop> <prop rotation="1" x="440" y="523"> <name>medieval_stone_1</name> </prop> </props> </level> <level> <!-- Level 16--> <info rolls='12' time='60000'></info> <rabbids> <rabbid name="rabbid" x="401" y="304" facing="undefined"/> <rabbid name="teammate_rabbid" x="220" y="506" facing="undefined"/> </rabbids> <polys> <poly> <points>160 220 280 220 280 330 170 330 170 230 160 230</points> </poly> <poly> <points>510 220 510 330 630 330 630 220</points> </poly> <poly> <points>210 540 280 540 280 560 160 560 160 540</points> </poly> <poly> <points>380 340 430 340 430 390 300 460 270 460 380 360</points> </poly> <poly> <points>330 540 530 540 530 480 720 480 720 590 330 590</points> </poly> </polys> <props> <prop rotation="0" x="469" y="496"> <name>grunt_med_1_left</name> </prop> <prop rotation="0" x="209" y="176"> <name>grunt_med_1_left</name> </prop> <prop rotation="0" x="586" y="178"> <name>grunt_med_swordpull_right</name> </prop> <prop rotation="0" x="677" y="392"> <name>grunt_med_1_left</name> </prop> <prop rotation="1" x="342" y="528"> <name>medieval_stone_1</name> </prop> <prop rotation="1" x="399" y="528"> <name>medieval_stone_1</name> </prop> <prop rotation="1" x="430" y="528"> <name>medieval_stone_1</name> </prop> <prop rotation="1" x="539" y="468"> <name>medieval_stone_1</name> </prop> <prop rotation="3" x="690" y="447"> <name>medieval_stone_1</name> </prop> <prop rotation="1" x="629" y="468"> <name>medieval_stone_1</name> </prop> <prop rotation="3" x="539" y="447"> <name>medieval_stone_1</name> </prop> <prop rotation="5" x="536" y="425"> <name>medieval_stone_1</name> </prop> <prop rotation="1" x="570" y="468"> <name>medieval_stone_1</name> </prop> <prop rotation="3" x="570" y="447"> <name>medieval_stone_1</name> </prop> <prop rotation="5" x="569" y="425"> <name>medieval_stone_1</name> </prop> <prop rotation="3" x="628" y="447"> <name>medieval_stone_1</name> </prop> <prop rotation="5" x="629" y="425"> <name>medieval_stone_1</name> </prop> <prop rotation="1" x="660" y="468"> <name>medieval_stone_1</name> </prop> <prop rotation="3" x="659" y="447"> <name>medieval_stone_1</name> </prop> <prop rotation="1" x="691" y="468"> <name>medieval_stone_1</name> </prop> <prop rotation="1" x="523" y="208"> <name>medieval_stone_1</name> </prop> <prop rotation="2" x="264" y="208"> <name>medieval_stone_1</name> </prop> <prop rotation="1" x="170" y="208"> <name>medieval_stone_1</name> </prop> <prop rotation="2" x="625" y="208"> <name>medieval_stone_1</name> </prop> <prop rotation="3" x="266" y="187"> <name>medieval_stone_1</name> </prop> <prop rotation="3" x="521" y="187"> <name>medieval_stone_1</name> </prop> <prop rotation="3" x="629" y="187"> <name>medieval_stone_1</name> </prop> <prop rotation="-25" x="542" y="397"> <name>medieval_catapult_stone</name> </prop> </props> </level> <level> <!-- Level 17--> <info rolls='12' time='60000'></info> <rabbids> <rabbid name="rabbid" x="180" y="245" facing="undefined"/> </rabbids> <polys> <poly> <points>150 280 220 280 270 230 310 260 240 340 290 400 230 450 280 510 230 510 220 560 470 560 470 510 400 510 350 450 410 390 350 330 400 260 440 240 600 240 600 610 130 610 50 570 90 280</points> </poly> <poly> <points>603 351 665 350 635 453 619 465 620 623 582 621 580 351</points> </poly> </polys> <props> <prop rotation="0" x="353" y="516"> <name>grunt_med_1_left</name> </prop> <prop rotation="0" x="308" y="518"> <name>grunt_med_swordpull_right</name> </prop> <prop rotation="0" x="656" y="306"> <name>grunt_med_1_left</name> </prop> <prop rotation="1" x="460" y="228"> <name>medieval_stone_1</name> </prop> <prop rotation="1" x="510" y="228"> <name>medieval_stone_1</name> </prop> <prop rotation="1" x="550" y="228"> <name>medieval_stone_1</name> </prop> <prop rotation="3" x="550" y="207"> <name>medieval_stone_1</name> </prop> <prop rotation="3" x="509" y="207"> <name>medieval_stone_1</name> </prop> <prop rotation="5" x="510" y="186"> <name>medieval_stone_1</name> </prop> <prop rotation="1" x="585" y="228"> <name>medieval_stone_1</name> </prop> <prop rotation="30" x="556" y="179"> <name>medieval_catapult_stone</name> </prop> </props> </level> <level> <!-- Level 18--> <info rolls='12' time='60000'></info> <rabbids> <rabbid name="teammate_rabbid" x="230" y="395" facing="undefined"/> <rabbid name="teammate_rabbid" x="378" y="435" facing="right"/> <rabbid name="rabbid" x="494" y="345" facing="right"/> </rabbids> <polys> <poly> <points>120 220 130 230 190 230 200 220 200 240 120 240</points> </poly> <poly> <points>250 220 250 240 330 240 330 220 320 230 260 230</points> </poly> <poly> <points>620 310 670 310 660 340 630 340</points> </poly> <poly> <points>370 360 320 360 290 310 410 310</points> </poly> <poly> <points>370 470 390 470 390 520 350 520</points> </poly> <poly> <points>220 430 240 430 240 480 190 480</points> </poly> <poly> <points>640 340 640 550 660 550 660 340</points> </poly> <poly> <points>480 380 510 380 510 560 490 560 490 400</points> </poly> <poly> <points>110 570 160 570 170 560 170 580 100 580 100 560</points> </poly> <poly> <points>270 560 280 570 310 570 330 560 320 590 270 590 260 570</points> </poly> </polys> <props> <prop rotation="0" x="160" y="188"> <name>grunt_med_swordpull_right</name> </prop> <prop rotation="0" x="290" y="188"> <name>grunt_med_swordpull_right</name> </prop> <prop rotation="0" x="665" y="266"> <name>grunt_med_1_left</name> </prop> <prop rotation="0" x="301" y="524"> <name>grunt_med_1_left</name> </prop> <prop rotation="0" x="139" y="526"> <name>grunt_med_1_left</name> </prop> <prop rotation="2" x="318" y="298"> <name>medieval_stone_1</name> </prop> <prop rotation="1" x="392" y="298"> <name>medieval_stone_1</name> </prop> <prop rotation="3" x="330" y="277"> <name>medieval_stone_1</name> </prop> <prop rotation="-3" x="384" y="276"> <name>medieval_stone_1</name> </prop> <prop rotation="5" x="341" y="257"> <name>medieval_stone_1</name> </prop> <prop rotation="-2" x="373" y="255"> <name>medieval_stone_1</name> </prop> <prop rotation="0" x="356" y="234"> <name>medieval_stone_1</name> </prop> </props> </level> </levels> ; stage.addEventListener(KeyboardEvent.KEY_DOWN, doKeyboard, false, 0, true); cPage = 0; unLocked = 0; cLevel = 0; chapterLock = -1; winLevel = 17; if (this.root.loaderInfo.parameters.partners != undefined){ chapterLock = int(this.root.loaderInfo.parameters.partners); }; if (chapterLock == 0){ winLevel = 5; }; if (chapterLock == 1){ unLocked = 6; cPage = 1; winLevel = 11; }; if (chapterLock == 2){ unLocked = 12; cPage = 2; }; so = SharedObject.getLocal("savedData"); if (so.data.soArray == undefined){ trace(so.data.soArray); so.data.soArray = new Array(); so.data.unLocked = unLocked; h = 0; while (h < 18) { so.data.soArray.push(uint(0)); h++; }; } else { unLocked = so.data.unLocked; }; stop(); waitTimer = new Timer(100); this.addEventListener(Event.ENTER_FRAME, doPreload); waitTimer.addEventListener(TimerEvent.TIMER, proceed); langsXML = <languages> <language name='us'> <play>PLAY THE GAME</play> <highscores>HIGHSCORES</highscores> <visit>VISIT WEBSITE</visit> <preorder>PRE-ORDER</preorder> <figurine>BUY FIGURINES</figurine> <rolls>ROLLS</rolls> <score>SCORE</score> <time>TIME</time> <level>LEVEL</level> <partnerURL>http://www.ubisoft.com</partnerURL> <preorderURL>http://www.ubisoft.com</preorderURL> <figurineURL>http://www.ubisoft.com</figurineURL> <siteURL>http://www.ubisoft.com</siteURL> <message>MESSAGE</message> <messagetexts> <messagetext>level 1 message</messagetext> <messagetext>level 2 message</messagetext> <messagetext>level 3 message</messagetext> <messagetext>level 4 message</messagetext> <messagetext>level 5 message</messagetext> <messagetext>level 6 message</messagetext> <messagetext>level 7 message</messagetext> <messagetext>level 8 message</messagetext> <messagetext>level 9 message</messagetext> <messagetext>level 10 message</messagetext> <messagetext>level 11 message</messagetext> <messagetext>level 12 message</messagetext> <messagetext>level 13 message</messagetext> <messagetext>level 14 message</messagetext> <messagetext>level 15 message</messagetext> <messagetext>level 16 message</messagetext> <messagetext>level 17 message</messagetext> <messagetext>level 18 message</messagetext> </messagetexts> <failed>FAILED!</failed> <failedtextgrenades>You ran out of grenades!</failedtextgrenades> <failedtexttime>You ran out of time!</failedtexttime> <home>HOME</home> <replay>REPLAY</replay> <next>NEXT</next> <levelcomplete>CLEARED!</levelcomplete> <hits>HITS</hits> <bonus>BONUS</bonus> <totalscore>TOTAL SCORE</totalscore> <congratulations>CONGRATULATIONS!</congratulations> <congrattext>You are awesome! You have completed all the levels!</congrattext> </language> <language name='aut'> <play>SPIEL STARTEN</play> <highscores>BESTEN PUNKTE</highscores> <visit>WEBSEITE BESUCHEN</visit> <preorder>VORBESTELLUNG</preorder> <figurine>FIGURINEN KAUFEN</figurine> <rolls>ROLLEN</rolls> <score>SCORE</score> <time>ZEIT</time> <level>EBENE</level> <partnerURL>http://www.ubisoft.com</partnerURL> <preorderURL>http://www.ubisoft.com</preorderURL> <figurineURL>http://www.ubisoft.com</figurineURL> <siteURL>http://www.ubisoft.com</siteURL> <message>NACHRICHT</message> <messagetexts> <messagetext>level 1 message</messagetext> <messagetext>level 2 message</messagetext> <messagetext>level 3 message</messagetext> <messagetext>level 4 message</messagetext> <messagetext>level 5 message</messagetext> <messagetext>level 6 message</messagetext> <messagetext>level 7 message</messagetext> <messagetext>level 8 message</messagetext> <messagetext>level 9 message</messagetext> <messagetext>level 10 message</messagetext> <messagetext>level 11 message</messagetext> <messagetext>level 12 message</messagetext> <messagetext>level 13 message</messagetext> <messagetext>level 14 message</messagetext> <messagetext>level 15 message</messagetext> <messagetext>level 16 message</messagetext> <messagetext>level 17 message</messagetext> <messagetext>level 18 message</messagetext> </messagetexts> <failed>GESCHEITERT!</failed> <failedtextgrenades>Sie lief aus Granaten!</failedtextgrenades> <failedtexttime>Sie rannte aus der Zeit!</failedtexttime> <home>ZUHAUSE</home> <replay>WIEDERHOLUNG</replay> <next>WEITER</next> <levelcomplete>LEVEL KLAR!</levelcomplete> <hits>ZUGRIFFE</hits> <bonus>BONUS</bonus> <totalscore>GESAMTSCORE</totalscore> <congratulations>HERZLICHEN GLÜCKWUNSCH!</congratulations> <congrattext>Sie sind genial! Sie haben auf alle Ebenen abgeschlossen!</congrattext> </language> <language name='ger'> <play>SPIEL STARTEN</play> <highscores>BESTEN PUNKTE</highscores> <visit>WEBSEITE BESUCHEN</visit> <preorder>VORBESTELLUNG</preorder> <figurine>FIGURINEN KAUFEN</figurine> <rolls>ROLLEN</rolls> <score>SCORE</score> <time>ZEIT</time> <level>EBENE</level> <partnerURL>http://www.ubisoft.com</partnerURL> <preorderURL>http://www.ubisoft.com</preorderURL> <figurineURL>http://www.ubisoft.com</figurineURL> <siteURL>http://www.ubisoft.com</siteURL> <message>NACHRICHT</message> <messagetexts> <messagetext>level 1 message</messagetext> <messagetext>level 2 message</messagetext> <messagetext>level 3 message</messagetext> <messagetext>level 4 message</messagetext> <messagetext>level 5 message</messagetext> <messagetext>level 6 message</messagetext> <messagetext>level 7 message</messagetext> <messagetext>level 8 message</messagetext> <messagetext>level 9 message</messagetext> <messagetext>level 10 message</messagetext> <messagetext>level 11 message</messagetext> <messagetext>level 12 message</messagetext> <messagetext>level 13 message</messagetext> <messagetext>level 14 message</messagetext> <messagetext>level 15 message</messagetext> <messagetext>level 16 message</messagetext> <messagetext>level 17 message</messagetext> <messagetext>level 18 message</messagetext> </messagetexts> <failed>GESCHEITERT!</failed> <failedtextgrenades>Sie lief aus Granaten!</failedtextgrenades> <failedtexttime>Sie rannte aus der Zeit!</failedtexttime> <home>ZUHAUSE</home> <replay>WIEDERHOLUNG</replay> <next>WEITER</next> <levelcomplete>LEVEL KLAR!</levelcomplete> <hits>ZUGRIFFE</hits> <bonus>BONUS</bonus> <totalscore>GESAMTSCORE</totalscore> <congratulations>HERZLICHEN GLÜCKWUNSCH!</congratulations> <congrattext>Sie sind genial! Sie haben auf alle Ebenen abgeschlossen!</congrattext> </language> <language name='esp'> <play>JUGAR EL JUEGO</play> <highscores>PUNTUACIONES</highscores> <visit>VISITE EL SITIO WEB</visit> <preorder>PRE-ORDEN</preorder> <figurine>COMPRA FIGURITAS</figurine> <rolls>ROLLOS</rolls> <score>PUNTUACIÓN</score> <time>TIEMPO</time> <level>NIVEL</level> <partnerURL>http://www.ubisoft.com</partnerURL> <preorderURL>http://www.ubisoft.com</preorderURL> <figurineURL>http://www.ubisoft.com</figurineURL> <siteURL>http://www.ubisoft.com</siteURL> <message>MENSAJE</message> <messagetexts> <messagetext>level 1 message</messagetext> <messagetext>level 2 message</messagetext> <messagetext>level 3 message</messagetext> <messagetext>level 4 message</messagetext> <messagetext>level 5 message</messagetext> <messagetext>level 6 message</messagetext> <messagetext>level 7 message</messagetext> <messagetext>level 8 message</messagetext> <messagetext>level 9 message</messagetext> <messagetext>level 10 message</messagetext> <messagetext>level 11 message</messagetext> <messagetext>level 12 message</messagetext> <messagetext>level 13 message</messagetext> <messagetext>level 14 message</messagetext> <messagetext>level 15 message</messagetext> <messagetext>level 16 message</messagetext> <messagetext>level 17 message</messagetext> <messagetext>level 18 message</messagetext> </messagetexts> <failed>ERROR!</failed> <failedtextgrenades>Se quedó sin rollos!</failedtextgrenades> <failedtexttime>Se acabó el tiempo!</failedtexttime> <home>INICIO</home> <replay>OTRA VEZ</replay> <next>SIGUIENTE</next> <levelcomplete>APROBADO!</levelcomplete> <hits>HITS</hits> <bonus>BONO</bonus> <totalscore>PUNTAJE TOTAL</totalscore> <congratulations>FELICIDADES!</congratulations> <congrattext>Usted es impresionante! Ha completado todos los niveles!</congrattext> </language> <language name='fra'> <play>JOUER</play> <highscores>HIGH SCORE</highscores> <visit>VISITEZ LE SITE</visit> <preorder>PRÉ-ACHAT</preorder> <figurine>ACHETER DES FIGURINES</figurine> <rolls>ROLLS</rolls> <score>SCORE</score> <time>TEMPS</time> <level>NIVEAU</level> <partnerURL>http://www.ubisoft.com</partnerURL> <preorderURL>http://www.ubisoft.com</preorderURL> <figurineURL>http://www.ubisoft.com</figurineURL> <siteURL>http://www.ubisoft.com</siteURL> <message>MESSAGE</message> <messagetexts> <messagetext>level 1 message</messagetext> <messagetext>level 2 message</messagetext> <messagetext>level 3 message</messagetext> <messagetext>level 4 message</messagetext> <messagetext>level 5 message</messagetext> <messagetext>level 6 message</messagetext> <messagetext>level 7 message</messagetext> <messagetext>level 8 message</messagetext> <messagetext>level 9 message</messagetext> <messagetext>level 10 message</messagetext> <messagetext>level 11 message</messagetext> <messagetext>level 12 message</messagetext> <messagetext>level 13 message</messagetext> <messagetext>level 14 message</messagetext> <messagetext>level 15 message</messagetext> <messagetext>level 16 message</messagetext> <messagetext>level 17 message</messagetext> <messagetext>level 18 message</messagetext> </messagetexts> <failed>MANQUE!</failed> <failedtextgrenades>Vous avez manqué de ROLLS!</failedtextgrenades> <failedtexttime>Vous manqué de temps!</failedtexttime> <home>ACCUEIL</home> <replay>ENCORE</replay> <next>NEXTE</next> <levelcomplete>COMPLET!</levelcomplete> <hits>HITS</hits> <bonus>BONUS</bonus> <totalscore>TOTAL DES POINTS</totalscore> <congratulations>FELICITATIONS!</congratulations> <congrattext>Vous êtes génial! Vous avez terminé tous les niveaux!</congrattext> </language> <language name='ita'> <play>gioco</play> <highscores>Il punteggio più alto</highscores> <visit>VISITA IL SITO</visit> <preorder>PRE-ORDINE</preorder> <figurine>ACQUISTA FIGURINE</figurine> <rolls>rotoli</rolls> <score>Punteggio</score> <time>tempo</time> <level>LIVELLO</level> <partnerURL>http://www.ubisoft.com</partnerURL> <preorderURL>http://www.ubisoft.com</preorderURL> <figurineURL>http://www.ubisoft.com</figurineURL> <siteURL>http://www.ubisoft.com</siteURL> <message>MESSAGGIO</message> <messagetexts> <messagetext>level 1 message</messagetext> <messagetext>level 2 message</messagetext> <messagetext>level 3 message</messagetext> <messagetext>level 4 message</messagetext> <messagetext>level 5 message</messagetext> <messagetext>level 6 message</messagetext> <messagetext>level 7 message</messagetext> <messagetext>level 8 message</messagetext> <messagetext>level 9 message</messagetext> <messagetext>level 10 message</messagetext> <messagetext>level 11 message</messagetext> <messagetext>level 12 message</messagetext> <messagetext>level 13 message</messagetext> <messagetext>level 14 message</messagetext> <messagetext>level 15 message</messagetext> <messagetext>level 16 message</messagetext> <messagetext>level 17 message</messagetext> <messagetext>level 18 message</messagetext> </messagetexts> <failed>MENO!</failed> <failedtextgrenades>Ad esaurimento degli rotoli!</failedtextgrenades> <failedtexttime>È finito il tempo!</failedtexttime> <home>casa</home> <replay>di nuovo</replay> <next>prossimo</next> <levelcomplete>COMPLETO!</levelcomplete> <hits>HITS</hits> <bonus>BONUS</bonus> <totalscore>TOTALE PUNTI</totalscore> <congratulations>COMPLIMENTI!</congratulations> <congrattext>Lei è impressionante! Avete completato tutti i livelli!</congrattext> </language> <language name='uk'> <play>PLAY THE GAME</play> <highscores>HIGHSCORES</highscores> <visit>VISIT WEBSITE</visit> <preorder>PRE-ORDER</preorder> <figurine>BUY FIGURINES</figurine> <rolls>ROLLS</rolls> <score>SCORE</score> <time>TIME</time> <level>LEVEL</level> <partnerURL>http://www.ubisoft.com</partnerURL> <preorderURL>http://www.ubisoft.com</preorderURL> <figurineURL>http://www.ubisoft.com</figurineURL> <siteURL>http://www.ubisoft.com</siteURL> <message>MESSAGE</message> <messagetexts> <messagetext>level 1 message</messagetext> <messagetext>level 2 message</messagetext> <messagetext>level 3 message</messagetext> <messagetext>level 4 message</messagetext> <messagetext>level 5 message</messagetext> <messagetext>level 6 message</messagetext> <messagetext>level 7 message</messagetext> <messagetext>level 8 message</messagetext> <messagetext>level 9 message</messagetext> <messagetext>level 10 message</messagetext> <messagetext>level 11 message</messagetext> <messagetext>level 12 message</messagetext> <messagetext>level 13 message</messagetext> <messagetext>level 14 message</messagetext> <messagetext>level 15 message</messagetext> <messagetext>level 16 message</messagetext> <messagetext>level 17 message</messagetext> <messagetext>level 18 message</messagetext> </messagetexts> <failed>FAILED!</failed> <failedtextgrenades>You ran out of grenades!</failedtextgrenades> <failedtexttime>You ran out of time!</failedtexttime> <home>HOME</home> <replay>REPLAY</replay> <next>NEXT</next> <levelcomplete>CLEARED!</levelcomplete> <hits>HITS</hits> <bonus>BONUS</bonus> <totalscore>TOTAL SCORE</totalscore> <congratulations>CONGRATULATIONS!</congratulations> <congrattext>You are awesome! You have completed all the levels!</congrattext> </language> <language name='ned'> <play>Speel het spel</play> <highscores>HOGE SCORE</highscores> <visit>Bezoek de Website</visit> <preorder>Pre-Order</preorder> <figurine>KOPEN BEELDJES</figurine> <rolls>rollen</rolls> <score>score</score> <time>tijd</time> <level>NIVEAU</level> <partnerURL>http://www.ubisoft.com</partnerURL> <preorderURL>http://www.ubisoft.com</preorderURL> <figurineURL>http://www.ubisoft.com</figurineURL> <siteURL>http://www.ubisoft.com</siteURL> <message>BERICHT</message> <messagetexts> <messagetext>level 1 message</messagetext> <messagetext>level 2 message</messagetext> <messagetext>level 3 message</messagetext> <messagetext>level 4 message</messagetext> <messagetext>level 5 message</messagetext> <messagetext>level 6 message</messagetext> <messagetext>level 7 message</messagetext> <messagetext>level 8 message</messagetext> <messagetext>level 9 message</messagetext> <messagetext>level 10 message</messagetext> <messagetext>level 11 message</messagetext> <messagetext>level 12 message</messagetext> <messagetext>level 13 message</messagetext> <messagetext>level 14 message</messagetext> <messagetext>level 15 message</messagetext> <messagetext>level 16 message</messagetext> <messagetext>level 17 message</messagetext> <messagetext>level 18 message</messagetext> </messagetexts> <failed>MISLUKT!</failed> <failedtextgrenades>U liep uit rollen!</failedtextgrenades> <failedtexttime>Je liep uit de tijd!</failedtexttime> <home>thuis</home> <replay>weer</replay> <next>volgende</next> <levelcomplete>COMPLEET!</levelcomplete> <hits>HITS</hits> <bonus>BONUS</bonus> <totalscore>TOTAAL AANTAL PUNTEN</totalscore> <congratulations>GEFELICITEERD!</congratulations> <congrattext>Je bent geweldig! Je hebt alle levels!</congrattext> </language> <language name='swe'> <play>spela spel</play> <highscores>HÖG SCORE</highscores> <visit>Besök webbsida</visit> <preorder>Pre-Order</preorder> <figurine>KÖP små figurer</figurine> <rolls>rullar</rolls> <score>poäng</score> <time>tid</time> <level>NIVÅ</level> <partnerURL>http://www.ubisoft.com</partnerURL> <preorderURL>http://www.ubisoft.com</preorderURL> <figurineURL>http://www.ubisoft.com</figurineURL> <siteURL>http://www.ubisoft.com</siteURL> <message>MEDDELANDE</message> <messagetexts> <messagetext>level 1 message</messagetext> <messagetext>level 2 message</messagetext> <messagetext>level 3 message</messagetext> <messagetext>level 4 message</messagetext> <messagetext>level 5 message</messagetext> <messagetext>level 6 message</messagetext> <messagetext>level 7 message</messagetext> <messagetext>level 8 message</messagetext> <messagetext>level 9 message</messagetext> <messagetext>level 10 message</messagetext> <messagetext>level 11 message</messagetext> <messagetext>level 12 message</messagetext> <messagetext>level 13 message</messagetext> <messagetext>level 14 message</messagetext> <messagetext>level 15 message</messagetext> <messagetext>level 16 message</messagetext> <messagetext>level 17 message</messagetext> <messagetext>level 18 message</messagetext> </messagetexts> <failed>MISSLYCKADES!</failed> <failedtextgrenades>DU tog slut rullar!</failedtextgrenades> <failedtexttime>Du fick ont om tid!</failedtexttime> <home>hemma</home> <replay>igen</replay> <next>nästa</next> <levelcomplete>KOMPLETT!</levelcomplete> <hits>Träffar</hits> <bonus>BONUS</bonus> <totalscore>TOTAL Poäng</totalscore> <congratulations>GRATTIS!</congratulations> <congrattext>Du är grym! Du har slutfört alla nivåer!</congrattext> </language> </languages> ; } public function handleClick(_arg1:MouseEvent){ trace(_arg1.currentTarget.name); switch (_arg1.currentTarget.name){ case "partnerLogo": navigateToURL(new URLRequest(langXML.partnerURL), "_blank"); break; case "b_preorder": navigateToURL(new URLRequest(langXML.preorderURL), "_blank"); break; case "b_figurine": navigateToURL(new URLRequest(langXML.figurineURL), "_blank"); break; case "b_play": gotoAndStop("level_select"); break; }; } function frame20(){ TweenLite.from(gameLogo, 0.4, {alpha:0, ease:Strong.easeOut}); TweenLite.from(b_play, 0.4, {alpha:0, x:"-20", delay:0.1, ease:Bounce.easeOut}); TweenLite.from(b_high, 0.4, {alpha:0, x:"-20", delay:0.2, ease:Bounce.easeOut}); TweenLite.from(b_visit, 0.4, {alpha:0, x:"-20", delay:0.3, ease:Bounce.easeOut}); TweenLite.from(b_preorder, 0.4, {alpha:0, y:"20", delay:0.4, ease:Bounce.easeOut}); TweenLite.from(b_figurine, 0.4, {alpha:0, y:"20", delay:0.5, ease:Bounce.easeOut}); gameLogo.gotoAndStop(langIdString); partnerLogo.gotoAndStop(langIdString); crampText(b_play.bText, langXML.play); crampText(b_high.bText, langXML.highscores); crampText(b_visit.btn.bText, langXML.visit); crampText(b_preorder.bText, langXML.preorder); crampText(b_figurine.bText, langXML.figurine); b_play.addEventListener(MouseEvent.CLICK, handleClick, false, 0, true); b_high.addEventListener(MouseEvent.CLICK, handleClick, false, 0, true); b_visit.addEventListener(MouseEvent.CLICK, handleClick, false, 0, true); b_preorder.addEventListener(MouseEvent.CLICK, handleClick, false, 0, true); b_figurine.addEventListener(MouseEvent.CLICK, handleClick, false, 0, true); partnerLogo.addEventListener(MouseEvent.CLICK, handleClick, false, 0, true); buttonize(b_play); buttonize(b_high); buttonize(b_visit.btn); buttonize(b_preorder.poUS); buttonize(b_figurine); b_play.buttonMode = true; b_high.buttonMode = true; b_visit.buttonMode = true; b_preorder.buttonMode = true; b_figurine.buttonMode = true; partnerLogo.buttonMode = true; b_play.bText.mouseEnabled = false; b_high.bText.mouseEnabled = false; b_visit.btn.bText.mouseEnabled = false; b_preorder.bText.mouseEnabled = false; b_figurine.bText.mouseEnabled = false; b_preorder.gotoAndStop(langIdString); if (langIdString != "us"){ b_visit.gotoAndStop(2); }; } function frame30(){ TweenLite.from(gameLogoLevels, 0.4, {alpha:0, ease:Strong.easeOut}); TweenLite.from(rabbid1, 0.7, {x:"-200", ease:Strong.easeOut}); TweenLite.from(rabbid2, 0.7, {x:"200", ease:Strong.easeOut}); gameLogoLevels.gotoAndStop(langIdString); freezeTimer = new Timer(600); freeze = false; freezeTimer.addEventListener(TimerEvent.TIMER, unFreeze, false, 0, true); thumbsArray = new Array(t1, t2, t3, t4, t5, t6); thumbsAddMouse(); pLeft.addEventListener(MouseEvent.CLICK, doPage, false, 0, true); pRight.addEventListener(MouseEvent.CLICK, doPage, false, 0, true); animRight(); initThumbs(); } public function unFreeze(_arg1:TimerEvent){ freeze = false; freezeTimer.stop(); } public function initThumbs(){ var _local1:uint; checkArrows(); _local1 = 0; while (_local1 < thumbsArray.length) { buttonize(thumbsArray[_local1]); if (((cPage * 6) + _local1) <= unLocked){ thumbsArray[_local1].lock.visible = false; thumbsArray[_local1].shade.visible = false; thumbsArray[_local1].isLocked = false; } else { thumbsArray[_local1].lock.visible = true; thumbsArray[_local1].shade.visible = true; thumbsArray[_local1].isLocked = true; }; _local1++; }; } public function animRight(){ var _local1:uint; freeze = true; freezeTimer.start(); _local1 = 0; while (_local1 < thumbsArray.length) { TweenLite.from(thumbsArray[_local1], 0.4, {alpha:0, x:"-20", delay:(_local1 / 20), ease:Strong.easeOut}); _local1++; }; } function frame40(){ buttonize(restartButton); crampText(msg.box.fail.labelText, langXML.failed); crampText(msg.box.fail.homeText, langXML.home); crampText(msg.box.fail.replayText, langXML.replay); crampText(msg.box.clr.homeText, langXML.home); crampText(msg.box.clr.nextText, langXML.next); crampText(msg.box.clr.totalText, langXML.totalscore); crampText(msg.box.clr.bonusText, langXML.bonus); crampText(msg.box.clr.hitsText, langXML.hits); crampText(msg.box.clr.clearLabel, langXML.levelcomplete); crampText(msg.box.msg.msgLabel, langXML.message); crampText(msg.box.msg.msgText, langXML.messagetexts.children()[cLevel]); } public function chooseLang(_arg1:MouseEvent){ var _local2:MovieClip; var _local3:uint; langIdString = _arg1.currentTarget.name.slice(4, 20).toLowerCase(); trace(langIdString, "LANGUAGE"); _local2 = MovieClip(_arg1.currentTarget); _local3 = 0; while (_local3 < flags.length) { if (flags[_local3] == _local2){ langId = _local3; }; _local3++; }; initLang(langId); } public function proceed(_arg1:TimerEvent){ waitTimer.stop(); waitTimer.removeEventListener(TimerEvent.TIMER, proceed); gotoAndStop("language_select"); } function frame41(){ stop(); msg.popScreen(1, true); engine.dad = MovieClip(this); engine.initGame(cLevel, getLevelName()); gameLogoGame.gotoAndStop(langIdString); crampText(gameUi.rollsText, langXML.rolls); crampText(gameUi.timeText, langXML.time); crampText(gameUi.scoreText, langXML.score); crampText(gameUi.levelText, langXML.level); gameUi.levelNum.setNum((cLevel + 1)); trace(gameUi.levelNum); trace(gameUi.levelNum.setNum); trace("AAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); restartButton.addEventListener(MouseEvent.CLICK, doRestart, false, 0, true); } public function checkArrows(){ if (chapterLock != -1){ pLeft.visible = false; pRight.visible = false; return; }; if (cPage == 0){ pLeft.visible = false; } else { pLeft.visible = true; }; if (cPage == 2){ pRight.visible = false; } else { pRight.visible = true; }; } public function doOut(_arg1:MouseEvent){ if (_arg1.currentTarget.isLocked){ return; }; _arg1.currentTarget.gotoAndPlay("out"); } public function calculateScore(_arg1:uint, _arg2:uint, _arg3:uint){ trace(_arg1, _arg2, _arg3); trace("hits: ", _arg1); trace("bonus: ", ((_arg2 * 200) + uint((_arg3 * 5)))); msg.box.clr.hits.text = _arg1; msg.box.clr.bonus.text = ((_arg2 * 200) + uint((_arg3 * 5))); msg.box.clr.score.text = ((_arg1 + (_arg2 * 200)) + uint((_arg3 * 5))); so.data.soArray[cLevel] = ((_arg1 + (_arg2 * 200)) + uint((_arg3 * 5))); trace(so.data.soArray); } function frame50(){ gameLogoEnd.gotoAndStop(langIdString); TweenLite.from(gameLogoEnd, 0.4, {alpha:0, ease:Strong.easeOut}); TweenLite.from(fridge, 0.8, {alpha:0, y:"-80", delay:0.1, ease:Bounce.easeOut}); TweenLite.from(rabbid1, 1.4, {alpha:0, y:"-80", delay:1, ease:Elastic.easeOut}); TweenLite.from(rabbid2, 1.4, {alpha:0, y:"-30", delay:1.1, ease:Elastic.easeOut}); TweenLite.from(rabbid3, 0.9, {alpha:0, y:"-50", delay:1.3, ease:Elastic.easeOut}); TweenLite.from(b_preorder, 0.4, {alpha:0, y:"+50", delay:1.5, ease:Bounce.easeOut}); TweenLite.from(b_visit, 0.4, {alpha:0, y:"+50", delay:1.6, ease:Bounce.easeOut}); crampText(fridge.congratsTitle, langXML.congratulations); crampText(fridge.congratsTxt, langXML.congrattext); crampText(fridge.totalScore, langXML.totalscore); crampText(fridge.scoreTxt, String(getTotalScore())); b_visit.addEventListener(MouseEvent.CLICK, handleClick, false, 0, true); b_preorder.addEventListener(MouseEvent.CLICK, handleClick, false, 0, true); b_visit.buttonMode = true; b_preorder.buttonMode = true; crampText(b_visit.btn.bText, langXML.visit); crampText(b_preorder.bText, langXML.preorder); b_preorder.bText.mouseEnabled = false; b_visit.btn.bText.mouseEnabled = false; buttonize(b_preorder.poUS); buttonize(b_visit.btn); b_preorder.gotoAndStop(langIdString); if (langIdString != "us"){ b_visit.gotoAndStop(2); }; } public function buttonize(_arg1:MovieClip){ _arg1.buttonMode = true; _arg1.addEventListener(MouseEvent.MOUSE_OVER, doOver, false, 0, true); _arg1.addEventListener(MouseEvent.MOUSE_OUT, doOut, false, 0, true); } public function thumbsAddMouse(){ var _local1:MovieClip; var _local2:uint; _local2 = 0; while (_local2 < thumbsArray.length) { _local1 = thumbsArray[_local2]; _local1.buttonMode = true; _local1.addEventListener(MouseEvent.CLICK, selectLevel, false, 0, true); _local2++; }; } public function doRestart(_arg1:MouseEvent){ if (msg.visible){ return; }; engine.restartLevel(); } public function doPreload(_arg1:Event){ var _local2:uint; _local2 = ((stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal) * 100); percentText.text = (String(_local2) + "%"); if (_local2 >= 100){ this.removeEventListener(Event.ENTER_FRAME, doPreload); waitTimer.start(); }; } public function initLang(_arg1:uint){ langXML = langsXML.children()[_arg1].copy(); trace(langXML); toMainMenu(); } public function initFlags(){ var _local1:uint; _local1 = 0; while (_local1 < flags.length) { buttonize(flags[_local1]); TweenLite.from(flags[_local1], 0.7, {alpha:0, x:"-50", ease:Elastic.easeOut, delay:(0.2 + (_local1 * 0.03))}); flags[_local1].addEventListener(MouseEvent.CLICK, chooseLang, false, 0, true); _local1++; }; } public function getLevelName(){ var _local1:uint; var _local2:String; _local1 = (cLevel + 1); if (_local1 < 10){ _local2 = ("0" + String(_local1)); } else { _local2 = String(_local1); }; _local2 = ("level" + _local2); return (_local2); } public function doKeyboard(_arg1:KeyboardEvent){ if ((((this.currentFrame == 41)) && ((_arg1.keyCode == 78)))){ engine.nextLevel(); return; }; if (_arg1.keyCode == 87){ if (this.currentFrame == 41){ engine.cleanUp(); }; gotoAndStop("final_screen"); return; }; if (_arg1.keyCode == 72){ if (this.currentFrame == 41){ engine.cleanUp(); }; gotoAndStop("main_menu"); return; }; trace(_arg1.keyCode); } public function getTotalScore(){ var _local1:uint; var _local2:uint; _local2 = 0; while (_local2 < so.data.soArray.length) { _local1 = (_local1 + so.data.soArray[_local2]); _local2++; }; return (_local1); } public function doPage(_arg1:MouseEvent){ if (freeze){ return; }; if (_arg1.currentTarget.name == "pLeft"){ if (cPage > 0){ cPage--; animLeft(); initThumbs(); }; } else { if (cPage < 2){ cPage++; animRight(); initThumbs(); }; }; } public function crampText(_arg1:TextField, _arg2:String){ var _local3:uint; var _local4:uint; var _local5:Number; var _local6:uint; _local3 = _arg1.textHeight; _local4 = _arg1.width; _arg1.text = _arg2.toUpperCase(); _local6 = _arg1.textWidth; if ((_local6 + 10) > _local4){ _local5 = (_local4 / (_local6 + 10)); _arg1.width = (_local6 + 10); _arg1.scaleX = _local5; _arg1.scaleY = _local5; _arg1.y = (_arg1.y + ((_local3 - (_local3 * _local5)) / 2)); }; } public function animLeft(){ var _local1:uint; freeze = true; freezeTimer.start(); _local1 = 0; while (_local1 < thumbsArray.length) { TweenLite.from(thumbsArray[_local1], 0.4, {alpha:0, x:"20", delay:(_local1 / 20), ease:Strong.easeOut}); _local1++; }; } public function selectLevel(_arg1:MouseEvent){ var _local2:uint; _local2 = ((uint(_arg1.currentTarget.name.charAt(1)) - 1) + (cPage * 6)); if (_local2 > unLocked){ return; }; trace(_local2); cLevel = _local2; trace("dad.cLevel:", cLevel); gotoAndPlay("gameplay"); } public function doOver(_arg1:MouseEvent){ if (_arg1.currentTarget.isLocked){ return; }; _arg1.currentTarget.gotoAndPlay("in"); } } }//package GAME_08_fla
Section 139
//mc_115 (GAME_08_fla.mc_115) package GAME_08_fla { import flash.display.*; public dynamic class mc_115 extends MovieClip { public function mc_115(){ addFrameScript(29, frame30); } function frame30(){ gotoAndPlay("loop"); } } }//package GAME_08_fla
Section 140
//mc_123 (GAME_08_fla.mc_123) package GAME_08_fla { import flash.display.*; public dynamic class mc_123 extends MovieClip { public function mc_123(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 141
//mc_124 (GAME_08_fla.mc_124) package GAME_08_fla { import flash.display.*; public dynamic class mc_124 extends MovieClip { public function mc_124(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((14 * Math.random()))); } } }//package GAME_08_fla
Section 142
//mc_125 (GAME_08_fla.mc_125) package GAME_08_fla { import flash.display.*; public dynamic class mc_125 extends MovieClip { public function mc_125(){ addFrameScript(0, frame1, 39, frame40, 85, frame86); } function frame86(){ gotoAndPlay((Math.ceil((30 * Math.random())) + 86)); } function frame1(){ gotoAndPlay(Math.ceil((125 * Math.random()))); } function frame40(){ gotoAndPlay((Math.ceil((30 * Math.random())) + 40)); } } }//package GAME_08_fla
Section 143
//mc_126 (GAME_08_fla.mc_126) package GAME_08_fla { import flash.display.*; public dynamic class mc_126 extends MovieClip { public function mc_126(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((14 * Math.random()))); } } }//package GAME_08_fla
Section 144
//mc_127 (GAME_08_fla.mc_127) package GAME_08_fla { import flash.display.*; public dynamic class mc_127 extends MovieClip { public function mc_127(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 145
//mc_128 (GAME_08_fla.mc_128) package GAME_08_fla { import flash.display.*; public dynamic class mc_128 extends MovieClip { public function mc_128(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((14 * Math.random()))); } } }//package GAME_08_fla
Section 146
//mc_133 (GAME_08_fla.mc_133) package GAME_08_fla { import flash.display.*; public dynamic class mc_133 extends MovieClip { public function mc_133(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 147
//mc_138 (GAME_08_fla.mc_138) package GAME_08_fla { import flash.display.*; import flash.text.*; public dynamic class mc_138 extends MovieClip { public var msgLabel:TextField; public var clock:MovieClip; public var rabbidMC:MovieClip; public var btnOK:MovieClip; public var sandtimer:MovieClip; public var msgText:TextField; } }//package GAME_08_fla
Section 148
//mc_139 (GAME_08_fla.mc_139) package GAME_08_fla { import flash.display.*; public dynamic class mc_139 extends MovieClip { public function mc_139(){ addFrameScript(29, frame30); } function frame30(){ gotoAndPlay("loop"); } } }//package GAME_08_fla
Section 149
//mc_151 (GAME_08_fla.mc_151) package GAME_08_fla { import flash.display.*; public dynamic class mc_151 extends MovieClip { public function mc_151(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 150
//mc_158 (GAME_08_fla.mc_158) package GAME_08_fla { import flash.display.*; public dynamic class mc_158 extends MovieClip { public function mc_158(){ addFrameScript(129, frame130); } function frame130(){ gotoAndPlay("loop"); } } }//package GAME_08_fla
Section 151
//mc_161 (GAME_08_fla.mc_161) package GAME_08_fla { import flash.display.*; public dynamic class mc_161 extends MovieClip { public function mc_161(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 152
//mc_163 (GAME_08_fla.mc_163) package GAME_08_fla { import flash.display.*; public dynamic class mc_163 extends MovieClip { public function mc_163(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 153
//mc_164 (GAME_08_fla.mc_164) package GAME_08_fla { import flash.display.*; public dynamic class mc_164 extends MovieClip { public function mc_164(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package GAME_08_fla
Section 154
//mc_167 (GAME_08_fla.mc_167) package GAME_08_fla { import flash.display.*; public dynamic class mc_167 extends MovieClip { public function mc_167(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((30 * Math.random()))); } } }//package GAME_08_fla
Section 155
//mc_171 (GAME_08_fla.mc_171) package GAME_08_fla { import flash.display.*; public dynamic class mc_171 extends MovieClip { public function mc_171(){ addFrameScript(130, frame131); } function frame131(){ gotoAndPlay("loop"); } } }//package GAME_08_fla
Section 156
//mc_176 (GAME_08_fla.mc_176) package GAME_08_fla { import flash.display.*; public dynamic class mc_176 extends MovieClip { public function mc_176(){ addFrameScript(10, frame11); } function frame11(){ stop(); } } }//package GAME_08_fla
Section 157
//mc_177 (GAME_08_fla.mc_177) package GAME_08_fla { import flash.display.*; import flash.text.*; public dynamic class mc_177 extends MovieClip { public var clock:MovieClip; public var labelText:TextField; public var sandtimer:MovieClip; public var btnHome:MovieClip; public var btnReplay:MovieClip; public var failText:TextField; public var homeText:TextField; public var replayText:TextField; } }//package GAME_08_fla
Section 158
//mc_178 (GAME_08_fla.mc_178) package GAME_08_fla { import flash.display.*; public dynamic class mc_178 extends MovieClip { public function mc_178(){ addFrameScript(29, frame30); } function frame30(){ gotoAndPlay("loop"); } } }//package GAME_08_fla
Section 159
//mc_190 (GAME_08_fla.mc_190) package GAME_08_fla { import flash.display.*; public dynamic class mc_190 extends MovieClip { public function mc_190(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((14 * Math.random()))); } } }//package GAME_08_fla
Section 160
//mc_191 (GAME_08_fla.mc_191) package GAME_08_fla { import flash.display.*; public dynamic class mc_191 extends MovieClip { public function mc_191(){ addFrameScript(0, frame1, 39, frame40, 85, frame86); } function frame86(){ gotoAndPlay((Math.ceil((30 * Math.random())) + 86)); } function frame1(){ gotoAndPlay(Math.ceil((125 * Math.random()))); } function frame40(){ gotoAndPlay((Math.ceil((30 * Math.random())) + 40)); } } }//package GAME_08_fla
Section 161
//mc_192 (GAME_08_fla.mc_192) package GAME_08_fla { import flash.display.*; public dynamic class mc_192 extends MovieClip { public function mc_192(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((14 * Math.random()))); } } }//package GAME_08_fla
Section 162
//mc_193 (GAME_08_fla.mc_193) package GAME_08_fla { import flash.display.*; public dynamic class mc_193 extends MovieClip { public function mc_193(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 163
//mc_194 (GAME_08_fla.mc_194) package GAME_08_fla { import flash.display.*; public dynamic class mc_194 extends MovieClip { public function mc_194(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((14 * Math.random()))); } } }//package GAME_08_fla
Section 164
//mc_198 (GAME_08_fla.mc_198) package GAME_08_fla { import flash.display.*; import flash.text.*; public dynamic class mc_198 extends MovieClip { public var bonusText:TextField; public var clock:MovieClip; public var bonus:TextField; public var sandtimer:MovieClip; public var btnHome:MovieClip; public var hits:TextField; public var btnNext:MovieClip; public var totalText:TextField; public var score:TextField; public var clearLabel:TextField; public var homeText:TextField; public var hitsText:TextField; public var nextText:TextField; } }//package GAME_08_fla
Section 165
//mc_199 (GAME_08_fla.mc_199) package GAME_08_fla { import flash.display.*; public dynamic class mc_199 extends MovieClip { public function mc_199(){ addFrameScript(32, frame33); } function frame33(){ gotoAndPlay("loop"); } } }//package GAME_08_fla
Section 166
//mc_210 (GAME_08_fla.mc_210) package GAME_08_fla { import flash.display.*; public dynamic class mc_210 extends MovieClip { public function mc_210(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 167
//mc_214 (GAME_08_fla.mc_214) package GAME_08_fla { import flash.display.*; public dynamic class mc_214 extends MovieClip { public function mc_214(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 168
//mc_235 (GAME_08_fla.mc_235) package GAME_08_fla { import flash.display.*; public dynamic class mc_235 extends MovieClip { public function mc_235(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((50 * Math.random()))); } } }//package GAME_08_fla
Section 169
//mc_240 (GAME_08_fla.mc_240) package GAME_08_fla { import flash.display.*; public dynamic class mc_240 extends MovieClip { public function mc_240(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 170
//mc_243 (GAME_08_fla.mc_243) package GAME_08_fla { import flash.display.*; import flash.text.*; public dynamic class mc_243 extends MovieClip { public var congratsTitle:TextField; public var totalScore:TextField; public var scoreTxt:TextField; public var congratsTxt:TextField; } }//package GAME_08_fla
Section 171
//mc_248 (GAME_08_fla.mc_248) package GAME_08_fla { import flash.display.*; public dynamic class mc_248 extends MovieClip { public function mc_248(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 172
//mc_25 (GAME_08_fla.mc_25) package GAME_08_fla { import flash.display.*; public dynamic class mc_25 extends MovieClip { public function mc_25(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 173
//mc_26 (GAME_08_fla.mc_26) package GAME_08_fla { import flash.display.*; public dynamic class mc_26 extends MovieClip { public function mc_26(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 174
//mc_28 (GAME_08_fla.mc_28) package GAME_08_fla { import flash.display.*; public dynamic class mc_28 extends MovieClip { public function mc_28(){ addFrameScript(0, frame1, 134, frame135); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } function frame135(){ gotoAndPlay((Math.ceil((30 * Math.random())) + 136)); } } }//package GAME_08_fla
Section 175
//mc_30 (GAME_08_fla.mc_30) package GAME_08_fla { import flash.display.*; public dynamic class mc_30 extends MovieClip { public function mc_30(){ addFrameScript(32, frame33); } function frame33(){ gotoAndPlay("loop"); } } }//package GAME_08_fla
Section 176
//mc_304 (GAME_08_fla.mc_304) package GAME_08_fla { import flash.display.*; public dynamic class mc_304 extends MovieClip { public var rabbidIdle:MovieClip; public var rabbidThrow:MovieClip; public var rabbidReload:MovieClip; public var rabbidFail:MovieClip; public var rabbidSuccess:MovieClip; public function mc_304(){ addFrameScript(0, frame1, 9, frame10, 19, frame20, 29, frame30, 39, frame40, 50, frame51); } function frame10(){ stop(); } function frame1(){ stop(); } function frame20(){ stop(); } function frame30(){ stop(); } function frame40(){ stop(); } function frame51(){ stop(); } } }//package GAME_08_fla
Section 177
//mc_310 (GAME_08_fla.mc_310) package GAME_08_fla { import flash.display.*; public dynamic class mc_310 extends MovieClip { public function mc_310(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((70 * Math.random()))); } } }//package GAME_08_fla
Section 178
//mc_314 (GAME_08_fla.mc_314) package GAME_08_fla { import flash.display.*; public dynamic class mc_314 extends MovieClip { public function mc_314(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 179
//mc_315 (GAME_08_fla.mc_315) package GAME_08_fla { import flash.display.*; public dynamic class mc_315 extends MovieClip { public function mc_315(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 180
//mc_318 (GAME_08_fla.mc_318) package GAME_08_fla { import flash.display.*; import flash.utils.*; import flash.geom.*; import flash.events.*; import flash.text.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.media.*; import flash.printing.*; import flash.system.*; import flash.ui.*; import flash.xml.*; public dynamic class mc_318 extends MovieClip { public function mc_318(){ addFrameScript(0, frame1, 50, frame51); } function frame1(){ if (MovieClip(parent).doLoop){ MovieClip(parent).doLoop = false; gotoAndPlay("loop"); }; } function frame51(){ gotoAndPlay("loop"); } } }//package GAME_08_fla
Section 181
//mc_322 (GAME_08_fla.mc_322) package GAME_08_fla { import flash.display.*; public dynamic class mc_322 extends MovieClip { public function mc_322(){ addFrameScript(0, frame1, 15, frame16); } function frame16(){ MovieClip(parent).gotoAndStop("idle"); } function frame1(){ gotoAndPlay(8); } } }//package GAME_08_fla
Section 182
//mc_323 (GAME_08_fla.mc_323) package GAME_08_fla { import flash.display.*; public dynamic class mc_323 extends MovieClip { public function mc_323(){ addFrameScript(56, frame57); } function frame57(){ gotoAndPlay("loop"); } } }//package GAME_08_fla
Section 183
//mc_326 (GAME_08_fla.mc_326) package GAME_08_fla { import flash.display.*; public dynamic class mc_326 extends MovieClip { public function mc_326(){ addFrameScript(12, frame13); } function frame13(){ stop(); } } }//package GAME_08_fla
Section 184
//mc_332 (GAME_08_fla.mc_332) package GAME_08_fla { import flash.display.*; import flash.utils.*; import flash.geom.*; import flash.events.*; import flash.text.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.media.*; import flash.printing.*; import flash.system.*; import flash.ui.*; import flash.xml.*; public dynamic class mc_332 extends MovieClip { public function mc_332(){ addFrameScript(24, frame25); } function frame25(){ MovieClip(parent).doLoop = true; MovieClip(parent).gotoAndStop("throw"); } } }//package GAME_08_fla
Section 185
//mc_333 (GAME_08_fla.mc_333) package GAME_08_fla { import flash.display.*; public dynamic class mc_333 extends MovieClip { public var enemy3Idle:MovieClip; public var enemy3Hit:MovieClip; public function mc_333(){ addFrameScript(0, frame1, 9, frame10); } function frame10(){ stop(); } function frame1(){ stop(); } } }//package GAME_08_fla
Section 186
//mc_342 (GAME_08_fla.mc_342) package GAME_08_fla { import flash.display.*; public dynamic class mc_342 extends MovieClip { public function mc_342(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 187
//mc_343 (GAME_08_fla.mc_343) package GAME_08_fla { import flash.display.*; public dynamic class mc_343 extends MovieClip { public function mc_343(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 188
//mc_345 (GAME_08_fla.mc_345) package GAME_08_fla { import flash.display.*; public dynamic class mc_345 extends MovieClip { public function mc_345(){ addFrameScript(0, frame1, 34, frame35); } function frame1(){ gotoAndPlay(6); } function frame35(){ stop(); MovieClip(parent.parent).removeChild(MovieClip(parent)); } } }//package GAME_08_fla
Section 189
//mc_350 (GAME_08_fla.mc_350) package GAME_08_fla { import flash.display.*; public dynamic class mc_350 extends MovieClip { public var enemy1Idle:MovieClip; public var enemy1Hit:MovieClip; public function mc_350(){ addFrameScript(0, frame1, 9, frame10); } function frame10(){ stop(); } function frame1(){ stop(); } } }//package GAME_08_fla
Section 190
//mc_354 (GAME_08_fla.mc_354) package GAME_08_fla { import flash.display.*; public dynamic class mc_354 extends MovieClip { public function mc_354(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 191
//mc_360 (GAME_08_fla.mc_360) package GAME_08_fla { import flash.display.*; public dynamic class mc_360 extends MovieClip { public function mc_360(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 192
//mc_363 (GAME_08_fla.mc_363) package GAME_08_fla { import flash.display.*; public dynamic class mc_363 extends MovieClip { public function mc_363(){ addFrameScript(0, frame1, 34, frame35); } function frame1(){ gotoAndPlay(6); } function frame35(){ stop(); MovieClip(parent.parent).removeChild(MovieClip(parent)); } } }//package GAME_08_fla
Section 193
//mc_368 (GAME_08_fla.mc_368) package GAME_08_fla { import flash.display.*; public dynamic class mc_368 extends MovieClip { public var enemy2Hit:MovieClip; public var enemy2Idle:MovieClip; public function mc_368(){ addFrameScript(0, frame1, 9, frame10); } function frame10(){ stop(); } function frame1(){ stop(); } } }//package GAME_08_fla
Section 194
//mc_376 (GAME_08_fla.mc_376) package GAME_08_fla { import flash.display.*; public dynamic class mc_376 extends MovieClip { public function mc_376(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 195
//mc_378 (GAME_08_fla.mc_378) package GAME_08_fla { import flash.display.*; public dynamic class mc_378 extends MovieClip { public function mc_378(){ addFrameScript(0, frame1, 34, frame35); } function frame1(){ gotoAndPlay(6); } function frame35(){ stop(); MovieClip(parent.parent).removeChild(MovieClip(parent)); } } }//package GAME_08_fla
Section 196
//mc_382 (GAME_08_fla.mc_382) package GAME_08_fla { import flash.display.*; public dynamic class mc_382 extends MovieClip { public var enemy2Hit:MovieClip; public var enemy2Idle:MovieClip; public function mc_382(){ addFrameScript(0, frame1, 9, frame10); } function frame10(){ stop(); } function frame1(){ stop(); } } }//package GAME_08_fla
Section 197
//mc_383 (GAME_08_fla.mc_383) package GAME_08_fla { import flash.display.*; public dynamic class mc_383 extends MovieClip { public function mc_383(){ addFrameScript(0, frame1, 118, frame119, 150, frame151); } function frame151(){ gotoAndPlay(Math.ceil((90 * Math.random()))); } function frame1(){ gotoAndPlay(Math.ceil((90 * Math.random()))); } function frame119(){ gotoAndPlay((Math.ceil((60 * Math.random())) + 120)); } } }//package GAME_08_fla
Section 198
//mc_394 (GAME_08_fla.mc_394) package GAME_08_fla { import flash.display.*; public dynamic class mc_394 extends MovieClip { public function mc_394(){ addFrameScript(0, frame1, 34, frame35); } function frame1(){ gotoAndPlay(6); } function frame35(){ stop(); MovieClip(parent.parent).removeChild(MovieClip(parent)); } } }//package GAME_08_fla
Section 199
//mc_44 (GAME_08_fla.mc_44) package GAME_08_fla { import flash.display.*; public dynamic class mc_44 extends MovieClip { public function mc_44(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 200
//mc_48 (GAME_08_fla.mc_48) package GAME_08_fla { import flash.display.*; public dynamic class mc_48 extends MovieClip { public function mc_48(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 201
//mc_55 (GAME_08_fla.mc_55) package GAME_08_fla { import flash.display.*; public dynamic class mc_55 extends MovieClip { public function mc_55(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 202
//mc_56 (GAME_08_fla.mc_56) package GAME_08_fla { import flash.display.*; public dynamic class mc_56 extends MovieClip { public function mc_56(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package GAME_08_fla
Section 203
//mc_74 (GAME_08_fla.mc_74) package GAME_08_fla { import flash.display.*; public dynamic class mc_74 extends MovieClip { public function mc_74(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((30 * Math.random()))); } } }//package GAME_08_fla
Section 204
//mc_85 (GAME_08_fla.mc_85) package GAME_08_fla { import flash.display.*; public dynamic class mc_85 extends MovieClip { public function mc_85(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 205
//mc_86 (GAME_08_fla.mc_86) package GAME_08_fla { import flash.display.*; public dynamic class mc_86 extends MovieClip { public function mc_86(){ addFrameScript(0, frame1); } function frame1(){ gotoAndPlay(Math.ceil((60 * Math.random()))); } } }//package GAME_08_fla
Section 206
//mc_88 (GAME_08_fla.mc_88) package GAME_08_fla { import flash.display.*; public dynamic class mc_88 extends MovieClip { public function mc_88(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package GAME_08_fla
Section 207
//mc_89 (GAME_08_fla.mc_89) package GAME_08_fla { import flash.display.*; public dynamic class mc_89 extends MovieClip { public function mc_89(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package GAME_08_fla
Section 208
//messageBoard_135 (GAME_08_fla.messageBoard_135) package GAME_08_fla { import flash.display.*; import flash.utils.*; import flash.geom.*; import com.greensock.*; import flash.events.*; import flash.text.*; import com.greensock.easing.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.media.*; import flash.printing.*; import flash.system.*; import flash.ui.*; import flash.xml.*; public dynamic class messageBoard_135 extends MovieClip { public var cSTemp:Boolean; public var screens:Array; public var delayTimer:Timer; public var cScreen:uint; public var box:MovieClip; public var fadeBg:MovieClip; public var sTemp:uint; public function messageBoard_135(){ addFrameScript(0, frame1); } public function doNextLevel(_arg1:MouseEvent){ MovieClip(parent).engine.nextLevel(); ridScreen(); } public function popScreen(_arg1:uint, _arg2:Boolean=false){ box.msg.visible = false; box.clr.visible = false; box.fail.visible = false; cScreen = _arg1; screens[_arg1].visible = true; this.visible = true; box.gotoAndStop(_arg1); fadeBg.alpha = 1; if (!_arg2){ TweenLite.from(fadeBg, 0.7, {alpha:0, ease:Strong.easeOut}); }; box.alpha = 1; box.scaleX = 1; box.scaleY = 1; TweenLite.from(box, 1, {scaleX:0.9, scaleY:0.9, ease:Elastic.easeOut}); } public function doReplay(_arg1:MouseEvent){ MovieClip(parent).engine.restartLevel(); ridScreen(); } function frame1(){ stop(); MovieClip(parent).buttonize(box.msg.btnOK); MovieClip(parent).buttonize(box.fail.btnHome); MovieClip(parent).buttonize(box.fail.btnReplay); MovieClip(parent).buttonize(box.clr.btnHome); MovieClip(parent).buttonize(box.clr.btnNext); box.msg.btnOK.addEventListener(MouseEvent.CLICK, startGame, false, 0, true); box.fail.btnHome.addEventListener(MouseEvent.CLICK, goHome, false, 0, true); box.clr.btnHome.addEventListener(MouseEvent.CLICK, goHome, false, 0, true); box.clr.btnNext.addEventListener(MouseEvent.CLICK, doNextLevel, false, 0, true); box.fail.btnReplay.addEventListener(MouseEvent.CLICK, doReplay, false, 0, true); screens = new Array("dsd", box.msg, box.fail, box.clr); cScreen = 1; box.msg.visible = false; box.clr.visible = false; box.fail.visible = false; sTemp = 1; cSTemp = false; delayTimer = new Timer(2000); delayTimer.addEventListener(TimerEvent.TIMER, doTimer, false, 0, true); } public function startGame(_arg1:MouseEvent){ MovieClip(parent).engine.startGame(); ridScreen(); } public function popScreenDelayed(_arg1:uint, _arg2:Boolean=false, _arg3:uint=1000){ sTemp = _arg1; cSTemp = _arg2; delayTimer.delay = _arg3; delayTimer.start(); } public function doTimer(_arg1:TimerEvent){ popScreen(sTemp, cSTemp); delayTimer.stop(); } public function invisMe(){ this.visible = false; } public function ridScreen(){ box.scaleX = 1; box.scaleY = 1; TweenLite.to(box, 0.4, {scaleX:0.3, scaleY:0.3, ease:Strong.easeIn}); fadeBg.alpha = 1; TweenLite.to(fadeBg, 0.4, {alpha:0, ease:Strong.easeIn, onComplete:invisMe}); } public function goHome(_arg1:MouseEvent){ MovieClip(parent).engine.cleanUp(); MovieClip(parent).gotoAndStop("main_menu"); } } }//package GAME_08_fla
Section 209
//msgBox_137 (GAME_08_fla.msgBox_137) package GAME_08_fla { import flash.display.*; public dynamic class msgBox_137 extends MovieClip { public var fail:MovieClip; public var clr:MovieClip; public var msg:MovieClip; } }//package GAME_08_fla
Section 210
//myGrenade_231 (GAME_08_fla.myGrenade_231) package GAME_08_fla { import flash.display.*; public dynamic class myGrenade_231 extends MovieClip { public function myGrenade_231(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package GAME_08_fla
Section 211
//powerArrow_229 (GAME_08_fla.powerArrow_229) package GAME_08_fla { import flash.display.*; public dynamic class powerArrow_229 extends MovieClip { public var powerMask:MovieClip; } }//package GAME_08_fla
Section 212
//Screen_6 (GAME_08_fla.Screen_6) package GAME_08_fla { import flash.display.*; public dynamic class Screen_6 extends MovieClip { public var flagFRA:MovieClip; public var flagUK:MovieClip; public var flagUS:MovieClip; public var rabbidMC:MovieClip; public var flagGER:MovieClip; public var flagSWE:MovieClip; public var flagESP:MovieClip; public var flagITA:MovieClip; public var flagNED:MovieClip; public var flagAUT:MovieClip; } }//package GAME_08_fla
Section 213
//soundBox_4 (GAME_08_fla.soundBox_4) package GAME_08_fla { import flash.display.*; public dynamic class soundBox_4 extends MovieClip { public function soundBox_4(){ addFrameScript(0, frame1, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 9, frame10, 10, frame11, 14, frame15, 19, frame20, 20, frame21, 21, frame22, 22, frame23, 29, frame30, 30, frame31); } public function victory(){ gotoRangeRandom(20, 4); } function frame10(){ gotoAndStop(2); } function frame3(){ gotoAndStop(2); } function frame6(){ gotoAndStop(2); } function frame7(){ gotoAndStop(2); } function frame1(){ stop(); } function frame22(){ gotoAndStop(2); } function frame23(){ gotoAndStop(2); } function frame4(){ gotoAndStop(2); } function frame5(){ gotoAndStop(2); } function frame21(){ gotoAndStop(2); } function frame8(){ gotoAndStop(2); } function frame15(){ gotoAndStop(2); } function frame30(){ gotoAndStop(2); } function frame20(){ gotoAndStop(2); } public function shortScream(){ gotoAndStop(15); } function frame11(){ gotoAndStop(2); } function frame31(){ gotoAndStop(2); } public function explode(){ gotoRangeRandom(30, 2); } public function throwTP(){ gotoRangeRandom(3, 6); } public function scream(){ gotoRangeRandom(10, 2); } public function gotoRangeRandom(_arg1:uint, _arg2:uint){ gotoAndStop((_arg1 + uint((Math.random() * _arg2)))); } } }//package GAME_08_fla
Section 214
//Symbol1_97 (GAME_08_fla.Symbol1_97) package GAME_08_fla { import flash.display.*; import flash.utils.*; import flash.geom.*; import flash.events.*; import flash.text.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.media.*; import flash.printing.*; import flash.system.*; import flash.ui.*; import flash.xml.*; public dynamic class Symbol1_97 extends MovieClip { public function Symbol1_97(){ addFrameScript(0, frame1); } function frame1(){ MovieClip(parent.parent).buttonize(MovieClip(parent).poUS); MovieClip(parent.parent).crampText(MovieClip(parent).bText, MovieClip(parent.parent).langXML.preorder); MovieClip(parent).bText.mouseEnabled = false; trace("AAAAAAAAAAAAAA"); } } }//package GAME_08_fla
Section 215
//Symbol1copy_104 (GAME_08_fla.Symbol1copy_104) package GAME_08_fla { import flash.display.*; import flash.utils.*; import flash.geom.*; import flash.events.*; import flash.text.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.media.*; import flash.printing.*; import flash.system.*; import flash.ui.*; import flash.xml.*; public dynamic class Symbol1copy_104 extends MovieClip { public function Symbol1copy_104(){ addFrameScript(0, frame1); } function frame1(){ MovieClip(parent.parent).buttonize(MovieClip(parent).btn); MovieClip(parent.parent).crampText(MovieClip(parent).btn.bText, MovieClip(parent.parent).langXML.visit); MovieClip(parent).btn.bText.mouseEnabled = false; trace("AAAAAAAAAAAAAA"); } } }//package GAME_08_fla
Section 216
//Color (wumedia.parsers.swf.Color) package wumedia.parsers.swf { public class Color { public var b:uint; public var a:uint; public var r:uint; public var g:uint; public function Color(_arg1:Data, _arg2:Boolean){ r = _arg1.readUnsignedByte(); g = _arg1.readUnsignedByte(); b = _arg1.readUnsignedByte(); if (_arg2){ a = _arg1.readUnsignedByte(); } else { a = 0xFF; }; } public function get color():uint{ return ((((r << 16) | (g << 8)) | b)); } public function toString():String{ return (value.toString(16)); } public function get value():uint{ return (((((a << 24) | (r << 16)) | (g << 8)) | b)); } public function get alpha():Number{ return ((a / 0xFF)); } } }//package wumedia.parsers.swf
Section 217
//Data (wumedia.parsers.swf.Data) package wumedia.parsers.swf { import flash.utils.*; import flash.geom.*; public class Data implements IDataInput { protected var _data:ByteArray; protected var _bitPos:int; protected var _bitBuff:int; public function Data(_arg1:ByteArray){ _data = _arg1; _data.endian = Endian.LITTLE_ENDIAN; synchBits(); } public function readBytes(_arg1:ByteArray, _arg2:uint=0, _arg3:uint=0):void{ synchBits(); _data.readBytes(_arg1, _arg2, _arg3); } public function readShort():int{ synchBits(); return (_data.readShort()); } public function readDouble():Number{ var _local1:ByteArray; var _local2:ByteArray; _local1 = new ByteArray(); _local2 = new ByteArray(); _data.readBytes(_local1, 0, 8); _local2.length = 8; _local2[0] = _local1[3]; _local2[1] = _local1[2]; _local2[2] = _local1[1]; _local2[3] = _local1[0]; _local2[4] = _local1[7]; _local2[5] = _local1[6]; _local2[6] = _local1[5]; _local2[7] = _local1[4]; _local2.position = 0; return (_local2.readDouble()); } public function readUnsignedShort():uint{ synchBits(); return (_data.readUnsignedShort()); } public function readRect():Rectangle{ var _local1:uint; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = readUBits(5); _local2 = (readSBits(_local1) * 0.05); _local3 = (readSBits(_local1) * 0.05); _local4 = (readSBits(_local1) * 0.05); _local5 = (readSBits(_local1) * 0.05); synchBits(); return (new Rectangle(_local2, _local4, (_local3 - _local2), (_local5 - _local4))); } public function get endian():String{ return (_data.endian); } public function get bytesAvailable():uint{ return (_data.bytesAvailable); } public function readSBits(_arg1:uint):int{ var _local2:int; _local2 = readUBits(_arg1); if ((_local2 & (1 << (_arg1 - 1))) != 0){ _local2 = (_local2 | (-1 << _arg1)); }; return (_local2); } public function readUBits(_arg1:uint):uint{ var _local2:int; var _local3:int; var _local4:int; if (_arg1 == 0){ return (0); }; _local2 = _arg1; _local3 = 0; if (_bitPos == 0){ _bitBuff = _data.readUnsignedByte(); _bitPos = 8; }; while (true) { _local4 = (_local2 - _bitPos); if (_local4 > 0){ _local3 = (_local3 | (_bitBuff << _local4)); _local2 = (_local2 - _bitPos); _bitBuff = _data.readUnsignedByte(); _bitPos = 8; } else { _local3 = (_local3 | (_bitBuff >> -(_local4))); _bitPos = (_bitPos - _local2); _bitBuff = (_bitBuff & (0xFF >> (8 - _bitPos))); break; }; }; return (_local3); } public function get position():int{ return (_data.position); } public function get data():ByteArray{ return (_data); } public function readUTF():String{ synchBits(); return (_data.readUTF()); } public function set endian(_arg1:String):void{ _data.endian = _arg1; } public function readBoolean():Boolean{ synchBits(); return (_data.readBoolean()); } public function readByte():int{ synchBits(); return (readByte()); } public function readUnsignedInt():uint{ synchBits(); return (_data.readUnsignedInt()); } public function readString():String{ var _local1:String; var _local2:uint; _local1 = ""; while ((_local2 = readUnsignedByte()) != 0) { _local1 = (_local1 + String.fromCharCode(_local2)); }; return (_local1); } public function readUTFBytes(_arg1:uint):String{ synchBits(); return (_data.readUTFBytes(_arg1)); } public function get objectEncoding():uint{ return (_data.objectEncoding); } public function set position(_arg1:int):void{ _data.position = _arg1; } public function synchBits():void{ _bitBuff = 0; _bitPos = 0; } public function set data(_arg1:ByteArray):void{ _data = _arg1; synchBits(); } public function readUnsignedByte():uint{ synchBits(); return (_data.readUnsignedByte()); } public function set objectEncoding(_arg1:uint):void{ _data.objectEncoding = _arg1; } public function readFloat():Number{ synchBits(); return (_data.readFloat()); } public function readMultiByte(_arg1:uint, _arg2:String):String{ synchBits(); return (_data.readMultiByte(_arg1, _arg2)); } public function readObject(){ synchBits(); return (_data.readObject()); } public function readMatrix():Matrix{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:uint; synchBits(); if (readUBits(1) == 1){ _local7 = readUBits(5); _local1 = (readSBits(_local7) / 65536); _local2 = (readSBits(_local7) / 65536); } else { _local1 = 1; _local2 = 1; }; if (readUBits(1) == 1){ _local7 = readUBits(5); _local3 = (readSBits(_local7) / 65536); _local4 = (readSBits(_local7) / 65536); } else { _local3 = 0; _local4 = 0; }; _local7 = readUBits(5); _local5 = (readSBits(_local7) * 0.05); _local6 = (readSBits(_local7) * 0.05); return (new Matrix(_local1, _local3, _local4, _local2, _local5, _local6)); } public function readInt():int{ synchBits(); return (_data.readInt()); } public function get length():uint{ return (_data.length); } } }//package wumedia.parsers.swf
Section 218
//Edge (wumedia.parsers.swf.Edge) package wumedia.parsers.swf { public class Edge { public var sx:int; public var sy:int; public var cx:int; public var cy:int; public var x:int; public var y:int; public var type:uint; public static const LINE:uint = 1; public static const CURVE:uint = 0; public function Edge(_arg1:uint, _arg2:Data, _arg3:int=0, _arg4:int=0){ this.type = _arg1; if (_arg2){ sx = _arg3; sy = _arg4; if (_arg1 == CURVE){ parseCurve(_arg2); } else { parseLine(_arg2); }; }; } public function reverse():Edge{ var _local1:Edge; _local1 = new Edge(type, null); _local1.x = sx; _local1.y = sy; _local1.cx = cx; _local1.cy = cy; _local1.sx = x; _local1.sy = y; return (_local1); } public function apply(_arg1, _arg2:Number=1, _arg3:Number=0, _arg4:Number=0):void{ if (type == CURVE){ var _local5 = _arg1; _local5["curveTo"](((cx * _arg2) + _arg3), ((cy * _arg2) + _arg4), ((x * _arg2) + _arg3), ((y * _arg2) + _arg4)); } else { _local5 = _arg1; _local5["lineTo"](((x * _arg2) + _arg3), ((y * _arg2) + _arg4)); }; } private function parseCurve(_arg1:Data):void{ var _local2:uint; _local2 = (_arg1.readUBits(4) + 2); cx = (_arg1.readSBits(_local2) + sx); cy = (_arg1.readSBits(_local2) + sy); x = (_arg1.readSBits(_local2) + cx); y = (_arg1.readSBits(_local2) + cy); } private function parseLine(_arg1:Data):void{ var _local2:uint; var _local3:Boolean; var _local4:Boolean; _local2 = (_arg1.readUBits(4) + 2); _local3 = (_arg1.readUBits(1) == 1); if (_local3){ x = (_arg1.readSBits(_local2) + sx); y = (_arg1.readSBits(_local2) + sy); } else { _local4 = (_arg1.readUBits(1) == 1); if (_local4){ x = sx; y = (_arg1.readSBits(_local2) + sy); } else { x = (_arg1.readSBits(_local2) + sx); y = sy; }; }; } } }//package wumedia.parsers.swf
Section 219
//FillStyle (wumedia.parsers.swf.FillStyle) package wumedia.parsers.swf { import flash.display.*; import flash.geom.*; public class FillStyle { private var _method:String; private var _fillMatrix:Matrix; private var _solidColor:Color; public var type:String; private var _arguments:Array; public function FillStyle(_arg1:Data, _arg2:Boolean){ var _local3:int; var _local4:int; var _local5:int; var _local6:Array; var _local7:Array; var _local8:uint; super(); _local4 = _arg1.readUnsignedByte(); if (_local4 == 0){ _solidColor = new Color(_arg1, _arg2); _method = "beginFill"; _arguments = [_solidColor.color, _solidColor.alpha]; type = "FS"; } else { if ((((((_local4 == 16)) || ((_local4 == 18)))) || ((_local4 == 19)))){ _fillMatrix = _arg1.readMatrix(); _local5 = _arg1.readUnsignedByte(); _local6 = new Array(_local5); _local7 = new Array(_local5); _local3 = 0; while (_local3 < _local5) { _local6[_local3] = _arg1.readUnsignedByte(); _local7[_local3] = new Color(_arg1, _arg2); _local3++; }; if (_local4 == 16){ _arguments = [GradientType.LINEAR]; } else { if (_local4 == 18){ _arguments = [GradientType.RADIAL]; } else { _arguments = [GradientType.RADIAL]; }; }; _arguments = _arguments.concat([_local7.map(mapColors), _local7.map(mapAlphas), _local6]); _method = "beginGradientFill"; type = "FG"; } else { if ((((((((_local4 == 64)) || ((_local4 == 65)))) || ((_local4 == 66)))) || ((_local4 == 67)))){ _local8 = _arg1.readUnsignedShort(); _fillMatrix = _arg1.readMatrix(); _method = "beginBitmapFill"; type = "FB"; } else { type = "FS"; _method = "beginFill"; _arguments = [0xFFFFFF]; }; }; }; } public function get method(){ return (_method); } private function mapColors(_arg1:Color, ... _args):uint{ return (_arg1.color); } private function mapAlphas(_arg1:Color, ... _args):uint{ return (_arg1.alpha); } public function apply(_arg1, _arg2:Number=1, _arg3:Number=0, _arg4:Number=0):void{ var mat:Matrix; var graphics = _arg1; var scale = _arg2; var offsetX = _arg3; var offsetY = _arg4; if (graphics["hasOwnProperty"](_method)){ if (type == "FS"){ graphics[_method].apply(null, _arguments); } else { mat = _fillMatrix.clone(); mat.scale(scale, scale); mat.translate(offsetX, offsetY); graphics[_method].apply(null, _arguments.concat(mat)); }; } else { if (graphics["hasOwnProperty"]("beginFill")){ if (type == "FG"){ try { var _local6 = graphics; _local6["beginFill"](_arguments[1][0]); } catch(err:Error) { var _local7 = graphics; _local7["beginFill"](0); }; } else { _local6 = graphics; _local6["beginFill"](0); }; }; }; } } }//package wumedia.parsers.swf
Section 220
//LineStyle (wumedia.parsers.swf.LineStyle) package wumedia.parsers.swf { import flash.display.*; public class LineStyle { public var width:Number; private var _flags:uint; public var type:uint; public var jointStyle:String; public var endCaps:String; public var color:Color; public var startCaps:String; public var miterLimit:Number; public var noClose:Boolean; public static const TYPE_1:uint = 0; public static const TYPE_2:uint = 1; public function LineStyle(_arg1:uint, _arg2:Data, _arg3:Boolean=true){ this.type = _arg1; if (_arg2){ if (_arg1 == TYPE_1){ parseStyle1(_arg2, _arg3); } else { parseStyle2(_arg2, _arg3); }; }; } public function get noVScale():Boolean{ return (!(((_flags & 2) == 0))); } public function get pixelHinting():Boolean{ return (!(((_flags & 1) == 0))); } public function apply(_arg1):void{ if (_arg1["hasOwnProperty"]("lineStyle")){ if (color){ var _local2 = _arg1; _local2["lineStyle"](width, color.color, color.alpha); } else { _local2 = _arg1; _local2["lineStyle"](); }; }; } public function get noHScale():Boolean{ return (!(((_flags & 4) == 0))); } private function parseStyle1(_arg1:Data, _arg2:Boolean=true):void{ width = (_arg1.readUnsignedShort() * 0.05); color = new Color(_arg1, _arg2); } private function parseStyle2(_arg1:Data, _arg2:Boolean=true):void{ var _local3:uint; width = (_arg1.readUnsignedShort() * 0.05); _local3 = _arg1.readUBits(2); if (_local3 == 0){ startCaps = CapsStyle.ROUND; } else { if (_local3 == 1){ startCaps = CapsStyle.NONE; } else { startCaps = CapsStyle.SQUARE; }; }; _local3 = _arg1.readUBits(2); if (_local3 == 0){ jointStyle = JointStyle.ROUND; } else { if (_local3 == 1){ jointStyle = JointStyle.BEVEL; } else { jointStyle = JointStyle.MITER; }; }; _flags = _arg1.readUBits(4); _arg1.readUBits(5); noClose = (_arg1.readUBits(1) == 1); _local3 = _arg1.readUBits(2); if (_local3 == 0){ endCaps = CapsStyle.ROUND; } else { if (_local3 == 1){ endCaps = CapsStyle.NONE; } else { endCaps = CapsStyle.SQUARE; }; }; if (jointStyle == JointStyle.MITER){ miterLimit = (_arg1.readUnsignedShort() * 0.05); }; if (hasFill){ } else { color = new Color(_arg1, _arg2); }; } public function get hasFill():Boolean{ return (!(((_flags & 8) == 0))); } } }//package wumedia.parsers.swf
Section 221
//ShapeRecord (wumedia.parsers.swf.ShapeRecord) package wumedia.parsers.swf { import flash.display.*; import flash.geom.*; public class ShapeRecord { private var _hasAlpha:Boolean; private var _fillBits:uint; private var _fill1Index:uint; private var _fill0:Array; private var _fills:Array; private var _bounds:Rectangle; private var _elements:Array; private var _hasExtendedFill:Boolean; private var _hasStyle:Boolean; private var _fill1:Array; private var _hasStateNewStyle:Boolean; private var _fill0Index:uint; private var _tagType:uint; private var _lineBits:uint; private static var _shape:Shape = new Shape(); public function ShapeRecord(_arg1:Data, _arg2:uint){ _tagType = _arg2; _hasStyle = (((((((_tagType == TagTypes.DEFINE_SHAPE)) || ((_tagType == TagTypes.DEFINE_SHAPE2)))) || ((_tagType == TagTypes.DEFINE_SHAPE3)))) || ((_tagType == TagTypes.DEFINE_SHAPE4))); _hasAlpha = (((_tagType == TagTypes.DEFINE_SHAPE3)) || ((_tagType == TagTypes.DEFINE_SHAPE4))); _hasExtendedFill = (((((_tagType == TagTypes.DEFINE_SHAPE2)) || ((_tagType == TagTypes.DEFINE_SHAPE3)))) || ((_tagType == TagTypes.DEFINE_SHAPE4))); _hasStateNewStyle = (((((_tagType == TagTypes.DEFINE_SHAPE2)) || ((_tagType == TagTypes.DEFINE_SHAPE3)))) || ((_tagType == TagTypes.DEFINE_SHAPE4))); parse(_arg1); if (_elements.length > 0){ calculateBounds(); } else { _bounds = new Rectangle(0, 0, 0, 0); }; } private function calculateBounds():void{ var _local1:Graphics; _local1 = _shape.graphics; _local1.clear(); _local1.beginFill(0); drawShape(_local1, this); _local1.endFill(); _bounds = _shape.getRect(_shape); } public function get bounds():Rectangle{ return (_bounds); } private function queueEdges():void{ if (_fill0){ _fills[_fill0Index] = _fills[_fill0Index].concat(_fill0); }; if (_fill1){ _fills[_fill1Index] = _fills[_fill1Index].concat(_fill1); }; } private function sortEdges(_arg1:Array):Array{ var _local2:int; var _local3:int; var _local4:Array; var _local5:Edge; _local4 = [_arg1.shift()]; while (_arg1.length > 0) { _local5 = _arg1.pop(); _local4.push(_local5); _local3 = _arg1.length; while (--_local3 > -1) { _local2 = _arg1.length; while (--_local2 > -1) { if ((((_local5.x == _arg1[_local2].sx)) && ((_local5.y == _arg1[_local2].sy)))){ _local5 = _arg1.splice(_local2, 1)[0]; _local4.push(_local5); continue; }; }; }; }; return (_local4); } private function saveEdges():void{ var _local1:int; var _local2:int; queueEdges(); _local2 = _fills.length; _local1 = -1; while (++_local1 < _local2) { _fills[_local1] = sortEdges(_fills[_local1]); _elements = _elements.concat(_fills[_local1]); }; _fills = new Array(); } public function get elements():Array{ return (_elements); } private function parse(_arg1:Data):void{ var _local2:Boolean; var _local3:Boolean; var _local4:Boolean; var _local5:Boolean; var _local6:Boolean; var _local7:uint; var _local8:int; var _local9:int; var _local10:int; var _local11:uint; var _local12:int; var _local13:int; var _local14:Edge; var _local15:uint; _local12 = 0; _local13 = 0; _elements = new Array(); _fills = new Array(); _arg1.synchBits(); if (_hasStyle){ parseStyles(_arg1); _arg1.synchBits(); } else { _fills = [[]]; _fill0 = []; _fill0Index = 0; }; _fillBits = _arg1.readUBits(4); _lineBits = _arg1.readUBits(4); while (true) { _local15 = _arg1.readUBits(1); if (_local15 == 1){ _local14 = new Edge(((_arg1.readUBits(1) == 0)) ? Edge.CURVE : Edge.LINE, _arg1, _local12, _local13); if (_fill0){ _fill0.push(_local14.reverse()); }; if (_fill1){ _fill1.push(_local14); }; _local12 = _local14.x; _local13 = _local14.y; } else { _local11 = _arg1.readUBits(5); if (_local11 == 0){ break; }; _local2 = !(((_local11 & 1) == 0)); _local3 = !(((_local11 & 2) == 0)); _local4 = !(((_local11 & 4) == 0)); _local5 = !(((_local11 & 8) == 0)); _local6 = !(((_local11 & 16) == 0)); if (_local2){ _local7 = _arg1.readUBits(5); _local12 = _arg1.readSBits(_local7); _local13 = _arg1.readSBits(_local7); }; if (_local3){ _local8 = _arg1.readUBits(_fillBits); }; if (_local4){ _local9 = _arg1.readUBits(_fillBits); }; if (_local5){ _local10 = _arg1.readUBits(_lineBits); }; if (_hasStyle){ queueEdges(); _fill0Index = (_local8 - 1); if ((((_local8 > 0)) && (_fills[_fill0Index]))){ _fill0 = []; } else { _fill0 = null; }; _fill1Index = (_local9 - 1); if ((((_local9 > 0)) && (_fills[_fill1Index]))){ _fill1 = []; } else { _fill1 = null; }; }; if (((_hasStateNewStyle) && (_local6))){ parseStyles(_arg1); _fillBits = _arg1.readUBits(4); _lineBits = _arg1.readUBits(4); }; }; }; saveEdges(); } private function parseStyles(_arg1:Data):void{ var _local2:int; var _local3:int; saveEdges(); _local3 = _arg1.readUnsignedByte(); if (((_hasExtendedFill) && ((_local3 == 0xFF)))){ _local3 = _arg1.readUnsignedShort(); }; _local2 = 0; while (_local2 < _local3) { _fills.push([new FillStyle(_arg1, _hasAlpha)]); _local2++; }; _local3 = _arg1.readUnsignedByte(); if (_local3 == 0xFF){ _local3 = _arg1.readUnsignedShort(); }; _local2 = 0; while (_local2 < _local3) { new LineStyle(((_tagType == TagTypes.DEFINE_SHAPE4)) ? LineStyle.TYPE_2 : LineStyle.TYPE_1, _arg1, _hasAlpha); _local2++; }; } public static function getPoints(_arg1:ShapeRecord, _arg2:Number=1):Array{ var _local3:Array; var _local4:Array; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:Edge; _local3 = new Array(); _local4 = _arg1._elements; _local5 = -1; _local6 = _local4.length; _local7 = 0; _local8 = 0; _arg2 = (_arg2 * 0.05); while (++_local5 < _local6) { if ((_local4[_local5] is Edge)){ _local9 = _local4[_local5]; _local3.push(new Point((_local9.x * _arg2), (_local9.y * _arg2))); _local7 = _local9.x; _local8 = _local9.y; }; }; return (_local3); } public static function drawShape(_arg1, _arg2:ShapeRecord, _arg3:Number=1, _arg4:Number=0, _arg5:Number=0):void{ var _local6:Array; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:Edge; _local6 = _arg2._elements; _local7 = -1; _local8 = _local6.length; _local9 = 0; _local10 = 0; _arg3 = (_arg3 * 0.05); while (++_local7 < _local8) { if ((_local6[_local7] is Edge)){ _local11 = _local6[_local7]; if (((!((_local9 == _local11.sx))) || (!((_local10 == _local11.sy))))){ var _local12 = _arg1; _local12["moveTo"]((_arg4 + (_local11.sx * _arg3)), (_arg5 + (_local11.sy * _arg3))); }; _local11.apply(_arg1, _arg3, _arg4, _arg5); _local9 = _local11.x; _local10 = _local11.y; } else { if ((_local6[_local7] is FillStyle)){ (_local6[_local7] as FillStyle).apply(_arg1, _arg3, _arg4, _arg5); }; }; }; } } }//package wumedia.parsers.swf
Section 222
//SWFParser (wumedia.parsers.swf.SWFParser) package wumedia.parsers.swf { import flash.utils.*; import flash.geom.*; public class SWFParser { protected var _size:uint; protected var _rect:Rectangle; protected var _frames:uint; protected var _data:Data; protected var _frameRate:uint; protected var _version:uint; public function SWFParser(_arg1:ByteArray){ var _local2:String; var _local3:ByteArray; super(); if (_arg1){ _arg1.position = 0; _local2 = _arg1.readUTFBytes(3); _version = _arg1.readUnsignedByte(); _size = _arg1.readUnsignedInt(); _data = new Data(_arg1); if (_local2 == "CWS"){ _local3 = new ByteArray(); _data.readBytes(_local3); _local3.position = 0; _local3.uncompress(); _local3.position = 0; _data = new Data(_local3); }; _rect = _data.readRect(); _frameRate = (_data.readUnsignedShort() >> 8); _frames = _data.readShort(); }; } public function get data():Data{ return (_data); } public function get rect():Rectangle{ return (_rect); } public function get size():uint{ return (_size); } public function parseTags(_arg1, _arg2:Boolean, _arg3:uint=0, _arg4:Data=null):Array{ var _local5:int; var _local6:uint; var _local7:uint; var _local8:uint; var _local9:Array; var _local10:Tag; var _local11:ByteArray; if (_arg4 == null){ _arg4 = _data; }; _local5 = -1; _local8 = _arg4.position; _local9 = []; while (((_arg4.bytesAvailable) && (!((_local5 == _arg3))))) { _local5 = _arg4.readUnsignedShort(); _local6 = (_local5 & 63); if (_local6 == 63){ _local6 = _arg4.readUnsignedInt(); }; _local5 = (_local5 >> 6); _local7 = _arg4.position; if ((((_local5 == _arg1)) || (((_arg1 is Array)) ? !(((_arg1 as Array).indexOf(_local5) == -1)) : false))){ _local10 = new Tag(_local5, _arg4.position, _local6); if (_arg2){ _local11 = new ByteArray(); _arg4.readBytes(_local11, 0, _local10.length); _local11.position = 0; _local10.data = new Data(_local11); }; _local9.push(_local10); }; if (_arg4.position == _local7){ _arg4.position = (_arg4.position + _local6); }; }; _arg4.position = _local8; return (_local9); } public function get frameRate():uint{ return (_frameRate); } public function get frames():uint{ return (_frames); } public function get ver():uint{ return (_version); } } }//package wumedia.parsers.swf
Section 223
//Tag (wumedia.parsers.swf.Tag) package wumedia.parsers.swf { public class Tag { public var data:Data; public var length:uint; public var position:uint; public var type:int; public function Tag(_arg1:uint=0, _arg2:uint=0, _arg3:uint=0){ this.type = _arg1; this.position = _arg2; this.length = _arg3; } } }//package wumedia.parsers.swf
Section 224
//TagTypes (wumedia.parsers.swf.TagTypes) package wumedia.parsers.swf { public class TagTypes { public static const SYMBOL_CLASS:uint = 76; public static const DEFINE_BITS:uint = 6; public static const SCRIPT_LIMITS:uint = 65; public static const CSM_TEXT_SETTINGS:uint = 74; public static const DEFINE_FONT_INFO:uint = 13; public static const DEFINE_MORPH_SHAPE2:uint = 84; public static const JPEG_TABLES:uint = 8; public static const DEFINE_TEXT2:uint = 33; public static const SOUND_STREAM_HEAD2:uint = 45; public static const METADATA:uint = 77; public static const DEFINE_TEXT:uint = 11; public static const DEFINE_BUTTON:uint = 7; public static const REMNOVE_OBJECT2:uint = 28; public static const DEFINE_FONT2:uint = 48; public static const DEFINE_FONT3:uint = 75; public static const DEFINE_FONT4:uint = 91; public static const DEFINE_BUTTON_CX_FORM:uint = 23; public static const SOUND_STREAM_BLOCK:uint = 19; public static const SET_BACKGROUND_COLOR:uint = 9; public static const DEFINE_FONT:uint = 10; public static const DEFINE_BITS_JPEG2:uint = 21; public static const DEFINE_BITS_JPEG4:uint = 90; public static const DEFINE_FONT_INFO2:uint = 62; public static const REMOVE_OBJECT:uint = 5; public static const DEFINE_BITS_JPEG3:uint = 35; public static const DEFINE_FONT_ALIGN_ZONES:uint = 73; public static const FRAME_LABEL:uint = 43; public static const DO_ACTION:uint = 12; public static const DEFINE_SOUND:uint = 14; public static const EXPORT_ASSETS:uint = 56; public static const ENABLE_DEBUGGER2:uint = 64; public static const PLACE_OBJECT2:uint = 26; public static const ENABLE_DEBUGGER:uint = 58; public static const DEFINE_BITS_LOSSLESS2:uint = 36; public static const IMPORT_ASSETS2:uint = 71; public static const SHOW_FRAME:uint = 1; public static const DO_ABC:uint = 82; public static const DO_INIT_ACTION:uint = 59; public static const PLACE_OBJECT3:uint = 70; public static const PLACE_OBJECT:uint = 4; public static const DEFINE_BINARY_DATA:uint = 87; public static const SET_TAB_INDEX:uint = 66; public static const DEFINE_BUTTON_SOUND:uint = 17; public static const PROTECT:uint = 24; public static const START_SOUND:uint = 15; public static const END:uint = 0; public static const DEFINE_BUTTON2:uint = 34; public static const DEFINE_EDIT_TEXT:uint = 37; public static const START_SOUND2:uint = 89; public static const DEFINE_SCALIGN_GRID:uint = 78; public static const DEFINE_SPRITE:uint = 39; public static const IMOPRT_ASSETS:uint = 57; public static const DEFINE_BITS_LOSSLESS:uint = 20; public static const DEFINE_SHAPE2:uint = 22; public static const DEFINE_SHAPE4:uint = 83; public static const DEFINE_SHAPE3:uint = 32; public static const VIDEO_STREAM:uint = 61; public static const DEFINE_MORPH_SHAPE:uint = 46; public static const DEFINE_VIDEO_STREAM:uint = 60; public static const DEFINE_SCENE_AND_FRAME_LABEL_DATA:uint = 86; public static const SOUND_STREAM_HEAD:uint = 18; public static const DEFINE_FONT_NAME:uint = 88; public static const FILE_ATTRIBUTES:uint = 69; public static const DEFINE_SHAPE:uint = 2; } }//package wumedia.parsers.swf
Section 225
//VectorShapes (wumedia.vector.VectorShapes) package wumedia.vector { import wumedia.parsers.swf.*; import flash.utils.*; import flash.geom.*; public class VectorShapes { private static var _library:Object = new Object(); public function VectorShapes(){ throw (new Error((getQualifiedClassName(this) + " can not be instantiated"))); } public static function draw(_arg1, _arg2:String, _arg3:Number=1, _arg4:Number=0, _arg5:Number=0):void{ if (_library[_arg2]){ ShapeRecord.drawShape(_arg1, _library[_arg2], _arg3, _arg4, _arg5); } else { trace((("ERROR: missing " + _arg2) + " vector")); }; } private static function getShapeFromPlaceTags(_arg1:SWFParser, _arg2:Array):Tag{ var lib:Array; var swf = _arg1; var placeTags = _arg2; lib = swf.parseTags([TagTypes.DEFINE_SHAPE, TagTypes.DEFINE_SHAPE2, TagTypes.DEFINE_SHAPE3, TagTypes.DEFINE_SHAPE4], true).filter(function (_arg1:Tag, ... _args):Boolean{ var _local3:*; _local3 = _arg1.data.readUnsignedShort(); _arg1.data.position = 0; return (!((placeTags.indexOf(_local3) == -1))); }); return (lib[0]); } private static function parsePlacetags(_arg1:Array):Array{ var _local2:Array; var _local3:int; var _local4:int; var _local5:uint; var _local6:Matrix; var _local7:Data; var _local8:uint; var _local9:uint; _local2 = []; _local3 = -1; _local4 = _arg1.length; while (++_local3 < _local4) { _local7 = _arg1[_local3].data; _local8 = _arg1[_local3].type; if (_local8 == TagTypes.PLACE_OBJECT){ _local5 = _local7.readUnsignedShort(); _local7.readUnsignedShort(); _local6 = _local7.readMatrix(); } else { if (_local8 == TagTypes.PLACE_OBJECT2){ _local7.readUBits(8); _local7.readUnsignedShort(); _local5 = _local7.readUnsignedShort(); _local6 = _local7.readMatrix(); } else { if (_local8 == TagTypes.PLACE_OBJECT3){ _local9 = _local7.readUBits(16); _local7.readUnsignedShort(); if (((((!(((_local9 & 8) == 0))) || (!(((_local9 & 16) == 0))))) || (!(((_local9 & 0x0200) == 0))))){ _local7.readString(); }; _local5 = _local7.readUnsignedShort(); _local6 = _local7.readMatrix(); } else { _local5 = 0; }; }; }; if (_local5 != 0){ _local2.push(_local5); _local2.push(_local6); }; }; return (_local2); } private static function parseClassIdTable(_arg1:SWFParser):Object{ var _local2:Object; var _local3:Array; var _local4:Data; var _local5:uint; var _local6:int; var _local7:uint; var _local8:String; _local2 = {}; _local3 = _arg1.parseTags(TagTypes.SYMBOL_CLASS, true); if (_local3.length != 1){ return (_local2); }; _local4 = _local3[0].data; _local5 = _local4.readUnsignedShort(); _local6 = -1; while (++_local6 < _local5) { _local7 = _local4.readUnsignedShort(); _local8 = _local4.readString(); _local2[_local7] = _local8; }; return (_local2); } private static function shiftDataPosToShapeRecord(_arg1:Data, _arg2:uint):void{ _arg1.readUnsignedShort(); _arg1.readRect(); if (_arg2 == TagTypes.DEFINE_SHAPE4){ _arg1.readRect(); _arg1.readUBits(5); _arg1.readUBits(1); _arg1.readUBits(1); _arg1.readUBits(1); }; } public static function extractFromLibrary(_arg1:ByteArray, _arg2:Array):void{ var swf:SWFParser; var classes:Object; var sprites:Array; var i:int; var l:int; var placeTags:Array; var defineShape:Tag; var spriteId:uint; var bytes = _arg1; var ids = _arg2; try { swf = new SWFParser(bytes); classes = parseClassIdTable(swf); sprites = swf.parseTags([TagTypes.DEFINE_SPRITE], true).filter(function (_arg1:Tag, ... _args):Boolean{ var _local3:*; _local3 = _arg1.data.readUnsignedShort(); _arg1.data.position = (_arg1.data.position - 2); return (!((ids.indexOf(classes[_local3]) == -1))); }); i = -1; l = sprites.length; while ((i = (i + 1)), (i + 1) < l) { sprites[i].data.readUnsignedInt(); placeTags = parsePlacetags(swf.parseTags([TagTypes.PLACE_OBJECT, TagTypes.PLACE_OBJECT2, TagTypes.PLACE_OBJECT3], true, 1, sprites[i].data)); defineShape = getShapeFromPlaceTags(swf, placeTags); if (defineShape){ sprites[i].data.position = 0; spriteId = sprites[i].data.readUnsignedShort(); defineShape.data.position = 0; shiftDataPosToShapeRecord(defineShape.data, defineShape.type); if (!_library[classes[spriteId]]){ _library[classes[spriteId]] = new ShapeRecord(defineShape.data, defineShape.type); } else { trace((("WARNING: vector shape with id " + classes[spriteId]) + " already exists. skipping.")); }; }; }; } catch(err:Error) { trace("**************************************************"); trace("** Error: unable to extract vectors from swf bytes"); trace(err.getStackTrace()); trace("**************************************************"); }; } public static function extractFromStage(_arg1:ByteArray, _arg2:String):void{ var swf:SWFParser; var placeTags:Array; var defineShape:Tag; var bytes = _arg1; var id = _arg2; try { swf = new SWFParser(bytes); placeTags = parsePlacetags(swf.parseTags([TagTypes.PLACE_OBJECT, TagTypes.PLACE_OBJECT2, TagTypes.PLACE_OBJECT3], true, 1)); defineShape = getShapeFromPlaceTags(swf, placeTags); if (defineShape){ defineShape.data.position = 0; shiftDataPosToShapeRecord(defineShape.data, defineShape.type); if (!_library[id]){ _library[id] = new ShapeRecord(defineShape.data, defineShape.type); } else { trace((("WARNING: vector shape with id " + id) + " already exists, skipping.")); }; } else { throw (new Error("no shapes found")); }; } catch(err:Error) { trace("**************************************************"); trace("** Error: unable to extract vectors from swf bytes"); trace(err.getStackTrace()); trace("**************************************************"); }; } public static function getPoints(_arg1:String, _arg2:Number=1):Array{ if (_library[_arg1]){ return (ShapeRecord.getPoints(_library[_arg1], _arg2)); }; trace((("ERROR: missing " + _arg1) + " vector")); return (null); } public static function get library():Object{ return (_library); } } }//package wumedia.vector
Section 226
//level01 (level01) package { import flash.display.*; public dynamic class level01 extends MovieClip { public var FG:MovieClip; } }//package
Section 227
//level02 (level02) package { import flash.display.*; public dynamic class level02 extends MovieClip { public var FG:MovieClip; public function level02(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 228
//level03 (level03) package { import flash.display.*; public dynamic class level03 extends MovieClip { public var FG:MovieClip; public function level03(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 229
//level04 (level04) package { import flash.display.*; public dynamic class level04 extends MovieClip { public var FG:MovieClip; public function level04(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 230
//level05 (level05) package { import flash.display.*; public dynamic class level05 extends MovieClip { public var FG:MovieClip; public function level05(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 231
//level06 (level06) package { import flash.display.*; public dynamic class level06 extends MovieClip { public var FG:MovieClip; public function level06(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 232
//level07 (level07) package { import flash.display.*; public dynamic class level07 extends MovieClip { public var FG:MovieClip; public function level07(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 233
//level08 (level08) package { import flash.display.*; public dynamic class level08 extends MovieClip { public var FG:MovieClip; public function level08(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 234
//level09 (level09) package { import flash.display.*; public dynamic class level09 extends MovieClip { public var FG:MovieClip; public function level09(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 235
//level10 (level10) package { import flash.display.*; public dynamic class level10 extends MovieClip { public var FG:MovieClip; public function level10(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 236
//level11 (level11) package { import flash.display.*; public dynamic class level11 extends MovieClip { public var FG:MovieClip; public function level11(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 237
//level12 (level12) package { import flash.display.*; public dynamic class level12 extends MovieClip { public var FG:MovieClip; public function level12(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 238
//level13 (level13) package { import flash.display.*; public dynamic class level13 extends MovieClip { public var FG:MovieClip; public function level13(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 239
//level14 (level14) package { import flash.display.*; public dynamic class level14 extends MovieClip { public var FG:MovieClip; public function level14(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 240
//level15 (level15) package { import flash.display.*; public dynamic class level15 extends MovieClip { public var FG:MovieClip; public function level15(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 241
//level16 (level16) package { import flash.display.*; public dynamic class level16 extends MovieClip { public var FG:MovieClip; public function level16(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 242
//level17 (level17) package { import flash.display.*; public dynamic class level17 extends MovieClip { public var FG:MovieClip; public function level17(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 243
//level18 (level18) package { import flash.display.*; public dynamic class level18 extends MovieClip { public var FG:MovieClip; public function level18(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 244
//props (props) package { import flash.display.*; public dynamic class props extends MovieClip { public var rabbid:MovieClip; public var enemy:MovieClip; public function props(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 245
//tpExplode (tpExplode) package { import flash.display.*; public dynamic class tpExplode extends MovieClip { public var str6:MovieClip; public function tpExplode(){ addFrameScript(0, frame1, 34, frame35); } function frame1(){ gotoAndPlay(5); } function frame35(){ stop(); MovieClip(parent).removeChild(this); } } }//package

Library Items

Symbol 1 GraphicUsed by:2
Symbol 2 MovieClipUses:1Used by:36 47 48 53 68 69
Symbol 3 GraphicUsed by:4
Symbol 4 MovieClipUses:3Used by:36 47 48 53 68 69
Symbol 5 GraphicUsed by:6
Symbol 6 MovieClipUses:5Used by:35 36 47 48 68
Symbol 7 GraphicUsed by:8 58
Symbol 8 MovieClipUses:7Used by:36 47 48 53 68
Symbol 9 GraphicUsed by:10
Symbol 10 MovieClipUses:9Used by:32 47 48 53 67
Symbol 11 GraphicUsed by:12
Symbol 12 MovieClipUses:11Used by:32 47 48 53 67
Symbol 13 GraphicUsed by:14
Symbol 14 MovieClipUses:13Used by:32 47 48 53 67
Symbol 15 GraphicUsed by:21
Symbol 16 GraphicUsed by:21 1081
Symbol 17 GraphicUsed by:21
Symbol 18 GraphicUsed by:21 1081
Symbol 19 GraphicUsed by:21 1081
Symbol 20 GraphicUsed by:21 1081
Symbol 21 MovieClip {GAME_08_fla.mc_314}Uses:15 16 17 18 19 20Used by:32 47 48 53
Symbol 22 GraphicUsed by:31
Symbol 23 GraphicUsed by:31 788
Symbol 24 GraphicUsed by:31 788
Symbol 25 GraphicUsed by:31 788
Symbol 26 GraphicUsed by:31 788
Symbol 27 GraphicUsed by:31
Symbol 28 GraphicUsed by:31
Symbol 29 GraphicUsed by:31
Symbol 30 GraphicUsed by:31
Symbol 31 MovieClip {GAME_08_fla.mc_315}Uses:22 23 24 25 26 27 28 29 30Used by:32 47 53
Symbol 32 MovieClip {GAME_08_fla.mc_310}Uses:10 12 14 21 31Used by:36 48 68
Symbol 33 GraphicUsed by:34 339
Symbol 34 MovieClipUses:33Used by:35 47 48
Symbol 35 MovieClipUses:6 34Used by:36 48
Symbol 36 MovieClipUses:2 4 6 8 32 35Used by:70
Symbol 37 GraphicUsed by:38
Symbol 38 MovieClipUses:37Used by:47 53
Symbol 39 GraphicUsed by:40
Symbol 40 MovieClipUses:39Used by:47
Symbol 41 GraphicUsed by:47
Symbol 42 GraphicUsed by:47
Symbol 43 GraphicUsed by:47
Symbol 44 GraphicUsed by:47
Symbol 45 GraphicUsed by:46
Symbol 46 MovieClipUses:45Used by:47 48
Symbol 47 MovieClip {GAME_08_fla.mc_318}Uses:6 2 4 8 12 10 14 21 31 34 38 40 41 42 43 44 46Used by:70
Symbol 48 MovieClip {GAME_08_fla.mc_322}Uses:2 4 6 8 12 10 14 21 46 34 32 35Used by:70
Symbol 49 GraphicUsed by:50
Symbol 50 MovieClipUses:49Used by:53
Symbol 51 GraphicUsed by:52
Symbol 52 MovieClipUses:51Used by:53
Symbol 53 MovieClip {GAME_08_fla.mc_323}Uses:2 4 50 8 12 10 14 21 31 38 52Used by:70
Symbol 54 GraphicUsed by:56
Symbol 55 GraphicUsed by:56
Symbol 56 MovieClipUses:54 55Used by:68 69
Symbol 57 GraphicUsed by:58
Symbol 58 MovieClipUses:7 57Used by:68 69
Symbol 59 GraphicUsed by:63
Symbol 60 GraphicUsed by:63
Symbol 61 GraphicUsed by:63
Symbol 62 GraphicUsed by:63
Symbol 63 MovieClipUses:59 60 61 62Used by:67
Symbol 64 GraphicUsed by:66
Symbol 65 GraphicUsed by:66
Symbol 66 MovieClipUses:64 65Used by:67
Symbol 67 MovieClipUses:10 12 14 63 66Used by:68 69
Symbol 68 MovieClip {GAME_08_fla.mc_326}Uses:2 4 6 8 32 56 58 67Used by:70
Symbol 69 MovieClip {GAME_08_fla.mc_332}Uses:2 4 56 58 67Used by:70
Symbol 70 MovieClip {GAME_08_fla.mc_304}Uses:36 47 48 53 68 69Used by:234
Symbol 71 GraphicUsed by:72
Symbol 72 MovieClipUses:71Used by:106 112 115
Symbol 73 GraphicUsed by:74
Symbol 74 MovieClipUses:73Used by:106 115
Symbol 75 GraphicUsed by:88
Symbol 76 ShapeTweeningUsed by:86
Symbol 77 ShapeTweeningUsed by:86
Symbol 78 GraphicUsed by:86
Symbol 79 GraphicUsed by:80
Symbol 80 MovieClipUses:79Used by:86
Symbol 81 ShapeTweeningUsed by:86
Symbol 82 ShapeTweeningUsed by:86
Symbol 83 ShapeTweeningUsed by:86
Symbol 84 ShapeTweeningUsed by:86
Symbol 85 GraphicUsed by:86
Symbol 86 MovieClipUses:76 77 78 80 81 82 83 84 85Used by:88
Symbol 87 GraphicUsed by:88
Symbol 88 MovieClipUses:75 86 87Used by:106 115
Symbol 89 GraphicUsed by:90
Symbol 90 MovieClipUses:89Used by:106 115
Symbol 91 GraphicUsed by:102
Symbol 92 GraphicUsed by:100
Symbol 93 GraphicUsed by:100
Symbol 94 GraphicUsed by:100
Symbol 95 GraphicUsed by:100
Symbol 96 GraphicUsed by:100
Symbol 97 GraphicUsed by:100
Symbol 98 GraphicUsed by:100
Symbol 99 GraphicUsed by:100
Symbol 100 MovieClip {GAME_08_fla.mc_342}Uses:92 93 94 95 96 97 98 99Used by:102
Symbol 101 GraphicUsed by:102
Symbol 102 MovieClipUses:91 100 101Used by:106 115
Symbol 103 GraphicUsed by:104
Symbol 104 MovieClipUses:103Used by:105
Symbol 105 MovieClip {GAME_08_fla.mc_343}Uses:104Used by:106 115
Symbol 106 MovieClipUses:72 74 88 90 102 105Used by:116
Symbol 107 GraphicUsed by:108 145
Symbol 108 MovieClipUses:107Used by:112
Symbol 109 GraphicUsed by:110
Symbol 110 MovieClipUses:109Used by:112
Symbol 111 GraphicUsed by:112
Symbol 112 MovieClipUses:72 108 110 111Used by:115
Symbol 113 GraphicUsed by:114
Symbol 114 MovieClipUses:113Used by:115
Symbol 115 MovieClip {GAME_08_fla.mc_345}Uses:72 74 88 90 102 105 112 114Used by:116
Symbol 116 MovieClip {GAME_08_fla.mc_333}Uses:106 115Used by:234
Symbol 117 GraphicUsed by:118
Symbol 118 MovieClipUses:117Used by:144 149 152
Symbol 119 GraphicUsed by:120
Symbol 120 MovieClipUses:119Used by:144 152
Symbol 121 GraphicUsed by:122
Symbol 122 MovieClipUses:121Used by:125
Symbol 123 GraphicUsed by:124
Symbol 124 MovieClipUses:123Used by:125
Symbol 125 MovieClip {GAME_08_fla.mc_354}Uses:122 124Used by:144 152
Symbol 126 GraphicUsed by:127
Symbol 127 MovieClipUses:126Used by:144 152
Symbol 128 GraphicUsed by:129
Symbol 129 MovieClipUses:128Used by:144 152
Symbol 130 GraphicUsed by:139
Symbol 131 GraphicUsed by:138
Symbol 132 GraphicUsed by:138
Symbol 133 GraphicUsed by:138
Symbol 134 GraphicUsed by:138
Symbol 135 GraphicUsed by:138
Symbol 136 GraphicUsed by:138
Symbol 137 GraphicUsed by:138
Symbol 138 MovieClip {GAME_08_fla.mc_360}Uses:131 132 133 134 135 136 137Used by:139
Symbol 139 MovieClipUses:130 138Used by:144 152
Symbol 140 GraphicUsed by:141
Symbol 141 MovieClipUses:140Used by:144 152
Symbol 142 GraphicUsed by:143
Symbol 143 MovieClipUses:142Used by:144 152
Symbol 144 MovieClipUses:118 120 125 127 129 139 141 143Used by:153
Symbol 145 MovieClipUses:107Used by:149
Symbol 146 GraphicUsed by:149
Symbol 147 GraphicUsed by:148
Symbol 148 MovieClipUses:147Used by:149
Symbol 149 MovieClipUses:118 145 146 148Used by:152
Symbol 150 GraphicUsed by:151
Symbol 151 MovieClipUses:150Used by:152
Symbol 152 MovieClip {GAME_08_fla.mc_363}Uses:118 120 125 127 129 139 141 143 149 151Used by:153
Symbol 153 MovieClip {GAME_08_fla.mc_350}Uses:144 152Used by:234
Symbol 154 GraphicUsed by:155
Symbol 155 MovieClipUses:154Used by:169 175 176 200
Symbol 156 GraphicUsed by:157
Symbol 157 MovieClipUses:156Used by:169 175 176 200
Symbol 158 GraphicUsed by:159
Symbol 159 MovieClipUses:158Used by:169 176
Symbol 160 GraphicUsed by:161
Symbol 161 MovieClipUses:160Used by:169 176 197
Symbol 162 GraphicUsed by:163
Symbol 163 MovieClipUses:162Used by:169 176
Symbol 164 GraphicUsed by:165
Symbol 165 MovieClipUses:164Used by:169 176 197
Symbol 166 GraphicUsed by:167 196
Symbol 167 MovieClipUses:166Used by:168 192 197 201
Symbol 168 MovieClip {GAME_08_fla.mc_376}Uses:167Used by:169 176
Symbol 169 MovieClipUses:155 157 159 161 163 165 168Used by:177
Symbol 170 GraphicUsed by:171
Symbol 171 MovieClipUses:170Used by:175 200
Symbol 172 GraphicUsed by:175
Symbol 173 GraphicUsed by:174
Symbol 174 MovieClipUses:173Used by:175 200
Symbol 175 MovieClipUses:157 155 171 172 174Used by:176
Symbol 176 MovieClip {GAME_08_fla.mc_378}Uses:155 157 159 161 163 165 168 175Used by:177
Symbol 177 MovieClip {GAME_08_fla.mc_368}Uses:169 176Used by:234
Symbol 178 GraphicUsed by:179
Symbol 179 MovieClipUses:178Used by:192 197 201
Symbol 180 GraphicUsed by:181
Symbol 181 MovieClipUses:180Used by:192 197 201
Symbol 182 GraphicUsed by:183
Symbol 183 MovieClipUses:182Used by:192 197 201
Symbol 184 GraphicUsed by:185
Symbol 185 MovieClipUses:184Used by:192 197 201
Symbol 186 GraphicUsed by:187
Symbol 187 MovieClipUses:186Used by:192 197 201
Symbol 188 GraphicUsed by:189
Symbol 189 MovieClipUses:188Used by:192 197 201
Symbol 190 GraphicUsed by:191
Symbol 191 MovieClipUses:190Used by:192 197 201
Symbol 192 MovieClipUses:179 181 183 185 187 189 191 167Used by:197
Symbol 193 GraphicUsed by:195
Symbol 194 GraphicUsed by:195
Symbol 195 MovieClipUses:193 194Used by:197
Symbol 196 MovieClipUses:166Used by:197
Symbol 197 MovieClip {GAME_08_fla.mc_383}Uses:192 179 181 183 185 187 189 191 167 165 161 195 196Used by:202
Symbol 198 GraphicUsed by:202
Symbol 199 GraphicUsed by:200
Symbol 200 MovieClipUses:157 155 171 199 174Used by:201
Symbol 201 MovieClip {GAME_08_fla.mc_394}Uses:179 181 183 185 187 189 191 167 200Used by:202
Symbol 202 MovieClip {GAME_08_fla.mc_382}Uses:197 198 201Used by:234
Symbol 203 GraphicUsed by:234
Symbol 204 BitmapUsed by:205 210 216 220 227 231
Symbol 205 GraphicUses:204Used by:206
Symbol 206 MovieClipUses:205Used by:234
Symbol 207 BitmapUsed by:208 212 233
Symbol 208 GraphicUses:207Used by:234
Symbol 209 GraphicUsed by:234
Symbol 210 GraphicUses:204Used by:211
Symbol 211 MovieClipUses:210Used by:234
Symbol 212 GraphicUses:207Used by:234
Symbol 213 GraphicUsed by:234
Symbol 214 GraphicUsed by:234
Symbol 215 GraphicUsed by:234
Symbol 216 GraphicUses:204Used by:217
Symbol 217 MovieClipUses:216Used by:234
Symbol 218 GraphicUsed by:234
Symbol 219 GraphicUsed by:234
Symbol 220 GraphicUses:204Used by:221
Symbol 221 MovieClipUses:220Used by:234
Symbol 222 GraphicUsed by:234
Symbol 223 GraphicUsed by:234
Symbol 224 GraphicUsed by:234
Symbol 225 GraphicUsed by:234
Symbol 226 GraphicUsed by:234
Symbol 227 GraphicUses:204Used by:228
Symbol 228 MovieClipUses:227Used by:234
Symbol 229 GraphicUsed by:234
Symbol 230 GraphicUsed by:234
Symbol 231 GraphicUses:204Used by:232
Symbol 232 MovieClipUses:231Used by:234
Symbol 233 GraphicUses:207Used by:234
Symbol 234 MovieClip {props}Uses:70 116 153 177 202 203 206 208 209 211 212 213 214 215 217 218 219 221 222 223 224 225 226 228 229 230 232 233
Symbol 235 BitmapUsed by:236
Symbol 236 GraphicUses:235Used by:240
Symbol 237 BitmapUsed by:238
Symbol 238 GraphicUses:237Used by:239
Symbol 239 MovieClipUses:238Used by:240
Symbol 240 MovieClip {level04}Uses:236 239
Symbol 241 BitmapUsed by:242
Symbol 242 GraphicUses:241Used by:246
Symbol 243 BitmapUsed by:244
Symbol 244 GraphicUses:243Used by:245
Symbol 245 MovieClipUses:244Used by:246
Symbol 246 MovieClip {level05}Uses:242 245
Symbol 247 BitmapUsed by:248
Symbol 248 GraphicUses:247Used by:252
Symbol 249 BitmapUsed by:250
Symbol 250 GraphicUses:249Used by:251
Symbol 251 MovieClipUses:250Used by:252
Symbol 252 MovieClip {level08}Uses:248 251
Symbol 253 BitmapUsed by:254
Symbol 254 GraphicUses:253Used by:258
Symbol 255 BitmapUsed by:256
Symbol 256 GraphicUses:255Used by:257
Symbol 257 MovieClipUses:256Used by:258
Symbol 258 MovieClip {level07}Uses:254 257
Symbol 259 BitmapUsed by:260
Symbol 260 GraphicUses:259Used by:264
Symbol 261 BitmapUsed by:262
Symbol 262 GraphicUses:261Used by:263
Symbol 263 MovieClipUses:262Used by:264
Symbol 264 MovieClip {level06}Uses:260 263
Symbol 265 BitmapUsed by:266
Symbol 266 GraphicUses:265Used by:270
Symbol 267 BitmapUsed by:268
Symbol 268 GraphicUses:267Used by:269
Symbol 269 MovieClipUses:268Used by:270
Symbol 270 MovieClip {level09}Uses:266 269
Symbol 271 BitmapUsed by:272
Symbol 272 GraphicUses:271Used by:276
Symbol 273 BitmapUsed by:274
Symbol 274 GraphicUses:273Used by:275
Symbol 275 MovieClipUses:274Used by:276
Symbol 276 MovieClip {level18}Uses:272 275
Symbol 277 BitmapUsed by:278
Symbol 278 GraphicUses:277Used by:282
Symbol 279 BitmapUsed by:280
Symbol 280 GraphicUses:279Used by:281
Symbol 281 MovieClipUses:280Used by:282
Symbol 282 MovieClip {level17}Uses:278 281
Symbol 283 BitmapUsed by:284
Symbol 284 GraphicUses:283Used by:288
Symbol 285 BitmapUsed by:286
Symbol 286 GraphicUses:285Used by:287
Symbol 287 MovieClipUses:286Used by:288
Symbol 288 MovieClip {level16}Uses:284 287
Symbol 289 BitmapUsed by:290
Symbol 290 GraphicUses:289Used by:294
Symbol 291 BitmapUsed by:292
Symbol 292 GraphicUses:291Used by:293
Symbol 293 MovieClipUses:292Used by:294
Symbol 294 MovieClip {level15}Uses:290 293
Symbol 295 BitmapUsed by:296
Symbol 296 GraphicUses:295Used by:300
Symbol 297 BitmapUsed by:298
Symbol 298 GraphicUses:297Used by:299
Symbol 299 MovieClipUses:298Used by:300
Symbol 300 MovieClip {level14}Uses:296 299
Symbol 301 BitmapUsed by:302
Symbol 302 GraphicUses:301Used by:306
Symbol 303 BitmapUsed by:304
Symbol 304 GraphicUses:303Used by:305
Symbol 305 MovieClipUses:304Used by:306
Symbol 306 MovieClip {level10}Uses:302 305
Symbol 307 BitmapUsed by:308
Symbol 308 GraphicUses:307Used by:312
Symbol 309 BitmapUsed by:310
Symbol 310 GraphicUses:309Used by:311
Symbol 311 MovieClipUses:310Used by:312
Symbol 312 MovieClip {level11}Uses:308 311
Symbol 313 BitmapUsed by:314
Symbol 314 GraphicUses:313Used by:318
Symbol 315 BitmapUsed by:316
Symbol 316 GraphicUses:315Used by:317
Symbol 317 MovieClipUses:316Used by:318
Symbol 318 MovieClip {level13}Uses:314 317
Symbol 319 BitmapUsed by:320
Symbol 320 GraphicUses:319Used by:324
Symbol 321 BitmapUsed by:322
Symbol 322 GraphicUses:321Used by:323
Symbol 323 MovieClipUses:322Used by:324
Symbol 324 MovieClip {level12}Uses:320 323
Symbol 325 BitmapUsed by:326
Symbol 326 GraphicUses:325Used by:330
Symbol 327 BitmapUsed by:328
Symbol 328 GraphicUses:327Used by:329
Symbol 329 MovieClipUses:328Used by:330
Symbol 330 MovieClip {level03}Uses:326 329
Symbol 331 BitmapUsed by:332
Symbol 332 GraphicUses:331Used by:336
Symbol 333 BitmapUsed by:334
Symbol 334 GraphicUses:333Used by:335
Symbol 335 MovieClipUses:334Used by:336
Symbol 336 MovieClip {level02}Uses:332 335
Symbol 337 GraphicUsed by:338 753 1183
Symbol 338 MovieClipUses:337Used by:371
Symbol 339 MovieClipUses:33Used by:371 1392 1393
Symbol 340 ShapeTweeningUsed by:371
Symbol 341 ShapeTweeningUsed by:344
Symbol 342 ShapeTweeningUsed by:344
Symbol 343 GraphicUsed by:344
Symbol 344 MovieClipUses:341 342 343Used by:371
Symbol 345 GraphicUsed by:346
Symbol 346 MovieClipUses:345Used by:347
Symbol 347 MovieClipUses:346Used by:371
Symbol 348 ShapeTweeningUsed by:371
Symbol 349 ShapeTweeningUsed by:371
Symbol 350 ShapeTweeningUsed by:371
Symbol 351 GraphicUsed by:371
Symbol 352 GraphicUsed by:353
Symbol 353 MovieClipUses:352Used by:371
Symbol 354 GraphicUsed by:355
Symbol 355 MovieClipUses:354Used by:371
Symbol 356 BitmapUsed by:357
Symbol 357 GraphicUses:356Used by:358
Symbol 358 MovieClipUses:357Used by:371
Symbol 359 ShapeTweeningUsed by:371
Symbol 360 ShapeTweeningUsed by:371
Symbol 361 ShapeTweeningUsed by:371
Symbol 362 ShapeTweeningUsed by:371
Symbol 363 ShapeTweeningUsed by:371
Symbol 364 ShapeTweeningUsed by:371
Symbol 365 ShapeTweeningUsed by:371
Symbol 366 ShapeTweeningUsed by:371
Symbol 367 ShapeTweeningUsed by:371
Symbol 368 GraphicUsed by:371
Symbol 369 GraphicUsed by:371
Symbol 370 GraphicUsed by:371
Symbol 371 MovieClip {tpExplode}Uses:338 339 340 344 347 348 349 350 351 353 355 358 359 360 361 362 363 364 365 366 367 368 369 370
Symbol 372 BitmapUsed by:373
Symbol 373 GraphicUses:372Used by:377
Symbol 374 BitmapUsed by:375
Symbol 375 GraphicUses:374Used by:376
Symbol 376 MovieClipUses:375Used by:377
Symbol 377 MovieClip {level01}Uses:373 376
Symbol 378 GraphicUsed by:390
Symbol 379 ShapeTweeningUsed by:390
Symbol 380 ShapeTweeningUsed by:390
Symbol 381 ShapeTweeningUsed by:390
Symbol 382 ShapeTweeningUsed by:390
Symbol 383 ShapeTweeningUsed by:390
Symbol 384 ShapeTweeningUsed by:390
Symbol 385 ShapeTweeningUsed by:390
Symbol 386 ShapeTweeningUsed by:390
Symbol 387 ShapeTweeningUsed by:390
Symbol 388 ShapeTweeningUsed by:390
Symbol 389 GraphicUsed by:390
Symbol 390 MovieClipUses:378 379 380 381 382 383 384 385 386 387 388 389Used by:415
Symbol 391 ShapeTweeningUsed by:414
Symbol 392 ShapeTweeningUsed by:414
Symbol 393 ShapeTweeningUsed by:414
Symbol 394 ShapeTweeningUsed by:414
Symbol 395 ShapeTweeningUsed by:414
Symbol 396 ShapeTweeningUsed by:414
Symbol 397 GraphicUsed by:414
Symbol 398 ShapeTweeningUsed by:414
Symbol 399 ShapeTweeningUsed by:414
Symbol 400 ShapeTweeningUsed by:414
Symbol 401 GraphicUsed by:414
Symbol 402 ShapeTweeningUsed by:414
Symbol 403 ShapeTweeningUsed by:414
Symbol 404 GraphicUsed by:414
Symbol 405 ShapeTweeningUsed by:414
Symbol 406 GraphicUsed by:414
Symbol 407 ShapeTweeningUsed by:414
Symbol 408 ShapeTweeningUsed by:414
Symbol 409 ShapeTweeningUsed by:414
Symbol 410 ShapeTweeningUsed by:414
Symbol 411 ShapeTweeningUsed by:414
Symbol 412 GraphicUsed by:414
Symbol 413 GraphicUsed by:414
Symbol 414 MovieClipUses:391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413Used by:415
Symbol 415 MovieClipUses:390 414Used by:Timeline
Symbol 416 FontUsed by:417 418 1132 1137 1139 1284 1285 1286 1288 1325 1326 1327 1328 1329 1330 1331 1332 1333 1346 1347 1348 1349 1419 1420 1421 1422
Symbol 417 EditableTextUses:416Used by:Timeline
Symbol 418 TextUses:416Used by:434
Symbol 419 SoundUsed by:434
Symbol 420 SoundUsed by:434
Symbol 421 SoundUsed by:434
Symbol 422 SoundUsed by:434
Symbol 423 SoundUsed by:434
Symbol 424 SoundUsed by:434
Symbol 425 SoundUsed by:434
Symbol 426 SoundUsed by:434
Symbol 427 SoundUsed by:434
Symbol 428 SoundUsed by:434
Symbol 429 SoundUsed by:434
Symbol 430 SoundUsed by:434
Symbol 431 SoundUsed by:434
Symbol 432 SoundUsed by:434
Symbol 433 SoundUsed by:434
Symbol 434 MovieClip {GAME_08_fla.soundBox_4}Uses:418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433Used by:Timeline
Symbol 435 GraphicUsed by:440
Symbol 436 GraphicUsed by:440
Symbol 437 BitmapUsed by:438
Symbol 438 GraphicUses:437Used by:440 811
Symbol 439 GraphicUsed by:440
Symbol 440 MovieClip {GAME_08_fla.gameLogo_5}Uses:435 436 438 439Used by:Timeline
Symbol 441 GraphicUsed by:458 490 505 520 534 549 563 577 611 614 1070 1208 1275
Symbol 442 ShapeTweeningUsed by:458
Symbol 443 ShapeTweeningUsed by:458
Symbol 444 GraphicUsed by:458 475 490 505 520 534 549 563 577 890
Symbol 445 GraphicUsed by:458 475 490 505 520 534 549 563 577 899 926 939
Symbol 446 GraphicUsed by:458
Symbol 447 ShapeTweeningUsed by:458
Symbol 448 ShapeTweeningUsed by:458
Symbol 449 ShapeTweeningUsed by:458
Symbol 450 ShapeTweeningUsed by:458
Symbol 451 ShapeTweeningUsed by:458
Symbol 452 ShapeTweeningUsed by:458
Symbol 453 ShapeTweeningUsed by:458
Symbol 454 ShapeTweeningUsed by:458
Symbol 455 ShapeTweeningUsed by:458
Symbol 456 ShapeTweeningUsed by:458
Symbol 457 GraphicUsed by:458 534
Symbol 458 MovieClip {GAME_08_fla.btn_7}Uses:441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457Used by:667
Symbol 459 ShapeTweeningUsed by:475
Symbol 460 GraphicUsed by:475
Symbol 461 GraphicUsed by:475
Symbol 462 ShapeTweeningUsed by:475
Symbol 463 GraphicUsed by:475
Symbol 464 ShapeTweeningUsed by:475
Symbol 465 ShapeTweeningUsed by:475
Symbol 466 ShapeTweeningUsed by:475
Symbol 467 ShapeTweeningUsed by:475
Symbol 468 ShapeTweeningUsed by:475
Symbol 469 ShapeTweeningUsed by:475
Symbol 470 ShapeTweeningUsed by:475
Symbol 471 ShapeTweeningUsed by:475
Symbol 472 ShapeTweeningUsed by:475
Symbol 473 ShapeTweeningUsed by:475
Symbol 474 GraphicUsed by:475
Symbol 475 MovieClip {GAME_08_fla.btn_8}Uses:459 460 461 462 444 445 463 464 465 466 467 468 469 470 471 472 473 474Used by:667
Symbol 476 ShapeTweeningUsed by:490
Symbol 477 ShapeTweeningUsed by:490
Symbol 478 ShapeTweeningUsed by:490
Symbol 479 GraphicUsed by:490
Symbol 480 ShapeTweeningUsed by:490
Symbol 481 ShapeTweeningUsed by:490
Symbol 482 ShapeTweeningUsed by:490
Symbol 483 ShapeTweeningUsed by:490
Symbol 484 ShapeTweeningUsed by:490
Symbol 485 ShapeTweeningUsed by:490
Symbol 486 ShapeTweeningUsed by:490
Symbol 487 ShapeTweeningUsed by:490
Symbol 488 ShapeTweeningUsed by:490
Symbol 489 GraphicUsed by:490 577
Symbol 490 MovieClip {GAME_08_fla.btn_9}Uses:476 441 477 478 444 445 479 480 481 482 483 484 485 486 487 488 489Used by:667
Symbol 491 ShapeTweeningUsed by:505
Symbol 492 ShapeTweeningUsed by:505
Symbol 493 GraphicUsed by:505
Symbol 494 ShapeTweeningUsed by:505
Symbol 495 ShapeTweeningUsed by:505
Symbol 496 ShapeTweeningUsed by:505
Symbol 497 ShapeTweeningUsed by:505
Symbol 498 ShapeTweeningUsed by:505
Symbol 499 ShapeTweeningUsed by:505
Symbol 500 ShapeTweeningUsed by:505
Symbol 501 ShapeTweeningUsed by:505
Symbol 502 ShapeTweeningUsed by:505
Symbol 503 ShapeTweeningUsed by:505
Symbol 504 GraphicUsed by:505
Symbol 505 MovieClip {GAME_08_fla.btn_10}Uses:441 491 492 444 445 493 494 495 496 497 498 499 500 501 502 503 504Used by:667
Symbol 506 ShapeTweeningUsed by:520
Symbol 507 ShapeTweeningUsed by:520
Symbol 508 ShapeTweeningUsed by:520
Symbol 509 ShapeTweeningUsed by:520
Symbol 510 GraphicUsed by:520
Symbol 511 ShapeTweeningUsed by:520
Symbol 512 ShapeTweeningUsed by:520
Symbol 513 ShapeTweeningUsed by:520
Symbol 514 ShapeTweeningUsed by:520
Symbol 515 ShapeTweeningUsed by:520
Symbol 516 ShapeTweeningUsed by:520
Symbol 517 ShapeTweeningUsed by:520
Symbol 518 ShapeTweeningUsed by:520
Symbol 519 GraphicUsed by:520 563
Symbol 520 MovieClip {GAME_08_fla.btn_11}Uses:506 441 507 508 509 444 445 510 511 512 513 514 515 516 517 518 519Used by:667
Symbol 521 ShapeTweeningUsed by:534
Symbol 522 ShapeTweeningUsed by:534
Symbol 523 GraphicUsed by:534
Symbol 524 ShapeTweeningUsed by:534
Symbol 525 ShapeTweeningUsed by:534
Symbol 526 ShapeTweeningUsed by:534
Symbol 527 ShapeTweeningUsed by:534
Symbol 528 ShapeTweeningUsed by:534
Symbol 529 ShapeTweeningUsed by:534
Symbol 530 ShapeTweeningUsed by:534
Symbol 531 ShapeTweeningUsed by:534
Symbol 532 ShapeTweeningUsed by:534
Symbol 533 ShapeTweeningUsed by:534
Symbol 534 MovieClip {GAME_08_fla.btn_12}Uses:441 521 522 444 445 523 524 525 526 527 528 529 530 531 532 533 457Used by:667
Symbol 535 ShapeTweeningUsed by:549
Symbol 536 ShapeTweeningUsed by:549
Symbol 537 ShapeTweeningUsed by:549
Symbol 538 GraphicUsed by:549
Symbol 539 ShapeTweeningUsed by:549
Symbol 540 ShapeTweeningUsed by:549
Symbol 541 ShapeTweeningUsed by:549
Symbol 542 ShapeTweeningUsed by:549
Symbol 543 ShapeTweeningUsed by:549
Symbol 544 ShapeTweeningUsed by:549
Symbol 545 ShapeTweeningUsed by:549
Symbol 546 ShapeTweeningUsed by:549
Symbol 547 ShapeTweeningUsed by:549
Symbol 548 GraphicUsed by:549
Symbol 549 MovieClip {GAME_08_fla.btn_13}Uses:535 441 536 537 444 445 538 539 540 541 542 543 544 545 546 547 548Used by:667
Symbol 550 ShapeTweeningUsed by:563
Symbol 551 ShapeTweeningUsed by:563
Symbol 552 ShapeTweeningUsed by:563
Symbol 553 ShapeTweeningUsed by:563
Symbol 554 GraphicUsed by:563
Symbol 555 ShapeTweeningUsed by:563
Symbol 556 ShapeTweeningUsed by:563
Symbol 557 ShapeTweeningUsed by:563
Symbol 558 ShapeTweeningUsed by:563
Symbol 559 ShapeTweeningUsed by:563
Symbol 560 ShapeTweeningUsed by:563
Symbol 561 ShapeTweeningUsed by:563
Symbol 562 ShapeTweeningUsed by:563
Symbol 563 MovieClip {GAME_08_fla.btn_14}Uses:550 441 551 552 553 444 445 554 555 556 557 558 559 560 561 562 519Used by:667
Symbol 564 ShapeTweeningUsed by:577
Symbol 565 ShapeTweeningUsed by:577
Symbol 566 ShapeTweeningUsed by:577
Symbol 567 GraphicUsed by:577
Symbol 568 ShapeTweeningUsed by:577
Symbol 569 ShapeTweeningUsed by:577
Symbol 570 ShapeTweeningUsed by:577
Symbol 571 ShapeTweeningUsed by:577
Symbol 572 ShapeTweeningUsed by:577
Symbol 573 ShapeTweeningUsed by:577
Symbol 574 ShapeTweeningUsed by:577
Symbol 575 ShapeTweeningUsed by:577
Symbol 576 ShapeTweeningUsed by:577
Symbol 577 MovieClip {GAME_08_fla.btn_15}Uses:564 441 565 566 444 445 567 568 569 570 571 572 573 574 575 576 489Used by:667
Symbol 578 GraphicUsed by:579 1211
Symbol 579 MovieClipUses:578Used by:613 1071 1088
Symbol 580 GraphicUsed by:581 1212
Symbol 581 MovieClipUses:580Used by:613 1071 1088
Symbol 582 GraphicUsed by:583
Symbol 583 MovieClipUses:582Used by:613
Symbol 584 GraphicUsed by:585
Symbol 585 MovieClipUses:584Used by:613
Symbol 586 GraphicUsed by:587
Symbol 587 MovieClipUses:586Used by:613
Symbol 588 GraphicUsed by:589
Symbol 589 MovieClipUses:588Used by:613
Symbol 590 GraphicUsed by:591
Symbol 591 MovieClipUses:590Used by:613
Symbol 592 GraphicUsed by:593
Symbol 593 MovieClipUses:592Used by:613
Symbol 594 GraphicUsed by:597
Symbol 595 GraphicUsed by:597
Symbol 596 GraphicUsed by:597
Symbol 597 MovieClip {GAME_08_fla.mc_25}Uses:594 595 596Used by:613
Symbol 598 GraphicUsed by:608
Symbol 599 GraphicUsed by:608 648 991 1068 1122 1273 1309
Symbol 600 GraphicUsed by:608 648 991 1068 1122 1273 1309
Symbol 601 GraphicUsed by:608
Symbol 602 GraphicUsed by:608
Symbol 603 GraphicUsed by:608
Symbol 604 GraphicUsed by:608
Symbol 605 GraphicUsed by:608
Symbol 606 GraphicUsed by:608
Symbol 607 GraphicUsed by:608
Symbol 608 MovieClip {GAME_08_fla.mc_26}Uses:598 599 600 601 602 603 604 605 606 607Used by:613
Symbol 609 GraphicUsed by:610
Symbol 610 MovieClipUses:609Used by:613
Symbol 611 MovieClipUses:441Used by:612
Symbol 612 MovieClip {GAME_08_fla.mc_28}Uses:611Used by:613
Symbol 613 MovieClipUses:579 581 583 585 587 589 591 593 597 608 610 612Used by:667
Symbol 614 MovieClipUses:441Used by:666 1071 1088 1417  Timeline
Symbol 615 GraphicUsed by:616 1290
Symbol 616 MovieClipUses:615Used by:666
Symbol 617 GraphicUsed by:618 1291
Symbol 618 MovieClipUses:617Used by:666
Symbol 619 GraphicUsed by:620 1292
Symbol 620 MovieClipUses:619Used by:666
Symbol 621 GraphicUsed by:622
Symbol 622 MovieClipUses:621Used by:666
Symbol 623 GraphicUsed by:624 1295
Symbol 624 MovieClipUses:623Used by:666
Symbol 625 GraphicUsed by:626 1104
Symbol 626 MovieClipUses:625Used by:666 1069 1071 1452
Symbol 627 GraphicUsed by:628 1296
Symbol 628 MovieClipUses:627Used by:666
Symbol 629 GraphicUsed by:630 1105
Symbol 630 MovieClipUses:629Used by:666 1069 1071 1452
Symbol 631 GraphicUsed by:632 1297
Symbol 632 MovieClipUses:631Used by:666
Symbol 633 GraphicUsed by:634 1298
Symbol 634 MovieClipUses:633Used by:666
Symbol 635 GraphicUsed by:636 1299
Symbol 636 MovieClipUses:635Used by:666
Symbol 637 GraphicUsed by:638 1300
Symbol 638 MovieClipUses:637Used by:666
Symbol 639 GraphicUsed by:648
Symbol 640 GraphicUsed by:648 1309
Symbol 641 GraphicUsed by:648
Symbol 642 GraphicUsed by:648
Symbol 643 GraphicUsed by:648
Symbol 644 GraphicUsed by:648
Symbol 645 GraphicUsed by:648
Symbol 646 GraphicUsed by:648
Symbol 647 GraphicUsed by:648
Symbol 648 MovieClip {GAME_08_fla.mc_44}Uses:639 599 640 600 641 642 643 644 645 646 647Used by:666
Symbol 649 GraphicUsed by:650 1310
Symbol 650 MovieClipUses:649Used by:666
Symbol 651 GraphicUsed by:652
Symbol 652 MovieClipUses:651Used by:666
Symbol 653 GraphicUsed by:654
Symbol 654 MovieClipUses:653Used by:666
Symbol 655 GraphicUsed by:665 1319
Symbol 656 GraphicUsed by:665 1319
Symbol 657 GraphicUsed by:665 1319
Symbol 658 GraphicUsed by:659 1209
Symbol 659 MovieClipUses:658Used by:665 1071 1439
Symbol 660 ShapeTweeningUsed by:665
Symbol 661 ShapeTweeningUsed by:665
Symbol 662 ShapeTweeningUsed by:665
Symbol 663 ShapeTweeningUsed by:665
Symbol 664 GraphicUsed by:665 1319
Symbol 665 MovieClip {GAME_08_fla.mc_48}Uses:655 656 657 659 660 661 662 663 664Used by:666
Symbol 666 MovieClip {GAME_08_fla.mc_30}Uses:614 616 618 620 622 624 626 628 630 632 634 636 638 648 650 652 654 665Used by:667
Symbol 667 MovieClip {GAME_08_fla.Screen_6}Uses:458 475 490 505 520 534 549 563 577 613 666Used by:Timeline
Symbol 668 GraphicUsed by:669 1192
Symbol 669 MovieClipUses:668Used by:675
Symbol 670 ShapeTweeningUsed by:675
Symbol 671 ShapeTweeningUsed by:675
Symbol 672 GraphicUsed by:675
Symbol 673 GraphicUsed by:674 1197
Symbol 674 MovieClipUses:673Used by:675
Symbol 675 MovieClipUses:669 670 671 672 674Used by:710
Symbol 676 GraphicUsed by:691 1168
Symbol 677 GraphicUsed by:682 1160
Symbol 678 GraphicUsed by:682 1160
Symbol 679 ShapeTweeningUsed by:682
Symbol 680 ShapeTweeningUsed by:682
Symbol 681 GraphicUsed by:682 1160
Symbol 682 MovieClip {GAME_08_fla.mc_55}Uses:677 678 679 680 681Used by:691
Symbol 683 GraphicUsed by:688
Symbol 684 GraphicUsed by:688
Symbol 685 GraphicUsed by:688
Symbol 686 GraphicUsed by:688
Symbol 687 GraphicUsed by:688
Symbol 688 MovieClip {GAME_08_fla.mc_56}Uses:683 684 685 686 687Used by:691
Symbol 689 GraphicUsed by:690 1167
Symbol 690 MovieClipUses:689Used by:691
Symbol 691 MovieClipUses:676 682 688 690Used by:710
Symbol 692 GraphicUsed by:693
Symbol 693 MovieClipUses:692Used by:710
Symbol 694 GraphicUsed by:695
Symbol 695 MovieClipUses:694Used by:710
Symbol 696 GraphicUsed by:697
Symbol 697 MovieClipUses:696Used by:710
Symbol 698 BitmapUsed by:699
Symbol 699 GraphicUses:698Used by:700
Symbol 700 MovieClipUses:699Used by:710
Symbol 701 GraphicUsed by:702
Symbol 702 MovieClipUses:701Used by:710
Symbol 703 BitmapUsed by:704
Symbol 704 GraphicUses:703Used by:705
Symbol 705 MovieClipUses:704Used by:710
Symbol 706 GraphicUsed by:707
Symbol 707 MovieClipUses:706Used by:710
Symbol 708 GraphicUsed by:709
Symbol 709 MovieClipUses:708Used by:710
Symbol 710 MovieClipUses:675 691 693 695 697 700 702 705 707 709Used by:Timeline
Symbol 711 ShapeTweeningUsed by:720
Symbol 712 ShapeTweeningUsed by:720
Symbol 713 ShapeTweeningUsed by:720
Symbol 714 ShapeTweeningUsed by:720
Symbol 715 ShapeTweeningUsed by:720
Symbol 716 ShapeTweeningUsed by:720
Symbol 717 ShapeTweeningUsed by:720
Symbol 718 ShapeTweeningUsed by:720
Symbol 719 GraphicUsed by:720 1149
Symbol 720 MovieClipUses:711 712 713 714 715 716 717 718 719Used by:791
Symbol 721 ShapeTweeningUsed by:730
Symbol 722 ShapeTweeningUsed by:730
Symbol 723 ShapeTweeningUsed by:730
Symbol 724 ShapeTweeningUsed by:730
Symbol 725 GraphicUsed by:730 1156
Symbol 726 ShapeTweeningUsed by:730
Symbol 727 ShapeTweeningUsed by:730
Symbol 728 GraphicUsed by:730 1156
Symbol 729 GraphicUsed by:730 1156
Symbol 730 MovieClipUses:721 722 723 724 725 726 727 728 729Used by:791
Symbol 731 ShapeTweeningUsed by:738
Symbol 732 GraphicUsed by:738
Symbol 733 GraphicUsed by:738
Symbol 734 ShapeTweeningUsed by:738
Symbol 735 GraphicUsed by:738
Symbol 736 GraphicUsed by:738
Symbol 737 GraphicUsed by:738
Symbol 738 MovieClipUses:731 732 733 734 735 736 737Used by:791
Symbol 739 ShapeTweeningUsed by:742
Symbol 740 ShapeTweeningUsed by:742
Symbol 741 GraphicUsed by:742
Symbol 742 MovieClipUses:739 740 741Used by:791
Symbol 743 ShapeTweeningUsed by:752
Symbol 744 GraphicUsed by:749
Symbol 745 GraphicUsed by:748
Symbol 746 GraphicUsed by:748
Symbol 747 GraphicUsed by:748
Symbol 748 MovieClipUses:745 746 747Used by:749
Symbol 749 MovieClipUses:744 748Used by:752
Symbol 750 ShapeTweeningUsed by:752
Symbol 751 GraphicUsed by:752
Symbol 752 MovieClipUses:743 749 750 751Used by:791
Symbol 753 MovieClipUses:337Used by:760
Symbol 754 BitmapUsed by:755
Symbol 755 GraphicUses:754Used by:756 1184
Symbol 756 MovieClipUses:755Used by:760
Symbol 757 BitmapUsed by:758
Symbol 758 GraphicUses:757Used by:759 1185
Symbol 759 MovieClipUses:758Used by:760
Symbol 760 MovieClip {GAME_08_fla.mc_74}Uses:753 756 759Used by:791
Symbol 761 GraphicUsed by:790
Symbol 762 GraphicUsed by:763
Symbol 763 MovieClipUses:762Used by:790 1405
Symbol 764 GraphicUsed by:765
Symbol 765 MovieClipUses:764Used by:790
Symbol 766 GraphicUsed by:770
Symbol 767 ShapeTweeningUsed by:770
Symbol 768 ShapeTweeningUsed by:770
Symbol 769 GraphicUsed by:770
Symbol 770 MovieClipUses:766 767 768 769Used by:790
Symbol 771 GraphicUsed by:772
Symbol 772 MovieClipUses:771Used by:790
Symbol 773 GraphicUsed by:774
Symbol 774 MovieClipUses:773Used by:790
Symbol 775 GraphicUsed by:789
Symbol 776 GraphicUsed by:782
Symbol 777 GraphicUsed by:782
Symbol 778 GraphicUsed by:782
Symbol 779 GraphicUsed by:782
Symbol 780 GraphicUsed by:782
Symbol 781 GraphicUsed by:782
Symbol 782 MovieClip {GAME_08_fla.mc_85}Uses:776 777 778 779 780 781Used by:789
Symbol 783 GraphicUsed by:788
Symbol 784 GraphicUsed by:788
Symbol 785 GraphicUsed by:788
Symbol 786 GraphicUsed by:788
Symbol 787 GraphicUsed by:788
Symbol 788 MovieClip {GAME_08_fla.mc_86}Uses:783 23 24 25 26 784 785 786 787Used by:789 1083 1408
Symbol 789 MovieClipUses:775 782 788Used by:790
Symbol 790 MovieClipUses:761 763 765 770 772 774 789Used by:791
Symbol 791 MovieClipUses:720 730 738 742 752 760 790Used by:Timeline
Symbol 792 BitmapUsed by:793
Symbol 793 GraphicUses:792Used by:794
Symbol 794 MovieClipUses:793Used by:Timeline
Symbol 795 FontUsed by:796 1378
Symbol 796 EditableTextUses:795Used by:807
Symbol 797 BitmapUsed by:798
Symbol 798 GraphicUses:797Used by:807
Symbol 799 BitmapUsed by:800
Symbol 800 GraphicUses:799Used by:807
Symbol 801 BitmapUsed by:802
Symbol 802 GraphicUses:801Used by:807
Symbol 803 BitmapUsed by:804
Symbol 804 GraphicUses:803Used by:807
Symbol 805 BitmapUsed by:806
Symbol 806 GraphicUses:805Used by:807
Symbol 807 MovieClip {GAME_08_fla.mc_88}Uses:796 798 800 802 804 806Used by:Timeline
Symbol 808 GraphicUsed by:811
Symbol 809 GraphicUsed by:811
Symbol 810 GraphicUsed by:811
Symbol 811 MovieClip {GAME_08_fla.mc_89}Uses:808 809 438 810Used by:Timeline
Symbol 812 ShapeTweeningUsed by:821
Symbol 813 FontUsed by:814 834 841 860 864 868 875 889 906 919 932 945 959 1453
Symbol 814 EditableTextUses:813Used by:821
Symbol 815 BitmapUsed by:816
Symbol 816 GraphicUses:815Used by:821
Symbol 817 GraphicUsed by:818
Symbol 818 MovieClipUses:817Used by:821 862 866 873 877
Symbol 819 ShapeTweeningUsed by:821
Symbol 820 GraphicUsed by:821 862 866 873 877
Symbol 821 MovieClip {GAME_08_fla.btn_90}Uses:812 814 816 818 819 820Used by:Timeline
Symbol 822 ShapeTweeningUsed by:833
Symbol 823 GraphicUsed by:824
Symbol 824 MovieClipUses:823Used by:833 840
Symbol 825 BitmapUsed by:826
Symbol 826 GraphicUses:825Used by:829
Symbol 827 FontUsed by:828
Symbol 828 TextUses:827Used by:829
Symbol 829 MovieClipUses:826 828Used by:833
Symbol 830 ShapeTweeningUsed by:833
Symbol 831 ShapeTweeningUsed by:833
Symbol 832 GraphicUsed by:833 840
Symbol 833 MovieClip {GAME_08_fla.btn_93}Uses:822 824 829 830 831 832Used by:858
Symbol 834 EditableTextUses:813Used by:858
Symbol 835 BitmapUsed by:836
Symbol 836 GraphicUses:835Used by:858 1454
Symbol 837 ShapeTweeningUsed by:840
Symbol 838 ShapeTweeningUsed by:840
Symbol 839 ShapeTweeningUsed by:840
Symbol 840 MovieClip {GAME_08_fla.btn_96}Uses:837 824 838 839 832Used by:858 1454
Symbol 841 EditableTextUses:813Used by:858
Symbol 842 BitmapUsed by:843
Symbol 843 GraphicUses:842Used by:858 1454
Symbol 844 GraphicUsed by:845 878
Symbol 845 MovieClip {GAME_08_fla.Symbol1_97}Uses:844Used by:858 1454
Symbol 846 BitmapUsed by:847
Symbol 847 GraphicUses:846Used by:858 1454
Symbol 848 BitmapUsed by:849
Symbol 849 GraphicUses:848Used by:858 1454
Symbol 850 BitmapUsed by:851
Symbol 851 GraphicUses:850Used by:858 1454
Symbol 852 BitmapUsed by:853
Symbol 853 GraphicUses:852Used by:858 1454
Symbol 854 BitmapUsed by:855
Symbol 855 GraphicUses:854Used by:858 1454
Symbol 856 BitmapUsed by:857
Symbol 857 GraphicUses:856Used by:858 1454
Symbol 858 MovieClip {GAME_08_fla.btn_92}Uses:833 834 836 840 841 843 845 847 849 851 853 855 857Used by:Timeline
Symbol 859 ShapeTweeningUsed by:862
Symbol 860 EditableTextUses:813Used by:862
Symbol 861 ShapeTweeningUsed by:862
Symbol 862 MovieClip {GAME_08_fla.btn_98}Uses:859 860 818 861 820Used by:Timeline
Symbol 863 ShapeTweeningUsed by:866
Symbol 864 EditableTextUses:813Used by:866
Symbol 865 ShapeTweeningUsed by:866
Symbol 866 MovieClip {GAME_08_fla.btn_99}Uses:863 864 818 865 820Used by:Timeline
Symbol 867 ShapeTweeningUsed by:873
Symbol 868 EditableTextUses:813Used by:873
Symbol 869 BitmapUsed by:870
Symbol 870 GraphicUses:869Used by:871
Symbol 871 MovieClipUses:870Used by:873
Symbol 872 ShapeTweeningUsed by:873
Symbol 873 MovieClip {GAME_08_fla.btn_101}Uses:867 868 871 818 872 820Used by:879
Symbol 874 ShapeTweeningUsed by:877
Symbol 875 EditableTextUses:813Used by:877
Symbol 876 ShapeTweeningUsed by:877
Symbol 877 MovieClip {GAME_08_fla.btn_103}Uses:874 875 818 876 820Used by:879
Symbol 878 MovieClip {GAME_08_fla.Symbol1copy_104}Uses:844Used by:879
Symbol 879 MovieClip {GAME_08_fla.btn_100}Uses:873 877 878Used by:Timeline
Symbol 880 GraphicUsed by:881
Symbol 881 ButtonUses:880Used by:Timeline
Symbol 882 GraphicUsed by:883
Symbol 883 ButtonUses:882Used by:Timeline
Symbol 884 ShapeTweeningUsed by:899
Symbol 885 ShapeTweeningUsed by:899
Symbol 886 ShapeTweeningUsed by:899
Symbol 887 ShapeTweeningUsed by:899
Symbol 888 ShapeTweeningUsed by:899
Symbol 889 TextUses:813Used by:899
Symbol 890 MovieClipUses:444Used by:899 913 926 939 952 966
Symbol 891 GraphicUsed by:892
Symbol 892 MovieClipUses:891Used by:899 913 926 939 952 966
Symbol 893 ShapeTweeningUsed by:899
Symbol 894 ShapeTweeningUsed by:899
Symbol 895 ShapeTweeningUsed by:899
Symbol 896 ShapeTweeningUsed by:899
Symbol 897 ShapeTweeningUsed by:899
Symbol 898 GraphicUsed by:899
Symbol 899 MovieClip {GAME_08_fla.btn_107}Uses:884 885 886 887 888 445 889 890 892 893 894 895 896 897 898Used by:Timeline
Symbol 900 ShapeTweeningUsed by:913
Symbol 901 ShapeTweeningUsed by:913
Symbol 902 ShapeTweeningUsed by:913
Symbol 903 ShapeTweeningUsed by:913
Symbol 904 ShapeTweeningUsed by:913
Symbol 905 GraphicUsed by:913 952
Symbol 906 TextUses:813Used by:913
Symbol 907 ShapeTweeningUsed by:913
Symbol 908 ShapeTweeningUsed by:913
Symbol 909 ShapeTweeningUsed by:913
Symbol 910 ShapeTweeningUsed by:913
Symbol 911 ShapeTweeningUsed by:913
Symbol 912 GraphicUsed by:913
Symbol 913 MovieClip {GAME_08_fla.btn_110}Uses:900 901 902 903 904 905 906 890 892 907 908 909 910 911 912Used by:Timeline
Symbol 914 ShapeTweeningUsed by:926
Symbol 915 ShapeTweeningUsed by:926
Symbol 916 ShapeTweeningUsed by:926
Symbol 917 ShapeTweeningUsed by:926
Symbol 918 ShapeTweeningUsed by:926
Symbol 919 TextUses:813Used by:926
Symbol 920 ShapeTweeningUsed by:926
Symbol 921 ShapeTweeningUsed by:926
Symbol 922 ShapeTweeningUsed by:926
Symbol 923 ShapeTweeningUsed by:926
Symbol 924 ShapeTweeningUsed by:926
Symbol 925 GraphicUsed by:926
Symbol 926 MovieClip {GAME_08_fla.btn_111}Uses:914 915 916 917 918 445 919 890 892 920 921 922 923 924 925Used by:Timeline
Symbol 927 ShapeTweeningUsed by:939
Symbol 928 ShapeTweeningUsed by:939
Symbol 929 ShapeTweeningUsed by:939
Symbol 930 ShapeTweeningUsed by:939
Symbol 931 ShapeTweeningUsed by:939
Symbol 932 TextUses:813Used by:939
Symbol 933 ShapeTweeningUsed by:939
Symbol 934 ShapeTweeningUsed by:939
Symbol 935 ShapeTweeningUsed by:939
Symbol 936 ShapeTweeningUsed by:939
Symbol 937 ShapeTweeningUsed by:939
Symbol 938 GraphicUsed by:939
Symbol 939 MovieClip {GAME_08_fla.btn_112}Uses:927 928 929 930 931 445 932 890 892 933 934 935 936 937 938Used by:Timeline
Symbol 940 ShapeTweeningUsed by:952
Symbol 941 ShapeTweeningUsed by:952
Symbol 942 ShapeTweeningUsed by:952
Symbol 943 ShapeTweeningUsed by:952
Symbol 944 ShapeTweeningUsed by:952
Symbol 945 TextUses:813Used by:952
Symbol 946 ShapeTweeningUsed by:952
Symbol 947 ShapeTweeningUsed by:952
Symbol 948 ShapeTweeningUsed by:952
Symbol 949 ShapeTweeningUsed by:952
Symbol 950 ShapeTweeningUsed by:952
Symbol 951 GraphicUsed by:952
Symbol 952 MovieClip {GAME_08_fla.btn_113}Uses:940 941 942 943 944 905 945 890 892 946 947 948 949 950 951Used by:Timeline
Symbol 953 ShapeTweeningUsed by:966
Symbol 954 ShapeTweeningUsed by:966
Symbol 955 ShapeTweeningUsed by:966
Symbol 956 ShapeTweeningUsed by:966
Symbol 957 ShapeTweeningUsed by:966
Symbol 958 GraphicUsed by:966
Symbol 959 TextUses:813Used by:966
Symbol 960 ShapeTweeningUsed by:966
Symbol 961 ShapeTweeningUsed by:966
Symbol 962 ShapeTweeningUsed by:966
Symbol 963 ShapeTweeningUsed by:966
Symbol 964 ShapeTweeningUsed by:966
Symbol 965 GraphicUsed by:966
Symbol 966 MovieClip {GAME_08_fla.btn_114}Uses:953 954 955 956 957 958 959 890 892 960 961 962 963 964 965Used by:Timeline
Symbol 967 GraphicUsed by:968 1210
Symbol 968 MovieClipUses:967Used by:1071
Symbol 969 GraphicUsed by:972 1214
Symbol 970 GraphicUsed by:972 1214
Symbol 971 GraphicUsed by:972
Symbol 972 MovieClipUses:969 970 971Used by:1071
Symbol 973 GraphicUsed by:974 1215
Symbol 974 MovieClipUses:973Used by:1071
Symbol 975 GraphicUsed by:976
Symbol 976 MovieClipUses:975Used by:1069 1071
Symbol 977 GraphicUsed by:978
Symbol 978 MovieClipUses:977Used by:1069 1071
Symbol 979 GraphicUsed by:980 1220
Symbol 980 MovieClipUses:979Used by:1069 1071
Symbol 981 GraphicUsed by:982
Symbol 982 MovieClipUses:981Used by:1071
Symbol 983 GraphicUsed by:991
Symbol 984 GraphicUsed by:991
Symbol 985 GraphicUsed by:991
Symbol 986 GraphicUsed by:991
Symbol 987 GraphicUsed by:991
Symbol 988 GraphicUsed by:991
Symbol 989 GraphicUsed by:991
Symbol 990 GraphicUsed by:991
Symbol 991 MovieClip {GAME_08_fla.mc_123}Uses:983 599 600 984 985 986 987 988 989 990Used by:1071 1436 1448
Symbol 992 ShapeTweeningUsed by:1023
Symbol 993 GraphicUsed by:1023 1243
Symbol 994 GraphicUsed by:1023
Symbol 995 GraphicUsed by:1023
Symbol 996 GraphicUsed by:1023
Symbol 997 ShapeTweeningUsed by:1023
Symbol 998 GraphicUsed by:1023
Symbol 999 GraphicUsed by:1023 1243
Symbol 1000 GraphicUsed by:1023 1243
Symbol 1001 GraphicUsed by:1023 1243
Symbol 1002 GraphicUsed by:1023 1243
Symbol 1003 GraphicUsed by:1023
Symbol 1004 GraphicUsed by:1023 1243
Symbol 1005 GraphicUsed by:1023 1243
Symbol 1006 GraphicUsed by:1023
Symbol 1007 GraphicUsed by:1023
Symbol 1008 GraphicUsed by:1023
Symbol 1009 GraphicUsed by:1023
Symbol 1010 GraphicUsed by:1023
Symbol 1011 GraphicUsed by:1023
Symbol 1012 GraphicUsed by:1023
Symbol 1013 GraphicUsed by:1023 1243
Symbol 1014 GraphicUsed by:1023 1243
Symbol 1015 GraphicUsed by:1023 1243
Symbol 1016 GraphicUsed by:1023
Symbol 1017 GraphicUsed by:1023
Symbol 1018 GraphicUsed by:1023
Symbol 1019 GraphicUsed by:1023
Symbol 1020 GraphicUsed by:1023
Symbol 1021 GraphicUsed by:1023
Symbol 1022 GraphicUsed by:1023 1243
Symbol 1023 MovieClip {GAME_08_fla.mc_124}Uses:992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022Used by:1071
Symbol 1024 GraphicUsed by:1055
Symbol 1025 GraphicUsed by:1055 1264
Symbol 1026 GraphicUsed by:1055 1264
Symbol 1027 ShapeTweeningUsed by:1055
Symbol 1028 ShapeTweeningUsed by:1055
Symbol 1029 ShapeTweeningUsed by:1055
Symbol 1030 GraphicUsed by:1055 1264
Symbol 1031 ShapeTweeningUsed by:1055
Symbol 1032 ShapeTweeningUsed by:1055
Symbol 1033 GraphicUsed by:1055
Symbol 1034 GraphicUsed by:1055
Symbol 1035 ShapeTweeningUsed by:1055
Symbol 1036 ShapeTweeningUsed by:1055
Symbol 1037 GraphicUsed by:1055 1264
Symbol 1038 GraphicUsed by:1055 1264
Symbol 1039 GraphicUsed by:1055
Symbol 1040 ShapeTweeningUsed by:1055
Symbol 1041 ShapeTweeningUsed by:1055
Symbol 1042 ShapeTweeningUsed by:1055
Symbol 1043 GraphicUsed by:1055 1264
Symbol 1044 ShapeTweeningUsed by:1055
Symbol 1045 ShapeTweeningUsed by:1055
Symbol 1046 GraphicUsed by:1055
Symbol 1047 GraphicUsed by:1055
Symbol 1048 GraphicUsed by:1055 1264
Symbol 1049 ShapeTweeningUsed by:1055
Symbol 1050 ShapeTweeningUsed by:1055
Symbol 1051 GraphicUsed by:1055 1264
Symbol 1052 GraphicUsed by:1055 1264
Symbol 1053 GraphicUsed by:1055 1264
Symbol 1054 GraphicUsed by:1055 1264
Symbol 1055 MovieClip {GAME_08_fla.mc_126}Uses:1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054Used by:1069
Symbol 1056 GraphicUsed by:1068
Symbol 1057 GraphicUsed by:1068 1273
Symbol 1058 GraphicUsed by:1068 1273
Symbol 1059 GraphicUsed by:1068 1273
Symbol 1060 GraphicUsed by:1068
Symbol 1061 GraphicUsed by:1068
Symbol 1062 GraphicUsed by:1068
Symbol 1063 GraphicUsed by:1068
Symbol 1064 GraphicUsed by:1068
Symbol 1065 GraphicUsed by:1068
Symbol 1066 GraphicUsed by:1068
Symbol 1067 GraphicUsed by:1068 1273
Symbol 1068 MovieClip {GAME_08_fla.mc_127}Uses:1056 599 1057 1058 1059 600 1060 1061 1062 1063 1064 1065 1066 1067Used by:1069
Symbol 1069 MovieClip {GAME_08_fla.mc_125}Uses:976 626 630 978 980 1055 1068Used by:1071
Symbol 1070 MovieClip {GAME_08_fla.mc_128}Uses:441Used by:1071
Symbol 1071 MovieClip {GAME_08_fla.mc_115}Uses:614 659 968 579 581 972 974 976 626 630 978 980 982 991 1023 1069 1070Used by:Timeline
Symbol 1072 ShapeTweeningUsed by:1088
Symbol 1073 GraphicUsed by:1074
Symbol 1074 MovieClipUses:1073Used by:1088
Symbol 1075 GraphicUsed by:1076
Symbol 1076 MovieClipUses:1075Used by:1088
Symbol 1077 GraphicUsed by:1083
Symbol 1078 GraphicUsed by:1081
Symbol 1079 GraphicUsed by:1081
Symbol 1080 GraphicUsed by:1081
Symbol 1081 MovieClip {GAME_08_fla.mc_133}Uses:1078 1079 1080 18 19 20 16Used by:1083 1408
Symbol 1082 GraphicUsed by:1083
Symbol 1083 MovieClipUses:1077 788 1081 1082Used by:1088
Symbol 1084 GraphicUsed by:1085
Symbol 1085 MovieClipUses:1084Used by:1088
Symbol 1086 ShapeTweeningUsed by:1088
Symbol 1087 GraphicUsed by:1088
Symbol 1088 MovieClipUses:1072 614 579 581 1074 1076 1083 1085 1086 1087Used by:Timeline
Symbol 1089 GraphicUsed by:1090
Symbol 1090 MovieClipUses:1089Used by:1336
Symbol 1091 GraphicUsed by:1092 1441
Symbol 1092 MovieClipUses:1091Used by:1129
Symbol 1093 GraphicUsed by:1094 1442
Symbol 1094 MovieClipUses:1093Used by:1129
Symbol 1095 BitmapUsed by:1096 1098 1102 1125 1444
Symbol 1096 GraphicUses:1095Used by:1097
Symbol 1097 MovieClipUses:1096Used by:1129
Symbol 1098 GraphicUses:1095Used by:1099
Symbol 1099 MovieClipUses:1098Used by:1129
Symbol 1100 BitmapUsed by:1102 1444
Symbol 1101 BitmapUsed by:1102 1444
Symbol 1102 GraphicUses:1100 1101 1095Used by:1103
Symbol 1103 MovieClipUses:1102Used by:1129
Symbol 1104 MovieClipUses:625Used by:1129 1274 1276 1320
Symbol 1105 MovieClipUses:629Used by:1129 1274 1276 1320
Symbol 1106 GraphicUsed by:1107
Symbol 1107 MovieClipUses:1106Used by:1129
Symbol 1108 GraphicUsed by:1109
Symbol 1109 MovieClipUses:1108Used by:1129
Symbol 1110 GraphicUsed by:1111
Symbol 1111 MovieClipUses:1110Used by:1129
Symbol 1112 GraphicUsed by:1113
Symbol 1113 MovieClipUses:1112Used by:1129
Symbol 1114 GraphicUsed by:1122
Symbol 1115 GraphicUsed by:1122
Symbol 1116 GraphicUsed by:1122
Symbol 1117 GraphicUsed by:1122
Symbol 1118 GraphicUsed by:1122
Symbol 1119 GraphicUsed by:1122
Symbol 1120 GraphicUsed by:1122
Symbol 1121 GraphicUsed by:1122
Symbol 1122 MovieClip {GAME_08_fla.mc_151}Uses:1114 599 600 1115 1116 1117 1118 1119 1120 1121Used by:1129 1276
Symbol 1123 GraphicUsed by:1124
Symbol 1124 MovieClipUses:1123Used by:1129
Symbol 1125 GraphicUses:1095Used by:1126 1443
Symbol 1126 MovieClipUses:1125Used by:1129
Symbol 1127 GraphicUsed by:1128 1449
Symbol 1128 MovieClipUses:1127Used by:1129
Symbol 1129 MovieClip {GAME_08_fla.mc_139}Uses:1092 1094 1097 1099 1103 1104 1105 1107 1109 1111 1113 1122 1124 1126 1128Used by:1207
Symbol 1130 GraphicUsed by:1207
Symbol 1131 GraphicUsed by:1133
Symbol 1132 TextUses:416Used by:1133
Symbol 1133 MovieClipUses:1131 1132Used by:1136
Symbol 1134 GraphicUsed by:1135
Symbol 1135 MovieClipUses:1134Used by:1136 1280 1283 1324
Symbol 1136 MovieClip {GAME_08_fla.btn_155}Uses:1133 1135Used by:1207
Symbol 1137 EditableTextUses:416Used by:1207
Symbol 1138 GraphicUsed by:1207
Symbol 1139 EditableTextUses:416Used by:1207
Symbol 1140 GraphicUsed by:1207 1289 1334
Symbol 1141 ShapeTweeningUsed by:1149
Symbol 1142 ShapeTweeningUsed by:1149
Symbol 1143 ShapeTweeningUsed by:1149
Symbol 1144 ShapeTweeningUsed by:1149
Symbol 1145 ShapeTweeningUsed by:1149
Symbol 1146 ShapeTweeningUsed by:1149
Symbol 1147 ShapeTweeningUsed by:1149
Symbol 1148 ShapeTweeningUsed by:1149
Symbol 1149 MovieClipUses:1141 1142 1143 1144 1145 1146 1147 1148 719Used by:1190 1206
Symbol 1150 ShapeTweeningUsed by:1156
Symbol 1151 ShapeTweeningUsed by:1156
Symbol 1152 ShapeTweeningUsed by:1156
Symbol 1153 ShapeTweeningUsed by:1156
Symbol 1154 ShapeTweeningUsed by:1156
Symbol 1155 ShapeTweeningUsed by:1156
Symbol 1156 MovieClipUses:1150 1151 1152 1153 725 1154 1155 728 729Used by:1190 1206
Symbol 1157 ShapeTweeningUsed by:1190
Symbol 1158 ShapeTweeningUsed by:1160
Symbol 1159 ShapeTweeningUsed by:1160
Symbol 1160 MovieClip {GAME_08_fla.mc_163}Uses:677 678 1158 1159 681Used by:1168
Symbol 1161 GraphicUsed by:1166
Symbol 1162 GraphicUsed by:1166
Symbol 1163 GraphicUsed by:1166
Symbol 1164 GraphicUsed by:1166
Symbol 1165 GraphicUsed by:1166
Symbol 1166 MovieClip {GAME_08_fla.mc_164}Uses:1161 1162 1163 1164 1165Used by:1168
Symbol 1167 MovieClipUses:689Used by:1168
Symbol 1168 MovieClipUses:676 1160 1166 1167Used by:1169
Symbol 1169 MovieClip {GAME_08_fla.mc_161}Uses:1168Used by:1190
Symbol 1170 ShapeTweeningUsed by:1180
Symbol 1171 ShapeTweeningUsed by:1180
Symbol 1172 GraphicUsed by:1180
Symbol 1173 ShapeTweeningUsed by:1180
Symbol 1174 GraphicUsed by:1180
Symbol 1175 ShapeTweeningUsed by:1180
Symbol 1176 GraphicUsed by:1180
Symbol 1177 ShapeTweeningUsed by:1180
Symbol 1178 GraphicUsed by:1180
Symbol 1179 GraphicUsed by:1180
Symbol 1180 MovieClipUses:1170 1171 1172 1173 1174 1175 1176 1177 1178 1179Used by:1190 1206
Symbol 1181 ShapeTweeningUsed by:1190
Symbol 1182 GraphicUsed by:1190 1206
Symbol 1183 MovieClipUses:337Used by:1186
Symbol 1184 MovieClipUses:755Used by:1186
Symbol 1185 MovieClipUses:758Used by:1186
Symbol 1186 MovieClip {GAME_08_fla.mc_167}Uses:1183 1184 1185Used by:1190 1206
Symbol 1187 ShapeTweeningUsed by:1190
Symbol 1188 ShapeTweeningUsed by:1190
Symbol 1189 GraphicUsed by:1190 1206
Symbol 1190 MovieClip {GAME_08_fla.mc_158}Uses:1149 1156 1157 1169 1180 1181 1182 1186 1187 1188 1189Used by:1207 1289 1334
Symbol 1191 ShapeTweeningUsed by:1206
Symbol 1192 MovieClipUses:668Used by:1201
Symbol 1193 ShapeTweeningUsed by:1200 1201
Symbol 1194 ShapeTweeningUsed by:1200 1201
Symbol 1195 GraphicUsed by:1200 1201
Symbol 1196 GraphicUsed by:1200 1201
Symbol 1197 MovieClipUses:673Used by:1201
Symbol 1198 GraphicUsed by:1200 1201
Symbol 1199 GraphicUsed by:1200 1201
Symbol 1200 MovieClip {GAME_08_fla.mc_176}Uses:1193 1194 1195 1196 1198 1199Used by:1201
Symbol 1201 MovieClipUses:1192 1193 1194 1195 1196 1197 1198 1199 1200Used by:1202
Symbol 1202 MovieClipUses:1201Used by:1206
Symbol 1203 ShapeTweeningUsed by:1206
Symbol 1204 ShapeTweeningUsed by:1206
Symbol 1205 ShapeTweeningUsed by:1206
Symbol 1206 MovieClip {GAME_08_fla.mc_171}Uses:1149 1156 1180 1191 1202 1203 1182 1186 1204 1205 1189Used by:1207 1289 1334
Symbol 1207 MovieClip {GAME_08_fla.mc_138}Uses:1129 1130 1136 1137 1138 1139 1140 1190 1206Used by:1335
Symbol 1208 MovieClipUses:441Used by:1276 1320
Symbol 1209 MovieClipUses:658Used by:1276 1319
Symbol 1210 MovieClipUses:967Used by:1276
Symbol 1211 MovieClipUses:578Used by:1276
Symbol 1212 MovieClipUses:580Used by:1276
Symbol 1213 GraphicUsed by:1214
Symbol 1214 MovieClipUses:969 970 1213Used by:1276
Symbol 1215 MovieClipUses:973Used by:1276
Symbol 1216 GraphicUsed by:1217
Symbol 1217 MovieClipUses:1216Used by:1274 1276
Symbol 1218 GraphicUsed by:1219
Symbol 1219 MovieClipUses:1218Used by:1274 1276
Symbol 1220 MovieClipUses:979Used by:1274 1276
Symbol 1221 GraphicUsed by:1222
Symbol 1222 MovieClipUses:1221Used by:1276
Symbol 1223 ShapeTweeningUsed by:1243
Symbol 1224 GraphicUsed by:1243
Symbol 1225 GraphicUsed by:1243
Symbol 1226 GraphicUsed by:1243
Symbol 1227 ShapeTweeningUsed by:1243
Symbol 1228 GraphicUsed by:1243
Symbol 1229 GraphicUsed by:1243
Symbol 1230 GraphicUsed by:1243
Symbol 1231 GraphicUsed by:1243
Symbol 1232 GraphicUsed by:1243
Symbol 1233 GraphicUsed by:1243
Symbol 1234 GraphicUsed by:1243
Symbol 1235 GraphicUsed by:1243
Symbol 1236 GraphicUsed by:1243
Symbol 1237 GraphicUsed by:1243
Symbol 1238 GraphicUsed by:1243
Symbol 1239 GraphicUsed by:1243
Symbol 1240 GraphicUsed by:1243
Symbol 1241 GraphicUsed by:1243
Symbol 1242 GraphicUsed by:1243
Symbol 1243 MovieClip {GAME_08_fla.mc_190}Uses:1223 993 1224 1225 1226 1227 1228 999 1000 1001 1002 1229 1004 1005 1230 1231 1232 1233 1234 1235 1236 1013 1014 1015 1237 1238 1239 1240 1241 1242 1022Used by:1276
Symbol 1244 GraphicUsed by:1264
Symbol 1245 ShapeTweeningUsed by:1264
Symbol 1246 ShapeTweeningUsed by:1264
Symbol 1247 ShapeTweeningUsed by:1264
Symbol 1248 ShapeTweeningUsed by:1264
Symbol 1249 ShapeTweeningUsed by:1264
Symbol 1250 GraphicUsed by:1264
Symbol 1251 GraphicUsed by:1264
Symbol 1252 ShapeTweeningUsed by:1264
Symbol 1253 ShapeTweeningUsed by:1264
Symbol 1254 GraphicUsed by:1264
Symbol 1255 ShapeTweeningUsed by:1264
Symbol 1256 ShapeTweeningUsed by:1264
Symbol 1257 ShapeTweeningUsed by:1264
Symbol 1258 ShapeTweeningUsed by:1264
Symbol 1259 ShapeTweeningUsed by:1264
Symbol 1260 GraphicUsed by:1264
Symbol 1261 GraphicUsed by:1264
Symbol 1262 ShapeTweeningUsed by:1264
Symbol 1263 ShapeTweeningUsed by:1264
Symbol 1264 MovieClip {GAME_08_fla.mc_192}Uses:1244 1025 1026 1245 1246 1247 1030 1248 1249 1250 1251 1252 1253 1037 1038 1254 1255 1256 1257 1043 1258 1259 1260 1261 1048 1262 1263 1051 1052 1053 1054Used by:1274
Symbol 1265 GraphicUsed by:1273
Symbol 1266 GraphicUsed by:1273
Symbol 1267 GraphicUsed by:1273
Symbol 1268 GraphicUsed by:1273
Symbol 1269 GraphicUsed by:1273
Symbol 1270 GraphicUsed by:1273
Symbol 1271 GraphicUsed by:1273
Symbol 1272 GraphicUsed by:1273
Symbol 1273 MovieClip {GAME_08_fla.mc_193}Uses:1265 599 1057 1058 1059 600 1266 1267 1268 1269 1270 1271 1272 1067Used by:1274
Symbol 1274 MovieClip {GAME_08_fla.mc_191}Uses:1217 1104 1105 1219 1220 1264 1273Used by:1276
Symbol 1275 MovieClip {GAME_08_fla.mc_194}Uses:441Used by:1276
Symbol 1276 MovieClip {GAME_08_fla.mc_178}Uses:1208 1209 1210 1211 1212 1214 1215 1217 1104 1105 1219 1220 1222 1122 1243 1274 1275Used by:1289
Symbol 1277 GraphicUsed by:1289
Symbol 1278 GraphicUsed by:1279
Symbol 1279 MovieClipUses:1278Used by:1280
Symbol 1280 MovieClip {GAME_08_fla.btn_195}Uses:1279 1135Used by:1289
Symbol 1281 GraphicUsed by:1283
Symbol 1282 GraphicUsed by:1283
Symbol 1283 MovieClip {GAME_08_fla.btn_197}Uses:1281 1135 1282Used by:1289 1334
Symbol 1284 EditableTextUses:416Used by:1289
Symbol 1285 EditableTextUses:416Used by:1289
Symbol 1286 EditableTextUses:416Used by:1289
Symbol 1287 GraphicUsed by:1289 1334
Symbol 1288 EditableTextUses:416Used by:1289
Symbol 1289 MovieClip {GAME_08_fla.mc_177}Uses:1276 1277 1280 1283 1284 1285 1286 1287 1288 1140 1190 1206Used by:1335
Symbol 1290 MovieClipUses:615Used by:1320
Symbol 1291 MovieClipUses:617Used by:1320
Symbol 1292 MovieClipUses:619Used by:1320
Symbol 1293 GraphicUsed by:1294
Symbol 1294 MovieClipUses:1293Used by:1320
Symbol 1295 MovieClipUses:623Used by:1320
Symbol 1296 MovieClipUses:627Used by:1320
Symbol 1297 MovieClipUses:631Used by:1320
Symbol 1298 MovieClipUses:633Used by:1320
Symbol 1299 MovieClipUses:635Used by:1320
Symbol 1300 MovieClipUses:637Used by:1320
Symbol 1301 GraphicUsed by:1309
Symbol 1302 GraphicUsed by:1309
Symbol 1303 GraphicUsed by:1309
Symbol 1304 GraphicUsed by:1309
Symbol 1305 GraphicUsed by:1309
Symbol 1306 GraphicUsed by:1309
Symbol 1307 GraphicUsed by:1309
Symbol 1308 GraphicUsed by:1309
Symbol 1309 MovieClip {GAME_08_fla.mc_210}Uses:1301 599 640 600 1302 1303 1304 1305 1306 1307 1308Used by:1320
Symbol 1310 MovieClipUses:649Used by:1320
Symbol 1311 GraphicUsed by:1312
Symbol 1312 MovieClipUses:1311Used by:1320
Symbol 1313 GraphicUsed by:1314
Symbol 1314 MovieClipUses:1313Used by:1320
Symbol 1315 ShapeTweeningUsed by:1319
Symbol 1316 ShapeTweeningUsed by:1319
Symbol 1317 ShapeTweeningUsed by:1319
Symbol 1318 ShapeTweeningUsed by:1319
Symbol 1319 MovieClip {GAME_08_fla.mc_214}Uses:655 656 657 1209 1315 1316 1317 1318 664Used by:1320
Symbol 1320 MovieClip {GAME_08_fla.mc_199}Uses:1208 1290 1291 1292 1294 1295 1104 1296 1105 1297 1298 1299 1300 1309 1310 1312 1314 1319Used by:1334
Symbol 1321 GraphicUsed by:1334
Symbol 1322 GraphicUsed by:1324
Symbol 1323 GraphicUsed by:1324
Symbol 1324 MovieClip {GAME_08_fla.btn_215}Uses:1322 1135 1323Used by:1334
Symbol 1325 EditableTextUses:416Used by:1334
Symbol 1326 EditableTextUses:416Used by:1334
Symbol 1327 EditableTextUses:416Used by:1334
Symbol 1328 EditableTextUses:416Used by:1334
Symbol 1329 EditableTextUses:416Used by:1334
Symbol 1330 EditableTextUses:416Used by:1334
Symbol 1331 EditableTextUses:416Used by:1334
Symbol 1332 EditableTextUses:416Used by:1334
Symbol 1333 EditableTextUses:416Used by:1334
Symbol 1334 MovieClip {GAME_08_fla.mc_198}Uses:1320 1321 1324 1283 1325 1326 1327 1328 1329 1330 1331 1332 1287 1333 1140 1190 1206Used by:1335
Symbol 1335 MovieClip {GAME_08_fla.msgBox_137}Uses:1207 1289 1334Used by:1336
Symbol 1336 MovieClip {GAME_08_fla.messageBoard_135}Uses:1090 1335Used by:Timeline
Symbol 1337 GraphicUsed by:1370
Symbol 1338 GraphicUsed by:1339
Symbol 1339 MovieClipUses:1338Used by:1370
Symbol 1340 GraphicUsed by:1341
Symbol 1341 MovieClipUses:1340Used by:1370
Symbol 1342 GraphicUsed by:1343
Symbol 1343 MovieClipUses:1342Used by:1370
Symbol 1344 GraphicUsed by:1345
Symbol 1345 MovieClipUses:1344Used by:1370
Symbol 1346 EditableTextUses:416Used by:1370
Symbol 1347 EditableTextUses:416Used by:1370
Symbol 1348 EditableTextUses:416Used by:1370
Symbol 1349 EditableTextUses:416Used by:1370
Symbol 1350 FontUsed by:1351 1352 1354 1355 1357 1358 1359 1360 1361 1362 1363 1365 1366 1367 1368
Symbol 1351 EditableTextUses:1350Used by:1353
Symbol 1352 EditableTextUses:1350Used by:1353
Symbol 1353 MovieClip {GAME_08_fla.digitDisplayLevel_221}Uses:1351 1352Used by:1370
Symbol 1354 EditableTextUses:1350Used by:1356
Symbol 1355 EditableTextUses:1350Used by:1356
Symbol 1356 MovieClip {GAME_08_fla.digitDisplayRolls_222}Uses:1354 1355Used by:1370
Symbol 1357 EditableTextUses:1350Used by:1364
Symbol 1358 EditableTextUses:1350Used by:1364
Symbol 1359 EditableTextUses:1350Used by:1364
Symbol 1360 EditableTextUses:1350Used by:1364
Symbol 1361 EditableTextUses:1350Used by:1364
Symbol 1362 EditableTextUses:1350Used by:1364
Symbol 1363 EditableTextUses:1350Used by:1364
Symbol 1364 MovieClip {GAME_08_fla.digitDisplay_223}Uses:1357 1358 1359 1360 1361 1362 1363Used by:1370
Symbol 1365 EditableTextUses:1350Used by:1369
Symbol 1366 EditableTextUses:1350Used by:1369
Symbol 1367 EditableTextUses:1350Used by:1369
Symbol 1368 EditableTextUses:1350Used by:1369
Symbol 1369 MovieClip {GAME_08_fla.digitDisplayTimer_224}Uses:1365 1366 1367 1368Used by:1370
Symbol 1370 MovieClip {GAME_08_fla.gameUi_216}Uses:1337 1339 1341 1343 1345 1346 1347 1348 1349 1353 1356 1364 1369Used by:Timeline
Symbol 1371 GraphicUsed by:1372
Symbol 1372 MovieClipUses:1371Used by:1377
Symbol 1373 ShapeTweeningUsed by:1377
Symbol 1374 ShapeTweeningUsed by:1377
Symbol 1375 ShapeTweeningUsed by:1377
Symbol 1376 GraphicUsed by:1377
Symbol 1377 MovieClip {GAME_08_fla.btn_225}Uses:1372 1373 1374 1375 1376Used by:Timeline
Symbol 1378 EditableTextUses:795Used by:1394
Symbol 1379 GraphicUsed by:1380
Symbol 1380 MovieClipUses:1379Used by:1394
Symbol 1381 GraphicUsed by:1386
Symbol 1382 GraphicUsed by:1383
Symbol 1383 MovieClipUses:1382Used by:1386
Symbol 1384 GraphicUsed by:1386
Symbol 1385 GraphicUsed by:1386
Symbol 1386 MovieClip {GAME_08_fla.powerArrow_229}Uses:1381 1383 1384 1385Used by:1394
Symbol 1387 GraphicUsed by:1388
Symbol 1388 MovieClipUses:1387Used by:1393
Symbol 1389 ShapeTweeningUsed by:1392
Symbol 1390 ShapeTweeningUsed by:1392
Symbol 1391 GraphicUsed by:1392
Symbol 1392 MovieClipUses:1389 339 1390 1391Used by:1393
Symbol 1393 MovieClip {GAME_08_fla.myGrenade_231}Uses:1388 1392 339Used by:1394
Symbol 1394 MovieClip {GAME_08_fla.engine_227}Uses:1378 1380 1386 1393Used by:Timeline
Symbol 1395 GraphicUsed by:Timeline
Symbol 1396 GraphicUsed by:1397
Symbol 1397 MovieClipUses:1396Used by:1417
Symbol 1398 GraphicUsed by:1399
Symbol 1399 MovieClipUses:1398Used by:1417
Symbol 1400 GraphicUsed by:1417
Symbol 1401 GraphicUsed by:1402
Symbol 1402 MovieClipUses:1401Used by:1417
Symbol 1403 GraphicUsed by:1404
Symbol 1404 MovieClipUses:1403Used by:1417
Symbol 1405 MovieClip {GAME_08_fla.mc_240}Uses:763Used by:1417 1439
Symbol 1406 GraphicUsed by:1408
Symbol 1407 GraphicUsed by:1408
Symbol 1408 MovieClipUses:1406 1081 788 1407Used by:1417
Symbol 1409 GraphicUsed by:1410
Symbol 1410 MovieClipUses:1409Used by:1417
Symbol 1411 ShapeTweeningUsed by:1417
Symbol 1412 ShapeTweeningUsed by:1417
Symbol 1413 ShapeTweeningUsed by:1417
Symbol 1414 ShapeTweeningUsed by:1417
Symbol 1415 ShapeTweeningUsed by:1417
Symbol 1416 ShapeTweeningUsed by:1417
Symbol 1417 MovieClip {GAME_08_fla.mc_235}Uses:614 1397 1399 1400 1402 1404 1405 1408 1410 1411 1412 1413 1414 1415 1416Used by:Timeline
Symbol 1418 GraphicUsed by:1423
Symbol 1419 EditableTextUses:416Used by:1423
Symbol 1420 EditableTextUses:416Used by:1423
Symbol 1421 EditableTextUses:416Used by:1423
Symbol 1422 EditableTextUses:416Used by:1423
Symbol 1423 MovieClip {GAME_08_fla.mc_243}Uses:1418 1419 1420 1421 1422Used by:Timeline
Symbol 1424 GraphicUsed by:1439
Symbol 1425 GraphicUsed by:1426
Symbol 1426 MovieClipUses:1425Used by:1439
Symbol 1427 GraphicUsed by:1428
Symbol 1428 MovieClipUses:1427Used by:1439
Symbol 1429 GraphicUsed by:1436
Symbol 1430 GraphicUsed by:1434
Symbol 1431 GraphicUsed by:1434
Symbol 1432 GraphicUsed by:1434
Symbol 1433 GraphicUsed by:1434
Symbol 1434 MovieClip {GAME_08_fla.mc_248}Uses:1430 1431 1432 1433Used by:1436
Symbol 1435 GraphicUsed by:1436
Symbol 1436 MovieClipUses:1429 1434 991 1435Used by:1439
Symbol 1437 GraphicUsed by:1438
Symbol 1438 MovieClipUses:1437Used by:1439
Symbol 1439 MovieClipUses:1424 659 1405 1426 1428 1436 1438Used by:Timeline
Symbol 1440 GraphicUsed by:1452
Symbol 1441 MovieClipUses:1091Used by:1452
Symbol 1442 MovieClipUses:1093Used by:1452
Symbol 1443 MovieClipUses:1125Used by:1452
Symbol 1444 GraphicUses:1100 1101 1095Used by:1445
Symbol 1445 MovieClipUses:1444Used by:1452
Symbol 1446 GraphicUsed by:1448
Symbol 1447 GraphicUsed by:1448
Symbol 1448 MovieClipUses:1446 991 1447Used by:1452
Symbol 1449 MovieClipUses:1127Used by:1452
Symbol 1450 GraphicUsed by:1451
Symbol 1451 MovieClipUses:1450Used by:1452
Symbol 1452 MovieClipUses:1440 1441 1442 1443 1445 626 630 1448 1449 1451Used by:Timeline
Symbol 1453 EditableTextUses:813Used by:1454
Symbol 1454 MovieClip {GAME_08_fla.btn_258}Uses:840 1453 836 843 845 847 849 851 853 855 857Used by:Timeline

Instance Names

"percentText"Frame 1Symbol 417 EditableText
"soundBox"Frame 1Symbol 434 MovieClip {GAME_08_fla.soundBox_4}
"gameLogo"Frame 10Symbol 440 MovieClip {GAME_08_fla.gameLogo_5}
"langPanel"Frame 10Symbol 667 MovieClip {GAME_08_fla.Screen_6}
"ubiLogo"Frame 20Symbol 794 MovieClip
"partnerLogo"Frame 20Symbol 807 MovieClip {GAME_08_fla.mc_88}
"gameLogo"Frame 20Symbol 811 MovieClip {GAME_08_fla.mc_89}
"b_figurine"Frame 20Symbol 821 MovieClip {GAME_08_fla.btn_90}
"b_preorder"Frame 20Symbol 858 MovieClip {GAME_08_fla.btn_92}
"b_play"Frame 20Symbol 862 MovieClip {GAME_08_fla.btn_98}
"b_high"Frame 20Symbol 866 MovieClip {GAME_08_fla.btn_99}
"b_visit"Frame 20Symbol 879 MovieClip {GAME_08_fla.btn_100}
"gameLogoLevels"Frame 30Symbol 440 MovieClip {GAME_08_fla.gameLogo_5}
"pLeft"Frame 30Symbol 881 Button
"pRight"Frame 30Symbol 883 Button
"t2"Frame 30Symbol 899 MovieClip {GAME_08_fla.btn_107}
"t1"Frame 30Symbol 913 MovieClip {GAME_08_fla.btn_110}
"t3"Frame 30Symbol 926 MovieClip {GAME_08_fla.btn_111}
"t5"Frame 30Symbol 939 MovieClip {GAME_08_fla.btn_112}
"t4"Frame 30Symbol 952 MovieClip {GAME_08_fla.btn_113}
"t6"Frame 30Symbol 966 MovieClip {GAME_08_fla.btn_114}
"rabbid2"Frame 30Symbol 1071 MovieClip {GAME_08_fla.mc_115}
"rabbid1"Frame 30Symbol 1088 MovieClip
"msg"Frame 40Symbol 1336 MovieClip {GAME_08_fla.messageBoard_135}
"gameUi"Frame 40Symbol 1370 MovieClip {GAME_08_fla.gameUi_216}
"gameLogoGame"Frame 40Symbol 440 MovieClip {GAME_08_fla.gameLogo_5}
"restartButton"Frame 40Symbol 1377 MovieClip {GAME_08_fla.btn_225}
"engine"Frame 41Symbol 1394 MovieClip {GAME_08_fla.engine_227}
"rabbid2"Frame 50Symbol 1417 MovieClip {GAME_08_fla.mc_235}
"fridge"Frame 50Symbol 1423 MovieClip {GAME_08_fla.mc_243}
"rabbid1"Frame 50Symbol 1439 MovieClip
"rabbid3"Frame 50Symbol 1452 MovieClip
"b_visit"Frame 50Symbol 879 MovieClip {GAME_08_fla.btn_100}
"b_preorder"Frame 50Symbol 1454 MovieClip {GAME_08_fla.btn_258}
"gameLogoEnd"Frame 50Symbol 811 MovieClip {GAME_08_fla.mc_89}
"rabbidIdle"Symbol 70 MovieClip {GAME_08_fla.mc_304} Frame 1Symbol 36 MovieClip
"rabbidThrow"Symbol 70 MovieClip {GAME_08_fla.mc_304} Frame 10Symbol 47 MovieClip {GAME_08_fla.mc_318}
"rabbidReload"Symbol 70 MovieClip {GAME_08_fla.mc_304} Frame 20Symbol 48 MovieClip {GAME_08_fla.mc_322}
"rabbidSuccess"Symbol 70 MovieClip {GAME_08_fla.mc_304} Frame 30Symbol 53 MovieClip {GAME_08_fla.mc_323}
"rabbidFail"Symbol 70 MovieClip {GAME_08_fla.mc_304} Frame 40Symbol 68 MovieClip {GAME_08_fla.mc_326}
"rabbidFail"Symbol 70 MovieClip {GAME_08_fla.mc_304} Frame 51Symbol 69 MovieClip {GAME_08_fla.mc_332}
"enemy3Idle"Symbol 116 MovieClip {GAME_08_fla.mc_333} Frame 1Symbol 106 MovieClip
"enemy3Hit"Symbol 116 MovieClip {GAME_08_fla.mc_333} Frame 10Symbol 115 MovieClip {GAME_08_fla.mc_345}
"enemy1Idle"Symbol 153 MovieClip {GAME_08_fla.mc_350} Frame 1Symbol 144 MovieClip
"enemy1Hit"Symbol 153 MovieClip {GAME_08_fla.mc_350} Frame 10Symbol 152 MovieClip {GAME_08_fla.mc_363}
"enemy2Idle"Symbol 177 MovieClip {GAME_08_fla.mc_368} Frame 1Symbol 169 MovieClip
"enemy2Hit"Symbol 177 MovieClip {GAME_08_fla.mc_368} Frame 10Symbol 176 MovieClip {GAME_08_fla.mc_378}
"enemy2Idle"Symbol 202 MovieClip {GAME_08_fla.mc_382} Frame 1Symbol 197 MovieClip {GAME_08_fla.mc_383}
"enemy2Hit"Symbol 202 MovieClip {GAME_08_fla.mc_382} Frame 10Symbol 201 MovieClip {GAME_08_fla.mc_394}
"rabbid"Symbol 234 MovieClip {props} Frame 1Symbol 70 MovieClip {GAME_08_fla.mc_304}
"enemy"Symbol 234 MovieClip {props} Frame 3Symbol 116 MovieClip {GAME_08_fla.mc_333}
"enemy"Symbol 234 MovieClip {props} Frame 5Symbol 153 MovieClip {GAME_08_fla.mc_350}
"enemy"Symbol 234 MovieClip {props} Frame 7Symbol 177 MovieClip {GAME_08_fla.mc_368}
"enemy"Symbol 234 MovieClip {props} Frame 9Symbol 202 MovieClip {GAME_08_fla.mc_382}
"FG"Symbol 240 MovieClip {level04} Frame 1Symbol 239 MovieClip
"FG"Symbol 246 MovieClip {level05} Frame 1Symbol 245 MovieClip
"FG"Symbol 252 MovieClip {level08} Frame 1Symbol 251 MovieClip
"FG"Symbol 258 MovieClip {level07} Frame 1Symbol 257 MovieClip
"FG"Symbol 264 MovieClip {level06} Frame 1Symbol 263 MovieClip
"FG"Symbol 270 MovieClip {level09} Frame 1Symbol 269 MovieClip
"FG"Symbol 276 MovieClip {level18} Frame 1Symbol 275 MovieClip
"FG"Symbol 282 MovieClip {level17} Frame 1Symbol 281 MovieClip
"FG"Symbol 288 MovieClip {level16} Frame 1Symbol 287 MovieClip
"FG"Symbol 294 MovieClip {level15} Frame 1Symbol 293 MovieClip
"FG"Symbol 300 MovieClip {level14} Frame 1Symbol 299 MovieClip
"FG"Symbol 306 MovieClip {level10} Frame 1Symbol 305 MovieClip
"FG"Symbol 312 MovieClip {level11} Frame 1Symbol 311 MovieClip
"FG"Symbol 318 MovieClip {level13} Frame 1Symbol 317 MovieClip
"FG"Symbol 324 MovieClip {level12} Frame 1Symbol 323 MovieClip
"FG"Symbol 330 MovieClip {level03} Frame 1Symbol 329 MovieClip
"FG"Symbol 336 MovieClip {level02} Frame 1Symbol 335 MovieClip
"str6"Symbol 371 MovieClip {tpExplode} Frame 3Symbol 347 MovieClip
"str6"Symbol 371 MovieClip {tpExplode} Frame 4Symbol 347 MovieClip
"str6"Symbol 371 MovieClip {tpExplode} Frame 5Symbol 347 MovieClip
"FG"Symbol 377 MovieClip {level01} Frame 1Symbol 376 MovieClip
"flagGER"Symbol 667 MovieClip {GAME_08_fla.Screen_6} Frame 1Symbol 458 MovieClip {GAME_08_fla.btn_7}
"flagAUT"Symbol 667 MovieClip {GAME_08_fla.Screen_6} Frame 1Symbol 475 MovieClip {GAME_08_fla.btn_8}
"flagUK"Symbol 667 MovieClip {GAME_08_fla.Screen_6} Frame 1Symbol 490 MovieClip {GAME_08_fla.btn_9}
"flagUS"Symbol 667 MovieClip {GAME_08_fla.Screen_6} Frame 1Symbol 505 MovieClip {GAME_08_fla.btn_10}
"flagESP"Symbol 667 MovieClip {GAME_08_fla.Screen_6} Frame 1Symbol 520 MovieClip {GAME_08_fla.btn_11}
"flagFRA"Symbol 667 MovieClip {GAME_08_fla.Screen_6} Frame 1Symbol 534 MovieClip {GAME_08_fla.btn_12}
"flagITA"Symbol 667 MovieClip {GAME_08_fla.Screen_6} Frame 1Symbol 549 MovieClip {GAME_08_fla.btn_13}
"flagNED"Symbol 667 MovieClip {GAME_08_fla.Screen_6} Frame 1Symbol 563 MovieClip {GAME_08_fla.btn_14}
"flagSWE"Symbol 667 MovieClip {GAME_08_fla.Screen_6} Frame 1Symbol 577 MovieClip {GAME_08_fla.btn_15}
"rabbidMC"Symbol 667 MovieClip {GAME_08_fla.Screen_6} Frame 1Symbol 613 MovieClip
"rabbidMC"Symbol 667 MovieClip {GAME_08_fla.Screen_6} Frame 1Symbol 666 MovieClip {GAME_08_fla.mc_30}
"bText"Symbol 821 MovieClip {GAME_08_fla.btn_90} Frame 1Symbol 814 EditableText
"poUS"Symbol 858 MovieClip {GAME_08_fla.btn_92} Frame 1Symbol 833 MovieClip {GAME_08_fla.btn_93}
"bText"Symbol 858 MovieClip {GAME_08_fla.btn_92} Frame 1Symbol 834 EditableText
"poUS"Symbol 858 MovieClip {GAME_08_fla.btn_92} Frame 2Symbol 840 MovieClip {GAME_08_fla.btn_96}
"bText"Symbol 858 MovieClip {GAME_08_fla.btn_92} Frame 2Symbol 841 EditableText
"bText"Symbol 862 MovieClip {GAME_08_fla.btn_98} Frame 1Symbol 860 EditableText
"bText"Symbol 866 MovieClip {GAME_08_fla.btn_99} Frame 1Symbol 864 EditableText
"bText"Symbol 873 MovieClip {GAME_08_fla.btn_101} Frame 1Symbol 868 EditableText
"island"Symbol 873 MovieClip {GAME_08_fla.btn_101} Frame 1Symbol 871 MovieClip
"bText"Symbol 877 MovieClip {GAME_08_fla.btn_103} Frame 1Symbol 875 EditableText
"btn"Symbol 879 MovieClip {GAME_08_fla.btn_100} Frame 1Symbol 873 MovieClip {GAME_08_fla.btn_101}
"btn"Symbol 879 MovieClip {GAME_08_fla.btn_100} Frame 2Symbol 877 MovieClip {GAME_08_fla.btn_103}
"shade"Symbol 899 MovieClip {GAME_08_fla.btn_107} Frame 1Symbol 890 MovieClip
"lock"Symbol 899 MovieClip {GAME_08_fla.btn_107} Frame 1Symbol 892 MovieClip
"shade"Symbol 913 MovieClip {GAME_08_fla.btn_110} Frame 1Symbol 890 MovieClip
"lock"Symbol 913 MovieClip {GAME_08_fla.btn_110} Frame 1Symbol 892 MovieClip
"shade"Symbol 926 MovieClip {GAME_08_fla.btn_111} Frame 1Symbol 890 MovieClip
"lock"Symbol 926 MovieClip {GAME_08_fla.btn_111} Frame 1Symbol 892 MovieClip
"shade"Symbol 939 MovieClip {GAME_08_fla.btn_112} Frame 1Symbol 890 MovieClip
"lock"Symbol 939 MovieClip {GAME_08_fla.btn_112} Frame 1Symbol 892 MovieClip
"shade"Symbol 952 MovieClip {GAME_08_fla.btn_113} Frame 1Symbol 890 MovieClip
"lock"Symbol 952 MovieClip {GAME_08_fla.btn_113} Frame 1Symbol 892 MovieClip
"shade"Symbol 966 MovieClip {GAME_08_fla.btn_114} Frame 1Symbol 890 MovieClip
"lock"Symbol 966 MovieClip {GAME_08_fla.btn_114} Frame 1Symbol 892 MovieClip
"rabbidMC"Symbol 1207 MovieClip {GAME_08_fla.mc_138} Frame 1Symbol 1129 MovieClip {GAME_08_fla.mc_139}
"btnOK"Symbol 1207 MovieClip {GAME_08_fla.mc_138} Frame 1Symbol 1136 MovieClip {GAME_08_fla.btn_155}
"msgText"Symbol 1207 MovieClip {GAME_08_fla.mc_138} Frame 1Symbol 1137 EditableText
"msgLabel"Symbol 1207 MovieClip {GAME_08_fla.mc_138} Frame 1Symbol 1139 EditableText
"clock"Symbol 1207 MovieClip {GAME_08_fla.mc_138} Frame 1Symbol 1190 MovieClip {GAME_08_fla.mc_158}
"sandtimer"Symbol 1207 MovieClip {GAME_08_fla.mc_138} Frame 1Symbol 1206 MovieClip {GAME_08_fla.mc_171}
"btnReplay"Symbol 1289 MovieClip {GAME_08_fla.mc_177} Frame 1Symbol 1280 MovieClip {GAME_08_fla.btn_195}
"btnHome"Symbol 1289 MovieClip {GAME_08_fla.mc_177} Frame 1Symbol 1283 MovieClip {GAME_08_fla.btn_197}
"failText"Symbol 1289 MovieClip {GAME_08_fla.mc_177} Frame 1Symbol 1284 EditableText
"homeText"Symbol 1289 MovieClip {GAME_08_fla.mc_177} Frame 1Symbol 1285 EditableText
"replayText"Symbol 1289 MovieClip {GAME_08_fla.mc_177} Frame 1Symbol 1286 EditableText
"labelText"Symbol 1289 MovieClip {GAME_08_fla.mc_177} Frame 1Symbol 1288 EditableText
"clock"Symbol 1289 MovieClip {GAME_08_fla.mc_177} Frame 1Symbol 1190 MovieClip {GAME_08_fla.mc_158}
"sandtimer"Symbol 1289 MovieClip {GAME_08_fla.mc_177} Frame 1Symbol 1206 MovieClip {GAME_08_fla.mc_171}
"btnNext"Symbol 1334 MovieClip {GAME_08_fla.mc_198} Frame 1Symbol 1324 MovieClip {GAME_08_fla.btn_215}
"btnHome"Symbol 1334 MovieClip {GAME_08_fla.mc_198} Frame 1Symbol 1283 MovieClip {GAME_08_fla.btn_197}
"score"Symbol 1334 MovieClip {GAME_08_fla.mc_198} Frame 1Symbol 1325 EditableText
"hits"Symbol 1334 MovieClip {GAME_08_fla.mc_198} Frame 1Symbol 1326 EditableText
"bonus"Symbol 1334 MovieClip {GAME_08_fla.mc_198} Frame 1Symbol 1327 EditableText
"hitsText"Symbol 1334 MovieClip {GAME_08_fla.mc_198} Frame 1Symbol 1328 EditableText
"totalText"Symbol 1334 MovieClip {GAME_08_fla.mc_198} Frame 1Symbol 1329 EditableText
"homeText"Symbol 1334 MovieClip {GAME_08_fla.mc_198} Frame 1Symbol 1330 EditableText
"nextText"Symbol 1334 MovieClip {GAME_08_fla.mc_198} Frame 1Symbol 1331 EditableText
"bonusText"Symbol 1334 MovieClip {GAME_08_fla.mc_198} Frame 1Symbol 1332 EditableText
"clearLabel"Symbol 1334 MovieClip {GAME_08_fla.mc_198} Frame 1Symbol 1333 EditableText
"clock"Symbol 1334 MovieClip {GAME_08_fla.mc_198} Frame 1Symbol 1190 MovieClip {GAME_08_fla.mc_158}
"sandtimer"Symbol 1334 MovieClip {GAME_08_fla.mc_198} Frame 1Symbol 1206 MovieClip {GAME_08_fla.mc_171}
"msg"Symbol 1335 MovieClip {GAME_08_fla.msgBox_137} Frame 1Symbol 1207 MovieClip {GAME_08_fla.mc_138}
"fail"Symbol 1335 MovieClip {GAME_08_fla.msgBox_137} Frame 1Symbol 1289 MovieClip {GAME_08_fla.mc_177}
"clr"Symbol 1335 MovieClip {GAME_08_fla.msgBox_137} Frame 1Symbol 1334 MovieClip {GAME_08_fla.mc_198}
"fadeBg"Symbol 1336 MovieClip {GAME_08_fla.messageBoard_135} Frame 1Symbol 1090 MovieClip
"box"Symbol 1336 MovieClip {GAME_08_fla.messageBoard_135} Frame 1Symbol 1335 MovieClip {GAME_08_fla.msgBox_137}
"num0"Symbol 1353 MovieClip {GAME_08_fla.digitDisplayLevel_221} Frame 1Symbol 1351 EditableText
"num1"Symbol 1353 MovieClip {GAME_08_fla.digitDisplayLevel_221} Frame 1Symbol 1352 EditableText
"num0"Symbol 1356 MovieClip {GAME_08_fla.digitDisplayRolls_222} Frame 1Symbol 1354 EditableText
"num1"Symbol 1356 MovieClip {GAME_08_fla.digitDisplayRolls_222} Frame 1Symbol 1355 EditableText
"num0"Symbol 1364 MovieClip {GAME_08_fla.digitDisplay_223} Frame 1Symbol 1357 EditableText
"num1"Symbol 1364 MovieClip {GAME_08_fla.digitDisplay_223} Frame 1Symbol 1358 EditableText
"num2"Symbol 1364 MovieClip {GAME_08_fla.digitDisplay_223} Frame 1Symbol 1359 EditableText
"num3"Symbol 1364 MovieClip {GAME_08_fla.digitDisplay_223} Frame 1Symbol 1360 EditableText
"num4"Symbol 1364 MovieClip {GAME_08_fla.digitDisplay_223} Frame 1Symbol 1361 EditableText
"num5"Symbol 1364 MovieClip {GAME_08_fla.digitDisplay_223} Frame 1Symbol 1362 EditableText
"num6"Symbol 1364 MovieClip {GAME_08_fla.digitDisplay_223} Frame 1Symbol 1363 EditableText
"num0"Symbol 1369 MovieClip {GAME_08_fla.digitDisplayTimer_224} Frame 1Symbol 1365 EditableText
"num1"Symbol 1369 MovieClip {GAME_08_fla.digitDisplayTimer_224} Frame 1Symbol 1366 EditableText
"num2"Symbol 1369 MovieClip {GAME_08_fla.digitDisplayTimer_224} Frame 1Symbol 1367 EditableText
"num3"Symbol 1369 MovieClip {GAME_08_fla.digitDisplayTimer_224} Frame 1Symbol 1368 EditableText
"timer"Symbol 1370 MovieClip {GAME_08_fla.gameUi_216} Frame 1Symbol 1339 MovieClip
"rolls"Symbol 1370 MovieClip {GAME_08_fla.gameUi_216} Frame 1Symbol 1341 MovieClip
"score"Symbol 1370 MovieClip {GAME_08_fla.gameUi_216} Frame 1Symbol 1343 MovieClip
"level"Symbol 1370 MovieClip {GAME_08_fla.gameUi_216} Frame 1Symbol 1345 MovieClip
"scoreText"Symbol 1370 MovieClip {GAME_08_fla.gameUi_216} Frame 1Symbol 1346 EditableText
"rollsText"Symbol 1370 MovieClip {GAME_08_fla.gameUi_216} Frame 1Symbol 1347 EditableText
"levelText"Symbol 1370 MovieClip {GAME_08_fla.gameUi_216} Frame 1Symbol 1348 EditableText
"timeText"Symbol 1370 MovieClip {GAME_08_fla.gameUi_216} Frame 1Symbol 1349 EditableText
"levelNum"Symbol 1370 MovieClip {GAME_08_fla.gameUi_216} Frame 1Symbol 1353 MovieClip {GAME_08_fla.digitDisplayLevel_221}
"rollsNum"Symbol 1370 MovieClip {GAME_08_fla.gameUi_216} Frame 1Symbol 1356 MovieClip {GAME_08_fla.digitDisplayRolls_222}
"scoreNum"Symbol 1370 MovieClip {GAME_08_fla.gameUi_216} Frame 1Symbol 1364 MovieClip {GAME_08_fla.digitDisplay_223}
"timeNum"Symbol 1370 MovieClip {GAME_08_fla.gameUi_216} Frame 1Symbol 1369 MovieClip {GAME_08_fla.digitDisplayTimer_224}
"powerMask"Symbol 1386 MovieClip {GAME_08_fla.powerArrow_229} Frame 1Symbol 1383 MovieClip
"canvas"Symbol 1394 MovieClip {GAME_08_fla.engine_227} Frame 1Symbol 1380 MovieClip
"powerArrow"Symbol 1394 MovieClip {GAME_08_fla.engine_227} Frame 1Symbol 1386 MovieClip {GAME_08_fla.powerArrow_229}
"grGfx"Symbol 1394 MovieClip {GAME_08_fla.engine_227} Frame 1Symbol 1393 MovieClip {GAME_08_fla.myGrenade_231}
"totalScore"Symbol 1423 MovieClip {GAME_08_fla.mc_243} Frame 1Symbol 1419 EditableText
"congratsTitle"Symbol 1423 MovieClip {GAME_08_fla.mc_243} Frame 1Symbol 1420 EditableText
"congratsTxt"Symbol 1423 MovieClip {GAME_08_fla.mc_243} Frame 1Symbol 1421 EditableText
"scoreTxt"Symbol 1423 MovieClip {GAME_08_fla.mc_243} Frame 1Symbol 1422 EditableText
"poUS"Symbol 1454 MovieClip {GAME_08_fla.btn_258} Frame 1Symbol 840 MovieClip {GAME_08_fla.btn_96}
"bText"Symbol 1454 MovieClip {GAME_08_fla.btn_258} Frame 1Symbol 1453 EditableText

Special Tags

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

Labels

"propXML"Frame 1
"levelsXML"Frame 1
"preloader"Frame 1
"langsXML"Frame 1
"language_select"Frame 10
"main_menu"Frame 20
"level_select"Frame 30
"gameplay"Frame 40
"final_screen"Frame 50
"loop"Symbol 47 MovieClip {GAME_08_fla.mc_318} Frame 31
"loop"Symbol 53 MovieClip {GAME_08_fla.mc_323} Frame 37
"idle"Symbol 70 MovieClip {GAME_08_fla.mc_304} Frame 1
"throw"Symbol 70 MovieClip {GAME_08_fla.mc_304} Frame 10
"reload"Symbol 70 MovieClip {GAME_08_fla.mc_304} Frame 20
"success"Symbol 70 MovieClip {GAME_08_fla.mc_304} Frame 30
"fail"Symbol 70 MovieClip {GAME_08_fla.mc_304} Frame 40
"boom"Symbol 70 MovieClip {GAME_08_fla.mc_304} Frame 51
"idle"Symbol 116 MovieClip {GAME_08_fla.mc_333} Frame 1
"hit"Symbol 116 MovieClip {GAME_08_fla.mc_333} Frame 10
"idle"Symbol 153 MovieClip {GAME_08_fla.mc_350} Frame 1
"hit"Symbol 153 MovieClip {GAME_08_fla.mc_350} Frame 10
"idle"Symbol 177 MovieClip {GAME_08_fla.mc_368} Frame 1
"hit"Symbol 177 MovieClip {GAME_08_fla.mc_368} Frame 10
"idle"Symbol 202 MovieClip {GAME_08_fla.mc_382} Frame 1
"hit"Symbol 202 MovieClip {GAME_08_fla.mc_382} Frame 10
"rabbid"Symbol 234 MovieClip {props} Frame 1
"teammate_rabbid"Symbol 234 MovieClip {props} Frame 2
"grunt_cave_1_left"Symbol 234 MovieClip {props} Frame 3
"grunt_cave_1_right"Symbol 234 MovieClip {props} Frame 4
"grunt_egypt_1_left"Symbol 234 MovieClip {props} Frame 5
"grunt_egypt_1_right"Symbol 234 MovieClip {props} Frame 6
"grunt_med_1_left"Symbol 234 MovieClip {props} Frame 7
"grunt_med_1_right"Symbol 234 MovieClip {props} Frame 8
"grunt_med_swordpull_right"Symbol 234 MovieClip {props} Frame 9
"grunt_med_swordpull_left"Symbol 234 MovieClip {props} Frame 10
"cave_rock_1"Symbol 234 MovieClip {props} Frame 11
"cave_rock_2"Symbol 234 MovieClip {props} Frame 12
"cave_branch_1"Symbol 234 MovieClip {props} Frame 13
"cave_branch_2"Symbol 234 MovieClip {props} Frame 14
"egypt_brick_1"Symbol 234 MovieClip {props} Frame 15
"egypt_brick_2"Symbol 234 MovieClip {props} Frame 16
"egypt_plank_1"Symbol 234 MovieClip {props} Frame 17
"egypt_plank_2"Symbol 234 MovieClip {props} Frame 18
"egypt_plank_3"Symbol 234 MovieClip {props} Frame 19
"medieval_stone_1"Symbol 234 MovieClip {props} Frame 20
"medieval_catapult_stone"Symbol 234 MovieClip {props} Frame 21
"the movieclip on this level is the foreground and it has the instance name 'FG' for actionscript"Symbol 240 MovieClip {level04} Frame 1
"anything that is not in the FG movieclip is considered background"Symbol 240 MovieClip {level04} Frame 1
"the movieclip on this level is the foreground and it has the instance name 'FG' for actionscript"Symbol 246 MovieClip {level05} Frame 1
"anything that is not in the FG movieclip is considered background"Symbol 246 MovieClip {level05} Frame 1
"the movieclip on this level is the foreground and it has the instance name 'FG' for actionscript"Symbol 252 MovieClip {level08} Frame 1
"anything that is not in the FG movieclip is considered background"Symbol 252 MovieClip {level08} Frame 1
"the movieclip on this level is the foreground and it has the instance name 'FG' for actionscript"Symbol 258 MovieClip {level07} Frame 1
"anything that is not in the FG movieclip is considered background"Symbol 258 MovieClip {level07} Frame 1
"the movieclip on this level is the foreground and it has the instance name 'FG' for actionscript"Symbol 264 MovieClip {level06} Frame 1
"anything that is not in the FG movieclip is considered background"Symbol 264 MovieClip {level06} Frame 1
"the movieclip on this level is the foreground and it has the instance name 'FG' for actionscript"Symbol 270 MovieClip {level09} Frame 1
"anything that is not in the FG movieclip is considered background"Symbol 270 MovieClip {level09} Frame 1
"the movieclip on this level is the foreground and it has the instance name 'FG' for actionscript"Symbol 276 MovieClip {level18} Frame 1
"anything that is not in the FG movieclip is considered background"Symbol 276 MovieClip {level18} Frame 1
"the movieclip on this level is the foreground and it has the instance name 'FG' for actionscript"Symbol 282 MovieClip {level17} Frame 1
"anything that is not in the FG movieclip is considered background"Symbol 282 MovieClip {level17} Frame 1
"the movieclip on this level is the foreground and it has the instance name 'FG' for actionscript"Symbol 288 MovieClip {level16} Frame 1
"anything that is not in the FG movieclip is considered background"Symbol 288 MovieClip {level16} Frame 1
"the movieclip on this level is the foreground and it has the instance name 'FG' for actionscript"Symbol 294 MovieClip {level15} Frame 1
"anything that is not in the FG movieclip is considered background"Symbol 294 MovieClip {level15} Frame 1
"the movieclip on this level is the foreground and it has the instance name 'FG' for actionscript"Symbol 300 MovieClip {level14} Frame 1
"anything that is not in the FG movieclip is considered background"Symbol 300 MovieClip {level14} Frame 1
"the movieclip on this level is the foreground and it has the instance name 'FG' for actionscript"Symbol 306 MovieClip {level10} Frame 1
"anything that is not in the FG movieclip is considered background"Symbol 306 MovieClip {level10} Frame 1
"the movieclip on this level is the foreground and it has the instance name 'FG' for actionscript"Symbol 312 MovieClip {level11} Frame 1
"anything that is not in the FG movieclip is considered background"Symbol 312 MovieClip {level11} Frame 1
"the movieclip on this level is the foreground and it has the instance name 'FG' for actionscript"Symbol 318 MovieClip {level13} Frame 1
"anything that is not in the FG movieclip is considered background"Symbol 318 MovieClip {level13} Frame 1
"the movieclip on this level is the foreground and it has the instance name 'FG' for actionscript"Symbol 324 MovieClip {level12} Frame 1
"anything that is not in the FG movieclip is considered background"Symbol 324 MovieClip {level12} Frame 1
"the movieclip on this level is the foreground and it has the instance name 'FG' for actionscript"Symbol 330 MovieClip {level03} Frame 1
"anything that is not in the FG movieclip is considered background"Symbol 330 MovieClip {level03} Frame 1
"the movieclip on this level is the foreground and it has the instance name 'FG' for actionscript"Symbol 336 MovieClip {level02} Frame 1
"anything that is not in the FG movieclip is considered background"Symbol 336 MovieClip {level02} Frame 1
"us"Symbol 440 MovieClip {GAME_08_fla.gameLogo_5} Frame 1
"uk"Symbol 440 MovieClip {GAME_08_fla.gameLogo_5} Frame 2
"swe"Symbol 440 MovieClip {GAME_08_fla.gameLogo_5} Frame 3
"ita"Symbol 440 MovieClip {GAME_08_fla.gameLogo_5} Frame 4
"esp"Symbol 440 MovieClip {GAME_08_fla.gameLogo_5} Frame 5
"fra"Symbol 440 MovieClip {GAME_08_fla.gameLogo_5} Frame 6
"aut"Symbol 440 MovieClip {GAME_08_fla.gameLogo_5} Frame 7
"ger"Symbol 440 MovieClip {GAME_08_fla.gameLogo_5} Frame 8
"in"Symbol 458 MovieClip {GAME_08_fla.btn_7} Frame 2
"out"Symbol 458 MovieClip {GAME_08_fla.btn_7} Frame 9
"in"Symbol 475 MovieClip {GAME_08_fla.btn_8} Frame 2
"out"Symbol 475 MovieClip {GAME_08_fla.btn_8} Frame 9
"in"Symbol 490 MovieClip {GAME_08_fla.btn_9} Frame 2
"out"Symbol 490 MovieClip {GAME_08_fla.btn_9} Frame 9
"in"Symbol 505 MovieClip {GAME_08_fla.btn_10} Frame 2
"out"Symbol 505 MovieClip {GAME_08_fla.btn_10} Frame 9
"in"Symbol 520 MovieClip {GAME_08_fla.btn_11} Frame 2
"out"Symbol 520 MovieClip {GAME_08_fla.btn_11} Frame 9
"in"Symbol 534 MovieClip {GAME_08_fla.btn_12} Frame 2
"out"Symbol 534 MovieClip {GAME_08_fla.btn_12} Frame 9
"in"Symbol 549 MovieClip {GAME_08_fla.btn_13} Frame 2
"out"Symbol 549 MovieClip {GAME_08_fla.btn_13} Frame 9
"in"Symbol 563 MovieClip {GAME_08_fla.btn_14} Frame 2
"out"Symbol 563 MovieClip {GAME_08_fla.btn_14} Frame 9
"in"Symbol 577 MovieClip {GAME_08_fla.btn_15} Frame 2
"out"Symbol 577 MovieClip {GAME_08_fla.btn_15} Frame 9
"loop"Symbol 666 MovieClip {GAME_08_fla.mc_30} Frame 13
"us"Symbol 807 MovieClip {GAME_08_fla.mc_88} Frame 1
"uk"Symbol 807 MovieClip {GAME_08_fla.mc_88} Frame 2
"swe"Symbol 807 MovieClip {GAME_08_fla.mc_88} Frame 3
"ita"Symbol 807 MovieClip {GAME_08_fla.mc_88} Frame 4
"esp"Symbol 807 MovieClip {GAME_08_fla.mc_88} Frame 5
"fra"Symbol 807 MovieClip {GAME_08_fla.mc_88} Frame 6
"aut"Symbol 807 MovieClip {GAME_08_fla.mc_88} Frame 7
"ger"Symbol 807 MovieClip {GAME_08_fla.mc_88} Frame 8
"us"Symbol 811 MovieClip {GAME_08_fla.mc_89} Frame 1
"uk"Symbol 811 MovieClip {GAME_08_fla.mc_89} Frame 2
"swe"Symbol 811 MovieClip {GAME_08_fla.mc_89} Frame 3
"ita"Symbol 811 MovieClip {GAME_08_fla.mc_89} Frame 4
"esp"Symbol 811 MovieClip {GAME_08_fla.mc_89} Frame 5
"fra"Symbol 811 MovieClip {GAME_08_fla.mc_89} Frame 6
"aut"Symbol 811 MovieClip {GAME_08_fla.mc_89} Frame 7
"ger"Symbol 811 MovieClip {GAME_08_fla.mc_89} Frame 8
"in"Symbol 821 MovieClip {GAME_08_fla.btn_90} Frame 2
"out"Symbol 821 MovieClip {GAME_08_fla.btn_90} Frame 9
"in"Symbol 833 MovieClip {GAME_08_fla.btn_93} Frame 2
"out"Symbol 833 MovieClip {GAME_08_fla.btn_93} Frame 9
"in"Symbol 840 MovieClip {GAME_08_fla.btn_96} Frame 2
"out"Symbol 840 MovieClip {GAME_08_fla.btn_96} Frame 9
"us"Symbol 858 MovieClip {GAME_08_fla.btn_92} Frame 1
"uk"Symbol 858 MovieClip {GAME_08_fla.btn_92} Frame 2
"swe"Symbol 858 MovieClip {GAME_08_fla.btn_92} Frame 3
"esp"Symbol 858 MovieClip {GAME_08_fla.btn_92} Frame 4
"ita"Symbol 858 MovieClip {GAME_08_fla.btn_92} Frame 5
"fra"Symbol 858 MovieClip {GAME_08_fla.btn_92} Frame 6
"aut"Symbol 858 MovieClip {GAME_08_fla.btn_92} Frame 7
"ger"Symbol 858 MovieClip {GAME_08_fla.btn_92} Frame 8
"in"Symbol 862 MovieClip {GAME_08_fla.btn_98} Frame 2
"out"Symbol 862 MovieClip {GAME_08_fla.btn_98} Frame 9
"in"Symbol 866 MovieClip {GAME_08_fla.btn_99} Frame 2
"out"Symbol 866 MovieClip {GAME_08_fla.btn_99} Frame 9
"in"Symbol 873 MovieClip {GAME_08_fla.btn_101} Frame 2
"out"Symbol 873 MovieClip {GAME_08_fla.btn_101} Frame 9
"in"Symbol 877 MovieClip {GAME_08_fla.btn_103} Frame 2
"out"Symbol 877 MovieClip {GAME_08_fla.btn_103} Frame 9
"in"Symbol 899 MovieClip {GAME_08_fla.btn_107} Frame 2
"out"Symbol 899 MovieClip {GAME_08_fla.btn_107} Frame 9
"in"Symbol 913 MovieClip {GAME_08_fla.btn_110} Frame 2
"out"Symbol 913 MovieClip {GAME_08_fla.btn_110} Frame 9
"in"Symbol 926 MovieClip {GAME_08_fla.btn_111} Frame 2
"out"Symbol 926 MovieClip {GAME_08_fla.btn_111} Frame 9
"in"Symbol 939 MovieClip {GAME_08_fla.btn_112} Frame 2
"out"Symbol 939 MovieClip {GAME_08_fla.btn_112} Frame 9
"in"Symbol 952 MovieClip {GAME_08_fla.btn_113} Frame 2
"out"Symbol 952 MovieClip {GAME_08_fla.btn_113} Frame 9
"in"Symbol 966 MovieClip {GAME_08_fla.btn_114} Frame 2
"out"Symbol 966 MovieClip {GAME_08_fla.btn_114} Frame 9
"loop"Symbol 1071 MovieClip {GAME_08_fla.mc_115} Frame 10
"loop"Symbol 1129 MovieClip {GAME_08_fla.mc_139} Frame 10
"in"Symbol 1136 MovieClip {GAME_08_fla.btn_155} Frame 2
"out"Symbol 1136 MovieClip {GAME_08_fla.btn_155} Frame 9
"in"Symbol 1190 MovieClip {GAME_08_fla.mc_158} Frame 1
"loop"Symbol 1190 MovieClip {GAME_08_fla.mc_158} Frame 22
"out"Symbol 1190 MovieClip {GAME_08_fla.mc_158} Frame 144
"in"Symbol 1206 MovieClip {GAME_08_fla.mc_171} Frame 1
"loop"Symbol 1206 MovieClip {GAME_08_fla.mc_171} Frame 21
"out"Symbol 1206 MovieClip {GAME_08_fla.mc_171} Frame 144
"loop"Symbol 1276 MovieClip {GAME_08_fla.mc_178} Frame 10
"in"Symbol 1280 MovieClip {GAME_08_fla.btn_195} Frame 2
"out"Symbol 1280 MovieClip {GAME_08_fla.btn_195} Frame 9
"in"Symbol 1283 MovieClip {GAME_08_fla.btn_197} Frame 2
"out"Symbol 1283 MovieClip {GAME_08_fla.btn_197} Frame 9
"loop"Symbol 1320 MovieClip {GAME_08_fla.mc_199} Frame 13
"in"Symbol 1324 MovieClip {GAME_08_fla.btn_215} Frame 2
"out"Symbol 1324 MovieClip {GAME_08_fla.btn_215} Frame 9
"in"Symbol 1377 MovieClip {GAME_08_fla.btn_225} Frame 2
"out"Symbol 1377 MovieClip {GAME_08_fla.btn_225} Frame 9
"us"Symbol 1454 MovieClip {GAME_08_fla.btn_258} Frame 1
"uk"Symbol 1454 MovieClip {GAME_08_fla.btn_258} Frame 2
"swe"Symbol 1454 MovieClip {GAME_08_fla.btn_258} Frame 3
"esp"Symbol 1454 MovieClip {GAME_08_fla.btn_258} Frame 4
"ita"Symbol 1454 MovieClip {GAME_08_fla.btn_258} Frame 5
"fra"Symbol 1454 MovieClip {GAME_08_fla.btn_258} Frame 6
"aut"Symbol 1454 MovieClip {GAME_08_fla.btn_258} Frame 7
"ger"Symbol 1454 MovieClip {GAME_08_fla.btn_258} Frame 8




http://swfchan.com/24/116701/info.shtml
Created: 8/3 -2019 13:41:13 Last modified: 8/3 -2019 13:41:13 Server time: 04/05 -2024 22:14:18