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

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

Lizard Cannon.swf

This is the info page for
Flash #212952

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


Text
Loading...

MORE GAMES

MORE GAMES

MORE GAMES

MORE GAMES

score: 2468

Yeah!

click to continue...

shots: 33

level 18

score 1000

RESTART

MENU

shots 999

>>

<<

<p align="right"><font face="Arial Narrow" 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"><b>Загрузка...</b></font></p>

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

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

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

Play

Play

Getting 20000 scores!

Destroy 300 nuts!

Finish 14th level for 3 shoots!

Finish 21th level for 3 shoots!

8 Level Complete!

All level complete!

100 squirrel launched!

Getting 50000 scores!

Get and Save you Achievements @

Click the left mouse button for shot.
break all the bottles.

This icon changes to gravity.

<p align="left"><font face="Tahoma" size="0" color="#006600" letterSpacing="0.000000" kerning="1"><b>уровень 23: 2462</b></font></p>

Lizard Cannon

PLAY

PLAY

PLAY

PLAY

MORE GAMES

MORE GAMES

MORE GAMES

MORE GAMES

all score: 012345

level 23: 2462

all shots: 0123456

shots: 2462

MORE
GAMES

1

1324

ActionScript [AS3]

Section 1
//eNum (barra.eNum) package barra { import flash.utils.*; public class eNum { private var nXor1:int; private var nXor2:int; private var nValue1:int; private var nValue2:int; private var byteArray:ByteArray; public function eNum(_arg1:Number=0){ byteArray = new ByteArray(); nValue1 = 0; nValue2 = 0; nXor1 = ((Math.random() - 0.5) * 4294967296); nXor2 = ((Math.random() - 0.5) * 4294967296); val = _arg1; } public function set val(_arg1:Number):void{ byteArray.position = 0; byteArray.writeDouble(_arg1); byteArray.position = 0; nValue1 = (byteArray.readInt() ^ nXor1); nValue2 = (byteArray.readInt() ^ nXor2); } public function get val():Number{ byteArray.position = 0; byteArray.writeInt((nValue1 ^ nXor1)); byteArray.writeInt((nValue2 ^ nXor2)); byteArray.position = 0; return (byteArray.readDouble()); } } }//package barra
Section 2
//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 3
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_localPosition:b2Vec2; public var m_radius:Number; public function b2CircleShape(_arg1:b2ShapeDef){ m_localPosition = new b2Vec2(); super(_arg1); var _local2:b2CircleDef = (_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 = _arg1.R; var _local4:Number = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local10:Number; var _local6:b2Mat22 = _arg1.R; var _local7:Number = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); var _local8:Number = (_arg1.position.y + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); var _local9:Number = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); var _local11:Number = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; var _local12:Number = (_arg4.p2.x - _arg4.p1.x); var _local13:Number = (_arg4.p2.y - _arg4.p1.y); var _local14:Number = ((_local9 * _local12) + (_local10 * _local13)); var _local15:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local16:Number = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; var _local17:Number = -((_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 ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22 = _arg2.R; var _local4:Number = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; _local4 = _arg2.R; var _local5:Number = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local6:Number = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; var _local7:Number = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local8:Number = (_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)); } 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)))); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } public function GetRadius():Number{ return (m_radius); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number = (m_localPosition.x - _arg1.x); var _local3:Number = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } } }//package Box2D.Collision.Shapes
Section 4
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { public class b2FilterData { public var categoryBits:uint;// = 1 public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public function Copy():b2FilterData{ var _local1:b2FilterData = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 5
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ center = new b2Vec2(0, 0); super(); } } }//package Box2D.Collision.Shapes
Section 6
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertices:Array; public var vertexCount:int; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; var _local1:int; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } 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); } 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++; }; }; } } }//package Box2D.Collision.Shapes
Section 7
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { private var s_supportVec:b2Vec2; public var m_centroid:b2Vec2; public var m_obb:b2OBB; public var m_vertices:Array; public var m_normals:Array; public var m_coreVertices:Array; 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 _local3: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; var _local2:b2PolygonDef = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; var _local4:int = _local3; var _local5:int = _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 _local10:Number; var _local4:b2Mat22 = _arg1.R; var _local5:Number = (_arg2.x - _arg1.position.x); var _local6:Number = (_arg2.y - _arg1.position.y); var _local7:Number = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); var _local8:Number = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); var _local9:int; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local20:Number; var _local21:Number; var _local6:Number = 0; var _local7:Number = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; var _local12:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local13:Number = ((_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; var _local14:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local15:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); var _local18 = -1; var _local19:int; 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); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22 = 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(); var _local6:b2Mat22 = _local5; _local4 = m_obb.extents; var _local7:Number = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); var _local8:Number = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; var _local9:Number = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); var _local10:Number = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB = s_sweptAABB1; var _local5:b2AABB = 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); } override public function ComputeMass(_arg1:b2MassData):void{ 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; var _local2:Number = 0; var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; var _local7:Number = 0; var _local8:Number = (1 / 3); var _local9:int; 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 GetOBB():b2OBB{ return (m_obb); } public function GetCentroid():b2Vec2{ return (m_centroid); } public function GetVertexCount():int{ return (m_vertexCount); } public function GetVertices():Array{ return (m_vertices); } public function GetCoreVertices():Array{ return (m_coreVertices); } public function GetNormals():Array{ return (m_normals); } 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)); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local11:Number; _local5 = _arg1.R; var _local6:Number = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); var _local7:Number = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); var _local8:int; _local4 = m_coreVertices[0]; var _local9:Number = ((_local4.x * _local6) + (_local4.y * _local7)); var _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); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local4:Number; var _local5:Number; m_sweepRadius = 0; var _local3:int; 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++; }; } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local7:Number; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; _local7 = (1 / 3); var _local8:int; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; var _local5:Array = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; var _local6:Number = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 8
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2Shape { public var m_type:int; public var m_next:b2Shape; public var m_body:b2Body; public var m_sweepRadius:Number; public var m_density:Number; public var m_friction:Number; public var m_restitution:Number; public var m_proxyId:uint; public var m_filter:b2FilterData; public var m_isSensor:Boolean; public var m_userData; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_polygonShape:int = 1; public static const e_shapeTypeCount:int = 2; private static var s_proxyAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_resetAABB: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 GetType():int{ return (m_type); } public function IsSensor():Boolean{ return (m_isSensor); } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function GetBody():b2Body{ return (m_body); } public function GetNext():b2Shape{ return (m_next); } public function GetUserData(){ return (m_userData); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function ComputeMass(_arg1:b2MassData):void{ } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetFriction():Number{ return (m_friction); } public function GetRestitution():Number{ return (m_restitution); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB = s_proxyAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; var _local4:b2AABB = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); var _local3:b2AABB = s_resetAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):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); }; } public static function Destroy(_arg1:b2Shape, _arg2):void{ } } }//package Box2D.Collision.Shapes
Section 9
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var type:int; public var userData;// = null public var friction:Number;// = 0.2 public var restitution:Number;// = 0 public var density:Number;// = 0 public var isSensor:Boolean;// = false public var filter:b2FilterData; public function b2ShapeDef(){ type = b2Shape.e_unknownShape; filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 10
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var lowerBound:b2Vec2; public var upperBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number = (upperBound.x - lowerBound.x); var _local2:Number = (upperBound.y - lowerBound.y); var _local3:Boolean = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 11
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var value:uint; public var proxyId:uint; public var stabbingCount:uint; public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } public function Swap(_arg1:b2Bound):void{ var _local2:uint = value; var _local3:uint = proxyId; var _local4:uint = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } } }//package Box2D.Collision
Section 12
//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 13
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_pairManager:b2PairManager; public var m_proxyPool:Array; public var m_freeProxy:uint; public var m_bounds:Array; public var m_queryResults:Array; public var m_queryResultCount:int; public var m_worldAABB:b2AABB; public var m_quantizationFactor:b2Vec2; public var m_proxyCount:int; public var m_timeStamp:uint; public static const b2_invalid:uint = b2Settings.USHRT_MAX; public static const b2_nullEdge:uint = b2Settings.USHRT_MAX; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; 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++; }; var _local4:Number = (_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 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 GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy = m_proxyPool[_arg1]; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){ return (null); }; return (_local2); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; 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; var _local5:uint = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; var _local6:uint = (2 * m_proxyCount); var _local7:Array = new Array(); var _local8:Array = new Array(); ComputeBounds(_local7, _local8, _arg1); var _local9:int; 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++; var _local10:int; 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 _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; var _local4:b2Proxy = m_proxyPool[_arg1]; var _local5:int = (2 * m_proxyCount); var _local6:int; 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++; }; var _local7:int; 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 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 _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; }; var _local12:uint = (2 * m_proxyCount); var _local13:b2Proxy = m_proxyPool[_arg1]; var _local14:b2BoundValues = new b2BoundValues(); ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2); var _local15:b2BoundValues = 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 function Commit():void{ m_pairManager.Commit(); } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local6:uint; var _local7:uint; var _local12:b2Proxy; var _local4:Array = new Array(); var _local5:Array = new Array(); ComputeBounds(_local4, _local5, _arg1); var _local8:Array = [_local6]; var _local9:Array = [_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); var _local10:int; var _local11:int; 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 Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local5:int; 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 ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number = _arg3.lowerBound.x; var _local5:Number = _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); var _local6:Number = _arg3.upperBound.x; var _local7:Number = _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); } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local3:int; 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); } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local10:b2Bound; var _local12:int; var _local13:int; var _local14:b2Proxy; var _local8:uint = BinarySearch(_arg5, _arg6, _arg3); var _local9:uint = BinarySearch(_arg5, _arg6, _arg4); var _local11:uint = _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 IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy = 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++; }; } 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++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local6:int; var _local7:b2Bound; var _local4:int; var _local5:int = (_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 14
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 15
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function 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 _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); var _local10:Number = (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 EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local11:b2Mat22; var _local12:b2Vec2; var _local25:Number; var _local6:int = _arg1.m_vertexCount; var _local7:Array = _arg1.m_vertices; var _local8:Array = _arg1.m_normals; var _local9:int = _arg4.m_vertexCount; var _local10:Array = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; var _local13:Number = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); var _local14:Number = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; var _local15:Number = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); var _local16:Number = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; var _local20:Number = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local21:Number = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; var _local22:Number = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local23:Number = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); var _local24:Number = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local8:b2Vec2; var _local9:b2Mat22; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; var _local6:int = _arg2.m_vertexCount; var _local7:Array = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; var _local10:Number = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); var _local11:Number = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); var _local12:Number = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); var _local13:Number = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); var _local14:int; var _local15:Number = -(Number.MAX_VALUE); var _local16:int; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; var _local17:Number = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; var _local18:int = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); var _local19:Number = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; var _local20:int = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; var _local21:Number = 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 FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local12:b2Mat22; var _local13:b2Vec2; var _local20:ClipVertex; var _local23:Number; var _local7:int = _arg2.m_vertexCount; var _local8:Array = _arg2.m_normals; var _local9:int = _arg5.m_vertexCount; var _local10:Array = _arg5.m_vertices; var _local11:Array = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; var _local14:Number = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); var _local15:Number = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; var _local16:Number = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; var _local21:int = _local17; var _local22:int = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local17:int; var _local18:uint; var _local34:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; var _local7:int; var _local8:Array = [_local7]; var _local9:Number = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; var _local10:int; var _local11:Array = [_local10]; var _local12:Number = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; var _local15:b2XForm = new b2XForm(); var _local16:b2XForm = new b2XForm(); var _local19:Number = 0.98; var _local20:Number = 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; }; var _local21:Array = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); var _local22:int = _local13.m_vertexCount; var _local23:Array = _local13.m_vertices; var _local24:b2Vec2 = _local23[_local17]; var _local25:b2Vec2 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; var _local26:b2Vec2 = b2Math.SubtractVV(_local37, _local25); var _local27:b2Vec2 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); var _local28:b2Vec2 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); var _local29:Number = b2Math.b2Dot(_local28, _local25); var _local30:Number = -(b2Math.b2Dot(_local27, _local25)); var _local31:Number = b2Math.b2Dot(_local27, _local37); var _local32:Array = [new ClipVertex(), new ClipVertex()]; var _local33:Array = [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(); var _local35:int; var _local36:int; 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 b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local18:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; var _local8:Number = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local9:Number = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; var _local10:Number = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local11:Number = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); var _local12:Number = (_local10 - _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local15:Number = _arg2.m_radius; var _local16:Number = _arg4.m_radius; var _local17:Number = (_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; var _local19:b2ManifoldPoint = _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)); var _local20:Number = (0.5 * (_local8 + _local10)); var _local21:Number = (0.5 * (_local9 + _local11)); var _local22:Number = (_local20 - _arg3.position.x); var _local23:Number = (_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 _local17:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; var _local13:Number = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); var _local14:Number = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; var _local15:Number = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); var _local16:Number = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); var _local18:int; var _local19:Number = -(Number.MAX_VALUE); var _local20:Number = _arg4.m_radius; var _local21:int = _arg2.m_vertexCount; var _local22:Array = _arg2.m_vertices; var _local23:Array = _arg2.m_normals; var _local24:int; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _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; }; var _local25:int = _local18; var _local26:int = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; var _local27:b2Vec2 = _local22[_local26]; var _local28:Number = (_local27.x - _local11.x); var _local29:Number = (_local27.y - _local11.y); var _local30:Number = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); var _local31:Number = ((_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; } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2 = _arg2.lowerBound; var _local4:b2Vec2 = _arg1.upperBound; var _local5:Number = (_local3.x - _local4.x); var _local6:Number = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; var _local7:Number = (_local3.x - _local4.x); var _local8:Number = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } } }//package Box2D.Collision
Section 16
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var features:Features; public var _key:uint; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID = new b2ContactID(); _local1.key = key; return (_local1); } public function get key():uint{ return (_key); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } } }//package Box2D.Collision
Section 17
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2ContactPoint { public var shape1:b2Shape; public var shape2:b2Shape; public var position:b2Vec2; public var velocity:b2Vec2; public var normal:b2Vec2; public var separation:Number; public var friction:Number; public var restitution:Number; public var id:b2ContactID; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 18
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Distance { private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p2s: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 ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local17:Number; var _local6:b2Vec2 = _arg5[0]; var _local7:b2Vec2 = _arg5[1]; var _local8:b2Vec2 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; var _local12:Number = -(_local7.x); var _local13:Number = -(_local7.y); var _local14:Number = (_local6.x - _local7.x); var _local15:Number = (_local6.y - _local7.y); var _local16:Number = 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); } 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 _local35: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]; var _local14:b2Vec2 = _arg4[2]; var _local15:Number = _local6.x; var _local16:Number = _local6.y; var _local17:Number = _local7.x; var _local18:Number = _local7.y; var _local19:Number = _local8.x; var _local20:Number = _local8.y; var _local21:Number = (_local17 - _local15); var _local22:Number = (_local18 - _local16); var _local23:Number = (_local19 - _local15); var _local24:Number = (_local20 - _local16); var _local25:Number = (_local19 - _local17); var _local26:Number = (_local20 - _local18); var _local27:Number = -(((_local15 * _local21) + (_local16 * _local22))); var _local28:Number = ((_local17 * _local21) + (_local18 * _local22)); var _local29:Number = -(((_local15 * _local23) + (_local16 * _local24))); var _local30:Number = ((_local19 * _local23) + (_local20 * _local24)); var _local31:Number = -(((_local17 * _local25) + (_local18 * _local26))); var _local32:Number = ((_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); }; var _local33:Number = ((_local21 * _local24) - (_local22 * _local23)); var _local34:Number = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); var _local36:Number = (_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); }; var _local37:Number = (_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); }; var _local38:Number = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); var _local39:Number = (_local36 * _local38); var _local40:Number = (_local37 * _local38); var _local41:Number = ((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 InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local4:Number = (100 * Number.MIN_VALUE); var _local5:int; 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 _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; var _local8:Array = s_p1s; var _local9:Array = s_p2s; var _local10:Array = s_points; var _local11:int; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); var _local12:Number = 0; var _local13 = 20; var _local14:int; 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 _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; var _local9:Number = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local10:Number = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; var _local11:Number = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local12:Number = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:Number = ((_local13 * _local13) + (_local14 * _local14)); var _local16:Number = (_arg3.m_radius - b2Settings.b2_toiSlop); var _local17:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); var _local18:Number = (_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 DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local9:b2Point = 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))); var _local10:Number = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); var _local11:Number = (_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 = _arg3.m_type; var _local8:int = _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); } } }//package Box2D.Collision
Section 19
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var points:Array; public var normal:b2Vec2; public var pointCount:int;// = 0 public function b2Manifold(){ points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Reset():void{ var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } public function Set(_arg1:b2Manifold):void{ pointCount = _arg1.pointCount; var _local2:int; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } } }//package Box2D.Collision
Section 20
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var localPoint1:b2Vec2; public var localPoint2:b2Vec2; public var separation:Number; public var normalImpulse:Number; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalImpulse = 0; tangentImpulse = 0; id.key = 0; } 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; } } }//package Box2D.Collision
Section 21
//b2OBB (Box2D.Collision.b2OBB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2OBB { public var R:b2Mat22; public var center:b2Vec2; public var extents:b2Vec2; public function b2OBB(){ R = new b2Mat22(); center = new b2Vec2(); extents = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 22
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var userData;// = null public var proxyId1:uint; public var proxyId2:uint; public var next:uint; public var status:uint; public static var b2_nullPair:uint = b2Settings.USHRT_MAX; public static var b2_nullProxy:uint = b2Settings.USHRT_MAX; public static var b2_tableCapacity:int = b2Settings.b2_maxPairs; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairBuffered:uint = 1; public static var e_pairRemoved:uint = 2; public static var e_pairFinal:uint = 4; public function SetBuffered():void{ status = (status | e_pairBuffered); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } } }//package Box2D.Collision
Section 23
//b2PairCallback (Box2D.Collision.b2PairCallback) package Box2D.Collision { public class b2PairCallback { public function PairAdded(_arg1, _arg2){ return (null); } public function PairRemoved(_arg1, _arg2, _arg3):void{ } } }//package Box2D.Collision
Section 24
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PairManager { public var m_broadPhase:b2BroadPhase; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_freePair:uint; public var m_pairCount:int; public var m_pairBuffer:Array; public var m_pairBufferCount:int; public var m_hashTable:Array; 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; } 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 = 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(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = 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(); }; } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; var _local3:int; var _local4:Array = 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(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; var _local5:uint = 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 RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; var _local4:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local5:uint = m_hashTable[_local4]; var _local6:b2Pair; 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); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:b2Pair; var _local5:uint = 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 ValidateBuffer():void{ } private function ValidateTable():void{ } public static function Hash(_arg1:uint, _arg2:uint):uint{ var _local3:uint = (((_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)))); } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } } }//package Box2D.Collision
Section 25
//b2Point (Box2D.Collision.b2Point) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Point { public var p:b2Vec2; public function b2Point(){ p = new b2Vec2(); super(); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 26
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var lowerBounds:Array; public var upperBounds:Array; public var overlapCount:uint; public var timeStamp:uint; public var userData;// = null public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } } }//package Box2D.Collision
Section 27
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; 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 _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local5:b2Vec2 = _arg3.p1; var _local6:Number = (_arg3.p2.x - _local5.x); var _local7:Number = (_arg3.p2.y - _local5.y); var _local8:Number = (p2.x - p1.x); var _local9:Number = (p2.y - p1.y); var _local10:Number = _local9; var _local11:Number = -(_local8); var _local12:Number = (100 * Number.MIN_VALUE); var _local13:Number = -(((_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 28
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local7:Number = _arg1.m_sweepRadius; var _local8:Number = _arg3.m_sweepRadius; var _local9:Number = _arg2.t0; var _local10:Number = (_arg2.c.x - _arg2.c0.x); var _local11:Number = (_arg2.c.y - _arg2.c0.y); var _local12:Number = (_arg4.c.x - _arg4.c0.x); var _local13:Number = (_arg4.c.y - _arg4.c0.y); var _local14:Number = (_arg2.a - _arg2.a0); var _local15:Number = (_arg4.a - _arg4.a0); var _local16:Number = 0; var _local17:b2Vec2 = s_p1; var _local18:b2Vec2 = s_p2; var _local19 = 20; var _local20:int; var _local21:Number = 0; var _local22:Number = 0; var _local23:Number = 0; var _local24:Number = 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 29
//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 30
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceEdge:int; public var _incidentEdge:int; public var _incidentVertex:int; public var _flip:int; public var _m_id:b2ContactID; public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } public function get incidentEdge():int{ return (_incidentEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function get flip():int{ return (_flip); } } }//package Box2D.Collision
Section 31
//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 Set(_arg1:Number):void{ var _local2:Number; _local2 = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } 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 SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local4:Number; var _local6:Number; _local2 = col1.x; var _local3:Number = col2.x; _local4 = col1.y; var _local5:Number = 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 Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number = col1.x; var _local5:Number = col2.x; var _local6:Number = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } public function Abs():void{ col1.Abs(); col2.Abs(); } } }//package Box2D.Common.Math
Section 32
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); 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 function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); 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 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 AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); var _local4:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); var _local5:b2Mat22 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:* = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); 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 b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } } }//package Box2D.Common.Math
Section 33
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var c0:b2Vec2; public var c:b2Vec2; public var a0:Number; public var a:Number; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ 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); }; var _local3:b2Mat22 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } public function 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; }; } } }//package Box2D.Common.Math
Section 34
//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 SetZero():void{ x = 0; y = 0; } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function MulM(_arg1:b2Mat22):void{ var _local2:Number = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function CrossVF(_arg1:Number):void{ var _local2:Number = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function CrossFV(_arg1:Number):void{ var _local2:Number = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.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 Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function Normalize():Number{ var _local1:Number = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; var _local2:Number = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 35
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var position:b2Vec2; public var R:b2Mat22; 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 SetIdentity():void{ position.SetZero(); R.SetIdentity(); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } } }//package Box2D.Common.Math
Section 36
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _r:uint;// = 0 private var _g:uint;// = 0 private var _b:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = uint((0xFF * b2Math.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 set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function get color():uint{ return (((_r | (_g << 8)) | (_b << 16))); } } }//package Box2D.Common
Section 37
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const USHRT_MAX:int = 0xFFFF; public static const b2_pi:Number = 3.14159265358979; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxPolygonVertices:int = 8; public static const b2_maxProxies:int = 0x0200; public static const b2_maxPairs:int = 4096; public static const b2_linearSlop:Number = 0.005; public static const b2_angularSlop:Number = 0.0349065850398866; public static const b2_toiSlop:Number = 0.04; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_velocityThreshold:Number = 1; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const b2_maxLinearVelocity:Number = 200; public static const b2_maxLinearVelocitySquared:Number = 40000; public static const b2_maxAngularVelocity:Number = 250; public static const b2_maxAngularVelocitySquared:Number = 62500; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_timeToSleep:Number = 0.5; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_angularSleepTolerance:Number = 0.0111111111111111; public static function b2Assert(_arg1:Boolean):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 38
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local8:b2ManifoldPoint; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = 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); var _local7:b2ContactPoint = 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); }; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } } }//package Box2D.Dynamics.Contacts
Section 39
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Contact { public var m_flags:uint; public var m_prev:b2Contact; public var m_next:b2Contact; public var m_node1:b2ContactEdge; public var m_node2:b2ContactEdge; public var m_shape1:b2Shape; public var m_shape2:b2Shape; public var m_manifoldCount:int; public var m_friction:Number; public var m_restitution:Number; public var m_toi:Number; public static var e_nonSolidFlag:uint = 1; public static var e_slowFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var e_toiFlag:uint = 8; 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 GetManifolds():Array{ return (null); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetNext():b2Contact{ return (m_next); } public function GetShape1():b2Shape{ return (m_shape1); } public function GetShape2():b2Shape{ return (m_shape2); } public function Update(_arg1:b2ContactListener):void{ var _local2:int = m_manifoldCount; Evaluate(_arg1); var _local3:int = m_manifoldCount; var _local4:b2Body = m_shape1.m_body; var _local5:b2Body = 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 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 InitializeRegisters():void{ var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); var _local1:int; 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 Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; var _local4:int = _arg1.m_type; var _local5:int = _arg2.m_type; var _local6:b2ContactRegister = s_registers[_local4][_local5]; var _local7:Function = _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); } public static function Destroy(_arg1:b2Contact, _arg2):void{ if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; var _local3:int = _arg1.m_shape1.m_type; var _local4:int = _arg1.m_shape2.m_type; var _local5:b2ContactRegister = s_registers[_local3][_local4]; var _local6:Function = _local5.destroyFcn; _local6(_arg1, _arg2); } } }//package Box2D.Dynamics.Contacts
Section 40
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var normal:b2Vec2; public var manifold:b2Manifold; public var body1:b2Body; public var body2:b2Body; public var friction:Number; public var restitution:Number; public var pointCount:int; public function b2ContactConstraint(){ normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 41
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var r1:b2Vec2; public var r2:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var positionImpulse:Number; public var normalMass:Number; public var tangentMass:Number; public var equalizedMass:Number; public var separation:Number; public var velocityBias:Number; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 42
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var other:b2Body; public var contact:b2Contact; public var prev:b2ContactEdge; public var next:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 43
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var createFcn:Function; public var destroyFcn:Function; public var primary:Boolean; } }//package Box2D.Dynamics.Contacts
Section 44
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2ContactResult { public var shape1:b2Shape; public var shape2:b2Shape; public var position:b2Vec2; public var normal:b2Vec2; 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 45
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2ContactSolver { public var m_step:b2TimeStep; public var m_allocator; public var m_constraints:Array; public var m_constraintCount:int; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; 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++; }; var _local9:int; _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 _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.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 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 _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; var _local19:int; 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 _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; var _local1:int; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local3:b2Mat22; var _local4:b2Vec2; 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; var _local2:Number = 0; var _local5:int; 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))); } } }//package Box2D.Dynamics.Contacts
Section 46
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function Evaluate(_arg1:b2ContactListener):void{ } override public function GetManifolds():Array{ return (null); } } }//package Box2D.Dynamics.Contacts
Section 47
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local6:b2Body = m_shape1.m_body; var _local7:b2Body = 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); var _local8:Array = [false, false]; var _local9:b2ContactPoint = 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++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } } }//package Box2D.Dynamics.Contacts
Section 48
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2PolygonContact extends b2Contact { private var m0:b2Manifold; private var m_manifolds:Array; 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 Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local7:b2ContactPoint; var _local8:int; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = 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); var _local9:Array = [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++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } } }//package Box2D.Dynamics.Contacts
Section 49
//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_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_u:b2Vec2; public var m_frequencyHz:Number; public var m_dampingRatio:Number; public var m_gamma:Number; public var m_bias:Number; public var m_impulse:Number; public var m_mass: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 InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local8: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); var _local7:Number = (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); var _local9:Number = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); var _local10:Number = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; var _local11:Number = ((_local6 * m_u.y) - (_local7 * m_u.x)); var _local12:Number = ((_local8 * m_u.y) - (_local9 * m_u.x)); var _local13:Number = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (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 SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; _local2 = _local3.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local7:Number = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); var _local11:Number = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); var _local12:Number = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); var _local13:Number = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); var _local14:Number = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); var _local15:Number = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); var _local16:Number = (_local15 * m_u.x); var _local17:Number = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; if (m_frequencyHz > 0){ return (true); }; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local1 = _local2.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local8:Number = (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; var _local9:Number = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); var _local10:Number = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); var _local11:Number = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); var _local12:Number = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local13:Number = (-(m_mass) * _local12); m_u.Set(_local9, _local10); var _local14:Number = (_local13 * m_u.x); var _local15:Number = (_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 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 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function GetReactionTorque():Number{ return (0); } } }//package Box2D.Dynamics.Joints
Section 50
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2DistanceJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var length:Number; public var frequencyHz:Number; public var dampingRatio:Number; 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{ body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); var _local5:Number = (_arg4.x - _arg3.x); var _local6:Number = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.Joints
Section 51
//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_ground1:b2Body; public var m_ground2:b2Body; public var m_revolute1:b2RevoluteJoint; public var m_prismatic1:b2PrismaticJoint; public var m_revolute2:b2RevoluteJoint; public var m_prismatic2:b2PrismaticJoint; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_J:b2Jacobian; public var m_constant:Number; public var m_ratio:Number; public var m_mass:Number; public var m_force:Number; public function b2GearJoint(_arg1:b2GearJointDef){ var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); var _local2:int = _arg1.joint1.m_type; var _local3:int = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.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 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function GetReactionTorque():Number{ var _local1:b2Mat22 = m_body2.m_xf.R; var _local2:Number = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); var _local3:Number = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); var _local4:Number = ((_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 InitVelocityConstraints(_arg1:b2TimeStep):void{ 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 _local15:Number; var _local2:b2Body = m_ground1; var _local3:b2Body = m_ground2; var _local4:b2Body = m_body1; var _local5:b2Body = m_body2; var _local14:Number = 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 SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local5:Number = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); var _local6:Number = (_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)); } override public function SolvePositionConstraints():Boolean{ var _local4:Number; var _local5:Number; var _local1:Number = 0; var _local2:b2Body = m_body1; var _local3:b2Body = 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(); }; var _local6:Number = (m_constant - (_local4 + (m_ratio * _local5))); var _local7:Number = (-(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)); } } }//package Box2D.Dynamics.Joints
Section 52
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint1:b2Joint; public var joint2:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 53
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var angular1:Number; public var linear2:b2Vec2; public var angular2:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } 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 54
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2Joint { public var m_type:int; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_body1:b2Body; public var m_body2:b2Body; public var m_inv_dt:Number; public var m_islandFlag:Boolean; public var m_collideConnected:Boolean; public var m_userData; public static const e_unknownJoint:int = 0; public static const e_revoluteJoint:int = 1; public static const e_prismaticJoint:int = 2; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_mouseJoint:int = 5; public static const e_gearJoint:int = 6; public static const e_inactiveLimit:int = 0; public static const e_atLowerLimit:int = 1; public static const e_atUpperLimit:int = 2; public static const e_equalLimits:int = 3; 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 GetType():int{ return (m_type); } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function GetReactionForce():b2Vec2{ return (null); } public function GetReactionTorque():Number{ return (0); } public function GetBody1():b2Body{ return (m_body1); } public function GetBody2():b2Body{ return (m_body2); } public function GetNext():b2Joint{ return (m_next); } public function GetUserData(){ return (m_userData); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public function SolvePositionConstraints():Boolean{ return (false); } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } public static function Destroy(_arg1:b2Joint, _arg2):void{ } } }//package Box2D.Dynamics.Joints
Section 55
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var type:int; public var userData; public var body1:b2Body; public var body2:b2Body; public var collideConnected:Boolean; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 56
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var other:b2Body; public var joint:b2Joint; public var prev:b2JointEdge; public var next:b2JointEdge; } }//package Box2D.Dynamics.Joints
Section 57
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { private var K:b2Mat22; private var K1:b2Mat22; private var K2:b2Mat22; public var m_localAnchor:b2Vec2; public var m_target:b2Vec2; public var m_impulse:b2Vec2; public var m_mass:b2Mat22; public var m_C:b2Vec2; public var m_maxForce:Number; public var m_beta:Number; public var m_gamma:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local3: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); var _local2:Number = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); var _local4:b2Mat22 = 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(); var _local5:Number = m_body2.m_mass; var _local6:Number = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); var _local7:Number = (((2 * _local5) * _arg1.dampingRatio) * _local6); var _local8:Number = ((_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 GetReactionTorque():Number{ return (0); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local7:Number; var _local8: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); var _local6:Number = ((_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); var _local9:Number = (_arg1.dt * m_impulse.x); var _local10:Number = (_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 SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local2:b2Body = m_body2; _local3 = _local2.m_xf.R; var _local6:Number = (m_localAnchor.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; var _local8:Number = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); var _local9:Number = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _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)); var _local10:Number = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); var _local11:Number = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); var _local12:Number = m_impulse.x; var _local13:Number = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); var _local14:Number = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); var _local15:Number = (_arg1.dt * _local10); var _local16:Number = (_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)))); } override public function SolvePositionConstraints():Boolean{ return (true); } } }//package Box2D.Dynamics.Joints
Section 58
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var target:b2Vec2; public var maxForce:Number; public var frequencyHz:Number; public var dampingRatio:Number; 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 59
//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_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_localXAxis1:b2Vec2; public var m_localYAxis1:b2Vec2; public var m_refAngle:Number; public var m_linearJacobian:b2Jacobian; public var m_linearMass:Number; public var m_force:Number; public var m_angularMass:Number; public var m_torque:Number; public var m_motorJacobian:b2Jacobian; public var m_motorMass:Number; public var m_motorForce:Number; public var m_limitForce:Number; public var m_limitPositionImpulse:Number; public var m_lowerTranslation:Number; public var m_upperTranslation:Number; public var m_maxMotorForce:Number; public var m_motorSpeed:Number; public var m_enableLimit:Boolean; public var m_enableMotor:Boolean; public var m_limitState:int; 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)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22 = m_body1.m_xf.R; var _local2:Number = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); var _local3:Number = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); var _local4:Number = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); var _local5:Number = (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 GetReactionTorque():Number{ return (m_torque); } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } public function GetMotorForce():Number{ return (m_motorForce); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; _local4 = _local2.m_xf.R; var _local14:Number = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); var _local15:Number = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); var _local16:Number = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); var _local17:Number = ((_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; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local8:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = _local2.m_invMass; var _local5:Number = _local3.m_invMass; var _local6:Number = _local2.m_invI; var _local7:Number = _local3.m_invI; var _local9:Number = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local10:Number = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); var _local11:Number = (_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)); var _local12:Number = (_local3.m_angularVelocity - _local2.m_angularVelocity); var _local13:Number = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); var _local14:Number = (_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)); }; } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local9:b2Mat22; var _local10:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = _local3.m_invMass; var _local6:Number = _local4.m_invMass; var _local7:Number = _local3.m_invI; var _local8:Number = _local4.m_invI; _local9 = _local3.m_xf.R; var _local11:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local12:Number = (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; var _local13:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local14:Number = (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; var _local15:Number = (_local3.m_sweep.c.x + _local11); var _local16:Number = (_local3.m_sweep.c.y + _local12); var _local17:Number = (_local4.m_sweep.c.x + _local13); var _local18:Number = (_local4.m_sweep.c.y + _local14); var _local19:Number = (_local17 - _local15); var _local20:Number = (_local18 - _local16); _local9 = _local3.m_xf.R; var _local21:Number = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); var _local22:Number = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); var _local23:Number = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local24:Number = (-(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)); var _local25:Number = b2Math.b2Abs(_local23); var _local26:Number = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); var _local27:Number = (-(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(); var _local28:Number = 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)))); } } }//package Box2D.Dynamics.Joints
Section 60
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PrismaticJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var localAxis1:b2Vec2; public var referenceAngle:Number; public var enableLimit:Boolean; public var lowerTranslation:Number; public var upperTranslation:Number; public var enableMotor:Boolean; public var maxMotorForce:Number; public var motorSpeed: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 61
//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_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_u1:b2Vec2; public var m_u2:b2Vec2; public var m_constant:Number; public var m_ratio:Number; public var m_maxLength1:Number; public var m_maxLength2:Number; public var m_pulleyMass:Number; public var m_limitMass1:Number; public var m_limitMass2:Number; public var m_force:Number; public var m_limitForce1:Number; public var m_limitForce2:Number; public var m_positionImpulse:Number; public var m_limitPositionImpulse1:Number; public var m_limitPositionImpulse2:Number; public var m_state:int; public var m_limitState1:int; public var m_limitState2:int; 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; } 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 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function GetReactionTorque():Number{ return (0); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } public function GetLength1():Number{ var _local1:b2Vec2 = m_body1.GetWorldPoint(m_localAnchor1); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetLength2():Number{ var _local1:b2Vec2 = m_body2.GetWorldPoint(m_localAnchor2); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetRatio():Number{ return (m_ratio); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local2.m_sweep.c.x + _local5); var _local11:Number = (_local2.m_sweep.c.y + _local6); var _local12:Number = (_local3.m_sweep.c.x + _local8); var _local13:Number = (_local3.m_sweep.c.y + _local9); var _local14:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local15:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local16:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local17:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); var _local18:Number = m_u1.Length(); var _local19:Number = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; var _local20:Number = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_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; }; var _local21:Number = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); var _local22:Number = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _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 SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_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)))); }; } override public function SolvePositionConstraints():Boolean{ var _local3:b2Mat22; 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 _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local5:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local6:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local7:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local23:Number = 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)); } } }//package Box2D.Dynamics.Joints
Section 62
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PulleyJointDef extends b2JointDef { public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var length1:Number; public var maxLength1:Number; public var length2:Number; public var maxLength2:Number; public var ratio:Number; 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{ body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); var _local8:Number = (_arg5.x - _arg3.x); var _local9:Number = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); var _local10:Number = (_arg6.x - _arg4.x); var _local11:Number = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; var _local12:Number = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 63
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { private var K:b2Mat22; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_pivotForce:b2Vec2; public var m_motorForce:Number; public var m_limitForce:Number; public var m_limitPositionImpulse:Number; public var m_pivotMass:b2Mat22; public var m_motorMass:Number; public var m_enableMotor:Boolean; public var m_maxMotorTorque:Number; public var m_motorSpeed:Number; public var m_enableLimit:Boolean; public var m_referenceAngle:Number; public var m_lowerAngle:Number; public var m_upperAngle:Number; public var m_limitState:int; 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)); } override public function GetReactionForce():b2Vec2{ return (m_pivotForce); } override public function GetReactionTorque():Number{ return (m_limitForce); } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function GetUpperLimit():Number{ return (m_upperAngle); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetMotorTorque():Number{ return (m_motorForce); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local7:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; 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; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local10:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local11:Number = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); var _local12:Number = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); var _local13:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); var _local14:Number = (-(_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); var _local15:Number = (_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)); }; } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local6:b2Mat22; var _local25:Number; var _local26:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = 0; _local6 = _local3.m_xf.R; var _local7:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local9:Number = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; var _local10:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local11:Number = (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; var _local12:Number = (_local3.m_sweep.c.x + _local7); var _local13:Number = (_local3.m_sweep.c.y + _local8); var _local14:Number = (_local4.m_sweep.c.x + _local10); var _local15:Number = (_local4.m_sweep.c.y + _local11); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); var _local18:Number = _local3.m_invMass; var _local19:Number = _local4.m_invMass; var _local20:Number = _local3.m_invI; var _local21:Number = _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)); var _local22:Number = tImpulse.x; var _local23:Number = 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(); var _local24:Number = 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)))); } } }//package Box2D.Dynamics.Joints
Section 64
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2RevoluteJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var referenceAngle:Number; public var enableLimit:Boolean; public var lowerAngle:Number; public var upperAngle:Number; public var enableMotor:Boolean; public var motorSpeed:Number; public var maxMotorTorque:Number; 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 65
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; public class b2Body { public var m_flags:uint; public var m_type:int; public var m_xf:b2XForm; public var m_sweep:b2Sweep; public var m_linearVelocity:b2Vec2; public var m_angularVelocity:Number; public var m_force:b2Vec2; public var m_torque:Number; public var m_world:b2World; public var m_prev:b2Body; public var m_next:b2Body; public var m_shapeList:b2Shape; public var m_shapeCount:int; public var m_jointList:b2JointEdge; public var m_contactList:b2ContactEdge; public var m_mass:Number; public var m_invMass:Number; public var m_I:Number; public var m_invI:Number; public var m_linearDamping:Number; public var m_angularDamping:Number; public var m_sleepTime:Number; public var m_userData; private static var s_massData:b2MassData = new b2MassData(); private static var s_xf1:b2XForm = new b2XForm(); public static var e_frozenFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var e_sleepFlag:uint = 8; public static var e_allowSleepFlag:uint = 16; public static var e_bulletFlag:uint = 32; public static var e_fixedRotationFlag:uint = 64; public static var e_staticType:uint = 1; public static var e_dynamicType:uint = 2; public static var e_maxTypes:uint = 3; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ 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); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_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 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 DestroyShape(_arg1:b2Shape):void{ if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); var _local2:b2Shape = m_shapeList; var _local3:b2Shape; var _local4:Boolean; 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 SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; 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); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; var _local5:int = 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 SetMassFromShapes():void{ var _local1:b2Shape; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; var _local2:Number = 0; var _local3:Number = 0; var _local4:b2MassData = 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); var _local5:b2Mat22 = m_xf.R; var _local6:b2Vec2 = 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; }; var _local7:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; 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); var _local4:b2Mat22 = m_xf.R; var _local5:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); var _local6:Boolean; _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 GetXForm():b2XForm{ return (m_xf); } public function GetPosition():b2Vec2{ return (m_xf.position); } public function GetAngle():Number{ return (m_sweep.a); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function GetAngularVelocity():Number{ return (m_angularVelocity); } 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 ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } 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 GetMass():Number{ return (m_mass); } public function GetInertia():Number{ return (m_I); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } 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 GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } 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 GetShapeList():b2Shape{ return (m_shapeList); } public function GetJointList():b2JointEdge{ return (m_jointList); } public function GetNext():b2Body{ return (m_next); } public function GetUserData(){ return (m_userData); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetWorld():b2World{ return (m_world); } public function SynchronizeShapes():Boolean{ var _local4:b2Shape; var _local1:b2XForm = s_xf1; _local1.R.Set(m_sweep.a0); var _local2:b2Mat22 = _local1.R; var _local3:b2Vec2 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); var _local5:Boolean; _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 SynchronizeTransform():void{ m_xf.R.Set(m_sweep.a); var _local1:b2Mat22 = m_xf.R; var _local2:b2Vec2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge = m_jointList; while (_local2) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } } }//package Box2D.Dynamics
Section 66
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2BodyDef { public var massData:b2MassData; public var userData; public var position:b2Vec2; public var angle:Number; public var linearDamping:Number; public var angularDamping:Number; public var allowSleep:Boolean; public var isSleeping:Boolean; public var fixedRotation:Boolean; public var isBullet:Boolean; 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 67
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 68
//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 = _arg1.GetFilterData(); var _local4:b2FilterData = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; var _local5:Boolean = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.Dynamics
Section 69
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; import flash.media.*; public class b2ContactListener { var canjump:Boolean;// = false public var zv8s:Sound; public function b2ContactListener(){ zv8s = new zv8(); super(); } public function can_jump(){ return (canjump); } public function Add(_arg1:b2ContactPoint):void{ if (_arg1.shape2.GetBody().GetUserData().name == "bullet"){ }; } public function Persist(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Result(_arg1:b2ContactResult):void{ } } }//package Box2D.Dynamics
Section 70
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_nullContact:b2NullContact; public var m_destroyImmediate:Boolean; 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 = (_arg1 as b2Shape); var _local4:b2Shape = (_arg2 as b2Shape); var _local5:b2Body = _local3.m_body; var _local6:b2Body = _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); }; var _local7:b2Contact = 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{ if (_arg3 == null){ return; }; var _local4:b2Contact = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ 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; var _local2:b2Shape = _arg1.m_shape1; var _local3:b2Shape = _arg1.m_shape2; var _local4:int = _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; }; var _local5:b2Body = _local2.m_body; var _local6:b2Body = _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 _local2:b2Body; var _local3:b2Body; var _local1:b2Contact = 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 71
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import flash.display.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2DebugDraw { public var m_drawFlags:uint; public var m_sprite:Sprite; public var m_drawScale:Number;// = 1 public var m_lineThickness:Number;// = 1 public var m_alpha:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_xformScale:Number;// = 1 public static var e_shapeBit:uint = 1; public static var e_jointBit:uint = 2; public static var e_coreShapeBit:uint = 4; 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_centerOfMassBit:uint = 64; public function b2DebugDraw(){ m_drawFlags = 0; } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function GetFlags():uint{ return (m_drawFlags); } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function 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 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)); } } }//package Box2D.Dynamics
Section 72
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; public class b2DestructionListener { public function SayGoodbyeJoint(_arg1:b2Joint):void{ } public function SayGoodbyeShape(_arg1:b2Shape):void{ } } }//package Box2D.Dynamics
Section 73
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Island { public var m_allocator; public var m_listener:b2ContactListener; public var m_bodies:Array; public var m_contacts:Array; public var m_joints:Array; public var m_bodyCount:int; public var m_jointCount:int; public var m_contactCount:int; public var m_bodyCapacity:int; public var m_contactCapacity:int; public var m_jointCapacity:int; public var m_positionIterationCount: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 Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; 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++; }; var _local8:b2ContactSolver = 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 SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local5:b2Body; var _local6:Boolean; var _local3:b2ContactSolver = 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++; }; var _local4:Number = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } public function Report(_arg1:Array):void{ var _local2:b2Mat22; var _local3:b2Vec2; 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; }; var _local4:int; 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 AddBody(_arg1:b2Body):void{ var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } } }//package Box2D.Dynamics
Section 74
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var dt:Number; public var inv_dt:Number; public var dtRatio:Number; public var maxIterations:int; public var warmStarting:Boolean; public var positionCorrection:Boolean; } }//package Box2D.Dynamics
Section 75
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2World { public var m_blockAllocator; public var m_stackAllocator; public var m_lock:Boolean; public var m_broadPhase:b2BroadPhase; public var m_contactManager:b2ContactManager; public var m_bodyList:b2Body; public var m_jointList:b2Joint; public var m_contactList:b2Contact; public var m_bodyCount:int; public var m_contactCount:int; public var m_jointCount:int; public var m_gravity:b2Vec2; public var m_allowSleep:Boolean; public var m_groundBody:b2Body; public var m_destructionListener:b2DestructionListener; public var m_boundaryListener:b2BoundaryListener; public var m_contactFilter:b2ContactFilter; public var m_contactListener:b2ContactListener; public var m_debugDraw:b2DebugDraw; public var m_inv_dt0:Number; public var m_positionIterationCount:int; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); private static var s_xf:b2XForm = new b2XForm(); public static var m_positionCorrection:Boolean; public static var m_warmStarting:Boolean; public static var m_continuousPhysics:Boolean; public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ 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); var _local4:b2BodyDef = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function Validate():void{ m_broadPhase.Validate(); } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function CreateBody(_arg1:b2BodyDef):b2Body{ if (m_lock == true){ return (null); }; var _local2:b2Body = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function DestroyBody(_arg1:b2Body):void{ var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; var _local2:b2JointEdge = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; var _local3:b2Shape = _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 CreateJoint(_arg1:b2JointDef):b2Joint{ var _local3:b2Body; var _local4:b2Shape; var _local2:b2Joint = 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 _local5:b2Body; var _local6:b2Shape; var _local2:Boolean = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; var _local3:b2Body = _arg1.m_body1; var _local4:b2Body = _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 Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetPositionCorrection(_arg1:Boolean):void{ m_positionCorrection = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } public function GetContactCount():int{ return (m_contactCount); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function Step(_arg1:Number, _arg2:int):void{ m_lock = true; var _local3:b2TimeStep = 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 Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array = new Array(_arg3); var _local5:int = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); var _local6:int; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function GetBodyList():b2Body{ return (m_bodyList); } public function GetJointList():b2Joint{ return (m_jointList); } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; var _local3:b2Island = 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; }; var _local4:b2Contact = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; var _local5:b2Joint = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; var _local6:int = m_bodyCount; var _local7:Array = new Array(_local6); var _local8:b2Body = 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 SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; 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; var _local8:b2Island = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); var _local9:int = m_bodyCount; var _local10:Array = 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 DrawJoint(_arg1:b2Joint):void{ var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; var _local2:b2Body = _arg1.m_body1; var _local3:b2Body = _arg1.m_body2; var _local4:b2XForm = _local2.m_xf; var _local5:b2XForm = _local3.m_xf; var _local6:b2Vec2 = _local4.position; var _local7:b2Vec2 = _local5.position; var _local8:b2Vec2 = _arg1.GetAnchor1(); var _local9:b2Vec2 = _arg1.GetAnchor2(); var _local10:b2Color = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.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 DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; var _local5:b2Color = 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 DrawDebugData():void{ var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local11:b2XForm; 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(); var _local1:uint = m_debugDraw.GetFlags(); var _local7:b2Vec2 = new b2Vec2(); var _local8:b2Vec2 = new b2Vec2(); var _local9:b2Vec2 = new b2Vec2(); var _local10:b2Color = new b2Color(0, 0, 0); var _local12:b2AABB = new b2AABB(); var _local13:b2AABB = new b2AABB(); var _local14:Array = [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; }; }; } } }//package Box2D.Dynamics
Section 76
//Input (General.Input) package General { import flash.display.*; import flash.events.*; public class Input { public static var ascii:Array; private static var keyState:Array; private static var keyArr:Array; private static var keyBuffer:Array; private static var bufferSize:int; public static var lastKey:int = 0; public static var timeSinceLastKey = 0; public static var mouseDown:Boolean = false; public static var mouseReleased:Boolean = false; public static var mousePressed:Boolean = false; public static var mouseOver:Boolean = false; public static var mouseX:Number = 0; public static var mouseY:Number = 0; public static var mouseOffsetX:Number = 0; public static var mouseOffsetY:Number = 0; public static var mouseDragX:Number = 0; public static var mouseDragY:Number = 0; public static var mouse:Sprite = new Sprite(); public static var m_stageMc:Sprite; public function Input(_arg1:Sprite){ m_stageMc = _arg1; ascii = new Array(222); fillAscii(); keyState = new Array(222); keyArr = new Array(); var _local2:int; while (_local2 < 222) { keyState[_local2] = new int(0); if (ascii[_local2] != undefined){ keyArr.push(_local2); }; _local2++; }; bufferSize = 5; keyBuffer = new Array(bufferSize); var _local3:int; 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 mousePress(_arg1:MouseEvent){ mousePressed = true; mouseDown = true; mouseDragX = 0; mouseDragY = 0; } public function mouseRelease(_arg1:MouseEvent){ mouseDown = false; mouseReleased = true; } public function mouseLeave(_arg1:Event){ mouseReleased = mouseDown; mouseDown = false; } 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 keyPress(_arg1:KeyboardEvent){ keyState[_arg1.keyCode] = Math.max(keyState[_arg1.keyCode], 1); lastKey = _arg1.keyCode; } public function keyRelease(_arg1:KeyboardEvent){ keyState[_arg1.keyCode] = -1; var _local2:int = (bufferSize - 1); while (_local2 > 0) { keyBuffer[_local2] = keyBuffer[(_local2 - 1)]; _local2--; }; keyBuffer[0] = [_arg1.keyCode, 0]; } 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 static function update(){ var _local1:int; 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++; }; var _local2:int; 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 getKeyHold(_arg1:int):int{ return (Math.max(0, keyState[_arg1])); } public static function isKeyDown(_arg1:int):Boolean{ return ((keyState[_arg1] > 0)); } public static function isKeyPressed(_arg1:int):Boolean{ timeSinceLastKey = 0; return ((keyState[_arg1] == 1)); } 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)))); } public static function getKeyString(_arg1:uint):String{ return (ascii[_arg1]); } } }//package General
Section 77
//allall_6 (YASHER_orig_fla.allall_6) package YASHER_orig_fla { import flash.display.*; public dynamic class allall_6 extends MovieClip { public function allall_6(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package YASHER_orig_fla
Section 78
//awardmc (awardmc) package { import flash.display.*; public dynamic class awardmc extends MovieClip { public var aw4:MovieClip; public var aw5:MovieClip; public var aw6:MovieClip; public var aw7:MovieClip; public var aw8:MovieClip; public var menubtn:SimpleButton; public var mfz:SimpleButton; public var aw1:MovieClip; public var aw2:MovieClip; public var aw3:MovieClip; } }//package
Section 79
//backgroundmc (backgroundmc) package { import flash.display.*; public dynamic class backgroundmc extends MovieClip { public function backgroundmc(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5); } function frame1(){ stop(); } function frame2(){ stop(); } function frame3(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } } }//package
Section 80
//bochkamc (bochkamc) package { import flash.display.*; public dynamic class bochkamc extends MovieClip { } }//package
Section 81
//box (box) package { import flash.display.*; public dynamic class box extends MovieClip { } }//package
Section 82
//btnbtn (btnbtn) package { import flash.display.*; public dynamic class btnbtn extends MovieClip { } }//package
Section 83
//btndown (btndown) package { import flash.display.*; public dynamic class btndown extends MovieClip { } }//package
Section 84
//btnup (btnup) package { import flash.display.*; public dynamic class btnup extends MovieClip { } }//package
Section 85
//circmc (circmc) package { import flash.display.*; public dynamic class circmc extends MovieClip { } }//package
Section 86
//exitmc (exitmc) package { import flash.display.*; public dynamic class exitmc extends MovieClip { } }//package
Section 87
//explosion (explosion) package { import flash.display.*; public dynamic class explosion extends MovieClip { } }//package
Section 88
//explosion2 (explosion2) package { import flash.display.*; public dynamic class explosion2 extends MovieClip { } }//package
Section 89
//flongamove (flongamove) package { import flash.display.*; import flash.text.*; public dynamic class flongamove extends MovieClip { public var fText:TextField; public var fBar:MovieClip; public var b1:SimpleButton; public var playy:SimpleButton; public var bl:MovieClip; } }//package
Section 90
//Font1 (Font1) package { import flash.text.*; public dynamic class Font1 extends Font { } }//package
Section 91
//gran1 (gran1) package { import flash.display.*; public dynamic class gran1 extends MovieClip { } }//package
Section 92
//gran2 (gran2) package { import flash.display.*; public dynamic class gran2 extends MovieClip { } }//package
Section 93
//gravmc (gravmc) package { import flash.display.*; public dynamic class gravmc extends MovieClip { } }//package
Section 94
//gravz (gravz) package { import flash.media.*; public dynamic class gravz extends Sound { } }//package
Section 95
//grenade (grenade) package { import flash.display.*; public dynamic class grenade extends MovieClip { } }//package
Section 96
//gvozdmc (gvozdmc) package { import flash.display.*; public dynamic class gvozdmc extends MovieClip { } }//package
Section 97
//HelloWorld (HelloWorld) package { import flash.display.*; import flash.events.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; import General.*; import barra.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.filters.*; import flash.errors.*; import flash.system.*; import flash.ui.*; import flash.external.*; import flash.geom.*; public class HelloWorld extends Sprite { public var m_world:b2World; public var pixels_in_a_meter:int;// = 30 public var bodyDef:b2BodyDef; public var boxDef:b2PolygonDef; public var bodyDef2:b2BodyDef; public var boxDef2:b2PolygonDef; public var m_mouseJoint:b2MouseJoint; public var m_input:Input; public var format1:TextFormat; public var xspeed:int;// = 0 public var btnupm; public var btndownm; public var timbtnm; public var gmenu; public var robodeadm; public var stardeadm; public var medal_panm; public var exitbtn; public var soundbtn; public var musicbtn; public var resbtnmc; public var mgbtnmc; public var nextbtnmc; public var btnbtnmc; public var btnbtnmc2; public var btnbtnmc3; public var oporazm; public var oporazmd; public var oporabm; public var medalm; public var lockm; public var zv1s:Sound; public var zv2s:Sound; public var zv3s:Sound; public var zv4s:Sound; public var zv4_1s:Sound; public var zv4_2s:Sound; public var zv5s:Sound; public var zv6s:Sound; public var zv7s:Sound; public var zv9s:Sound; public var zv10s:Sound; public var zv11s:Sound; public var zv12s:Sound; public var gravzs:Sound; public var zvmuss:Sound; public var zvmuss2:Sound; public var sc:SoundChannel; public var scm:SoundChannel; public var trans:SoundTransform; public var menum; public var selectm; public var pantf:TextField; public var medpantf:TextField; public var resbtntf:TextField; public var nextbtntf:TextField; public var mgbtntf:TextField; public var allscore:eNum; public var damenu:Boolean;// = false public var glmenu:Boolean;// = true public var yessound:Boolean;// = true public var yesmusic:Boolean;// = true public var bazooka; public var vzr:vzriv; public var vzr2:vzrivdva; public var bazooka_angle:Number; public var m_contactListener; public var tf:TextField; public var scoretf:TextField; public var lc:LocalConnection; public var power:int;// = 1 public var mySharedObject; public var stringkup:String; public var charging:int;// = 0 public var tlevel:int;// = 0 public var estvrag:int; public var mpgold:int; public var mpsilver:int; public var mpbronze:int; public var scoreint:eNum; public var boomt:uint;// = 0 public var backgroundm; public var menTimer:Timer; public var scoreTimer:Timer; public var est_gr:int;// = 0 public var timevz:int;// = 300 public var listvr:Array; public var listvz:Array; public var listsens:Array; public var listkrig:Array; public var liststar:Array; public var listgran:Array; public var listgrant:Array; public var all_mcs:Array; public var all_mcsmen:Array; public var listgranbody:Array; public var listvrbody:Array; public var all_obj:Array; public var all_objmen:Array; public var btnsm:Array; public var listboch:Array; public var listbochbody:Array; public var myfont:Font1; public var glow:GlowFilter; public var m_shadow:DropShadowFilter; public var radiance:Number;// = 57.2957795130823 public var menupanm; public var powerlinem; public var numbum:int;// = 0 public var my_canvas:Sprite; public var listjoint:Array; public var kvadmcar:Array; public var kvadobjar:Array; public var pixels_in_a_meter2:int;// = 60 public var polygon:b2PolygonDef; public var panelnextm; public var togom; public var togomd:int;// = 0 public var awardm; public var menushar:Array; public var sharint:int;// = 0 public var allscore2:eNum; public var allscore3:eNum; public var allshots:int;// = 0 public var sdelv:int;// = 0 public var listgrav:Array; public var gravint:int;// = 1 public var pricelm; public var shotint; public var sloy1:Sprite; public var sloy2:Sprite; public var sloy3:Sprite; var body:b2Body; var body2:b2Body; var body3:b2Body; var body4:b2Body; var body5:b2Body; var body6:b2Body; var circleDef:b2CircleDef; private var input:Input; private var m_sprite:Sprite; private var worldAABB:b2AABB; private var doSleep:Boolean;// = false private var dbgSprite:Sprite; private var gravity:b2Vec2; private var gravityniz:b2Vec2; public static var instance; public function HelloWorld(){ format1 = new TextFormat(); zv1s = new zv1(); zv2s = new zv2(); zv3s = new zv3(); zv4s = new zv4(); zv4_1s = new zv4_1(); zv4_2s = new zv4_2(); zv5s = new zv5(); zv6s = new zv6(); zv7s = new zv7(); zv9s = new zv9(); zv10s = new zv10(); zv11s = new zv11(); zv12s = new zv12(); gravzs = new gravz(); zvmuss = new zvmus(); zvmuss2 = new zvmus2(); sc = new SoundChannel(); scm = new SoundChannel(); trans = new SoundTransform(0.5, 0); pantf = new TextField(); medpantf = new TextField(); resbtntf = new TextField(); nextbtntf = new TextField(); mgbtntf = new TextField(); allscore = new eNum(); vzr = new vzriv(); vzr2 = new vzrivdva(); m_contactListener = new b2ContactListener(); tf = new TextField(); scoretf = new TextField(); lc = new LocalConnection(); mySharedObject = SharedObject.getLocal("pagdollspree2"); scoreint = new eNum(); 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(15785405, 1, 4, 4, 3, 2); m_shadow = new DropShadowFilter(0, 90, 0, 1, 15, 15, 1.3, 1); my_canvas = new Sprite(); listjoint = []; kvadmcar = []; kvadobjar = []; polygon = new b2PolygonDef(); menushar = []; allscore2 = new eNum(); allscore3 = new eNum(); listgrav = []; sloy1 = new Sprite(); sloy2 = new Sprite(); sloy3 = new Sprite(); worldAABB = new b2AABB(); dbgSprite = new Sprite(); gravity = new b2Vec2(0, 10); gravityniz = new b2Vec2(0, -10); super(); instance = this; HelloWorld.instance.addEventListener(Event.ADDED_TO_STAGE, UpdateGov); } private function init():void{ gravint = 1; if (gravint == 1){ m_world.SetGravity(gravity); }; if (gravint == 2){ m_world.SetGravity(gravityniz); }; if (tlevel == 0){ estvrag = 10; mpgold = 2; mpsilver = 2; mpbronze = 2; scoreint.val = 1000; cannon(70, 395, 50, 30, 0, 0, 0, 0); }; if (tlevel == 1){ scoreint.val = 1000; cannon(30, 455, 50, 30, 0, 0, 0, 0); create_star(345, 355, 30, 40, 0, 0, 1, 0); create_star(385, 355, 30, 40, 0, 0, 2, 0); create_star(425, 355, 30, 40, 0, 0, 3, 0); create_palka(520, 405, 10, 80, 0, 0, 5, 0); create_palka(520, 325, 10, 80, 0, 0, 5, 0); create_palka(520, 245, 10, 80, 0, 0, 5, 0); create_border(1); estvrag = 3; backgroundm.gotoAndStop(4); }; if (tlevel == 2){ scoreint.val = 1000; create_grav(330, 190, 30, 30, 0, 0, 1, 0); create_palka(530, 210, 10, 80, 0, 0, 5, 0); create_palka(530, 290, 10, 80, 0, 0, 5, 0); create_palka(540, 210, 80, 10, 0, 0, 3, 0); create_palka(620, 210, 80, 10, 0, 0, 3, 0); create_star(650, 230, 30, 40, 0, 0, 2, 0); create_star(615, 320, 30, 40, 0, 0, 4, 0); create_star(615, 275, 30, 40, 0, 0, 3, 0); create_star(615, 230, 30, 40, 0, 0, 1, 0); create_star(650, 275, 30, 40, 0, 0, 1, 0); create_star(650, 320, 30, 40, 0, 0, 4, 0); cannon(70, 340, 50, 30, 0, 0, 0, 0); create_palka(40, 370, 80, 10, 0, 0, 3, 0); create_palka(-25, 370, 80, 10, 0, 0, 3, 0); create_border(1); estvrag = 6; backgroundm.gotoAndStop(5); }; if (tlevel == 3){ scoreint.val = 1000; create_palka(350, 405, 10, 80, 0, 0, 5, 0); create_palka(350, 325, 10, 80, 0, 0, 5, 0); create_palka(430, 405, 10, 80, 0, 0, 5, 0); create_palka(430, 325, 10, 80, 0, 0, 5, 0); create_palka(430, 245, 10, 80, 0, 0, 5, 0); create_palka(505, 405, 10, 80, 0, 0, 5, 0); create_palka(505, 325, 10, 80, 0, 0, 5, 0); create_palka(505, 245, 10, 80, 0, 0, 5, 0); create_palka(505, 165, 10, 80, 0, 0, 5, 0); create_palka(595, 405, 10, 80, 0, 0, 5, 0); create_palka(595, 325, 10, 80, 0, 0, 5, 0); create_palka(595, 245, 10, 80, 0, 0, 5, 0); create_palka(595, 165, 10, 80, 0, 0, 5, 0); create_palka(595, 85, 10, 80, 0, 0, 5, 0); create_palka(286, 160, 160, 20, 0, 0, 1, 0); create_star(380, 425, 30, 40, 0, 0, 1, 0); create_star(380, 345, 30, 40, 0, 0, 1, 0); create_star(458, 429, 30, 40, 0, 0, 2, 0); create_star(457, 348, 30, 40, 0, 0, 2, 0); create_star(456, 267, 30, 40, 0, 0, 2, 0); create_star(541, 426, 30, 40, 0, 0, 3, 0); create_star(542, 342, 30, 40, 0, 0, 3, 0); create_star(539, 263, 30, 40, 0, 0, 3, 0); create_star(539, 180, 30, 40, 0, 0, 3, 0); create_star(631, 426, 30, 40, 0, 0, 5, 0); create_star(630, 344, 30, 40, 0, 0, 5, 0); create_star(629, 266, 30, 40, 0, 0, 5, 0); create_star(630, 180, 30, 40, 0, 0, 5, 0); create_star(629, 98, 30, 40, 0, 0, 5, 0); cannon(34, 450, 50, 30, 0, 0, 0, 0); create_rjoint(364.3, 169.05, 4); create_border(1); estvrag = 14; }; if (tlevel == 4){ scoreint.val = 1000; create_palka(10, 310, 80, 10, 0, 0, 3, 0); cannon(40, 280, 50, 30, 0, 0, 0, 0); create_palka(427, 412, 10, 80, 45, 0, 4, 0); create_palka(465, 405, 10, 80, 0, 0, 4, 0); create_palka(600, 405, 10, 80, 0, 0, 4, 0); create_palka(602, 447, 80, 10, 45, 0, 1, 0); create_palka(455, 395, 80, 10, 0, 0, 1, 0); create_palka(535, 395, 80, 10, 0, 0, 1, 0); create_palka(495, 315, 10, 80, 0, 0, 4, 0); create_palka(565, 315, 10, 80, 0, 0, 4, 0); create_palka(495, 305, 80, 10, 0, 0, 1, 0); create_palka(553, 351, 80, 10, 70, 0, 1, 0); create_palka(437, 351, 80, 10, -70, 0, 1, 0); create_palka(522, 261, 80, 10, 70, 0, 1, 0); create_palka(467, 260, 80, 10, -70, 0, 1, 0); create_kvad(525, 221, 20, 20, 0, 0, 1, 0); create_star(519, 253, 30, 40, 0, 0, 1, 0); create_star(521, 330, 30, 40, 0, 0, 2, 0); create_star(490, 428, 30, 40, 0, 0, 3, 0); create_star(553, 429, 30, 40, 0, 0, 3, 0); create_palka(530, 406, 10, 80, 0, 0, 5, 0); create_kvad(382, 465, 20, 20, 0, 0, 1, 0); create_kvad(670, 464, 20, 20, 0, 0, 1, 0); create_star(547, 154, 30, 40, 0, 0, 1, 0); create_star(494, 154, 30, 40, 0, 0, 1, 0); create_palka(528, 141, 10, 80, 0, 0, 4, 0); create_triangle(518, 109, 30, 30, 0, 0, 2, 0); create_border(1); estvrag = 6; }; if (tlevel == 5){ scoreint.val = 1000; create_palka(345, 195, 10, 80, 0, 0, 4, 0); create_kvad(435, 190, 20, 20, 0, 0, 5, 0); create_kvad(240, 260, 20, 20, 0, 0, 5, 0); cannon(20, 450, 50, 30, 0, 0, 0, 0); create_palka(475, 115, 80, 10, 0, 0, 3, 0); create_palka(540, 310, 10, 80, 0, 0, 5, 0); create_palka(158, 113, 120, 15, 0, 0, 3, 0); create_star(560, 355, 30, 40, 0, 0, 1, 0); create_star(560, 305, 30, 40, 0, 0, 1, 0); create_star(600, 325, 30, 40, 0, 0, 1, 0); create_star(485, 70, 30, 40, 0, 0, 1, 0); create_star(515, 70, 30, 40, 0, 0, 1, 0); create_star(160, 65, 30, 40, 0, 0, 2, 0); create_star(0xFF, 65, 30, 40, 0, 0, 2, 0); create_grav(575, 250, 30, 30, 0, 0, 1, 0); create_circ(355, 60, 30, 30, 0, 0, 2, 0); create_grav(205, 70, 30, 30, 0, 0, 1, 0); create_rjoint(349.8, 235.6, 4); create_djoint(443.5, 199.95, 349.8, 199.3); create_djoint(351.1, 268.6, 249.6, 270.55); create_border(1); estvrag = 7; }; if (tlevel == 6){ scoreint.val = 1000; create_palka(267, 412, 10, 80, 45, 0, 5, 0); create_palka(322, 357, 10, 80, 45, 0, 5, 0); create_palka(402, 417, 10, 80, 45, 0, 5, 0); create_palka(457, 362, 10, 80, 45, 0, 5, 0); create_circ(235, 450, 20, 20, 0, 0, 4, 0); create_circ(280, 405, 20, 20, 0, 0, 4, 0); create_circ(325, 360, 20, 20, 0, 0, 4, 0); create_circ(370, 455, 20, 20, 0, 0, 4, 0); create_circ(415, 410, 20, 20, 0, 0, 4, 0); create_circ(460, 365, 20, 20, 0, 0, 4, 0); create_palka(275, 525, 10, 80, 0, 0, 5, 0); create_palka(533, 414, 10, 80, 45, 0, 5, 0); create_palka(609, 332, 80, 10, 0, 0, 3, 0); create_kvad(114, 580, 20, 20, 0, 0, 1, 0); create_kvad(145, 566, 20, 20, 0, 0, 1, 0); create_star(304, 437, 30, 40, 0, 0, 1, 0); create_star(354, 394, 30, 40, 0, 0, 1, 0); create_star(447, 440, 30, 40, 0, 0, 1, 0); create_star(490, 394, 30, 40, 0, 0, 1, 0); create_star(608, 353, 30, 40, 0, 0, 2, 0); create_star(576, 434, 30, 40, 0, 0, 3, 0); create_star(629, 433, 30, 40, 0, 0, 3, 0); create_kvad(635, 292, 40, 40, 0, 0, 1, 0); create_palka(556, 305, 80, 10, 0, 0, 3, 0); create_palka(445, 124, 10, 80, 45, 0, 5, 0); create_palka(348, 158, 80, 10, 45, 0, 3, 0); create_palka(473, 160, 80, 10, 45, 0, 3, 0); create_palka(537, 160, 80, 10, 135, 0, 3, 0); create_star(403, 128, 30, 40, 0, 0, 2, 0); create_star(670, 555, 30, 40, 0, 0, 5, 0); create_star(641, 230, 30, 40, 0, 0, 2, 0); cannon(17, 445, 50, 30, 0, 0, 0, 0); create_star(531, 121, 30, 40, 0, 0, 2, 0); create_star(280, 252, 30, 40, 0, 0, 1, 0); create_palka(421, 273, 80, 10, 0, 0, 1, 0); create_rjoint(461.95, 277.85, 2); create_border(1); estvrag = 10; }; if (tlevel == 7){ scoreint.val = 1000; create_palka(85, 405, 10, 80, 0, 0, 5, 0); create_palka(130, 405, 10, 80, 0, 0, 5, 0); create_palka(165, 10, 10, 80, 0, 0, 5, 0); create_palka(245, 10, 10, 80, 0, 0, 5, 0); create_palka(280, 405, 10, 80, 0, 0, 5, 0); create_palka(275, 510, 10, 80, 0, 0, 5, 0); create_palka(275, 510, 10, 80, 0, 0, 5, 0); create_palka(280, 325, 10, 80, 0, 0, 5, 0); create_palka(365, 405, 10, 80, 0, 0, 5, 0); create_palka(365, 325, 10, 80, 0, 0, 5, 0); create_palka(392, 252, 10, 80, 45, 0, 5, 0); create_palka(156, 253, 10, 80, 45, 0, 5, 0); create_palka(272, 82, 10, 80, 135, 0, 5, 0); create_grav(195, 15, 30, 30, 0, 0, 1, 0); create_grav(310, 450, 30, 30, 0, 0, 1, 0); create_star(310, 395, 30, 40, 0, 0, 3, 0); create_star(310, 345, 30, 40, 0, 0, 3, 0); create_star(310, 285, 30, 40, 0, 0, 3, 0); create_star(195, 55, 30, 40, 0, 0, 2, 0); create_star(180, 116, 30, 40, 0, 0, 2, 0); create_star(228, 118, 30, 40, 0, 0, 2, 0); create_star(98, 441, 30, 40, 0, 0, 5, 0); create_star(99, 394, 30, 40, 0, 0, 5, 0); create_star(99, 339, 30, 40, 0, 0, 5, 0); create_palka(607, 242, 80, 10, 0, 0, 3, 0); cannon(625, 211, 50, 30, 0, 0, 0, 0); create_palka(165, 90, 10, 80, 0, 0, 5, 0); create_palka(85, 325, 10, 80, 0, 0, 5, 0); create_palka(186, 293, 10, 80, 0, 0, 4, 0); create_palka(419, 294, 10, 80, 0, 0, 4, 0); create_palka(302, 166, 10, 80, 0, 0, 4, 0); create_palka(72, 484, 80, 10, 0, 0, 3, 0); create_palka(286, 482, 80, 10, 0, 0, 3, 0); create_palka(170, 1, 80, 10, 0, 0, 3, 0); create_palka(131, 325, 10, 80, 0, 0, 5, 0); create_djoint(301.6, 147.2, 308.1, 168.7); create_djoint(421.75, 266.65, 423.7, 298.35); create_djoint(192.05, 300, 186.8, 270.5); estvrag = 9; }; if (tlevel == 8){ scoreint.val = 1000; create_palka(412, 37, 80, 10, 45, 0, 3, 0); create_palka(222, 102, 80, 10, 45, 0, 3, 0); create_palka(447, 67, 10, 80, 45, 0, 5, 0); create_palka(0x0101, 2, 10, 80, 45, 0, 5, 0); create_star(305, 15, 30, 40, 0, 0, 1, 0); create_star(320, 55, 30, 40, 0, 0, 1, 0); create_star(360, 55, 30, 40, 0, 0, 1, 0); create_star(375, 15, 30, 40, 0, 0, 1, 0); create_star(340, 15, 30, 40, 0, 0, 1, 0); create_star(340, 95, 30, 40, 0, 0, 1, 0); create_palka(285, 140, 10, 80, 0, 0, 5, 0); create_palka(415, 140, 10, 80, 0, 0, 5, 0); create_palka(298, 283, 120, 15, 0, 0, 1, 0); create_palka(165, 405, 10, 80, 0, 0, 5, 0); create_palka(165, 325, 10, 80, 0, 0, 5, 0); create_grav(70, 420, 30, 30, 0, 0, 1, 0); create_star(25, 375, 30, 40, 0, 0, 2, 0); create_star(115, 375, 30, 40, 0, 0, 2, 0); create_star(70, 325, 30, 40, 0, 0, 3, 0); create_palka(620, 335, 80, 10, 0, 0, 3, 0); cannon(640, 305, 50, 30, 0, 0, 0, 0); create_palka(5, 220, 10, 80, 0, 0, 5, 0); create_palka(5, 140, 10, 80, 0, 0, 5, 0); create_palka(5, 300, 10, 80, 0, 0, 5, 0); create_rjoint(357.05, 290.05, 3); estvrag = 9; }; if (tlevel == 9){ scoreint.val = 1000; cannon(615, 270, 50, 30, 0, 0, 0, 0); create_palka(405, 150, 10, 80, 0, 0, 4, 0); create_palka(283, 198, 15, 120, 0, 0, 4, 0); create_palka(405, 265, 10, 80, 0, 0, 4, 0); create_palka(340, 110, 80, 10, 0, 0, 3, 0); create_palka(350, 375, 80, 10, 0, 0, 3, 0); create_kvad(370, 415, 20, 20, 0, 0, 1, 0); create_star(240, 425, 30, 40, 0, 0, 1, 0); create_palka(260, 110, 80, 10, 0, 0, 3, 0); create_palka(270, 375, 80, 10, 0, 0, 3, 0); create_palka(450, 405, 10, 80, 0, 0, 5, 0); create_palka(440, 10, 10, 80, 0, 0, 5, 0); create_circ(420, 90, 50, 50, 0, 0, 2, 0); create_circ(430, 355, 50, 50, 0, 0, 2, 0); create_palka(365, 245, 80, 10, 0, 0, 3, 0); create_palka(182, 72, 10, 80, 45, 0, 5, 0); create_palka(27, 337, 80, 10, 45, 0, 3, 0); create_palka(157, 372, 80, 10, 45, 0, 3, 0); create_palka(67, 107, 10, 80, 45, 0, 5, 0); create_palka(25, 245, 80, 10, 0, 0, 3, 0); create_palka(105, 245, 80, 10, 0, 0, 3, 0); create_star(105, 420, 30, 40, 0, 0, 1, 0); create_star(140, 420, 30, 40, 0, 0, 1, 0); create_star(105, 35, 30, 40, 0, 0, 1, 0); create_star(135, 35, 30, 40, 0, 0, 1, 0); create_star(220, 20, 30, 40, 0, 0, 1, 0); create_star(250, 20, 30, 40, 0, 0, 1, 0); create_grav(270, 430, 30, 30, 0, 0, 1, 0); create_rjoint(410, 225.5, 0); create_rjoint(290.3, 259.3, 8); create_djoint(290.3, 205, 409.75, 156.25); create_djoint(289.65, 311.7, 409.55, 342.95); create_rjoint(409.85, 270.3, 0); estvrag = 7; }; if (tlevel == 10){ scoreint.val = 1000; create_palka(210, 155, 10, 80, 0, 0, 4, 0); cannon(320, 376, 50, 30, 0, 0, 0, 0); create_palka(480, 155, 10, 80, 0, 0, 4, 0); create_palka(4, 347, 80, 10, -30, 0, 3, 0); create_palka(89, 332, 80, 10, -30, 0, 3, 0); create_palka(144, 267, 80, 10, -30, 0, 3, 0); create_palka(529, 337, 80, 10, 30, 0, 3, 0); create_palka(614, 347, 80, 10, 30, 0, 3, 0); create_palka(474, 267, 80, 10, 30, 0, 3, 0); create_circ(475, 125, 20, 20, 0, 0, 4, 0); create_circ(205, 120, 20, 20, 0, 0, 4, 0); create_star(530, 220, 30, 40, 0, 0, 1, 0); create_star(635, 290, 30, 40, 0, 0, 1, 0); create_star(145, 225, 30, 40, 0, 0, 1, 0); create_star(40, 285, 30, 40, 0, 0, 1, 0); create_palka(310, 65, 80, 10, 0, 0, 1, 0); create_palka(585, 125, 80, 10, 0, 0, 1, 0); create_palka(35, 125, 80, 10, 0, 0, 1, 0); create_palka(315, 415, 10, 80, 0, 0, 5, 0); create_palka(370, 415, 10, 80, 0, 0, 5, 0); create_palka(307, 406, 80, 10, 0, 0, 3, 0); create_star(32, 36, 30, 40, 0, 0, 1, 0); create_star(66, 36, 30, 40, 0, 0, 2, 0); create_star(100, 36, 30, 40, 0, 0, 3, 0); create_star(567, 36, 30, 40, 0, 0, 1, 0); create_star(603, 36, 30, 40, 0, 0, 2, 0); create_star(637, 37, 30, 40, 0, 0, 3, 0); create_star(552, 283, 30, 40, 0, 0, 4, 0); create_star(583, 302, 30, 40, 0, 0, 4, 0); create_star(86, 304, 30, 40, 0, 0, 4, 0); create_star(116, 279, 30, 40, 0, 0, 4, 0); create_djoint(484.5, 135.25, 485.9, 159.85); create_djoint(214.5, 130.2, 214.5, 158.8); create_rjoint(349.15, 69.3, 8); create_rjoint(594.45, 129.4, 0); create_rjoint(108.55, 127.4, 0); create_djoint(388.05, 68.65, 656.7, 130.6); create_djoint(316.15, 69.3, 41.6, 127.65); create_border(0); estvrag = 14; }; if (tlevel == 11){ scoreint.val = 1000; create_palka(380, 0xFF, 10, 60, 0, 0, 4, 0); cannon(645, 265, 50, 30, 0, 0, 0, 0); create_star(40, 380, 30, 40, 0, 0, 1, 0); create_palka(170, 325, 10, 80, 0, 0, 5, 0); create_palka(170, 405, 10, 80, 0, 0, 5, 0); create_palka(310, 325, 10, 80, 0, 0, 5, 0); create_palka(310, 405, 10, 80, 0, 0, 5, 0); create_palka(445, 325, 10, 80, 0, 0, 5, 0); create_palka(445, 405, 10, 80, 0, 0, 5, 0); create_star(345, 376, 30, 40, 0, 0, 2, 0); create_star(230, 345, 30, 40, 0, 0, 3, 0); create_star(70, 343, 30, 40, 0, 0, 1, 0); create_star(370, 335, 30, 40, 0, 0, 2, 0); create_star(200, 384, 30, 40, 0, 0, 3, 0); create_palka(240, 0xFF, 10, 60, 0, 0, 4, 0); create_palka(90, 250, 10, 60, 0, 0, 4, 0); create_palka(445, 10, 10, 80, 0, 0, 5, 0); create_palka(445, 90, 10, 80, 0, 0, 5, 0); create_palka(310, 10, 10, 80, 0, 0, 5, 0); create_palka(310, 90, 10, 80, 0, 0, 5, 0); create_palka(170, 10, 10, 80, 0, 0, 5, 0); create_palka(170, 90, 10, 80, 0, 0, 5, 0); create_star(100, 380, 30, 40, 0, 0, 1, 0); create_grav(70, 430, 30, 30, 0, 0, 1, 0); create_star(0x0101, 384, 30, 40, 0, 0, 3, 0); create_grav(70, 20, 30, 30, 0, 0, 1, 0); create_star(397, 374, 30, 40, 0, 0, 2, 0); create_star(374, 417, 30, 40, 0, 0, 2, 0); create_star(40, 60, 30, 40, 0, 0, 1, 0); create_star(104, 60, 30, 40, 0, 0, 1, 0); create_star(72, 96, 30, 40, 0, 0, 1, 0); create_star(229, 424, 30, 40, 0, 0, 3, 0); create_star(226, 30, 30, 40, 0, 0, 3, 0); create_star(196, 70, 30, 40, 0, 0, 3, 0); create_star(264, 70, 30, 40, 0, 0, 3, 0); create_star(226, 110, 30, 40, 0, 0, 3, 0); create_star(369, 106, 30, 40, 0, 0, 2, 0); create_star(338, 64, 30, 40, 0, 0, 2, 0); create_star(400, 65, 30, 40, 0, 0, 2, 0); create_star(369, 24, 30, 40, 0, 0, 2, 0); create_palka(0, 284, 10, 80, 0, 0, 5, 0); create_palka(0, 205, 10, 80, 0, 0, 5, 0); create_palka(0, 125, 10, 80, 0, 0, 5, 0); create_rjoint(92.85, 247.8, 10); create_rjoint(245.2, 252, 10); create_rjoint(385.55, 253.45, 10); estvrag = 22; }; if (tlevel == 12){ scoreint.val = 1000; create_kvad(298, 209, 20, 20, 0, 0, 1, 0); create_kvad(385, 209, 20, 20, 0, 0, 1, 0); create_palka(298, 128, 10, 80, 0, 0, 4, 0); create_palka(394, 129, 10, 80, 0, 0, 4, 0); create_palka(343, 61, 15, 120, 90, 0, 4, 0); cannon(325, 450, 50, 30, 0, 0, 0, 0); create_star(336, 30, 30, 40, 0, 0, 1, 0); create_palka(433, 517, 80, 10, 0, 0, 1, 0); create_palka(311, 198, 80, 10, 0, 0, 1, 0); create_star(297, 57, 30, 40, 0, 0, 1, 0); create_star(374, 61, 30, 40, 0, 0, 1, 0); create_kvad(278, 228, 20, 20, 0, 0, 1, 0); create_kvad(406, 225, 20, 20, 0, 0, 1, 0); create_kvad(499, 225, 20, 20, 0, 0, 1, 0); create_kvad(191, 228, 20, 20, 0, 0, 1, 0); create_palka(420, 215, 80, 10, 0, 0, 1, 0); create_palka(205, 216, 80, 10, 0, 0, 1, 0); create_kvad(104, 229, 20, 20, 0, 0, 1, 0); create_kvad(586, 224, 20, 20, 0, 0, 1, 0); create_palka(114, 216, 80, 10, 0, 0, 1, 0); create_palka(513, 210, 80, 10, 0, 0, 1, 0); create_kvad(14, 228, 20, 20, 0, 0, 1, 0); create_kvad(666, 226, 20, 20, 0, 0, 1, 0); create_palka(598, 211, 80, 10, 0, 0, 1, 0); create_palka(28, 214, 80, 10, 0, 0, 1, 0); create_star(53, 150, 30, 40, 0, 0, 2, 0); create_star(141, 154, 30, 40, 0, 0, 2, 0); create_star(230, 157, 30, 40, 0, 0, 2, 0); create_star(442, 154, 30, 40, 0, 0, 2, 0); create_star(536, 156, 30, 40, 0, 0, 2, 0); create_star(618, 157, 30, 40, 0, 0, 2, 0); create_palka(502, 143, 10, 80, 0, 0, 4, 0); create_palka(589, 144, 10, 80, 0, 0, 4, 0); create_palka(195, 145, 10, 80, 0, 0, 4, 0); create_palka(108, 147, 10, 80, 0, 0, 4, 0); create_star(336, 145, 30, 40, 0, 0, 3, 0); create_border(1); estvrag = 10; }; if (tlevel == 13){ scoreint.val = 1000; cannon(320, 445, 50, 30, 0, 0, 0, 0); create_star(185, 145, 30, 40, 0, 0, 1, 0); create_palka(435, 240, 80, 10, 0, 0, 1, 0); create_palka(180, 240, 80, 10, 0, 0, 1, 0); create_circ(120, 185, 30, 30, 0, 0, 2, 0); create_circ(320, 50, 30, 30, 0, 0, 2, 0); create_circ(530, 185, 30, 30, 0, 0, 2, 0); create_circ(190, 90, 30, 30, 0, 0, 2, 0); create_circ(460, 85, 30, 30, 0, 0, 2, 0); create_circ(250, 150, 30, 30, 0, 0, 2, 0); create_circ(405, 150, 30, 30, 0, 0, 2, 0); create_triangle(0, 260, 50, 50, 90, 0, 1, 0); create_triangle(650, 0xFF, 50, 50, -90, 0, 1, 0); create_star(465, 145, 30, 40, 0, 0, 1, 0); create_star(250, 65, 30, 40, 0, 0, 3, 0); create_star(395, 65, 30, 40, 0, 0, 3, 0); create_star(515, 45, 30, 40, 0, 0, 5, 0); create_star(135, 45, 30, 40, 0, 0, 5, 0); create_star(50, 105, 30, 40, 0, 0, 1, 0); create_star(615, 110, 30, 40, 0, 0, 1, 0); create_palka(305, 155, 80, 10, 0, 0, 1, 0); create_rjoint(476.25, 244.85, 4); create_rjoint(219.05, 244.85, 4); create_rjoint(341.95, 161.15, 4); create_border(0); estvrag = 8; }; if (tlevel == 14){ scoreint.val = 1000; create_palka(150, 110, 10, 80, 0, 0, 5, 0); create_palka(150, 295, 10, 80, 0, 0, 5, 0); create_palka(230, 15, 10, 80, 0, 0, 5, 0); create_palka(230, 405, 10, 80, 0, 0, 5, 0); create_palka(235, 205, 10, 80, 0, 0, 5, 0); create_palka(165, 145, 80, 10, 0, 0, 1, 0); create_palka(165, 330, 80, 10, 0, 0, 1, 0); create_star(100, 135, 30, 40, 0, 0, 1, 0); create_star(105, 320, 30, 40, 0, 0, 1, 0); create_star(180, 225, 30, 40, 0, 0, 2, 0); create_star(175, 420, 30, 40, 0, 0, 2, 0); create_star(180, 30, 30, 40, 0, 0, 2, 0); create_star(25, 225, 30, 40, 0, 0, 5, 0); create_star(50, 60, 30, 40, 0, 0, 5, 0); create_star(55, 390, 30, 40, 0, 0, 5, 0); create_grav(105, 230, 30, 30, 0, 0, 1, 0); create_palka(610, 275, 80, 10, 0, 0, 3, 0); cannon(610, 245, 50, 30, 0, 0, 0, 0); create_grav(115, 25, 30, 30, 0, 0, 1, 0); create_grav(115, 435, 30, 30, 0, 0, 1, 0); create_palka(75, 210, 10, 80, 0, 0, 4, 0); create_star(285, 130, 30, 40, 0, 0, 3, 0); create_star(290, 320, 30, 40, 0, 0, 3, 0); create_rjoint(203.5, 150.85, 1); create_rjoint(206.6, 333.7, 1); create_rjoint(81.6, 246.9, 1); create_border(1); estvrag = 10; }; if (tlevel == 15){ scoreint.val = 1000; create_palka(365, 195, 80, 10, 0, 0, 1, 0); create_kvad(220, 260, 20, 20, 0, 0, 1, 0); create_kvad(485, 260, 20, 20, 0, 0, 1, 0); create_palka(275, 195, 80, 10, 0, 0, 1, 0); create_palka(410, 250, 80, 10, 0, 0, 1, 0); create_palka(235, 250, 80, 10, 0, 0, 1, 0); cannon(340, 450, 50, 30, 0, 0, 0, 0); create_palka(320, 250, 80, 10, 0, 0, 1, 0); create_kvad(305, 260, 20, 20, 0, 0, 1, 0); create_kvad(395, 260, 20, 20, 0, 0, 1, 0); create_kvad(265, 205, 20, 20, 0, 0, 1, 0); create_kvad(435, 205, 20, 20, 0, 0, 1, 0); create_kvad(300, 155, 20, 20, 0, 0, 1, 0); create_kvad(410, 155, 20, 20, 0, 0, 1, 0); create_palka(320, 100, 80, 10, 0, 0, 1, 0); create_kvad(180, 205, 20, 20, 0, 0, 1, 0); create_kvad(520, 205, 20, 20, 0, 0, 1, 0); create_kvad(130, 260, 20, 20, 0, 0, 1, 0); create_kvad(575, 260, 20, 20, 0, 0, 1, 0); create_palka(585, 180, 10, 80, 0, 0, 4, 0); create_palka(530, 125, 10, 80, 0, 0, 4, 0); create_palka(180, 125, 10, 80, 0, 0, 4, 0); create_palka(130, 180, 10, 80, 0, 0, 4, 0); create_palka(145, 250, 80, 10, 0, 0, 1, 0); create_palka(500, 250, 80, 10, 0, 0, 1, 0); create_palka(190, 195, 80, 10, 0, 0, 1, 0); create_palka(450, 195, 80, 10, 0, 0, 1, 0); create_kvad(270, 85, 20, 20, 0, 0, 1, 0); create_kvad(430, 80, 20, 20, 0, 0, 1, 0); create_kvad(350, 25, 20, 20, 0, 0, 1, 0); create_star(215, 210, 30, 40, 0, 0, 5, 0); create_star(480, 210, 30, 40, 0, 0, 5, 0); create_star(390, 210, 30, 40, 0, 0, 4, 0); create_star(300, 210, 30, 40, 0, 0, 4, 0); create_star(215, 140, 30, 40, 0, 0, 1, 0); create_star(475, 130, 30, 40, 0, 0, 1, 0); create_star(345, 150, 30, 40, 0, 0, 2, 0); create_star(295, 25, 30, 40, 0, 0, 2, 0); create_star(390, 25, 30, 40, 0, 0, 2, 0); create_triangle(335, 200, 50, 50, 0, 0, 2, 0); create_star(545, 180, 30, 40, 0, 0, 4, 0); create_star(145, 175, 30, 40, 0, 0, 4, 0); create_rjoint(361.6, 104.35, 3); create_border(1); estvrag = 11; }; if (tlevel == 16){ scoreint.val = 1000; create_palka(275, 405, 10, 80, 0, 0, 5, 0); create_palka(275, 170, 10, 80, 0, 0, 5, 0); create_palka(275, 10, 10, 80, 0, 0, 5, 0); create_palka(275, 90, 10, 80, 0, 0, 5, 0); create_palka(395, 405, 10, 80, 0, 0, 5, 0); create_palka(395, 325, 10, 80, 0, 0, 5, 0); create_palka(395, 10, 10, 80, 0, 0, 5, 0); create_palka(510, 405, 10, 80, 0, 0, 5, 0); create_palka(510, 325, 10, 80, 0, 0, 5, 0); create_palka(510, 245, 10, 80, 0, 0, 5, 0); create_star(540, 375, 30, 40, 0, 0, 1, 0); cannon(25, 455, 50, 30, 0, 0, 0, 0); create_palka(350, 193, 120, 15, 0, 0, 1, 0); create_grav(590, 435, 30, 30, 0, 0, 1, 0); create_star(635, 375, 30, 40, 0, 0, 1, 0); create_star(445, 325, 30, 40, 0, 0, 2, 0); create_star(445, 385, 30, 40, 0, 0, 2, 0); create_star(445, 435, 30, 40, 0, 0, 2, 0); create_star(300, 395, 30, 40, 0, 0, 3, 0); create_star(345, 395, 30, 40, 0, 0, 3, 0); create_star(325, 440, 30, 40, 0, 0, 3, 0); create_star(525, 30, 30, 40, 0, 0, 4, 0); create_star(580, 30, 30, 40, 0, 0, 4, 0); create_star(585, 165, 30, 40, 0, 0, 5, 0); create_star(530, 100, 30, 40, 0, 0, 5, 0); create_star(585, 100, 30, 40, 0, 0, 5, 0); create_palka(240, 320, 80, 10, 0, 0, 1, 0); create_star(325, 15, 30, 40, 0, 0, 2, 0); create_grav(330, 75, 30, 30, 0, 0, 1, 0); create_rjoint(410.2, 198.65, 3); create_rjoint(279.9, 323.25, 2); create_border(1); estvrag = 14; }; if (tlevel == 17){ scoreint.val = 1000; create_palka(65, 60, 80, 10, 0, 0, 3, 0); create_palka(55, 60, 10, 80, 0, 0, 5, 0); create_palka(145, 60, 10, 80, 0, 0, 5, 0); create_palka(65, 240, 80, 10, 0, 0, 3, 0); create_palka(145, 210, 10, 80, 0, 0, 5, 0); create_palka(135, 375, 10, 80, 0, 0, 5, 0); create_palka(55, 410, 80, 10, 0, 0, 3, 0); create_palka(145, 410, 80, 10, 0, 0, 3, 0); create_palka(225, 350, 10, 80, 0, 0, 5, 0); create_palka(155, 210, 80, 10, 0, 0, 3, 0); create_palka(235, 170, 10, 80, 0, 0, 5, 0); create_palka(155, 75, 80, 10, 0, 0, 3, 0); create_palka(235, 10, 10, 80, 0, 0, 5, 0); create_palka(245, 210, 80, 10, 0, 0, 3, 0); create_palka(325, 210, 80, 10, 0, 0, 3, 0); create_palka(235, 370, 80, 10, 0, 0, 3, 0); create_palka(315, 355, 10, 80, 0, 0, 5, 0); create_palka(320, 420, 80, 10, 0, 0, 3, 0); create_palka(395, 355, 10, 80, 0, 0, 5, 0); create_palka(315, 180, 10, 80, 0, 0, 5, 0); create_star(265, 225, 30, 40, 0, 0, 1, 0); create_star(345, 375, 30, 40, 0, 0, 1, 0); create_star(170, 360, 30, 40, 0, 0, 5, 0); create_star(175, 225, 30, 40, 0, 0, 5, 0); create_star(85, 265, 30, 40, 0, 0, 5, 0); create_star(85, 360, 30, 40, 0, 0, 4, 0); create_star(90, 85, 30, 40, 0, 0, 2, 0); create_star(90, 190, 30, 40, 0, 0, 1, 0); create_star(270, 155, 30, 40, 0, 0, 2, 0); create_star(170, 90, 30, 40, 0, 0, 4, 0); create_star(265, 25, 30, 40, 0, 0, 1, 0); create_palka(320, 15, 10, 80, 0, 0, 5, 0); create_palka(595, 220, 80, 10, 0, 0, 3, 0); cannon(595, 190, 50, 30, 0, 0, 0, 0); create_grav(265, 305, 30, 30, 0, 0, 1, 0); create_grav(175, 150, 30, 30, 0, 0, 1, 0); create_grav(130, 315, 30, 30, 0, 0, 1, 0); create_palka(320, 100, 80, 10, 0, 0, 1, 0); create_palka(325, 340, 80, 10, 0, 0, 1, 0); create_djoint(324.4, 87.8, 325.45, 105.65); create_djoint(317.15, 362.6, 328.7, 345.85); estvrag = 11; }; if (tlevel == 18){ scoreint.val = 1000; create_palka(450, 200, 10, 80, 0, 0, 5, 0); create_palka(450, 120, 10, 80, 0, 0, 5, 0); create_palka(450, 280, 10, 80, 0, 0, 5, 0); create_palka(460, 235, 80, 10, 0, 0, 3, 0); create_palka(370, 235, 80, 10, 0, 0, 3, 0); create_palka(280, 235, 80, 10, 0, 0, 3, 0); create_palka(550, 235, 80, 10, 0, 0, 3, 0); create_palka(360, 200, 10, 80, 0, 0, 5, 0); create_palka(540, 195, 10, 80, 0, 0, 5, 0); create_palka(280, 155, 10, 80, 0, 0, 5, 0); create_palka(280, 245, 10, 80, 0, 0, 5, 0); create_palka(620, 155, 10, 80, 0, 0, 5, 0); create_palka(620, 245, 10, 80, 0, 0, 5, 0); create_palka(330, 410, 80, 10, 0, 0, 1, 0); create_palka(515, 415, 80, 10, 0, 0, 1, 0); create_palka(325, 50, 80, 10, 0, 0, 1, 0); create_palka(510, 45, 80, 10, 0, 0, 1, 0); create_star(310, 0xFF, 30, 40, 0, 0, 1, 0); create_star(305, 185, 30, 40, 0, 0, 1, 0); create_star(395, 180, 30, 40, 0, 0, 2, 0); create_star(395, 0xFF, 30, 40, 0, 0, 2, 0); create_star(485, 0xFF, 30, 40, 0, 0, 2, 0); create_star(485, 180, 30, 40, 0, 0, 2, 0); create_star(570, 175, 30, 40, 0, 0, 1, 0); create_star(530, 295, 30, 40, 0, 0, 1, 0); create_grav(570, 0xFF, 30, 30, 0, 0, 1, 0); create_grav(530, 135, 30, 30, 0, 0, 1, 0); create_star(350, 135, 30, 40, 0, 0, 3, 0); create_star(350, 305, 30, 40, 0, 0, 3, 0); create_palka(0, 275, 80, 10, 0, 0, 3, 0); cannon(35, 245, 50, 30, 0, 0, 0, 0); create_rjoint(363.65, 55.8, 3); create_rjoint(553.8, 49.55, 5); create_rjoint(370.85, 415.25, 3); create_rjoint(559.95, 418.35, 5); estvrag = 10; }; if (tlevel == 19){ scoreint.val = 1000; create_palka(225, 480, 80, 10, 0, 0, 3, 0); create_palka(305, 480, 80, 10, 0, 0, 3, 0); create_palka(385, 480, 80, 10, 0, 0, 3, 0); create_palka(465, 480, 80, 10, 0, 0, 3, 0); create_palka(545, 480, 80, 10, 0, 0, 3, 0); create_palka(300, 400, 10, 80, 0, 0, 4, 0); create_palka(380, 400, 10, 80, 0, 0, 4, 0); create_palka(460, 400, 10, 80, 0, 0, 4, 0); create_palka(540, 400, 10, 80, 0, 0, 4, 0); create_palka(615, 400, 10, 80, 0, 0, 4, 0); create_palka(225, 400, 10, 80, 0, 0, 4, 0); create_palka(225, 390, 80, 10, 0, 0, 1, 0); create_palka(305, 390, 80, 10, 0, 0, 1, 0); create_palka(385, 390, 80, 10, 0, 0, 1, 0); create_palka(465, 390, 80, 10, 0, 0, 1, 0); create_palka(545, 390, 80, 10, 0, 0, 1, 0); create_palka(300, 310, 10, 80, 0, 0, 4, 0); create_palka(380, 310, 10, 80, 0, 0, 4, 0); create_palka(460, 310, 10, 80, 0, 0, 4, 0); create_palka(540, 310, 10, 80, 0, 0, 4, 0); create_palka(305, 300, 80, 10, 0, 0, 1, 0); create_palka(385, 300, 80, 10, 0, 0, 1, 0); create_palka(465, 300, 80, 10, 0, 0, 1, 0); create_palka(380, 220, 10, 80, 0, 0, 4, 0); create_palka(460, 220, 10, 80, 0, 0, 4, 0); create_palka(385, 210, 80, 10, 0, 0, 1, 0); create_triangle(410, 180, 30, 30, 0, 0, 2, 0); create_palka(620, 275, 80, 10, 0, 0, 3, 0); create_palka(620, 185, 80, 10, 0, 0, 3, 0); create_palka(620, 195, 10, 80, 0, 0, 4, 0); create_palka(645, 195, 10, 80, 0, 0, 4, 0); create_grav(660, 220, 30, 30, 0, 0, 1, 0); create_palka(0, 300, 80, 10, 0, 0, 3, 0); create_star(250, 420, 30, 40, 0, 0, 1, 0); create_star(330, 420, 30, 40, 0, 0, 1, 0); create_star(410, 420, 30, 40, 0, 0, 1, 0); create_star(490, 420, 30, 40, 0, 0, 1, 0); create_star(570, 420, 30, 40, 0, 0, 1, 0); create_star(410, 330, 30, 40, 0, 0, 2, 0); create_star(490, 330, 30, 40, 0, 0, 3, 0); create_star(330, 330, 30, 40, 0, 0, 5, 0); create_star(410, 240, 30, 40, 0, 0, 4, 0); cannon(45, 270, 50, 30, 0, 0, 0, 0); create_kvad(235, 400, 20, 20, 0, 0, 1, 0); create_kvad(310, 400, 20, 20, 0, 0, 1, 0); create_kvad(390, 400, 20, 20, 0, 0, 1, 0); create_kvad(470, 400, 20, 20, 0, 0, 1, 0); create_kvad(550, 400, 20, 20, 0, 0, 1, 0); create_kvad(310, 310, 20, 20, 0, 0, 1, 0); create_kvad(390, 310, 20, 20, 0, 0, 1, 0); create_kvad(470, 310, 20, 20, 0, 0, 1, 0); create_kvad(390, 220, 20, 20, 0, 0, 1, 0); estvrag = 9; }; if (tlevel == 20){ scoreint.val = 1000; create_circ(320, 215, 30, 30, 0, 0, 2, 0); create_circ(400, 110, 30, 30, 0, 0, 2, 0); create_circ(470, 215, 30, 30, 0, 0, 2, 0); create_circ(565, 105, 30, 30, 0, 0, 2, 0); create_circ(405, 325, 30, 30, 0, 0, 2, 0); create_circ(565, 325, 30, 30, 0, 0, 2, 0); create_palka(330, 270, 10, 80, 0, 0, 4, 0); create_palka(410, 160, 10, 80, 0, 0, 4, 0); create_palka(415, 380, 10, 80, 0, 0, 4, 0); create_palka(480, 260, 10, 80, 0, 0, 4, 0); create_palka(575, 375, 10, 80, 0, 0, 4, 0); create_palka(575, 150, 10, 80, 0, 0, 4, 0); create_palka(10, 300, 80, 10, 0, 0, 3, 0); cannon(40, 270, 50, 30, 0, 0, 0, 0); create_star(525, 265, 30, 40, 0, 0, 1, 0); create_star(450, 370, 30, 40, 0, 0, 2, 0); create_star(400, 265, 30, 40, 0, 0, 1, 0); create_star(525, 370, 30, 40, 0, 0, 2, 0); create_star(490, 420, 30, 40, 0, 0, 4, 0); create_star(335, 145, 30, 40, 0, 0, 3, 0); create_star(330, 395, 30, 40, 0, 0, 3, 0); create_circ(320, 10, 30, 30, 0, 0, 2, 0); create_circ(470, 10, 30, 30, 0, 0, 2, 0); create_palka(330, 50, 10, 80, 0, 0, 4, 0); create_palka(480, 50, 10, 80, 0, 0, 4, 0); create_star(400, 45, 30, 40, 0, 0, 2, 0); create_star(525, 45, 30, 40, 0, 0, 2, 0); create_star(530, 190, 30, 40, 0, 0, 3, 0); create_star(510, 100, 30, 40, 0, 0, 3, 0); create_grav(470, 165, 30, 30, 0, 0, 1, 0); create_djoint(415.3, 134.3, 415.3, 165.8); create_djoint(580.6, 129.15, 580.6, 158.45); create_djoint(579.55, 348.15, 579.55, 380.35); create_djoint(484.5, 240.7, 484.5, 265.8); create_djoint(419.45, 350.2, 419.45, 384.1); create_djoint(334.7, 238.65, 334.7, 276.25); create_djoint(335.75, 36.15, 335.75, 58.2); create_djoint(484.55, 35.15, 484.55, 57.15); estvrag = 11; }; if (tlevel == 21){ scoreint.val = 1000; create_palka(652, 77, 10, 80, 45, 0, 5, 0); create_palka(482, -3, 10, 80, 45, 0, 5, 0); create_palka(460, 335, 20, 160, 0, 0, 5, 0); create_palka(460, 175, 20, 160, 0, 0, 5, 0); create_palka(365, 335, 20, 160, 0, 0, 5, 0); create_palka(365, 175, 20, 160, 0, 0, 5, 0); create_palka(415, 80, 10, 80, 0, 0, 4, 0); create_star(575, 190, 30, 40, 0, 0, 1, 0); create_star(580, 250, 30, 40, 0, 0, 1, 0); create_star(580, 305, 30, 40, 0, 0, 1, 0); create_star(580, 360, 30, 40, 0, 0, 1, 0); create_star(580, 415, 30, 40, 0, 0, 2, 0); create_star(405, 180, 30, 40, 0, 0, 3, 0); create_star(405, 235, 30, 40, 0, 0, 3, 0); create_star(410, 295, 30, 40, 0, 0, 3, 0); create_star(410, 355, 30, 40, 0, 0, 3, 0); create_star(410, 415, 30, 40, 0, 0, 5, 0); create_palka(80, 415, 10, 80, 0, 0, 5, 0); create_palka(80, 335, 10, 80, 0, 0, 5, 0); create_palka(0, 335, 80, 10, 0, 0, 3, 0); cannon(40, 305, 50, 30, 0, 0, 0, 0); create_palka(430, 0, 80, 10, 0, 0, 3, 0); create_palka(605, 75, 80, 10, 0, 0, 3, 0); create_palka(480, 175, 80, 10, 0, 0, 3, 0); create_rjoint(420.45, 119.85, 2); create_border(0); estvrag = 10; }; if (tlevel == 22){ scoreint.val = 1000; create_palka(608, 298, 15, 120, 0, 0, 5, 0); create_palka(503, 418, 120, 15, 0, 0, 3, 0); create_palka(608, 53, 15, 120, 0, 0, 5, 0); create_palka(78, 53, 15, 120, 0, 0, 5, 0); create_palka(78, 298, 15, 120, 0, 0, 5, 0); create_palka(78, 418, 120, 15, 0, 0, 3, 0); create_palka(93, 53, 120, 15, 0, 0, 3, 0); create_palka(488, 53, 120, 15, 0, 0, 3, 0); create_palka(305, 235, 80, 10, 0, 0, 3, 0); cannon(320, 215, 50, 30, 0, 0, 0, 0); create_triangle(325, 425, 60, 60, 0, 0, 1, 0); create_triangle(315, 5, 60, 60, 180, 0, 1, 0); create_triangle(630, 210, 60, 60, -90, 0, 1, 0); create_triangle(10, 205, 60, 60, 90, 0, 1, 0); create_palka(195, 420, 80, 10, 0, 0, 3, 0); create_palka(425, 420, 80, 10, 0, 0, 3, 0); create_palka(210, 55, 80, 10, 0, 0, 3, 0); create_palka(410, 55, 80, 10, 0, 0, 3, 0); create_star(430, 440, 30, 40, 0, 0, 1, 0); create_palka(90, 230, 80, 10, 0, 0, 1, 0); create_palka(525, 235, 80, 10, 0, 0, 1, 0); create_palka(305, 115, 80, 10, 0, 0, 1, 0); create_palka(310, 355, 80, 10, 0, 0, 1, 0); create_star(475, 440, 30, 40, 0, 0, 1, 0); create_star(520, 440, 30, 40, 0, 0, 1, 0); create_grav(640, 450, 30, 30, 0, 0, 1, 0); create_star(250, 440, 30, 40, 0, 0, 1, 0); create_star(200, 440, 30, 40, 0, 0, 1, 0); create_star(145, 440, 30, 40, 0, 0, 1, 0); create_grav(30, 450, 30, 30, 0, 0, 1, 0); create_star(25, 300, 30, 40, 0, 0, 2, 0); create_star(25, 345, 30, 40, 0, 0, 2, 0); create_star(25, 395, 30, 40, 0, 0, 2, 0); create_grav(185, 135, 30, 30, 0, 0, 1, 0); create_star(150, 15, 30, 40, 0, 0, 3, 0); create_star(195, 15, 30, 40, 0, 0, 3, 0); create_star(240, 15, 30, 40, 0, 0, 3, 0); create_star(525, 15, 30, 40, 0, 0, 3, 0); create_star(480, 15, 30, 40, 0, 0, 3, 0); create_star(435, 15, 30, 40, 0, 0, 3, 0); create_star(640, 300, 30, 40, 0, 0, 2, 0); create_star(640, 350, 30, 40, 0, 0, 2, 0); create_star(640, 400, 30, 40, 0, 0, 2, 0); create_star(635, 60, 30, 40, 0, 0, 4, 0); create_star(635, 105, 30, 40, 0, 0, 4, 0); create_star(635, 150, 30, 40, 0, 0, 4, 0); create_star(25, 55, 30, 40, 0, 0, 4, 0); create_star(25, 95, 30, 40, 0, 0, 4, 0); create_star(25, 135, 30, 40, 0, 0, 4, 0); create_rjoint(567.2, 239.65, 2); create_rjoint(346.1, 120.85, 2); create_rjoint(351.3, 359.55, 2); create_rjoint(131.2, 235.6, 2); create_border(1); estvrag = 24; }; if (tlevel == 23){ scoreint.val = 1000; create_palka(70, 295, 80, 10, 0, 0, 1, 0); create_circ(75, 310, 20, 20, 0, 0, 3, 0); create_circ(120, 310, 20, 20, 0, 0, 3, 0); cannon(610, 0xFF, 50, 30, 0, 0, 0, 0); create_palka(610, 285, 80, 10, 0, 0, 3, 0); create_palka(455, 285, 80, 10, 0, 0, 3, 0); create_palka(370, 285, 80, 10, 0, 0, 3, 0); create_palka(290, 285, 80, 10, 0, 0, 3, 0); create_palka(533, 464, 80, 10, -20, 0, 3, 0); create_palka(305, 370, 80, 10, 0, 0, 3, 0); create_palka(230, 370, 80, 10, 0, 0, 3, 0); create_palka(159, 352, 80, 10, 30, 0, 3, 0); create_palka(85, 335, 80, 10, 0, 0, 3, 0); create_palka(53, 149, 15, 157, 0, 0, 4, 0); create_kvad(55, 315, 20, 20, 0, 0, 5, 0); create_palka(10, 335, 80, 10, 0, 0, 3, 0); create_palka(610, 450, 80, 10, 0, 0, 3, 0); create_star(370, 295, 30, 40, 0, 0, 2, 0); create_star(335, 295, 30, 40, 0, 0, 2, 0); create_star(300, 295, 30, 40, 0, 0, 2, 0); create_palka(535, 285, 80, 10, 0, 0, 3, 0); create_palka(383, 384, 80, 10, 20, 0, 3, 0); create_grav(550, 425, 30, 30, 0, 0, 1, 0); create_palka(265, 15, 10, 80, 0, 0, 5, 0); create_palka(100, 15, 10, 80, 0, 0, 5, 0); create_star(125, 15, 30, 40, 0, 0, 1, 0); create_star(170, 15, 30, 40, 0, 0, 1, 0); create_star(215, 15, 30, 40, 0, 0, 1, 0); create_star(130, 65, 30, 40, 0, 0, 3, 0); create_star(170, 65, 30, 40, 0, 0, 3, 0); create_star(215, 65, 30, 40, 0, 0, 3, 0); create_palka(265, 95, 10, 80, 0, 0, 5, 0); create_kvad(70, 285, 10, 10, 0, 0, 5, 0); create_kvad(140, 285, 10, 10, 0, 0, 5, 0); create_djoint(93.75, 299.15, 84.35, 320.35); create_djoint(84.6, 320.15, 77.1, 298.35); create_rjoint(59.7, 229.3, 0); create_djoint(119.75, 298.6, 128.9, 320.85); create_djoint(127.95, 318.9, 143.55, 298.55); create_djoint(77.4, 289.35, 81.6, 300.9); create_djoint(143.6, 287.2, 142.55, 298.7); create_border(1); estvrag = 9; }; if (tlevel == 24){ scoreint.val = 1000; cannon(630, 455, 50, 30, 0, 0, 0, 0); create_palka(100, 405, 10, 80, 0, 0, 5, 0); create_palka(100, 325, 10, 80, 0, 0, 5, 0); create_palka(610, 220, 80, 10, 0, 0, 3, 0); create_palka(630, 115, 60, 10, 0, 0, 3, 0); create_palka(535, 10, 10, 80, 0, 0, 5, 0); create_palka(535, 90, 10, 80, 0, 0, 5, 0); create_palka(535, 170, 10, 80, 0, 0, 5, 0); create_star(615, 170, 30, 40, 0, 0, 1, 0); create_star(630, 70, 30, 40, 0, 0, 2, 0); create_star(660, 70, 30, 40, 0, 0, 2, 0); create_star(40, 330, 30, 40, 0, 0, 5, 0); create_star(40, 435, 30, 40, 0, 0, 5, 0); create_grav(650, 175, 30, 30, 0, 0, 1, 0); create_palka(187, 177, 10, 80, 45, 0, 5, 0); create_star(75, 185, 30, 40, 0, 0, 1, 0); create_star(110, 185, 30, 40, 0, 0, 2, 0); create_star(145, 185, 30, 40, 0, 0, 3, 0); create_palka(90, 240, 80, 10, 0, 0, 3, 0); create_palka(22, 212, 80, 10, 45, 0, 3, 0); create_palka(85, 120, 80, 10, 0, 0, 3, 0); create_palka(187, 57, 10, 80, 45, 0, 5, 0); create_palka(17, 92, 80, 10, 45, 0, 3, 0); create_star(70, 65, 30, 40, 0, 0, 1, 0); create_star(105, 65, 30, 40, 0, 0, 2, 0); create_star(140, 65, 30, 40, 0, 0, 3, 0); create_palka(275, 140, 80, 10, 0, 0, 1, 0); create_palka(450, 10, 10, 80, 0, 0, 5, 0); create_palka(450, 90, 10, 80, 0, 0, 5, 0); create_star(480, 15, 30, 40, 0, 0, 2, 0); create_star(480, 65, 30, 40, 0, 0, 5, 0); create_star(480, 120, 30, 40, 0, 0, 3, 0); create_star(480, 170, 30, 40, 0, 0, 2, 0); create_palka(170, 405, 10, 80, 0, 0, 5, 0); create_palka(170, 325, 10, 80, 0, 0, 5, 0); create_star(130, 325, 30, 40, 0, 0, 3, 0); create_star(130, 375, 30, 40, 0, 0, 2, 0); create_star(130, 435, 30, 40, 0, 0, 1, 0); create_star(40, 380, 30, 40, 0, 0, 4, 0); create_rjoint(315.15, 145.65, 2); create_border(1); estvrag = 19; }; if (tlevel == 25){ scoreint.val = 1000; create_palka(490, 10, 10, 80, 0, 0, 5, 0); create_palka(490, 90, 10, 80, 0, 0, 5, 0); create_star(520, 20, 30, 40, 0, 0, 1, 0); create_star(575, 20, 30, 40, 0, 0, 2, 0); create_star(635, 20, 30, 40, 0, 0, 3, 0); create_star(520, 85, 30, 40, 0, 0, 4, 0); create_star(575, 85, 30, 40, 0, 0, 5, 0); create_star(635, 85, 30, 40, 0, 0, 1, 0); create_grav(395, 305, 30, 30, 0, 0, 1, 0); create_palka(218, 98, 40, 5, 0, 0, 3, 0); cannon(215, 75, 50, 30, 0, 0, 0, 0); create_palka(320, 285, 80, 10, 0, 0, 3, 0); create_palka(150, 425, 80, 10, 0, 0, 3, 0); create_palka(170, 365, 280, 20, 0, 0, 1, 0); create_palka(275, 425, 80, 10, 0, 0, 3, 0); create_star(360, 340, 30, 40, 0, 0, 3, 0); create_kvad(175, 345, 20, 20, 0, 0, 5, 0); create_kvad(430, 345, 20, 20, 0, 0, 5, 0); create_palka(400, 285, 80, 10, 0, 0, 3, 0); create_kvad(0xFF, 345, 20, 20, 0, 0, 5, 0); create_star(360, 300, 30, 40, 0, 0, 5, 0); create_star(395, 340, 30, 40, 0, 0, 2, 0); create_palka(342, 222, 10, 80, 45, 0, 5, 0); create_kvad(0xFF, 325, 20, 20, 0, 0, 5, 0); create_rjoint(279.15, 376.1, 0); create_djoint(263.3, 359.45, 264.3, 369.95); create_djoint(176.5, 360.5, 176.5, 372); create_djoint(440.4, 359.45, 440.2, 371.75); create_djoint(263.45, 340.9, 263.45, 346.15); create_border(1); estvrag = 9; }; if (tlevel == 26){ scoreint.val = 1000; create_palka(70, 23, 15, 120, 45, 0, 5, 0); create_palka(26, 156, 80, 10, 57, 0, 3, 0); create_palka(125, 110, 80, 10, 0, 0, 3, 0); create_palka(205, 110, 80, 10, 0, 0, 3, 0); create_palka(275, 30, 10, 80, 0, 0, 5, 0); create_palka(125, 21, 160, 20, -7, 0, 3, 0); create_circ(335, 0xFF, 30, 30, 0, 0, 2, 0); create_circ(260, 325, 30, 30, 0, 0, 2, 0); create_circ(290, 365, 30, 30, 0, 0, 2, 0); create_circ(335, 390, 30, 30, 0, 0, 2, 0); create_circ(375, 285, 30, 30, 0, 0, 2, 0); create_circ(405, 320, 30, 30, 0, 0, 2, 0); create_circ(380, 365, 30, 30, 0, 0, 2, 0); create_star(335, 290, 30, 40, 0, 0, 1, 0); create_star(300, 320, 30, 40, 0, 0, 1, 0); create_star(365, 320, 30, 40, 0, 0, 2, 0); create_grav(335, 350, 30, 30, 0, 0, 1, 0); create_star(130, 55, 30, 40, 0, 0, 1, 0); create_star(165, 50, 30, 40, 0, 0, 1, 0); create_star(205, 45, 30, 40, 0, 0, 1, 0); create_palka(10, 300, 80, 10, 0, 0, 3, 0); create_palka(90, 300, 80, 10, 0, 0, 3, 0); create_palka(160, 220, 10, 80, 0, 0, 4, 0); create_palka(85, 220, 10, 80, 0, 0, 4, 0); create_palka(10, 220, 10, 80, 0, 0, 4, 0); create_palka(10, 210, 80, 10, 0, 0, 1, 0); create_palka(90, 210, 80, 10, 0, 0, 1, 0); create_star(35, 240, 30, 40, 0, 0, 2, 0); create_star(115, 240, 30, 40, 0, 0, 2, 0); create_palka(605, 170, 80, 10, 0, 0, 3, 0); cannon(605, 145, 50, 30, 0, 0, 0, 0); create_border(1); estvrag = 8; }; if (tlevel == 27){ scoreint.val = 1000; create_palka(75, 200, 80, 10, 0, 0, 3, 0); create_circ(135, 165, 30, 30, 0, 0, 2, 0); create_circ(135, 125, 30, 30, 0, 0, 2, 0); create_palka(75, 120, 10, 80, 0, 0, 5, 0); create_palka(23, 68, 120, 15, 0, 0, 1, 0); create_palka(10, 375, 80, 10, 0, 0, 3, 0); create_palka(164, 392, 80, 10, 30, 0, 3, 0); create_palka(300, 375, 10, 80, 0, 0, 5, 0); create_palka(220, 295, 80, 10, 0, 0, 3, 0); create_palka(25, 305, 120, 10, 0, 0, 1, 0); create_palka(224, 427, 80, 10, 30, 0, 3, 0); create_palka(300, 295, 10, 80, 0, 0, 5, 0); create_palka(145, 295, 80, 10, 0, 0, 3, 0); create_palka(90, 375, 80, 10, 0, 0, 3, 0); create_circ(285, 265, 30, 30, 0, 0, 1, 0); cannon(610, 300, 50, 30, 0, 0, 0, 0); create_star(195, 345, 30, 40, 0, 0, 1, 0); create_circ(85, 240, 20, 20, 0, 0, 4, 0); create_star(155, 330, 30, 40, 0, 0, 1, 0); create_star(230, 370, 30, 40, 0, 0, 1, 0); create_grav(260, 395, 30, 30, 0, 0, 1, 0); create_star(95, 120, 30, 40, 0, 0, 3, 0); create_star(95, 160, 30, 40, 0, 0, 3, 0); create_palka(385, 120, 80, 10, 0, 0, 3, 0); create_palka(297, 2, 10, 80, 135, 0, 5, 0); create_palka(487, 57, 10, 80, 45, 0, 5, 0); create_palka(317, 92, 80, 10, 45, 0, 3, 0); create_palka(520, 65, 80, 10, 0, 0, 3, 0); create_triangle(645, 10, 45, 45, 180, 0, 1, 0); create_star(530, 15, 30, 40, 0, 0, 1, 0); create_star(495, 15, 30, 40, 0, 0, 2, 0); create_star(345, 15, 30, 40, 0, 0, 2, 0); create_star(380, 15, 30, 40, 0, 0, 2, 0); create_star(415, 15, 30, 40, 0, 0, 2, 0); create_star(455, 15, 30, 40, 0, 0, 2, 0); create_star(380, 75, 30, 40, 0, 0, 3, 0); create_star(410, 75, 30, 40, 0, 0, 3, 0); create_star(440, 75, 30, 40, 0, 0, 3, 0); create_rjoint(82.7, 75.45, 0); create_rjoint(85.75, 310, 0); create_border(1); estvrag = 14; }; if (tlevel == 28){ scoreint.val = 1000; create_circ(10, 125, 30, 30, 0, 0, 2, 0); create_circ(35, 145, 30, 30, 0, 0, 2, 0); create_circ(115, 150, 30, 30, 0, 0, 2, 0); create_circ(140, 130, 30, 30, 0, 0, 2, 0); create_circ(155, 105, 30, 30, 0, 0, 2, 0); create_circ(135, 10, 30, 30, 0, 0, 2, 0); create_grav(210, 10, 30, 30, 0, 0, 1, 0); create_palka(145, 225, 80, 10, 0, 0, 3, 0); create_palka(95, 295, 80, 10, 0, 0, 3, 0); create_star(100, 0xFF, 30, 40, 0, 0, 1, 0); create_star(135, 0xFF, 30, 40, 0, 0, 1, 0); create_star(40, 55, 30, 40, 0, 0, 1, 0); create_star(120, 55, 30, 40, 0, 0, 1, 0); create_star(60, 100, 30, 40, 0, 0, 1, 0); create_star(100, 100, 30, 40, 0, 0, 1, 0); create_palka(2, 322, 80, 10, 45, 0, 3, 0); create_palka(57, 377, 80, 10, 45, 0, 3, 0); create_palka(130, 405, 10, 80, 0, 0, 4, 0); create_circ(510, 410, 30, 30, 0, 0, 2, 0); create_circ(525, 380, 30, 30, 0, 0, 2, 0); create_circ(545, 355, 30, 30, 0, 0, 2, 0); create_circ(565, 335, 30, 30, 0, 0, 2, 0); create_star(545, 405, 30, 40, 0, 0, 5, 0); create_star(570, 370, 30, 40, 0, 0, 3, 0); create_star(590, 405, 30, 40, 0, 0, 1, 0); create_star(15, 340, 30, 40, 0, 0, 5, 0); create_star(45, 370, 30, 40, 0, 0, 3, 0); create_star(75, 400, 30, 40, 0, 0, 2, 0); create_star(15, 400, 30, 40, 0, 0, 1, 0); create_star(80, 55, 30, 40, 0, 0, 2, 0); create_palka(610, 140, 80, 10, 0, 0, 3, 0); create_palka(530, 140, 80, 10, 0, 0, 3, 0); create_palka(450, 140, 80, 10, 0, 0, 3, 0); cannon(285, 455, 50, 30, 0, 0, 0, 0); create_palka(382, 107, 80, 10, 45, 0, 3, 0); create_star(480, 20, 30, 40, 0, 0, 2, 0); create_star(525, 50, 30, 40, 0, 0, 1, 0); create_star(565, 20, 30, 40, 0, 0, 2, 0); create_star(600, 55, 30, 40, 0, 0, 1, 0); create_star(640, 20, 30, 40, 0, 0, 2, 0); create_star(565, 95, 30, 40, 0, 0, 3, 0); create_star(490, 95, 30, 40, 0, 0, 3, 0); create_star(645, 95, 30, 40, 0, 0, 3, 0); create_triangle(295, 10, 45, 45, 180, 0, 1, 0); create_djoint(135.35, 411.15, 121.75, 406.95); create_border(1); estvrag = 22; }; if (tlevel == 29){ scoreint.val = 1000; create_circ(455, 10, 30, 30, 0, 0, 2, 0); create_circ(475, 40, 30, 30, 0, 0, 2, 0); create_circ(495, 70, 30, 30, 0, 0, 2, 0); create_circ(520, 100, 30, 30, 0, 0, 2, 0); create_circ(525, 135, 30, 30, 0, 0, 2, 0); create_circ(510, 175, 30, 30, 0, 0, 2, 0); create_circ(590, 175, 30, 30, 0, 0, 2, 0); create_circ(600, 135, 30, 30, 0, 0, 2, 0); create_circ(595, 100, 30, 30, 0, 0, 2, 0); create_circ(580, 65, 30, 30, 0, 0, 2, 0); create_circ(560, 40, 30, 30, 0, 0, 2, 0); create_circ(545, 10, 30, 30, 0, 0, 2, 0); create_star(505, 15, 30, 40, 0, 0, 1, 0); create_star(525, 50, 30, 40, 0, 0, 1, 0); create_star(550, 85, 30, 40, 0, 0, 2, 0); create_star(560, 130, 30, 40, 0, 0, 2, 0); create_star(550, 175, 30, 40, 0, 0, 3, 0); create_circ(375, 455, 30, 30, 0, 0, 2, 0); create_circ(385, 420, 30, 30, 0, 0, 2, 0); create_circ(400, 385, 30, 30, 0, 0, 2, 0); create_circ(400, 345, 30, 30, 0, 0, 2, 0); create_circ(380, 315, 30, 30, 0, 0, 2, 0); create_circ(460, 315, 30, 30, 0, 0, 2, 0); create_circ(475, 345, 30, 30, 0, 0, 2, 0); create_circ(475, 385, 30, 30, 0, 0, 2, 0); create_circ(465, 420, 30, 30, 0, 0, 2, 0); create_circ(450, 455, 30, 30, 0, 0, 2, 0); create_star(430, 320, 30, 40, 0, 0, 5, 0); create_star(440, 365, 30, 40, 0, 0, 4, 0); create_star(430, 405, 30, 40, 0, 0, 3, 0); create_star(410, 445, 30, 40, 0, 0, 2, 0); create_circ(60, 315, 30, 30, 0, 0, 2, 0); create_circ(95, 315, 30, 30, 0, 0, 2, 0); create_circ(130, 315, 30, 30, 0, 0, 2, 0); create_circ(165, 330, 30, 30, 0, 0, 2, 0); create_circ(190, 360, 30, 30, 0, 0, 2, 0); create_circ(210, 390, 30, 30, 0, 0, 2, 0); create_circ(210, 425, 30, 30, 0, 0, 2, 0); create_circ(185, 455, 30, 30, 0, 0, 2, 0); create_star(145, 365, 30, 40, 0, 0, 1, 0); create_star(100, 355, 30, 40, 0, 0, 1, 0); create_star(175, 410, 30, 40, 0, 0, 1, 0); create_star(140, 445, 30, 40, 0, 0, 1, 0); create_star(125, 400, 30, 40, 0, 0, 2, 0); create_star(100, 440, 30, 40, 0, 0, 3, 0); create_circ(290, 125, 30, 30, 0, 0, 2, 0); create_circ(195, 125, 30, 30, 0, 0, 2, 0); create_circ(165, 85, 30, 30, 0, 0, 2, 0); create_circ(190, 45, 30, 30, 0, 0, 2, 0); create_circ(240, 30, 30, 30, 0, 0, 2, 0); create_circ(285, 45, 30, 30, 0, 0, 2, 0); create_circ(315, 85, 30, 30, 0, 0, 2, 0); create_palka(220, 190, 80, 10, 0, 0, 1, 0); create_palka(13, 228, 40, 5, 0, 0, 3, 0); cannon(5, 205, 50, 30, 0, 0, 0, 0); create_grav(245, 90, 30, 30, 0, 0, 1, 0); create_rjoint(260.35, 194.2, 8); estvrag = 15; }; if (tlevel == 30){ scoreint.val = 1000; create_palka(610, 75, 80, 10, 0, 0, 3, 0); create_palka(515, 150, 80, 10, 0, 0, 3, 0); create_grav(545, 110, 30, 30, 0, 0, 1, 0); create_triangle(645, 85, 45, 45, 180, 0, 1, 0); create_star(525, 30, 30, 40, 0, 0, 1, 0); create_star(560, 30, 30, 40, 0, 0, 1, 0); cannon(620, 455, 50, 30, 0, 0, 0, 0); create_palka(0xFF, 310, 80, 10, 0, 0, 3, 0); create_palka(335, 240, 10, 80, 0, 0, 5, 0); create_palka(145, 70, 80, 10, 0, 0, 3, 0); create_palka(145, 125, 80, 10, 0, 0, 3, 0); create_palka(295, 85, 10, 80, 0, 0, 4, 0); create_circ(40, 405, 30, 30, 0, 0, 2, 0); create_circ(60, 380, 30, 30, 0, 0, 2, 0); create_circ(80, 355, 30, 30, 0, 0, 2, 0); create_circ(85, 325, 30, 30, 0, 0, 2, 0); create_circ(75, 295, 30, 30, 0, 0, 2, 0); create_circ(55, 270, 30, 30, 0, 0, 2, 0); create_circ(30, 250, 30, 30, 0, 0, 2, 0); create_circ(35, 220, 30, 30, 0, 0, 2, 0); create_circ(65, 205, 30, 30, 0, 0, 2, 0); create_circ(100, 215, 30, 30, 0, 0, 2, 0); create_circ(115, 240, 30, 30, 0, 0, 2, 0); create_circ(135, 265, 30, 30, 0, 0, 2, 0); create_circ(150, 295, 30, 30, 0, 0, 2, 0); create_circ(155, 325, 30, 30, 0, 0, 2, 0); create_circ(160, 360, 30, 30, 0, 0, 2, 0); create_circ(145, 385, 30, 30, 0, 0, 2, 0); create_circ(130, 415, 30, 30, 0, 0, 2, 0); create_star(80, 240, 30, 40, 0, 0, 2, 0); create_star(105, 275, 30, 40, 0, 0, 2, 0); create_star(120, 320, 30, 40, 0, 0, 3, 0); create_star(110, 365, 30, 40, 0, 0, 4, 0); create_star(90, 405, 30, 40, 0, 0, 5, 0); create_star(260, 265, 30, 40, 0, 0, 1, 0); create_star(295, 265, 30, 40, 0, 0, 1, 0); create_star(150, 85, 30, 40, 0, 0, 3, 0); create_star(190, 85, 30, 40, 0, 0, 3, 0); create_rjoint(299.6, 123.9, 5); create_border(1); estvrag = 11; }; if (!glmenu){ scoreTimer.start(); }; if (tlevel >= 3){ backgroundm.gotoAndStop(random(1, 3)); }; 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; shotint = 0; } public function mousePressed(_arg1:MouseEvent){ if (((!(damenu)) && (!(glmenu)))){ }; } public function textCreate():void{ format1.font = myfont.fontName; format1.size = 15; gmenu = new MovieClip(); gmenu.x = 0; gmenu.y = 0; sloy2.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(); var _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; trace("1"); 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; sloy2.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.bitbtn.addEventListener(MouseEvent.CLICK, BitClick); trace("2"); glmenu = true; selectm = new selectmc(); selectm.x = 350; selectm.y = 262.5; sloy2.addChild(selectm); selectm.menubtn.addEventListener(MouseEvent.CLICK, closeBtn); selectm.bitbtn.addEventListener(MouseEvent.CLICK, BitClick); menum = new menumc(); menum.x = (0 + (menum.width / 2)); menum.y = (0 + (menum.height / 2)); selectm.lvltxt.visible = false; selectm.shottxt.visible = false; sloy2.addChild(menum); trace("2.1"); menum.tred.text = "всего выстрелов"; menum.playbtn.addEventListener(MouseEvent.CLICK, butm1click); menum.bitbtn.addEventListener(MouseEvent.CLICK, BitClick); trace("2.2"); pricelm = new pricelmc(); sloy3.addChild(pricelm); pricelm.mouseEnabled = false; pricelm.mouseChildren = false; pricelm.visible = false; 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); trace("3"); awardm = new awardmc(); awardm.x = (0 + (awardm.width / 2)); awardm.y = (0 + (awardm.height / 2)); sloy2.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); awardm.mfz.visible = false; powerlinem = new powerline(); sloy3.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); sloy2.addChild(soundbtn); btnbtnmc2 = new btnbtn(); btnbtnmc2.x = soundbtn.x; btnbtnmc2.y = soundbtn.y; btnbtnmc2.buttonMode = true; sloy2.addChild(btnbtnmc2); btnbtnmc2.addEventListener(MouseEvent.CLICK, soundBtnDa); btnbtnmc2.addEventListener(MouseEvent.MOUSE_OVER, btnOver); btnbtnmc2.addEventListener(MouseEvent.MOUSE_OUT, btnOut); trace("4"); musicbtn = new musicmc(); musicbtn.x = (630 + (musicbtn.width / 2)); musicbtn.y = (23 + (musicbtn.height / 2)); musicbtn.filters = [glow]; musicbtn.gotoAndStop(1); sloy2.addChild(musicbtn); btnbtnmc3 = new btnbtn(); btnbtnmc3.x = musicbtn.x; btnbtnmc3.y = musicbtn.y; btnbtnmc3.buttonMode = true; sloy2.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); sloy1.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); panelnextm.bitbtn.addEventListener(MouseEvent.CLICK, BitClick); trace("5"); scoreTimer = new Timer(1000); menTimer = new Timer(500); scoreTimer.addEventListener(TimerEvent.TIMER, onScoreTimer); mySharedObject.data.lev0 = "100"; lockm = new lockmc(); lockm.x = 0; lockm.y = 0; sloy2.addChild(lockm); lockm.visible = false; } public function UpdateTogom(_arg1:Event):void{ if (_arg1.target.currentFrame == 4){ if (togomd == 1){ menum.visible = false; selectm.visible = true; allscore.val = 0; allshots = 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, trans); }; }; 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, trans); }; }; if (togomd == 4){ menum.visible = false; selectm.visible = false; awardm.visible = true; allscore.val = 0; allshots = 0; worldClearMen(); menTimer.stop(); DeleteShar(); awardTest(); }; _arg1.target.removeEventListener(Event.ENTER_FRAME, UpdateTogom); }; } 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; if (mySharedObject.data[("shot" + _arg1.target.clev)] != undefined){ selectm.shottxt.text = ("shots: " + mySharedObject.data[("shot" + _arg1.target.clev)]); }; if (mySharedObject.data[("shot" + _arg1.target.clev)] == undefined){ selectm.shottxt.text = ("shots " + 0); }; selectm.shottxt.visible = true; } 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; selectm.shottxt.visible = false; } public function selMen():void{ var _local1:*; var _local2:*; var _local3:*; var _local4:Number; var _local5:*; var _local6:*; 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 = []; }; var _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.val = (allscore.val + mySharedObject.data[("lev" + _local7)]); allshots = (allshots + mySharedObject.data[("shot" + _local7)]); _local5.buttonMode = true; }; _local7++; }; selectm.scoretxt.text = ("total score: " + allscore.val); selectm.allshottxt.text = ("total shots: " + allshots); } public function butmenOver(_arg1:Event):void{ _arg1.target.width = (_arg1.target.width + 10); _arg1.target.height = (_arg1.target.height + 10); } public function butmenOut(_arg1:Event):void{ _arg1.target.width = (_arg1.target.width - 10); _arg1.target.height = (_arg1.target.height - 10); } 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(); }; Mouse.hide(); pricelm.startDrag(true); pricelm.visible = true; togomd = 3; togom = new togomc(); togom.x = 0; togom.y = 0; sloy3.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 selmen1click(_arg1:Event):void{ var e = _arg1; var o:Object = {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)))); }}; var boardID:String = o.f(0, "cb6115ae471cd75b"); } public function selmen2click(_arg1:Event):void{ } public function butm1click(_arg1:Event):void{ var e = _arg1; if (yessound){ zv5s.play(); }; togomd = 1; togom = new togomc(); togom.x = 0; togom.y = 0; sloy3.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 loadVariablesNum(_arg1:String){ var _local2:* = new URLRequest(_arg1); var _local3:* = new URLLoader(); _local3.load(_local2); } public function getURL(_arg1:String, _arg2:String){ var _local3:String = _arg1; var _local4:URLRequest = new URLRequest(_local3); try { navigateToURL(_local4, _arg2); } catch(e:Error) { }; } public function butm2click(_arg1:Event):void{ if (yessound){ zv5s.play(); }; } public function butm3click(_arg1:Event):void{ if (yessound){ zv5s.play(); }; } public function BitClick(_arg1:Event):void{ if (yessound){ zv5s.play(); }; navigateToURL(new URLRequest("http://bitofgame.com/?utm_source=LizardCannon&utm_medium=Flash&utm_campaign=Lizardcannon"), "_blank"); } public function gogoclick(_arg1:Event):void{ ExternalInterface.call("setScore"); } public function subbtnclick(_arg1:Event):void{ var _local2:*; var _local3:*; var _local4:*; _local2 = new Date(); _local3 = _local2.getTime(); _local4 = _local2.getFullYear(); } public function closeBtn(_arg1:Event):void{ var e = _arg1; if (yessound){ zv5s.play(); }; Mouse.show(); pricelm.startDrag(false); pricelm.visible = false; gravint = 1; togomd = 2; togom = new togomc(); togom.x = 0; togom.y = 0; sloy3.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.val = 0; var i:* = 1; while (i < 31) { if (mySharedObject.data[("lev" + i)] == undefined){ } else { allscore2.val = (allscore2.val + mySharedObject.data[("lev" + i)]); }; i = (i + 1); }; } public function textUpdate():void{ menupanm.lvltxt.text = ("level " + tlevel); menupanm.scoretxt.text = ("score: " + scoreint.val); menupanm.shottxt.text = ("shots: " + shotint); pantf.text = (" " + (timevz / 100)); } public function ambclick(_arg1:Event):void{ var e = _arg1; if (yessound){ zv5s.play(); }; togomd = 4; togom = new togomc(); togom.x = 0; togom.y = 0; sloy3.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 awardTest():void{ allscore2.val = 0; var _local1:* = 1; while (_local1 < 31) { if (mySharedObject.data[("lev" + _local1)] == undefined){ } else { allscore2.val = (allscore2.val + mySharedObject.data[("lev" + _local1)]); }; _local1++; }; if (mySharedObject.data["aw1"] == undefined){ if (mySharedObject.data["lev8"] != 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.val >= 20000){ awardm.aw3.gotoAndStop(2); mySharedObject.data["aw3"] = "da"; }; }; if (mySharedObject.data["aw3"] != undefined){ awardm.aw3.gotoAndStop(2); }; if (mySharedObject.data["aw4"] == undefined){ if (allscore2.val >= 50000){ 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["lev14"] == undefined))) && ((sdelv <= 3)))) && ((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["lev21"] == undefined))) && ((sdelv <= 3)))) && ((tlevel >= 20)))){ awardm.aw8.gotoAndStop(2); mySharedObject.data["aw8"] = "da"; }; }; if (mySharedObject.data["aw8"] != undefined){ awardm.aw8.gotoAndStop(2); }; mySharedObject.flush(); } public function nextBtnEv(_arg1:MouseEvent):void{ gravint = 1; mySharedObject.flush(); tlevel++; glmenu = false; worldClear(); if (yessound){ zv5s.play(); }; } public function resBtnEv(_arg1:MouseEvent):void{ glmenu = false; worldClear(); if (yessound){ zv5s.play(); }; } public function mgBtnEv(_arg1:MouseEvent):void{ } 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 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, trans); }; if ((((selectm.visible == false)) && ((menum.visible == false)))){ scm = zvmuss2.play(0, int.MAX_VALUE, trans); }; musicbtn.gotoAndStop(1); yesmusic = true; }; }; } public function btnOver(_arg1:MouseEvent):void{ damenu = true; } public function btnOut(_arg1:MouseEvent):void{ damenu = false; } public function clickHandlerUp(_arg1:MouseEvent):void{ if (timevz < 1500){ timevz = (timevz + 100); }; } public function clickHandlerDown(_arg1:MouseEvent):void{ if (timevz > 100){ timevz = (timevz - 100); }; } public function onScoreTimer(_arg1:TimerEvent){ if (scoreint.val > 0){ scoreint.val--; }; } public function onmenTimer(_arg1:TimerEvent){ var _local2:*; _local2 = new star(); _local2.x = random(0, 700); _local2.y = random(-50, -100); _local2.addEventListener(Event.ENTER_FRAME, UpdateShar); _local2.addEventListener(MouseEvent.MOUSE_OVER, SharMouse); _local2.speed = random(6, 8); _local2.gotoAndStop(random(0, 5)); sloy2.addChild(_local2); menushar.push(_local2); _local2.mas = sharint; sharint++; } public function UpdateShar(_arg1:Event){ var _local2:int; _arg1.target.y = (_arg1.target.y + _arg1.target.speed); if (_arg1.target.y >= 740){ _arg1.target.removeEventListener(Event.ENTER_FRAME, UpdateShar); _arg1.target.removeEventListener(MouseEvent.MOUSE_OVER, SharMouse); _arg1.target.dead = true; menushar[_arg1.target.mas] = undefined; sloy2.removeChild((_arg1.target as MovieClip)); }; } public function SharMouse(_arg1:MouseEvent){ var i:int; var e = _arg1; var zvch = 1; zvch = random(1, 2); if (yessound){ if (zvch == 1){ zv3s.play(); }; if (zvch == 2){ zv4s.play(); }; }; e.target.removeEventListener(Event.ENTER_FRAME, UpdateShar); e.target.removeEventListener(MouseEvent.MOUSE_OVER, SharMouse); menushar[e.target.mas] = undefined; sloy2.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)); sloy2.addChild(stardeadm); } public function DeleteShar():void{ var _local1:* = 0; while (_local1 < menushar.length) { if (menushar[_local1] != undefined){ menushar[_local1].removeEventListener(Event.ENTER_FRAME, UpdateShar); menushar[_local1].removeEventListener(MouseEvent.MOUSE_OVER, SharMouse); sloy2.removeChild(menushar[_local1]); }; _local1++; }; menushar = []; sharint = 0; } public function butp(_arg1:MouseEvent):void{ } public function butp_selectm(_arg1:MouseEvent):void{ } public function butp_mfzg(_arg1:MouseEvent):void{ } public function mouseReleased(_arg1:MouseEvent){ var _local2:*; var _local3:*; var _local4:Number; var _local5:Point; var _local6:Point; var _local7:b2RevoluteJointDef; var _local8:b2RevoluteJointDef; var _local9:b2RevoluteJointDef; var _local10:b2RevoluteJointDef; var _local11:b2RevoluteJointDef; var _local12:uint; var _local13:uint; if (((!(damenu)) && (!(glmenu)))){ charging = 0; if (sc != null){ sc.stop(); }; if (yessound){ zv7s.play(); }; shotint++; bazooka.chasti.visible = false; powerlinem.visible = false; power = (distance(bazooka) / 14); _local5 = new Point(0, 0); _local6 = bazooka.pric.localToGlobal(_local5); _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(_local3, _local4); _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()); sloy1.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(10), real_pixels(15)); 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()); sloy1.addChild(_local2); listgranbody.push(body2); listgran.push(_local2); _local7 = new b2RevoluteJointDef(); _local7.Initialize(body, body2, new b2Vec2(body.GetPosition().x, (body.GetPosition().y + 0.5))); _local7.collideConnected = true; m_world.CreateJoint(_local7); _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()); sloy1.addChild(_local2); listgranbody.push(body3); listgran.push(_local2); _local8 = new b2RevoluteJointDef(); _local8.Initialize(body3, body2, new b2Vec2((body3.GetPosition().x - 0.1), (body3.GetPosition().y - 0.25))); m_world.CreateJoint(_local8); _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()); sloy1.addChild(_local2); listgranbody.push(body4); listgran.push(_local2); _local9 = new b2RevoluteJointDef(); _local9.Initialize(body4, body2, new b2Vec2((body4.GetPosition().x + 0.1), (body4.GetPosition().y - 0.25))); m_world.CreateJoint(_local9); _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()); sloy1.addChild(_local2); listgranbody.push(body5); listgran.push(_local2); _local10 = new b2RevoluteJointDef(); _local10.Initialize(body5, body2, new b2Vec2(body5.GetPosition().x, (body5.GetPosition().y - 0.2))); m_world.CreateJoint(_local10); _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()); sloy1.addChild(_local2); listgranbody.push(body6); listgran.push(_local2); _local11 = new b2RevoluteJointDef(); _local11.Initialize(body6, body2, new b2Vec2(body6.GetPosition().x, (body6.GetPosition().y - 0.3))); m_world.CreateJoint(_local11); power = 1; if (scoreint.val >= 50){ scoreint.val = (scoreint.val - 50); } else { scoreint.val = 0; }; 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"] >= 100){ awardm.aw5.gotoAndStop(2); mySharedObject.data["aw5"] = "da"; }; }; if (mySharedObject.data["aw5"] != undefined){ awardm.aw5.gotoAndStop(2); }; addSmoke(_local6.x, _local6.y); numbum++; if (numbum > 5){ _local12 = 0; while (_local12 < 6) { sloy1.removeChild(listgran[_local12]); m_world.DestroyBody(listgranbody[_local12]); _local12++; }; _local13 = 0; while (_local13 < 6) { listgran.shift(); listgranbody.shift(); _local13++; }; }; }; } function distance(_arg1){ var _local2:*; var _local3:*; _local2 = (_arg1.x - mouseX); _local3 = (_arg1.y - mouseY); return (Math.sqrt(((_local2 * _local2) + (_local3 * _local3)))); } public function create_djoint(_arg1:int, _arg2:int, _arg3:int, _arg4:int):void{ var _local5:b2Body; var _local6:b2Body; var _local7:b2Joint; var _local11:b2Contact; var _local12:*; var _local13:*; var _local14:b2Contact; var _local15:*; var _local16:*; var _local8:* = new b2Vec2((_arg1 / pixels_in_a_meter), (_arg2 / pixels_in_a_meter)); var _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); var _local10:b2DistanceJointDef = 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 create_rjoint(_arg1:int, _arg2:int, _arg3:int):void{ var _local4:b2Body; var _local6:*; var _local7:b2Contact; var _local8:*; var _local9:*; var _local10:b2RevoluteJointDef; var _local11:b2RevoluteJoint; var _local5:* = new b2Vec2((_arg1 / pixels_in_a_meter), (_arg2 / pixels_in_a_meter)); _local6 = new gvozdmc(); _local6.width = 10; _local6.height = 10; _local6.x = _arg1; _local6.y = _arg2; _local4 = m_world.GetGroundBody(); bodyDef = new b2BodyDef(); bodyDef.position.x = (_arg1 / pixels_in_a_meter); bodyDef.position.y = (_arg2 / pixels_in_a_meter); bodyDef.userData = _local6; circleDef = new b2CircleDef(); circleDef.radius = (5 / pixels_in_a_meter); circleDef.density = 0; circleDef.isSensor = true; bodyDef.userData = new Sprite(); body = m_world.CreateBody(bodyDef); body.CreateShape(circleDef); body.SetMassFromShapes(); sloy1.addChild(_local6); all_mcs.push(_local6); all_obj.push(body); if (m_world.m_contactList){ _local7 = m_world.m_contactList; _local8 = _local7.GetShape2().GetBody(); _local9 = _local7.GetShape1().GetBody(); if (_local8 == body){ _local4 = _local8; body = _local9; }; if (_local9 == body){ _local4 = _local9; body = _local8; }; }; if (_local4 != body){ _local10 = new b2RevoluteJointDef(); if (_arg3 > 0){ _local10.enableMotor = true; _local10.motorSpeed = _arg3; _local10.maxMotorTorque = _arg3; }; _local10.Initialize(body, _local4, body.GetWorldCenter()); _local11 = (m_world.CreateJoint(_local10) as b2RevoluteJoint); }; } 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(); sloy3.addChild(_local5); all_objmen.push(body); all_mcsmen.push(_local5); } 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(); sloy1.addChild(_local9); kvadmcar.push(_local9); kvadobjar.push(body); } 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(); sloy1.addChild(_local9); kvadmcar.push(_local9); kvadobjar.push(body); } 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(); sloy1.addChild(_local9); kvadmcar.push(_local9); kvadobjar.push(body); } 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(); sloy1.addChild(_local9); kvadmcar.push(_local9); kvadobjar.push(body); } 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 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); sloy1.addChild(_local9); liststar.push(_local9); } public function create_grav(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):void{ var _local9:*; _local9 = new gravmc(); _local9.width = _arg3; _local9.height = _arg4; _local9.x = (_arg1 + (_arg3 / 2)); _local9.y = (_arg2 + (_arg4 / 2)); _local9.dead = false; _local9.gotoAndStop(_arg7); sloy1.addChild(_local9); listgrav.push(_local9); } public function cannon(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):void{ oporazmd = new oporaz_zad(); oporazmd.x = (_arg1 + (oporazmd.width / 2)); oporazmd.y = (_arg2 + (oporazmd.height / 2)); sloy1.addChild(oporazmd); all_mcs.push(oporazmd); oporazm = new oporaz(); oporazm.x = (_arg1 + (oporazm.width / 2)); oporazm.y = (_arg2 + (oporazm.height / 2)); bazooka = new zooka(); bazooka.x = oporazm.x; bazooka.y = (oporazm.y - 18); sloy1.addChild(bazooka); all_mcs.push(bazooka); sloy1.addChild(oporazm); all_mcs.push(oporazm); bazooka.gotoAndStop(1); bazooka.chasti.visible = false; powerlinem.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(); sloy3.addChild(_local1); all_mcsmen.push(_local1); all_objmen.push(body); }; } public function random(_arg1:Number, _arg2:Number):Number{ return ((Math.round((Math.random() * (_arg2 - _arg1))) + _arg1)); } 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); sloy1.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); sloy1.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); sloy1.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); sloy1.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); sloy1.addChild(_local5); }; } public function real_pixels(_arg1:int){ return (((_arg1 / pixels_in_a_meter) / 2)); } public function killMe(_arg1:MovieClip):void{ _arg1.addFrameScript((_arg1.totalFrames - 1), null); sloy1.removeChild(_arg1); } public function killMeShar(_arg1:MovieClip):void{ _arg1.addFrameScript((_arg1.totalFrames - 1), null); sloy2.removeChild(_arg1); } public function killMeDa(_arg1:MovieClip):void{ _arg1.addFrameScript((_arg1.totalFrames - 1), null); sloy3.removeChild(_arg1); } public function killMeDaDva(_arg1:MovieClip):void{ _arg1.addFrameScript((_arg1.totalFrames - 1), null); sloy1.removeChild(_arg1); listvz.shift(); m_world.DestroyBody(listsens[0]); listsens.shift(); } public function addExplosion(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):void{ 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; var 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)); sloy1.addChild(_tempClip); sloy1.addChild(_tempClip2); i = (i + 1); }; if (yessound){ zv1s.play(); }; } public function addSmoke(_arg1:Number, _arg2:Number):void{ var _tempClip:*; var _targetX = _arg1; var _targetY = _arg2; var 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)); sloy1.addChild(_tempClip); i = (i + 1); }; } public function hitstar():void{ var g:uint; var zvch:int; var s:uint; 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); }; var k:uint; 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)); sloy1.addChild(stardeadm); zvch = 1; zvch = random(1, 4); if (yessound){ if (zvch == 1){ zv3s.play(); }; if (zvch == 2){ zv4s.play(); }; if (zvch == 3){ zv4_1s.play(); }; if (zvch == 4){ zv4_2s.play(); }; }; sloy1.swapChildren(liststar[k], stardeadm); sloy1.removeChild(liststar[k]); liststar.splice(k, 1); scoreint.val = (scoreint.val + 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"] >= 300){ awardm.aw6.gotoAndStop(2); mySharedObject.data["aw6"] = "da"; }; }; if (mySharedObject.data["aw6"] != undefined){ awardm.aw6.gotoAndStop(2); }; }; k = (k + 1); }; } public function hitgrav():void{ var g:uint; var s:uint; while (s < listgrav.length) { g = 0; while (g < listgran.length) { if (listgrav[s].dead == false){ if (listgrav[s].hitTestObject(listgran[g])){ listgrav[s].dead = true; }; }; g = (g + 1); }; s = (s + 1); }; var k:uint; while (k < listgrav.length) { if (listgrav[k].dead == true){ if (yessound){ gravzs.play(); }; stardeadm = new stardeadgrav(); stardeadm.x = listgrav[k].x; stardeadm.y = listgrav[k].y; stardeadm.addFrameScript((stardeadm.totalFrames - 1), function (_arg1:MovieClip){ var stardeadm = _arg1; return (function (){ killMe(stardeadm); }); }(stardeadm)); sloy1.addChild(stardeadm); sloy1.swapChildren(listgrav[k], stardeadm); sloy1.removeChild(listgrav[k]); listgrav.splice(k, 1); if (gravint == 1){ gravint = 2; } else { if (gravint == 2){ gravint = 1; }; }; if (gravint == 1){ m_world.SetGravity(gravity); }; if (gravint == 2){ m_world.SetGravity(gravityniz); }; }; k = (k + 1); }; } public function endLevel(){ var _local1:*; if (estvrag == 0){ if (yessound){ zv9s.play(); }; if (mySharedObject.data[("lev" + tlevel)] == undefined){ mySharedObject.data[("lev" + tlevel)] = scoreint.val; } else { if (mySharedObject.data[("lev" + tlevel)] < scoreint.val){ mySharedObject.data[("lev" + tlevel)] = scoreint.val; }; }; if (mySharedObject.data[("shot" + tlevel)] == undefined){ mySharedObject.data[("shot" + tlevel)] = shotint; } else { if (mySharedObject.data[("shot" + tlevel)] > shotint){ mySharedObject.data[("shot" + tlevel)] = shotint; }; }; 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; }; }; mySharedObject.flush(); glmenu = true; scoreTimer.stop(); panelnextm.scoretxt.text = ("score: " + scoreint.val); panelnextm.shottxt.text = ("shots: " + shotint); panelnextm.visible = true; awardTest(); medalm.gotoAndStop(medal_panm.getChildAt(1).currentFrame); if (medal_panm.visible == true){ medalm.visible = true; }; estvrag = 1; allscore3.val = 0; _local1 = 1; while (_local1 < 31) { if (mySharedObject.data[("lev" + _local1)] == undefined){ } else { allscore3.val = (allscore3.val + mySharedObject.data[("lev" + _local1)]); }; _local1++; }; if (tlevel < 30){ }; if (tlevel == 30){ menum.visible = false; selectm.visible = true; glmenu = true; worldClear(); }; }; } public function worldClear(){ all_mcs = all_mcs.concat(listvr, listvz, liststar, listgran, listgrant, listkrig, listboch, kvadmcar, listgrav); var _local1:uint; while (_local1 < all_mcs.length) { if (all_mcs[_local1] != undefined){ sloy1.removeChild(all_mcs[_local1]); delete all_mcs[_local1]; }; _local1++; }; all_obj = all_obj.concat(listgranbody, listvrbody, listsens, listbochbody, kvadobjar); var _local2:uint; 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 = []; listgrav = []; all_obj = []; numbum = 0; listjoint = []; init(); } public function worldClearMen(){ var _local1:uint; while (_local1 < all_mcsmen.length) { if (all_mcsmen[_local1] != undefined){ sloy3.removeChild(all_mcsmen[_local1]); delete all_mcsmen[_local1]; }; _local1++; }; var _local2:uint; 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 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]); sloy3.removeChild(all_mcsmen[_local1]); all_mcsmen.splice(_local1, 1); all_objmen.splice(_local1, 1); }; _local1++; }; }; } public function UpdateGov(_arg1:Event):void{ var _local2:b2BodyDef; var _local3:b2PolygonDef; var _local4:b2CircleDef; addChild(sloy1); addChild(sloy2); addChild(sloy3); sloy3.mouseEnabled = false; sloy3.mouseChildren = false; m_sprite = new Sprite(); sloy3.addChild(m_sprite); m_input = new Input(m_sprite); Font.registerFont(Font1); HelloWorld.instance.addEventListener(Event.ENTER_FRAME, Update, false, 0, true); HelloWorld.instance.addEventListener(MouseEvent.MOUSE_DOWN, mouseReleased); var _local5:b2DebugDraw = new b2DebugDraw(); worldAABB.lowerBound.Set(-100, -100); worldAABB.upperBound.Set(100, 100); m_world = new b2World(worldAABB, gravity, doSleep); _local5.m_sprite = m_sprite; _local5.m_drawScale = 30; _local5.m_alpha = 1; _local5.m_fillAlpha = 0.5; _local5.m_lineThickness = 1; _local5.m_drawFlags = (b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit); m_world.SetContactListener(m_contactListener); sloy2.addChild(my_canvas); textCreate(); init(); if ((((selectm.visible == true)) || ((menum.visible == true)))){ scm = zvmuss.play(0, int.MAX_VALUE, trans); }; if ((((selectm.visible == false)) && ((menum.visible == false)))){ scm = zvmuss2.play(0, int.MAX_VALUE, trans); }; } public function Update(_arg1:Event):void{ m_world.Step((1 / 30), 10); if (menum.visible == false){ hitstar(); hitgrav(); }; textUpdate(); endLevel(); if (scoreint.val < 0){ scoreint.val = 0; }; my_canvas.graphics.clear(); my_canvas.graphics.lineStyle(2, 0, 1); var _local2:uint; 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; }; var _local3:* = (bazooka.x - mouseX); var _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); }; var _local5:b2Body = 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(); } } }//package
Section 98
//hsmov (hsmov) package { import flash.display.*; public dynamic class hsmov extends MovieClip { } }//package
Section 99
//krigshar (krigshar) package { import flash.display.*; public dynamic class krigshar extends MovieClip { } }//package
Section 100
//krug1mc (krug1mc) package { import flash.display.*; public dynamic class krug1mc extends MovieClip { } }//package
Section 101
//krug2mc (krug2mc) package { import flash.display.*; public dynamic class krug2mc extends MovieClip { } }//package
Section 102
//krug3mc (krug3mc) package { import flash.display.*; public dynamic class krug3mc extends MovieClip { } }//package
Section 103
//kuklamov (kuklamov) package { import flash.display.*; public dynamic class kuklamov extends MovieClip { } }//package
Section 104
//kvadmc (kvadmc) package { import flash.display.*; public dynamic class kvadmc extends MovieClip { } }//package
Section 105
//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 playB:SimpleButton; public var sitelink:SimpleButton; public var loadBar:MovieClip; public var loadLeft:TextField; public var link:String; public function loadermmc(){ addFrameScript(0, frame1, 39, frame40); } 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); }; }; } public function onClick(_arg1:MouseEvent):void{ var event = _arg1; try { ExternalInterface.call("window.open", link, "_blank", ""); } catch(error:Error) { navigateToURL(new URLRequest(link), "_blank"); }; } public function playRoot(_arg1:MouseEvent){ if (((root) && ((root is MovieClip)))){ MovieClip(root).play(); playB.removeEventListener(MouseEvent.CLICK, playRoot); }; } 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); } } }//package
Section 106
//lockmc (lockmc) package { import flash.display.*; public dynamic class lockmc extends MovieClip { } }//package
Section 107
//m_btn (m_btn) package { import flash.display.*; import flash.text.*; public dynamic class m_btn extends MovieClip { public var scoretxt:TextField; public var leveltxt:TextField; public var str:MovieClip; public var pov:MovieClip; } }//package
Section 108
//m_btn2 (m_btn2) package { import flash.display.*; public dynamic class m_btn2 extends MovieClip { } }//package
Section 109
//mainclass (mainclass) package { public dynamic class mainclass extends HelloWorld { } }//package
Section 110
//medal_pan (medal_pan) package { import flash.display.*; public dynamic class medal_pan extends MovieClip { public var medal:medalmc; } }//package
Section 111
//medalmc (medalmc) package { import flash.display.*; public dynamic class medalmc extends MovieClip { } }//package
Section 112
//menumc (menumc) package { import flash.display.*; import flash.text.*; public dynamic class menumc extends MovieClip { public var tred:TextField; public var bitbtn:SimpleButton; public var playbtn:SimpleButton; } }//package
Section 113
//menupan (menupan) package { import flash.display.*; import flash.text.*; public dynamic class menupan extends MovieClip { public var resbtn:SimpleButton; public var scoretxt:TextField; public var lvltxt:TextField; public var mmbtn:SimpleButton; public var bitbtn:SimpleButton; public var shottxt:TextField; } }//package
Section 114
//mgbtnm (mgbtnm) package { import flash.display.*; public dynamic class mgbtnm extends MovieClip { } }//package
Section 115
//musicmc (musicmc) package { import flash.display.*; public dynamic class musicmc extends MovieClip { } }//package
Section 116
//nextbtnm (nextbtnm) package { import flash.display.*; public dynamic class nextbtnm extends MovieClip { } }//package
Section 117
//oporab (oporab) package { import flash.display.*; public dynamic class oporab extends MovieClip { } }//package
Section 118
//oporaz (oporaz) package { import flash.display.*; public dynamic class oporaz extends MovieClip { } }//package
Section 119
//oporaz_zad (oporaz_zad) package { import flash.display.*; public dynamic class oporaz_zad extends MovieClip { } }//package
Section 120
//palkamc (palkamc) package { import flash.display.*; public dynamic class palkamc extends MovieClip { } }//package
Section 121
//panelnext (panelnext) package { import flash.display.*; import flash.text.*; public dynamic class panelnext extends MovieClip { public var scoretxt:TextField; public var bitbtn:SimpleButton; public var shottxt:TextField; } }//package
Section 122
//powerline (powerline) package { import flash.display.*; public dynamic class powerline extends MovieClip { } }//package
Section 123
//Preloaderda (Preloaderda) package { import flash.events.*; import flash.display.*; public class Preloaderda extends MovieClip { public var pBar:MovieClip; public var chasti:MovieClip; public var glav:MovieClip; private var progressBar:Sprite; private var glava:Sprite; private var chas:Sprite; public static const ENTRY_FRAME:Number = 3; public static const DOCUMENT_CLASS:String = "Main"; public function Preloaderda(){ addFrameScript(0, frame1, 1, frame2); super(); stop(); progressBar = (getChildByName("pBar") as Sprite); glava = (getChildByName("glav") as Sprite); chas = (getChildByName("chasti") as Sprite); progressBar.scaleX = 0; loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler); loaderInfo.addEventListener(Event.COMPLETE, completeHandler); } function onFinish():void{ play(); } private function progressHandler(_arg1:ProgressEvent):void{ var _local2:uint = _arg1.bytesLoaded; var _local3:uint = _arg1.bytesTotal; progressBar.scaleX = (_local2 / _local3); } private function completeHandler(_arg1:Event):void{ play(); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 124
//pricelmc (pricelmc) package { import flash.display.*; public dynamic class pricelmc extends MovieClip { } }//package
Section 125
//resbtnm (resbtnm) package { import flash.display.*; public dynamic class resbtnm extends MovieClip { } }//package
Section 126
//robodead (robodead) package { import flash.display.*; public dynamic class robodead extends MovieClip { } }//package
Section 127
//robodead2 (robodead2) package { import flash.display.*; public dynamic class robodead2 extends MovieClip { } }//package
Section 128
//robot (robot) package { import flash.display.*; public dynamic class robot extends MovieClip { } }//package
Section 129
//selectmc (selectmc) package { import flash.display.*; import flash.text.*; public dynamic class selectmc extends MovieClip { public var allshottxt:TextField; public var mt3:SimpleButton; public var mt10:SimpleButton; public var mt4:SimpleButton; public var mt20:SimpleButton; public var mt11:SimpleButton; public var mt5:SimpleButton; public var scoretxt:TextField; public var mt30:SimpleButton; public var mt21:SimpleButton; public var mt12:SimpleButton; public var mt6:SimpleButton; public var mt22:SimpleButton; public var mt13:SimpleButton; public var mt7:SimpleButton; public var mt23:SimpleButton; public var mt14:SimpleButton; public var mt8:SimpleButton; public var mt24:SimpleButton; public var mt15:SimpleButton; public var mt9:SimpleButton; public var mt25:SimpleButton; public var mt16:SimpleButton; public var mt26:SimpleButton; public var mt17:SimpleButton; public var menubtn:SimpleButton; public var mt27:SimpleButton; public var mt18:SimpleButton; public var lvltxt:TextField; public var mt28:SimpleButton; public var mt19:SimpleButton; public var mt29:SimpleButton; public var bitbtn:SimpleButton; public var shottxt:TextField; public var mt1:SimpleButton; public var mt2:SimpleButton; } }//package
Section 130
//smoke (smoke) package { import flash.display.*; public dynamic class smoke extends MovieClip { } }//package
Section 131
//soundmc (soundmc) package { import flash.display.*; public dynamic class soundmc extends MovieClip { } }//package
Section 132
//star (star) package { import flash.display.*; public dynamic class star extends MovieClip { } }//package
Section 133
//stardead (stardead) package { import flash.display.*; public dynamic class stardead extends MovieClip { } }//package
Section 134
//stardeadgrav (stardeadgrav) package { import flash.display.*; public dynamic class stardeadgrav extends MovieClip { } }//package
Section 135
//telo2 (telo2) package { import flash.display.*; public dynamic class telo2 extends MovieClip { } }//package
Section 136
//telo3 (telo3) package { import flash.display.*; public dynamic class telo3 extends MovieClip { } }//package
Section 137
//telo4 (telo4) package { import flash.display.*; public dynamic class telo4 extends MovieClip { } }//package
Section 138
//tile (tile) package { import flash.display.*; public dynamic class tile extends MovieClip { } }//package
Section 139
//tile2 (tile2) package { import flash.display.*; public dynamic class tile2 extends MovieClip { } }//package
Section 140
//tile3 (tile3) package { import flash.display.*; public dynamic class tile3 extends MovieClip { } }//package
Section 141
//tile4 (tile4) package { import flash.display.*; public dynamic class tile4 extends MovieClip { } }//package
Section 142
//tile5 (tile5) package { import flash.display.*; public dynamic class tile5 extends MovieClip { } }//package
Section 143
//tile6 (tile6) package { import flash.display.*; public dynamic class tile6 extends MovieClip { } }//package
Section 144
//tile7 (tile7) package { import flash.display.*; public dynamic class tile7 extends MovieClip { } }//package
Section 145
//timbtn (timbtn) package { import flash.display.*; public dynamic class timbtn extends MovieClip { } }//package
Section 146
//togomc (togomc) package { import flash.display.*; public dynamic class togomc extends MovieClip { } }//package
Section 147
//togomcnew (togomcnew) package { import flash.display.*; public dynamic class togomcnew extends MovieClip { } }//package
Section 148
//trianglemc (trianglemc) package { import flash.display.*; public dynamic class trianglemc extends MovieClip { } }//package
Section 149
//voda1 (voda1) package { import flash.display.*; public dynamic class voda1 extends MovieClip { } }//package
Section 150
//voda2 (voda2) package { import flash.display.*; public dynamic class voda2 extends MovieClip { } }//package
Section 151
//voda3 (voda3) package { import flash.display.*; public dynamic class voda3 extends MovieClip { } }//package
Section 152
//vzriv (vzriv) package { import flash.display.*; public dynamic class vzriv extends MovieClip { } }//package
Section 153
//vzrivdva (vzrivdva) package { import flash.display.*; public dynamic class vzrivdva extends MovieClip { } }//package
Section 154
//zooka (zooka) package { import flash.display.*; public dynamic class zooka extends MovieClip { public var chasti:MovieClip; public var pric:MovieClip; } }//package
Section 155
//zv1 (zv1) package { import flash.media.*; public dynamic class zv1 extends Sound { } }//package
Section 156
//zv10 (zv10) package { import flash.media.*; public dynamic class zv10 extends Sound { } }//package
Section 157
//zv11 (zv11) package { import flash.media.*; public dynamic class zv11 extends Sound { } }//package
Section 158
//zv12 (zv12) package { import flash.media.*; public dynamic class zv12 extends Sound { } }//package
Section 159
//zv2 (zv2) package { import flash.media.*; public dynamic class zv2 extends Sound { } }//package
Section 160
//zv3 (zv3) package { import flash.media.*; public dynamic class zv3 extends Sound { } }//package
Section 161
//zv4 (zv4) package { import flash.media.*; public dynamic class zv4 extends Sound { } }//package
Section 162
//zv4_1 (zv4_1) package { import flash.media.*; public dynamic class zv4_1 extends Sound { } }//package
Section 163
//zv4_2 (zv4_2) package { import flash.media.*; public dynamic class zv4_2 extends Sound { } }//package
Section 164
//zv5 (zv5) package { import flash.media.*; public dynamic class zv5 extends Sound { } }//package
Section 165
//zv6 (zv6) package { import flash.media.*; public dynamic class zv6 extends Sound { } }//package
Section 166
//zv7 (zv7) package { import flash.media.*; public dynamic class zv7 extends Sound { } }//package
Section 167
//zv8 (zv8) package { import flash.media.*; public dynamic class zv8 extends Sound { } }//package
Section 168
//zv9 (zv9) package { import flash.media.*; public dynamic class zv9 extends Sound { } }//package
Section 169
//zvmus (zvmus) package { import flash.media.*; public dynamic class zvmus extends Sound { } }//package
Section 170
//zvmus2 (zvmus2) package { import flash.media.*; public dynamic class zvmus2 extends Sound { } }//package

Library Items

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

Instance Names

"chasti"Frame 1Symbol 6 MovieClip
"pBar"Frame 1Symbol 8 MovieClip
"glav"Frame 1Symbol 10 MovieClip
"flame"Symbol 47 MovieClip Frame 1Symbol 44 MovieClip
"eyeL"Symbol 52 MovieClip Frame 1Symbol 34 MovieClip
"userCannon"Symbol 52 MovieClip Frame 1Symbol 40 MovieClip
"fire"Symbol 52 MovieClip Frame 1Symbol 47 MovieClip
"shh"Symbol 52 MovieClip Frame 1Symbol 51 MovieClip
"chasti"Symbol 55 MovieClip {zooka} Frame 1Symbol 52 MovieClip
"pric"Symbol 55 MovieClip {zooka} Frame 1Symbol 54 MovieClip
"bitbtn"Symbol 192 MovieClip {panelnext} Frame 1Symbol 186 Button
"scoretxt"Symbol 192 MovieClip {panelnext} Frame 1Symbol 188 EditableText
"shottxt"Symbol 192 MovieClip {panelnext} Frame 1Symbol 191 EditableText
"lvltxt"Symbol 232 MovieClip {menupan} Frame 1Symbol 217 EditableText
"scoretxt"Symbol 232 MovieClip {menupan} Frame 1Symbol 218 EditableText
"resbtn"Symbol 232 MovieClip {menupan} Frame 1Symbol 224 Button
"mmbtn"Symbol 232 MovieClip {menupan} Frame 1Symbol 227 Button
"shottxt"Symbol 232 MovieClip {menupan} Frame 1Symbol 228 EditableText
"bitbtn"Symbol 232 MovieClip {menupan} Frame 1Symbol 231 Button
"medal"Symbol 248 MovieClip {medal_pan} Frame 1Symbol 247 MovieClip {medalmc}
"loadBar"Symbol 288 MovieClip {loadermmc} Frame 1Symbol 256 MovieClip
"loadLeft"Symbol 288 MovieClip {loadermmc} Frame 1Symbol 263 EditableText
"sitelink"Symbol 288 MovieClip {loadermmc} Frame 1Symbol 276 Button
"playB"Symbol 288 MovieClip {loadermmc} Frame 21Symbol 287 Button
"playB"Symbol 288 MovieClip {loadermmc} Frame 40Symbol 287 Button
"fText"Symbol 340 MovieClip {flongamove} Frame 1Symbol 331 EditableText
"fBar"Symbol 340 MovieClip {flongamove} Frame 1Symbol 332 MovieClip
"b1"Symbol 340 MovieClip {flongamove} Frame 1Symbol 333 Button
"playy"Symbol 340 MovieClip {flongamove} Frame 1Symbol 337 Button
"bl"Symbol 340 MovieClip {flongamove} Frame 1Symbol 339 MovieClip
"aw1"Symbol 384 MovieClip {awardmc} Frame 1Symbol 369 MovieClip
"menubtn"Symbol 384 MovieClip {awardmc} Frame 1Symbol 374 Button
"aw2"Symbol 384 MovieClip {awardmc} Frame 1Symbol 369 MovieClip
"aw3"Symbol 384 MovieClip {awardmc} Frame 1Symbol 369 MovieClip
"aw4"Symbol 384 MovieClip {awardmc} Frame 1Symbol 369 MovieClip
"aw7"Symbol 384 MovieClip {awardmc} Frame 1Symbol 369 MovieClip
"aw8"Symbol 384 MovieClip {awardmc} Frame 1Symbol 369 MovieClip
"mfz"Symbol 384 MovieClip {awardmc} Frame 1Symbol 383 Button
"aw5"Symbol 384 MovieClip {awardmc} Frame 1Symbol 369 MovieClip
"aw6"Symbol 384 MovieClip {awardmc} Frame 1Symbol 369 MovieClip
"tred"Symbol 413 MovieClip {menumc} Frame 1Symbol 398 EditableText
"playbtn"Symbol 413 MovieClip {menumc} Frame 1Symbol 407 Button
"bitbtn"Symbol 413 MovieClip {menumc} Frame 1Symbol 412 Button
"menubtn"Symbol 428 MovieClip {selectmc} Frame 1Symbol 374 Button
"scoretxt"Symbol 428 MovieClip {selectmc} Frame 1Symbol 416 EditableText
"mt1"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt2"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt3"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt4"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt5"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt6"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt7"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt8"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt9"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt10"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt11"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt12"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt13"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt14"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt15"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt16"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt17"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt18"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt19"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt20"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt21"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt22"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt23"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt24"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt25"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt26"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt27"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt28"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt29"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"mt30"Symbol 428 MovieClip {selectmc} Frame 1Symbol 418 Button
"lvltxt"Symbol 428 MovieClip {selectmc} Frame 1Symbol 419 EditableText
"allshottxt"Symbol 428 MovieClip {selectmc} Frame 1Symbol 420 EditableText
"shottxt"Symbol 428 MovieClip {selectmc} Frame 1Symbol 421 EditableText
"bitbtn"Symbol 428 MovieClip {selectmc} Frame 1Symbol 427 Button
"str"Symbol 439 MovieClip {m_btn} Frame 1Symbol 430 MovieClip
"leveltxt"Symbol 439 MovieClip {m_btn} Frame 1Symbol 432 EditableText
"scoretxt"Symbol 439 MovieClip {m_btn} Frame 1Symbol 433 EditableText
"pov"Symbol 439 MovieClip {m_btn} Frame 1Symbol 236 MovieClip

Special Tags

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




http://swfchan.com/43/212952/info.shtml
Created: 22/7 -2019 04:02:05 Last modified: 22/7 -2019 04:02:05 Server time: 02/05 -2024 00:19:22