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

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

Ragdoll Spree Players Pack - pop the balloons with your ragdoll game.swf

This is the info page for
Flash #130562

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


Text
<p align="center"><font face="Amareleta" size="17" color="#ffffff" letterSpacing="0.000000" kerning="1">100%</font></p>

Play

Getting 35000 scores!

200 baloons poped!

Finish 16th level for 5 shoots!

Finish 25th level for 6 shoots!

15 Level Complete!

All level complete!

50 dolls launched!

Getting 55000 scores!

Get and Save you Achievements @

<p align="right"><font face="arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>10.0</b></font></p>

LOADED

PLAY

<p align="left"><font face="Tahoma" size="14" color="#000000" letterSpacing="0.000000" kerning="0">Загрузка...</font></p>

<p align="left"><font face="Tahoma" size="14" color="#000000" letterSpacing="0.000000" kerning="0">...</font></p>

<p align="left"><font face="Tahoma" size="14" color="#000000" letterSpacing="0.000000" kerning="0">Правила просты, нужно как можно быстрее взорвать всех злых пингвинов (злые и добрые отличаются выражением &quot;лица&quot;, а также повязками, красные и зеленые соответственно). На уровень даётся 1000 очков, постепенно очки отнимаются, также очки отнимаются при убийстве доброго пингвина (-100), при кидании гранаты (-50), прибавляются если соберёте звёздочку гранатой (+50) или убьёте злого пингвина (+100). В левом нижнем углу можно менять время, через которое произойдёт взрыв гранаты, в правом нижнем углу можно наблюдать на какую медаль в данный момент вы идёте (а также количество выстрелов через которое будет медаль похуже).</font></p><p align="left"><font face="Tahoma" size="14" color="#000000" letterSpacing="0.000000" kerning="0">Чтобы попасть в раздел &quot;Лучшие игроки&quot;, нужно отправить набранные вами очки с меню выбора уровней (кнопка &quot;Отправить&quot;), если ваш результат будет входить в топ-15, вы непременно там окажетесь.</font></p><p align="left"><font face="Tahoma" size="14" color="#000000" letterSpacing="0.000000" kerning="0">Удачной игры!</font></p>

>>

<<

Sorry, this localhost-lock version...

<p align="left"><font face="Amareleta" size="14" color="#000000" letterSpacing="0.000000" kerning="1">level 1</font></p>

<p align="left"><font face="Amareleta" size="14" color="#000000" letterSpacing="0.000000" kerning="1">score 1000</font></p>

restart

ACHIEVEMENTS

<p align="center"><font face="Amareleta" size="30" color="#000000" letterSpacing="0.000000" kerning="1">score:</font></p>

Level complete!

click here to continue...

?

Players Pack!

<p align="left"><font face="Amareleta" size="16" color="#000000" letterSpacing="0.000000" kerning="1">total score: 0123456789</font></p>

<p align="left"><font face="Amareleta" size="16" color="#000000" letterSpacing="0.000000" kerning="1">level 23: 2462</font></p>

Play 4 Achievements

name:

<p align="left"><font face="Amareleta" size="16" color="#000000" letterSpacing="0.000000" kerning="1">player</font></p>

SUBMIT

SUBMIT

Start here!

The end! :)

1

1324

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 { public var m_radius:Number; public var m_localPosition:b2Vec2; public function b2CircleShape(_arg1:b2ShapeDef){ var _local2:b2CircleDef; m_localPosition = new b2Vec2(); super(_arg1); _local2 = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; _local3 = _arg1.R; _local4 = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local6 = _arg1.R; _local7 = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); _local8 = (_arg1.position.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){ return (false); }; _local12 = (_arg4.p2.x - _arg4.p1.x); _local13 = (_arg4.p2.y - _arg4.p1.y); _local14 = ((_local9 * _local12) + (_local10 * _local13)); _local15 = ((_local12 * _local12) + (_local13 * _local13)); _local16 = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; _local17 = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = _arg2.R; _local5 = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local6 = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; _local7 = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local8 = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } public function GetRadius():Number{ return (m_radius); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number; var _local3:Number; _local2 = (m_localPosition.x - _arg1.x); _local3 = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; _local3 = _arg2.R; _local4 = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } } }//package Box2D.Collision.Shapes
Section 3
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { public class b2FilterData { public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public var categoryBits:uint;// = 1 public function b2FilterData(){ categoryBits = 1; maskBits = 0xFFFF; groupIndex = 0; super(); } public function Copy():b2FilterData{ var _local1:b2FilterData; _local1 = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 4
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ mass = 0; center = new b2Vec2(0, 0); I = 0; super(); } } }//package Box2D.Collision.Shapes
Section 5
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertexCount:int; public var vertices:Array; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ var _local1:int; vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; _local1 = 0; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); if (_arg3){ _local5 = _arg3; _local6 = s_mat; _local6.Set(_arg4); _local7 = 0; while (_local7 < vertexCount) { _arg3 = vertices[_local7]; _arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y))); _arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y))); _arg3.x = _arg1; _local7++; }; }; } public function SetAsBox(_arg1:Number, _arg2:Number):void{ vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); } } }//package Box2D.Collision.Shapes
Section 6
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { public var m_vertices:Array; public var m_normals:Array; private var s_supportVec:b2Vec2; public var m_obb:b2OBB; public var m_coreVertices:Array; public var m_centroid:b2Vec2; public var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local2:b2PolygonDef; var _local3:int; var _local4:int; var _local5:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; _local2 = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; _local4 = _local3; _local5 = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; var _local10:Number; _local4 = _arg1.R; _local5 = (_arg2.x - _arg1.position.x); _local6 = (_arg2.y - _arg1.position.y); _local7 = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); _local8 = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); _local9 = 0; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } public function GetCoreVertices():Array{ return (m_coreVertices); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:Number; var _local21:Number; _local6 = 0; _local7 = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; _local12 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local13 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; _local14 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local15 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local16 = (_local14 - _local12); _local17 = (_local15 - _local13); _local18 = -1; _local19 = 0; while (_local19 < m_vertexCount) { _local11 = m_vertices[_local19]; _local8 = (_local11.x - _local12); _local9 = (_local11.y - _local13); _local11 = m_normals[_local19]; _local20 = ((_local11.x * _local8) + (_local11.y * _local9)); _local21 = ((_local11.x * _local16) + (_local11.y * _local17)); if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){ _local6 = (_local20 / _local21); _local18 = _local19; } else { if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){ _local7 = (_local20 / _local21); }; }; if (_local7 < _local6){ return (false); }; _local19++; }; if (_local18 >= 0){ _arg2[0] = _local6; _local10 = _arg1.R; _local11 = m_normals[_local18]; _arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); return (true); }; return (false); } public function GetCentroid():b2Vec2{ return (m_centroid); } override public function ComputeMass(_arg1:b2MassData):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _local2 = 0; _local3 = 0; _local4 = 0; _local5 = 0; _local6 = 0; _local7 = 0; _local8 = (1 / 3); _local9 = 0; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0]; _local12 = (_local10.x - _local6); _local13 = (_local10.y - _local7); _local14 = (_local11.x - _local6); _local15 = (_local11.y - _local7); _local16 = ((_local12 * _local15) - (_local13 * _local14)); _local17 = (0.5 * _local16); _local4 = (_local4 + _local17); _local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x))); _local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y))); _local18 = _local6; _local19 = _local7; _local20 = _local12; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18)); _local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local5 = (_local5 + (_local16 * (_local24 + _local25))); _local9++; }; _arg1.mass = (m_density * _local4); _local2 = (_local2 * (1 / _local4)); _local3 = (_local3 * (1 / _local4)); _arg1.center.Set(_local2, _local3); _arg1.I = (m_density * _local5); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local6:Number; var _local7:Number; var _local8:int; var _local9:Number; var _local10:int; var _local11:Number; _local5 = _arg1.R; _local6 = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); _local7 = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); _local8 = 0; _local4 = m_coreVertices[0]; _local9 = ((_local4.x * _local6) + (_local4.y * _local7)); _local10 = 1; while (_local10 < m_vertexCount) { _local4 = m_coreVertices[_local10]; _local11 = ((_local4.x * _local6) + (_local4.y * _local7)); if (_local11 > _local9){ _local8 = _local10; _local9 = _local11; }; _local10++; }; _local5 = _arg1.R; _local4 = m_coreVertices[_local8]; s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y))); s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB; var _local5:b2AABB; _local4 = s_sweptAABB1; _local5 = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y); _arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y); } public function GetVertices():Array{ return (m_vertices); } public function GetNormals():Array{ return (m_normals); } public function GetOBB():b2OBB{ return (m_obb); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_coreVertices[0])); } public function Centroid(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_centroid)); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local3:int; var _local4:Number; var _local5:Number; m_sweepRadius = 0; _local3 = 0; while (_local3 < m_vertexCount) { _local2 = m_coreVertices[_local3]; _local4 = (_local2.x - _arg1.x); _local5 = (_local2.y - _arg1.y); _local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local4 > m_sweepRadius){ m_sweepRadius = _local4; }; _local3++; }; } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22; var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local5 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); _local6 = _local5; _local4 = m_obb.extents; _local7 = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); _local8 = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; _local9 = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); _local10 = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:int; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); _local4 = 0; _local5 = 0; _local6 = 0; _local7 = (1 / 3); _local8 = 0; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local5:Array; var _local6:Number; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; _local5 = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; _local6 = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 7
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2Shape { public var m_type:int; public var m_sweepRadius:Number; public var m_density:Number; public var m_filter:b2FilterData; public var m_friction:Number; public var m_next:b2Shape; public var m_restitution:Number; public var m_userData; public var m_isSensor:Boolean; public var m_proxyId:uint; public var m_body:b2Body; public static const e_polygonShape:int = 1; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_shapeTypeCount:int = 2; private static var s_resetAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_proxyAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxyId = b2Pair.b2_nullProxy; m_filter = _arg1.filter.Copy(); m_isSensor = _arg1.isSensor; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetNext():b2Shape{ return (m_next); } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function GetType():int{ return (m_type); } public function GetRestitution():Number{ return (m_restitution); } public function GetFriction():Number{ return (m_friction); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB; var _local4:Boolean; if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); _local3 = s_resetAABB; ComputeAABB(_local3, _arg2); _local4 = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ var _local4:b2AABB; if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; _local4 = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function ComputeMass(_arg1:b2MassData):void{ } public function IsSensor():Boolean{ return (m_isSensor); } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function GetBody():b2Body{ return (m_body); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB; var _local4:Boolean; _local3 = s_proxyAABB; ComputeAABB(_local3, _arg2); _local4 = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public static function Destroy(_arg1:b2Shape, _arg2):void{ } public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } } }//package Box2D.Collision.Shapes
Section 8
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var isSensor:Boolean;// = false public var density:Number;// = 0 public var type:int; 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 9
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var upperBound:b2Vec2; public var lowerBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number; var _local2:Number; var _local3:Boolean; _local1 = (upperBound.x - lowerBound.x); _local2 = (upperBound.y - lowerBound.y); _local3 = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 10
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var proxyId:uint; public var stabbingCount:uint; public var value:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint; var _local3:uint; var _local4:uint; _local2 = value; _local3 = proxyId; _local4 = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//package Box2D.Collision
Section 11
//b2BoundValues (Box2D.Collision.b2BoundValues) package Box2D.Collision { public class b2BoundValues { public var lowerValues:Array; public var upperValues:Array; public function b2BoundValues(){ lowerValues = [0, 0]; upperValues = [0, 0]; super(); } } }//package Box2D.Collision
Section 12
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; public var m_bounds:Array; public var m_freeProxy:uint; public var m_proxyCount:int; public var m_proxyPool:Array; public var m_queryResultCount:int; public var m_pairManager:b2PairManager; public var m_timeStamp:uint; public var m_queryResults:Array; public static const b2_nullEdge:uint = b2Settings.USHRT_MAX; public static const b2_invalid:uint = b2Settings.USHRT_MAX; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local4:Number; var _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; _local4 = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); _local3 = 0; while (_local3 < (b2Settings.b2_maxProxies - 1)) { _local6 = new b2Proxy(); m_proxyPool[_local3] = _local6; _local6.SetNext((_local3 + 1)); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; _local3++; }; _local6 = new b2Proxy(); m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local4:Array; var _local5:Array; var _local6:uint; var _local7:uint; var _local8:Array; var _local9:Array; var _local10:int; var _local11:int; var _local12:b2Proxy; _local4 = new Array(); _local5 = new Array(); ComputeBounds(_local4, _local5, _arg1); _local8 = [_local6]; _local9 = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); _local10 = 0; _local11 = 0; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Commit():void{ m_pairManager.Commit(); } public function GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy; _local2 = m_proxyPool[_arg1]; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){ return (null); }; return (_local2); } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { (m_proxyPool[_local1] as b2Proxy).timeStamp = 0; _local1++; }; m_timeStamp = 1; } else { m_timeStamp++; }; } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local11:uint; var _local12:int; var _local13:int; var _local14:b2Proxy; _local8 = BinarySearch(_arg5, _arg6, _arg3); _local9 = BinarySearch(_arg5, _arg6, _arg4); _local11 = _local8; while (_local11 < _local9) { _local10 = _arg5[_local11]; if (_local10.IsLower()){ IncrementOverlapCount(_local10.proxyId); }; _local11++; }; if (_local8 > 0){ _local12 = (_local8 - 1); _local10 = _arg5[_local12]; _local13 = _local10.stabbingCount; while (_local13) { _local10 = _arg5[_local12]; if (_local10.IsLower()){ _local14 = m_proxyPool[_local10.proxyId]; if (_local8 <= _local14.upperBounds[_arg7]){ IncrementOverlapCount(_local10.proxyId); _local13--; }; }; _local12--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local4 = _arg3.lowerBound.x; _local5 = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); _local6 = _arg3.upperBound.x; _local7 = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local5:uint; var _local6:uint; var _local7:Array; var _local8:Array; var _local9:int; var _local10:int; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:b2Bound; var _local22:int; var _local23:b2Proxy; _local5 = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; _local6 = (2 * m_proxyCount); _local7 = new Array(); _local8 = new Array(); ComputeBounds(_local7, _local8, _arg1); _local9 = 0; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local13 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local16 = new Array(); _local18 = (_local13 - _local12); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local12 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local19 = _local11[_local12]; _local20 = _local11[_local13]; _local19.value = _local7[_local9]; _local19.proxyId = _local5; _local20.value = _local8[_local9]; _local20.proxyId = _local5; _local21 = _local11[int((_local12 - 1))]; _local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount; _local21 = _local11[int((_local13 - 1))]; _local20.stabbingCount = _local21.stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local21 = _local11[_local3]; _local21.stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local19 = _local11[_local3]; _local23 = m_proxyPool[_local19.proxyId]; if (_local19.IsLower()){ _local23.lowerBounds[_local9] = _local3; } else { _local23.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; _local10 = 0; while (_local10 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]); _local10++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local5); } public function DestroyProxy(_arg1:uint):void{ var _local2:b2Bound; var _local3:b2Bound; var _local4:b2Proxy; var _local5:int; var _local6:int; var _local7:int; var _local8:Array; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:int; var _local15:int; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; _local4 = m_proxyPool[_arg1]; _local5 = (2 * m_proxyCount); _local6 = 0; while (_local6 < 2) { _local8 = m_bounds[_local6]; _local9 = _local4.lowerBounds[_local6]; _local10 = _local4.upperBounds[_local6]; _local2 = _local8[_local9]; _local11 = _local2.value; _local3 = _local8[_local10]; _local12 = _local3.value; _local13 = new Array(); _local15 = ((_local10 - _local9) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local9 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = _local9; _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local13 = new Array(); _local15 = ((_local5 - _local10) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local10 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = (_local10 - 1); _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = (_local5 - 2); _local17 = _local9; while (_local17 < _local15) { _local2 = _local8[_local17]; _local19 = m_proxyPool[_local2.proxyId]; if (_local2.IsLower()){ _local19.lowerBounds[_local6] = _local17; } else { _local19.upperBounds[_local6] = _local17; }; _local17++; }; _local15 = (_local10 - 1); _local18 = _local9; while (_local18 < _local15) { _local2 = _local8[_local18]; _local2.stabbingCount--; _local18++; }; Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6); _local6++; }; _local7 = 0; while (_local7 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]); _local7++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local4.userData = null; _local4.overlapCount = b2_invalid; _local4.lowerBounds[0] = b2_invalid; _local4.lowerBounds[1] = b2_invalid; _local4.upperBounds[0] = b2_invalid; _local4.upperBounds[1] = b2_invalid; _local4.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; var _local5:b2Bound; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg2.upperBounds[_local3]]; if (_arg1.lowerValues[_local3] > _local5.value){ return (false); }; _local5 = _local4[_arg2.lowerBounds[_local3]]; if (_arg1.upperValues[_local3] < _local5.value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local5:int; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; _local5 = 0; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy; _local2 = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } public function InRange(_arg1:b2AABB):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = _arg1.lowerBound.x; _local3 = _arg1.lowerBound.y; _local2 = (_local2 - m_worldAABB.upperBound.x); _local3 = (_local3 - m_worldAABB.upperBound.y); _local4 = m_worldAABB.lowerBound.x; _local5 = m_worldAABB.lowerBound.y; _local4 = (_local4 - _arg1.upperBound.x); _local5 = (_local5 - _arg1.upperBound.y); _local2 = b2Math.b2Max(_local2, _local4); _local3 = b2Math.b2Max(_local3, _local5); return ((b2Math.b2Max(_local2, _local3) < 0)); } public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{ var _local3:Array; var _local4:int; var _local5:uint; var _local6:uint; var _local7:b2Bound; var _local8:b2Bound; var _local9:b2Bound; var _local10:uint; var _local11:b2Proxy; var _local12:uint; var _local13:b2Proxy; var _local14:b2BoundValues; var _local15:b2BoundValues; var _local16:Array; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:uint; var _local21:int; var _local22:int; var _local23:uint; var _local24:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; _local12 = (2 * m_proxyCount); _local13 = m_proxyPool[_arg1]; _local14 = new b2BoundValues(); ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2); _local15 = new b2BoundValues(); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5][_local13.lowerBounds[_local5]]; _local15.lowerValues[_local5] = _local7.value; _local7 = m_bounds[_local5][_local13.upperBounds[_local5]]; _local15.upperValues[_local5] = _local7.value; _local5++; }; _local5 = 0; while (_local5 < 2) { _local16 = m_bounds[_local5]; _local17 = _local13.lowerBounds[_local5]; _local18 = _local13.upperBounds[_local5]; _local19 = _local14.lowerValues[_local5]; _local20 = _local14.upperValues[_local5]; _local7 = _local16[_local17]; _local21 = (_local19 - _local7.value); _local7.value = _local19; _local7 = _local16[_local18]; _local22 = (_local20 - _local7.value); _local7.value = _local20; if (_local21 < 0){ _local6 = _local17; while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local8.proxyId]; _local8.stabbingCount++; if (_local8.IsUpper() == true){ if (TestOverlap(_local14, _local24)){ m_pairManager.AddBufferedPair(_arg1, _local23); }; _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; if (_local22 > 0){ _local6 = _local18; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount++; if (_local9.IsLower() == true){ if (TestOverlap(_local14, _local11)){ m_pairManager.AddBufferedPair(_arg1, _local10); }; _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local21 > 0){ _local6 = _local17; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount--; if (_local9.IsUpper()){ if (TestOverlap(_local15, _local11)){ m_pairManager.RemoveBufferedPair(_arg1, _local10); }; _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local22 < 0){ _local6 = _local18; while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local23]; _local8.stabbingCount--; if (_local8.IsLower() == true){ if (TestOverlap(_local15, _local24)){ m_pairManager.RemoveBufferedPair(_arg1, _local23); }; _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; _local5++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local4:int; var _local5:int; var _local6:int; var _local7:b2Bound; _local4 = 0; _local5 = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); _local7 = _arg1[_local6]; if (_local7.value > _arg3){ _local5 = (_local6 - 1); } else { if (_local7.value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.Collision
Section 13
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 14
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:int; var _local7:Array; var _local8:Array; var _local9:int; var _local10:Array; var _local11:b2Mat22; var _local12:b2Vec2; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:int; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _local6 = _arg1.m_vertexCount; _local7 = _arg1.m_vertices; _local8 = _arg1.m_normals; _local9 = _arg4.m_vertexCount; _local10 = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; _local13 = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); _local14 = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; _local15 = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); _local16 = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); _local17 = 0; _local18 = Number.MAX_VALUE; _local19 = 0; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; _local20 = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); _local21 = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; _local22 = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); _local23 = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); _local24 = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local3 = _arg2.lowerBound; _local4 = _arg1.upperBound; _local5 = (_local3.x - _local4.x); _local6 = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; _local7 = (_local3.x - _local4.x); _local8 = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local7:int; var _local8:Array; var _local9:int; var _local10:Array; var _local11:Array; var _local12:b2Mat22; var _local13:b2Vec2; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:int; var _local20:ClipVertex; var _local21:int; var _local22:int; var _local23:Number; _local7 = _arg2.m_vertexCount; _local8 = _arg2.m_normals; _local9 = _arg5.m_vertexCount; _local10 = _arg5.m_vertices; _local11 = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; _local14 = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); _local15 = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; _local16 = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; _local17 = 0; _local18 = Number.MAX_VALUE; _local19 = 0; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; _local21 = _local17; _local22 = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local7:int; var _local8:Array; var _local9:Number; var _local10:int; var _local11:Array; var _local12:Number; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local15:b2XForm; var _local16:b2XForm; var _local17:int; var _local18:uint; var _local19:Number; var _local20:Number; var _local21:Array; var _local22:int; var _local23:Array; var _local24:b2Vec2; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:b2Vec2; var _local28:b2Vec2; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Array; var _local33:Array; var _local34:int; var _local35:int; var _local36:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; _local7 = 0; _local8 = [_local7]; _local9 = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; _local10 = 0; _local11 = [_local10]; _local12 = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; _local15 = new b2XForm(); _local16 = new b2XForm(); _local19 = 0.98; _local20 = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; _local21 = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); _local22 = _local13.m_vertexCount; _local23 = _local13.m_vertices; _local24 = _local23[_local17]; _local25 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; _local26 = b2Math.SubtractVV(_local37, _local25); _local27 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); _local28 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); _local29 = b2Math.b2Dot(_local28, _local25); _local30 = -(b2Math.b2Dot(_local27, _local25)); _local31 = b2Math.b2Dot(_local27, _local37); _local32 = [new ClipVertex(), new ClipVertex()]; _local33 = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); _local35 = 0; _local36 = 0; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:int; var _local7:Array; var _local8:b2Vec2; var _local9:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:int; var _local15:Number; var _local16:int; var _local17:Number; var _local18:int; var _local19:Number; var _local20:int; var _local21:Number; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; _local6 = _arg2.m_vertexCount; _local7 = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; _local10 = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); _local11 = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); _local12 = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); _local13 = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); _local14 = 0; _local15 = -(Number.MAX_VALUE); _local16 = 0; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; _local18 = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); _local19 = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; _local20 = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; _local21 = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); _local10 = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:b2ManifoldPoint; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; _local8 = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local9 = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; _local10 = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local11 = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local12 = (_local10 - _local8); _local13 = (_local11 - _local9); _local14 = ((_local12 * _local12) + (_local13 * _local13)); _local15 = _arg2.m_radius; _local16 = _arg4.m_radius; _local17 = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; _local19 = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); _local20 = (0.5 * (_local8 + _local10)); _local21 = (0.5 * (_local9 + _local11)); _local22 = (_local20 - _arg3.position.x); _local23 = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:Number; var _local20:Number; var _local21:int; var _local22:Array; var _local23:Array; var _local24:int; var _local25:int; var _local26:int; var _local27:b2Vec2; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; _local13 = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); _local14 = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; _local15 = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local16 = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local18 = 0; _local19 = -(Number.MAX_VALUE); _local20 = _arg4.m_radius; _local21 = _arg2.m_vertexCount; _local22 = _arg2.m_vertices; _local23 = _arg2.m_normals; _local24 = 0; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; _local25 = _local18; _local26 = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; _local27 = _local22[_local26]; _local28 = (_local27.x - _local11.x); _local29 = (_local27.y - _local11.y); _local30 = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local31 = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } } }//package Box2D.Collision
Section 15
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var _key:uint; public var features:Features; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID; _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 16
//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 17
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local4:Number; var _local5:int; var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local4 = (100 * Number.MIN_VALUE); _local5 = 0; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local8:Array; var _local9:Array; var _local10:Array; var _local11:int; var _local12:Number; var _local13:int; var _local14:int; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; _local8 = s_p1s; _local9 = s_p2s; _local10 = s_points; _local11 = 0; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); _local12 = 0; _local13 = 20; _local14 = 0; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - _local21) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _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 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; _local12 = -(_local7.x); _local13 = -(_local7.y); _local14 = (_local6.x - _local7.x); _local15 = (_local6.y - _local7.y); _local16 = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } }//package Box2D.Collision
Section 18
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var points:Array; public var pointCount:int;// = 0 public var normal:b2Vec2; public function b2Manifold(){ var _local1:int; pointCount = 0; super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ var _local2:int; pointCount = _arg1.pointCount; _local2 = 0; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } public function Reset():void{ var _local1:int; _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 19
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var separation:Number; public var localPoint2:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var localPoint1:b2Vec2; public var id:b2ContactID; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } public function Set(_arg1:b2ManifoldPoint):void{ localPoint1.SetV(_arg1.localPoint1); localPoint2.SetV(_arg1.localPoint2); separation = _arg1.separation; normalImpulse = _arg1.normalImpulse; tangentImpulse = _arg1.tangentImpulse; id.key = _arg1.id.key; } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalImpulse = 0; tangentImpulse = 0; id.key = 0; } } }//package Box2D.Collision
Section 20
//b2OBB (Box2D.Collision.b2OBB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2OBB { public var R:b2Mat22; public var center:b2Vec2; public var extents:b2Vec2; public function b2OBB(){ R = new b2Mat22(); center = new b2Vec2(); extents = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 21
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var userData;// = null public var proxyId1:uint; public var proxyId2:uint; public var status:uint; public var next:uint; public static var e_pairFinal:uint = 4; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairRemoved:uint = 2; public static var b2_nullPair:uint = b2Settings.USHRT_MAX; public static var e_pairBuffered:uint = 1; public static var b2_nullProxy:uint = b2Settings.USHRT_MAX; public static var b2_tableCapacity:int = b2Settings.b2_maxPairs; public function b2Pair(){ userData = null; super(); } public function SetBuffered():void{ status = (status | e_pairBuffered); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } } }//package Box2D.Collision
Section 22
//b2PairCallback (Box2D.Collision.b2PairCallback) package Box2D.Collision { public class b2PairCallback { public function PairRemoved(_arg1, _arg2, _arg3):void{ } public function PairAdded(_arg1, _arg2){ return (null); } } }//package Box2D.Collision
Section 23
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PairManager { public var m_pairCount:int; public var m_pairBuffer:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_hashTable:Array; public var m_broadPhase:b2BroadPhase; public var m_freePair:uint; public function b2PairManager(){ var _local1:uint; super(); m_hashTable = new Array(b2Pair.b2_tableCapacity); _local1 = 0; while (_local1 < b2Pair.b2_tableCapacity) { m_hashTable[_local1] = b2Pair.b2_nullPair; _local1++; }; m_pairs = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1] = new b2Pair(); _local1++; }; m_pairBuffer = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairBuffer[_local1] = new b2BufferedPair(); _local1++; }; _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy; m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy; m_pairs[_local1].userData = null; m_pairs[_local1].status = 0; m_pairs[_local1].next = (_local1 + 1); _local1++; }; m_pairs[int((b2Settings.b2_maxPairs - 1))].next = b2Pair.b2_nullPair; m_pairCount = 0; m_pairBufferCount = 0; } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:b2Pair; var _local5:uint; _local5 = m_hashTable[_arg3]; _local4 = m_pairs[_local5]; while (((!((_local5 == b2Pair.b2_nullPair))) && ((Equals(_local4, _arg1, _arg2) == false)))) { _local5 = _local4.next; _local4 = m_pairs[_local5]; }; if (_local5 == b2Pair.b2_nullPair){ return (null); }; return (_local4); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local3:int; var _local4:Array; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; _local3 = 0; _local4 = m_broadPhase.m_proxyPool; _local2 = 0; while (_local2 < m_pairBufferCount) { _local1 = m_pairBuffer[_local2]; _local5 = Find(_local1.proxyId1, _local1.proxyId2); _local5.ClearBuffered(); _local6 = _local4[_local5.proxyId1]; _local7 = _local4[_local5.proxyId2]; if (_local5.IsRemoved()){ if (_local5.IsFinal() == true){ m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData); }; _local1 = m_pairBuffer[_local3]; _local1.proxyId1 = _local5.proxyId1; _local1.proxyId2 = _local5.proxyId2; _local3++; } else { if (_local5.IsFinal() == false){ _local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData); _local5.SetFinal(); }; }; _local2++; }; _local2 = 0; while (_local2 < _local3) { _local1 = m_pairBuffer[_local2]; RemovePair(_local1.proxyId1, _local1.proxyId2); _local2++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair; _local4 = Find(_arg1, _arg2); if (_local4 == null){ return; }; if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local4:uint; var _local5:uint; var _local6:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; _local4 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local5 = m_hashTable[_local4]; _local6 = null; while (_local5 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local5], _arg1, _arg2)){ _local8 = _local5; _local3 = m_pairs[_local5]; if (_local6){ _local6.next = _local3.next; } else { m_hashTable[_local4] = _local3.next; }; _local3 = m_pairs[_local8]; _local9 = _local3.userData; _local3.next = m_freePair; _local3.proxyId1 = b2Pair.b2_nullProxy; _local3.proxyId2 = b2Pair.b2_nullProxy; _local3.userData = null; _local3.status = 0; m_freePair = _local8; m_pairCount--; return (_local9); } else { _local6 = m_pairs[_local5]; _local5 = _local6.next; }; }; return (null); } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair; _local4 = AddPair(_arg1, _arg2); if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:b2Pair; var _local5:uint; var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; _local5 = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function ValidateTable():void{ } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } public static function Hash(_arg1:uint, _arg2:uint):uint{ var _local3:uint; _local3 = (((_arg2 << 16) & 4294901760) | _arg1); _local3 = (~(_local3) + ((_local3 << 15) & 4294934528)); _local3 = (_local3 ^ ((_local3 >> 12) & 1048575)); _local3 = (_local3 + ((_local3 << 2) & 4294967292)); _local3 = (_local3 ^ ((_local3 >> 4) & 268435455)); _local3 = (_local3 * 2057); _local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF)); return (_local3); } public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{ return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3)))); } } }//package Box2D.Collision
Section 24
//b2Point (Box2D.Collision.b2Point) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Point { public var p:b2Vec2; public function b2Point(){ p = new b2Vec2(); super(); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 25
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var lowerBounds:Array; public var upperBounds:Array; public var userData;// = null public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; userData = null; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } } }//package Box2D.Collision
Section 26
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; _local5 = _arg3.p1; _local6 = (_arg3.p2.x - _local5.x); _local7 = (_arg3.p2.y - _local5.y); _local8 = (p2.x - p1.x); _local9 = (p2.y - p1.y); _local10 = _local9; _local11 = -(_local8); _local12 = (100 * Number.MIN_VALUE); _local13 = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local6) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.Collision
Section 27
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:int; var _local20:int; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; _local7 = _arg1.m_sweepRadius; _local8 = _arg3.m_sweepRadius; _local9 = _arg2.t0; _local10 = (_arg2.c.x - _arg2.c0.x); _local11 = (_arg2.c.y - _arg2.c0.y); _local12 = (_arg4.c.x - _arg4.c0.x); _local13 = (_arg4.c.y - _arg4.c0.y); _local14 = (_arg2.a - _arg2.a0); _local15 = (_arg4.a - _arg4.a0); _local16 = 0; _local17 = s_p1; _local18 = s_p2; _local19 = 20; _local20 = 0; _local21 = 0; _local22 = 0; _local23 = 0; _local24 = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } }//package Box2D.Collision
Section 28
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var v:b2Vec2; public var id:b2ContactID; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 29
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceEdge:int; public var _incidentEdge:int; public var _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get flip():int{ return (_flip); } public function get incidentEdge():int{ return (_incidentEdge); } public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.Collision
Section 30
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function Set(_arg1:Number):void{ var _local2:Number; var _local3:Number; _local2 = Math.cos(_arg1); _local3 = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = col1.x; _local3 = col2.x; _local4 = col1.y; _local5 = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = col1.x; _local5 = col2.x; _local6 = col1.y; _local7 = col2.y; _local8 = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 31
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = b2MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:*; _local3 = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22; _local2 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2; _local2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2Mat22; _local3 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); _local4 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); _local5 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean; _local2 = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number; _local3 = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } }//package Box2D.Common.Math
Section 32
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var c:b2Vec2; public var a:Number; public var c0:b2Vec2; public var a0:Number; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; _local3 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } }//package Box2D.Common.Math
Section 33
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var x:Number; public var y:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function SetZero():void{ x = 0; y = 0; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function CrossVF(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function MulM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function Normalize():Number{ var _local1:Number; var _local2:Number; _local1 = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; _local2 = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function CrossFV(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 34
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var R:b2Mat22; public var position:b2Vec2; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } } }//package Box2D.Common.Math
Section 35
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _g:uint;// = 0 private var _b:uint;// = 0 private var _r:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = 0; _g = 0; _b = 0; super(); _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function get color():uint{ return (((_r | (_g << 8)) | (_b << 16))); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } } }//package Box2D.Common
Section 36
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const b2_angularSleepTolerance:Number = 0.0111111111111111; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_angularSlop:Number = 0.0349065850398866; public static const b2_linearSlop:Number = 0.005; public static const b2_pi:Number = 3.14159265358979; public static const b2_maxProxies:int = 0x0200; public static const b2_maxAngularVelocitySquared:Number = 62500; public static const b2_maxPolygonVertices:int = 8; public static const b2_velocityThreshold:Number = 1; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_maxPairs:int = 4096; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_timeToSleep:Number = 0.5; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxAngularVelocity:Number = 250; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const USHRT_MAX:int = 0xFFFF; public static const b2_maxLinearVelocity:Number = 200; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_toiSlop:Number = 0.04; public static const b2_maxLinearVelocitySquared:Number = 40000; public static function b2Assert(_arg1:Boolean):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 37
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ var _local3:b2ManifoldPoint; m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; _local3 = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactPoint; var _local8:b2ManifoldPoint; _local5 = m_shape1.m_body; _local6 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 38
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Contact { public var m_shape1:b2Shape; public var m_shape2:b2Shape; public var m_prev:b2Contact; public var m_toi:Number; public var m_next:b2Contact; public var m_friction:Number; public var m_manifoldCount:int; public var m_node1:b2ContactEdge; public var m_node2:b2ContactEdge; public var m_restitution:Number; public var m_flags:uint; public static var e_toiFlag:uint = 8; public static var e_nonSolidFlag:uint = 1; public static var e_slowFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var s_registers:Array; public static var s_initialized:Boolean = false; public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){ m_node1 = new b2ContactEdge(); m_node2 = new b2ContactEdge(); super(); m_flags = 0; if (((!(_arg1)) || (!(_arg2)))){ m_shape1 = null; m_shape2 = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_nonSolidFlag); }; m_shape1 = _arg1; m_shape2 = _arg2; m_manifoldCount = 0; m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction)); m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution); m_prev = null; m_next = null; m_node1.contact = null; m_node1.prev = null; m_node1.next = null; m_node1.other = null; m_node2.contact = null; m_node2.prev = null; m_node2.next = null; m_node2.other = null; } public function GetShape1():b2Shape{ return (m_shape1); } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetNext():b2Contact{ return (m_next); } public function GetManifolds():Array{ return (null); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function Update(_arg1:b2ContactListener):void{ var _local2:int; var _local3:int; var _local4:b2Body; var _local5:b2Body; _local2 = m_manifoldCount; Evaluate(_arg1); _local3 = m_manifoldCount; _local4 = m_shape1.m_body; _local5 = m_shape2.m_body; if ((((_local3 == 0)) && ((_local2 > 0)))){ _local4.WakeUp(); _local5.WakeUp(); }; if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } public function Evaluate(_arg1:b2ContactListener):void{ } public static function InitializeRegisters():void{ var _local1:int; var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); _local1 = 0; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); } public static function Destroy(_arg1:b2Contact, _arg2):void{ var _local3:int; var _local4:int; var _local5:b2ContactRegister; var _local6:Function; if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; _local3 = _arg1.m_shape1.m_type; _local4 = _arg1.m_shape2.m_type; _local5 = s_registers[_local3][_local4]; _local6 = _local5.destroyFcn; _local6(_arg1, _arg2); } public static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local4:int; var _local5:int; var _local6:b2ContactRegister; var _local7:Function; var _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; _local4 = _arg1.m_type; _local5 = _arg2.m_type; _local6 = s_registers[_local4][_local5]; _local7 = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 39
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var normal:b2Vec2; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ var _local1:int; normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 40
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var r2:b2Vec2; public var separation:Number; public var positionImpulse:Number; public var normalImpulse:Number; public var equalizedMass:Number; public var tangentMass:Number; public var tangentImpulse:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var normalMass:Number; public var velocityBias:Number; public var r1:b2Vec2; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 41
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var next:b2ContactEdge; public var other:b2Body; public var contact:b2Contact; public var prev:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 42
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn:Function; public var destroyFcn:Function; } }//package Box2D.Dynamics.Contacts
Section 43
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; public class b2ContactResult { public var 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 44
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactSolver { public var m_constraintCount:int; public var m_constraints:Array; public var m_allocator; public var m_step:b2TimeStep; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local9:int; var _local10:b2Body; var _local11:b2Body; var _local12:int; var _local13:Array; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; var _local23:b2Manifold; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraint; var _local27:uint; var _local28:b2ManifoldPoint; var _local29:b2ContactConstraintPoint; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; m_step = new b2TimeStep(); m_constraints = new Array(); super(); m_step.dt = _arg1.dt; m_step.inv_dt = _arg1.inv_dt; m_step.maxIterations = _arg1.maxIterations; m_allocator = _arg4; m_constraintCount = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; m_constraintCount = (m_constraintCount + _local5.m_manifoldCount); _local6++; }; _local6 = 0; while (_local6 < m_constraintCount) { m_constraints[_local6] = new b2ContactConstraint(); _local6++; }; _local9 = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1.m_body; _local11 = _local5.m_shape2.m_body; _local12 = _local5.m_manifoldCount; _local13 = _local5.GetManifolds(); _local14 = _local5.m_friction; _local15 = _local5.m_restitution; _local16 = _local10.m_linearVelocity.x; _local17 = _local10.m_linearVelocity.y; _local18 = _local11.m_linearVelocity.x; _local19 = _local11.m_linearVelocity.y; _local20 = _local10.m_angularVelocity; _local21 = _local11.m_angularVelocity; _local22 = 0; while (_local22 < _local12) { _local23 = _local13[_local22]; _local24 = _local23.normal.x; _local25 = _local23.normal.y; _local26 = m_constraints[_local9]; _local26.body1 = _local10; _local26.body2 = _local11; _local26.manifold = _local23; _local26.normal.x = _local24; _local26.normal.y = _local25; _local26.pointCount = _local23.pointCount; _local26.friction = _local14; _local26.restitution = _local15; _local27 = 0; while (_local27 < _local26.pointCount) { _local28 = _local23.points[_local27]; _local29 = _local26.points[_local27]; _local29.normalImpulse = _local28.normalImpulse; _local29.tangentImpulse = _local28.tangentImpulse; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local8 = _local10.m_xf.R; _local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x); _local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33)); _local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33)); _local32 = _local30; _local29.r1.Set(_local32, _local33); _local8 = _local11.m_xf.R; _local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x); _local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local30; _local29.r2.Set(_local34, _local35); _local36 = ((_local32 * _local32) + (_local33 * _local33)); _local37 = ((_local34 * _local34) + (_local35 * _local35)); _local38 = ((_local32 * _local24) + (_local33 * _local25)); _local39 = ((_local34 * _local24) + (_local35 * _local25)); _local40 = (_local10.m_invMass + _local11.m_invMass); _local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39))))); _local29.normalMass = (1 / _local40); _local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass)); _local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39))))); _local29.equalizedMass = (1 / _local41); _local42 = _local25; _local43 = -(_local24); _local44 = ((_local32 * _local42) + (_local33 * _local43)); _local45 = ((_local34 * _local42) + (_local35 * _local43)); _local46 = (_local10.m_invMass + _local11.m_invMass); _local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45))))); _local29.tangentMass = (1 / _local46); _local29.velocityBias = 0; if (_local29.separation > 0){ _local29.velocityBias = (-60 * _local29.separation); }; _local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33)); _local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32)); _local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47)); }; _local27++; }; _local9++; _local22++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local5:int; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; _local5 = 0; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:int; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; _local2 = 0; _local5 = 0; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Mat22; var _local18:b2Vec2; var _local19:int; var _local20:b2ContactConstraint; var _local21:b2Body; var _local22:b2Body; var _local23:Number; var _local24:Number; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:int; var _local38:Number; _local19 = 0; while (_local19 < m_constraintCount) { _local20 = m_constraints[_local19]; _local21 = _local20.body1; _local22 = _local20.body2; _local23 = _local21.m_angularVelocity; _local24 = _local22.m_angularVelocity; _local25 = _local21.m_linearVelocity; _local26 = _local22.m_linearVelocity; _local27 = _local21.m_invMass; _local28 = _local21.m_invI; _local29 = _local22.m_invMass; _local30 = _local22.m_invI; _local31 = _local20.normal.x; _local32 = _local20.normal.y; _local33 = _local32; _local34 = -(_local31); _local35 = _local20.friction; _local37 = _local20.pointCount; _local1 = 0; while (_local1 < _local37) { _local2 = _local20.points[_local1]; _local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y)); _local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x)); _local9 = ((_local7 * _local31) + (_local8 * _local32)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local10 = ((_local7 * _local33) + (_local8 * _local34)); _local12 = (_local2.tangentMass * -(_local10)); _local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0); _local11 = (_local13 - _local2.normalImpulse); _local38 = (_local35 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38); _local12 = (_local14 - _local2.tangentImpulse); _local15 = ((_local11 * _local31) + (_local12 * _local33)); _local16 = ((_local11 * _local32) + (_local12 * _local34)); _local25.x = (_local25.x - (_local27 * _local15)); _local25.y = (_local25.y - (_local27 * _local16)); _local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local26.x = (_local26.x + (_local29 * _local15)); _local26.y = (_local26.y + (_local29 * _local16)); _local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.normalImpulse = _local13; _local2.tangentImpulse = _local14; _local1++; }; _local21.m_angularVelocity = _local23; _local22.m_angularVelocity = _local24; _local19++; }; } public function FinalizeVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; _local1 = 0; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 45
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function GetManifolds():Array{ return (null); } override public function Evaluate(_arg1:b2ContactListener):void{ } } }//package Box2D.Dynamics.Contacts
Section 46
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ var _local3:b2ManifoldPoint; m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; _local3 = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local6:b2Body; var _local7:b2Body; var _local8:Array; var _local9:b2ContactPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; _local6 = m_shape1.m_body; _local7 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); _local8 = [false, false]; _local9 = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 47
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactPoint; var _local8:int; var _local9:Array; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; _local5 = m_shape1.m_body; _local6 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); _local9 = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local9[_local13] == true){ } else { _local4 = m0.points[_local13]; if (_local4.id._key == _local12){ _local9[_local13] = true; _local10.normalImpulse = _local4.normalImpulse; _local10.tangentImpulse = _local4.tangentImpulse; _local11 = true; if (_arg1 != null){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Persist(_local7); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Add(_local7); }; _local8++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local8 = 0; while (_local8 < m0.pointCount) { if (_local9[_local8]){ } else { _local4 = m0.points[_local8]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; _local8++; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 48
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_mass:Number; public var m_u:b2Vec2; public var m_impulse:Number; public var m_dampingRatio:Number; public var m_frequencyHz:Number; public var m_localAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_bias:Number; public var m_gamma:Number; public var m_length:Number; public function b2DistanceJoint(_arg1:b2DistanceJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; m_inv_dt = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; if (m_frequencyHz > 0){ return (true); }; _local2 = m_body1; _local3 = m_body2; _local1 = _local2.m_xf.R; _local4 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; _local7 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local8 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; _local9 = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); _local10 = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); _local11 = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); _local12 = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local13 = (-(m_mass) * _local12); m_u.Set(_local9, _local10); _local14 = (_local13 * m_u.x); _local15 = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; m_inv_dt = _arg1.inv_dt; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); _local10 = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; _local11 = ((_local6 * m_u.y) - (_local7 * m_u.x)); _local12 = ((_local8 * m_u.y) - (_local9 * m_u.x)); _local13 = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local3 = m_body1; _local4 = m_body2; _local2 = _local3.m_xf.R; _local5 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; _local8 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; _local10 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); _local11 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); _local12 = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); _local13 = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); _local14 = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); _local15 = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); _local16 = (_local15 * m_u.x); _local17 = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } } }//package Box2D.Dynamics.Joints
Section 49
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2DistanceJointDef extends b2JointDef { public var length:Number; public var dampingRatio:Number; public var frequencyHz:Number; public var localAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ var _local5:Number; var _local6:Number; body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); _local5 = (_arg4.x - _arg3.x); _local6 = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.Joints
Section 50
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_force:Number; public var m_mass:Number; public var m_prismatic1:b2PrismaticJoint; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_ground2:b2Body; public var m_constant:Number; public var m_revolute1:b2RevoluteJoint; public var m_revolute2:b2RevoluteJoint; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_ratio:Number; public var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local2:int; var _local3:int; var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); _local2 = _arg1.joint1.m_type; _local3 = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.m_body1; m_body1 = _arg1.joint1.m_body2; if (_local2 == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local4 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local4 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_local3 == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local5 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local5 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local4 + (m_ratio * _local5)); m_force = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local1 = 0; _local2 = m_body1; _local3 = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; _local6 = (m_constant - (_local4 + (m_ratio * _local5))); _local7 = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; _local2 = m_ground1; _local3 = m_ground2; _local4 = m_body1; _local5 = m_body2; _local14 = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ var _local1:b2Mat22; var _local2:Number; var _local3:Number; var _local4:Number; _local1 = m_body2.m_xf.R; _local2 = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); _local3 = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); _local4 = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = m_body1; _local3 = m_body2; _local4 = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local5 = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); _local6 = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } } }//package Box2D.Dynamics.Joints
Section 51
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint2:b2Joint; public var joint1:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 52
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var linear2:b2Vec2; public var angular2:Number; public var angular1:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 53
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2Joint { public var m_islandFlag:Boolean; public var m_body1:b2Body; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_type:int; public var m_collideConnected:Boolean; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_inv_dt:Number; public var m_userData; public var m_body2:b2Body; public static const e_unknownJoint:int = 0; public static const e_inactiveLimit:int = 0; public static const e_atUpperLimit:int = 2; public static const e_atLowerLimit:int = 1; public static const e_gearJoint:int = 6; public static const e_revoluteJoint:int = 1; public static const e_equalLimits:int = 3; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_prismaticJoint:int = 2; public static const e_mouseJoint:int = 5; public function b2Joint(_arg1:b2JointDef){ m_node1 = new b2JointEdge(); m_node2 = new b2JointEdge(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetType():int{ return (m_type); } public function GetBody2():b2Body{ return (m_body2); } public function GetNext():b2Joint{ return (m_next); } public function GetReactionTorque():Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce():b2Vec2{ return (null); } public function SolvePositionConstraints():Boolean{ return (false); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetBody1():b2Body{ return (m_body1); } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public static function Destroy(_arg1:b2Joint, _arg2):void{ } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; _local3 = null; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } } }//package Box2D.Dynamics.Joints
Section 54
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var collideConnected:Boolean; public var body1:b2Body; public var body2:b2Body; public var userData; public var type:int; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 55
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var joint:b2Joint; public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; } }//package Box2D.Dynamics.Joints
Section 56
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { public var m_beta:Number; public var m_mass:b2Mat22; public var m_target:b2Vec2; public var m_impulse:b2Vec2; public var m_localAnchor:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K:b2Mat22; public var m_gamma:Number; public var m_C:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local2:Number; var _local3:Number; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); _local2 = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); _local4 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); _local5 = m_body2.m_mass; _local6 = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); _local7 = (((2 * _local5) * _arg1.dampingRatio) * _local6); _local8 = ((_arg1.timeStep * _local5) * (_local6 * _local6)); m_gamma = (1 / (_local7 + _local8)); m_beta = (_local8 / (_local7 + _local8)); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function GetReactionForce():b2Vec2{ return (m_impulse); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); _local9 = (_arg1.dt * m_impulse.x); _local10 = (_arg1.dt * m_impulse.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function GetReactionTorque():Number{ return (0); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local6 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; _local8 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); _local9 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y)); _local10 = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); _local11 = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); _local12 = m_impulse.x; _local13 = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); _local14 = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); _local15 = (_arg1.dt * _local10); _local16 = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } } }//package Box2D.Dynamics.Joints
Section 57
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var frequencyHz:Number; public var dampingRatio:Number; public var maxForce:Number; public var target:b2Vec2; public var timeStep:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; timeStep = (1 / 60); } } }//package Box2D.Dynamics.Joints
Section 58
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { public var m_limitForce:Number; public var m_refAngle:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_torque:Number; public var m_enableLimit:Boolean; public var m_motorForce:Number; public var m_force:Number; public var m_localYAxis1:b2Vec2; public var m_motorMass:Number; public var m_maxMotorForce:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_angularMass:Number; public var m_limitState:int; public var m_linearMass:Number; public var m_upperTranslation:Number; public var m_motorJacobian:b2Jacobian; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_linearJacobian:b2Jacobian; public var m_enableMotor:Boolean; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_linearJacobian = new b2Jacobian(); m_motorJacobian = new b2Jacobian(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_linearJacobian.SetZero(); m_linearMass = 0; m_force = 0; m_angularMass = 0; m_torque = 0; m_motorJacobian.SetZero(); m_motorMass = 0; m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerTranslation = _arg1.lowerTranslation; m_upperTranslation = _arg1.upperTranslation; m_maxMotorForce = _arg1.maxMotorForce; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function GetJointTranslation():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:b2Vec2; var _local9:Number; _local1 = m_body1; _local2 = m_body2; _local4 = _local1.GetWorldPoint(m_localAnchor1); _local5 = _local2.GetWorldPoint(m_localAnchor2); _local6 = (_local5.x - _local4.x); _local7 = (_local5.y - _local4.y); _local8 = _local1.GetWorldVector(m_localXAxis1); _local9 = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.m_xf.R; _local2 = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); _local3 = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); _local4 = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); _local5 = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; _local3 = m_body1; _local4 = m_body2; _local5 = _local3.m_invMass; _local6 = _local4.m_invMass; _local7 = _local3.m_invI; _local8 = _local4.m_invI; _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local21 = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); _local22 = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); _local23 = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local24 = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); _local25 = b2Math.b2Abs(_local23); _local26 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local27 = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); _local28 = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } public function GetJointSpeed():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:b2Vec2; var _local16:b2Vec2; var _local17:b2Vec2; var _local18:Number; var _local19:Number; var _local20:Number; _local1 = m_body1; _local2 = m_body2; _local3 = _local1.m_xf.R; _local4 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local5 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; _local7 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local8 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; _local9 = (_local1.m_sweep.c.x + _local4); _local10 = (_local1.m_sweep.c.y + _local5); _local11 = (_local2.m_sweep.c.x + _local7); _local12 = (_local2.m_sweep.c.y + _local8); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = _local1.GetWorldVector(m_localXAxis1); _local16 = _local1.m_linearVelocity; _local17 = _local2.m_linearVelocity; _local18 = _local1.m_angularVelocity; _local19 = _local2.m_angularVelocity; _local20 = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local10 = _local2.m_invMass; _local11 = _local3.m_invMass; _local12 = _local2.m_invI; _local13 = _local3.m_invI; _local4 = _local2.m_xf.R; _local14 = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); _local15 = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); _local16 = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); _local17 = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorForce():Number{ return (m_motorForce); } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_invMass; _local5 = _local3.m_invMass; _local6 = _local2.m_invI; _local7 = _local3.m_invI; _local9 = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local10 = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); _local11 = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); _local12 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local13 = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); _local14 = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } } }//package Box2D.Dynamics.Joints
Section 59
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PrismaticJointDef extends b2JointDef { public var localAxis1:b2Vec2; public var referenceAngle:Number; public var maxMotorForce:Number; public var motorSpeed:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var lowerTranslation:Number; public function b2PrismaticJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxis1.Set(1, 0); referenceAngle = 0; enableLimit = false; lowerTranslation = 0; upperTranslation = 0; enableMotor = false; maxMotorForce = 0; motorSpeed = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 60
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_ground:b2Body; public var m_maxLength2:Number; public var m_limitForce1:Number; public var m_maxLength1:Number; public var m_limitState1:int; public var m_limitState2:int; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_limitPositionImpulse1:Number; public var m_constant:Number; public var m_state:int; public var m_ratio:Number; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_positionImpulse:Number; public var m_limitMass2:Number; public var m_limitMass1:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_u2:b2Vec2; public var m_limitForce2:Number; public static const b2_minPulleyLength:Number = 2; public function b2PulleyJoint(_arg1:b2PulleyJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u1 = new b2Vec2(); m_u2 = new b2Vec2(); super(_arg1); m_ground = m_body1.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_ratio = _arg1.ratio; m_constant = (_arg1.length1 + (m_ratio * _arg1.length2)); m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio)); m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2; _local1 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; _local1 = m_body1; _local2 = m_body2; _local4 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local5 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local6 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local7 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local23 = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u1.Set((_local12 - _local4), (_local13 - _local5)); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local16 = m_u1.Length(); _local17 = m_u2.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local16)); } else { m_u1.SetZero(); }; if (_local17 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local17)); } else { m_u2.SetZero(); }; _local18 = ((m_constant - _local16) - (m_ratio * _local17)); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_pulleyMass) * _local18); _local20 = m_positionImpulse; m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19)); _local19 = (m_positionImpulse - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local14 = ((-(m_ratio) * _local19) * m_u2.x); _local15 = ((-(m_ratio) * _local19) * m_u2.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.SynchronizeTransform(); _local2.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); m_u1.Set((_local12 - _local4), (_local13 - _local5)); _local16 = m_u1.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local16)); m_u1.y = (m_u1.y * (1 / _local16)); } else { m_u1.SetZero(); }; _local18 = (m_maxLength1 - _local16); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local21 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local21); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; _local10 = (_local2.m_sweep.c.x + _local5); _local11 = (_local2.m_sweep.c.y + _local6); _local12 = (_local3.m_sweep.c.x + _local8); _local13 = (_local3.m_sweep.c.y + _local9); _local14 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local15 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local16 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local17 = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); _local18 = m_u1.Length(); _local19 = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; _local20 = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; _local21 = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); _local22 = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function GetReactionTorque():Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } public function GetLength2():Number{ var _local1:b2Vec2; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body2.GetWorldPoint(m_localAnchor2); _local2 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } public function GetLength1():Number{ var _local1:b2Vec2; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.GetWorldPoint(m_localAnchor1); _local2 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2; _local1 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.Joints
Section 61
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength2:Number; public var length1:Number; public var length2:Number; public var maxLength1:Number; public var ratio:Number; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); _local8 = (_arg5.x - _arg3.x); _local9 = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local10 = (_arg6.x - _arg4.x); _local11 = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; _local12 = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 62
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { public var m_limitForce:Number; public var m_motorForce:Number; public var m_pivotMass:b2Mat22; public var m_enableLimit:Boolean; public var m_limitState:int; public var m_motorMass:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var K:b2Mat22; public var m_pivotForce:b2Vec2; public var m_motorSpeed:Number; public var m_enableMotor:Boolean; public var m_limitPositionImpulse:Number; public var m_maxMotorTorque:Number; public var m_referenceAngle:Number; public var m_lowerAngle:Number; public var m_upperAngle:Number; public static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_pivotForce = new b2Vec2(); m_pivotMass = new b2Mat22(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_referenceAngle = _arg1.referenceAngle; m_pivotForce.Set(0, 0); m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerAngle = _arg1.lowerAngle; m_upperAngle = _arg1.upperAngle; m_maxMotorTorque = _arg1.maxMotorTorque; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ return (m_pivotForce); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local3 = m_body1; _local4 = m_body2; _local5 = 0; _local6 = _local3.m_xf.R; _local7 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local8 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; _local10 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; _local12 = (_local3.m_sweep.c.x + _local7); _local13 = (_local3.m_sweep.c.y + _local8); _local14 = (_local4.m_sweep.c.x + _local10); _local15 = (_local4.m_sweep.c.y + _local11); _local16 = (_local14 - _local12); _local17 = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); _local18 = _local3.m_invMass; _local19 = _local4.m_invMass; _local20 = _local3.m_invI; _local21 = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); _local22 = tImpulse.x; _local23 = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); _local24 = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local10 = _local2.m_invMass; _local11 = _local3.m_invMass; _local12 = _local2.m_invI; _local13 = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function GetMotorTorque():Number{ return (m_motorForce); } override public function GetReactionTorque():Number{ return (m_limitForce); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local11 = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); _local12 = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); _local13 = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); _local14 = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); _local15 = (_arg1.dt * _local13); _local16 = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } } }//package Box2D.Dynamics.Joints
Section 63
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2RevoluteJointDef extends b2JointDef { public var referenceAngle:Number; public var upperAngle:Number; public var lowerAngle:Number; public var motorSpeed:Number; public var maxMotorTorque:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 64
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; public class b2Body { public var m_next:b2Body; public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var m_shapeList:b2Shape; public var m_force:b2Vec2; public var m_mass:Number; public var m_sweep:b2Sweep; public var m_xf:b2XForm; public var m_torque:Number; public var m_userData; public var m_flags:uint; public var m_world:b2World; public var m_prev:b2Body; public var m_invMass:Number; public var m_type:int; public var m_linearDamping:Number; public var m_angularDamping:Number; public var m_invI:Number; public var m_linearVelocity:b2Vec2; public var m_sleepTime:Number; public var m_shapeCount:int; public var m_jointList:b2JointEdge; public var m_I:Number; public static var e_fixedRotationFlag:uint = 64; public static var e_frozenFlag:uint = 2; public static var e_maxTypes:uint = 3; public static var e_sleepFlag:uint = 8; private static var s_massData:b2MassData = new b2MassData(); public static var e_bulletFlag:uint = 32; public static var e_staticType:uint = 1; public static var e_islandFlag:uint = 4; public static var e_allowSleepFlag:uint = 16; private static var s_xf1:b2XForm = new b2XForm(); public static var e_dynamicType:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ var _local3:b2Mat22; var _local4:b2Vec2; m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); _local3 = m_xf.R; _local4 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x - (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.y + (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function SynchronizeTransform():void{ var _local1:b2Mat22; var _local2:b2Vec2; m_xf.R.Set(m_sweep.a); _local1 = m_xf.R; _local2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function GetInertia():Number{ return (m_I); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; var _local2:Number; var _local3:Number; var _local4:b2MassData; var _local5:b2Mat22; var _local6:b2Vec2; var _local7:int; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; _local2 = 0; _local3 = 0; _local4 = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); _local5 = m_xf.R; _local6 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; _local7 = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function PutToSleep():void{ m_flags = (m_flags | e_sleepFlag); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; } public function GetJointList():b2JointEdge{ return (m_jointList); } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local4:b2Mat22; var _local5:b2Vec2; var _local6:Boolean; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); _local4 = m_xf.R; _local5 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); _local6 = false; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function SynchronizeShapes():Boolean{ var _local1:b2XForm; var _local2:b2Mat22; var _local3:b2Vec2; var _local4:b2Shape; var _local5:Boolean; _local1 = s_xf1; _local1.R.Set(m_sweep.a0); _local2 = _local1.R; _local3 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); _local5 = true; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x)); m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y)); m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)))); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22; var _local3:b2Vec2; _local2 = m_xf.R; _local3 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:int; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); _local3 = m_xf.R; _local4 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; _local5 = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetShapeList():b2Shape{ return (m_shapeList); } public function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function CreateShape(_arg1:b2ShapeDef):b2Shape{ var _local2:b2Shape; if (m_world.m_lock == true){ return (null); }; _local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); return (_local2); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge; _local2 = m_jointList; while (_local2) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function DestroyShape(_arg1:b2Shape):void{ var _local2:b2Shape; var _local3:b2Shape; var _local4:Boolean; if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); _local2 = m_shapeList; _local3 = null; _local4 = false; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_shapeList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22; var _local3:b2Vec2; _local2 = m_xf.R; _local3 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorld():b2World{ return (m_world); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//package Box2D.Dynamics
Section 65
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2BodyDef { public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var angularDamping:Number; public var fixedRotation:Boolean; public var angle:Number; public var linearDamping:Number; public var massData:b2MassData; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.Dynamics
Section 66
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 67
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; public class b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:b2FilterData; var _local4:b2FilterData; var _local5:Boolean; _local3 = _arg1.GetFilterData(); _local4 = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; _local5 = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.Dynamics
Section 68
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; import flash.media.*; public class b2ContactListener { public var zv8s:Sound; var canjump:Boolean;// = false public function b2ContactListener(){ canjump = false; zv8s = new zv8(); super(); } public function Remove(_arg1:b2ContactPoint):void{ } public function Add(_arg1:b2ContactPoint):void{ if (_arg1.shape2.GetBody().GetUserData().name == "bullet"){ }; } public function can_jump(){ return (canjump); } public function Persist(_arg1:b2ContactPoint):void{ } public function Result(_arg1:b2ContactResult):void{ } } }//package Box2D.Dynamics
Section 69
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2Contact; _local3 = (_arg1 as b2Shape); _local4 = (_arg2 as b2Shape); _local5 = _local3.m_body; _local6 = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; _local7 = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } override public function PairRemoved(_arg1, _arg2, _arg3):void{ var _local4:b2Contact; if (_arg3 == null){ return; }; _local4 = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local2:b2Shape; var _local3:b2Shape; var _local4:int; var _local5:b2Body; var _local6:b2Body; var _local7:b2Body; var _local8:b2Body; var _local9:Array; var _local10:b2ContactPoint; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2Vec2; var _local16:b2Vec2; _local2 = _arg1.m_shape1; _local3 = _arg1.m_shape2; _local4 = _arg1.m_manifoldCount; if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = _local2.m_body; _local8 = _local3.m_body; _local9 = _arg1.GetManifolds(); _local10 = s_evalCP; _local10.shape1 = _arg1.m_shape1; _local10.shape2 = _arg1.m_shape2; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; _local5 = _local2.m_body; _local6 = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } public function Collide():void{ var _local1:b2Contact; var _local2:b2Body; var _local3:b2Body; _local1 = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.Dynamics
Section 70
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import flash.display.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_lineThickness:Number;// = 1 public var m_drawFlags:uint; public var m_sprite:Sprite; public var m_drawScale:Number;// = 1 public static var e_coreShapeBit:uint = 4; public static var e_shapeBit:uint = 1; public static var e_centerOfMassBit:uint = 64; public static var e_aabbBit:uint = 8; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_jointBit:uint = 2; public function b2DebugDraw(){ m_drawScale = 1; m_lineThickness = 1; m_alpha = 1; m_fillAlpha = 1; m_xformScale = 1; super(); m_drawFlags = 0; } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function GetFlags():uint{ return (m_drawFlags); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } } }//package Box2D.Dynamics
Section 71
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeJoint(_arg1:b2Joint):void{ } public function SayGoodbyeShape(_arg1:b2Shape):void{ } } }//package Box2D.Dynamics
Section 72
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Island { public var m_joints:Array; public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies:Array; public var m_jointCapacity:int; public var m_contactCount:int; public var m_contacts:Array; public var m_contactCapacity:int; public var m_jointCount:int; public var m_allocator; public var m_bodyCount:int; private static var s_reportCR:b2ContactResult = new b2ContactResult(); public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){ var _local6:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; m_bodies = new Array(_arg1); _local6 = 0; while (_local6 < _arg1) { m_bodies[_local6] = null; _local6++; }; m_contacts = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { m_contacts[_local6] = null; _local6++; }; m_joints = new Array(_arg3); _local6 = 0; while (_local6 < _arg3) { m_joints[_local6] = null; _local6++; }; m_positionIterationCount = 0; } public function AddBody(_arg1:b2Body):void{ var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } public function Report(_arg1:Array):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local4:int; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; _local4 = 0; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local8:b2ContactSolver; var _local9:int; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Number; var _local14:Number; var _local15:Number; _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; _local8 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local8.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local8.SolveVelocityConstraints(); _local9 = 0; while (_local9 < m_jointCount) { _local7 = m_joints[_local9]; _local7.SolveVelocityConstraints(_arg1); _local9++; }; _local5++; }; _local8.FinalizeVelocityConstraints(); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_sweep.c0.SetV(_local6.m_sweep.c); _local6.m_sweep.a0 = _local6.m_sweep.a; _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y)); _local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity)); _local6.SynchronizeTransform(); }; _local5++; }; if (_arg3){ _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local10 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local12 = _local7.SolvePositionConstraints(); _local11 = ((_local11) && (_local12)); _local5++; }; if (((_local10) && (_local11))){ break; }; m_positionIterationCount++; }; }; Report(_local8.m_constraints); if (_arg4){ _local13 = Number.MAX_VALUE; _local14 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local15 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.m_invMass == 0){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local13 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local15)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local14)))){ _local6.m_sleepTime = 0; _local13 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local13 = b2Math.b2Min(_local13, _local6.m_sleepTime); }; }; _local5++; }; if (_local13 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local3:b2ContactSolver; var _local4:Number; var _local5:b2Body; var _local6:Boolean; _local3 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; _local4 = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } }//package Box2D.Dynamics
Section 73
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var warmStarting:Boolean; public var positionCorrection:Boolean; public var dt:Number; public var maxIterations:int; public var dtRatio:Number; public var inv_dt:Number; } }//package Box2D.Dynamics
Section 74
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2World { public var m_inv_dt0:Number; public var m_boundaryListener:b2BoundaryListener; public var m_contactList:b2Contact; public var m_blockAllocator; public var m_contactListener:b2ContactListener; public var m_allowSleep:Boolean; public var m_broadPhase:b2BroadPhase; public var m_destructionListener:b2DestructionListener; public var m_jointCount:int; public var m_bodyCount:int; public var m_lock:Boolean; public var m_positionIterationCount:int; public var m_groundBody:b2Body; public var m_contactCount:int; public var m_debugDraw:b2DebugDraw; public var m_contactFilter:b2ContactFilter; public var m_bodyList:b2Body; public var m_stackAllocator; public var m_jointList:b2Joint; public var m_gravity:b2Vec2; public var m_contactManager:b2ContactManager; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); public static var m_continuousPhysics:Boolean; public static var m_warmStarting:Boolean; private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); public static var m_positionCorrection:Boolean; private static var s_xf:b2XForm = new b2XForm(); public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ var _local4:b2BodyDef; m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_positionCorrection = true; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_inv_dt0 = 0; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); _local4 = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2XForm; var _local5:b2XForm; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; _local2 = _arg1.m_body1; _local3 = _arg1.m_body2; _local4 = _local2.m_xf; _local5 = _local3.m_xf; _local6 = _local4.position; _local7 = _local5.position; _local8 = _arg1.GetAnchor1(); _local9 = _arg1.GetAnchor2(); _local10 = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } public function DrawDebugData():void{ var _local1:uint; var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2XForm; var _local12:b2AABB; var _local13:b2AABB; var _local14:Array; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); _local1 = m_debugDraw.GetFlags(); _local7 = new b2Vec2(); _local8 = new b2Vec2(); _local9 = new b2Vec2(); _local10 = new b2Color(0, 0, 0); _local12 = new b2AABB(); _local13 = new b2AABB(); _local14 = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local2:b2JointEdge; var _local3:b2Shape; var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; _local2 = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; _local3 = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local5:b2Color; var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; _local5 = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; }; } public function GetContactCount():int{ return (m_contactCount); } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Island; var _local4:b2Contact; var _local5:b2Joint; var _local6:int; var _local7:Array; var _local8:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; _local3 = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; _local4 = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; _local5 = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; _local6 = m_bodyCount; _local7 = new Array(_local6); _local8 = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.m_manifoldCount == 0){ } else { _local3.AddContact(_local12.contact); _local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag); _local11 = _local12.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local9; _local9 = (_local9 + 1); var _local16 = _temp2; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; }; _local12 = _local12.next; }; _local13 = _local2.m_jointList; while (_local13) { if (_local13.joint.m_islandFlag == true){ } else { _local3.AddJoint(_local13.joint); _local13.joint.m_islandFlag = true; _local11 = _local13.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local9; _local9 = (_local9 + 1); _local16 = _temp3; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; _local13 = _local13.next; }; }; }; _local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep); if (_local3.m_positionIterationCount > m_positionIterationCount){ m_positionIterationCount = _local3.m_positionIterationCount; }; _local10 = 0; while (_local10 < _local3.m_bodyCount) { _local2 = _local3.m_bodies[_local10]; if (_local2.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local10++; }; }; }; _local8 = _local8.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local14 = _local2.SynchronizeShapes(); if ((((_local14 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array; var _local5:int; var _local6:int; _local4 = new Array(_arg3); _local5 = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); _local6 = 0; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local8:b2Island; var _local9:int; var _local10:Array; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; _local8 = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); _local9 = m_bodyCount; _local10 = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.m_shape1; _local4 = _local11.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local19 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local19 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local19); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local19 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local19); }; }; _local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep); if ((((_local18 > 0)) && ((_local18 < 1)))){ _local18 = (((1 - _local18) * _local19) + _local18); if (_local18 > 1){ _local18 = 1; }; }; _local11.m_toi = _local18; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){ _local12 = _local11; _local13 = _local18; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.m_manifoldCount == 0){ } else { _local14 = _local5; if (_local14.IsStatic()){ _local14 = _local6; }; _local8.Clear(); _local15 = 0; var _temp1 = _local15; _local15 = (_local15 + 1); var _local22 = _temp1; _local10[_local22] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local15 > 0) { --_local15; _local2 = _local10[_local15]; _local8.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local8.m_contactCount == _local8.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function Validate():void{ m_broadPhase.Validate(); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function GetBodyList():b2Body{ return (m_bodyList); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetPositionCorrection(_arg1:Boolean):void{ m_positionCorrection = _arg1; } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local2:b2Joint; var _local3:b2Body; var _local4:b2Shape; _local2 = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local2:Boolean; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:b2Shape; _local2 = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; _local3 = _arg1.m_body1; _local4 = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function CreateBody(_arg1:b2BodyDef):b2Body{ var _local2:b2Body; if (m_lock == true){ return (null); }; _local2 = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function Step(_arg1:Number, _arg2:int):void{ var _local3:b2TimeStep; m_lock = true; _local3 = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; _local3.dtRatio = (m_inv_dt0 * _arg1); _local3.positionCorrection = m_positionCorrection; _local3.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((m_continuousPhysics) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_inv_dt0 = _local3.inv_dt; m_lock = false; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } } }//package Box2D.Dynamics
Section 75
//Input (General.Input) package General { import flash.display.*; import flash.events.*; public class Input { public static var mouseOffsetX:Number = 0; private static var keyArr:Array; public static var mouseDragX:Number = 0; public static var mouseDragY:Number = 0; public static var mouseOffsetY:Number = 0; public static var ascii:Array; public static var mouseX:Number = 0; public static var mouseY:Number = 0; public static var mouseOver:Boolean = false; private static var bufferSize:int; public static var mouse:Sprite = new Sprite(); public static var mouseDown:Boolean = false; public static var mouseReleased:Boolean = false; public static var lastKey:int = 0; public static var m_stageMc:Sprite; private static var keyState:Array; public static var timeSinceLastKey = 0; public static var mousePressed:Boolean = false; private static var keyBuffer:Array; public function Input(_arg1:Sprite){ var _local2:int; var _local3:int; super(); m_stageMc = _arg1; ascii = new Array(222); fillAscii(); keyState = new Array(222); keyArr = new Array(); _local2 = 0; while (_local2 < 222) { keyState[_local2] = new int(0); if (ascii[_local2] != undefined){ keyArr.push(_local2); }; _local2++; }; bufferSize = 5; keyBuffer = new Array(bufferSize); _local3 = 0; while (_local3 < bufferSize) { keyBuffer[_local3] = new Array(0, 0); _local3++; }; _arg1.stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPress, false, 0, true); _arg1.stage.addEventListener(KeyboardEvent.KEY_UP, keyRelease, false, 0, true); _arg1.stage.addEventListener(MouseEvent.MOUSE_DOWN, mousePress, false, 0, true); _arg1.stage.addEventListener(MouseEvent.CLICK, mouseRelease, false, 0, true); _arg1.stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMove, false, 0, true); _arg1.stage.addEventListener(Event.MOUSE_LEAVE, mouseLeave, false, 0, true); mouse.graphics.lineStyle(0.1, 0, 100); mouse.graphics.moveTo(0, 0); mouse.graphics.lineTo(0, 0.1); } public function mouseRelease(_arg1:MouseEvent){ mouseDown = false; mouseReleased = true; } public function keyPress(_arg1:KeyboardEvent){ keyState[_arg1.keyCode] = Math.max(keyState[_arg1.keyCode], 1); lastKey = _arg1.keyCode; } private function fillAscii(){ ascii[65] = "A"; ascii[66] = "B"; ascii[67] = "C"; ascii[68] = "D"; ascii[69] = "E"; ascii[70] = "F"; ascii[71] = "G"; ascii[72] = "H"; ascii[73] = "I"; ascii[74] = "J"; ascii[75] = "K"; ascii[76] = "L"; ascii[77] = "M"; ascii[78] = "N"; ascii[79] = "O"; ascii[80] = "P"; ascii[81] = "Q"; ascii[82] = "R"; ascii[83] = "S"; ascii[84] = "T"; ascii[85] = "U"; ascii[86] = "V"; ascii[87] = "W"; ascii[88] = "X"; ascii[89] = "Y"; ascii[90] = "Z"; ascii[48] = "0"; ascii[49] = "1"; ascii[50] = "2"; ascii[51] = "3"; ascii[52] = "4"; ascii[53] = "5"; ascii[54] = "6"; ascii[55] = "7"; ascii[56] = "8"; ascii[57] = "9"; ascii[32] = "Spacebar"; ascii[17] = "Ctrl"; ascii[16] = "Shift"; ascii[192] = "~"; ascii[38] = "up"; ascii[40] = "down"; ascii[37] = "left"; ascii[39] = "right"; ascii[96] = "Numpad 0"; ascii[97] = "Numpad 1"; ascii[98] = "Numpad 2"; ascii[99] = "Numpad 3"; ascii[100] = "Numpad 4"; ascii[101] = "Numpad 5"; ascii[102] = "Numpad 6"; ascii[103] = "Numpad 7"; ascii[104] = "Numpad 8"; ascii[105] = "Numpad 9"; ascii[111] = "Numpad /"; ascii[106] = "Numpad *"; ascii[109] = "Numpad -"; ascii[107] = "Numpad +"; ascii[110] = "Numpad ."; ascii[45] = "Insert"; ascii[46] = "Delete"; ascii[33] = "Page Up"; ascii[34] = "Page Down"; ascii[35] = "End"; ascii[36] = "Home"; ascii[112] = "F1"; ascii[113] = "F2"; ascii[114] = "F3"; ascii[115] = "F4"; ascii[116] = "F5"; ascii[117] = "F6"; ascii[118] = "F7"; ascii[119] = "F8"; ascii[188] = ","; ascii[190] = "."; ascii[186] = ";"; ascii[222] = "'"; ascii[219] = "["; ascii[221] = "]"; ascii[189] = "-"; ascii[187] = "+"; ascii[220] = "\\"; ascii[191] = "/"; ascii[9] = "TAB"; ascii[8] = "Backspace"; } public function mouseMove(_arg1:MouseEvent){ if (mouseDown != _arg1.buttonDown){ mouseDown = _arg1.buttonDown; mouseReleased = !(_arg1.buttonDown); mousePressed = _arg1.buttonDown; mouseDragX = 0; mouseDragY = 0; }; mouseX = (_arg1.stageX - m_stageMc.x); mouseY = (_arg1.stageY - m_stageMc.y); mouseOffsetX = (mouseX - mouse.x); mouseOffsetY = (mouseY - mouse.y); if (mouseDown){ mouseDragX = (mouseDragX + mouseOffsetX); mouseDragY = (mouseDragY + mouseOffsetY); }; mouse.x = mouseX; mouse.y = mouseY; } public function keyRelease(_arg1:KeyboardEvent){ var _local2:int; keyState[_arg1.keyCode] = -1; _local2 = (bufferSize - 1); while (_local2 > 0) { keyBuffer[_local2] = keyBuffer[(_local2 - 1)]; _local2--; }; keyBuffer[0] = [_arg1.keyCode, 0]; } public function mouseLeave(_arg1:Event){ mouseReleased = mouseDown; mouseDown = false; } public function mousePress(_arg1:MouseEvent){ mousePressed = true; mouseDown = true; mouseDragX = 0; mouseDragY = 0; } public static function getKeyHold(_arg1:int):int{ return (Math.max(0, keyState[_arg1])); } public static function update(){ var _local1:int; var _local2:int; _local1 = 0; while (_local1 < keyArr.length) { if (keyState[keyArr[_local1]] != 0){ var _local3 = keyState; var _local4 = keyArr[_local1]; var _local5 = (_local3[_local4] + 1); _local3[_local4] = _local5; }; _local1++; }; _local2 = 0; while (_local2 < bufferSize) { _local3 = keyBuffer[_local2]; _local4 = 1; _local5 = (_local3[_local4] + 1); _local3[_local4] = _local5; _local2++; }; mouseReleased = false; mousePressed = false; mouseOver = false; } public static function isKeyPressed(_arg1:int):Boolean{ timeSinceLastKey = 0; return ((keyState[_arg1] == 1)); } public static function isKeyDown(_arg1:int):Boolean{ return ((keyState[_arg1] > 0)); } public static function getKeyString(_arg1:uint):String{ return (ascii[_arg1]); } public static function isKeyReleased(_arg1:int):Boolean{ return ((keyState[_arg1] == -1)); } public static function isKeyInBuffer(_arg1:int, _arg2:int, _arg3:int){ return ((((keyBuffer[_arg2][0] == _arg1)) && ((keyBuffer[_arg2][1] <= _arg3)))); } } }//package General
Section 76
//allall_40 (HelloWorld_fla.allall_40) package HelloWorld_fla { import flash.display.*; public dynamic class allall_40 extends MovieClip { public function allall_40(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package HelloWorld_fla
Section 77
//chasti_pushki_110 (HelloWorld_fla.chasti_pushki_110) package HelloWorld_fla { import flash.display.*; public dynamic class chasti_pushki_110 extends MovieClip { public var fire:MovieClip; public var eyeL:MovieClip; public var userCannon:MovieClip; public var shh:MovieClip; } }//package HelloWorld_fla
Section 78
//fire_112 (HelloWorld_fla.fire_112) package HelloWorld_fla { import flash.display.*; public dynamic class fire_112 extends MovieClip { public var flame:MovieClip; } }//package HelloWorld_fla
Section 79
//LOGOEND_37 (HelloWorld_fla.LOGOEND_37) package HelloWorld_fla { import flash.display.*; public dynamic class LOGOEND_37 extends MovieClip { public function LOGOEND_37(){ addFrameScript(132, frame133); } function frame133(){ MovieClip(root).play(); stop(); } } }//package HelloWorld_fla
Section 80
//LOGOPRELOAD_0_17 (HelloWorld_fla.LOGOPRELOAD_0_17) package HelloWorld_fla { import flash.display.*; import flash.events.*; import flash.media.*; import flash.text.*; import flash.filters.*; import flash.net.*; import flash.utils.*; import flash.system.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.external.*; import flash.geom.*; import flash.printing.*; import flash.ui.*; import flash.xml.*; public dynamic class LOGOPRELOAD_0_17 extends MovieClip { public var thenextframe; public function LOGOPRELOAD_0_17(){ addFrameScript(0, frame1, 89, frame90); } function frame90(){ if (MovieClip(parent).isloaded){ MovieClip(parent).gotoAndStop(10); } else { thenextframe = (Math.ceil((Math.random() * 8)) + 1); if (thenextframe == MovieClip(parent).currentFrame){ MovieClip(parent).nextFrame(); } else { MovieClip(parent).gotoAndStop(thenextframe); }; }; } function frame1(){ if (Math.random() > 0.5){ scaleX = -(scaleX); x = (x - MovieClip(parent).shiftamt); }; } } }//package HelloWorld_fla
Section 81
//LOGOPRELOAD_1_21 (HelloWorld_fla.LOGOPRELOAD_1_21) package HelloWorld_fla { import flash.display.*; import flash.events.*; import flash.media.*; import flash.text.*; import flash.filters.*; import flash.net.*; import flash.utils.*; import flash.system.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.external.*; import flash.geom.*; import flash.printing.*; import flash.ui.*; import flash.xml.*; public dynamic class LOGOPRELOAD_1_21 extends MovieClip { public var thenextframe; public function LOGOPRELOAD_1_21(){ addFrameScript(0, frame1, 89, frame90); } function frame90(){ if (MovieClip(parent).isloaded){ MovieClip(parent).gotoAndStop(10); } else { thenextframe = (Math.ceil((Math.random() * 8)) + 1); if (thenextframe == MovieClip(parent).currentFrame){ MovieClip(parent).nextFrame(); } else { MovieClip(parent).gotoAndStop(thenextframe); }; }; } function frame1(){ if (Math.random() > 0.5){ scaleX = -(scaleX); x = (x - MovieClip(parent).shiftamt); }; } } }//package HelloWorld_fla
Section 82
//LOGOPRELOAD_2_24 (HelloWorld_fla.LOGOPRELOAD_2_24) package HelloWorld_fla { import flash.display.*; import flash.events.*; import flash.media.*; import flash.text.*; import flash.filters.*; import flash.net.*; import flash.utils.*; import flash.system.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.external.*; import flash.geom.*; import flash.printing.*; import flash.ui.*; import flash.xml.*; public dynamic class LOGOPRELOAD_2_24 extends MovieClip { public var thenextframe; public function LOGOPRELOAD_2_24(){ addFrameScript(0, frame1, 89, frame90); } function frame90(){ if (MovieClip(parent).isloaded){ MovieClip(parent).gotoAndStop(10); } else { thenextframe = (Math.ceil((Math.random() * 8)) + 1); if (thenextframe == MovieClip(parent).currentFrame){ MovieClip(parent).nextFrame(); } else { MovieClip(parent).gotoAndStop(thenextframe); }; }; } function frame1(){ if (Math.random() > 0.5){ scaleX = -(scaleX); x = (x - MovieClip(parent).shiftamt); }; } } }//package HelloWorld_fla
Section 83
//LOGOPRELOAD_3_26 (HelloWorld_fla.LOGOPRELOAD_3_26) package HelloWorld_fla { import flash.display.*; import flash.events.*; import flash.media.*; import flash.text.*; import flash.filters.*; import flash.net.*; import flash.utils.*; import flash.system.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.external.*; import flash.geom.*; import flash.printing.*; import flash.ui.*; import flash.xml.*; public dynamic class LOGOPRELOAD_3_26 extends MovieClip { public var thenextframe; public function LOGOPRELOAD_3_26(){ addFrameScript(0, frame1, 89, frame90); } function frame90(){ if (MovieClip(parent).isloaded){ MovieClip(parent).gotoAndStop(10); } else { thenextframe = (Math.ceil((Math.random() * 8)) + 1); if (thenextframe == MovieClip(parent).currentFrame){ MovieClip(parent).nextFrame(); } else { MovieClip(parent).gotoAndStop(thenextframe); }; }; } function frame1(){ if (Math.random() > 0.5){ scaleX = -(scaleX); x = (x - MovieClip(parent).shiftamt); }; } } }//package HelloWorld_fla
Section 84
//LOGOPRELOAD_4_28 (HelloWorld_fla.LOGOPRELOAD_4_28) package HelloWorld_fla { import flash.display.*; import flash.events.*; import flash.media.*; import flash.text.*; import flash.filters.*; import flash.net.*; import flash.utils.*; import flash.system.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.external.*; import flash.geom.*; import flash.printing.*; import flash.ui.*; import flash.xml.*; public dynamic class LOGOPRELOAD_4_28 extends MovieClip { public var thenextframe; public function LOGOPRELOAD_4_28(){ addFrameScript(0, frame1, 89, frame90); } function frame90(){ if (MovieClip(parent).isloaded){ MovieClip(parent).gotoAndStop(10); } else { thenextframe = (Math.ceil((Math.random() * 8)) + 1); if (thenextframe == MovieClip(parent).currentFrame){ MovieClip(parent).nextFrame(); } else { MovieClip(parent).gotoAndStop(thenextframe); }; }; } function frame1(){ if (Math.random() > 0.5){ scaleX = -(scaleX); x = (x - MovieClip(parent).shiftamt); }; } } }//package HelloWorld_fla
Section 85
//LOGOPRELOAD_5_30 (HelloWorld_fla.LOGOPRELOAD_5_30) package HelloWorld_fla { import flash.display.*; import flash.events.*; import flash.media.*; import flash.text.*; import flash.filters.*; import flash.net.*; import flash.utils.*; import flash.system.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.external.*; import flash.geom.*; import flash.printing.*; import flash.ui.*; import flash.xml.*; public dynamic class LOGOPRELOAD_5_30 extends MovieClip { public var thenextframe; public function LOGOPRELOAD_5_30(){ addFrameScript(0, frame1, 89, frame90); } function frame90(){ if (MovieClip(parent).isloaded){ MovieClip(parent).gotoAndStop(10); } else { thenextframe = (Math.ceil((Math.random() * 8)) + 1); if (thenextframe == MovieClip(parent).currentFrame){ MovieClip(parent).nextFrame(); } else { MovieClip(parent).gotoAndStop(thenextframe); }; }; } function frame1(){ if (Math.random() > 0.5){ scaleX = -(scaleX); x = (x - MovieClip(parent).shiftamt); }; } } }//package HelloWorld_fla
Section 86
//LOGOPRELOAD_6_32 (HelloWorld_fla.LOGOPRELOAD_6_32) package HelloWorld_fla { import flash.display.*; import flash.events.*; import flash.media.*; import flash.text.*; import flash.filters.*; import flash.net.*; import flash.utils.*; import flash.system.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.external.*; import flash.geom.*; import flash.printing.*; import flash.ui.*; import flash.xml.*; public dynamic class LOGOPRELOAD_6_32 extends MovieClip { public var thenextframe; public function LOGOPRELOAD_6_32(){ addFrameScript(0, frame1, 89, frame90); } function frame90(){ if (MovieClip(parent).isloaded){ MovieClip(parent).gotoAndStop(10); } else { thenextframe = (Math.ceil((Math.random() * 8)) + 1); if (thenextframe == MovieClip(parent).currentFrame){ MovieClip(parent).nextFrame(); } else { MovieClip(parent).gotoAndStop(thenextframe); }; }; } function frame1(){ if (Math.random() > 0.5){ scaleX = -(scaleX); x = (x - MovieClip(parent).shiftamt); }; } } }//package HelloWorld_fla
Section 87
//LOGOPRELOAD_7_34 (HelloWorld_fla.LOGOPRELOAD_7_34) package HelloWorld_fla { import flash.display.*; import flash.events.*; import flash.media.*; import flash.text.*; import flash.filters.*; import flash.net.*; import flash.utils.*; import flash.system.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.external.*; import flash.geom.*; import flash.printing.*; import flash.ui.*; import flash.xml.*; public dynamic class LOGOPRELOAD_7_34 extends MovieClip { public var thenextframe; public function LOGOPRELOAD_7_34(){ addFrameScript(0, frame1, 89, frame90); } function frame90(){ if (MovieClip(parent).isloaded){ MovieClip(parent).gotoAndStop(10); } else { thenextframe = (Math.ceil((Math.random() * 8)) + 1); if (thenextframe == MovieClip(parent).currentFrame){ MovieClip(parent).nextFrame(); } else { MovieClip(parent).gotoAndStop(thenextframe); }; }; } function frame1(){ if (Math.random() > 0.5){ scaleX = -(scaleX); x = (x - MovieClip(parent).shiftamt); }; } } }//package HelloWorld_fla
Section 88
//THEPRELOADER_1 (HelloWorld_fla.THEPRELOADER_1) package HelloWorld_fla { import flash.display.*; import flash.events.*; import flash.net.*; public dynamic class THEPRELOADER_1 extends MovieClip { public function THEPRELOADER_1(){ addFrameScript(0, frame1, 8, frame9); } public function butp(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.mofunzone.com"), "_balnk"); } function frame1(){ this.addEventListener(MouseEvent.CLICK, butp); this.buttonMode = true; } function frame9(){ stop(); } } }//package HelloWorld_fla
Section 89
//zooka_mov_108 (HelloWorld_fla.zooka_mov_108) package HelloWorld_fla { import flash.display.*; public dynamic class zooka_mov_108 extends MovieClip { public var cannonUser:MovieClip; } }//package HelloWorld_fla
Section 90
//awardmc (awardmc) package { import flash.display.*; public dynamic class awardmc extends MovieClip { public var mfz:SimpleButton; public var menubtn:SimpleButton; public var aw1:MovieClip; public var aw3:MovieClip; public var aw4:MovieClip; public var aw7:MovieClip; public var aw8:MovieClip; public var aw2:MovieClip; public var aw5:MovieClip; public var aw6:MovieClip; } }//package
Section 91
//backgroundmc (backgroundmc) package { import flash.display.*; public dynamic class backgroundmc extends MovieClip { } }//package
Section 92
//bochkamc (bochkamc) package { import flash.display.*; public dynamic class bochkamc extends MovieClip { } }//package
Section 93
//box (box) package { import flash.display.*; public dynamic class box extends MovieClip { } }//package
Section 94
//btnbtn (btnbtn) package { import flash.display.*; public dynamic class btnbtn extends MovieClip { } }//package
Section 95
//btndown (btndown) package { import flash.display.*; public dynamic class btndown extends MovieClip { } }//package
Section 96
//btnup (btnup) package { import flash.display.*; public dynamic class btnup extends MovieClip { } }//package
Section 97
//circmc (circmc) package { import flash.display.*; public dynamic class circmc extends MovieClip { } }//package
Section 98
//exitmc (exitmc) package { import flash.display.*; public dynamic class exitmc extends MovieClip { } }//package
Section 99
//explosion (explosion) package { import flash.display.*; public dynamic class explosion extends MovieClip { } }//package
Section 100
//explosion2 (explosion2) package { import flash.display.*; public dynamic class explosion2 extends MovieClip { } }//package
Section 101
//flongamove (flongamove) package { import flash.display.*; import flash.text.*; public dynamic class flongamove extends MovieClip { public var b1:SimpleButton; public var bl:MovieClip; public var fText:TextField; public var playy:SimpleButton; public var fBar:MovieClip; } }//package
Section 102
//Font1 (Font1) package { import flash.text.*; public dynamic class Font1 extends Font { } }//package
Section 103
//gran1 (gran1) package { import flash.display.*; public dynamic class gran1 extends MovieClip { } }//package
Section 104
//gran2 (gran2) package { import flash.display.*; public dynamic class gran2 extends MovieClip { } }//package
Section 105
//grenade (grenade) package { import flash.display.*; public dynamic class grenade extends MovieClip { } }//package
Section 106
//HelloWorld (HelloWorld) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import flash.display.*; import flash.events.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import General.*; import flash.media.*; import flash.text.*; import flash.filters.*; import flash.net.*; import flash.utils.*; import flash.system.*; import flash.errors.*; import mochi.as3.*; import MoFunZoneAPI.*; public class HelloWorld extends Sprite { public var btnbtnmc; public var kvadmcar:Array; public var scm:SoundChannel; public var scoreint:int; public var togom; public var resbtnmc; public var medalm; public var panelnextm; public var mgbtntf:TextField; public var listvrbody:Array; public var exitbtn; public var mpgold:int; public var scoretf:TextField; public var lockm; public var listbochbody:Array; public var sdelv:int;// = 0 public var allscore2:int;// = 0 public var bazooka_angle:Number; public var mpbronze:int; public var backgroundm; public var sharint:int;// = 0 public var power:int;// = 1 private var doSleep:Boolean;// = true public var powerlinem; var circleDef:b2CircleDef; public var m_contactListener; public var resbtntf:TextField; public var m_shadow:DropShadowFilter; public var numbum:int;// = 0 public var listsens:Array; public var boxDef2:b2PolygonDef; public var polygon:b2PolygonDef; public var m_world:b2World; public var menupanm; public var oporazm; public var btnupm; public var all_obj:Array; public var kvadobjar:Array; public var zvmuss2:Sound; public var stardeadm; public var m_input:Input; public var lc:LocalConnection; public var zv10s:Sound; public var togomd:int;// = 0 public var medpantf:TextField; public var bodyDef2:b2BodyDef; public var allscore:Number;// = 0 public var zv11s:Sound; public var glow:GlowFilter; var body:b2Body; public var awardm; public var zv12s:Sound; public var btnsm:Array; public var bazooka; public var all_objmen:Array; public var nextbtnmc; public var pixels_in_a_meter:int;// = 30 public var m_mouseJoint:b2MouseJoint; public var all_mcs:Array; public var musicbtn; public var timbtnm; public var vzr:vzriv; public var boxDef:b2PolygonDef; public var radiance:Number;// = 57.2957795130823 public var gmenu; public var est_gr:int;// = 0 public var sc:SoundChannel; private var gravity:b2Vec2; public var timevz:int;// = 300 public var listkrig:Array; public var oporabm; public var estvrag:int; public var charging:int;// = 0 public var mpsilver:int; public var tf:TextField; public var stringkup:String; public var yessound:Boolean;// = true public var listgranbody:Array; public var zv1s:Sound; public var pixels_in_a_meter2:int;// = 60 public var listjoint:Array; public var nextbtntf:TextField; public var zv2s:Sound; public var xspeed:int;// = 0 var body2:b2Body; var body3:b2Body; var body4:b2Body; var body5:b2Body; var body6:b2Body; private var m_sprite:Sprite; public var zv3s:Sound; public var btnbtnmc3; public var boomt:uint;// = 0 public var soundbtn; public var menum; public var selectm; private var worldAABB:b2AABB; public var zv4s:Sound; public var bodyDef:b2BodyDef; public var btnbtnmc2; public var listboch:Array; public var menTimer:Timer; public var format1:TextFormat; public var zv5s:Sound; public var menushar:Array; public var btndownm; public var zv6s:Sound; public var listgrant:Array; public var zvmuss:Sound; public var my_canvas:Sprite; public var zv7s:Sound; public var damenu:Boolean;// = false public var all_mcsmen:Array; public var robodeadm; public var tlevel:int;// = 0 public var zv9s:Sound; public var mgbtnmc; public var yesmusic:Boolean;// = true public var medal_panm; private var input:Input; public var glmenu:Boolean;// = true private var dbgSprite:Sprite; public var pantf:TextField; public var mySharedObject; public var scoreTimer:Timer; public var listvr:Array; public var vzr2:vzrivdva; public var listvz:Array; public var liststar:Array; public var listgran:Array; public var myfont:Font1; public function HelloWorld(){ var _local1:b2BodyDef; var _local2:b2PolygonDef; var _local3:b2CircleDef; var _local4:b2DebugDraw; pixels_in_a_meter = 30; format1 = new TextFormat(); xspeed = 0; zv1s = new zv1(); zv2s = new zv2(); zv3s = new zv3(); zv4s = new zv4(); zv5s = new zv5(); zv6s = new zv6(); zv7s = new zv7(); zv9s = new zv9(); zv10s = new zv10(); zv11s = new zv11(); zv12s = new zv12(); zvmuss = new zvmus(); zvmuss2 = new zvmus2(); sc = new SoundChannel(); scm = new SoundChannel(); pantf = new TextField(); medpantf = new TextField(); resbtntf = new TextField(); nextbtntf = new TextField(); mgbtntf = new TextField(); allscore = 0; damenu = false; glmenu = true; yessound = true; yesmusic = true; vzr = new vzriv(); vzr2 = new vzrivdva(); m_contactListener = new b2ContactListener(); tf = new TextField(); scoretf = new TextField(); lc = new LocalConnection(); power = 1; mySharedObject = SharedObject.getLocal("republicofcode"); charging = 0; tlevel = 0; boomt = 0; est_gr = 0; timevz = 300; listvr = []; listvz = []; listsens = []; listkrig = []; liststar = []; listgran = []; listgrant = []; all_mcs = []; all_mcsmen = []; listgranbody = []; listvrbody = []; all_obj = []; all_objmen = []; btnsm = []; listboch = []; listbochbody = []; myfont = new Font1(); glow = new GlowFilter(0xFFFFFF, 1, 7, 7, 3, 2); m_shadow = new DropShadowFilter(0, 90, 0, 1, 15, 15, 1.3, 1); radiance = (180 / Math.PI); numbum = 0; my_canvas = new Sprite(); listjoint = []; kvadmcar = []; kvadobjar = []; pixels_in_a_meter2 = 60; polygon = new b2PolygonDef(); togomd = 0; menushar = []; sharint = 0; allscore2 = 0; sdelv = 0; worldAABB = new b2AABB(); doSleep = true; dbgSprite = new Sprite(); gravity = new b2Vec2(0, 10); super(); m_sprite = new Sprite(); parent.parent.addChild(m_sprite); m_input = new Input(m_sprite); Font.registerFont(Font1); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, mousePressed); stage.addEventListener(MouseEvent.MOUSE_UP, mouseReleased); _local4 = new b2DebugDraw(); worldAABB.lowerBound.Set(-100, -100); worldAABB.upperBound.Set(100, 100); m_world = new b2World(worldAABB, gravity, doSleep); _local4.m_sprite = m_sprite; _local4.m_drawScale = 30; _local4.m_alpha = 1; _local4.m_fillAlpha = 0.5; _local4.m_lineThickness = 1; _local4.m_drawFlags = (b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit); m_world.SetContactListener(m_contactListener); parent.addChild(my_canvas); Security.loadPolicyFile("http://www.mofunzone.com/game_scores/ragdoll_spree_players_pack/crossdomain.xml"); Security.allowDomain("http://mofunzone.com/"); Security.loadPolicyFile("http://gamefilez.mofunzone.com/game_scores/ragdoll_spree_players_pack/crossdomain.xml"); textCreate(); init(); if ((((selectm.visible == true)) || ((menum.visible == true)))){ scm = zvmuss.play(0, int.MAX_VALUE); }; if ((((selectm.visible == false)) && ((menum.visible == false)))){ scm = zvmuss2.play(0, int.MAX_VALUE); }; } public function create_kvad(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):void{ var _local9:*; _local9 = new kvadmc(); _local9.gotoAndStop(_arg7); bodyDef = new b2BodyDef(); _local9.width = _arg3; _local9.height = _arg4; _local9.x = (_arg1 + (_local9.width / 2)); _local9.y = (_arg2 + (_local9.height / 2)); _local9.dead = false; if (_arg8 == 1){ }; bodyDef.position.Set((_local9.x / pixels_in_a_meter), (_local9.y / pixels_in_a_meter)); boxDef = new b2PolygonDef(); boxDef.SetAsBox(real_pixels(_local9.width), real_pixels(_local9.height)); boxDef.density = 0; if ((((_arg7 == 5)) || ((_arg7 == 6)))){ boxDef.density = 1; }; boxDef.friction = 1; boxDef.restitution = 0; bodyDef.userData = _local9; bodyDef.angle = (_arg5 / (180 / Math.PI)); _local9.rotation = (bodyDef.angle * (180 / Math.PI)); body = m_world.CreateBody(bodyDef); body.CreateShape(boxDef); body.SetMassFromShapes(); addChild(_local9); kvadmcar.push(_local9); kvadobjar.push(body); } public function soundBtnDa(_arg1:MouseEvent):void{ if (soundbtn.currentFrame == 1){ soundbtn.gotoAndStop(2); yessound = false; } else { if (soundbtn.currentFrame == 2){ soundbtn.gotoAndStop(1); yessound = true; }; }; } public function selOver(_arg1:Event):void{ _arg1.target.parent.scaleX = (_arg1.target.parent.scaleX + 0.5); _arg1.target.parent.scaleY = (_arg1.target.parent.scaleY + 0.5); _arg1.target.parent.str.scaleX = (_arg1.target.parent.str.scaleX - 0.5); _arg1.target.parent.str.scaleY = (_arg1.target.parent.str.scaleY - 0.5); if (mySharedObject.data[("lev" + _arg1.target.clev)] != undefined){ selectm.lvltxt.text = ((("level " + _arg1.target.clev) + ": ") + mySharedObject.data[("lev" + _arg1.target.clev)]); }; if (mySharedObject.data[("lev" + _arg1.target.clev)] == undefined){ selectm.lvltxt.text = ("level " + _arg1.target.clev); }; selectm.lvltxt.visible = true; } public function killMeDaDva(_arg1:MovieClip):void{ _arg1.addFrameScript((_arg1.totalFrames - 1), null); removeChild(_arg1); listvz.shift(); m_world.DestroyBody(listsens[0]); listsens.shift(); } public function clickHandlerDown(_arg1:MouseEvent):void{ if (timevz > 100){ timevz = (timevz - 100); }; } public function hitstar():void{ var s:uint; var k:uint; var g:uint; s = 0; while (s < liststar.length) { g = 0; while (g < listgran.length) { if (liststar[s].dead == false){ if (liststar[s].hitTestObject(listgran[g])){ liststar[s].dead = true; }; }; g = (g + 1); }; s = (s + 1); }; k = 0; while (k < liststar.length) { if (liststar[k].dead == true){ stardeadm = new stardead(); stardeadm.x = liststar[k].x; stardeadm.y = liststar[k].y; stardeadm.rotation = random(1, 359); stardeadm.scaleX = random(0.8, 1.2); stardeadm.scaleY = stardeadm.scaleX; stardeadm.addFrameScript((stardeadm.totalFrames - 1), function (_arg1:MovieClip){ var stardeadm = _arg1; return (function (){ killMe(stardeadm); }); }(stardeadm)); addChild(stardeadm); if (yessound){ zv4s.play(); }; swapChildren(liststar[k], stardeadm); removeChild(liststar[k]); liststar.splice(k, 1); scoreint = (scoreint + 100); estvrag--; if (mySharedObject.data["so6"] == undefined){ mySharedObject.data["so6"] = 0; }; if (mySharedObject.data["so6"] < 100){ mySharedObject.data["so6"] = (Number(mySharedObject.data["so6"]) + 1); }; if (mySharedObject.data["aw6"] == undefined){ if (mySharedObject.data["so6"] >= 200){ awardm.aw6.gotoAndStop(2); mySharedObject.data["aw6"] = "da"; }; }; if (mySharedObject.data["aw6"] != undefined){ awardm.aw6.gotoAndStop(2); }; }; k = (k + 1); }; } public function textUpdate():void{ menupanm.lvltxt.text = ("level " + tlevel); menupanm.scoretxt.text = ("score: " + scoreint); pantf.text = (" " + (timevz / 100)); } public function real_pixels(_arg1:int){ return (((_arg1 / pixels_in_a_meter) / 2)); } public function textCreate():void{ var _local1:*; format1.font = myfont.fontName; format1.size = 15; gmenu = new MovieClip(); gmenu.x = 0; gmenu.y = 0; parent.addChild(gmenu); btnupm = new btnup(); btnupm.x = (74 + (btnupm.width / 2)); btnupm.y = (435 + (btnupm.height / 2)); btnupm.buttonMode = true; btnupm.addEventListener(MouseEvent.CLICK, clickHandlerUp); btnupm.addEventListener(MouseEvent.MOUSE_OVER, btnOver); btnupm.addEventListener(MouseEvent.MOUSE_OUT, btnOut); gmenu.addChild(btnupm); btndownm = new btndown(); btndownm.x = (74 + (btndownm.width / 2)); btndownm.y = (458 + (btndownm.height / 2)); btndownm.buttonMode = true; btndownm.addEventListener(MouseEvent.CLICK, clickHandlerDown); btndownm.addEventListener(MouseEvent.MOUSE_OVER, btnOver); btndownm.addEventListener(MouseEvent.MOUSE_OUT, btnOut); gmenu.addChild(btndownm); timbtnm = new timbtn(); timbtnm.x = (25 + (timbtnm.width / 2)); timbtnm.y = (435 + (timbtnm.height / 2)); gmenu.addChild(timbtnm); btnupm.visible = false; btndownm.visible = false; timbtnm.visible = false; medal_panm = new medal_pan(); _local1 = medal_panm.getChildAt(1); medal_panm.x = (584 + (medal_panm.width / 2)); medal_panm.y = (435 + (medal_panm.height / 2)); _local1.stop(); gmenu.addChild(medal_panm); medal_panm.visible = false; medpantf.x = (medal_panm.x - 8); medpantf.y = (medal_panm.y - 20); medpantf.width = 25; medpantf.selectable = false; medpantf.embedFonts = true; medpantf.autoSize = TextFieldAutoSize.RIGHT; medpantf.defaultTextFormat = format1; medpantf.text = (mpgold + ""); medpantf.filters = [glow]; gmenu.addChild(medpantf); medpantf.visible = false; pantf.x = (timbtnm.x - 8); pantf.y = (timbtnm.y - 20); pantf.width = 25; pantf.selectable = false; pantf.embedFonts = true; pantf.autoSize = TextFieldAutoSize.RIGHT; pantf.defaultTextFormat = format1; pantf.text = (15 + ""); pantf.filters = [glow]; gmenu.addChild(pantf); pantf.visible = false; nextbtnmc = new nextbtnm(); nextbtnmc.x = (210 + (nextbtnmc.width / 2)); nextbtnmc.y = (300 + (nextbtnmc.height / 2)); nextbtnmc.buttonMode = true; gmenu.addChild(nextbtnmc); nextbtnmc.addEventListener(MouseEvent.CLICK, nextBtnEv); nextbtnmc.addEventListener(MouseEvent.MOUSE_OVER, btnOver); nextbtnmc.addEventListener(MouseEvent.MOUSE_OUT, btnOut); medalm = new medalmc(); medalm.x = (650 / 2); medalm.y = ((500 / 2) - 30); medalm.gotoAndStop(1); medalm.filters = [m_shadow]; medalm.visible = false; gmenu.addChild(medalm); menupanm = new menupan(); menupanm.x = 0; menupanm.y = 495; parent.addChild(menupanm); menupanm.addEventListener(MouseEvent.MOUSE_OVER, btnOver); menupanm.addEventListener(MouseEvent.MOUSE_OUT, btnOut); menupanm.resbtn.addEventListener(MouseEvent.CLICK, resBtnEv); menupanm.mmbtn.addEventListener(MouseEvent.CLICK, closeBtn); menupanm.mfz.addEventListener(MouseEvent.CLICK, butp); menupanm.mfzg.addEventListener(MouseEvent.CLICK, butp_mfzg); glmenu = true; selectm = new selectmc(); selectm.x = (0 + (selectm.width / 2)); selectm.y = (0 + (selectm.height / 2)); parent.addChild(selectm); selectm.menubtn.addEventListener(MouseEvent.CLICK, closeBtn); selectm.mfz.addEventListener(MouseEvent.CLICK, butp_selectm); selectm.subbtn.addEventListener(MouseEvent.CLICK, subbtnclick); menum = new menumc(); menum.x = (0 + (menum.width / 2)); menum.y = (0 + (menum.height / 2)); selectm.lvltxt.visible = false; parent.addChild(menum); menum.playbtn.addEventListener(MouseEvent.CLICK, butm1click); menum.mfz.addEventListener(MouseEvent.CLICK, butp); menum.amb.addEventListener(MouseEvent.CLICK, ambclick); menum.smb.addEventListener(MouseEvent.CLICK, smbclick); square_tilemen(485, 485, 7, 0); square_tilemen(505, 485, 7, 0); square_tilemen(525, 485, 7, 0); square_tilemen(545, 485, 7, 0); square_tilemen(565, 485, 7, 0); square_tilemen(585, 485, 7, 0); square_tilemen(605, 485, 7, 0); square_tilemen(625, 485, 7, 0); square_tilemen(645, 480, 7, 0); square_tilemen(645, 460, 7, 0); square_tilemen(645, 440, 7, 0); square_tilemen(645, 420, 7, 0); square_tilemen(645, 400, 7, 0); square_tilemen(645, 380, 7, 0); square_tilemen(645, 360, 7, 0); square_tilemen(645, 340, 7, 0); square_tilemen(645, 320, 7, 0); square_tilemen(645, 300, 7, 0); square_tilemen(490, 465, 7, 0); square_tilemen(490, 445, 7, 0); square_tilemen(485, 425, 7, 0); square_tilemen(465, 425, 7, 0); square_tilemen(445, 410, 7, 0); square_tilemen(425, 405, 7, 0); square_tilemen(405, 395, 7, 0); square_tilemen(385, 400, 7, 0); square_tilemen(375, 380, 7, 0); square_tilemen(385, 360, 7, 0); square_tilemen(400, 340, 7, 0); square_tilemen(420, 325, 7, 0); square_tilemen(405, 305, 7, 0); square_tilemen(415, 295, 7, 0); square_tilemen(425, 280, 7, 0); awardm = new awardmc(); awardm.x = (0 + (awardm.width / 2)); awardm.y = (0 + (awardm.height / 2)); parent.addChild(awardm); awardm.menubtn.addEventListener(MouseEvent.CLICK, closeBtn); awardm.visible = false; if (mySharedObject.data["aw1"] == undefined){ awardm.aw1.gotoAndStop(1); }; if (mySharedObject.data["aw2"] == undefined){ awardm.aw2.gotoAndStop(1); }; if (mySharedObject.data["aw3"] == undefined){ awardm.aw3.gotoAndStop(1); }; if (mySharedObject.data["aw4"] == undefined){ awardm.aw4.gotoAndStop(1); }; if (mySharedObject.data["aw5"] == undefined){ awardm.aw5.gotoAndStop(1); }; if (mySharedObject.data["aw6"] == undefined){ awardm.aw6.gotoAndStop(1); }; if (mySharedObject.data["aw7"] == undefined){ awardm.aw7.gotoAndStop(1); }; if (mySharedObject.data["aw8"] == undefined){ awardm.aw8.gotoAndStop(1); }; if (mySharedObject.data["aw1"] != undefined){ awardm.aw1.gotoAndStop(2); }; if (mySharedObject.data["aw2"] != undefined){ awardm.aw2.gotoAndStop(2); }; if (mySharedObject.data["aw3"] != undefined){ awardm.aw3.gotoAndStop(2); }; if (mySharedObject.data["aw4"] != undefined){ awardm.aw4.gotoAndStop(2); }; if (mySharedObject.data["aw5"] != undefined){ awardm.aw5.gotoAndStop(2); }; if (mySharedObject.data["aw6"] != undefined){ awardm.aw6.gotoAndStop(2); }; if (mySharedObject.data["aw7"] != undefined){ awardm.aw7.gotoAndStop(2); }; if (mySharedObject.data["aw8"] != undefined){ awardm.aw8.gotoAndStop(2); }; awardm.mfz.addEventListener(MouseEvent.CLICK, butp_selectm); powerlinem = new powerline(); parent.parent.addChild(powerlinem); powerlinem.visible = false; soundbtn = new soundmc(); soundbtn.x = (660 + (soundbtn.width / 2)); soundbtn.y = (23 + (soundbtn.height / 2)); soundbtn.filters = [glow]; soundbtn.gotoAndStop(1); parent.addChild(soundbtn); btnbtnmc2 = new btnbtn(); btnbtnmc2.x = soundbtn.x; btnbtnmc2.y = soundbtn.y; btnbtnmc2.buttonMode = true; parent.addChild(btnbtnmc2); btnbtnmc2.addEventListener(MouseEvent.CLICK, soundBtnDa); btnbtnmc2.addEventListener(MouseEvent.MOUSE_OVER, btnOver); btnbtnmc2.addEventListener(MouseEvent.MOUSE_OUT, btnOut); musicbtn = new musicmc(); musicbtn.x = (620 + (musicbtn.width / 2)); musicbtn.y = (23 + (musicbtn.height / 2)); musicbtn.filters = [glow]; musicbtn.gotoAndStop(1); parent.addChild(musicbtn); btnbtnmc3 = new btnbtn(); btnbtnmc3.x = musicbtn.x; btnbtnmc3.y = musicbtn.y; btnbtnmc3.buttonMode = true; parent.addChild(btnbtnmc3); btnbtnmc3.addEventListener(MouseEvent.CLICK, musicBtnDa); btnbtnmc3.addEventListener(MouseEvent.MOUSE_OVER, btnOver); btnbtnmc3.addEventListener(MouseEvent.MOUSE_OUT, btnOut); backgroundm = new backgroundmc(); backgroundm.x = (backgroundm.width / 2); backgroundm.y = (backgroundm.height / 2); addChild(backgroundm); panelnextm = new panelnext(); panelnextm.x = (700 / 2); panelnextm.y = (525 / 2); panelnextm.visible = false; panelnextm.buttonMode = true; gmenu.addChild(panelnextm); panelnextm.addEventListener(MouseEvent.CLICK, nextBtnEv); panelnextm.addEventListener(MouseEvent.MOUSE_OVER, btnOver); panelnextm.addEventListener(MouseEvent.MOUSE_OUT, btnOut); scoreTimer = new Timer(1000); menTimer = new Timer(500); menTimer.addEventListener(TimerEvent.TIMER, onmenTimer); menTimer.start(); scoreTimer.addEventListener(TimerEvent.TIMER, onScoreTimer); mySharedObject.data.lev0 = "100"; lockm = new lockmc(); lockm.x = 0; lockm.y = 0; parent.addChild(lockm); lockm.visible = false; } public function awardTest():void{ var _local1:*; allscore2 = 0; _local1 = 1; while (_local1 < 31) { if (mySharedObject.data[("lev" + _local1)] == undefined){ } else { allscore2 = (allscore2 + mySharedObject.data[("lev" + _local1)]); }; _local1++; }; if (mySharedObject.data["aw1"] == undefined){ if (mySharedObject.data["lev15"] != undefined){ awardm.aw1.gotoAndStop(2); mySharedObject.data["aw1"] = "da"; }; }; if (mySharedObject.data["aw1"] != undefined){ awardm.aw1.gotoAndStop(2); }; if (mySharedObject.data["aw2"] == undefined){ if (mySharedObject.data["lev30"] != undefined){ awardm.aw2.gotoAndStop(2); mySharedObject.data["aw2"] = "da"; }; }; if (mySharedObject.data["aw2"] != undefined){ awardm.aw2.gotoAndStop(2); }; if (mySharedObject.data["aw3"] == undefined){ if (allscore2 >= 35000){ awardm.aw3.gotoAndStop(2); mySharedObject.data["aw3"] = "da"; }; }; if (mySharedObject.data["aw3"] != undefined){ awardm.aw3.gotoAndStop(2); }; if (mySharedObject.data["aw4"] == undefined){ if (allscore2 >= 55000){ awardm.aw4.gotoAndStop(2); mySharedObject.data["aw4"] = "da"; }; }; if (mySharedObject.data["aw4"] != undefined){ awardm.aw4.gotoAndStop(2); }; if (mySharedObject.data["aw7"] == undefined){ if (((((!((mySharedObject.data["lev16"] == undefined))) && ((sdelv <= 5)))) && ((tlevel <= 20)))){ awardm.aw7.gotoAndStop(2); mySharedObject.data["aw7"] = "da"; }; }; if (mySharedObject.data["aw7"] != undefined){ awardm.aw7.gotoAndStop(2); }; if (mySharedObject.data["aw8"] == undefined){ if (((((!((mySharedObject.data["lev25"] == undefined))) && ((sdelv <= 6)))) && ((tlevel >= 20)))){ awardm.aw8.gotoAndStop(2); mySharedObject.data["aw8"] = "da"; }; }; if (mySharedObject.data["aw8"] != undefined){ awardm.aw8.gotoAndStop(2); }; mySharedObject.flush(); } public function selOut(_arg1:Event):void{ _arg1.target.parent.scaleX = (_arg1.target.parent.scaleX - 0.5); _arg1.target.parent.scaleY = (_arg1.target.parent.scaleY - 0.5); _arg1.target.parent.str.scaleX = (_arg1.target.parent.str.scaleX + 0.5); _arg1.target.parent.str.scaleY = (_arg1.target.parent.str.scaleY + 0.5); selectm.lvltxt.visible = false; } public function create_krugmen():void{ var _local1:*; var _local2:Number; var _local3:Number; _local3 = random(1, 2); _local1 = new grenade(); _local2 = 10; bodyDef = new b2BodyDef(); if (_local3 == 2){ _local1.x = (random(530, 610) + (_local1.width / 2)); _local1.y = (random(-40, -20) + (_local1.height / 2)); bodyDef.position.x = (_local1.x / pixels_in_a_meter); bodyDef.position.y = (_local1.y / pixels_in_a_meter); circleDef = new b2CircleDef(); circleDef.radius = (_local2 / pixels_in_a_meter); circleDef.density = 1; circleDef.friction = 0.2; circleDef.restitution = 0.2; bodyDef.userData = _local1; body = m_world.CreateBody(bodyDef); body.CreateShape(circleDef); body.SetMassFromShapes(); parent.parent.addChild(_local1); all_mcsmen.push(_local1); all_objmen.push(body); }; } public function killMeDa(_arg1:MovieClip):void{ _arg1.addFrameScript((_arg1.totalFrames - 1), null); parent.parent.removeChild(_arg1); } public function random(_arg1:Number, _arg2:Number):Number{ return ((Math.round((Math.random() * (_arg2 - _arg1))) + _arg1)); } public function UpdateTogom(_arg1:Event):void{ if (_arg1.target.currentFrame == 30){ if (togomd == 1){ menum.visible = false; selectm.visible = true; allscore = 0; menTimer.stop(); DeleteShar(); worldClearMen(); selMen(); }; if (togomd == 2){ menum.visible = true; selectm.visible = true; awardm.visible = false; glmenu = true; tlevel = 0; worldClear(); menTimer.start(); if (yesmusic){ scm.stop(); scm = zvmuss.play(0, int.MAX_VALUE); }; }; if (togomd == 3){ menum.visible = false; selectm.visible = false; awardm.visible = false; glmenu = false; worldClear(); scm.stop(); if (yesmusic){ scm = zvmuss2.play(0, int.MAX_VALUE); }; }; if (togomd == 4){ menum.visible = false; selectm.visible = false; awardm.visible = true; allscore = 0; worldClearMen(); menTimer.stop(); DeleteShar(); awardTest(); }; _arg1.target.removeEventListener(Event.ENTER_FRAME, UpdateTogom); }; } public function create_border(_arg1:int){ var _local2:*; var _local3:*; var _local4:*; var _local5:*; if (_arg1 == 0){ _local3 = new gran1(); bodyDef = new b2BodyDef(); _local3.x = (0 + (_local3.width / 2)); _local3.y = (485 + (_local3.height / 2)); _local3.scaleY = -1; bodyDef.position.Set((_local3.x / pixels_in_a_meter), (_local3.y / pixels_in_a_meter)); boxDef = new b2PolygonDef(); boxDef.SetAsBox(real_pixels(_local3.width), real_pixels(_local3.height)); boxDef.density = 0; boxDef.friction = 0.3; boxDef.restitution = 0.2; bodyDef.userData = _local3; body = m_world.CreateBody(bodyDef); body.CreateShape(boxDef); body.SetMassFromShapes(); all_obj.push(body); addChild(_local3); all_mcs.push(_local3); }; if (_arg1 == 1){ _local2 = new gran1(); bodyDef = new b2BodyDef(); _local2.x = (0 + (_local2.width / 2)); _local2.y = (0 + (_local2.height / 2)); bodyDef.position.Set((_local2.x / pixels_in_a_meter), (_local2.y / pixels_in_a_meter)); boxDef = new b2PolygonDef(); boxDef.SetAsBox(real_pixels(_local2.width), real_pixels(_local2.height)); boxDef.density = 0; boxDef.friction = 0.3; boxDef.restitution = 0.2; bodyDef.userData = _local2; body = m_world.CreateBody(bodyDef); body.CreateShape(boxDef); body.SetMassFromShapes(); all_obj.push(body); addChild(_local2); all_mcs.push(_local2); _local3 = new gran1(); bodyDef = new b2BodyDef(); _local3.x = (0 + (_local3.width / 2)); _local3.y = (485 + (_local3.height / 2)); _local3.scaleY = -1; bodyDef.position.Set((_local3.x / pixels_in_a_meter), (_local3.y / pixels_in_a_meter)); boxDef = new b2PolygonDef(); boxDef.SetAsBox(real_pixels(_local3.width), real_pixels(_local3.height)); boxDef.density = 0; boxDef.friction = 0.3; boxDef.restitution = 0.2; bodyDef.userData = _local3; body = m_world.CreateBody(bodyDef); body.CreateShape(boxDef); body.SetMassFromShapes(); all_obj.push(body); addChild(_local3); all_mcs.push(_local3); _local4 = new gran2(); bodyDef = new b2BodyDef(); _local4.x = (0 + (_local4.width / 2)); _local4.y = (0 + (_local4.height / 2)); bodyDef.position.Set((_local4.x / pixels_in_a_meter), (_local4.y / pixels_in_a_meter)); boxDef = new b2PolygonDef(); boxDef.SetAsBox(real_pixels(_local4.width), real_pixels(_local4.height)); boxDef.density = 0; boxDef.friction = 0.3; boxDef.restitution = 0.2; bodyDef.userData = _local4; body = m_world.CreateBody(bodyDef); body.CreateShape(boxDef); body.SetMassFromShapes(); all_obj.push(body); addChild(_local4); all_mcs.push(_local4); _local5 = new gran2(); bodyDef = new b2BodyDef(); _local5.x = (690 + (_local5.width / 2)); _local5.y = (0 + (_local5.height / 2)); _local5.scaleX = -1; bodyDef.position.Set((_local5.x / pixels_in_a_meter), (_local5.y / pixels_in_a_meter)); boxDef = new b2PolygonDef(); boxDef.SetAsBox(real_pixels(_local5.width), real_pixels(_local5.height)); boxDef.density = 0; boxDef.friction = 0.3; boxDef.restitution = 0.2; bodyDef.userData = _local5; body = m_world.CreateBody(bodyDef); body.CreateShape(boxDef); body.SetMassFromShapes(); all_obj.push(body); all_mcs.push(_local5); addChild(_local5); }; } public function musicBtnDa(_arg1:MouseEvent):void{ if (musicbtn.currentFrame == 1){ scm.stop(); musicbtn.gotoAndStop(2); yesmusic = false; } else { if (musicbtn.currentFrame == 2){ if ((((selectm.visible == true)) || ((menum.visible == true)))){ scm = zvmuss.play(0, int.MAX_VALUE); }; if ((((selectm.visible == false)) && ((menum.visible == false)))){ scm = zvmuss2.play(0, int.MAX_VALUE); }; musicbtn.gotoAndStop(1); yesmusic = true; }; }; } public function butp_selectm(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.mofunzone.com/online_games/ragdoll_spree_players_pack.shtml"), "_balnk"); } public function nextBtnEv(_arg1:MouseEvent):void{ mySharedObject.flush(); tlevel++; glmenu = false; worldClear(); } public function mouseReleased(_arg1:MouseEvent){ var _local2:*; var _local3:*; var _local4:Number; var _local5:b2RevoluteJointDef; var _local6:b2RevoluteJointDef; var _local7:b2RevoluteJointDef; var _local8:b2RevoluteJointDef; var _local9:b2RevoluteJointDef; var _local10:uint; var _local11:uint; if (((!(damenu)) && (!(glmenu)))){ charging = 0; if (sc != null){ sc.stop(); }; if (yessound){ zv7s.play(); }; bazooka.chasti.visible = false; powerlinem.visible = false; _local3 = ((bazooka.x + (((bazooka.width / 2) + 6) * Math.cos(bazooka_angle))) / pixels_in_a_meter); _local4 = ((bazooka.y + (((bazooka.height / 2) + 6) * Math.sin(bazooka_angle))) / pixels_in_a_meter); _local2 = new grenade(); bodyDef = new b2BodyDef(); bodyDef.position.Set(((bazooka.x + (((bazooka.width / 2) + 6) * Math.cos(bazooka_angle))) / pixels_in_a_meter), ((bazooka.y + (((bazooka.height / 2) + 6) * Math.sin(bazooka_angle))) / pixels_in_a_meter)); _local2.x = bodyDef.position.x; _local2.y = bodyDef.position.y; circleDef = new b2CircleDef(); circleDef.radius = (12 / pixels_in_a_meter); circleDef.density = 0.5; bodyDef.userData = _local2; bodyDef.isBullet = true; bodyDef.userData.name = "bullet"; bodyDef.userData.num = ("num" + listgran.length); body = m_world.CreateBody(bodyDef); body.CreateShape(circleDef); body.SetMassFromShapes(); body.ApplyImpulse(new b2Vec2(((Math.cos(bazooka_angle) * power) / 8), ((Math.sin(bazooka_angle) * power) / 8)), body.GetWorldCenter()); addChild(_local2); listgranbody.push(body); listgran.push(_local2); _local2 = new telo2(); bodyDef = new b2BodyDef(); bodyDef.position.Set(_local3, (_local4 + 0.7)); _local2.x = bodyDef.position.x; _local2.y = bodyDef.position.y; boxDef = new b2PolygonDef(); boxDef.SetAsBox(real_pixels(_local2.width), real_pixels(_local2.height)); boxDef.density = 0.5; bodyDef.userData = _local2; body2 = m_world.CreateBody(bodyDef); body2.CreateShape(boxDef); body2.SetMassFromShapes(); body2.ApplyImpulse(new b2Vec2(((Math.cos(bazooka_angle) * power) / 8), ((Math.sin(bazooka_angle) * power) / 8)), body2.GetWorldCenter()); addChild(_local2); listgranbody.push(body2); listgran.push(_local2); _local5 = new b2RevoluteJointDef(); _local5.Initialize(body, body2, new b2Vec2(body.GetPosition().x, (body.GetPosition().y + 0.5))); _local5.collideConnected = true; m_world.CreateJoint(_local5); _local2 = new telo3(); bodyDef = new b2BodyDef(); bodyDef.position.Set((_local3 + 0.2), (_local4 + 0.8)); _local2.x = bodyDef.position.x; _local2.y = bodyDef.position.y; boxDef = new b2PolygonDef(); boxDef.SetAsBox(real_pixels(_local2.width), real_pixels(_local2.height)); boxDef.density = 0.5; bodyDef.userData = _local2; body3 = m_world.CreateBody(bodyDef); body3.CreateShape(boxDef); body3.SetMassFromShapes(); body3.ApplyImpulse(new b2Vec2(((Math.cos(bazooka_angle) * power) / 8), ((Math.sin(bazooka_angle) * power) / 8)), body3.GetWorldCenter()); addChild(_local2); listgranbody.push(body3); listgran.push(_local2); _local6 = new b2RevoluteJointDef(); _local6.Initialize(body3, body2, new b2Vec2((body3.GetPosition().x - 0.1), (body3.GetPosition().y - 0.25))); m_world.CreateJoint(_local6); _local2 = new telo3(); bodyDef = new b2BodyDef(); bodyDef.position.Set((_local3 - 0.2), (_local4 + 0.8)); _local2.x = bodyDef.position.x; _local2.y = bodyDef.position.y; boxDef = new b2PolygonDef(); boxDef.SetAsBox(real_pixels(_local2.width), real_pixels(_local2.height)); boxDef.density = 0.5; bodyDef.userData = _local2; body4 = m_world.CreateBody(bodyDef); body4.CreateShape(boxDef); body4.SetMassFromShapes(); body4.ApplyImpulse(new b2Vec2(((Math.cos(bazooka_angle) * power) / 8), ((Math.sin(bazooka_angle) * power) / 8)), body4.GetWorldCenter()); addChild(_local2); listgranbody.push(body4); listgran.push(_local2); _local7 = new b2RevoluteJointDef(); _local7.Initialize(body4, body2, new b2Vec2((body4.GetPosition().x + 0.1), (body4.GetPosition().y - 0.25))); m_world.CreateJoint(_local7); _local2 = new telo4(); bodyDef = new b2BodyDef(); bodyDef.position.Set((_local3 - 0.1), (_local4 + 1.2)); _local2.x = bodyDef.position.x; _local2.y = bodyDef.position.y; boxDef = new b2PolygonDef(); boxDef.SetAsBox(real_pixels(_local2.width), real_pixels(_local2.height)); boxDef.density = 0.5; bodyDef.userData = _local2; body5 = m_world.CreateBody(bodyDef); body5.CreateShape(boxDef); body5.SetMassFromShapes(); body5.ApplyImpulse(new b2Vec2(((Math.cos(bazooka_angle) * power) / 8), ((Math.sin(bazooka_angle) * power) / 8)), body5.GetWorldCenter()); addChild(_local2); listgranbody.push(body5); listgran.push(_local2); _local8 = new b2RevoluteJointDef(); _local8.Initialize(body5, body2, new b2Vec2(body5.GetPosition().x, (body5.GetPosition().y - 0.2))); m_world.CreateJoint(_local8); _local2 = new telo4(); bodyDef = new b2BodyDef(); bodyDef.position.Set((_local3 + 0.1), (_local4 + 1.2)); _local2.x = bodyDef.position.x; _local2.y = bodyDef.position.y; boxDef = new b2PolygonDef(); boxDef.SetAsBox(real_pixels(_local2.width), real_pixels(_local2.height)); boxDef.density = 0.5; bodyDef.userData = _local2; body6 = m_world.CreateBody(bodyDef); body6.CreateShape(boxDef); body6.SetMassFromShapes(); body6.ApplyImpulse(new b2Vec2(((Math.cos(bazooka_angle) * power) / 6), ((Math.sin(bazooka_angle) * power) / 6)), body6.GetWorldCenter()); addChild(_local2); listgranbody.push(body6); listgran.push(_local2); _local9 = new b2RevoluteJointDef(); _local9.Initialize(body6, body2, new b2Vec2(body6.GetPosition().x, (body6.GetPosition().y - 0.3))); m_world.CreateJoint(_local9); power = 1; scoreint = (scoreint - 50); sdelv = (sdelv + 1); if (mySharedObject.data["so5"] == undefined){ mySharedObject.data["so5"] = 0; }; mySharedObject.data["so5"] = (Number(mySharedObject.data["so5"]) + 1); bazooka.gotoAndStop(1); if (mySharedObject.data["aw5"] == undefined){ if (mySharedObject.data["so5"] >= 50){ awardm.aw5.gotoAndStop(2); mySharedObject.data["aw5"] = "da"; }; }; if (mySharedObject.data["aw5"] != undefined){ awardm.aw5.gotoAndStop(2); }; addSmoke((bazooka.x + (((bazooka.width / 2) + 10) * Math.cos(bazooka_angle))), (bazooka.y + (((bazooka.height / 2) + 10) * Math.sin(bazooka_angle)))); numbum++; if (numbum > 5){ _local10 = 0; while (_local10 < 6) { removeChild(listgran[_local10]); m_world.DestroyBody(listgranbody[_local10]); _local10++; }; _local11 = 0; while (_local11 < 6) { listgran.shift(); listgranbody.shift(); _local11++; }; }; }; } public function butm1click(_arg1:Event):void{ var e = _arg1; if (yessound){ zv5s.play(); }; togomd = 1; togom = new togomcnew(); togom.x = 0; togom.y = 0; parent.parent.addChild(togom); togom.addEventListener(Event.ENTER_FRAME, UpdateTogom); togom.addFrameScript((togom.totalFrames - 1), function (_arg1:MovieClip){ var togom = _arg1; return (function (){ killMeDa(togom); }); }(togom)); } public function cannon(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):void{ oporazm = new oporaz(); oporazm.x = (_arg1 + (oporazm.width / 2)); oporazm.y = (_arg2 + (oporazm.height / 2)); addChild(oporazm); all_mcs.push(oporazm); bazooka = new zooka(); bazooka.x = oporazm.x; bazooka.y = (oporazm.y - 28); addChild(bazooka); all_mcs.push(bazooka); bazooka.gotoAndStop(1); bazooka.chasti.visible = false; powerlinem.visible = false; } public function create_sens(_arg1:int, _arg2:int, _arg3:int){ bodyDef = new b2BodyDef(); bodyDef.position.x = (_arg1 / pixels_in_a_meter); bodyDef.position.y = (_arg2 / pixels_in_a_meter); circleDef = new b2CircleDef(); if (_arg3 == 0){ circleDef.radius = (25 / pixels_in_a_meter); }; if (_arg3 == 1){ circleDef.radius = (45 / pixels_in_a_meter); }; circleDef.density = 0; circleDef.isSensor = true; bodyDef.userData = new Sprite(); bodyDef.userData.name = "groundsensor"; body = m_world.CreateBody(bodyDef); body.CreateShape(circleDef); body.SetMassFromShapes(); listsens.push(body); } public function Update(_arg1:Event):void{ var _local2:uint; var _local3:*; var _local4:*; var _local5:b2Body; m_world.Step((1 / 30), 10); if (menum.visible == false){ hitstar(); }; textUpdate(); endLevel(); my_canvas.graphics.clear(); my_canvas.graphics.lineStyle(2, 0, 1); _local2 = 0; while (_local2 < listjoint.length) { if (listjoint[_local2] != undefined){ my_canvas.graphics.moveTo((listjoint[_local2].GetAnchor1().x * 30), (listjoint[_local2].GetAnchor1().y * 30)); my_canvas.graphics.lineTo((listjoint[_local2].GetAnchor2().x * 30), (listjoint[_local2].GetAnchor2().y * 30)); }; _local2++; }; if ((((bazooka.rotation > -90)) && ((bazooka.rotation < 90)))){ bazooka.scaleY = 1; } else { bazooka.scaleY = -1; }; _local3 = (bazooka.x - mouseX); _local4 = (bazooka.y - mouseY); bazooka_angle = Math.atan2(-(_local4), -(_local3)); bazooka.rotation = (bazooka_angle * 57.2957795); if (powerlinem.visible == true){ powerlinem.x = (mouseX - (powerlinem.width / 2)); powerlinem.y = (mouseY - 10); }; _local5 = m_world.m_bodyList; while (_local5) { if ((((_local5.m_userData is Sprite)) && (!(_local5.IsStatic())))){ _local5.m_userData.x = (_local5.GetPosition().x * pixels_in_a_meter); _local5.m_userData.y = (_local5.GetPosition().y * pixels_in_a_meter); _local5.m_userData.rotation = (_local5.GetAngle() * (180 / Math.PI)); }; _local5 = _local5.m_next; }; if (charging != 0){ power = (power + charging); if ((((power > 30)) || ((power < 1)))){ charging = (charging * -1); power = (power + charging); }; powerlinem.gotoAndStop(power); }; Input.update(); } private function init():void{ if (tlevel == 0){ estvrag = 10; mpgold = 2; mpsilver = 2; mpbronze = 2; scoreint = 1000; cannon(70, 395, 50, 30, 0, 0, 0, 0); }; if (tlevel == 1){ scoreint = 1000; create_palka(0, 325, 80, 10, 0, 0, 3, 0); create_palka(525, 410, 20, 80, 0, 0, 4, 0); create_kvad(525, 390, 20, 20, 0, 0, 5, 0); create_palka(530, 310, 10, 80, 0, 0, 4, 0); cannon(5, 295, 50, 30, 0, 0, 0, 0); create_star(590, 435, 30, 40, 0, 0, 2, 0); create_palka(440, 310, 10, 80, 0, 0, 4, 0); create_triangle(520, 280, 30, 30, 0, 0, 2, 0); create_palka(415, 270, 150, 10, 0, 0, 1, 0); create_triangle(430, 280, 30, 30, 0, 0, 2, 0); create_kvad(435, 390, 20, 20, 0, 0, 5, 0); create_palka(435, 410, 20, 80, 0, 0, 4, 0); create_star(475, 435, 30, 40, 0, 0, 1, 0); create_star(370, 305, 30, 40, 0, 0, 3, 0); create_star(475, 210, 30, 40, 0, 0, 5, 0); create_palka(570, 410, 10, 80, 0, 0, 5, 0); create_palka(635, 410, 10, 80, 0, 0, 5, 0); create_palka(655, 335, 10, 80, 0, 0, 5, 0); create_palka(550, 230, 80, 10, 0, 0, 3, 0); create_border(0); estvrag = 4; }; if (tlevel == 2){ scoreint = 1000; create_palka(378, 118, 140, 10, -45, 0, 1, 0); create_kvad(384, 174, 20, 20, 45, 0, 1, 0); create_circ(405, 170, 20, 20, 0, 0, 4, 0); create_circ(495, 80, 20, 20, 0, 0, 4, 0); cannon(635, 320, 50, 30, 0, 0, 0, 0); create_star(290, 410, 30, 40, 0, 0, 1, 0); create_circ(210, 100, 20, 20, 0, 0, 4, 0); create_circ(285, 170, 20, 20, 0, 0, 4, 0); create_kvad(309, 174, 20, 20, 45, 0, 1, 0); create_palka(410, 245, 10, 120, 0, 0, 4, 0); create_triangle(350, 340, 30, 30, 0, 0, 1, 0); create_palka(360, 370, 10, 80, 0, 0, 5, 0); create_kvad(355, 445, 20, 20, 0, 0, 1, 0); create_kvad(355, 465, 20, 20, 0, 0, 1, 0); create_star(350, 265, 30, 40, 0, 0, 2, 0); create_star(290, 70, 30, 40, 0, 0, 3, 0); create_palka(215, 15, 10, 80, 0, 0, 5, 0); create_palka(217, 212, 80, 10, -45, 0, 3, 0); create_star(145, 190, 30, 40, 0, 0, 4, 0); create_star(70, 305, 30, 40, 0, 0, 5, 0); create_djoint(415, 180, 415, 246); create_border(1); estvrag = 5; }; if (tlevel == 3){ scoreint = 1000; create_kvad(320, 95, 20, 20, 0, 0, 1, 0); cannon(335, 65, 50, 30, 0, 0, 0, 0); create_kvad(380, 95, 20, 20, 0, 0, 1, 0); create_palka(70, 100, 140, 10, 0, 0, 1, 0); create_palka(510, 100, 140, 10, 0, 0, 1, 0); create_star(345, 335, 30, 40, 0, 0, 1, 0); create_palka(-42, 313, 140, 10, 45, 0, 3, 0); create_circ(30, 250, 60, 60, 0, 0, 1, 0); create_palka(210, 365, 80, 10, 0, 0, 3, 0); create_palka(150, 365, 80, 10, 0, 0, 3, 0); create_palka(70, 365, 80, 10, 0, 0, 3, 0); create_palka(410, 370, 80, 10, 0, 0, 3, 0); create_palka(485, 370, 80, 10, 0, 0, 3, 0); create_palka(648, 258, 10, 140, 45, 0, 5, 0); create_circ(615, 240, 60, 60, 0, 0, 1, 0); create_kvad(350, 380, 20, 20, 0, 0, 1, 0); create_palka(520, 370, 80, 10, 0, 0, 3, 0); create_star(300, 425, 30, 40, 0, 0, 2, 0); create_star(385, 425, 30, 40, 0, 0, 3, 0); create_star(575, 315, 30, 40, 0, 0, 4, 0); create_star(80, 310, 30, 40, 0, 0, 5, 0); create_djoint(389, 104, 518, 104); create_djoint(329, 103, 205, 103); create_border(1); estvrag = 5; }; if (tlevel == 4){ scoreint = 1000; create_palka(35, 150, 120, 10, 0, 0, 1, 0); create_circ(125, 165, 30, 30, 0, 0, 1, 0); create_circ(35, 165, 30, 30, 0, 0, 1, 0); cannon(345, 95, 50, 30, 0, 0, 0, 0); create_palka(9, 232, 120, 10, 35, 0, 3, 0); create_palka(104, 297, 120, 10, 35, 0, 3, 0); create_star(380, 245, 30, 40, 0, 0, 1, 0); create_palka(210, 330, 80, 10, 0, 0, 3, 0); create_palka(290, 330, 80, 10, 0, 0, 3, 0); create_palka(370, 330, 80, 10, 0, 0, 3, 0); create_palka(490, 225, 80, 20, 0, 0, 3, 0); create_palka(330, 225, 80, 20, 0, 0, 3, 0); create_palka(410, 225, 80, 20, 0, 0, 3, 0); create_star(470, 245, 30, 40, 0, 0, 2, 0); create_palka(589, 452, 120, 10, -35, 0, 3, 0); create_kvad(360, 125, 20, 20, 0, 0, 1, 0); create_palka(442, 356, 80, 10, 35, 0, 3, 0); create_star(545, 320, 30, 40, 0, 0, 3, 0); create_star(610, 405, 30, 40, 0, 0, 5, 0); create_djoint(49, 180, 146, 156); create_djoint(140, 180, 43, 155); create_djoint(119, 153, 140, 180); create_djoint(71, 154, 50, 181); create_border(1); estvrag = 4; }; if (tlevel == 5){ scoreint = 1000; create_palka(515, 80, 140, 10, 0, 0, 1, 0); create_palka(415, 340, 140, 10, 0, 0, 3, 0); create_palka(549, 318, 140, 10, -20, 0, 3, 0); create_circ(520, 120, 30, 30, 0, 0, 1, 0); create_circ(625, 120, 30, 30, 0, 0, 1, 0); cannon(315, 80, 50, 30, 0, 0, 0, 0); create_palka(330, 225, 140, 10, 0, 0, 3, 0); create_palka(275, 340, 140, 10, 0, 0, 3, 0); create_star(325, 0xFF, 30, 40, 0, 0, 1, 0); create_star(400, 0xFF, 30, 40, 0, 0, 2, 0); create_star(240, 0xFF, 30, 40, 0, 0, 3, 0); create_palka(190, 225, 140, 10, 0, 0, 3, 0); create_star(175, 320, 30, 40, 0, 0, 4, 0); create_star(180, 410, 30, 40, 0, 0, 5, 0); create_palka(15, 145, 10, 80, 0, 0, 5, 0); create_djoint(536, 134, 549, 86); create_djoint(523, 86, 535, 134); create_djoint(641, 134, 648, 85); create_djoint(626, 85, 641, 135); estvrag = 5; }; if (tlevel == 6){ scoreint = 1000; create_triangle(265, 210, 30, 30, 0, 0, 1, 0); cannon(420, 455, 50, 30, 0, 0, 0, 0); create_triangle(345, 210, 30, 30, 0, 0, 1, 0); create_palka(250, 200, 120, 10, 0, 0, 1, 0); create_star(300, 125, 30, 40, 0, 0, 2, 0); create_triangle(420, 260, 30, 30, 24, 0, 1, 0); create_palka(362, 236, 80, 10, 35, 0, 1, 0); create_triangle(305, 330, 30, 30, 180, 0, 1, 0); create_palka(315, 210, 10, 120, 0, 0, 4, 0); create_star(410, 170, 30, 40, 0, 0, 1, 0); create_palka(325, 295, 100, 10, -31, 0, 1, 0); create_star(340, 250, 30, 40, 0, 0, 3, 0); create_palka(242, 208, 10, 110, 25, 0, 4, 0); create_triangle(205, 325, 30, 30, 0, 0, 1, 0); create_star(175, 235, 30, 40, 0, 0, 4, 0); create_triangle(265, 170, 30, 30, 0, 0, 2, 0); create_triangle(345, 170, 30, 30, 0, 0, 2, 0); create_triangle(536, 146, 30, 30, -39, 0, 1, 0); create_palka(391, 182, 180, 10, -35, 0, 1, 0); create_triangle(560, 0xFF, 30, 30, 0, 0, 1, 0); create_palka(430, 245, 160, 10, 0, 0, 1, 0); create_triangle(490, 215, 30, 30, 0, 0, 2, 0); create_palka(608, 123, 10, 140, -45, 0, 4, 0); create_triangle(645, 245, 30, 30, 0, 0, 1, 0); create_star(635, 100, 30, 40, 0, 0, 5, 0); create_palka(95, 315, 140, 10, 0, 0, 1, 0); create_triangle(100, 325, 30, 30, 0, 0, 1, 0); create_triangle(150, 285, 30, 30, 0, 0, 2, 0); create_border(1); estvrag = 5; }; if (tlevel == 7){ scoreint = 1000; create_circ(350, 210, 30, 30, 0, 0, 1, 0); cannon(615, 215, 50, 30, 0, 0, 0, 0); create_palka(610, 245, 80, 10, 0, 0, 3, 0); create_star(205, 295, 30, 40, 0, 0, 1, 0); create_circ(380, 275, 30, 30, 0, 0, 2, 0); create_circ(325, 275, 30, 30, 0, 0, 2, 0); create_triangle(240, 250, 30, 30, 0, 0, 1, 0); create_triangle(165, 250, 30, 30, 0, 0, 1, 0); create_palka(165, 235, 140, 10, 0, 0, 1, 0); create_palka(315, 140, 100, 30, 0, 0, 1, 0); create_palka(150, 165, 10, 80, 0, 0, 5, 0); create_palka(150, 85, 10, 80, 0, 0, 5, 0); create_star(225, 50, 30, 40, 0, 0, 2, 0); create_palka(425, 10, 10, 80, 0, 0, 5, 0); create_palka(435, 50, 10, 80, 0, 0, 5, 0); create_palka(300, 50, 10, 80, 0, 0, 5, 0); create_djoint(396, 290, 365, 226); create_djoint(339, 290, 365, 226); create_djoint(327, 155, 365, 225); create_djoint(401, 156, 365, 225); create_border(1); estvrag = 2; }; if (tlevel == 8){ scoreint = 1000; create_palka(271, 281, 120, 10, 45, 0, 1, 0); create_palka(176, 186, 120, 10, 45, 0, 1, 0); create_palka(366, 376, 120, 10, 45, 0, 1, 0); create_kvad(469, 419, 20, 20, 45, 0, 1, 0); create_kvad(439, 419, 20, 20, 45, 0, 1, 0); create_kvad(339, 319, 20, 20, 45, 0, 1, 0); create_kvad(239, 219, 20, 20, 45, 0, 1, 0); create_circ(170, 125, 20, 20, 0, 0, 4, 0); cannon(610, 215, 50, 30, 0, 0, 0, 0); create_palka(610, 245, 80, 10, 0, 0, 3, 0); create_star(355, 405, 30, 40, 0, 0, 1, 0); create_star(0xFF, 310, 30, 40, 0, 0, 2, 0); create_star(170, 195, 30, 40, 0, 0, 3, 0); create_palka(137, 57, 10, 80, -45, 0, 5, 0); create_djoint(181, 136, 196, 152); create_djoint(273, 229, 291, 247); create_djoint(368, 325, 388, 343); create_border(1); estvrag = 3; }; if (tlevel == 9){ scoreint = 1000; cannon(335, 455, 50, 30, 0, 0, 0, 0); create_palka(300, 405, 10, 80, 0, 0, 5, 0); create_palka(410, 405, 10, 80, 0, 0, 5, 0); create_palka(300, 325, 10, 80, 0, 0, 5, 0); create_palka(410, 325, 10, 80, 0, 0, 5, 0); create_palka(245, 250, 80, 10, 0, 0, 3, 0); create_star(320, 205, 30, 40, 0, 0, 1, 0); create_palka(395, 250, 80, 10, 0, 0, 3, 0); create_star(475, 410, 30, 40, 0, 0, 2, 0); create_star(345, 270, 30, 40, 0, 0, 5, 0); create_star(415, 110, 30, 40, 0, 0, 4, 0); create_star(280, 115, 30, 40, 0, 0, 3, 0); create_star(210, 400, 30, 40, 0, 0, 2, 0); create_palka(290, 170, 10, 80, 0, 0, 5, 0); create_palka(420, 170, 10, 80, 0, 0, 5, 0); create_star(365, 205, 30, 40, 0, 0, 1, 0); create_star(345, 145, 30, 40, 0, 0, 1, 0); create_star(325, 355, 30, 40, 0, 0, 5, 0); create_star(370, 355, 30, 40, 0, 0, 5, 0); create_star(460, 160, 30, 40, 0, 0, 4, 0); create_star(230, 155, 30, 40, 0, 0, 3, 0); create_palka(290, 10, 10, 80, 0, 0, 5, 0); create_palka(420, 10, 10, 80, 0, 0, 5, 0); create_palka(265, 80, 80, 10, 0, 0, 3, 0); create_palka(380, 80, 80, 10, 0, 0, 3, 0); create_star(350, 15, 30, 40, 0, 0, 5, 0); create_star(385, 35, 30, 40, 0, 0, 5, 0); create_star(310, 35, 30, 40, 0, 0, 5, 0); create_star(430, 275, 30, 40, 0, 0, 2, 0); create_star(260, 275, 30, 40, 0, 0, 2, 0); create_border(1); estvrag = 17; }; if (tlevel == 10){ scoreint = 1000; create_circ(330, 100, 30, 30, 0, 0, 2, 0); create_circ(450, 100, 30, 30, 0, 0, 2, 0); cannon(40, 185, 50, 30, 0, 0, 0, 0); create_palka(10, 215, 80, 10, 0, 0, 3, 0); create_star(70, 295, 30, 40, 0, 0, 1, 0); create_palka(485, 295, 140, 10, 0, 0, 1, 0); create_palka(0, 415, 10, 80, 0, 0, 5, 0); create_palka(690, 415, 10, 80, 0, 0, 5, 0); create_djoint(345, 116, 494, 299); create_djoint(466, 116, 616, 300); create_border(0); estvrag = 1; }; if (tlevel == 11){ scoreint = 1000; create_palka(455, 260, 80, 10, 0, 0, 3, 0); cannon(30, 285, 50, 30, 0, 0, 0, 0); create_palka(10, 315, 80, 10, 0, 0, 3, 0); create_star(420, 290, 30, 40, 0, 0, 1, 0); create_star(420, 345, 30, 40, 0, 0, 2, 0); create_palka(330, 260, 80, 10, 0, 0, 3, 0); create_palka(380, 270, 10, 80, 0, 0, 5, 0); create_palka(380, 350, 10, 80, 0, 0, 5, 0); create_circ(150, 210, 50, 50, 0, 0, 1, 0); create_palka(250, 260, 80, 10, 0, 0, 3, 0); create_palka(170, 260, 80, 10, 0, 0, 3, 0); create_palka(200, 195, 80, 10, 0, 0, 3, 0); create_palka(280, 195, 80, 10, 0, 0, 3, 0); create_palka(385, 195, 80, 10, 0, 0, 3, 0); create_circ(175, 145, 50, 50, 0, 0, 1, 0); create_palka(110, 135, 80, 10, 0, 0, 3, 0); create_palka(190, 135, 80, 10, 0, 0, 3, 0); create_palka(270, 135, 80, 10, 0, 0, 3, 0); create_palka(350, 135, 80, 10, 0, 0, 3, 0); create_star(415, 155, 30, 40, 0, 0, 3, 0); create_palka(465, 195, 80, 10, 0, 0, 3, 0); create_palka(430, 135, 80, 10, 0, 0, 3, 0); create_star(480, 215, 30, 40, 0, 0, 4, 0); create_palka(57, 57, 10, 80, 45, 0, 5, 0); create_palka(90, 65, 80, 10, 0, 0, 3, 0); create_circ(90, 85, 50, 50, 0, 0, 1, 0); create_star(390, 90, 30, 40, 0, 0, 5, 0); create_palka(170, 65, 80, 10, 0, 0, 3, 0); create_palka(250, 65, 80, 10, 0, 0, 3, 0); create_border(1); estvrag = 5; }; if (tlevel == 12){ scoreint = 1000; create_palka(288, 288, 140, 10, 45, 0, 1, 0); create_palka(423, 178, 140, 10, 45, 0, 1, 0); create_palka(430, 20, 10, 100, 0, 0, 5, 0); create_kvad(399, 344, 20, 20, 45, 0, 1, 0); create_circ(380, 340, 20, 20, 0, 0, 4, 0); create_circ(290, 250, 20, 20, 0, 0, 4, 0); create_circ(425, 140, 20, 20, 0, 0, 4, 0); create_circ(515, 225, 20, 20, 0, 0, 4, 0); create_kvad(534, 234, 20, 20, 45, 0, 1, 0); cannon(85, 455, 50, 30, 0, 0, 0, 0); create_star(530, 115, 30, 40, 0, 0, 1, 0); create_star(305, 325, 30, 40, 0, 0, 2, 0); create_star(420, 225, 30, 40, 0, 0, 4, 0); create_palka(560, 240, 80, 10, 0, 0, 3, 0); create_star(585, 190, 30, 40, 0, 0, 5, 0); create_palka(640, 240, 80, 10, 0, 0, 3, 0); create_circ(330, 215, 50, 50, 0, 0, 1, 0); create_djoint(403, 338, 538, 228); create_djoint(312, 247, 449, 139); create_djoint(354, 243, 325, 258); create_border(1); estvrag = 4; }; if (tlevel == 13){ scoreint = 1000; create_palka(285, 250, 200, 20, 0, 0, 1, 0); cannon(120, 220, 50, 30, 0, 0, 0, 0); create_star(95, 330, 30, 40, 0, 0, 1, 0); create_triangle(415, 220, 30, 30, 0, 0, 2, 0); create_triangle(325, 220, 30, 30, 0, 0, 2, 0); create_palka(10, 250, 80, 10, 0, 0, 3, 0); create_palka(90, 250, 80, 10, 0, 0, 3, 0); create_palka(380, 65, 10, 80, 0, 0, 5, 0); create_palka(380, -15, 10, 80, 0, 0, 5, 0); create_palka(380, 370, 10, 80, 0, 0, 5, 0); create_kvad(375, 455, 20, 20, 0, 0, 1, 0); create_star(575, 95, 30, 40, 0, 0, 2, 0); create_star(620, 245, 30, 40, 0, 0, 3, 0); create_star(575, 385, 30, 40, 0, 0, 4, 0); create_djoint(385, 260, 385, 110); create_djoint(385, 396, 385, 260); create_border(1); estvrag = 4; }; if (tlevel == 14){ scoreint = 1000; cannon(610, 65, 50, 30, 0, 0, 0, 0); create_palka(610, 95, 80, 10, 0, 0, 3, 0); create_palka(475, 80, 80, 10, 0, 0, 3, 0); create_palka(395, 80, 80, 10, 0, 0, 3, 0); create_palka(315, 80, 80, 10, 0, 0, 3, 0); create_palka(235, 80, 80, 10, 0, 0, 3, 0); create_palka(155, 80, 80, 10, 0, 0, 3, 0); create_palka(37, 102, 10, 80, -45, 0, 5, 0); create_palka(92, 157, 10, 80, -45, 0, 5, 0); create_palka(125, 220, 80, 10, 0, 0, 3, 0); create_palka(205, 220, 80, 10, 0, 0, 3, 0); create_palka(285, 220, 80, 10, 0, 0, 3, 0); create_palka(365, 220, 80, 10, 0, 0, 3, 0); create_palka(550, 165, 10, 160, 0, 0, 4, 0); create_triangle(535, 10, 30, 30, 180, 0, 1, 0); create_palka(444, 221, 102, 10, 0, 0, 3, 0); create_triangle(620, 190, 30, 30, 0, 0, 1, 0); create_palka(480, 325, 80, 10, 0, 0, 3, 0); create_triangle(560, 305, 30, 30, 0, 0, 1, 0); create_circ(480, 40, 39.95, 40, 0, 0, 1, 0); create_star(450, 270, 30, 40, 0, 0, 1, 0); create_palka(417, 352, 80, 10, -45, 0, 3, 0); create_star(360, 405, 30, 40, 0, 0, 2, 0); create_star(300, 145, 30, 40, 0, 0, 5, 0); create_star(395, 330, 30, 40, 0, 0, 4, 0); create_star(300, 30, 30, 40, 0, 0, 3, 0); create_border(1); estvrag = 5; }; if (tlevel == 15){ scoreint = 1000; create_palka(355, 335, 150, 10, 0, 0, 1, 0); create_triangle(430, 345, 30, 30, 0, 0, 1, 0); create_triangle(350, 345, 30, 30, 0, 0, 1, 0); cannon(250, 70, 50, 30, 0, 0, 0, 0); create_star(600, 195, 30, 40, 0, 0, 1, 0); create_palka(220, 100, 80, 10, 0, 0, 3, 0); create_palka(560, 175, 80, 10, 0, 0, 3, 0); create_circ(535, 115, 60, 60, 0, 0, 1, 0); create_palka(630, 5, 10, 80, 0, 0, 5, 0); create_palka(435, 115, 10, 80, 0, 0, 5, 0); create_palka(640, 175, 80, 10, 0, 0, 3, 0); create_palka(302, 202, 80, 10, -45, 0, 3, 0); create_palka(90, 305, 180, 10, 0, 0, 1, 0); create_circ(165, 45, 60, 60, 0, 0, 1, 0); create_palka(180, 110, 80, 10, 0, 0, 3, 0); create_triangle(220, 320, 30, 30, 0, 0, 1, 0); create_triangle(155, 320, 30, 30, 0, 0, 1, 0); create_star(170, 180, 30, 40, 0, 0, 2, 0); create_border(0); estvrag = 2; }; if (tlevel == 16){ scoreint = 1000; create_palka(3, 110, 160, 10, 25, 0, 3, 0); create_circ(10, 35, 39.95, 40, 0, 0, 1, 0); cannon(40, 375, 50, 30, 0, 0, 0, 0); create_palka(10, 405, 80, 10, 0, 0, 3, 0); create_palka(490, 385, 20, 100, 0, 0, 4, 0); create_kvad(490, 365, 20, 20, 0, 0, 5, 0); create_kvad(490, 345, 20, 20, 0, 0, 5, 0); create_palka(490, 265, 20, 80, 0, 0, 4, 0); create_palka(390, 405, 10, 80, 0, 0, 4, 0); create_palka(390, 325, 10, 80, 0, 0, 4, 0); create_palka(390, 245, 10, 80, 0, 0, 4, 0); create_palka(440, 405, 10, 80, 0, 0, 4, 0); create_palka(440, 325, 10, 80, 0, 0, 4, 0); create_palka(440, 245, 10, 80, 0, 0, 4, 0); create_palka(380, 235, 80, 10, 0, 0, 1, 0); create_star(455, 450, 30, 40, 0, 0, 1, 0); create_star(405, 450, 30, 40, 0, 0, 2, 0); create_palka(380, 225, 80, 10, 0, 0, 1, 0); create_star(655, 450, 30, 40, 0, 0, 3, 0); create_palka(535, 405, 20, 80, 0, 0, 4, 0); create_kvad(535, 385, 20, 20, 0, 0, 5, 0); create_kvad(535, 365, 20, 20, 0, 0, 5, 0); create_kvad(535, 345, 20, 20, 0, 0, 5, 0); create_palka(535, 265, 20, 80, 0, 0, 4, 0); create_palka(480, 245, 80, 20, 0, 0, 1, 0); create_palka(600, 405, 10, 80, 0, 0, 4, 0); create_palka(600, 325, 10, 80, 0, 0, 4, 0); create_palka(600, 245, 10, 80, 0, 0, 4, 0); create_star(565, 450, 30, 40, 0, 0, 4, 0); create_border(1); estvrag = 4; }; if (tlevel == 17){ scoreint = 1000; cannon(330, 240, 50, 30, 0, 0, 0, 0); create_triangle(340, 270, 30, 30, 180, 0, 1, 0); create_star(40, 220, 30, 40, 0, 0, 1, 0); create_star(650, 230, 30, 40, 0, 0, 2, 0); create_star(645, 435, 30, 40, 0, 0, 4, 0); create_star(35, 425, 30, 40, 0, 0, 3, 0); create_star(375, 365, 30, 40, 0, 0, 5, 0); create_circ(190, 85, 20, 20, 0, 0, 4, 0); create_circ(90, 180, 20, 20, 0, 0, 4, 0); create_palka(60, 125, 160, 10, -45, 0, 1, 0); create_palka(95, 200, 10, 80, 0, 0, 5, 0); create_palka(120, 290, 10, 80, 0, 0, 4, 0); create_palka(140, 390, 10, 80, 0, 0, 4, 0); create_circ(95, 385, 30, 30, 0, 0, 2, 0); create_palka(15, 270, 80, 10, 0, 0, 3, 0); create_kvad(260, 365, 20, 20, 0, 0, 1, 0); create_kvad(260, 345, 20, 20, 0, 0, 5, 0); create_kvad(260, 325, 20, 20, 0, 0, 5, 0); create_kvad(260, 305, 20, 20, 0, 0, 5, 0); create_kvad(260, 285, 20, 20, 0, 0, 5, 0); create_palka(125, 240, 180, 10, 90, 0, 1, 0); create_kvad(210, 65, 20, 20, 0, 0, 5, 0); create_kvad(210, 85, 20, 20, 0, 0, 1, 0); create_kvad(210, 45, 20, 20, 0, 0, 5, 0); create_kvad(210, 25, 20, 20, 0, 0, 5, 0); create_palka(280, 140, 150, 10, 0, 0, 1, 0); create_kvad(410, 85, 20, 20, 0, 0, 1, 0); create_kvad(410, 65, 20, 20, 0, 0, 5, 0); create_kvad(410, 45, 20, 20, 0, 0, 5, 0); create_kvad(410, 25, 20, 20, 0, 0, 5, 0); create_palka(365, 340, 80, 10, 0, 0, 3, 0); create_palka(445, 340, 80, 10, 0, 0, 3, 0); create_palka(430, 85, 80, 10, 0, 0, 3, 0); create_star(450, 35, 30, 40, 0, 0, 5, 0); create_kvad(490, 65, 20, 20, 0, 0, 5, 0); create_kvad(490, 45, 20, 20, 0, 0, 5, 0); create_kvad(490, 25, 20, 20, 0, 0, 5, 0); create_palka(610, 285, 80, 10, 0, 0, 3, 0); create_kvad(610, 265, 20, 20, 0, 0, 5, 0); create_kvad(610, 245, 20, 20, 0, 0, 5, 0); create_kvad(610, 225, 20, 20, 0, 0, 5, 0); create_triangle(605, 195, 30, 30, 0, 0, 2, 0); create_palka(500, 95, 10, 80, 0, 0, 5, 0); create_djoint(188, 81, 199, 94); create_djoint(100, 275, 125, 298); create_djoint(126, 357, 146, 398); create_djoint(215, 168, 217, 93); create_djoint(424, 144, 356, 281); create_djoint(283, 143, 356, 280); create_border(1); estvrag = 6; }; if (tlevel == 18){ scoreint = 1000; create_palka(200, 140, 10, 80, 0, 0, 5, 0); create_palka(200, 75, 80, 10, 0, 0, 3, 0); create_palka(202, 161, 80, 10, 35, 0, 3, 0); cannon(100, 455, 50, 30, 0, 0, 0, 0); create_palka(200, 220, 10, 80, 0, 0, 5, 0); create_star(260, 110, 30, 40, 0, 0, 1, 0); create_star(235, 25, 30, 40, 0, 0, 2, 0); create_palka(280, 75, 80, 10, 0, 0, 3, 0); create_palka(267, 206, 80, 10, 35, 0, 3, 0); create_palka(361, 167, 10, 80, 35, 0, 5, 0); create_star(235, 210, 30, 40, 0, 0, 5, 0); create_palka(200, 405, 10, 80, 0, 0, 5, 0); create_star(230, 440, 30, 40, 0, 0, 5, 0); create_star(320, 150, 30, 40, 0, 0, 1, 0); create_star(350, 330, 30, 40, 0, 0, 3, 0); create_star(440, 330, 30, 40, 0, 0, 3, 0); create_star(625, 440, 30, 40, 0, 0, 4, 0); create_star(580, 440, 30, 40, 0, 0, 4, 0); create_star(275, 25, 30, 40, 0, 0, 2, 0); create_star(630, 270, 30, 40, 0, 0, 3, 0); create_border(1); estvrag = 11; }; if (tlevel == 19){ scoreint = 1000; create_palka(2, 167, 80, 10, 45, 0, 3, 0); create_palka(57, 222, 80, 10, 45, 0, 3, 0); create_palka(636, 151, 10, 120, 45, 0, 5, 0); create_palka(120, 250, 80, 10, 0, 0, 3, 0); create_palka(200, 250, 80, 10, 0, 0, 3, 0); create_palka(440, 250, 80, 10, 0, 0, 3, 0); create_palka(520, 250, 80, 10, 0, 0, 3, 0); create_circ(35, 110, 60, 60, 0, 0, 1, 0); create_circ(620, 120, 60, 60, 0, 0, 1, 0); cannon(505, 90, 50, 30, 0, 0, 0, 0); create_star(625, 430, 30, 40, 0, 0, 1, 0); create_palka(198, 353, 140, 10, 45, 0, 1, 0); create_circ(250, 365, 20, 20, 0, 0, 4, 0); create_kvad(515, 120, 20, 20, 0, 0, 1, 0); create_kvad(535, 120, 20, 20, 0, 0, 1, 0); create_star(55, 45, 30, 40, 0, 0, 2, 0); create_star(35, 420, 30, 40, 0, 0, 3, 0); create_djoint(224, 314, 260, 375); create_djoint(308, 398, 260, 376); create_border(1); estvrag = 3; }; if (tlevel == 20){ scoreint = 1000; create_palka(610, 365, 80, 10, 0, 0, 3, 0); cannon(610, 335, 50, 30, 0, 0, 0, 0); create_circ(405, 270, 60, 60, 0, 0, 1, 0); create_circ(345, 270, 60, 60, 0, 0, 1, 0); create_circ(285, 270, 60, 60, 0, 0, 1, 0); create_circ(225, 270, 60, 60, 0, 0, 1, 0); create_circ(420, 60, 30, 30, 0, 0, 2, 0); create_circ(360, 60, 30, 30, 0, 0, 2, 0); create_circ(300, 60, 30, 30, 0, 0, 2, 0); create_circ(240, 60, 30, 30, 0, 0, 2, 0); create_star(145, 190, 30, 40, 0, 0, 1, 0); create_palka(185, 155, 20, 80, -45, 0, 5, 0); create_palka(100, 130, 80, 20, 45, 0, 3, 0); create_palka(275, 260, 140, 10, 0, 0, 1, 0); create_djoint(435, 76, 435, 300); create_djoint(375, 75, 375, 298); create_djoint(315, 298, 315, 78); create_djoint(253, 300, 253, 76); create_border(1); estvrag = 1; }; if (tlevel == 21){ scoreint = 1000; create_palka(490, 445, 80, 10, 0, 0, 3, 0); create_triangle(490, 415, 30, 30, 0, 0, 1, 0); create_palka(501, 377, 180, 10, -35, 0, 1, 0); create_circ(585, 385, 30, 30, 0, 0, 2, 0); cannon(135, 405, 50, 30, 0, 0, 0, 0); create_palka(455, 295, 10, 80, 0, 0, 5, 0); create_palka(455, 215, 10, 80, 0, 0, 5, 0); create_palka(440, 110, 80, 10, 0, 0, 3, 0); create_circ(335, 45, 66, 66, 0, 0, 1, 0); create_palka(360, 110, 80, 10, 0, 0, 3, 0); create_palka(520, 110, 80, 10, 0, 0, 3, 0); create_palka(105, 435, 80, 10, 0, 0, 3, 0); create_star(485, 245, 30, 40, 0, 0, 1, 0); create_palka(455, 135, 10, 80, 0, 0, 5, 0); create_star(650, 395, 30, 40, 0, 0, 2, 0); create_star(620, 190, 30, 40, 0, 0, 4, 0); create_circ(450, 120, 20, 20, 0, 0, 4, 0); create_border(1); estvrag = 3; }; if (tlevel == 22){ scoreint = 1000; create_palka(395, 405, 10, 80, 0, 0, 4, 0); create_palka(445, 405, 10, 80, 0, 0, 4, 0); cannon(605, 420, 50, 30, 0, 0, 0, 0); create_palka(385, 385, 80, 10, 0, 0, 3, 0); create_palka(305, 385, 80, 10, 0, 0, 3, 0); create_palka(340, 405, 10, 80, 0, 0, 4, 0); create_star(95, 445, 30, 40, 0, 0, 1, 0); create_triangle(125, 410, 30, 30, 0, 0, 1, 0); create_palka(45, 380, 80, 10, 0, 0, 3, 0); create_palka(-15, 380, 80, 10, 0, 0, 3, 0); create_triangle(110, 380, 30, 30, 0, 0, 1, 0); create_circ(443, 364, 20, 20, 0, 0, 3, 0); create_palka(285, 405, 10, 80, 0, 0, 4, 0); create_palka(230, 405, 10, 80, 0, 0, 4, 0); create_palka(180, 405, 10, 80, 0, 0, 4, 0); create_palka(225, 385, 80, 10, 0, 0, 3, 0); create_palka(175, 385, 80, 10, 0, 0, 3, 0); create_circ(175, 355, 30, 30, 0, 0, 1, 0); create_palka(385, 350, 80, 10, 0, 0, 3, 0); create_palka(305, 350, 80, 10, 0, 0, 3, 0); create_palka(225, 350, 80, 10, 0, 0, 3, 0); create_palka(385, 265, 80, 10, 0, 0, 3, 0); create_palka(305, 265, 80, 10, 0, 0, 3, 0); create_palka(225, 265, 80, 10, 0, 0, 3, 0); create_palka(455, 270, 10, 80, 0, 0, 5, 0); create_circ(425, 210, 55, 55, 0, 0, 1, 0); create_palka(395, 195, 80, 10, 0, 0, 3, 0); create_palka(315, 195, 80, 10, 0, 0, 3, 0); create_palka(235, 195, 80, 10, 0, 0, 3, 0); create_star(495, 415, 30, 40, 0, 0, 2, 0); create_star(510, 170, 30, 40, 0, 0, 3, 0); create_palka(465, 115, 10, 80, 0, 0, 5, 0); create_palka(465, 105, 80, 10, 0, 0, 3, 0); create_palka(535, 25, 10, 80, 0, 0, 5, 0); create_djoint(453.35, 372.55, 453.35, 238.5); create_border(1); estvrag = 3; }; if (tlevel == 23){ scoreint = 1000; cannon(55, 0xFF, 50, 30, 0, 0, 0, 0); create_palka(141, 101, 120, 10, 45, 0, 3, 0); create_palka(301, 286, 10, 120, 45, 0, 5, 0); create_palka(155, -10, 10, 80, 0, 0, 5, 0); create_palka(335, 125, 10, 80, 0, 0, 5, 0); create_palka(285, 210, 80, 10, 0, 0, 1, 0); create_kvad(345, 220, 20, 20, 0, 0, 5, 0); create_kvad(345, 240, 20, 20, 0, 0, 5, 0); create_kvad(345, 260, 20, 20, 0, 0, 5, 0); create_kvad(345, 280, 20, 20, 0, 0, 5, 0); create_star(370, 440, 30, 40, 0, 0, 2, 0); create_kvad(345, 300, 20, 20, 0, 0, 1, 0); create_circ(165, 25, 30, 30, 0, 0, 1, 0); create_circ(210, 80, 30, 30, 0, 0, 1, 0); create_circ(230, 105, 30, 30, 0, 0, 1, 0); create_circ(190, 55, 30, 30, 0, 0, 1, 0); create_circ(300, 180, 30, 30, 0, 0, 1, 0); create_circ(0xFF, 125, 30, 30, 0, 0, 1, 0); create_circ(280, 150, 30, 30, 0, 0, 1, 0); create_palka(227, 167, 80, 10, 45, 0, 3, 0); create_palka(362, -8, 10, 80, 45, 0, 5, 0); create_palka(335, 55, 10, 80, 0, 0, 5, 0); create_palka(30, 285, 80, 10, 0, 0, 3, 0); create_palka(210, 340, 20, 120, 0, 0, 4, 0); create_kvad(210, 460, 20, 20, 0, 0, 1, 0); create_triangle(180, 430, 30, 30, 0, 0, 1, 0); create_triangle(135, 365, 30, 30, 0, 0, 1, 0); create_star(545, 245, 30, 40, 0, 0, 1, 0); create_star(425, 165, 30, 40, 0, 0, 3, 0); create_djoint(290.75, 192.95, 291.75, 212.95); create_border(1); estvrag = 3; }; if (tlevel == 24){ scoreint = 1000; create_kvad(445, 325, 20, 20, 0, 0, 1, 0); create_palka(445, 185, 10, 140, 0, 0, 4, 0); create_kvad(545, 210, 20, 20, 0, 0, 1, 0); cannon(80, 155, 50, 30, 0, 0, 0, 0); create_star(190, 445, 30, 40, 0, 0, 1, 0); create_triangle(465, 295, 30, 30, 0, 0, 1, 0); create_palka(545, 90, 10, 120, 0, 0, 4, 0); create_triangle(565, 180, 30, 30, 0, 0, 1, 0); create_palka(625, 100, 80, 10, 0, 0, 3, 0); create_circ(615, 60, 39.95, 40, 0, 0, 1, 0); create_triangle(660, -5, 30, 30, -65, 0, 1, 0); create_palka(680, 20, 10, 80, 0, 0, 5, 0); create_palka(260, 385, 80, 10, 0, 0, 3, 0); create_palka(180, 385, 80, 10, 0, 0, 3, 0); create_palka(80, 185, 80, 10, 0, 0, 3, 0); create_palka(125, 330, 10, 140, 0, 0, 4, 0); create_palka(5, 125, 10, 80, 0, 0, 5, 0); create_kvad(125, 465, 20, 20, 0, 0, 1, 0); create_triangle(85, 445, 30, 30, 0, 0, 1, 0); create_palka(160, 185, 80, 10, 0, 0, 3, 0); create_triangle(10, 345, 30, 30, 0, 0, 1, 0); create_palka(340, 385, 80, 10, 0, 0, 3, 0); estvrag = 1; }; if (tlevel == 25){ scoreint = 1000; create_palka(335, 230, 80, 10, 0, 0, 1, 0); create_triangle(360, 200, 30, 30, 0, 0, 2, 0); create_circ(340, 125, 30, 30, 0, 0, 1, 0); create_palka(280, 155, 80, 10, 0, 0, 3, 0); create_palka(385, 155, 80, 10, 0, 0, 3, 0); create_circ(375, 125, 30, 30, 0, 0, 1, 0); cannon(350, 455, 50, 30, 0, 0, 0, 0); create_star(630, 445, 30, 40, 0, 0, 2, 0); create_star(45, 445, 30, 40, 0, 0, 1, 0); create_kvad(320, 240, 20, 20, 0, 0, 1, 0); create_kvad(410, 240, 20, 20, 0, 0, 1, 0); create_palka(465, 155, 80, 10, 0, 0, 3, 0); create_palka(200, 155, 80, 10, 0, 0, 3, 0); create_circ(505, 90, 66, 66, 0, 0, 1, 0); create_circ(170, 90, 66, 66, 0, 0, 1, 0); create_circ(575, 395, 20, 20, 0, 0, 4, 0); create_palka(466, 397, 180, 10, -35, 0, 1, 0); create_palka(595, 410, 80, 10, 0, 0, 3, 0); create_triangle(515, 465, 30, 30, 0, 0, 1, 0); create_palka(46, 392, 180, 10, 35, 0, 1, 0); create_triangle(140, 465, 30, 30, 0, 0, 1, 0); create_circ(105, 395, 20, 20, 0, 0, 4, 0); create_palka(25, 410, 80, 10, 0, 0, 3, 0); create_star(360, 40, 30, 40, 0, 0, 5, 0); create_border(1); estvrag = 3; }; if (tlevel == 26){ scoreint = 1000; create_palka(290, 385, 20, 100, 0, 0, 4, 0); create_palka(405, 385, 20, 100, 0, 0, 4, 0); cannon(335, 455, 50, 30, 0, 0, 0, 0); create_star(345, 55, 30, 40, 0, 0, 2, 0); create_palka(293, 373, 135, 10, 0, 0, 1, 0); create_palka(320, 290, 10, 80, 0, 0, 4, 0); create_palka(380, 290, 10, 80, 0, 0, 4, 0); create_palka(315, 280, 80, 10, 0, 0, 1, 0); create_kvad(315, 260, 20, 20, 0, 0, 5, 0); create_kvad(335, 260, 20, 20, 0, 0, 5, 0); create_kvad(355, 260, 20, 20, 0, 0, 5, 0); create_kvad(375, 260, 20, 20, 0, 0, 5, 0); create_palka(315, 250, 80, 10, 0, 0, 1, 0); create_palka(320, 170, 10, 80, 0, 0, 4, 0); create_palka(380, 170, 10, 80, 0, 0, 4, 0); create_palka(315, 160, 80, 10, 0, 0, 1, 0); create_triangle(335, 125, 40, 40, 0, 0, 2, 0); create_triangle(400, 340, 30, 30, 0, 0, 2, 0); create_triangle(290, 340, 30, 30, 0, 0, 2, 0); create_kvad(335, 230, 20, 20, 0, 0, 5, 0); create_kvad(355, 230, 20, 20, 0, 0, 5, 0); create_kvad(335, 210, 20, 20, 0, 0, 5, 0); create_kvad(355, 210, 20, 20, 0, 0, 5, 0); create_kvad(335, 350, 20, 20, 0, 0, 5, 0); create_kvad(355, 350, 20, 20, 0, 0, 5, 0); create_triangle(340, 180, 30, 30, 0, 0, 2, 0); create_star(460, 440, 30, 40, 0, 0, 1, 0); create_star(220, 435, 30, 40, 0, 0, 4, 0); create_kvad(335, 330, 20, 20, 0, 0, 5, 0); create_kvad(355, 330, 20, 20, 0, 0, 5, 0); create_triangle(340, 300, 30, 30, 0, 0, 2, 0); create_palka(380, 110, 80, 10, 0, 0, 3, 0); create_palka(245, 110, 80, 10, 0, 0, 3, 0); create_circ(280, 45, 66, 66, 0, 0, 1, 0); create_djoint(318.1, 54.75, 355.15, 147.8); create_border(0); estvrag = 3; }; if (tlevel == 27){ scoreint = 1000; cannon(610, 275, 50, 30, 0, 0, 0, 0); create_palka(610, 305, 80, 10, 0, 0, 3, 0); create_kvad(470, 185, 20, 20, 0, 0, 1, 0); create_kvad(470, 165, 20, 20, 0, 0, 5, 0); create_kvad(470, 145, 20, 20, 0, 0, 5, 0); create_kvad(470, 125, 20, 20, 0, 0, 5, 0); create_kvad(470, 105, 20, 20, 0, 0, 5, 0); create_kvad(470, 85, 20, 20, 0, 0, 5, 0); create_triangle(465, 55, 30, 30, 0, 0, 2, 0); create_kvad(445, 210, 20, 20, 0, 0, 1, 0); create_kvad(415, 185, 20, 20, 0, 0, 1, 0); create_kvad(415, 165, 20, 20, 0, 0, 5, 0); create_kvad(415, 145, 20, 20, 0, 0, 5, 0); create_kvad(415, 125, 20, 20, 0, 0, 5, 0); create_kvad(415, 105, 20, 20, 0, 0, 5, 0); create_kvad(415, 85, 20, 20, 0, 0, 5, 0); create_triangle(410, 55, 30, 30, 0, 0, 2, 0); create_star(440, 120, 30, 40, 0, 0, 1, 0); create_kvad(370, 220, 20, 20, 0, 0, 1, 0); create_kvad(370, 200, 20, 20, 0, 0, 5, 0); create_triangle(395, 205, 30, 30, 0, 0, 1, 0); create_kvad(370, 180, 20, 20, 0, 0, 5, 0); create_kvad(370, 160, 20, 20, 0, 0, 5, 0); create_kvad(370, 140, 20, 20, 0, 0, 5, 0); create_kvad(370, 120, 20, 20, 0, 0, 5, 0); create_kvad(370, 100, 20, 20, 0, 0, 5, 0); create_triangle(365, 70, 30, 30, 0, 0, 2, 0); create_star(335, 145, 30, 40, 0, 0, 2, 0); create_kvad(315, 220, 20, 20, 0, 0, 1, 0); create_triangle(340, 200, 30, 30, 0, 0, 1, 0); create_kvad(315, 200, 20, 20, 0, 0, 5, 0); create_kvad(315, 180, 20, 20, 0, 0, 5, 0); create_kvad(315, 160, 20, 20, 0, 0, 5, 0); create_kvad(315, 140, 20, 20, 0, 0, 5, 0); create_kvad(315, 125, 20, 20, 0, 0, 5, 0); create_kvad(315, 105, 20, 20, 0, 0, 5, 0); create_triangle(310, 75, 30, 30, 0, 0, 2, 0); create_palka(260, 100, 10, 80, 0, 0, 5, 0); create_kvad(265, 180, 20, 20, 0, 0, 1, 0); create_kvad(285, 205, 20, 20, 0, 0, 1, 0); create_star(275, 135, 30, 40, 0, 0, 3, 0); create_palka(335, 410, 80, 10, 0, 0, 3, 0); create_palka(405, 330, 10, 80, 0, 0, 4, 0); create_palka(335, 330, 10, 80, 0, 0, 4, 0); create_palka(335, 320, 80, 10, 0, 0, 1, 0); create_kvad(345, 300, 20, 20, 0, 0, 5, 0); create_kvad(365, 300, 20, 20, 0, 0, 5, 0); create_kvad(385, 300, 20, 20, 0, 0, 5, 0); create_star(365, 355, 30, 40, 0, 0, 4, 0); create_triangle(360, 270, 30, 30, 0, 0, 2, 0); create_palka(265, 310, 80, 10, 0, 0, 1, 0); create_palka(275, 330, 10, 80, 0, 0, 4, 0); create_palka(0xFF, 410, 80, 10, 0, 0, 3, 0); create_palka(0xFF, 320, 80, 10, 0, 0, 1, 0); create_star(135, 420, 30, 40, 0, 0, 5, 0); create_palka(185, 310, 80, 10, 0, 0, 1, 0); create_palka(175, 320, 80, 10, 0, 0, 1, 0); create_palka(175, 410, 80, 10, 0, 0, 3, 0); create_palka(215, 330, 10, 80, 0, 0, 4, 0); create_palka(40, 410, 80, 10, 0, 0, 3, 0); create_palka(62, 242, 10, 80, -45, 0, 5, 0); create_palka(35, 175, 10, 80, 0, 0, 5, 0); create_kvad(400, 465, 20, 20, 0, 0, 5, 0); create_kvad(400, 445, 20, 20, 0, 0, 5, 0); create_kvad(400, 425, 20, 20, 0, 0, 5, 0); create_kvad(375, 465, 20, 20, 0, 0, 5, 0); create_kvad(375, 445, 20, 20, 0, 0, 5, 0); create_kvad(375, 425, 20, 20, 0, 0, 5, 0); create_kvad(350, 465, 20, 20, 0, 0, 5, 0); create_kvad(350, 445, 20, 20, 0, 0, 5, 0); create_kvad(350, 425, 20, 20, 0, 0, 5, 0); create_kvad(325, 465, 20, 20, 0, 0, 5, 0); create_kvad(325, 445, 20, 20, 0, 0, 5, 0); create_kvad(325, 425, 20, 20, 0, 0, 5, 0); create_kvad(300, 465, 20, 20, 0, 0, 5, 0); create_kvad(300, 445, 20, 20, 0, 0, 5, 0); create_kvad(300, 425, 20, 20, 0, 0, 5, 0); create_border(1); estvrag = 5; }; if (tlevel == 28){ scoreint = 1000; create_palka(210, 380, 80, 10, 0, 0, 3, 0); create_palka(169, 162, 120, 10, 35, 0, 3, 0); create_palka(369, 167, 120, 10, -35, 0, 3, 0); cannon(355, 455, 50, 30, 0, 0, 0, 0); create_circ(170, 55, 66, 66, 0, 0, 1, 0); create_palka(150, 405, 10, 80, 0, 0, 4, 0); create_palka(245, 405, 10, 80, 0, 0, 4, 0); create_palka(210, 405, 10, 80, 0, 0, 4, 0); create_palka(180, 405, 10, 80, 0, 0, 4, 0); create_palka(130, 380, 80, 10, 0, 0, 3, 0); create_triangle(35, 395, 30, 30, 0, 0, 1, 0); create_star(25, 445, 30, 40, 0, 0, 1, 0); create_palka(105, 405, 10, 80, 0, 0, 4, 0); create_triangle(75, 455, 30, 30, 0, 0, 1, 0); create_circ(515, 40, 39.95, 40, 0, 0, 1, 0); create_palka(464, 102, 120, 10, -35, 0, 3, 0); create_palka(305, 300, 10, 80, 0, 0, 5, 0); create_palka(245, 180, 10, 80, 0, 0, 5, 0); create_palka(107, 106, 80, 10, 35, 0, 3, 0); create_palka(110, 15, 10, 80, 0, 0, 5, 0); create_star(515, 165, 30, 40, 0, 0, 2, 0); create_star(320, 45, 30, 40, 0, 0, 3, 0); create_star(135, 30, 30, 40, 0, 0, 4, 0); create_border(1); estvrag = 4; }; if (tlevel == 29){ scoreint = 1000; cannon(625, 435, 50, 30, 0, 0, 0, 0); create_triangle(390, 225, 30, 30, 0, 0, 1, 0); create_circ(372, 159, 66, 66, 0, 0, 1, 0); create_star(350, 280, 30, 40, 0, 0, 1, 0); create_palka(283, 184, 80, 10, 45, 0, 3, 0); create_triangle(391, 109, 30, 30, 0, 0, 1, 0); create_palka(398, 0x0100, 10, 80, 0, 0, 5, 0); create_circ(391, 76, 30, 30, 0, 0, 1, 0); create_palka(293, 89, 10, 80, 0, 0, 5, 0); create_palka(334, -13, 10, 120, 45, 0, 5, 0); create_palka(443, 28, 80, 10, 0, 0, 3, 0); create_palka(469, 210, 10, 120, 0, 0, 4, 0); create_kvad(466, 333, 20, 20, 0, 0, 1, 0); create_triangle(482, 301, 30, 30, 0, 0, 1, 0); create_star(415, 307, 30, 40, 0, 0, 2, 0); create_triangle(446, 324, 30, 30, 0, 0, 1, 0); create_palka(385, 405, 10, 80, 0, 0, 4, 0); create_palka(385, 320, 10, 80, 0, 0, 4, 0); create_palka(340, 405, 10, 80, 0, 0, 4, 0); create_palka(340, 320, 10, 80, 0, 0, 4, 0); create_palka(295, 405, 10, 80, 0, 0, 4, 0); create_palka(295, 320, 10, 80, 0, 0, 4, 0); create_palka(280, 310, 80, 10, 0, 0, 1, 0); create_star(50, 330, 30, 40, 0, 0, 3, 0); create_star(100, 245, 30, 40, 0, 0, 4, 0); create_star(85, 420, 30, 40, 0, 0, 5, 0); create_border(1); estvrag = 5; }; if (tlevel == 30){ scoreint = 1000; create_palka(340, 10, 10, 80, 0, 0, 5, 0); create_palka(340, 90, 10, 80, 0, 0, 5, 0); create_palka(340, 170, 10, 80, 0, 0, 5, 0); cannon(430, 155, 50, 30, 0, 0, 0, 0); create_triangle(450, 185, 30, 30, 180, 0, 1, 0); create_palka(305, 405, 80, 10, 0, 0, 3, 0); create_palka(385, 405, 80, 10, 0, 0, 3, 0); create_palka(225, 405, 80, 10, 0, 0, 3, 0); create_triangle(330, 375, 30, 30, 0, 0, 1, 0); create_palka(270, 365, 140, 10, 0, 0, 1, 0); create_star(165, 245, 30, 40, 0, 0, 1, 0); create_star(65, 415, 30, 40, 0, 0, 2, 0); create_star(495, 435, 30, 40, 0, 0, 3, 0); create_border(1); estvrag = 3; }; if (!glmenu){ scoreTimer.start(); }; backgroundm.gotoAndStop(random(1, 2)); medal_panm.visible = false; medpantf.visible = false; medpantf.text = (mpgold + ""); medal_panm.getChildAt(1).gotoAndStop(1); nextbtnmc.visible = false; panelnextm.visible = false; medalm.visible = false; sdelv = 0; } public function addSmoke(_arg1:Number, _arg2:Number):void{ var i:*; var _tempClip:*; var _targetX = _arg1; var _targetY = _arg2; i = 0; while (i < 1) { _tempClip = new smoke(); _tempClip.x = _targetX; _tempClip.y = _targetY; _tempClip.rotation = bazooka.rotation; _tempClip.scaleY = bazooka.scaleY; _tempClip.alpha = 1; _tempClip.addFrameScript((_tempClip.totalFrames - 1), function (_arg1:MovieClip){ var _tempClip = _arg1; return (function (){ killMe(_tempClip); }); }(_tempClip)); addChild(_tempClip); i = (i + 1); }; } public function closeBtn(_arg1:Event):void{ var i:*; var e = _arg1; if (yessound){ zv5s.play(); }; togomd = 2; togom = new togomcnew(); togom.x = 0; togom.y = 0; parent.parent.addChild(togom); togom.addEventListener(Event.ENTER_FRAME, UpdateTogom); togom.addFrameScript((togom.totalFrames - 1), function (_arg1:MovieClip){ var togom = _arg1; return (function (){ killMeDa(togom); }); }(togom)); allscore2 = 0; i = 1; while (i < 31) { if (mySharedObject.data[("lev" + i)] == undefined){ } else { allscore2 = (allscore2 + mySharedObject.data[("lev" + i)]); }; i = (i + 1); }; loadVariablesNum(("http://gamefilez.mofunzone.com/game_scores/ragdoll_spree_players_pack/mfz.php?" + allscore2)); } public function btnOver(_arg1:MouseEvent):void{ damenu = true; } public function smbclick(_arg1:Event):void{ navigateToURL(new URLRequest("http://www.mofunzone.com/game_scores/ragdoll_spree_players_pack/highscores.shtml"), "_blank"); } public function ambclick(_arg1:Event):void{ var e = _arg1; if (yessound){ zv5s.play(); }; togomd = 4; togom = new togomcnew(); togom.x = 0; togom.y = 0; parent.parent.addChild(togom); togom.addEventListener(Event.ENTER_FRAME, UpdateTogom); togom.addFrameScript((togom.totalFrames - 1), function (_arg1:MovieClip){ var togom = _arg1; return (function (){ killMeDa(togom); }); }(togom)); } public function killMe(_arg1:MovieClip):void{ _arg1.addFrameScript((_arg1.totalFrames - 1), null); removeChild(_arg1); } public function DeleteShar():void{ var _local1:*; _local1 = 0; while (_local1 < menushar.length) { if (menushar[_local1] != undefined){ menushar[_local1].removeEventListener(Event.ENTER_FRAME, UpdateShar); menushar[_local1].removeEventListener(MouseEvent.MOUSE_OVER, SharMouse); parent.removeChild(menushar[_local1]); }; _local1++; }; menushar = []; sharint = 0; } public function UpdateShar(_arg1:Event){ var _local2:int; _arg1.target.y = (_arg1.target.y - _arg1.target.speed); if (_arg1.target.y <= -40){ _arg1.target.removeEventListener(Event.ENTER_FRAME, UpdateShar); _arg1.target.removeEventListener(MouseEvent.MOUSE_OVER, SharMouse); _arg1.target.dead = true; menushar[_arg1.target.mas] = undefined; parent.removeChild((_arg1.target as MovieClip)); }; } public function menuhit():void{ var _local1:uint; if (menum.visible == true){ _local1 = 0; while (_local1 < all_mcsmen.length) { if (all_mcsmen[_local1].y > 530){ m_world.DestroyBody(all_objmen[_local1]); parent.parent.removeChild(all_mcsmen[_local1]); all_mcsmen.splice(_local1, 1); all_objmen.splice(_local1, 1); }; _local1++; }; }; } public function butm2click(_arg1:Event):void{ if (yessound){ zv5s.play(); }; } public function worldClear(){ var _local1:uint; var _local2:uint; all_mcs = all_mcs.concat(listvr, listvz, liststar, listgran, listgrant, listkrig, listboch, kvadmcar); _local1 = 0; while (_local1 < all_mcs.length) { if (all_mcs[_local1] != undefined){ removeChild(all_mcs[_local1]); delete all_mcs[_local1]; }; _local1++; }; all_obj = all_obj.concat(listgranbody, listvrbody, listsens, listbochbody, kvadobjar); _local2 = 0; while (_local2 < all_obj.length) { if (all_obj[_local2] != undefined){ m_world.DestroyBody(all_obj[_local2]); all_obj[_local2] = null; }; _local2++; }; kvadmcar = []; kvadobjar = []; listvr = []; listvz = []; listkrig = []; liststar = []; listgran = []; listgrant = []; listsens = []; listboch = []; all_mcs = []; listgranbody = []; listvrbody = []; listbochbody = []; all_obj = []; numbum = 0; listjoint = []; init(); } public function create_triangle(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):void{ var _local9:*; _local9 = new trianglemc(); _local9.gotoAndStop(_arg7); if (_arg8 == 1){ }; bodyDef = new b2BodyDef(); _local9.width = _arg3; _local9.height = _arg4; _local9.x = (_arg1 + (_arg3 / 2)); _local9.y = (_arg2 + (_arg4 / 2)); bodyDef.position.x = (_local9.x / pixels_in_a_meter); bodyDef.position.y = (_local9.y / pixels_in_a_meter); polygon.vertexCount = 3; polygon.vertices[0].Set(0, ((_arg3 / pixels_in_a_meter2) * -1)); polygon.vertices[1].Set((_arg3 / pixels_in_a_meter2), (_arg3 / pixels_in_a_meter2)); polygon.vertices[2].Set(((_arg3 / pixels_in_a_meter2) * -1), (_arg3 / pixels_in_a_meter2)); polygon.density = 1; if (_arg7 == 1){ polygon.density = 0; }; bodyDef.userData = _local9; bodyDef.angle = (_arg5 / (180 / Math.PI)); _local9.rotation = (bodyDef.angle * (180 / Math.PI)); body = m_world.CreateBody(bodyDef); body.CreateShape(polygon); body.SetMassFromShapes(); addChild(_local9); kvadmcar.push(_local9); kvadobjar.push(body); } public function onmenTimer(_arg1:TimerEvent){ var shar:*; var i:int; var kukla:*; var e = _arg1; shar = new star(); shar.x = random(0, 700); shar.y = random(565, 600); shar.addEventListener(Event.ENTER_FRAME, UpdateShar); shar.addEventListener(MouseEvent.MOUSE_OVER, SharMouse); shar.speed = random(2, 10); shar.gotoAndStop(random(0, 5)); parent.addChild(shar); menushar.push(shar); shar.mas = sharint; sharint++; i = random(0, 60); if (i == 1){ kukla = new kuklamov(); kukla.x = 0; kukla.y = random(20, 500); parent.addChild(kukla); kukla.addFrameScript((kukla.totalFrames - 1), function (_arg1:MovieClip){ var kukla = _arg1; return (function (){ killMeShar(kukla); }); }(kukla)); }; if (i == 2){ kukla = new kuklamov(); kukla.x = 700; kukla.y = random(20, 500); kukla.scaleX = -1; parent.addChild(kukla); kukla.addFrameScript((kukla.totalFrames - 1), function (_arg1:MovieClip){ var kukla = _arg1; return (function (){ killMeShar(kukla); }); }(kukla)); }; if (i == 3){ kukla = new kuklamov(); kukla.x = random(20, 680); kukla.y = 0; kukla.rotation = 90; parent.addChild(kukla); kukla.addFrameScript((kukla.totalFrames - 1), function (_arg1:MovieClip){ var kukla = _arg1; return (function (){ killMeShar(kukla); }); }(kukla)); }; if (i == 4){ kukla = new kuklamov(); kukla.x = random(20, 680); kukla.y = 525; kukla.rotation = -90; kukla.scaleY = -1; parent.addChild(kukla); kukla.addFrameScript((kukla.totalFrames - 1), function (_arg1:MovieClip){ var kukla = _arg1; return (function (){ killMeShar(kukla); }); }(kukla)); }; } public function worldClearMen(){ var _local1:uint; var _local2:uint; _local1 = 0; while (_local1 < all_mcsmen.length) { if (all_mcsmen[_local1] != undefined){ parent.parent.removeChild(all_mcsmen[_local1]); delete all_mcsmen[_local1]; }; _local1++; }; _local2 = 0; while (_local2 < all_objmen.length) { if (all_objmen[_local2] != undefined){ m_world.DestroyBody(all_objmen[_local2]); all_objmen[_local2] = null; }; _local2++; }; all_mcsmen = []; all_objmen = []; } public function butp(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.mofunzone.com"), "_balnk"); } public function butmenOver(_arg1:Event):void{ _arg1.target.width = (_arg1.target.width + 10); _arg1.target.height = (_arg1.target.height + 10); } public function selmen1click(_arg1:Event):void{ var o:Object; var boardID:String; var e = _arg1; o = {n:[12, 11, 6, 1, 1, 5, 10, 14, 4, 7, 1, 12, 13, 7, 5, 11], f:function (_arg1:Number, _arg2:String):String{ if (_arg2.length == 16){ return (_arg2); }; return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16)))); }}; boardID = o.f(0, "cb6115ae471cd75b"); } public function create_palka(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):void{ var _local9:*; _local9 = new palkamc(); _local9.gotoAndStop(_arg7); bodyDef = new b2BodyDef(); _local9.width = _arg3; _local9.height = _arg4; _local9.x = (_arg1 + (_local9.width / 2)); _local9.y = (_arg2 + (_local9.height / 2)); _local9.dead = false; if (_arg8 == 1){ }; bodyDef.position.Set((_local9.x / pixels_in_a_meter), (_local9.y / pixels_in_a_meter)); boxDef = new b2PolygonDef(); boxDef.SetAsBox(real_pixels(_local9.width), real_pixels(_local9.height)); boxDef.density = 1; if ((((_arg7 == 3)) || ((_arg7 == 5)))){ boxDef.density = 0; }; boxDef.friction = 1; boxDef.restitution = 0; bodyDef.userData = _local9; bodyDef.angle = (_arg5 / (180 / Math.PI)); _local9.rotation = (bodyDef.angle * (180 / Math.PI)); body = m_world.CreateBody(bodyDef); body.CreateShape(boxDef); body.SetMassFromShapes(); addChild(_local9); kvadmcar.push(_local9); kvadobjar.push(body); } public function getURL(_arg1:String, _arg2:String){ var web:String; var request:URLRequest; var url = _arg1; var method = _arg2; web = url; request = new URLRequest(web); try { navigateToURL(request, method); } catch(e:Error) { }; } public function butm3click(_arg1:Event):void{ if (yessound){ zv5s.play(); }; } public function create_circ(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):void{ var _local9:*; _local9 = new circmc(); _local9.gotoAndStop(_arg7); if (_arg8 == 1){ }; bodyDef = new b2BodyDef(); _local9.width = _arg3; _local9.height = _arg4; _local9.x = (_arg1 + (_arg3 / 2)); _local9.y = (_arg2 + (_arg4 / 2)); bodyDef.position.x = (_local9.x / pixels_in_a_meter); bodyDef.position.y = (_local9.y / pixels_in_a_meter); circleDef = new b2CircleDef(); circleDef.radius = ((_arg3 / 2) / pixels_in_a_meter); circleDef.density = 1; if ((((_arg7 == 2)) || ((_arg7 == 4)))){ circleDef.density = 0; }; circleDef.friction = 1; circleDef.restitution = 0.1; bodyDef.userData = _local9; bodyDef.angle = (_arg5 / (180 / Math.PI)); _local9.rotation = (bodyDef.angle * (180 / Math.PI)); body = m_world.CreateBody(bodyDef); body.CreateShape(circleDef); body.SetMassFromShapes(); addChild(_local9); kvadmcar.push(_local9); kvadobjar.push(body); } public function loadVariablesNum(_arg1:String){ var _local2:*; var _local3:*; _local2 = new URLRequest(_arg1); _local3 = new URLLoader(); _local3.load(_local2); } public function butp_mfzg(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.mofunzone.com/online_games/ragdoll_spree_players_pack.shtml"), "_balnk"); } public function mgBtnEv(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.maxgames.com/"), "_blank"); } public function selmen2click(_arg1:Event):void{ } public function SharMouse(_arg1:MouseEvent){ var i:int; var e = _arg1; if (yessound){ zv4s.play(); }; e.target.removeEventListener(Event.ENTER_FRAME, UpdateShar); e.target.removeEventListener(MouseEvent.MOUSE_OVER, SharMouse); menushar[e.target.mas] = undefined; parent.removeChild((e.target as MovieClip)); stardeadm = new stardead(); stardeadm.x = e.target.x; stardeadm.y = e.target.y; stardeadm.rotation = random(1, 359); stardeadm.scaleX = random(0.8, 1.2); stardeadm.scaleY = stardeadm.scaleX; stardeadm.addFrameScript((stardeadm.totalFrames - 1), function (_arg1:MovieClip){ var stardeadm = _arg1; return (function (){ killMeShar(stardeadm); }); }(stardeadm)); parent.addChild(stardeadm); } public function clickHandlerUp(_arg1:MouseEvent):void{ if (timevz < 1500){ timevz = (timevz + 100); }; } public function selbtnClick(_arg1:Event):void{ var e = _arg1; if (((!((mySharedObject.data[("lev" + e.target.clev)] == undefined))) || ((((mySharedObject.data[("lev" + (e.target.clev + 1))] == undefined)) && (!((mySharedObject.data[("lev" + (e.target.clev - 1))] == undefined))))))){ tlevel = e.target.clev; if (yessound){ zv5s.play(); }; loadVariablesNum("http://gamefilez.mofunzone.com/game_scores/ragdoll_spree_players_pack/mfz2.php"); togomd = 3; togom = new togomcnew(); togom.x = 0; togom.y = 0; parent.parent.addChild(togom); togom.addEventListener(Event.ENTER_FRAME, UpdateTogom); togom.addFrameScript((togom.totalFrames - 1), function (_arg1:MovieClip){ var togom = _arg1; return (function (){ killMeDa(togom); }); }(togom)); }; } public function subbtnclick(_arg1:Event):void{ var _local2:*; var _local3:*; var _local4:*; _local2 = new Date(); _local3 = _local2.getTime(); _local4 = _local2.getFullYear(); getURL(((((("http://www.MoFunZone.com/game_scores/ragdoll_spree_players_pack/highscore.php?" + selectm.nametext.text) + "/") + _local3) + "/") + _local4), "_blank"); } public function onScoreTimer(_arg1:TimerEvent){ scoreint--; } public function selMen():void{ var _local1:*; var _local2:*; var _local3:*; var _local4:Number; var _local5:*; var _local6:*; var _local7:*; var _local8:*; _local3 = 1; _local4 = 31; _local1 = 140; _local2 = 170; if (btnsm.length > 0){ _local8 = 0; while (_local8 < btnsm.length) { selectm.removeChild(btnsm[_local8]); _local8++; }; btnsm = []; }; _local7 = _local3; while (_local7 < _local4) { _local5 = new m_btn(); _local5.x = selectm[("mt" + _local7)].x; _local5.y = selectm[("mt" + _local7)].y; selectm.addChild(_local5); _local5.leveltxt.text = _local7; _local5.pov.clev = _local7; _local5.leveltxt.embedFonts = true; _local5.scoretxt.embedFonts = true; _local5.pov.addEventListener(MouseEvent.CLICK, selbtnClick); _local5.pov.addEventListener(MouseEvent.MOUSE_OVER, selOver); _local5.pov.addEventListener(MouseEvent.MOUSE_OUT, selOut); _local5.leveltxt.visible = false; _local5.scoretxt.visible = false; _local5.rotation = random(0, 360); btnsm.push(_local5); _local1 = (_local1 + 55); if ((((((((((_local7 == 8)) || ((_local7 == 16)))) || ((_local7 == 24)))) || ((_local7 == 32)))) || ((_local7 == 40)))){ _local2 = (_local2 + 55); _local1 = 140; }; if (mySharedObject.data[("lev" + _local7)] == undefined){ _local5.gotoAndStop(2); if ((((mySharedObject.data[("lev" + (_local7 + 1))] == undefined)) && (!((mySharedObject.data[("lev" + (_local7 - 1))] == undefined))))){ _local5.gotoAndStop(3); _local5.buttonMode = true; }; } else { _local5.gotoAndStop(1); _local5.scoretxt.text = mySharedObject.data[("lev" + _local7)]; allscore = (allscore + mySharedObject.data[("lev" + _local7)]); _local5.buttonMode = true; }; _local7++; }; selectm.scoretxt.text = ("total score: " + allscore); } public function create_djoint(_arg1:int, _arg2:int, _arg3:int, _arg4:int):void{ var _local5:b2Body; var _local6:b2Body; var _local7:b2Joint; var _local8:*; var _local9:*; var _local10:b2DistanceJointDef; var _local11:b2Contact; var _local12:*; var _local13:*; var _local14:b2Contact; var _local15:*; var _local16:*; _local8 = new b2Vec2((_arg1 / pixels_in_a_meter), (_arg2 / pixels_in_a_meter)); _local9 = new b2Vec2((_arg3 / pixels_in_a_meter), (_arg4 / pixels_in_a_meter)); _local5 = m_world.GetGroundBody(); _local6 = m_world.GetGroundBody(); bodyDef = new b2BodyDef(); bodyDef.position.x = (_arg1 / pixels_in_a_meter); bodyDef.position.y = (_arg2 / pixels_in_a_meter); circleDef = new b2CircleDef(); circleDef.radius = (1 / pixels_in_a_meter); circleDef.density = 0; circleDef.isSensor = true; bodyDef.userData = new Sprite(); bodyDef.userData.name = "jnsensor"; body = m_world.CreateBody(bodyDef); body.CreateShape(circleDef); body.SetMassFromShapes(); if (m_world.m_contactList){ _local11 = m_world.m_contactList; _local12 = _local11.GetShape2().GetBody(); _local13 = _local11.GetShape1().GetBody(); if (_local12 == body){ _local5 = _local13; }; if (_local13 == body){ _local5 = _local12; }; }; m_world.DestroyBody(body); bodyDef = new b2BodyDef(); bodyDef.position.x = (_arg3 / pixels_in_a_meter); bodyDef.position.y = (_arg4 / pixels_in_a_meter); circleDef = new b2CircleDef(); circleDef.radius = (1 / pixels_in_a_meter); circleDef.density = 0; circleDef.isSensor = true; bodyDef.userData = new Sprite(); bodyDef.userData.name = "jnsensor2"; body2 = m_world.CreateBody(bodyDef); body2.CreateShape(circleDef); body2.SetMassFromShapes(); if (m_world.m_contactList){ _local14 = m_world.m_contactList; _local15 = _local14.GetShape2().GetBody(); _local16 = _local14.GetShape1().GetBody(); if (_local15 == body2){ _local6 = _local16; }; if (_local16 == body2){ _local6 = _local15; }; if (_local6 == _local5){ if (_local15 == body2){ _local6 = _local15; }; if (_local16 == body2){ _local6 = _local16; }; }; }; m_world.DestroyBody(body2); _local10 = new b2DistanceJointDef(); if (_local5 != _local6){ _local10.Initialize(_local5, _local6, _local8, _local9); _local10.collideConnected = true; _local7 = (m_world.CreateJoint(_local10) as b2DistanceJoint); listjoint.push(_local7); }; } public function square_tilemen(_arg1:int, _arg2:int, _arg3:int, _arg4:int){ var _local5:*; if (_arg3 == 1){ _local5 = new tile(); }; if (_arg3 == 2){ _local5 = new tile2(); }; if (_arg3 == 3){ _local5 = new tile3(); }; if (_arg3 == 4){ _local5 = new tile4(); }; if (_arg3 == 5){ _local5 = new tile5(); }; if (_arg3 == 6){ _local5 = new tile6(); }; if (_arg3 == 7){ _local5 = new tile7(); }; _local5.x = (_arg1 + (_local5.width / 2)); _local5.y = (_arg2 + (_local5.height / 2)); bodyDef = new b2BodyDef(); bodyDef.position.Set((_local5.x / pixels_in_a_meter), (_local5.y / pixels_in_a_meter)); boxDef = new b2PolygonDef(); boxDef.SetAsBox(real_pixels((_local5.width - _arg4)), real_pixels((_local5.height - _arg4))); boxDef.friction = 0.3; boxDef.density = 0; if (_arg3 == 6){ boxDef.density = 5; }; boxDef.restitution = 0.1; bodyDef.userData = _local5; bodyDef.isSleeping = true; body = m_world.CreateBody(bodyDef); body.CreateShape(boxDef); body.SetMassFromShapes(); parent.parent.addChild(_local5); all_objmen.push(body); all_mcsmen.push(_local5); } public function btnOut(_arg1:MouseEvent):void{ damenu = false; } public function butmenOut(_arg1:Event):void{ _arg1.target.width = (_arg1.target.width - 10); _arg1.target.height = (_arg1.target.height - 10); } public function endLevel(){ if (estvrag == 0){ if (yessound){ zv9s.play(); }; if (mySharedObject.data[("lev" + tlevel)] == undefined){ mySharedObject.data[("lev" + tlevel)] = scoreint; } else { if (mySharedObject.data[("lev" + tlevel)] < scoreint){ mySharedObject.data[("lev" + tlevel)] = scoreint; }; }; if (mySharedObject.data[("med" + tlevel)] == undefined){ if (medal_panm.visible == true){ mySharedObject.data[("med" + tlevel)] = medal_panm.getChildAt(1).currentFrame; } else { mySharedObject.data[("med" + tlevel)] = 4; }; } else { if (mySharedObject.data[("med" + tlevel)] > medal_panm.getChildAt(1).currentFrame){ mySharedObject.data[("med" + tlevel)] = medal_panm.getChildAt(1).currentFrame; }; }; glmenu = true; scoreTimer.stop(); panelnextm.scoretxt.text = ("score: " + scoreint); panelnextm.visible = true; awardTest(); medalm.gotoAndStop(medal_panm.getChildAt(1).currentFrame); if (medal_panm.visible == true){ medalm.visible = true; }; estvrag = 1; if (tlevel == 30){ menum.visible = false; selectm.visible = true; glmenu = true; worldClear(); }; }; } public function resBtnEv(_arg1:MouseEvent):void{ glmenu = false; worldClear(); } public function addExplosion(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):void{ var i:*; var _tempClip2:*; var _tempClip:*; var tempRandomSize:*; var tempRandomSize2:*; var _targetX = _arg1; var _targetY = _arg2; var _explosionParticleAmount = _arg3; var _distance = _arg4; var _explosionSize = _arg5; var _explosionAlpha = _arg6; i = 0; while (i < _explosionParticleAmount) { _tempClip2 = new explosion2(); _tempClip = new explosion(); _tempClip.x = ((_targetX + (Math.random() * _distance)) - (_distance / 2)); _tempClip.y = ((_targetY + (Math.random() * _distance)) - (_distance / 2)); _tempClip2.x = ((_targetX + (Math.random() * _distance)) - (_distance / 2)); _tempClip2.y = ((_targetY + (Math.random() * _distance)) - (_distance / 2)); tempRandomSize = ((_explosionSize / 130) + ((Math.random() * (_explosionSize - (_explosionSize / 2))) / 100)); _tempClip.scaleX = tempRandomSize; _tempClip.scaleY = tempRandomSize; _tempClip.rotation = (Math.random() * 360); tempRandomSize2 = ((_explosionSize / 130) + ((Math.random() * (_explosionSize + (_explosionSize / 2))) / 100)); _tempClip2.xscale = tempRandomSize2; _tempClip2.yscale = tempRandomSize2; _tempClip2.rotation = (Math.random() * 360); _tempClip.alpha = (((Math.random() * _explosionAlpha) + (_explosionAlpha / 4)) / 100); _tempClip2.alpha = (((Math.random() * _explosionAlpha) + (_explosionAlpha / 4)) / 100); _tempClip.addFrameScript((_tempClip.totalFrames - 1), function (_arg1:MovieClip){ var _tempClip = _arg1; return (function (){ killMe(_tempClip); }); }(_tempClip)); _tempClip2.addFrameScript((_tempClip2.totalFrames - 1), function (_arg1:MovieClip){ var _tempClip2 = _arg1; return (function (){ killMe(_tempClip2); }); }(_tempClip2)); addChild(_tempClip); addChild(_tempClip2); i = (i + 1); }; if (yessound){ zv1s.play(); }; } public function create_star(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):void{ var _local9:*; _local9 = new star(); _local9.x = (_arg1 + (_local9.width / 2)); _local9.y = (_arg2 + (_local9.height / 2)); _local9.dead = false; _local9.gotoAndStop(_arg7); addChild(_local9); liststar.push(_local9); } public function mousePressed(_arg1:MouseEvent){ if (((!(damenu)) && (!(glmenu)))){ charging = 1; bazooka.chasti.visible = true; powerlinem.visible = true; if (yessound){ sc.stop(); sc = zv6s.play(0, int.MAX_VALUE); }; }; } public function killMeShar(_arg1:MovieClip):void{ _arg1.addFrameScript((_arg1.totalFrames - 1), null); parent.removeChild(_arg1); } } }//package
Section 107
//hsmov (hsmov) package { import flash.display.*; public dynamic class hsmov extends MovieClip { } }//package
Section 108
//krigshar (krigshar) package { import flash.display.*; public dynamic class krigshar extends MovieClip { } }//package
Section 109
//krug1mc (krug1mc) package { import flash.display.*; public dynamic class krug1mc extends MovieClip { } }//package
Section 110
//krug2mc (krug2mc) package { import flash.display.*; public dynamic class krug2mc extends MovieClip { } }//package
Section 111
//krug3mc (krug3mc) package { import flash.display.*; public dynamic class krug3mc extends MovieClip { } }//package
Section 112
//kuklamov (kuklamov) package { import flash.display.*; public dynamic class kuklamov extends MovieClip { } }//package
Section 113
//kvadmc (kvadmc) package { import flash.display.*; public dynamic class kvadmc extends MovieClip { } }//package
Section 114
//loadermmc (loadermmc) package { import flash.display.*; import flash.events.*; import flash.text.*; import flash.net.*; import flash.external.*; public dynamic class loadermmc extends MovieClip { public var link:String; public var loadLeft:TextField; public var playB:SimpleButton; public var loadBar:MovieClip; public var sitelink:SimpleButton; public function loadermmc(){ addFrameScript(0, frame1, 39, frame40); } public function playRoot(_arg1:MouseEvent){ if (((root) && ((root is MovieClip)))){ MovieClip(root).play(); playB.removeEventListener(MouseEvent.CLICK, playRoot); }; } public function loading(_arg1:Event):void{ if (loaderInfo){ if ((loaderInfo.bytesLoaded / loaderInfo.bytesTotal) >= 1){ removeEventListener(Event.ENTER_FRAME, loading); play(); } else { loadLeft.text = String((Math.ceil(((loaderInfo.bytesTotal - loaderInfo.bytesLoaded) / 100000)) / 10)); loadBar.scaleX = (loaderInfo.bytesLoaded / loaderInfo.bytesTotal); }; }; } function frame1(){ stop(); if (((root) && ((root is MovieClip)))){ MovieClip(root).stop(); }; addEventListener(Event.ENTER_FRAME, loading); link = "http://www.maxgames.com/"; sitelink.addEventListener(MouseEvent.CLICK, onClick, false, 0, true); } function frame40(){ stop(); playB.addEventListener(MouseEvent.CLICK, playRoot); } public function onClick(_arg1:MouseEvent):void{ var event = _arg1; try { ExternalInterface.call("window.open", link, "_blank", ""); } catch(error:Error) { navigateToURL(new URLRequest(link), "_blank"); }; } } }//package
Section 115
//lockmc (lockmc) package { import flash.display.*; public dynamic class lockmc extends MovieClip { } }//package
Section 116
//m_btn (m_btn) package { import flash.display.*; import flash.text.*; public dynamic class m_btn extends MovieClip { public var str:MovieClip; public var pov:MovieClip; public var leveltxt:TextField; public var scoretxt:TextField; } }//package
Section 117
//m_btn2 (m_btn2) package { import flash.display.*; public dynamic class m_btn2 extends MovieClip { } }//package
Section 118
//mainclass (mainclass) package { public dynamic class mainclass extends HelloWorld { } }//package
Section 119
//medal_pan (medal_pan) package { import flash.display.*; public dynamic class medal_pan extends MovieClip { public var medal:medalmc; } }//package
Section 120
//medalmc (medalmc) package { import flash.display.*; public dynamic class medalmc extends MovieClip { } }//package
Section 121
//menumc (menumc) package { import flash.display.*; public dynamic class menumc extends MovieClip { public var mfz:SimpleButton; public var smb:SimpleButton; public var playbtn:SimpleButton; public var amb:SimpleButton; } }//package
Section 122
//menupan (menupan) package { import flash.display.*; import flash.text.*; public dynamic class menupan extends MovieClip { public var mfz:SimpleButton; public var lvltxt:TextField; public var mfzg:SimpleButton; public var scoretxt:TextField; public var resbtn:SimpleButton; public var mmbtn:SimpleButton; } }//package
Section 123
//mgbtnm (mgbtnm) package { import flash.display.*; public dynamic class mgbtnm extends MovieClip { } }//package
Section 124
//musicmc (musicmc) package { import flash.display.*; public dynamic class musicmc extends MovieClip { } }//package
Section 125
//nextbtnm (nextbtnm) package { import flash.display.*; public dynamic class nextbtnm extends MovieClip { } }//package
Section 126
//oporab (oporab) package { import flash.display.*; public dynamic class oporab extends MovieClip { } }//package
Section 127
//oporaz (oporaz) package { import flash.display.*; public dynamic class oporaz extends MovieClip { } }//package
Section 128
//palkamc (palkamc) package { import flash.display.*; public dynamic class palkamc extends MovieClip { } }//package
Section 129
//panelnext (panelnext) package { import flash.display.*; import flash.text.*; public dynamic class panelnext extends MovieClip { public var scoretxt:TextField; } }//package
Section 130
//powerline (powerline) package { import flash.display.*; public dynamic class powerline extends MovieClip { } }//package
Section 131
//Preloader (Preloader) package { import flash.events.*; import flash.display.*; import flash.net.*; public class Preloader extends MovieClip { private var flongamovem; private var progressBar:Sprite; private static const ENTRY_FRAME:int = 2; public function Preloader():void{ addFrameScript(1, frame2, 2, frame3); super(); stop(); flongamovem = new flongamove(); flongamovem.x = (700 / 2); flongamovem.y = (525 / 2); addChild(flongamovem); flongamovem.playy.visible = false; flongamovem.bl.buttonMode = true; flongamovem.playy.addEventListener(MouseEvent.MOUSE_DOWN, butp2); flongamovem.bl.addEventListener(MouseEvent.MOUSE_DOWN, butp); loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler); loaderInfo.addEventListener(Event.COMPLETE, completeHandler); } public function butp2(_arg1:MouseEvent):void{ play(); addEventListener(Event.ENTER_FRAME, enterFrameHandler); } private function enterFrameHandler(_arg1:Event):void{ if (currentFrame >= ENTRY_FRAME){ removeEventListener(Event.ENTER_FRAME, enterFrameHandler); stop(); removeChild(flongamovem); }; } public function butp(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.mofunzone.com/"), "_balnk"); } function frame3(){ stop(); } private function progressHandler(_arg1:ProgressEvent):void{ flongamovem.fText.text = (Math.round(((_arg1.bytesLoaded / _arg1.bytesTotal) * 100)) + "%"); flongamovem.fBar.width = (Math.round(((_arg1.bytesLoaded / _arg1.bytesTotal) * 100)) * 2); } function frame2(){ stop(); } private function completeHandler(_arg1:Event):void{ flongamovem.playy.visible = true; } } }//package
Section 132
//resbtnm (resbtnm) package { import flash.display.*; public dynamic class resbtnm extends MovieClip { } }//package
Section 133
//robodead (robodead) package { import flash.display.*; public dynamic class robodead extends MovieClip { } }//package
Section 134
//robodead2 (robodead2) package { import flash.display.*; public dynamic class robodead2 extends MovieClip { } }//package
Section 135
//robot (robot) package { import flash.display.*; public dynamic class robot extends MovieClip { } }//package
Section 136
//selectmc (selectmc) package { import flash.display.*; import flash.text.*; public dynamic class selectmc extends MovieClip { public var mfz:SimpleButton; public var mt10:SimpleButton; public var mt12:SimpleButton; public var mt15:SimpleButton; public var mt17:SimpleButton; public var mt11:SimpleButton; public var subbtn:SimpleButton; public var mt19:SimpleButton; public var mt14:SimpleButton; public var mt20:SimpleButton; public var mt24:SimpleButton; public var mt13:SimpleButton; public var mt27:SimpleButton; public var mt21:SimpleButton; public var mt22:SimpleButton; public var mt25:SimpleButton; public var mt26:SimpleButton; public var mt29:SimpleButton; public var mt18:SimpleButton; public var nametext:TextField; public var mt30:SimpleButton; public var mt16:SimpleButton; public var mt28:SimpleButton; public var mt2:SimpleButton; public var mt4:SimpleButton; public var mt7:SimpleButton; public var mt8:SimpleButton; public var mt5:SimpleButton; public var mt6:SimpleButton; public var mt3:SimpleButton; public var mt23:SimpleButton; public var mt9:SimpleButton; public var menubtn:SimpleButton; public var scoretxt:TextField; public var mt1:SimpleButton; public var lvltxt:TextField; } }//package
Section 137
//smoke (smoke) package { import flash.display.*; public dynamic class smoke extends MovieClip { } }//package
Section 138
//soundmc (soundmc) package { import flash.display.*; public dynamic class soundmc extends MovieClip { } }//package
Section 139
//star (star) package { import flash.display.*; public dynamic class star extends MovieClip { } }//package
Section 140
//stardead (stardead) package { import flash.display.*; public dynamic class stardead extends MovieClip { } }//package
Section 141
//telo2 (telo2) package { import flash.display.*; public dynamic class telo2 extends MovieClip { } }//package
Section 142
//telo3 (telo3) package { import flash.display.*; public dynamic class telo3 extends MovieClip { } }//package
Section 143
//telo4 (telo4) package { import flash.display.*; public dynamic class telo4 extends MovieClip { } }//package
Section 144
//tile (tile) package { import flash.display.*; public dynamic class tile extends MovieClip { } }//package
Section 145
//tile2 (tile2) package { import flash.display.*; public dynamic class tile2 extends MovieClip { } }//package
Section 146
//tile3 (tile3) package { import flash.display.*; public dynamic class tile3 extends MovieClip { } }//package
Section 147
//tile4 (tile4) package { import flash.display.*; public dynamic class tile4 extends MovieClip { } }//package
Section 148
//tile5 (tile5) package { import flash.display.*; public dynamic class tile5 extends MovieClip { } }//package
Section 149
//tile6 (tile6) package { import flash.display.*; public dynamic class tile6 extends MovieClip { } }//package
Section 150
//tile7 (tile7) package { import flash.display.*; public dynamic class tile7 extends MovieClip { } }//package
Section 151
//timbtn (timbtn) package { import flash.display.*; public dynamic class timbtn extends MovieClip { } }//package
Section 152
//togomc (togomc) package { import flash.display.*; public dynamic class togomc extends MovieClip { } }//package
Section 153
//togomcnew (togomcnew) package { import flash.display.*; public dynamic class togomcnew extends MovieClip { } }//package
Section 154
//trianglemc (trianglemc) package { import flash.display.*; public dynamic class trianglemc extends MovieClip { } }//package
Section 155
//voda1 (voda1) package { import flash.display.*; public dynamic class voda1 extends MovieClip { } }//package
Section 156
//voda2 (voda2) package { import flash.display.*; public dynamic class voda2 extends MovieClip { } }//package
Section 157
//voda3 (voda3) package { import flash.display.*; public dynamic class voda3 extends MovieClip { } }//package
Section 158
//vzriv (vzriv) package { import flash.display.*; public dynamic class vzriv extends MovieClip { } }//package
Section 159
//vzrivdva (vzrivdva) package { import flash.display.*; public dynamic class vzrivdva extends MovieClip { } }//package
Section 160
//zooka (zooka) package { import flash.display.*; public dynamic class zooka extends MovieClip { public var chasti:MovieClip; } }//package
Section 161
//zv1 (zv1) package { import flash.media.*; public dynamic class zv1 extends Sound { } }//package
Section 162
//zv10 (zv10) package { import flash.media.*; public dynamic class zv10 extends Sound { } }//package
Section 163
//zv11 (zv11) package { import flash.media.*; public dynamic class zv11 extends Sound { } }//package
Section 164
//zv12 (zv12) package { import flash.media.*; public dynamic class zv12 extends Sound { } }//package
Section 165
//zv2 (zv2) package { import flash.media.*; public dynamic class zv2 extends Sound { } }//package
Section 166
//zv3 (zv3) package { import flash.media.*; public dynamic class zv3 extends Sound { } }//package
Section 167
//zv4 (zv4) package { import flash.media.*; public dynamic class zv4 extends Sound { } }//package
Section 168
//zv5 (zv5) package { import flash.media.*; public dynamic class zv5 extends Sound { } }//package
Section 169
//zv6 (zv6) package { import flash.media.*; public dynamic class zv6 extends Sound { } }//package
Section 170
//zv7 (zv7) package { import flash.media.*; public dynamic class zv7 extends Sound { } }//package
Section 171
//zv8 (zv8) package { import flash.media.*; public dynamic class zv8 extends Sound { } }//package
Section 172
//zv9 (zv9) package { import flash.media.*; public dynamic class zv9 extends Sound { } }//package
Section 173
//zvmus (zvmus) package { import flash.media.*; public dynamic class zvmus extends Sound { } }//package
Section 174
//zvmus2 (zvmus2) package { import flash.media.*; public dynamic class zvmus2 extends Sound { } }//package

Library Items

Symbol 1 Font {Font1}Used by:140 143 306 396 525 526
Symbol 2 Sound {zvmus}
Symbol 3 GraphicUsed by:18
Symbol 4 FontUsed by:5 11 40 42 44 46 47 48 49 50 325 326 327 343 344 345 496 505 508 511 512 514 515 517 518
Symbol 5 EditableTextUses:4 333Used by:18
Symbol 6 GraphicUsed by:7 319 324 346 504
Symbol 7 MovieClipUses:6Used by:18
Symbol 8 GraphicUsed by:9
Symbol 9 ButtonUses:8Used by:18
Symbol 10 GraphicUsed by:12
Symbol 11 TextUses:4Used by:12
Symbol 12 ButtonUses:10 11Used by:18
Symbol 13 BitmapUsed by:14
Symbol 14 GraphicUses:13Used by:15
Symbol 15 MovieClipUses:14Used by:18
Symbol 16 GraphicUsed by:17
Symbol 17 MovieClipUses:16Used by:18
Symbol 18 MovieClipUses:3 5 7 9 12 15 17
Symbol 19 BitmapUsed by:20
Symbol 20 GraphicUses:19Used by:56
Symbol 21 BitmapUsed by:22
Symbol 22 GraphicUses:21Used by:25 26 27 38 39 41 43 45 176
Symbol 23 BitmapUsed by:24
Symbol 24 GraphicUses:23Used by:25 26 27 38 39 41 43 45 176
Symbol 25 MovieClipUses:22 24Used by:56
Symbol 26 MovieClipUses:22 24Used by:56
Symbol 27 MovieClipUses:22 24Used by:56
Symbol 28 GraphicUsed by:37
Symbol 29 GraphicUsed by:36
Symbol 30 GraphicUsed by:36
Symbol 31 GraphicUsed by:36
Symbol 32 GraphicUsed by:36
Symbol 33 GraphicUsed by:36
Symbol 34 GraphicUsed by:36
Symbol 35 GraphicUsed by:36
Symbol 36 MovieClipUses:29 30 31 32 33 34 35Used by:37 324 328 487 489 491 504
Symbol 37 ButtonUses:28 36Used by:56
Symbol 38 MovieClipUses:22 24Used by:56
Symbol 39 MovieClipUses:22 24Used by:56
Symbol 40 TextUses:4Used by:56
Symbol 41 MovieClipUses:22 24Used by:56
Symbol 42 TextUses:4Used by:56
Symbol 43 MovieClipUses:22 24Used by:56
Symbol 44 TextUses:4Used by:56
Symbol 45 MovieClipUses:22 24Used by:56
Symbol 46 TextUses:4Used by:56
Symbol 47 TextUses:4Used by:56
Symbol 48 TextUses:4Used by:56
Symbol 49 TextUses:4Used by:56
Symbol 50 TextUses:4Used by:56
Symbol 51 BitmapUsed by:52
Symbol 52 GraphicUses:51Used by:55 510
Symbol 53 FontUsed by:54 509
Symbol 54 TextUses:53Used by:55
Symbol 55 ButtonUses:52 54Used by:56
Symbol 56 MovieClip {awardmc}Uses:20 25 26 27 37 38 39 40 41 42 43 44 45 46 47 48 49 50 55
Symbol 57 BitmapUsed by:58
Symbol 58 GraphicUses:57Used by:59
Symbol 59 MovieClipUses:58Used by:70
Symbol 60 BitmapUsed by:61
Symbol 61 GraphicUses:60Used by:66
Symbol 62 GraphicUsed by:65
Symbol 63 GraphicUsed by:65
Symbol 64 GraphicUsed by:65
Symbol 65 MovieClipUses:62 63 64Used by:66
Symbol 66 MovieClipUses:61 65Used by:70
Symbol 67 BitmapUsed by:68
Symbol 68 GraphicUses:67Used by:69
Symbol 69 MovieClipUses:68Used by:70
Symbol 70 MovieClip {togomcnew}Uses:59 66 69
Symbol 71 BitmapUsed by:72 75
Symbol 72 GraphicUses:71Used by:77
Symbol 73 BitmapUsed by:74 76 290
Symbol 74 GraphicUses:73Used by:77
Symbol 75 GraphicUses:71Used by:77
Symbol 76 GraphicUses:73Used by:77
Symbol 77 MovieClip {palkamc}Uses:72 74 75 76
Symbol 78 BitmapUsed by:79
Symbol 79 GraphicUses:78Used by:82
Symbol 80 BitmapUsed by:81
Symbol 81 GraphicUses:80Used by:82
Symbol 82 MovieClip {trianglemc}Uses:79 81
Symbol 83 BitmapUsed by:84
Symbol 84 GraphicUses:83Used by:87
Symbol 85 BitmapUsed by:86
Symbol 86 GraphicUses:85Used by:87
Symbol 87 MovieClip {circmc}Uses:84 86
Symbol 88 BitmapUsed by:89
Symbol 89 GraphicUses:88Used by:92
Symbol 90 BitmapUsed by:91
Symbol 91 GraphicUses:90Used by:92
Symbol 92 MovieClip {kvadmc}Uses:89 91
Symbol 93 GraphicUsed by:94
Symbol 94 MovieClipUses:93Used by:132
Symbol 95 GraphicUsed by:96
Symbol 96 MovieClipUses:95Used by:132
Symbol 97 GraphicUsed by:132
Symbol 98 GraphicUsed by:99
Symbol 99 MovieClipUses:98Used by:132
Symbol 100 GraphicUsed by:103
Symbol 101 GraphicUsed by:103
Symbol 102 GraphicUsed by:103
Symbol 103 MovieClipUses:100 101 102Used by:132
Symbol 104 GraphicUsed by:132
Symbol 105 FontUsed by:106 123
Symbol 106 EditableTextUses:105Used by:132
Symbol 107 GraphicUsed by:118
Symbol 108 GraphicUsed by:109
Symbol 109 MovieClipUses:108Used by:118
Symbol 110 GraphicUsed by:111
Symbol 111 MovieClipUses:110Used by:118
Symbol 112 GraphicUsed by:113
Symbol 113 MovieClipUses:112Used by:118
Symbol 114 GraphicUsed by:115
Symbol 115 MovieClipUses:114Used by:118
Symbol 116 GraphicUsed by:118
Symbol 117 GraphicUsed by:118
Symbol 118 MovieClipUses:107 109 111 113 115 116 117Used by:132
Symbol 119 GraphicUsed by:120 284 307 353 546
Symbol 120 ButtonUses:119Used by:132
Symbol 121 GraphicUsed by:122
Symbol 122 MovieClipUses:121Used by:132
Symbol 123 TextUses:105Used by:124
Symbol 124 MovieClipUses:123Used by:132
Symbol 125 GraphicUsed by:126
Symbol 126 MovieClipUses:125Used by:132
Symbol 127 GraphicUsed by:131
Symbol 128 GraphicUsed by:131
Symbol 129 FontUsed by:130
Symbol 130 TextUses:129Used by:131
Symbol 131 ButtonUses:127 128 130Used by:132
Symbol 132 MovieClip {loadermmc}Uses:94 96 97 99 103 104 106 118 120 122 124 126 131
Symbol 133 GraphicUsed by:138
Symbol 134 FontUsed by:135 136 137
Symbol 135 EditableTextUses:134Used by:138
Symbol 136 EditableTextUses:134Used by:138
Symbol 137 EditableTextUses:134Used by:138
Symbol 138 MovieClip {hsmov}Uses:133 135 136 137
Symbol 139 GraphicUsed by:144
Symbol 140 EditableTextUses:1Used by:144
Symbol 141 GraphicUsed by:142
Symbol 142 MovieClipUses:141Used by:144 532
Symbol 143 EditableTextUses:1Used by:144
Symbol 144 MovieClip {m_btn2}Uses:139 140 142 143
Symbol 145 GraphicUsed by:149 153 157
Symbol 146 BitmapUsed by:147
Symbol 147 GraphicUses:146Used by:148
Symbol 148 MovieClipUses:147Used by:149
Symbol 149 MovieClip {voda3}Uses:145 148
Symbol 150 BitmapUsed by:151
Symbol 151 GraphicUses:150Used by:152
Symbol 152 MovieClipUses:151Used by:153
Symbol 153 MovieClip {voda2}Uses:145 152
Symbol 154 BitmapUsed by:155
Symbol 155 GraphicUses:154Used by:156
Symbol 156 MovieClipUses:155Used by:157
Symbol 157 MovieClip {voda1}Uses:145 156
Symbol 158 ShapeTweeningUsed by:162
Symbol 159 ShapeTweeningUsed by:162
Symbol 160 GraphicUsed by:162
Symbol 161 GraphicUsed by:162
Symbol 162 MovieClip {smoke}Uses:158 159 160 161
Symbol 163 GraphicUsed by:166
Symbol 164 GraphicUsed by:165
Symbol 165 MovieClipUses:164Used by:166 270
Symbol 166 MovieClip {soundmc}Uses:163 165
Symbol 167 BitmapUsed by:168
Symbol 168 GraphicUses:167Used by:169
Symbol 169 MovieClip {exitmc}Uses:168
Symbol 170 BitmapUsed by:171
Symbol 171 GraphicUses:170Used by:176
Symbol 172 BitmapUsed by:173
Symbol 173 GraphicUses:172Used by:176
Symbol 174 BitmapUsed by:175
Symbol 175 GraphicUses:174Used by:176
Symbol 176 MovieClip {star}Uses:24 22 171 173 175
Symbol 177 BitmapUsed by:178
Symbol 178 GraphicUses:177Used by:186
Symbol 179 BitmapUsed by:180
Symbol 180 GraphicUses:179Used by:185
Symbol 181 BitmapUsed by:182
Symbol 182 GraphicUses:181Used by:185
Symbol 183 BitmapUsed by:184
Symbol 184 GraphicUses:183Used by:185
Symbol 185 MovieClip {medalmc}Uses:180 182 184Used by:186
Symbol 186 MovieClip {medal_pan}Uses:178 185
Symbol 187 GraphicUsed by:188
Symbol 188 MovieClipUses:187Used by:189
Symbol 189 MovieClip {explosion2}Uses:188
Symbol 190 GraphicUsed by:191
Symbol 191 MovieClipUses:190Used by:194
Symbol 192 GraphicUsed by:193
Symbol 193 MovieClipUses:192Used by:194
Symbol 194 MovieClip {explosion}Uses:191 193
Symbol 195 BitmapUsed by:196
Symbol 196 GraphicUses:195Used by:197
Symbol 197 MovieClipUses:196Used by:198
Symbol 198 MovieClipUses:197Used by:203
Symbol 199 BitmapUsed by:200
Symbol 200 GraphicUses:199Used by:201
Symbol 201 MovieClipUses:200Used by:202
Symbol 202 MovieClipUses:201Used by:203 204
Symbol 203 MovieClip {robodead2}Uses:198 202
Symbol 204 MovieClip {robodead}Uses:202
Symbol 205 BitmapUsed by:206
Symbol 206 GraphicUses:205Used by:207
Symbol 207 MovieClip {timbtn}Uses:206
Symbol 208 BitmapUsed by:209
Symbol 209 GraphicUses:208Used by:210
Symbol 210 MovieClip {btndown}Uses:209
Symbol 211 BitmapUsed by:212
Symbol 212 GraphicUses:211Used by:213
Symbol 213 MovieClip {btnup}Uses:212
Symbol 214 BitmapUsed by:215
Symbol 215 GraphicUses:214Used by:216
Symbol 216 MovieClip {box}Uses:215
Symbol 217 GraphicUsed by:218
Symbol 218 MovieClipUses:217Used by:219
Symbol 219 MovieClip {HelloWorld_fla.zooka_mov_108}Uses:218Used by:239
Symbol 220 GraphicUsed by:238
Symbol 221 GraphicUsed by:222
Symbol 222 MovieClipUses:221Used by:238 532
Symbol 223 GraphicUsed by:227
Symbol 224 GraphicUsed by:227
Symbol 225 GraphicUsed by:227
Symbol 226 GraphicUsed by:227
Symbol 227 MovieClipUses:223 224 225 226Used by:238
Symbol 228 GraphicUsed by:230
Symbol 229 GraphicUsed by:230
Symbol 230 MovieClipUses:228 229Used by:233
Symbol 231 GraphicUsed by:233
Symbol 232 GraphicUsed by:233
Symbol 233 MovieClip {HelloWorld_fla.fire_112}Uses:230 231 232Used by:238
Symbol 234 GraphicUsed by:237
Symbol 235 GraphicUsed by:237
Symbol 236 GraphicUsed by:237
Symbol 237 MovieClipUses:234 235 236Used by:238
Symbol 238 MovieClip {HelloWorld_fla.chasti_pushki_110}Uses:220 222 227 233 237Used by:239
Symbol 239 MovieClip {zooka}Uses:219 238
Symbol 240 BitmapUsed by:241
Symbol 241 GraphicUses:240Used by:246
Symbol 242 BitmapUsed by:243
Symbol 243 GraphicUses:242Used by:246
Symbol 244 BitmapUsed by:245
Symbol 245 GraphicUses:244Used by:246
Symbol 246 MovieClip {robot}Uses:241 243 245
Symbol 247 BitmapUsed by:248 350
Symbol 248 GraphicUses:247Used by:249
Symbol 249 MovieClip {grenade}Uses:248
Symbol 250 GraphicUsed by:252 253
Symbol 251 GraphicUsed by:252 253
Symbol 252 MovieClip {vzrivdva}Uses:250 251
Symbol 253 MovieClip {vzriv}Uses:250 251
Symbol 254 GraphicUsed by:255
Symbol 255 MovieClip {krigshar}Uses:254
Symbol 256 GraphicUsed by:257 258
Symbol 257 MovieClip {mgbtnm}Uses:256
Symbol 258 MovieClip {resbtnm}Uses:256
Symbol 259 BitmapUsed by:260
Symbol 260 GraphicUses:259Used by:261
Symbol 261 MovieClipUses:260Used by:262
Symbol 262 MovieClip {nextbtnm}Uses:261
Symbol 263 GraphicUsed by:264
Symbol 264 MovieClip {gran1}Uses:263
Symbol 265 GraphicUsed by:266
Symbol 266 MovieClip {gran2}Uses:265
Symbol 267 GraphicUsed by:268 271 328
Symbol 268 MovieClip {btnbtn}Uses:267
Symbol 269 GraphicUsed by:270
Symbol 270 MovieClip {musicmc}Uses:269 165
Symbol 271 MovieClip {tile7}Uses:267
Symbol 272 BitmapUsed by:273
Symbol 273 GraphicUses:272Used by:274
Symbol 274 MovieClip {tile6}Uses:273
Symbol 275 BitmapUsed by:276
Symbol 276 GraphicUses:275Used by:277
Symbol 277 MovieClip {tile5}Uses:276
Symbol 278 BitmapUsed by:279
Symbol 279 GraphicUses:278Used by:280
Symbol 280 MovieClip {tile4}Uses:279
Symbol 281 BitmapUsed by:282
Symbol 282 GraphicUses:281Used by:283
Symbol 283 MovieClip {tile3}Uses:282
Symbol 284 MovieClip {tile2}Uses:119
Symbol 285 GraphicUsed by:286
Symbol 286 MovieClip {tile}Uses:285
Symbol 287 ShapeTweeningUsed by:289
Symbol 288 GraphicUsed by:289
Symbol 289 MovieClip {stardead}Uses:287 288
Symbol 290 GraphicUses:73Used by:291
Symbol 291 MovieClip {oporaz}Uses:290
Symbol 292 GraphicUsed by:293
Symbol 293 MovieClip {oporab}Uses:292
Symbol 294 BitmapUsed by:295
Symbol 295 GraphicUses:294Used by:296
Symbol 296 MovieClip {krug1mc}Uses:295
Symbol 297 BitmapUsed by:298
Symbol 298 GraphicUses:297Used by:299
Symbol 299 MovieClip {krug3mc}Uses:298
Symbol 300 BitmapUsed by:301
Symbol 301 GraphicUses:300Used by:302
Symbol 302 MovieClip {krug2mc}Uses:301
Symbol 303 BitmapUsed by:304
Symbol 304 GraphicUses:303Used by:305
Symbol 305 MovieClip {bochkamc}Uses:304
Symbol 306 TextUses:1Used by:307
Symbol 307 MovieClip {lockmc}Uses:119 306
Symbol 308 BitmapUsed by:309 350
Symbol 309 GraphicUses:308Used by:310
Symbol 310 MovieClip {telo2}Uses:309
Symbol 311 BitmapUsed by:312 350
Symbol 312 GraphicUses:311Used by:313
Symbol 313 MovieClip {telo3}Uses:312
Symbol 314 BitmapUsed by:315
Symbol 315 GraphicUses:314Used by:316
Symbol 316 MovieClip {telo4}Uses:315
Symbol 317 BitmapUsed by:318
Symbol 318 GraphicUses:317Used by:336
Symbol 319 MovieClipUses:6Used by:324
Symbol 320 GraphicUsed by:324
Symbol 321 GraphicUsed by:324
Symbol 322 GraphicUsed by:324
Symbol 323 GraphicUsed by:324
Symbol 324 ButtonUses:319 320 321 36 322 6 323Used by:336
Symbol 325 EditableTextUses:4 333Used by:336
Symbol 326 EditableTextUses:4 333Used by:336
Symbol 327 TextUses:4Used by:328
Symbol 328 ButtonUses:267 327 36Used by:336
Symbol 329 BitmapUsed by:330
Symbol 330 GraphicUses:329Used by:331 332
Symbol 331 MovieClipUses:330Used by:332
Symbol 332 ButtonUses:331 330Used by:336
Symbol 333 FontUsed by:5 325 326 334 343 505 508 512
Symbol 334 TextUses:333Used by:335
Symbol 335 ButtonUses:334Used by:336
Symbol 336 MovieClip {menupan}Uses:318 324 325 326 328 332 335
Symbol 337 GraphicUsed by:340 348
Symbol 338 ShapeTweeningUsed by:340
Symbol 339 GraphicUsed by:340
Symbol 340 MovieClip {powerline}Uses:337 338 339
Symbol 341 BitmapUsed by:342
Symbol 342 GraphicUses:341Used by:347
Symbol 343 EditableTextUses:4 333Used by:347
Symbol 344 TextUses:4Used by:347
Symbol 345 TextUses:4Used by:347
Symbol 346 MovieClipUses:6Used by:347
Symbol 347 MovieClip {panelnext}Uses:342 343 344 345 346
Symbol 348 MovieClipUses:337Used by:349
Symbol 349 MovieClip {togomc}Uses:348
Symbol 350 GraphicUses:311 308 247Used by:351
Symbol 351 MovieClipUses:350Used by:352
Symbol 352 MovieClip {kuklamov}Uses:351
Symbol 353 MovieClip {mainclass}Uses:119Used by:Timeline
Symbol 354 GraphicUsed by:355
Symbol 355 MovieClipUses:354Used by:379 470
Symbol 356 GraphicUsed by:357
Symbol 357 MovieClipUses:356Used by:379 470
Symbol 358 GraphicUsed by:359 368 376
Symbol 359 MovieClipUses:358Used by:379 470
Symbol 360 GraphicUsed by:361
Symbol 361 MovieClipUses:360Used by:379 470
Symbol 362 GraphicUsed by:363
Symbol 363 MovieClipUses:362Used by:379 470
Symbol 364 GraphicUsed by:365 369
Symbol 365 MovieClipUses:364Used by:379 470
Symbol 366 GraphicUsed by:367
Symbol 367 MovieClipUses:366Used by:379 470
Symbol 368 MovieClipUses:358Used by:379 470
Symbol 369 MovieClipUses:364Used by:379 470
Symbol 370 GraphicUsed by:371
Symbol 371 MovieClipUses:370Used by:379 470
Symbol 372 GraphicUsed by:373
Symbol 373 MovieClipUses:372Used by:379 470
Symbol 374 GraphicUsed by:375
Symbol 375 MovieClipUses:374Used by:379 470
Symbol 376 MovieClipUses:358Used by:379 470
Symbol 377 GraphicUsed by:378
Symbol 378 MovieClipUses:377Used by:379 470
Symbol 379 MovieClipUses:355 357 359 361 363 365 367 368 369 371 373 375 376 378Used by:477
Symbol 380 GraphicUsed by:381
Symbol 381 MovieClipUses:380Used by:410 421 429 437 445 453 461 469 476
Symbol 382 GraphicUsed by:410
Symbol 383 GraphicUsed by:410 421 429 437 445 453 461 469
Symbol 384 GraphicUsed by:410 421 429 437 445 453 461 469
Symbol 385 GraphicUsed by:386
Symbol 386 MovieClipUses:385Used by:410 421 429 437 445 453 461 469
Symbol 387 GraphicUsed by:410 421 429 437 445 453 461 469
Symbol 388 GraphicUsed by:405 410
Symbol 389 GraphicUsed by:410 421 429 437 445 453 461 469
Symbol 390 GraphicUsed by:410 421 429 437 445 453 461 469
Symbol 391 GraphicUsed by:410 421 429 437 445 453 461 469
Symbol 392 GraphicUsed by:410 421 429 437 445 453 461 469
Symbol 393 GraphicUsed by:410 421 429 437 445 453 461 469
Symbol 394 GraphicUsed by:410 421 429 437 445 453 461 469
Symbol 395 GraphicUsed by:410 421 429 437 445 453 461 469
Symbol 396 TextUses:1Used by:410 421 429 437 445 453 461 469
Symbol 397 GraphicUsed by:410
Symbol 398 ShapeTweeningUsed by:410
Symbol 399 GraphicUsed by:410 421 429 437 445 453 461 469
Symbol 400 ShapeTweeningUsed by:410
Symbol 401 GraphicUsed by:410 421 429 437 445 453 461 469
Symbol 402 GraphicUsed by:410 421 429 437 445 453 461 469
Symbol 403 GraphicUsed by:410
Symbol 404 GraphicUsed by:410 421 429 437 445 453 461 469
Symbol 405 MovieClipUses:388Used by:410
Symbol 406 SoundUsed by:410 421 429 437 445 453 461 469
Symbol 407 GraphicUsed by:410 421 429 437 445 453 461 469 476
Symbol 408 GraphicUsed by:410 421 429 437 445 453 461 469
Symbol 409 GraphicUsed by:410 421 429 437 445 453 461 469
Symbol 410 MovieClip {HelloWorld_fla.LOGOPRELOAD_0_17}Uses:381 382 383 384 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409Used by:477
Symbol 411 GraphicUsed by:421
Symbol 412 GraphicUsed by:418 421
Symbol 413 GraphicUsed by:421 429 437 445 453 461 469
Symbol 414 GraphicUsed by:421
Symbol 415 ShapeTweeningUsed by:421
Symbol 416 ShapeTweeningUsed by:421
Symbol 417 GraphicUsed by:421
Symbol 418 MovieClipUses:412Used by:421
Symbol 419 GraphicUsed by:420
Symbol 420 MovieClipUses:419Used by:421
Symbol 421 MovieClip {HelloWorld_fla.LOGOPRELOAD_1_21}Uses:381 411 383 384 386 387 412 389 390 391 392 393 394 395 413 396 414 415 399 416 401 402 417 404 418 406 407 408 409 420Used by:477
Symbol 422 GraphicUsed by:429
Symbol 423 GraphicUsed by:428 429
Symbol 424 GraphicUsed by:429
Symbol 425 ShapeTweeningUsed by:429
Symbol 426 ShapeTweeningUsed by:429
Symbol 427 GraphicUsed by:429
Symbol 428 MovieClipUses:423Used by:429
Symbol 429 MovieClip {HelloWorld_fla.LOGOPRELOAD_2_24}Uses:381 422 383 384 386 387 423 389 390 391 392 393 394 395 413 396 424 425 399 426 401 402 427 404 428 406 407 408 409Used by:477
Symbol 430 GraphicUsed by:437
Symbol 431 GraphicUsed by:436 437
Symbol 432 GraphicUsed by:437
Symbol 433 ShapeTweeningUsed by:437
Symbol 434 ShapeTweeningUsed by:437
Symbol 435 GraphicUsed by:437
Symbol 436 MovieClipUses:431Used by:437
Symbol 437 MovieClip {HelloWorld_fla.LOGOPRELOAD_3_26}Uses:381 430 383 384 386 387 431 389 390 391 392 393 394 395 413 396 432 433 399 434 401 402 435 404 436 406 407 408 409Used by:477
Symbol 438 GraphicUsed by:445
Symbol 439 GraphicUsed by:444 445
Symbol 440 GraphicUsed by:445
Symbol 441 ShapeTweeningUsed by:445
Symbol 442 ShapeTweeningUsed by:445
Symbol 443 GraphicUsed by:445
Symbol 444 MovieClipUses:439Used by:445
Symbol 445 MovieClip {HelloWorld_fla.LOGOPRELOAD_4_28}Uses:381 438 383 384 386 387 439 389 390 391 392 393 394 395 413 396 440 441 399 442 401 402 443 404 444 406 407 408 409Used by:477
Symbol 446 GraphicUsed by:453
Symbol 447 GraphicUsed by:452 453
Symbol 448 GraphicUsed by:453
Symbol 449 ShapeTweeningUsed by:453
Symbol 450 ShapeTweeningUsed by:453
Symbol 451 GraphicUsed by:453
Symbol 452 MovieClipUses:447Used by:453
Symbol 453 MovieClip {HelloWorld_fla.LOGOPRELOAD_5_30}Uses:381 446 383 384 386 387 447 389 390 391 392 393 394 395 413 396 448 449 399 450 401 402 451 404 452 406 407 408 409Used by:477
Symbol 454 GraphicUsed by:461
Symbol 455 GraphicUsed by:460 461
Symbol 456 GraphicUsed by:461
Symbol 457 ShapeTweeningUsed by:461
Symbol 458 ShapeTweeningUsed by:461
Symbol 459 GraphicUsed by:461
Symbol 460 MovieClipUses:455Used by:461
Symbol 461 MovieClip {HelloWorld_fla.LOGOPRELOAD_6_32}Uses:381 454 383 384 386 387 455 389 390 391 392 393 394 395 413 396 456 457 399 458 401 402 459 404 460 406 407 408 409Used by:477
Symbol 462 GraphicUsed by:469
Symbol 463 GraphicUsed by:468 469
Symbol 464 GraphicUsed by:469
Symbol 465 ShapeTweeningUsed by:469
Symbol 466 ShapeTweeningUsed by:469
Symbol 467 GraphicUsed by:469
Symbol 468 MovieClipUses:463Used by:469
Symbol 469 MovieClip {HelloWorld_fla.LOGOPRELOAD_7_34}Uses:381 462 383 384 386 387 463 389 390 391 392 393 394 395 413 396 464 465 399 466 401 402 467 404 468 406 407 408 409Used by:477
Symbol 470 MovieClipUses:355 357 359 361 363 365 367 368 369 371 373 375 376 378Used by:477
Symbol 471 GraphicUsed by:476
Symbol 472 GraphicUsed by:476
Symbol 473 GraphicUsed by:476
Symbol 474 GraphicUsed by:475
Symbol 475 MovieClipUses:474Used by:476
Symbol 476 MovieClip {HelloWorld_fla.LOGOEND_37}Uses:381 407 471 472 473 475 SS1Used by:477
Symbol 477 MovieClip {HelloWorld_fla.THEPRELOADER_1}Uses:379 410 421 429 437 445 453 461 469 470 476Used by:Timeline
Symbol 478 GraphicUsed by:483
Symbol 479 BitmapUsed by:480
Symbol 480 GraphicUses:479Used by:483
Symbol 481 BitmapUsed by:482
Symbol 482 GraphicUses:481Used by:483
Symbol 483 MovieClip {backgroundmc}Uses:478 480 482Used by:546
Symbol 484 BitmapUsed by:485
Symbol 485 GraphicUses:484Used by:497
Symbol 486 GraphicUsed by:487
Symbol 487 ButtonUses:486 36Used by:497
Symbol 488 GraphicUsed by:489
Symbol 489 ButtonUses:488 36Used by:497
Symbol 490 GraphicUsed by:491
Symbol 491 ButtonUses:490 36Used by:497
Symbol 492 BitmapUsed by:493
Symbol 493 GraphicUses:492Used by:494
Symbol 494 ButtonUses:493Used by:497
Symbol 495 GraphicUsed by:497
Symbol 496 TextUses:4Used by:497
Symbol 497 MovieClip {menumc}Uses:485 487 489 491 494 495 496Used by:546
Symbol 498 BitmapUsed by:499
Symbol 499 GraphicUses:498Used by:521
Symbol 500 GraphicUsed by:504
Symbol 501 GraphicUsed by:504
Symbol 502 GraphicUsed by:504
Symbol 503 GraphicUsed by:504
Symbol 504 ButtonUses:6 500 501 36 502 503Used by:521
Symbol 505 EditableTextUses:4 333Used by:521
Symbol 506 GraphicUsed by:507
Symbol 507 ButtonUses:506Used by:521
Symbol 508 EditableTextUses:4 333Used by:521
Symbol 509 TextUses:53Used by:510
Symbol 510 ButtonUses:52 509Used by:521
Symbol 511 TextUses:4Used by:521
Symbol 512 EditableTextUses:4 333Used by:521
Symbol 513 GraphicUsed by:516
Symbol 514 TextUses:4Used by:516
Symbol 515 TextUses:4Used by:516
Symbol 516 ButtonUses:513 514 515Used by:521
Symbol 517 TextUses:4Used by:521
Symbol 518 TextUses:4Used by:521
Symbol 519 GraphicUsed by:520
Symbol 520 MovieClipUses:519Used by:521
Symbol 521 MovieClip {selectmc}Uses:499 504 505 507 508 510 511 512 516 517 518 520Used by:546
Symbol 522 BitmapUsed by:523
Symbol 523 GraphicUses:522Used by:524
Symbol 524 MovieClipUses:523Used by:532
Symbol 525 EditableTextUses:1Used by:532
Symbol 526 EditableTextUses:1Used by:532
Symbol 527 GraphicUsed by:528
Symbol 528 MovieClipUses:527Used by:532
Symbol 529 GraphicUsed by:530
Symbol 530 ButtonUses:529Used by:531
Symbol 531 MovieClipUses:530Used by:532
Symbol 532 MovieClip {m_btn}Uses:524 222 525 526 142 528 531Used by:546
Symbol 533 Sound {zv1}Used by:546
Symbol 534 Sound {zv2}Used by:546
Symbol 535 Sound {zv3}Used by:546
Symbol 536 Sound {zv4}Used by:546
Symbol 537 Sound {zv5}Used by:546
Symbol 538 Sound {zv6}Used by:546
Symbol 539 Sound {zv7}Used by:546
Symbol 540 Sound {zv8}Used by:546
Symbol 541 Sound {zv9}Used by:546
Symbol 542 Sound {zv10}Used by:546
Symbol 543 Sound {zvmus2}Used by:546
Symbol 544 Sound {zv11}Used by:546
Symbol 545 Sound {zv12}Used by:546
Symbol 546 MovieClip {HelloWorld_fla.allall_40}Uses:119 483 497 521 532 533 534 535 536 537 538 539 540 541 542 543 544 545Used by:Timeline
Streaming Sound 1Used by:Symbol 476 MovieClip {HelloWorld_fla.LOGOEND_37}

Instance Names

"fText"Symbol 18 MovieClip Frame 1Symbol 5 EditableText
"fBar"Symbol 18 MovieClip Frame 1Symbol 7 MovieClip
"b1"Symbol 18 MovieClip Frame 1Symbol 9 Button
"playy"Symbol 18 MovieClip Frame 1Symbol 12 Button
"bl"Symbol 18 MovieClip Frame 1Symbol 17 MovieClip
"aw1"Symbol 56 MovieClip {awardmc} Frame 1Symbol 25 MovieClip
"aw2"Symbol 56 MovieClip {awardmc} Frame 1Symbol 26 MovieClip
"aw3"Symbol 56 MovieClip {awardmc} Frame 1Symbol 27 MovieClip
"menubtn"Symbol 56 MovieClip {awardmc} Frame 1Symbol 37 Button
"aw4"Symbol 56 MovieClip {awardmc} Frame 1Symbol 38 MovieClip
"aw5"Symbol 56 MovieClip {awardmc} Frame 1Symbol 39 MovieClip
"aw6"Symbol 56 MovieClip {awardmc} Frame 1Symbol 41 MovieClip
"aw7"Symbol 56 MovieClip {awardmc} Frame 1Symbol 43 MovieClip
"aw8"Symbol 56 MovieClip {awardmc} Frame 1Symbol 45 MovieClip
"mfz"Symbol 56 MovieClip {awardmc} Frame 1Symbol 55 Button
"loadBar"Symbol 132 MovieClip {loadermmc} Frame 1Symbol 99 MovieClip
"loadLeft"Symbol 132 MovieClip {loadermmc} Frame 1Symbol 106 EditableText
"sitelink"Symbol 132 MovieClip {loadermmc} Frame 1Symbol 120 Button
"playB"Symbol 132 MovieClip {loadermmc} Frame 21Symbol 131 Button
"playB"Symbol 132 MovieClip {loadermmc} Frame 40Symbol 131 Button
"medal"Symbol 186 MovieClip {medal_pan} Frame 1Symbol 185 MovieClip {medalmc}
"cannonUser"Symbol 219 MovieClip {HelloWorld_fla.zooka_mov_108} Frame 1Symbol 218 MovieClip
"flame"Symbol 233 MovieClip {HelloWorld_fla.fire_112} Frame 1Symbol 230 MovieClip
"eyeL"Symbol 238 MovieClip {HelloWorld_fla.chasti_pushki_110} Frame 1Symbol 222 MovieClip
"userCannon"Symbol 238 MovieClip {HelloWorld_fla.chasti_pushki_110} Frame 1Symbol 227 MovieClip
"fire"Symbol 238 MovieClip {HelloWorld_fla.chasti_pushki_110} Frame 1Symbol 233 MovieClip {HelloWorld_fla.fire_112}
"shh"Symbol 238 MovieClip {HelloWorld_fla.chasti_pushki_110} Frame 1Symbol 237 MovieClip
"chasti"Symbol 239 MovieClip {zooka} Frame 1Symbol 238 MovieClip {HelloWorld_fla.chasti_pushki_110}
"mmbtn"Symbol 336 MovieClip {menupan} Frame 1Symbol 324 Button
"lvltxt"Symbol 336 MovieClip {menupan} Frame 1Symbol 325 EditableText
"scoretxt"Symbol 336 MovieClip {menupan} Frame 1Symbol 326 EditableText
"resbtn"Symbol 336 MovieClip {menupan} Frame 1Symbol 328 Button
"mfz"Symbol 336 MovieClip {menupan} Frame 1Symbol 332 Button
"mfzg"Symbol 336 MovieClip {menupan} Frame 1Symbol 335 Button
"scoretxt"Symbol 347 MovieClip {panelnext} Frame 1Symbol 343 EditableText
"playbtn"Symbol 497 MovieClip {menumc} Frame 1Symbol 487 Button
"amb"Symbol 497 MovieClip {menumc} Frame 1Symbol 489 Button
"smb"Symbol 497 MovieClip {menumc} Frame 1Symbol 491 Button
"mfz"Symbol 497 MovieClip {menumc} Frame 1Symbol 494 Button
"menubtn"Symbol 521 MovieClip {selectmc} Frame 1Symbol 504 Button
"scoretxt"Symbol 521 MovieClip {selectmc} Frame 1Symbol 505 EditableText
"mt1"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt2"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt3"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt4"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt5"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt6"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt7"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt8"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt9"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt10"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt11"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt12"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt13"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt14"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt15"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt16"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt17"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt18"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt19"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt20"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt21"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt22"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt23"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt24"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt25"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt26"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt27"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt28"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt29"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"mt30"Symbol 521 MovieClip {selectmc} Frame 1Symbol 507 Button
"lvltxt"Symbol 521 MovieClip {selectmc} Frame 1Symbol 508 EditableText
"mfz"Symbol 521 MovieClip {selectmc} Frame 1Symbol 510 Button
"nametext"Symbol 521 MovieClip {selectmc} Frame 1Symbol 512 EditableText
"subbtn"Symbol 521 MovieClip {selectmc} Frame 1Symbol 516 Button
"str"Symbol 532 MovieClip {m_btn} Frame 1Symbol 524 MovieClip
"leveltxt"Symbol 532 MovieClip {m_btn} Frame 1Symbol 525 EditableText
"scoretxt"Symbol 532 MovieClip {m_btn} Frame 1Symbol 526 EditableText
"pov"Symbol 532 MovieClip {m_btn} Frame 1Symbol 142 MovieClip

Special Tags

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




http://swfchan.com/27/130562/info.shtml
Created: 22/2 -2019 03:43:13 Last modified: 22/2 -2019 03:43:13 Server time: 08/05 -2024 17:48:20