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

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

rolling-drones.swf

This is the info page for
Flash #109033

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


Text
© www.spilgames.com

© www.spilgames.com

BR

<p align="center"><font face="Arial" size="12" color="#000000" letterSpacing="0.000000" kerning="1">Powered by</font></p>

<p align="center"><font face="Bauhaus 93" size="14" color="#000000" letterSpacing="0.000000" kerning="1">0</font></p>

<p align="center"><font face="Arial" size="16" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Level complete! Gold medal.</b></font></p>

1

1324

<p align="left"><font face="NewForum" size="20" color="#ffffff" letterSpacing="0.000000" kerning="1">0123456789</font></p>

<p align="left"><font face="NewForum" size="20" color="#ffffff" letterSpacing="0.000000" kerning="1">1000</font></p>

<p align="center"><font face="NewForum" size="20" color="#ffffff" letterSpacing="0.000000" kerning="1">10 / 25</font></p>

<p align="center"><font face="NewForum" size="20" color="#ffffff" letterSpacing="0.000000" kerning="1">5 / 10</font></p>

ActionScript [AS3]

Section 1
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2CircleDef extends b2ShapeDef { public var localPosition:b2Vec2; public var radius:Number; public function b2CircleDef(){ localPosition = new b2Vec2(0, 0); super(); type = b2Shape.e_circleShape; radius = 1; } } }//package Box2D.Collision.Shapes
Section 2
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_radius:Number; public var m_localPosition:b2Vec2; public function b2CircleShape(_arg1:b2ShapeDef){ var _local2:b2CircleDef; m_localPosition = new b2Vec2(); super(_arg1); _local2 = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; _local3 = _arg1.R; _local4 = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local6 = _arg1.R; _local7 = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); _local8 = (_arg1.position.y + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); _local9 = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); _local11 = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; _local12 = (_arg4.p2.x - _arg4.p1.x); _local13 = (_arg4.p2.y - _arg4.p1.y); _local14 = ((_local9 * _local12) + (_local10 * _local13)); _local15 = ((_local12 * _local12) + (_local13 * _local13)); _local16 = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; _local17 = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = _arg2.R; _local5 = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local6 = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; _local7 = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local8 = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } public function GetRadius():Number{ return (m_radius); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number; var _local3:Number; _local2 = (m_localPosition.x - _arg1.x); _local3 = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; _local3 = _arg2.R; _local4 = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } } }//package Box2D.Collision.Shapes
Section 3
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { public class b2FilterData { public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public var categoryBits:uint;// = 1 public function b2FilterData(){ categoryBits = 1; maskBits = 0xFFFF; groupIndex = 0; super(); } public function Copy():b2FilterData{ var _local1:b2FilterData; _local1 = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 4
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ mass = 0; center = new b2Vec2(0, 0); I = 0; super(); } } }//package Box2D.Collision.Shapes
Section 5
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertexCount:int; public var vertices:Array; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ var _local1:int; vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; _local1 = 0; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); if (_arg3){ _local5 = _arg3; _local6 = s_mat; _local6.Set(_arg4); _local7 = 0; while (_local7 < vertexCount) { _arg3 = vertices[_local7]; _arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y))); _arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y))); _arg3.x = _arg1; _local7++; }; }; } public function SetAsBox(_arg1:Number, _arg2:Number):void{ vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); } } }//package Box2D.Collision.Shapes
Section 6
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { public var m_vertices:Array; public var m_normals:Array; private var s_supportVec:b2Vec2; public var m_obb:b2OBB; public var m_coreVertices:Array; public var m_centroid:b2Vec2; public var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local2:b2PolygonDef; var _local3:int; var _local4:int; var _local5:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; _local2 = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; _local4 = _local3; _local5 = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; var _local10:Number; _local4 = _arg1.R; _local5 = (_arg2.x - _arg1.position.x); _local6 = (_arg2.y - _arg1.position.y); _local7 = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); _local8 = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); _local9 = 0; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } public function GetCoreVertices():Array{ return (m_coreVertices); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:Number; var _local21:Number; _local6 = 0; _local7 = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; _local12 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local13 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; _local14 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local15 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local16 = (_local14 - _local12); _local17 = (_local15 - _local13); _local18 = -1; _local19 = 0; while (_local19 < m_vertexCount) { _local11 = m_vertices[_local19]; _local8 = (_local11.x - _local12); _local9 = (_local11.y - _local13); _local11 = m_normals[_local19]; _local20 = ((_local11.x * _local8) + (_local11.y * _local9)); _local21 = ((_local11.x * _local16) + (_local11.y * _local17)); if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){ _local6 = (_local20 / _local21); _local18 = _local19; } else { if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){ _local7 = (_local20 / _local21); }; }; if (_local7 < _local6){ return (false); }; _local19++; }; if (_local18 >= 0){ _arg2[0] = _local6; _local10 = _arg1.R; _local11 = m_normals[_local18]; _arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); return (true); }; return (false); } public function GetCentroid():b2Vec2{ return (m_centroid); } override public function ComputeMass(_arg1:b2MassData):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _local2 = 0; _local3 = 0; _local4 = 0; _local5 = 0; _local6 = 0; _local7 = 0; _local8 = (1 / 3); _local9 = 0; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0]; _local12 = (_local10.x - _local6); _local13 = (_local10.y - _local7); _local14 = (_local11.x - _local6); _local15 = (_local11.y - _local7); _local16 = ((_local12 * _local15) - (_local13 * _local14)); _local17 = (0.5 * _local16); _local4 = (_local4 + _local17); _local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x))); _local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y))); _local18 = _local6; _local19 = _local7; _local20 = _local12; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18)); _local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local5 = (_local5 + (_local16 * (_local24 + _local25))); _local9++; }; _arg1.mass = (m_density * _local4); _local2 = (_local2 * (1 / _local4)); _local3 = (_local3 * (1 / _local4)); _arg1.center.Set(_local2, _local3); _arg1.I = (m_density * _local5); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local6:Number; var _local7:Number; var _local8:int; var _local9:Number; var _local10:int; var _local11:Number; _local5 = _arg1.R; _local6 = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); _local7 = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); _local8 = 0; _local4 = m_coreVertices[0]; _local9 = ((_local4.x * _local6) + (_local4.y * _local7)); _local10 = 1; while (_local10 < m_vertexCount) { _local4 = m_coreVertices[_local10]; _local11 = ((_local4.x * _local6) + (_local4.y * _local7)); if (_local11 > _local9){ _local8 = _local10; _local9 = _local11; }; _local10++; }; _local5 = _arg1.R; _local4 = m_coreVertices[_local8]; s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y))); s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB; var _local5:b2AABB; _local4 = s_sweptAABB1; _local5 = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y); _arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y); } public function GetVertices():Array{ return (m_vertices); } public function GetNormals():Array{ return (m_normals); } public function GetOBB():b2OBB{ return (m_obb); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_coreVertices[0])); } public function Centroid(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_centroid)); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local3:int; var _local4:Number; var _local5:Number; m_sweepRadius = 0; _local3 = 0; while (_local3 < m_vertexCount) { _local2 = m_coreVertices[_local3]; _local4 = (_local2.x - _arg1.x); _local5 = (_local2.y - _arg1.y); _local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local4 > m_sweepRadius){ m_sweepRadius = _local4; }; _local3++; }; } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22; var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local5 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); _local6 = _local5; _local4 = m_obb.extents; _local7 = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); _local8 = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; _local9 = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); _local10 = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:int; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); _local4 = 0; _local5 = 0; _local6 = 0; _local7 = (1 / 3); _local8 = 0; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local5:Array; var _local6:Number; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; _local5 = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; _local6 = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 7
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2Shape { public var m_type:int; public var m_sweepRadius:Number; public var m_density:Number; public var m_filter:b2FilterData; public var m_friction:Number; public var m_next:b2Shape; public var m_restitution:Number; public var m_userData; public var m_isSensor:Boolean; public var m_proxyId:uint; public var m_body:b2Body; public static const e_polygonShape:int = 1; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_shapeTypeCount:int = 2; private static var s_resetAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_proxyAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxyId = b2Pair.b2_nullProxy; m_filter = _arg1.filter.Copy(); m_isSensor = _arg1.isSensor; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetNext():b2Shape{ return (m_next); } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function GetType():int{ return (m_type); } public function GetRestitution():Number{ return (m_restitution); } public function GetFriction():Number{ return (m_friction); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB; var _local4:Boolean; if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); _local3 = s_resetAABB; ComputeAABB(_local3, _arg2); _local4 = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ var _local4:b2AABB; if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; _local4 = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function ComputeMass(_arg1:b2MassData):void{ } public function IsSensor():Boolean{ return (m_isSensor); } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function GetBody():b2Body{ return (m_body); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB; var _local4:Boolean; _local3 = s_proxyAABB; ComputeAABB(_local3, _arg2); _local4 = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public static function Destroy(_arg1:b2Shape, _arg2):void{ } public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } } }//package Box2D.Collision.Shapes
Section 8
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var isSensor:Boolean;// = false public var density:Number;// = 0 public var type:int;// = -1 public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var friction:Number;// = 0.2 public function b2ShapeDef(){ type = b2Shape.e_unknownShape; userData = null; friction = 0.2; restitution = 0; density = 0; isSensor = false; filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 9
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var upperBound:b2Vec2; public var lowerBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number; var _local2:Number; var _local3:Boolean; _local1 = (upperBound.x - lowerBound.x); _local2 = (upperBound.y - lowerBound.y); _local3 = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 10
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var proxyId:uint; public var stabbingCount:uint; public var value:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint; var _local3:uint; var _local4:uint; _local2 = value; _local3 = proxyId; _local4 = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//package Box2D.Collision
Section 11
//b2BoundValues (Box2D.Collision.b2BoundValues) package Box2D.Collision { public class b2BoundValues { public var lowerValues:Array; public var upperValues:Array; public function b2BoundValues(){ lowerValues = [0, 0]; upperValues = [0, 0]; super(); } } }//package Box2D.Collision
Section 12
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; public var m_bounds:Array; public var m_freeProxy:uint; public var m_proxyCount:int; public var m_proxyPool:Array; public var m_queryResultCount:int; public var m_pairManager:b2PairManager; public var m_timeStamp:uint; public var m_queryResults:Array; public static const b2_nullEdge:uint = b2Settings.USHRT_MAX; public static const b2_invalid:uint = b2Settings.USHRT_MAX; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local4:Number; var _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; _local4 = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); _local3 = 0; while (_local3 < (b2Settings.b2_maxProxies - 1)) { _local6 = new b2Proxy(); m_proxyPool[_local3] = _local6; _local6.SetNext((_local3 + 1)); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; _local3++; }; _local6 = new b2Proxy(); m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local4:Array; var _local5:Array; var _local6:uint; var _local7:uint; var _local8:Array; var _local9:Array; var _local10:int; var _local11:int; var _local12:b2Proxy; _local4 = new Array(); _local5 = new Array(); ComputeBounds(_local4, _local5, _arg1); _local8 = [_local6]; _local9 = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); _local10 = 0; _local11 = 0; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Commit():void{ m_pairManager.Commit(); } public function GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy; _local2 = m_proxyPool[_arg1]; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){ return (null); }; return (_local2); } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { (m_proxyPool[_local1] as b2Proxy).timeStamp = 0; _local1++; }; m_timeStamp = 1; } else { m_timeStamp++; }; } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local11:uint; var _local12:int; var _local13:int; var _local14:b2Proxy; _local8 = BinarySearch(_arg5, _arg6, _arg3); _local9 = BinarySearch(_arg5, _arg6, _arg4); _local11 = _local8; while (_local11 < _local9) { _local10 = _arg5[_local11]; if (_local10.IsLower()){ IncrementOverlapCount(_local10.proxyId); }; _local11++; }; if (_local8 > 0){ _local12 = (_local8 - 1); _local10 = _arg5[_local12]; _local13 = _local10.stabbingCount; while (_local13) { _local10 = _arg5[_local12]; if (_local10.IsLower()){ _local14 = m_proxyPool[_local10.proxyId]; if (_local8 <= _local14.upperBounds[_arg7]){ IncrementOverlapCount(_local10.proxyId); _local13--; }; }; _local12--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local4 = _arg3.lowerBound.x; _local5 = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); _local6 = _arg3.upperBound.x; _local7 = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local5:uint; var _local6:uint; var _local7:Array; var _local8:Array; var _local9:int; var _local10:int; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:b2Bound; var _local22:int; var _local23:b2Proxy; _local5 = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; _local6 = (2 * m_proxyCount); _local7 = new Array(); _local8 = new Array(); ComputeBounds(_local7, _local8, _arg1); _local9 = 0; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local13 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local16 = new Array(); _local18 = (_local13 - _local12); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local12 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local19 = _local11[_local12]; _local20 = _local11[_local13]; _local19.value = _local7[_local9]; _local19.proxyId = _local5; _local20.value = _local8[_local9]; _local20.proxyId = _local5; _local21 = _local11[int((_local12 - 1))]; _local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount; _local21 = _local11[int((_local13 - 1))]; _local20.stabbingCount = _local21.stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local21 = _local11[_local3]; _local21.stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local19 = _local11[_local3]; _local23 = m_proxyPool[_local19.proxyId]; if (_local19.IsLower()){ _local23.lowerBounds[_local9] = _local3; } else { _local23.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; _local10 = 0; while (_local10 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]); _local10++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local5); } public function DestroyProxy(_arg1:uint):void{ var _local2:b2Bound; var _local3:b2Bound; var _local4:b2Proxy; var _local5:int; var _local6:int; var _local7:int; var _local8:Array; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:int; var _local15:int; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; _local4 = m_proxyPool[_arg1]; _local5 = (2 * m_proxyCount); _local6 = 0; while (_local6 < 2) { _local8 = m_bounds[_local6]; _local9 = _local4.lowerBounds[_local6]; _local10 = _local4.upperBounds[_local6]; _local2 = _local8[_local9]; _local11 = _local2.value; _local3 = _local8[_local10]; _local12 = _local3.value; _local13 = new Array(); _local15 = ((_local10 - _local9) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local9 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = _local9; _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local13 = new Array(); _local15 = ((_local5 - _local10) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local10 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = (_local10 - 1); _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = (_local5 - 2); _local17 = _local9; while (_local17 < _local15) { _local2 = _local8[_local17]; _local19 = m_proxyPool[_local2.proxyId]; if (_local2.IsLower()){ _local19.lowerBounds[_local6] = _local17; } else { _local19.upperBounds[_local6] = _local17; }; _local17++; }; _local15 = (_local10 - 1); _local18 = _local9; while (_local18 < _local15) { _local2 = _local8[_local18]; _local2.stabbingCount--; _local18++; }; Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6); _local6++; }; _local7 = 0; while (_local7 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]); _local7++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local4.userData = null; _local4.overlapCount = b2_invalid; _local4.lowerBounds[0] = b2_invalid; _local4.lowerBounds[1] = b2_invalid; _local4.upperBounds[0] = b2_invalid; _local4.upperBounds[1] = b2_invalid; _local4.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; var _local5:b2Bound; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg2.upperBounds[_local3]]; if (_arg1.lowerValues[_local3] > _local5.value){ return (false); }; _local5 = _local4[_arg2.lowerBounds[_local3]]; if (_arg1.upperValues[_local3] < _local5.value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local5:int; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; _local5 = 0; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy; _local2 = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } public function InRange(_arg1:b2AABB):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = _arg1.lowerBound.x; _local3 = _arg1.lowerBound.y; _local2 = (_local2 - m_worldAABB.upperBound.x); _local3 = (_local3 - m_worldAABB.upperBound.y); _local4 = m_worldAABB.lowerBound.x; _local5 = m_worldAABB.lowerBound.y; _local4 = (_local4 - _arg1.upperBound.x); _local5 = (_local5 - _arg1.upperBound.y); _local2 = b2Math.b2Max(_local2, _local4); _local3 = b2Math.b2Max(_local3, _local5); return ((b2Math.b2Max(_local2, _local3) < 0)); } public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{ var _local3:Array; var _local4:int; var _local5:uint; var _local6:uint; var _local7:b2Bound; var _local8:b2Bound; var _local9:b2Bound; var _local10:uint; var _local11:b2Proxy; var _local12:uint; var _local13:b2Proxy; var _local14:b2BoundValues; var _local15:b2BoundValues; var _local16:Array; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:uint; var _local21:int; var _local22:int; var _local23:uint; var _local24:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; _local12 = (2 * m_proxyCount); _local13 = m_proxyPool[_arg1]; _local14 = new b2BoundValues(); ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2); _local15 = new b2BoundValues(); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5][_local13.lowerBounds[_local5]]; _local15.lowerValues[_local5] = _local7.value; _local7 = m_bounds[_local5][_local13.upperBounds[_local5]]; _local15.upperValues[_local5] = _local7.value; _local5++; }; _local5 = 0; while (_local5 < 2) { _local16 = m_bounds[_local5]; _local17 = _local13.lowerBounds[_local5]; _local18 = _local13.upperBounds[_local5]; _local19 = _local14.lowerValues[_local5]; _local20 = _local14.upperValues[_local5]; _local7 = _local16[_local17]; _local21 = (_local19 - _local7.value); _local7.value = _local19; _local7 = _local16[_local18]; _local22 = (_local20 - _local7.value); _local7.value = _local20; if (_local21 < 0){ _local6 = _local17; while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local8.proxyId]; _local8.stabbingCount++; if (_local8.IsUpper() == true){ if (TestOverlap(_local14, _local24)){ m_pairManager.AddBufferedPair(_arg1, _local23); }; _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; if (_local22 > 0){ _local6 = _local18; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount++; if (_local9.IsLower() == true){ if (TestOverlap(_local14, _local11)){ m_pairManager.AddBufferedPair(_arg1, _local10); }; _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local21 > 0){ _local6 = _local17; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount--; if (_local9.IsUpper()){ if (TestOverlap(_local15, _local11)){ m_pairManager.RemoveBufferedPair(_arg1, _local10); }; _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local22 < 0){ _local6 = _local18; while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local23]; _local8.stabbingCount--; if (_local8.IsLower() == true){ if (TestOverlap(_local15, _local24)){ m_pairManager.RemoveBufferedPair(_arg1, _local23); }; _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; _local5++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local4:int; var _local5:int; var _local6:int; var _local7:b2Bound; _local4 = 0; _local5 = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); _local7 = _arg1[_local6]; if (_local7.value > _arg3){ _local5 = (_local6 - 1); } else { if (_local7.value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.Collision
Section 13
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 14
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.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 EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:int; var _local7:Array; var _local8:Array; var _local9:int; var _local10:Array; var _local11:b2Mat22; var _local12:b2Vec2; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:int; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _local6 = _arg1.m_vertexCount; _local7 = _arg1.m_vertices; _local8 = _arg1.m_normals; _local9 = _arg4.m_vertexCount; _local10 = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; _local13 = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); _local14 = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; _local15 = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); _local16 = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); _local17 = 0; _local18 = Number.MAX_VALUE; _local19 = 0; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; _local20 = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); _local21 = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; _local22 = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); _local23 = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); _local24 = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local3 = _arg2.lowerBound; _local4 = _arg1.upperBound; _local5 = (_local3.x - _local4.x); _local6 = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; _local7 = (_local3.x - _local4.x); _local8 = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local7:int; var _local8:Array; var _local9:int; var _local10:Array; var _local11:Array; var _local12:b2Mat22; var _local13:b2Vec2; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:int; var _local20:ClipVertex; var _local21:int; var _local22:int; var _local23:Number; _local7 = _arg2.m_vertexCount; _local8 = _arg2.m_normals; _local9 = _arg5.m_vertexCount; _local10 = _arg5.m_vertices; _local11 = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; _local14 = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); _local15 = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; _local16 = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; _local17 = 0; _local18 = Number.MAX_VALUE; _local19 = 0; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; _local21 = _local17; _local22 = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local7:int; var _local8:Array; var _local9:Number; var _local10:int; var _local11:Array; var _local12:Number; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local15:b2XForm; var _local16:b2XForm; var _local17:int; var _local18:uint; var _local19:Number; var _local20:Number; var _local21:Array; var _local22:int; var _local23:Array; var _local24:b2Vec2; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:b2Vec2; var _local28:b2Vec2; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Array; var _local33:Array; var _local34:int; var _local35:int; var _local36:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; _local7 = 0; _local8 = [_local7]; _local9 = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; _local10 = 0; _local11 = [_local10]; _local12 = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; _local15 = new b2XForm(); _local16 = new b2XForm(); _local19 = 0.98; _local20 = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; _local21 = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); _local22 = _local13.m_vertexCount; _local23 = _local13.m_vertices; _local24 = _local23[_local17]; _local25 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; _local26 = b2Math.SubtractVV(_local37, _local25); _local27 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); _local28 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); _local29 = b2Math.b2Dot(_local28, _local25); _local30 = -(b2Math.b2Dot(_local27, _local25)); _local31 = b2Math.b2Dot(_local27, _local37); _local32 = [new ClipVertex(), new ClipVertex()]; _local33 = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); _local35 = 0; _local36 = 0; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:int; var _local7:Array; var _local8:b2Vec2; var _local9:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:int; var _local15:Number; var _local16:int; var _local17:Number; var _local18:int; var _local19:Number; var _local20:int; var _local21:Number; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; _local6 = _arg2.m_vertexCount; _local7 = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; _local10 = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); _local11 = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); _local12 = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); _local13 = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); _local14 = 0; _local15 = -(Number.MAX_VALUE); _local16 = 0; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; _local18 = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); _local19 = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; _local20 = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; _local21 = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); _local10 = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:b2ManifoldPoint; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; _local8 = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local9 = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; _local10 = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local11 = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local12 = (_local10 - _local8); _local13 = (_local11 - _local9); _local14 = ((_local12 * _local12) + (_local13 * _local13)); _local15 = _arg2.m_radius; _local16 = _arg4.m_radius; _local17 = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; _local19 = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); _local20 = (0.5 * (_local8 + _local10)); _local21 = (0.5 * (_local9 + _local11)); _local22 = (_local20 - _arg3.position.x); _local23 = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:Number; var _local20:Number; var _local21:int; var _local22:Array; var _local23:Array; var _local24:int; var _local25:int; var _local26:int; var _local27:b2Vec2; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; _local13 = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); _local14 = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; _local15 = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local16 = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local18 = 0; _local19 = -(Number.MAX_VALUE); _local20 = _arg4.m_radius; _local21 = _arg2.m_vertexCount; _local22 = _arg2.m_vertices; _local23 = _arg2.m_normals; _local24 = 0; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; _local25 = _local18; _local26 = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; _local27 = _local22[_local26]; _local28 = (_local27.x - _local11.x); _local29 = (_local27.y - _local11.y); _local30 = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local31 = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } } }//package Box2D.Collision
Section 15
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var _key:uint; public var features:Features; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID; _local1 = new b2ContactID(); _local1.key = key; return (_local1); } public function get key():uint{ return (_key); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } } }//package Box2D.Collision
Section 16
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2ContactPoint { public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var restitution:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public var friction:Number; public var velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 17
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local4:Number; var _local5:int; var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local4 = (100 * Number.MIN_VALUE); _local5 = 0; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local8:Array; var _local9:Array; var _local10:Array; var _local11:int; var _local12:Number; var _local13:int; var _local14:int; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; _local8 = s_p1s; _local9 = s_p2s; _local10 = s_points; _local11 = 0; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); _local12 = 0; _local13 = 20; _local14 = 0; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - _local21) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; _local9 = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local10 = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; _local11 = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local12 = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = ((_local13 * _local13) + (_local14 * _local14)); _local16 = (_arg3.m_radius - b2Settings.b2_toiSlop); _local17 = (_arg5.m_radius - b2Settings.b2_toiSlop); _local18 = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local14:b2Vec2; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; _local14 = _arg4[2]; _local15 = _local6.x; _local16 = _local6.y; _local17 = _local7.x; _local18 = _local7.y; _local19 = _local8.x; _local20 = _local8.y; _local21 = (_local17 - _local15); _local22 = (_local18 - _local16); _local23 = (_local19 - _local15); _local24 = (_local20 - _local16); _local25 = (_local19 - _local17); _local26 = (_local20 - _local18); _local27 = -(((_local15 * _local21) + (_local16 * _local22))); _local28 = ((_local17 * _local21) + (_local18 * _local22)); _local29 = -(((_local15 * _local23) + (_local16 * _local24))); _local30 = ((_local19 * _local23) + (_local20 * _local24)); _local31 = -(((_local17 * _local25) + (_local18 * _local26))); _local32 = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; _local33 = ((_local21 * _local24) - (_local22 * _local23)); _local34 = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); _local36 = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; _local37 = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; _local38 = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); _local39 = (_local36 * _local38); _local40 = (_local37 * _local38); _local41 = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local9:b2Point; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local9 = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local10 = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); _local11 = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int; var _local8:int; _local7 = _arg3.m_type; _local8 = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; _local12 = -(_local7.x); _local13 = -(_local7.y); _local14 = (_local6.x - _local7.x); _local15 = (_local6.y - _local7.y); _local16 = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } }//package Box2D.Collision
Section 18
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var points:Array; public var pointCount:int;// = 0 public var normal:b2Vec2; public function b2Manifold(){ var _local1:int; pointCount = 0; super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ var _local2:int; pointCount = _arg1.pointCount; _local2 = 0; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } public function Reset():void{ var _local1:int; _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 19
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var separation:Number; public var localPoint2:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var localPoint1:b2Vec2; public var id:b2ContactID; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } public function Set(_arg1:b2ManifoldPoint):void{ localPoint1.SetV(_arg1.localPoint1); localPoint2.SetV(_arg1.localPoint2); separation = _arg1.separation; normalImpulse = _arg1.normalImpulse; tangentImpulse = _arg1.tangentImpulse; id.key = _arg1.id.key; } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalImpulse = 0; tangentImpulse = 0; id.key = 0; } } }//package Box2D.Collision
Section 20
//b2OBB (Box2D.Collision.b2OBB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2OBB { public var R:b2Mat22; public var center:b2Vec2; public var extents:b2Vec2; public function b2OBB(){ R = new b2Mat22(); center = new b2Vec2(); extents = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 21
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var userData;// = null public var proxyId1:uint; public var proxyId2:uint; public var status:uint; public var next:uint; public static var e_pairFinal:uint = 4; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairRemoved:uint = 2; public static var b2_nullPair:uint = b2Settings.USHRT_MAX; public static var e_pairBuffered:uint = 1; public static var b2_nullProxy:uint = b2Settings.USHRT_MAX; public static var b2_tableCapacity:int = b2Settings.b2_maxPairs; public function b2Pair(){ userData = null; super(); } public function SetBuffered():void{ status = (status | e_pairBuffered); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } } }//package Box2D.Collision
Section 22
//b2PairCallback (Box2D.Collision.b2PairCallback) package Box2D.Collision { public class b2PairCallback { public function PairRemoved(_arg1, _arg2, _arg3):void{ } public function PairAdded(_arg1, _arg2){ return (null); } } }//package Box2D.Collision
Section 23
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PairManager { public var m_pairCount:int; public var m_pairBuffer:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_hashTable:Array; public var m_broadPhase:b2BroadPhase; public var m_freePair:uint; public function b2PairManager(){ var _local1:uint; super(); m_hashTable = new Array(b2Pair.b2_tableCapacity); _local1 = 0; while (_local1 < b2Pair.b2_tableCapacity) { m_hashTable[_local1] = b2Pair.b2_nullPair; _local1++; }; m_pairs = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1] = new b2Pair(); _local1++; }; m_pairBuffer = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairBuffer[_local1] = new b2BufferedPair(); _local1++; }; _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy; m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy; m_pairs[_local1].userData = null; m_pairs[_local1].status = 0; m_pairs[_local1].next = (_local1 + 1); _local1++; }; m_pairs[int((b2Settings.b2_maxPairs - 1))].next = b2Pair.b2_nullPair; m_pairCount = 0; m_pairBufferCount = 0; } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:b2Pair; var _local5:uint; _local5 = m_hashTable[_arg3]; _local4 = m_pairs[_local5]; while (((!((_local5 == b2Pair.b2_nullPair))) && ((Equals(_local4, _arg1, _arg2) == false)))) { _local5 = _local4.next; _local4 = m_pairs[_local5]; }; if (_local5 == b2Pair.b2_nullPair){ return (null); }; return (_local4); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local3:int; var _local4:Array; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; _local3 = 0; _local4 = m_broadPhase.m_proxyPool; _local2 = 0; while (_local2 < m_pairBufferCount) { _local1 = m_pairBuffer[_local2]; _local5 = Find(_local1.proxyId1, _local1.proxyId2); _local5.ClearBuffered(); _local6 = _local4[_local5.proxyId1]; _local7 = _local4[_local5.proxyId2]; if (_local5.IsRemoved()){ if (_local5.IsFinal() == true){ m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData); }; _local1 = m_pairBuffer[_local3]; _local1.proxyId1 = _local5.proxyId1; _local1.proxyId2 = _local5.proxyId2; _local3++; } else { if (_local5.IsFinal() == false){ _local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData); _local5.SetFinal(); }; }; _local2++; }; _local2 = 0; while (_local2 < _local3) { _local1 = m_pairBuffer[_local2]; RemovePair(_local1.proxyId1, _local1.proxyId2); _local2++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair; _local4 = Find(_arg1, _arg2); if (_local4 == null){ return; }; if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local4:uint; var _local5:uint; var _local6:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; _local4 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local5 = m_hashTable[_local4]; _local6 = null; while (_local5 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local5], _arg1, _arg2)){ _local8 = _local5; _local3 = m_pairs[_local5]; if (_local6){ _local6.next = _local3.next; } else { m_hashTable[_local4] = _local3.next; }; _local3 = m_pairs[_local8]; _local9 = _local3.userData; _local3.next = m_freePair; _local3.proxyId1 = b2Pair.b2_nullProxy; _local3.proxyId2 = b2Pair.b2_nullProxy; _local3.userData = null; _local3.status = 0; m_freePair = _local8; m_pairCount--; return (_local9); } else { _local6 = m_pairs[_local5]; _local5 = _local6.next; }; }; return (null); } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair; _local4 = AddPair(_arg1, _arg2); if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:b2Pair; var _local5:uint; var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; _local5 = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function ValidateTable():void{ } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } public static function Hash(_arg1:uint, _arg2:uint):uint{ var _local3:uint; _local3 = (((_arg2 << 16) & 4294901760) | _arg1); _local3 = (~(_local3) + ((_local3 << 15) & 4294934528)); _local3 = (_local3 ^ ((_local3 >> 12) & 1048575)); _local3 = (_local3 + ((_local3 << 2) & 4294967292)); _local3 = (_local3 ^ ((_local3 >> 4) & 268435455)); _local3 = (_local3 * 2057); _local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF)); return (_local3); } public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{ return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3)))); } } }//package Box2D.Collision
Section 24
//b2Point (Box2D.Collision.b2Point) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Point { public var p:b2Vec2; public function b2Point(){ p = new b2Vec2(); super(); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 25
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var lowerBounds:Array; public var upperBounds:Array; public var userData;// = null public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; userData = null; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } } }//package Box2D.Collision
Section 26
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; _local5 = _arg3.p1; _local6 = (_arg3.p2.x - _local5.x); _local7 = (_arg3.p2.y - _local5.y); _local8 = (p2.x - p1.x); _local9 = (p2.y - p1.y); _local10 = _local9; _local11 = -(_local8); _local12 = (100 * Number.MIN_VALUE); _local13 = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local6) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.Collision
Section 27
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:int; var _local20:int; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; _local7 = _arg1.m_sweepRadius; _local8 = _arg3.m_sweepRadius; _local9 = _arg2.t0; _local10 = (_arg2.c.x - _arg2.c0.x); _local11 = (_arg2.c.y - _arg2.c0.y); _local12 = (_arg4.c.x - _arg4.c0.x); _local13 = (_arg4.c.y - _arg4.c0.y); _local14 = (_arg2.a - _arg2.a0); _local15 = (_arg4.a - _arg4.a0); _local16 = 0; _local17 = s_p1; _local18 = s_p2; _local19 = 20; _local20 = 0; _local21 = 0; _local22 = 0; _local23 = 0; _local24 = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } }//package Box2D.Collision
Section 28
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var v:b2Vec2; public var id:b2ContactID; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 29
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceEdge:int; public var _incidentEdge:int; public var _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get flip():int{ return (_flip); } public function get incidentEdge():int{ return (_incidentEdge); } public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.Collision
Section 30
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function Set(_arg1:Number):void{ var _local2:Number; var _local3:Number; _local2 = Math.cos(_arg1); _local3 = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = col1.x; _local3 = col2.x; _local4 = col1.y; _local5 = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = col1.x; _local5 = col2.x; _local6 = col1.y; _local7 = col2.y; _local8 = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 31
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = b2MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:*; _local3 = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22; _local2 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2; _local2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2Mat22; _local3 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); _local4 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); _local5 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean; _local2 = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number; _local3 = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } }//package Box2D.Common.Math
Section 32
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var c:b2Vec2; public var a:Number; public var c0:b2Vec2; public var a0:Number; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; _local3 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } }//package Box2D.Common.Math
Section 33
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var x:Number; public var y:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function SetZero():void{ x = 0; y = 0; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function CrossVF(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function MulM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function Normalize():Number{ var _local1:Number; var _local2:Number; _local1 = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; _local2 = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function CrossFV(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 34
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var R:b2Mat22; public var position:b2Vec2; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } } }//package Box2D.Common.Math
Section 35
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _g:uint;// = 0 private var _b:uint;// = 0 private var _r:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = 0; _g = 0; _b = 0; super(); _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function get color():uint{ return (((_r | (_g << 8)) | (_b << 16))); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } } }//package Box2D.Common
Section 36
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const b2_angularSleepTolerance:Number = 0.0111111111111111; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_angularSlop:Number = 0.0349065850398866; public static const b2_linearSlop:Number = 0.005; public static const b2_pi:Number = 3.14159265358979; public static const b2_maxProxies:int = 0x0200; public static const b2_maxAngularVelocitySquared:Number = 62500; public static const b2_maxPolygonVertices:int = 8; public static const b2_velocityThreshold:Number = 1; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_maxPairs:int = 4096; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_timeToSleep:Number = 0.5; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxAngularVelocity:Number = 250; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const USHRT_MAX:int = 0xFFFF; public static const b2_maxLinearVelocity:Number = 200; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_toiSlop:Number = 0.04; public static const b2_maxLinearVelocitySquared:Number = 40000; public static function b2Assert(_arg1:Boolean):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 37
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ var _local3:b2ManifoldPoint; m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; _local3 = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactPoint; var _local8:b2ManifoldPoint; _local5 = m_shape1.m_body; _local6 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 38
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Contact { public var m_shape1:b2Shape; public var m_shape2:b2Shape; public var m_prev:b2Contact; public var m_toi:Number; public var m_next:b2Contact; public var m_friction:Number; public var m_manifoldCount:int; public var m_node1:b2ContactEdge; public var m_node2:b2ContactEdge; public var m_restitution:Number; public var m_flags:uint; public static var e_toiFlag:uint = 8; public static var e_nonSolidFlag:uint = 1; public static var e_slowFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var s_registers:Array; public static var s_initialized:Boolean = false; public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){ m_node1 = new b2ContactEdge(); m_node2 = new b2ContactEdge(); super(); m_flags = 0; if (((!(_arg1)) || (!(_arg2)))){ m_shape1 = null; m_shape2 = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_nonSolidFlag); }; m_shape1 = _arg1; m_shape2 = _arg2; m_manifoldCount = 0; m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction)); m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution); m_prev = null; m_next = null; m_node1.contact = null; m_node1.prev = null; m_node1.next = null; m_node1.other = null; m_node2.contact = null; m_node2.prev = null; m_node2.next = null; m_node2.other = null; } public function GetShape1():b2Shape{ return (m_shape1); } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetNext():b2Contact{ return (m_next); } public function GetManifolds():Array{ return (null); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function Update(_arg1:b2ContactListener):void{ var _local2:int; var _local3:int; var _local4:b2Body; var _local5:b2Body; _local2 = m_manifoldCount; Evaluate(_arg1); _local3 = m_manifoldCount; _local4 = m_shape1.m_body; _local5 = m_shape2.m_body; if ((((_local3 == 0)) && ((_local2 > 0)))){ _local4.WakeUp(); _local5.WakeUp(); }; if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } public function Evaluate(_arg1:b2ContactListener):void{ } public static function InitializeRegisters():void{ var _local1:int; var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); _local1 = 0; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); } public static function Destroy(_arg1:b2Contact, _arg2):void{ var _local3:int; var _local4:int; var _local5:b2ContactRegister; var _local6:Function; if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; _local3 = _arg1.m_shape1.m_type; _local4 = _arg1.m_shape2.m_type; _local5 = s_registers[_local3][_local4]; _local6 = _local5.destroyFcn; _local6(_arg1, _arg2); } public static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local4:int; var _local5:int; var _local6:b2ContactRegister; var _local7:Function; var _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; _local4 = _arg1.m_type; _local5 = _arg2.m_type; _local6 = s_registers[_local4][_local5]; _local7 = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 39
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var normal:b2Vec2; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ var _local1:int; normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 40
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var r2:b2Vec2; public var separation:Number; public var positionImpulse:Number; public var normalImpulse:Number; public var equalizedMass:Number; public var tangentMass:Number; public var tangentImpulse:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var normalMass:Number; public var velocityBias:Number; public var r1:b2Vec2; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 41
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var next:b2ContactEdge; public var other:b2Body; public var contact:b2Contact; public var prev:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 42
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn:Function; public var destroyFcn:Function; } }//package Box2D.Dynamics.Contacts
Section 43
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Collision.*; public class b2ContactResult { public var normal:b2Vec2; public var position:b2Vec2; public var shape1:b2Shape; public var shape2:b2Shape; public var normalImpulse:Number; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ContactResult(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Dynamics.Contacts
Section 44
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactSolver { public var m_constraintCount:int; public var m_constraints:Array; public var m_allocator; public var m_step:b2TimeStep; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local9:int; var _local10:b2Body; var _local11:b2Body; var _local12:int; var _local13:Array; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; var _local23:b2Manifold; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraint; var _local27:uint; var _local28:b2ManifoldPoint; var _local29:b2ContactConstraintPoint; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; m_step = new b2TimeStep(); m_constraints = new Array(); super(); m_step.dt = _arg1.dt; m_step.inv_dt = _arg1.inv_dt; m_step.maxIterations = _arg1.maxIterations; m_allocator = _arg4; m_constraintCount = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; m_constraintCount = (m_constraintCount + _local5.m_manifoldCount); _local6++; }; _local6 = 0; while (_local6 < m_constraintCount) { m_constraints[_local6] = new b2ContactConstraint(); _local6++; }; _local9 = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1.m_body; _local11 = _local5.m_shape2.m_body; _local12 = _local5.m_manifoldCount; _local13 = _local5.GetManifolds(); _local14 = _local5.m_friction; _local15 = _local5.m_restitution; _local16 = _local10.m_linearVelocity.x; _local17 = _local10.m_linearVelocity.y; _local18 = _local11.m_linearVelocity.x; _local19 = _local11.m_linearVelocity.y; _local20 = _local10.m_angularVelocity; _local21 = _local11.m_angularVelocity; _local22 = 0; while (_local22 < _local12) { _local23 = _local13[_local22]; _local24 = _local23.normal.x; _local25 = _local23.normal.y; _local26 = m_constraints[_local9]; _local26.body1 = _local10; _local26.body2 = _local11; _local26.manifold = _local23; _local26.normal.x = _local24; _local26.normal.y = _local25; _local26.pointCount = _local23.pointCount; _local26.friction = _local14; _local26.restitution = _local15; _local27 = 0; while (_local27 < _local26.pointCount) { _local28 = _local23.points[_local27]; _local29 = _local26.points[_local27]; _local29.normalImpulse = _local28.normalImpulse; _local29.tangentImpulse = _local28.tangentImpulse; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local8 = _local10.m_xf.R; _local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x); _local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33)); _local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33)); _local32 = _local30; _local29.r1.Set(_local32, _local33); _local8 = _local11.m_xf.R; _local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x); _local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local30; _local29.r2.Set(_local34, _local35); _local36 = ((_local32 * _local32) + (_local33 * _local33)); _local37 = ((_local34 * _local34) + (_local35 * _local35)); _local38 = ((_local32 * _local24) + (_local33 * _local25)); _local39 = ((_local34 * _local24) + (_local35 * _local25)); _local40 = (_local10.m_invMass + _local11.m_invMass); _local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39))))); _local29.normalMass = (1 / _local40); _local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass)); _local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39))))); _local29.equalizedMass = (1 / _local41); _local42 = _local25; _local43 = -(_local24); _local44 = ((_local32 * _local42) + (_local33 * _local43)); _local45 = ((_local34 * _local42) + (_local35 * _local43)); _local46 = (_local10.m_invMass + _local11.m_invMass); _local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45))))); _local29.tangentMass = (1 / _local46); _local29.velocityBias = 0; if (_local29.separation > 0){ _local29.velocityBias = (-60 * _local29.separation); }; _local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33)); _local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32)); _local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47)); }; _local27++; }; _local9++; _local22++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local5:int; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; _local5 = 0; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:int; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; _local2 = 0; _local5 = 0; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Mat22; var _local18:b2Vec2; var _local19:int; var _local20:b2ContactConstraint; var _local21:b2Body; var _local22:b2Body; var _local23:Number; var _local24:Number; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:int; var _local38:Number; _local19 = 0; while (_local19 < m_constraintCount) { _local20 = m_constraints[_local19]; _local21 = _local20.body1; _local22 = _local20.body2; _local23 = _local21.m_angularVelocity; _local24 = _local22.m_angularVelocity; _local25 = _local21.m_linearVelocity; _local26 = _local22.m_linearVelocity; _local27 = _local21.m_invMass; _local28 = _local21.m_invI; _local29 = _local22.m_invMass; _local30 = _local22.m_invI; _local31 = _local20.normal.x; _local32 = _local20.normal.y; _local33 = _local32; _local34 = -(_local31); _local35 = _local20.friction; _local37 = _local20.pointCount; _local1 = 0; while (_local1 < _local37) { _local2 = _local20.points[_local1]; _local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y)); _local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x)); _local9 = ((_local7 * _local31) + (_local8 * _local32)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local10 = ((_local7 * _local33) + (_local8 * _local34)); _local12 = (_local2.tangentMass * -(_local10)); _local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0); _local11 = (_local13 - _local2.normalImpulse); _local38 = (_local35 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38); _local12 = (_local14 - _local2.tangentImpulse); _local15 = ((_local11 * _local31) + (_local12 * _local33)); _local16 = ((_local11 * _local32) + (_local12 * _local34)); _local25.x = (_local25.x - (_local27 * _local15)); _local25.y = (_local25.y - (_local27 * _local16)); _local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local26.x = (_local26.x + (_local29 * _local15)); _local26.y = (_local26.y + (_local29 * _local16)); _local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.normalImpulse = _local13; _local2.tangentImpulse = _local14; _local1++; }; _local21.m_angularVelocity = _local23; _local22.m_angularVelocity = _local24; _local19++; }; } public function FinalizeVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; _local1 = 0; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 45
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function GetManifolds():Array{ return (null); } override public function Evaluate(_arg1:b2ContactListener):void{ } } }//package Box2D.Dynamics.Contacts
Section 46
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ var _local3:b2ManifoldPoint; m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; _local3 = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local6:b2Body; var _local7:b2Body; var _local8:Array; var _local9:b2ContactPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; _local6 = m_shape1.m_body; _local7 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); _local8 = [false, false]; _local9 = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 47
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactPoint; var _local8:int; var _local9:Array; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; _local5 = m_shape1.m_body; _local6 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); _local9 = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local9[_local13] == true){ } else { _local4 = m0.points[_local13]; if (_local4.id._key == _local12){ _local9[_local13] = true; _local10.normalImpulse = _local4.normalImpulse; _local10.tangentImpulse = _local4.tangentImpulse; _local11 = true; if (_arg1 != null){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Persist(_local7); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Add(_local7); }; _local8++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local8 = 0; while (_local8 < m0.pointCount) { if (_local9[_local8]){ } else { _local4 = m0.points[_local8]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; _local8++; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 48
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_mass:Number; public var m_u:b2Vec2; public var m_impulse:Number; public var m_dampingRatio:Number; public var m_frequencyHz:Number; public var m_localAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_bias:Number; public var m_gamma:Number; public var m_length:Number; public function b2DistanceJoint(_arg1:b2DistanceJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; m_inv_dt = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; if (m_frequencyHz > 0){ return (true); }; _local2 = m_body1; _local3 = m_body2; _local1 = _local2.m_xf.R; _local4 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; _local7 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local8 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; _local9 = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); _local10 = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); _local11 = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); _local12 = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local13 = (-(m_mass) * _local12); m_u.Set(_local9, _local10); _local14 = (_local13 * m_u.x); _local15 = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; m_inv_dt = _arg1.inv_dt; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); _local10 = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; _local11 = ((_local6 * m_u.y) - (_local7 * m_u.x)); _local12 = ((_local8 * m_u.y) - (_local9 * m_u.x)); _local13 = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local3 = m_body1; _local4 = m_body2; _local2 = _local3.m_xf.R; _local5 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; _local8 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; _local10 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); _local11 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); _local12 = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); _local13 = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); _local14 = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); _local15 = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); _local16 = (_local15 * m_u.x); _local17 = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } } }//package Box2D.Dynamics.Joints
Section 49
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2DistanceJointDef extends b2JointDef { public var length:Number; public var dampingRatio:Number; public var frequencyHz:Number; public var localAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ var _local5:Number; var _local6:Number; body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); _local5 = (_arg4.x - _arg3.x); _local6 = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.Joints
Section 50
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_force:Number; public var m_mass:Number; public var m_prismatic1:b2PrismaticJoint; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_ground2:b2Body; public var m_constant:Number; public var m_revolute1:b2RevoluteJoint; public var m_revolute2:b2RevoluteJoint; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_ratio:Number; public var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local2:int; var _local3:int; var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); _local2 = _arg1.joint1.m_type; _local3 = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.m_body1; m_body1 = _arg1.joint1.m_body2; if (_local2 == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local4 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local4 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_local3 == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local5 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local5 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local4 + (m_ratio * _local5)); m_force = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local1 = 0; _local2 = m_body1; _local3 = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; _local6 = (m_constant - (_local4 + (m_ratio * _local5))); _local7 = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; _local2 = m_ground1; _local3 = m_ground2; _local4 = m_body1; _local5 = m_body2; _local14 = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ var _local1:b2Mat22; var _local2:Number; var _local3:Number; var _local4:Number; _local1 = m_body2.m_xf.R; _local2 = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); _local3 = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); _local4 = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = m_body1; _local3 = m_body2; _local4 = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local5 = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); _local6 = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } } }//package Box2D.Dynamics.Joints
Section 51
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint2:b2Joint; public var joint1:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 52
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var linear2:b2Vec2; public var angular2:Number; public var angular1:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 53
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2Joint { public var m_islandFlag:Boolean; public var m_body1:b2Body; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_type:int; public var m_collideConnected:Boolean; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_inv_dt:Number; public var m_userData; public var m_body2:b2Body; public static const e_unknownJoint:int = 0; public static const e_inactiveLimit:int = 0; public static const e_atUpperLimit:int = 2; public static const e_atLowerLimit:int = 1; public static const e_gearJoint:int = 6; public static const e_revoluteJoint:int = 1; public static const e_equalLimits:int = 3; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_prismaticJoint:int = 2; public static const e_mouseJoint:int = 5; public function b2Joint(_arg1:b2JointDef){ m_node1 = new b2JointEdge(); m_node2 = new b2JointEdge(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetType():int{ return (m_type); } public function GetBody2():b2Body{ return (m_body2); } public function GetNext():b2Joint{ return (m_next); } public function GetReactionTorque():Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce():b2Vec2{ return (null); } public function SolvePositionConstraints():Boolean{ return (false); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetBody1():b2Body{ return (m_body1); } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public static function Destroy(_arg1:b2Joint, _arg2):void{ } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; _local3 = null; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } } }//package Box2D.Dynamics.Joints
Section 54
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var collideConnected:Boolean; public var body1:b2Body; public var body2:b2Body; public var userData; public var type:int; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 55
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var joint:b2Joint; public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; } }//package Box2D.Dynamics.Joints
Section 56
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { public var m_beta:Number; public var m_mass:b2Mat22; public var m_target:b2Vec2; public var m_impulse:b2Vec2; public var m_localAnchor:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K:b2Mat22; public var m_gamma:Number; public var m_C:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local2:Number; var _local3:Number; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); _local2 = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); _local4 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); _local5 = m_body2.m_mass; _local6 = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); _local7 = (((2 * _local5) * _arg1.dampingRatio) * _local6); _local8 = ((_arg1.timeStep * _local5) * (_local6 * _local6)); m_gamma = (1 / (_local7 + _local8)); m_beta = (_local8 / (_local7 + _local8)); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function GetReactionForce():b2Vec2{ return (m_impulse); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); _local9 = (_arg1.dt * m_impulse.x); _local10 = (_arg1.dt * m_impulse.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function GetReactionTorque():Number{ return (0); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local6 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; _local8 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); _local9 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y)); _local10 = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); _local11 = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); _local12 = m_impulse.x; _local13 = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); _local14 = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); _local15 = (_arg1.dt * _local10); _local16 = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } } }//package Box2D.Dynamics.Joints
Section 57
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var frequencyHz:Number; public var dampingRatio:Number; public var maxForce:Number; public var target:b2Vec2; public var timeStep:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; timeStep = (1 / 60); } } }//package Box2D.Dynamics.Joints
Section 58
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { public var m_limitForce:Number; public var m_refAngle:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_torque:Number; public var m_enableLimit:Boolean; public var m_motorForce:Number; public var m_force:Number; public var m_localYAxis1:b2Vec2; public var m_motorMass:Number; public var m_maxMotorForce:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_angularMass:Number; public var m_limitState:int; public var m_linearMass:Number; public var m_upperTranslation:Number; public var m_motorJacobian:b2Jacobian; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_linearJacobian:b2Jacobian; public var m_enableMotor:Boolean; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_linearJacobian = new b2Jacobian(); m_motorJacobian = new b2Jacobian(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_linearJacobian.SetZero(); m_linearMass = 0; m_force = 0; m_angularMass = 0; m_torque = 0; m_motorJacobian.SetZero(); m_motorMass = 0; m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerTranslation = _arg1.lowerTranslation; m_upperTranslation = _arg1.upperTranslation; m_maxMotorForce = _arg1.maxMotorForce; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function GetJointTranslation():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:b2Vec2; var _local9:Number; _local1 = m_body1; _local2 = m_body2; _local4 = _local1.GetWorldPoint(m_localAnchor1); _local5 = _local2.GetWorldPoint(m_localAnchor2); _local6 = (_local5.x - _local4.x); _local7 = (_local5.y - _local4.y); _local8 = _local1.GetWorldVector(m_localXAxis1); _local9 = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.m_xf.R; _local2 = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); _local3 = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); _local4 = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); _local5 = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; _local3 = m_body1; _local4 = m_body2; _local5 = _local3.m_invMass; _local6 = _local4.m_invMass; _local7 = _local3.m_invI; _local8 = _local4.m_invI; _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local21 = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); _local22 = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); _local23 = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local24 = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); _local25 = b2Math.b2Abs(_local23); _local26 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local27 = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); _local28 = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } public function GetJointSpeed():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:b2Vec2; var _local16:b2Vec2; var _local17:b2Vec2; var _local18:Number; var _local19:Number; var _local20:Number; _local1 = m_body1; _local2 = m_body2; _local3 = _local1.m_xf.R; _local4 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local5 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; _local7 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local8 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; _local9 = (_local1.m_sweep.c.x + _local4); _local10 = (_local1.m_sweep.c.y + _local5); _local11 = (_local2.m_sweep.c.x + _local7); _local12 = (_local2.m_sweep.c.y + _local8); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = _local1.GetWorldVector(m_localXAxis1); _local16 = _local1.m_linearVelocity; _local17 = _local2.m_linearVelocity; _local18 = _local1.m_angularVelocity; _local19 = _local2.m_angularVelocity; _local20 = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local10 = _local2.m_invMass; _local11 = _local3.m_invMass; _local12 = _local2.m_invI; _local13 = _local3.m_invI; _local4 = _local2.m_xf.R; _local14 = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); _local15 = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); _local16 = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); _local17 = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorForce():Number{ return (m_motorForce); } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_invMass; _local5 = _local3.m_invMass; _local6 = _local2.m_invI; _local7 = _local3.m_invI; _local9 = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local10 = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); _local11 = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); _local12 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local13 = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); _local14 = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } } }//package Box2D.Dynamics.Joints
Section 59
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PrismaticJointDef extends b2JointDef { public var localAxis1:b2Vec2; public var referenceAngle:Number; public var maxMotorForce:Number; public var motorSpeed:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var lowerTranslation:Number; public function b2PrismaticJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxis1.Set(1, 0); referenceAngle = 0; enableLimit = false; lowerTranslation = 0; upperTranslation = 0; enableMotor = false; maxMotorForce = 0; motorSpeed = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 60
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_ground:b2Body; public var m_maxLength2:Number; public var m_limitForce1:Number; public var m_maxLength1:Number; public var m_limitState1:int; public var m_limitState2:int; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_limitPositionImpulse1:Number; public var m_constant:Number; public var m_state:int; public var m_ratio:Number; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_positionImpulse:Number; public var m_limitMass2:Number; public var m_limitMass1:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_u2:b2Vec2; public var m_limitForce2:Number; public static const b2_minPulleyLength:Number = 2; public function b2PulleyJoint(_arg1:b2PulleyJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u1 = new b2Vec2(); m_u2 = new b2Vec2(); super(_arg1); m_ground = m_body1.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_ratio = _arg1.ratio; m_constant = (_arg1.length1 + (m_ratio * _arg1.length2)); m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio)); m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2; _local1 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; _local1 = m_body1; _local2 = m_body2; _local4 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local5 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local6 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local7 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local23 = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u1.Set((_local12 - _local4), (_local13 - _local5)); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local16 = m_u1.Length(); _local17 = m_u2.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local16)); } else { m_u1.SetZero(); }; if (_local17 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local17)); } else { m_u2.SetZero(); }; _local18 = ((m_constant - _local16) - (m_ratio * _local17)); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_pulleyMass) * _local18); _local20 = m_positionImpulse; m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19)); _local19 = (m_positionImpulse - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local14 = ((-(m_ratio) * _local19) * m_u2.x); _local15 = ((-(m_ratio) * _local19) * m_u2.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.SynchronizeTransform(); _local2.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); m_u1.Set((_local12 - _local4), (_local13 - _local5)); _local16 = m_u1.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local16)); m_u1.y = (m_u1.y * (1 / _local16)); } else { m_u1.SetZero(); }; _local18 = (m_maxLength1 - _local16); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local21 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local21); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; _local10 = (_local2.m_sweep.c.x + _local5); _local11 = (_local2.m_sweep.c.y + _local6); _local12 = (_local3.m_sweep.c.x + _local8); _local13 = (_local3.m_sweep.c.y + _local9); _local14 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local15 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local16 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local17 = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); _local18 = m_u1.Length(); _local19 = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; _local20 = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; _local21 = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); _local22 = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function GetReactionTorque():Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } public function GetLength2():Number{ var _local1:b2Vec2; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body2.GetWorldPoint(m_localAnchor2); _local2 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } public function GetLength1():Number{ var _local1:b2Vec2; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.GetWorldPoint(m_localAnchor1); _local2 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2; _local1 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.Joints
Section 61
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength2:Number; public var length1:Number; public var length2:Number; public var maxLength1:Number; public var ratio:Number; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); _local8 = (_arg5.x - _arg3.x); _local9 = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local10 = (_arg6.x - _arg4.x); _local11 = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; _local12 = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 62
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { public var m_limitForce:Number; public var m_motorForce:Number; public var m_pivotMass:b2Mat22; public var m_enableLimit:Boolean; public var m_limitState:int; public var m_motorMass:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var K:b2Mat22; public var m_pivotForce:b2Vec2; public var m_motorSpeed:Number; public var m_enableMotor:Boolean; public var m_limitPositionImpulse:Number; public var m_maxMotorTorque:Number; public var m_referenceAngle:Number; public var m_lowerAngle:Number; public var m_upperAngle:Number; public static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_pivotForce = new b2Vec2(); m_pivotMass = new b2Mat22(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_referenceAngle = _arg1.referenceAngle; m_pivotForce.Set(0, 0); m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerAngle = _arg1.lowerAngle; m_upperAngle = _arg1.upperAngle; m_maxMotorTorque = _arg1.maxMotorTorque; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ return (m_pivotForce); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local3 = m_body1; _local4 = m_body2; _local5 = 0; _local6 = _local3.m_xf.R; _local7 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local8 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; _local10 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; _local12 = (_local3.m_sweep.c.x + _local7); _local13 = (_local3.m_sweep.c.y + _local8); _local14 = (_local4.m_sweep.c.x + _local10); _local15 = (_local4.m_sweep.c.y + _local11); _local16 = (_local14 - _local12); _local17 = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); _local18 = _local3.m_invMass; _local19 = _local4.m_invMass; _local20 = _local3.m_invI; _local21 = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); _local22 = tImpulse.x; _local23 = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); _local24 = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local10 = _local2.m_invMass; _local11 = _local3.m_invMass; _local12 = _local2.m_invI; _local13 = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function GetMotorTorque():Number{ return (m_motorForce); } override public function GetReactionTorque():Number{ return (m_limitForce); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local11 = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); _local12 = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); _local13 = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); _local14 = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); _local15 = (_arg1.dt * _local13); _local16 = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } } }//package Box2D.Dynamics.Joints
Section 63
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2RevoluteJointDef extends b2JointDef { public var referenceAngle:Number; public var upperAngle:Number; public var lowerAngle:Number; public var motorSpeed:Number; public var maxMotorTorque:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 64
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; public class b2Body { public var m_next:b2Body; public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var m_shapeList:b2Shape; public var m_force:b2Vec2; public var m_mass:Number; public var m_sweep:b2Sweep; public var m_xf:b2XForm; public var m_torque:Number; public var m_userData; public var m_flags:uint; public var m_world:b2World; public var m_prev:b2Body; public var m_invMass:Number; public var m_type:int; public var m_linearDamping:Number; public var m_angularDamping:Number; public var m_invI:Number; public var m_linearVelocity:b2Vec2; public var m_sleepTime:Number; public var m_shapeCount:int; public var m_jointList:b2JointEdge; public var m_I:Number; public static var e_fixedRotationFlag:uint = 64; public static var e_frozenFlag:uint = 2; public static var e_maxTypes:uint = 3; public static var e_sleepFlag:uint = 8; private static var s_massData:b2MassData = new b2MassData(); public static var e_bulletFlag:uint = 32; public static var e_staticType:uint = 1; public static var e_islandFlag:uint = 4; public static var e_allowSleepFlag:uint = 16; private static var s_xf1:b2XForm = new b2XForm(); public static var e_dynamicType:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ var _local3:b2Mat22; var _local4:b2Vec2; m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); _local3 = m_xf.R; _local4 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x - (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.y + (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function SynchronizeTransform():void{ var _local1:b2Mat22; var _local2:b2Vec2; m_xf.R.Set(m_sweep.a); _local1 = m_xf.R; _local2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function GetInertia():Number{ return (m_I); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; var _local2:Number; var _local3:Number; var _local4:b2MassData; var _local5:b2Mat22; var _local6:b2Vec2; var _local7:int; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; _local2 = 0; _local3 = 0; _local4 = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); _local5 = m_xf.R; _local6 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; _local7 = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function PutToSleep():void{ m_flags = (m_flags | e_sleepFlag); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; } public function GetJointList():b2JointEdge{ return (m_jointList); } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local4:b2Mat22; var _local5:b2Vec2; var _local6:Boolean; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); _local4 = m_xf.R; _local5 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); _local6 = false; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function SynchronizeShapes():Boolean{ var _local1:b2XForm; var _local2:b2Mat22; var _local3:b2Vec2; var _local4:b2Shape; var _local5:Boolean; _local1 = s_xf1; _local1.R.Set(m_sweep.a0); _local2 = _local1.R; _local3 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); _local5 = true; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x)); m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y)); m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)))); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22; var _local3:b2Vec2; _local2 = m_xf.R; _local3 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:int; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); _local3 = m_xf.R; _local4 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; _local5 = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetShapeList():b2Shape{ return (m_shapeList); } public function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function CreateShape(_arg1:b2ShapeDef):b2Shape{ var _local2:b2Shape; if (m_world.m_lock == true){ return (null); }; _local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); return (_local2); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge; _local2 = m_jointList; while (_local2) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function DestroyShape(_arg1:b2Shape):void{ var _local2:b2Shape; var _local3:b2Shape; var _local4:Boolean; if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); _local2 = m_shapeList; _local3 = null; _local4 = false; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_shapeList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22; var _local3:b2Vec2; _local2 = m_xf.R; _local3 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorld():b2World{ return (m_world); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//package Box2D.Dynamics
Section 65
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2BodyDef { public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var angularDamping:Number; public var fixedRotation:Boolean; public var angle:Number; public var linearDamping:Number; public var massData:b2MassData; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.Dynamics
Section 66
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 67
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; public class b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:b2FilterData; var _local4:b2FilterData; var _local5:Boolean; _local3 = _arg1.GetFilterData(); _local4 = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; _local5 = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.Dynamics
Section 68
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; import flash.media.*; public class b2ContactListener { var canjump:Boolean;// = false public function b2ContactListener(){ canjump = false; super(); } public function Persist(_arg1:b2ContactPoint):void{ } public function Result(_arg1:b2ContactResult):void{ } public function Add(_arg1:b2ContactPoint):void{ if (_arg1.shape2.GetBody().GetUserData().name == "bullet"){ }; } public function Remove(_arg1:b2ContactPoint):void{ } public function can_jump(){ return (canjump); } } }//package Box2D.Dynamics
Section 69
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2Contact; _local3 = (_arg1 as b2Shape); _local4 = (_arg2 as b2Shape); _local5 = _local3.m_body; _local6 = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; _local7 = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } override public function PairRemoved(_arg1, _arg2, _arg3):void{ var _local4:b2Contact; if (_arg3 == null){ return; }; _local4 = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local2:b2Shape; var _local3:b2Shape; var _local4:int; var _local5:b2Body; var _local6:b2Body; var _local7:b2Body; var _local8:b2Body; var _local9:Array; var _local10:b2ContactPoint; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2Vec2; var _local16:b2Vec2; _local2 = _arg1.m_shape1; _local3 = _arg1.m_shape2; _local4 = _arg1.m_manifoldCount; if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = _local2.m_body; _local8 = _local3.m_body; _local9 = _arg1.GetManifolds(); _local10 = s_evalCP; _local10.shape1 = _arg1.m_shape1; _local10.shape2 = _arg1.m_shape2; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; _local5 = _local2.m_body; _local6 = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } public function Collide():void{ var _local1:b2Contact; var _local2:b2Body; var _local3:b2Body; _local1 = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.Dynamics
Section 70
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; import flash.display.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_lineThickness:Number;// = 1 public var m_drawFlags:uint; public var m_sprite:Sprite; public var m_drawScale:Number;// = 1 public static var e_coreShapeBit:uint = 4; public static var e_shapeBit:uint = 1; public static var e_centerOfMassBit:uint = 64; public static var e_aabbBit:uint = 8; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_jointBit:uint = 2; public function b2DebugDraw(){ m_drawScale = 1; m_lineThickness = 1; m_alpha = 1; m_fillAlpha = 1; m_xformScale = 1; super(); m_drawFlags = 0; } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function GetFlags():uint{ return (m_drawFlags); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } } }//package Box2D.Dynamics
Section 71
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeJoint(_arg1:b2Joint):void{ } public function SayGoodbyeShape(_arg1:b2Shape):void{ } } }//package Box2D.Dynamics
Section 72
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Island { public var m_joints:Array; public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies:Array; public var m_jointCapacity:int; public var m_contactCount:int; public var m_contacts:Array; public var m_contactCapacity:int; public var m_jointCount:int; public var m_allocator; public var m_bodyCount:int; private static var s_reportCR:b2ContactResult = new b2ContactResult(); public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){ var _local6:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; m_bodies = new Array(_arg1); _local6 = 0; while (_local6 < _arg1) { m_bodies[_local6] = null; _local6++; }; m_contacts = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { m_contacts[_local6] = null; _local6++; }; m_joints = new Array(_arg3); _local6 = 0; while (_local6 < _arg3) { m_joints[_local6] = null; _local6++; }; m_positionIterationCount = 0; } public function AddBody(_arg1:b2Body):void{ var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } public function Report(_arg1:Array):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local4:int; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; _local4 = 0; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local8:b2ContactSolver; var _local9:int; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Number; var _local14:Number; var _local15:Number; _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; _local8 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local8.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local8.SolveVelocityConstraints(); _local9 = 0; while (_local9 < m_jointCount) { _local7 = m_joints[_local9]; _local7.SolveVelocityConstraints(_arg1); _local9++; }; _local5++; }; _local8.FinalizeVelocityConstraints(); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_sweep.c0.SetV(_local6.m_sweep.c); _local6.m_sweep.a0 = _local6.m_sweep.a; _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y)); _local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity)); _local6.SynchronizeTransform(); }; _local5++; }; if (_arg3){ _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local10 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local12 = _local7.SolvePositionConstraints(); _local11 = ((_local11) && (_local12)); _local5++; }; if (((_local10) && (_local11))){ break; }; m_positionIterationCount++; }; }; Report(_local8.m_constraints); if (_arg4){ _local13 = Number.MAX_VALUE; _local14 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local15 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.m_invMass == 0){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local13 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local15)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local14)))){ _local6.m_sleepTime = 0; _local13 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local13 = b2Math.b2Min(_local13, _local6.m_sleepTime); }; }; _local5++; }; if (_local13 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local3:b2ContactSolver; var _local4:Number; var _local5:b2Body; var _local6:Boolean; _local3 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; _local4 = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } }//package Box2D.Dynamics
Section 73
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var warmStarting:Boolean; public var positionCorrection:Boolean; public var dt:Number; public var maxIterations:int; public var dtRatio:Number; public var inv_dt:Number; } }//package Box2D.Dynamics
Section 74
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2World { public var m_inv_dt0:Number; public var m_boundaryListener:b2BoundaryListener; public var m_contactList:b2Contact; public var m_blockAllocator; public var m_contactListener:b2ContactListener; public var m_allowSleep:Boolean; public var m_broadPhase:b2BroadPhase; public var m_destructionListener:b2DestructionListener; public var m_jointCount:int; public var m_bodyCount:int; public var m_lock:Boolean; public var m_positionIterationCount:int; public var m_groundBody:b2Body; public var m_contactCount:int; public var m_debugDraw:b2DebugDraw; public var m_contactFilter:b2ContactFilter; public var m_bodyList:b2Body; public var m_stackAllocator; public var m_jointList:b2Joint; public var m_gravity:b2Vec2; public var m_contactManager:b2ContactManager; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); public static var m_continuousPhysics:Boolean; public static var m_warmStarting:Boolean; private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); public static var m_positionCorrection:Boolean; private static var s_xf:b2XForm = new b2XForm(); public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ var _local4:b2BodyDef; m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_positionCorrection = true; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_inv_dt0 = 0; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); _local4 = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2XForm; var _local5:b2XForm; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; _local2 = _arg1.m_body1; _local3 = _arg1.m_body2; _local4 = _local2.m_xf; _local5 = _local3.m_xf; _local6 = _local4.position; _local7 = _local5.position; _local8 = _arg1.GetAnchor1(); _local9 = _arg1.GetAnchor2(); _local10 = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } public function DrawDebugData():void{ var _local1:uint; var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2XForm; var _local12:b2AABB; var _local13:b2AABB; var _local14:Array; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); _local1 = m_debugDraw.GetFlags(); _local7 = new b2Vec2(); _local8 = new b2Vec2(); _local9 = new b2Vec2(); _local10 = new b2Color(0, 0, 0); _local12 = new b2AABB(); _local13 = new b2AABB(); _local14 = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local2:b2JointEdge; var _local3:b2Shape; var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; _local2 = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; _local3 = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local5:b2Color; var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; _local5 = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; }; } public function GetContactCount():int{ return (m_contactCount); } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Island; var _local4:b2Contact; var _local5:b2Joint; var _local6:int; var _local7:Array; var _local8:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; _local3 = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; _local4 = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; _local5 = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; _local6 = m_bodyCount; _local7 = new Array(_local6); _local8 = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.m_manifoldCount == 0){ } else { _local3.AddContact(_local12.contact); _local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag); _local11 = _local12.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local9; _local9 = (_local9 + 1); var _local16 = _temp2; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; }; _local12 = _local12.next; }; _local13 = _local2.m_jointList; while (_local13) { if (_local13.joint.m_islandFlag == true){ } else { _local3.AddJoint(_local13.joint); _local13.joint.m_islandFlag = true; _local11 = _local13.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local9; _local9 = (_local9 + 1); _local16 = _temp3; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; _local13 = _local13.next; }; }; }; _local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep); if (_local3.m_positionIterationCount > m_positionIterationCount){ m_positionIterationCount = _local3.m_positionIterationCount; }; _local10 = 0; while (_local10 < _local3.m_bodyCount) { _local2 = _local3.m_bodies[_local10]; if (_local2.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local10++; }; }; }; _local8 = _local8.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local14 = _local2.SynchronizeShapes(); if ((((_local14 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array; var _local5:int; var _local6:int; _local4 = new Array(_arg3); _local5 = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); _local6 = 0; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local8:b2Island; var _local9:int; var _local10:Array; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; _local8 = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); _local9 = m_bodyCount; _local10 = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.m_shape1; _local4 = _local11.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local19 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local19 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local19); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local19 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local19); }; }; _local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep); if ((((_local18 > 0)) && ((_local18 < 1)))){ _local18 = (((1 - _local18) * _local19) + _local18); if (_local18 > 1){ _local18 = 1; }; }; _local11.m_toi = _local18; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){ _local12 = _local11; _local13 = _local18; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.m_manifoldCount == 0){ } else { _local14 = _local5; if (_local14.IsStatic()){ _local14 = _local6; }; _local8.Clear(); _local15 = 0; var _temp1 = _local15; _local15 = (_local15 + 1); var _local22 = _temp1; _local10[_local22] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local15 > 0) { --_local15; _local2 = _local10[_local15]; _local8.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local8.m_contactCount == _local8.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function Validate():void{ m_broadPhase.Validate(); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function GetBodyList():b2Body{ return (m_bodyList); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetPositionCorrection(_arg1:Boolean):void{ m_positionCorrection = _arg1; } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local2:b2Joint; var _local3:b2Body; var _local4:b2Shape; _local2 = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local2:Boolean; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:b2Shape; _local2 = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; _local3 = _arg1.m_body1; _local4 = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function CreateBody(_arg1:b2BodyDef):b2Body{ var _local2:b2Body; if (m_lock == true){ return (null); }; _local2 = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function Step(_arg1:Number, _arg2:int):void{ var _local3:b2TimeStep; m_lock = true; _local3 = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; _local3.dtRatio = (m_inv_dt0 * _arg1); _local3.positionCorrection = m_positionCorrection; _local3.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((m_continuousPhysics) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_inv_dt0 = _local3.inv_dt; m_lock = false; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } } }//package Box2D.Dynamics
Section 75
//ContainerPreloader (com.scoreplug.graphics.ContainerPreloader) package com.scoreplug.graphics { import flash.display.*; public dynamic class ContainerPreloader extends MovieClip { } }//package com.scoreplug.graphics
Section 76
//AwardsService (com.spilgames.api.AwardsService) package com.spilgames.api { public class AwardsService { public static function submitAward(_arg1:String, _arg2:Function=null):int{ return (SpilGamesServices.getInstance().send("Awards", "submitAward", _arg2, {tag:_arg1, userName:User.getUserName(), userHash:User.getUserHash()})); } } }//package com.spilgames.api
Section 77
//ScoreService (com.spilgames.api.ScoreService) package com.spilgames.api { public class ScoreService { public static function submitScore(_arg1:int, _arg2:Function=null):int{ return (SpilGamesServices.getInstance().send("Score", "submitScore", _arg2, {score:_arg1, userName:User.getUserName(), userHash:User.getUserHash()})); } } }//package com.spilgames.api
Section 78
//SpilGamesServices (com.spilgames.api.SpilGamesServices) package com.spilgames.api { import flash.events.*; import flash.display.*; import flash.net.*; import flash.system.*; public class SpilGamesServices extends MovieClip { private var DEFAULT_CONNECTION_LOCATION:String;// = "http://www8.agame.com/games/flash/services/ServicesConnection.swf" private var _loader:Loader; private var _connecting:Boolean;// = false private var _servicesConnection;// = null private var _connected:Boolean;// = false public static const INVALID_ID:int = -1; private static var _instance:SpilGamesServices = null; public function SpilGamesServices(_arg1:Private=null){ DEFAULT_CONNECTION_LOCATION = "http://www8.agame.com/games/flash/services/ServicesConnection.swf"; _servicesConnection = null; _connecting = false; _connected = false; super(); if (!_arg1){ throw (new Error("Cannot instantiate this class, use SpilGamesServices.getInstance")); }; } public function get version():String{ return ("1.0"); } private function handleRemovedFromStage(_arg1:Event):void{ trace("WARNING: please do not remove SpilGamesServices from the stage"); } private function handleIOError(_arg1:IOErrorEvent):void{ _loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, handleLoadComplete); _loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, handleIOError); _connecting = false; if (hasEventListener(_arg1.type)){ dispatchEvent(_arg1); }; } public function allowDomain(_arg1:String):void{ Security.allowDomain("*"); Security.allowInsecureDomain("*"); } public function getItemID():int{ if (_servicesConnection != null){ return (_servicesConnection.getItemID()); }; return (INVALID_ID); } public function bringToFront(_arg1:Event=null):void{ var e = _arg1; if (parent){ try { parent.setChildIndex(this, (parent.numChildren - 1)); } catch(e:Error) { removeEventListener(Event.ENTER_FRAME, bringToFront); }; }; } private function handleLoadComplete(_arg1:Event):void{ _loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, handleLoadComplete); _loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, handleIOError); _servicesConnection = LoaderInfo(_arg1.target).content; _servicesConnection.addEventListener(Event.COMPLETE, handleServicesReady); _servicesConnection.addEventListener(ErrorEvent.ERROR, handleServicesFailed); _servicesConnection.addEventListener("serviceError", handleServiceError); addChild(_servicesConnection); } public function send(_arg1:String, _arg2:String, _arg3:Function, _arg4:Object=null):int{ if (isReady()){ return (_servicesConnection.send(_arg1, _arg2, _arg3, _arg4)); }; return (INVALID_ID); } public function getSiteID():int{ if (_servicesConnection != null){ return (_servicesConnection.getSiteID()); }; return (INVALID_ID); } public function isReady():Boolean{ return (((!((_servicesConnection == null))) && (_servicesConnection.isReady()))); } public function isDomainAllowed():Boolean{ return (((!((_servicesConnection == null))) && (_servicesConnection.isDomainValid()))); } public function getChannelID():int{ if (_servicesConnection != null){ return (_servicesConnection.getChannelID()); }; return (INVALID_ID); } private function handleServicesReady(_arg1:Event):void{ _loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, handleLoadComplete); _loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, handleIOError); _connected = true; _connecting = false; dispatchEvent(new Event("servicesReady")); } private function handleServiceError(_arg1:Event):void{ var _local2:String; if (hasEventListener("serviceError")){ _local2 = ""; if ((_arg1 is ErrorEvent)){ _local2 = ErrorEvent(_arg1).text; } else { _local2 = _arg1.toString(); }; dispatchEvent(new ErrorEvent("serviceError", false, false, _local2)); }; } public function disconnect():void{ if (_servicesConnection){ _servicesConnection.removeEventListener(Event.COMPLETE, handleServicesReady); _servicesConnection.removeEventListener(ErrorEvent.ERROR, handleServicesFailed); _servicesConnection.removeEventListener("serviceError", handleServiceError); if (_connected){ _servicesConnection.disconnect(); }; removeChild(_servicesConnection); }; _servicesConnection = null; if (_loader){ try { _loader.close(); } catch(e:Error) { } finally { _loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, handleLoadComplete); _loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, handleIOError); }; _loader = null; }; removeEventListener(Event.REMOVED_FROM_STAGE, handleRemovedFromStage); if (parent){ parent.removeChild(this); }; _connected = (_connecting = false); } private function handleServicesFailed(_arg1:ErrorEvent):void{ _servicesConnection.addEventListener(Event.COMPLETE, handleServicesReady); _servicesConnection.addEventListener(ErrorEvent.ERROR, handleServicesFailed); _servicesConnection.addEventListener("serviceError", handleServiceError); _connecting = false; if (hasEventListener("servicesFailed")){ dispatchEvent(new ErrorEvent("servicesFailed", false, false, _arg1.text)); }; } public function get connecting():Boolean{ return (_connecting); } public function get connection(){ return (_servicesConnection); } public function connect(_arg1:DisplayObjectContainer):void{ var _local2:URLRequest; var _local3:String; var _local4:URLVariables; var _local5:Date; if (((!(_connecting)) && (!(_connected)))){ if (!_arg1.stage){ throw (new Error("The given clip must be present in the display list (added to stage)")); }; _connecting = true; _arg1.stage.addChild(this); addEventListener(Event.REMOVED_FROM_STAGE, handleRemovedFromStage); if (((root.loaderInfo.parameters["servicesLoc"]) && ((root.loaderInfo.parameters["servicesLoc"].length > 0)))){ _local3 = root.loaderInfo.parameters["servicesLoc"]; _local2 = new URLRequest(_local3); } else { _local3 = DEFAULT_CONNECTION_LOCATION; _local4 = new URLVariables(); _local5 = new Date(); _local4.nocache = (((_local5.month + 1) * 31) + _local5.day); _local2 = new URLRequest(_local3); _local2.data = _local4; }; allowDomain(_local3); _loader = new Loader(); _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleLoadComplete); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, handleIOError); _loader.load(_local2); }; } public static function getInstance():SpilGamesServices{ if (!_instance){ _instance = new SpilGamesServices(new Private()); }; return (_instance); } } }//package com.spilgames.api class Private { private function Private(){ } }
Section 79
//User (com.spilgames.api.User) package com.spilgames.api { import flash.display.*; public class User { public static function getUserName():String{ var _local1:*; _local1 = SpilGamesServices.getInstance().connection; if (_local1 != null){ return (_local1.getUserName()); }; return (""); } public static function isGuest():Boolean{ var _local1:*; var _local2:DisplayObject; var _local3:Object; _local1 = SpilGamesServices.getInstance().connection; if (_local1 != null){ return (_local1.isGuest()); }; _local2 = SpilGamesServices.getInstance().root; if (_local2.loaderInfo != null){ _local3 = _local2.loaderInfo.parameters; return (((((((!(_local3.username)) || ((_local3.username == "")))) || (!(_local3.hash)))) || ((_local3.hash == "")))); }; return (false); } public static function getUserHash():String{ var _local1:*; _local1 = SpilGamesServices.getInstance().connection; if (_local1 != null){ return (_local1.getUserHash()); }; return (""); } } }//package com.spilgames.api
Section 80
//Brand (spill.localisation.Brand) package spill.localisation { import flash.xml.*; public class Brand { public var domain:String; public var useGoogleAnalitics:Boolean;// = true public var emailPage:String; public var name:String; public var site_id:uint; public var isExternal:Boolean;// = false public var id:Number; public var hostingDomain:String;// = "" public var preferedLanguage:String;// = "" public var moreLink:String;// = "" public var hasSendToFriendLink:Boolean;// = true public var portalGroup:uint; public var emailLink:String;// = "game" private static const topLevelDoubles:String = ((((((((((((((("ac.cn,ac.jp,ac.uk,ad.jp,adm.br,adv.br,agr.br," + "ah.cn,am.br,arq.br,art.br,asn.au,ato.br,av.tr,bel.tr,bio.br,biz.tr,bj.cn,bmd.br,") + "cim.br,cng.br,cnt.br,co.at,co.jp,co.uk,com.au,com.br,com.cn,com.eg,com.hk,com.mx,") + "com.ru,com.tr,com.tw,conf.au,cq.cn,csiro.au,dr.tr,ecn.br,edu.au,edu.br,edu.tr,") + "emu.id.au,eng.br,esp.br,etc.br,eti.br,eun.eg,far.br,fj.cn,fm.br,fnd.br,fot.br,") + "fst.br,g12.br,gb.com,gb.net,gd.cn,gen.tr,ggf.br,gob.mx,gov.au,gov.br,gov.cn,") + "gov.hk,gov.tr,gr.jp,gs.cn,gx.cn,gz.cn,ha.cn,hb.cn,he.cn,hi.cn,hk.cn,hl.cn,hn.cn,") + "id.au,idv.tw,imb.br,ind.br,inf.br,info.au,info.tr,jl.cn,jor.br,js.cn,jx.cn,k12.tr,") + "lel.br,ln.cn,ltd.uk,mat.br,me.uk,med.br,mil.br,mil.tr,mo.cn,mus.br,name.tr,ne.jp,") + "net.au,net.br,net.cn,net.eg,net.hk,net.lu,net.mx,net.ru,net.tr,net.tw,net.uk,") + "nm.cn,no.com,nom.br,not.br,ntr.br,nx.cn,odo.br,oop.br,or.at,or.jp,org.au,org.br,") + "org.cn,org.hk,org.lu,org.ru,org.tr,org.tw,org.uk,plc.uk,pol.tr,pp.ru,ppg.br,pro.br,") + "psc.br,psi.br,qh.cn,qsl.br,rec.br,sc.cn,sd.cn,se.com,se.net,sh.cn,slg.br,sn.cn,") + "srv.br,sx.cn,tel.tr,tj.cn,tmp.br,trd.br,tur.br,tv.br,tw.cn,uk.com,uk.net,vet.br,") + "wattle.id.au,web.tr,xj.cn,xz.cn,yn.cn,zj.cn,zlg.br,co.nr,co.nz,com.fr,com.ph,com.ar,") + "com.id,com.in"); public function Brand(){ moreLink = ""; emailLink = "game"; useGoogleAnalitics = true; hasSendToFriendLink = true; preferedLanguage = ""; isExternal = false; hostingDomain = ""; super(); } public function exportXML():XML{ var _local1:XML; var _local2:XML; var _local3:XML; _local1 = <portal/> ; _local1.@id = site_id; _local1.@language = preferedLanguage; _local1.@channel = portalGroup; _local2 = <domain/> ; _local2.appendChild(new XMLNode(3, domain)); _local1.appendChild(_local2); if (moreLink){ _local3 = <more_games_path/> ; _local3.appendChild(new XMLNode(3, moreLink)); _local1.appendChild(_local3); }; _local2 = <game_path/> ; _local2.appendChild(new XMLNode(3, emailLink)); _local1.appendChild(_local2); if (!useGoogleAnalitics){ _local1.attributes.noGoogleAnalitics = true; }; if (!hasSendToFriendLink){ _local1.attributes.noSendToFriendLink = true; }; return (_local1); } private function get utm_source():String{ return (("utm_source=brandedgames_" + (isExternal) ? "external" : "internal")); } public function getMoreGamesLink(_arg1:String, _arg2:Boolean, _arg3:String="", _arg4:String=""):String{ var _local5:String; _local5 = ("http://" + domain); _local5 = (_local5 + ("/" + moreLink)); if (useGoogleAnalitics){ _local5 = (_local5 + ("?utm_medium=brandedgames_" + (_arg2) ? "external" : "internal")); _local5 = (_local5 + ("&utm_campaign=" + _arg1)); _arg3 = stripSubDomain(_arg3); if (_arg3 == "localhost"){ _arg3 = "offline_play"; }; _local5 = (_local5 + ("&utm_source=" + _arg3)); if (((!((_arg4 == ""))) && (!((_arg4 == null))))){ _local5 = (_local5 + ("&utm_content=" + _arg4)); }; }; return (_local5); } private function get utm_campaign():String{ if (isExternal){ return (("utm_campaign=" + hostingDomain)); }; return (""); } public function get backgroundColor():uint{ return (PortalGroup.backgroundColors[portalGroup]); } public function getPromotionLink(_arg1:String, _arg2:String, _arg3:Boolean, _arg4:String="", _arg5:String=""):String{ var _local6:String; _local6 = ("http://" + domain); _local6 = (_local6 + ((("/" + emailLink) + "/") + _arg2)); if (useGoogleAnalitics){ _local6 = (_local6 + ("?utm_medium=brandedgames_" + (_arg3) ? "external" : "internal")); _local6 = (_local6 + ("&utm_campaign=" + _arg1)); _arg4 = stripSubDomain(_arg4); trace(_arg4); if (_arg4 == "localhost"){ _arg4 = "offline_play"; }; _local6 = (_local6 + ("&utm_source=" + _arg4)); if (((!((_arg5 == ""))) && (!((_arg5 == null))))){ _local6 = (_local6 + ("&utm_content=" + _arg5)); }; }; return (_local6); } private function get utm_term():String{ return ("utm_term="); } public function importXML(_arg1:XMLNode):void{ } public function getSendToFriendLink(_arg1:String, _arg2:String, _arg3:Boolean, _arg4:String=""):String{ var _local5:String; if (!hasSendToFriendLink){ return (getMoreGamesLink(_arg1, _arg3)); }; _local5 = ("http://" + domain); _local5 = (_local5 + ((("/" + emailLink) + "/") + _arg2)); if (useGoogleAnalitics){ _local5 = (_local5 + ("?utm_medium=brandedgames_" + (_arg3) ? "external" : "internal")); _local5 = (_local5 + ("&utm_campaign=" + _arg1)); _arg4 = stripSubDomain(_arg4); if (_arg4 == "localhost"){ _arg4 = "offline_play"; }; _local5 = (_local5 + ("&utm_source=" + _arg4)); _local5 = (_local5 + "&utm_content=send_to_friend"); }; return (_local5); } private static function stripSubDomain(_arg1:String):String{ var _local2:Array; if (!_arg1){ return (""); }; _local2 = _arg1.split("."); if (_local2.length <= 2){ return (_arg1); }; _local2 = _local2.reverse(); if (topLevelDoubles.indexOf((((_local2[1] + ".") + _local2[0]) + ",")) > 0){ return (((((_local2[2] + ".") + _local2[1]) + ".") + _local2[0])); }; return (((_local2[1] + ".") + _local2[0])); } } }//package spill.localisation
Section 81
//BrandingLogo (spill.localisation.BrandingLogo) package spill.localisation { import flash.display.*; import flash.events.*; public class BrandingLogo extends MovieClip { public function BrandingLogo(){ addFrameScript(0, frame1); super(); stop(); mouseEnabled = false; mouseChildren = false; addEventListener(Event.ADDED_TO_STAGE, added, false, 0, true); addEventListener(Event.REMOVED_FROM_STAGE, removed, false, 0, true); if (stage){ added(); }; brandingChanged(); } private function added(_arg1:Event=null):void{ SpilGame.addEventListener("brandingChanged", brandingChanged, false, 0, true); brandingChanged(); } private function brandingChanged(_arg1:Event=null):void{ if (SpilGame.currentBranding){ gotoAndStop(SpilGame.currentBranding.domain); }; } function frame1(){ stop(); } private function removed(_arg1:Event):void{ SpilGame.removeEventListener("brandingChanged", brandingChanged); } } }//package spill.localisation
Section 82
//Brandings (spill.localisation.Brandings) package spill.localisation { public class Brandings { private static var brands_by_id:Object = new Object(); private static var brands_by_domain:Object = new Object(); public static function getBrandByID(_arg1:Number):Brand{ return (brands_by_id[_arg1]); } public static function getBrandsArray():Array{ var _local1:Array; var _local2:Brand; _local1 = new Array(); for each (_local2 in brands_by_domain) { _local1.push(_local2); }; return (_local1); } private static function addBrand(_arg1:Brand):Brand{ if (brands_by_domain[_arg1.domain]){ trace(("ERROR: Attempting to add duplicate brand by domain: " + _arg1.domain)); } else { brands_by_domain[_arg1.domain] = _arg1; }; if (brands_by_id[_arg1.site_id]){ trace(("ERROR: Attempting to add duplicate brand by id: " + _arg1.site_id)); } else { brands_by_id[_arg1.site_id] = _arg1; }; return (_arg1); } public static function initialize():void{ var _local1:Brand; _local1 = new Brand(); _local1.site_id = 79; _local1.domain = "www.agame.com"; _local1.preferedLanguage = "en_us"; _local1.portalGroup = PortalGroup.TEENS; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 88; _local1.domain = "www.gamesgames.com"; _local1.preferedLanguage = "en_us"; _local1.portalGroup = PortalGroup.FAMILY; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 90; _local1.domain = "www.girlsgogames.com"; _local1.preferedLanguage = "en_us"; _local1.portalGroup = PortalGroup.GIRL; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 45; _local1.domain = "www.a10.com"; _local1.preferedLanguage = "en_us"; _local1.portalGroup = PortalGroup.YOUNG_ADULTS; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 92; _local1.domain = "www.games.co.uk"; _local1.preferedLanguage = "en_uk"; _local1.portalGroup = PortalGroup.FAMILY; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 107; _local1.domain = "www.agame.co.uk"; _local1.preferedLanguage = "en_uk"; _local1.portalGroup = PortalGroup.TEENS; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 102; _local1.domain = "www.girlsgogames.co.uk"; _local1.preferedLanguage = "en_uk"; _local1.portalGroup = PortalGroup.GIRL; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 2; _local1.domain = "www.game.com.cn"; _local1.moreLink = "moregames/"; _local1.preferedLanguage = "cn"; _local1.portalGroup = PortalGroup.NONE; _local1.useGoogleAnalitics = false; _local1.hasSendToFriendLink = false; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 25; _local1.domain = "www.spel.nl"; _local1.portalGroup = PortalGroup.TEENS; _local1.preferedLanguage = "nl"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 1; _local1.domain = "www.spelletjes.nl"; _local1.emailLink = "spel"; _local1.portalGroup = PortalGroup.FAMILY; _local1.preferedLanguage = "nl"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 93; _local1.domain = "www.girlsgogames.nl"; _local1.emailLink = "spel"; _local1.portalGroup = PortalGroup.GIRL; _local1.preferedLanguage = "nl"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 12; _local1.domain = "www.jeu.fr"; _local1.emailLink = "jeu"; _local1.portalGroup = PortalGroup.TEENS; _local1.preferedLanguage = "fr"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 95; _local1.domain = "www.girlsgogames.fr"; _local1.emailLink = "jeu"; _local1.portalGroup = PortalGroup.GIRL; _local1.preferedLanguage = "fr"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 11; _local1.domain = "www.jeux.fr"; _local1.emailLink = "jeu"; _local1.portalGroup = PortalGroup.FAMILY; _local1.preferedLanguage = "fr"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 26; _local1.domain = "www.spielen.com"; _local1.emailLink = "spiel"; _local1.portalGroup = PortalGroup.TEENS; _local1.preferedLanguage = "de"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 94; _local1.domain = "www.girlsgogames.de"; _local1.emailLink = "spiel"; _local1.portalGroup = PortalGroup.GIRL; _local1.preferedLanguage = "de"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 5; _local1.domain = "www.jetztspielen.de"; _local1.emailLink = "spiel"; _local1.portalGroup = PortalGroup.FAMILY; _local1.preferedLanguage = "de"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 109; _local1.domain = "www.minigry.pl"; _local1.emailLink = "gra"; _local1.portalGroup = PortalGroup.TEENS; _local1.preferedLanguage = "pl"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 16; _local1.domain = "www.gry.pl"; _local1.emailLink = "gra"; _local1.portalGroup = PortalGroup.FAMILY; _local1.preferedLanguage = "pl"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 98; _local1.domain = "www.girlsgogames.pl"; _local1.emailLink = "gra"; _local1.portalGroup = PortalGroup.GIRL; _local1.preferedLanguage = "pl"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 108; _local1.domain = "www.spel.se"; _local1.emailLink = "spel_"; _local1.portalGroup = PortalGroup.TEENS; _local1.preferedLanguage = "se"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 100; _local1.domain = "www.girlsgogames.se"; _local1.emailLink = "spel_"; _local1.portalGroup = PortalGroup.GIRL; _local1.preferedLanguage = "se"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 44; _local1.domain = "www.spela.se"; _local1.emailLink = "spel_"; _local1.preferedLanguage = "se"; _local1.portalGroup = PortalGroup.FAMILY; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 106; _local1.domain = "www.giocaregratis.it"; _local1.emailLink = "gioco"; _local1.portalGroup = PortalGroup.TEENS; _local1.preferedLanguage = "it"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 15; _local1.domain = "www.gioco.it"; _local1.emailLink = "gioco"; _local1.portalGroup = PortalGroup.FAMILY; _local1.preferedLanguage = "it"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 99; _local1.domain = "www.girlsgogames.it"; _local1.emailLink = "gioco"; _local1.portalGroup = PortalGroup.GIRL; _local1.preferedLanguage = "it"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 97; _local1.domain = "www.zapjuegos.com"; _local1.emailLink = "juego"; _local1.portalGroup = PortalGroup.TEENS; _local1.preferedLanguage = "es"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 86; _local1.domain = "www.juegos.com"; _local1.emailLink = "juego"; _local1.portalGroup = PortalGroup.FAMILY; _local1.preferedLanguage = "es"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 96; _local1.domain = "www.juegosdechicas.com"; _local1.emailLink = "juego"; _local1.portalGroup = PortalGroup.GIRL; _local1.preferedLanguage = "es"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 122; _local1.domain = "www.girlsgogames.es"; _local1.emailLink = "juego"; _local1.portalGroup = PortalGroup.GIRL; _local1.preferedLanguage = "es"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 125; _local1.domain = "www.juegos.mx"; _local1.emailLink = "juego"; _local1.portalGroup = PortalGroup.TEENS; _local1.preferedLanguage = "es"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 126; _local1.domain = "www.juegosdechicas.mx"; _local1.emailLink = "juego"; _local1.portalGroup = PortalGroup.GIRL; _local1.preferedLanguage = "es"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 127; _local1.domain = "www.juegos.com.ar"; _local1.emailLink = "juego"; _local1.portalGroup = PortalGroup.TEENS; _local1.preferedLanguage = "es"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 128; _local1.domain = "www.juegosdechicas.com.ar"; _local1.emailLink = "juego"; _local1.portalGroup = PortalGroup.GIRL; _local1.preferedLanguage = "es"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 91; _local1.domain = "www.clickjogos.com"; _local1.emailLink = "jogo"; _local1.portalGroup = PortalGroup.TEENS; _local1.preferedLanguage = "br"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 101; _local1.domain = "www.girlsgogames.com.br"; _local1.emailLink = "jogo"; _local1.portalGroup = PortalGroup.GIRL; _local1.preferedLanguage = "br"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 50; _local1.domain = "www.ojogos.com.br"; _local1.emailLink = "jogo"; _local1.portalGroup = PortalGroup.FAMILY; _local1.preferedLanguage = "br"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 55; _local1.domain = "www.games.co.id"; _local1.emailLink = "permainanme"; _local1.portalGroup = PortalGroup.TEENS; _local1.preferedLanguage = "id"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 105; _local1.domain = "www.flashgames.ru"; _local1.emailLink = "igra"; _local1.portalGroup = PortalGroup.TEENS; _local1.preferedLanguage = "ru"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 104; _local1.domain = "www.girlsgogames.ru"; _local1.emailLink = "igra"; _local1.portalGroup = PortalGroup.GIRL; _local1.preferedLanguage = "ru"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 103; _local1.domain = "www.ourgames.ru"; _local1.emailLink = "igra"; _local1.portalGroup = PortalGroup.FAMILY; _local1.preferedLanguage = "ru"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 24; _local1.domain = "www.game.co.in"; _local1.emailLink = "game"; _local1.portalGroup = PortalGroup.TEENS; _local1.preferedLanguage = "in"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 87; _local1.domain = "www.ojogos.pt"; _local1.emailLink = "jogo"; _local1.portalGroup = PortalGroup.FAMILY; _local1.preferedLanguage = "pt"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 120; _local1.domain = "www.egames.jp"; _local1.emailLink = "game"; _local1.portalGroup = PortalGroup.TEENS; _local1.preferedLanguage = "jp"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 121; _local1.domain = "www.dailygame.com"; _local1.emailLink = "/game/"; _local1.portalGroup = PortalGroup.FAMILY; _local1.preferedLanguage = "en_us"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 123; _local1.domain = "www.zapapa.com"; _local1.emailLink = "game"; _local1.portalGroup = PortalGroup.ZAPAPA; _local1.preferedLanguage = "en_us"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 124; _local1.domain = "www.zapapa.nl"; _local1.emailLink = "game"; _local1.portalGroup = PortalGroup.HYVES; _local1.preferedLanguage = "nl"; addBrand(_local1); _local1 = new Brand(); _local1.site_id = 0; _local1.domain = "gamedev.dev.spilgames.com"; _local1.portalGroup = PortalGroup.FAMILY; _local1.preferedLanguage = "en_us"; addBrand(_local1); } public static function exportXML():XML{ var _local1:XML; var _local2:Brand; _local1 = <portals/> ; for each (_local2 in brands_by_domain) { _local1.appendChild(_local2.exportXML()); }; return (_local1); } public static function getBrandByDomain(_arg1:String):Brand{ return (brands_by_domain[_arg1]); } public static function hasDomain(_arg1:String):Boolean{ return (!((brands_by_domain[_arg1] == null))); } } }//package spill.localisation
Section 83
//Language (spill.localisation.Language) package spill.localisation { import flash.xml.*; public class Language { public var references:Array; public var name:String; public var embedInputFonts:Boolean;// = true public var forceFont:String;// = null public var id:uint; public var portal_groups:Array; public var textLanguage:String; public var bwcId:int; public var embedFonts:Boolean;// = true public var displayName:String;// = "" public var dname:String; public function Language(_arg1:String, _arg2:String=null){ embedFonts = true; embedInputFonts = true; forceFont = null; references = []; displayName = ""; super(); name = _arg1; dname = _arg2; portal_groups = new Array(); } public function exportXML():XMLNode{ var _local1:XMLNode; var _local2:XMLNode; var _local3:Array; var _local4:Array; var _local5:int; _local1 = new XMLNode(1, "language"); _local1.attributes.name = name; if (textLanguage != null){ _local1.attributes.textLanguage = textLanguage; }; if (references.length){ _local1.attributes.references = references.toString(); }; _local1.attributes.id = bwcId; _local2 = new XMLNode(1, "display_name"); _local2.firstChild = new XMLNode(3, displayName); _local1.appendChild(_local2); _local3 = []; _local4 = PortalGroup.channelNames; _local5 = 0; while (_local5 < _local4.length) { _local3.push(Brandings.getBrandByDomain(portal_groups[_local5]).site_id); _local5++; }; _local1.attributes.channels = _local3.join(","); return (_local1); } public function get p_teen():String{ return (portal_groups[PortalGroup.YOUNG_ADULTS]); } public function set p_hyves(_arg1:String):void{ portal_groups[PortalGroup.HYVES] = _arg1; } public function set p_teen(_arg1:String):void{ portal_groups[PortalGroup.YOUNG_ADULTS] = _arg1; } public function get p_tween():String{ return (portal_groups[PortalGroup.TEENS]); } public function get p_family():String{ return (portal_groups[PortalGroup.FAMILY]); } public function get p_girl():String{ trace("Language", portal_groups[PortalGroup.GIRL]); return (portal_groups[PortalGroup.GIRL]); } public function get p_hyves():String{ return (portal_groups[PortalGroup.HYVES]); } public function set p_girl(_arg1:String):void{ portal_groups[PortalGroup.GIRL] = _arg1; } public function set p_zapapa(_arg1:String):void{ portal_groups[PortalGroup.ZAPAPA] = _arg1; } public function get displayAcronim():String{ return ((dname) ? dname : name); } public function set p_family(_arg1:String):void{ portal_groups[PortalGroup.FAMILY] = _arg1; } public function set p_tween(_arg1:String):void{ portal_groups[PortalGroup.TEENS] = _arg1; } public function get p_zapapa():String{ return (portal_groups[PortalGroup.ZAPAPA]); } } }//package spill.localisation
Section 84
//Languages (spill.localisation.Languages) package spill.localisation { import flash.xml.*; public class Languages { public static var languages:Object = new Object(); private static var _init:Boolean = false; public static function initialize():void{ var _local1:Language; if (_init){ return; }; _init = true; _local1 = new Language("nl"); _local1.displayName = "Nederlands"; _local1.p_family = "www.spelletjes.nl"; _local1.p_tween = "www.spel.nl"; _local1.p_girl = "www.girlsgogames.nl"; _local1.p_teen = "www.a10.com"; _local1.p_zapapa = "www.zapapa.com"; _local1.p_hyves = "www.zapapa.nl"; _local1.bwcId = 3; addLanguage(_local1); _local1 = new Language("es"); _local1.displayName = "Español"; _local1.p_family = "www.juegos.com"; _local1.p_tween = "www.zapjuegos.com"; _local1.p_girl = "www.girlsgogames.es"; _local1.p_teen = "www.a10.com"; _local1.p_zapapa = "www.zapapa.com"; _local1.bwcId = 9; addLanguage(_local1); _local1 = new Language("pl"); _local1.displayName = "Polski"; _local1.p_family = "www.gry.pl"; _local1.p_tween = "www.gry.pl"; _local1.p_girl = "www.girlsgogames.pl"; _local1.p_teen = "www.a10.com"; _local1.p_zapapa = "www.zapapa.com"; _local1.bwcId = 6; addLanguage(_local1); _local1 = new Language("fr"); _local1.displayName = "Français"; _local1.p_family = "www.jeux.fr"; _local1.p_tween = "www.jeu.fr"; _local1.p_girl = "www.girlsgogames.fr"; _local1.p_teen = "www.a10.com"; _local1.p_zapapa = "www.zapapa.com"; _local1.bwcId = 4; addLanguage(_local1); _local1 = new Language("en_us", "us"); _local1.displayName = "English"; _local1.p_family = "www.gamesgames.com"; _local1.p_tween = "www.agame.com"; _local1.p_girl = "www.girlsgogames.com"; _local1.p_teen = "www.a10.com"; _local1.p_zapapa = "www.zapapa.com"; _local1.bwcId = 1; addLanguage(_local1); addReference(_local1, "en"); _local1 = new Language("id"); _local1.displayName = "Bahasa Ind."; _local1.p_family = "www.games.co.id"; _local1.p_tween = "www.games.co.id"; _local1.p_girl = "www.games.co.id"; _local1.p_teen = "www.a10.com"; _local1.p_zapapa = "www.zapapa.com"; _local1.bwcId = 11; addLanguage(_local1); _local1 = new Language("ru"); _local1.displayName = "Русский"; _local1.p_family = "www.ourgames.ru"; _local1.p_tween = "www.flashgames.ru"; _local1.p_girl = "www.girlsgogames.ru"; _local1.p_teen = "www.a10.com"; _local1.p_zapapa = "www.zapapa.com"; _local1.bwcId = 12; addLanguage(_local1); _local1 = new Language("se"); _local1.displayName = "Svenska"; _local1.p_family = "www.spela.se"; _local1.p_tween = "www.spel.se"; _local1.p_girl = "www.girlsgogames.se"; _local1.p_teen = "www.a10.com"; _local1.p_zapapa = "www.zapapa.com"; _local1.bwcId = 7; addLanguage(_local1); addReference(_local1, "sv"); _local1 = new Language("it"); _local1.displayName = "Italiano"; _local1.p_family = "www.gioco.it"; _local1.p_tween = "www.gioco.it"; _local1.p_girl = "www.girlsgogames.it"; _local1.p_teen = "www.a10.com"; _local1.p_zapapa = "www.zapapa.com"; _local1.bwcId = 8; addLanguage(_local1); _local1 = new Language("en_uk", "uk"); _local1.displayName = "English"; _local1.p_family = "www.games.co.uk"; _local1.p_tween = "www.agame.com"; _local1.p_girl = "www.girlsgogames.co.uk"; _local1.p_teen = "www.a10.com"; _local1.p_zapapa = "www.zapapa.com"; _local1.bwcId = 13; addLanguage(_local1); _local1 = new Language("cn"); _local1.displayName = "中文"; _local1.p_family = "www.game.com.cn"; _local1.p_tween = "www.game.com.cn"; _local1.p_girl = "www.game.com.cn"; _local1.p_teen = "www.game.com.cn"; _local1.p_zapapa = "www.zapapa.com"; _local1.bwcId = 2; _local1.textLanguage = "en_us"; _local1.embedInputFonts = false; addLanguage(_local1); addReference(_local1, "zh-CN"); addReference(_local1, "zh-TW"); _local1 = new Language("pt"); _local1.displayName = "Português"; _local1.p_family = "www.ojogos.pt"; _local1.p_tween = "www.ojogos.pt"; _local1.p_girl = "www.ojogos.pt"; _local1.p_teen = "www.a10.com"; _local1.p_zapapa = "www.zapapa.com"; _local1.bwcId = 17; addLanguage(_local1); _local1 = new Language("in"); _local1.displayName = "English"; _local1.p_family = "www.game.co.in"; _local1.p_tween = "www.game.co.in"; _local1.p_girl = "www.game.co.in"; _local1.p_teen = "www.a10.com"; _local1.p_zapapa = "www.zapapa.com"; _local1.textLanguage = "en_uk"; _local1.bwcId = 14; addLanguage(_local1); _local1 = new Language("de"); _local1.displayName = "Deutsch"; _local1.p_family = "www.jetztspielen.de"; _local1.p_tween = "www.spielen.com"; _local1.p_girl = "www.girlsgogames.de"; _local1.p_teen = "www.a10.com"; _local1.p_zapapa = "www.zapapa.com"; _local1.bwcId = 5; addLanguage(_local1); _local1 = new Language("br"); _local1.displayName = "Português (BR)"; _local1.p_family = "www.ojogos.com.br"; _local1.p_tween = "www.clickjogos.com"; _local1.p_girl = "www.girlsgogames.com.br"; _local1.p_teen = "www.a10.com"; _local1.p_zapapa = "www.zapapa.com"; _local1.bwcId = 10; addLanguage(_local1); _local1 = new Language("jp"); _local1.displayName = "日本語"; _local1.p_family = "www.egames.jp"; _local1.p_tween = "www.egames.jp"; _local1.p_girl = "www.egames.jp"; _local1.p_teen = "www.a10.com"; _local1.p_zapapa = "www.zapapa.com"; _local1.embedInputFonts = false; _local1.textLanguage = "en_us"; _local1.bwcId = 19; addLanguage(_local1); addReference(_local1, "ja"); _local1 = new Language("ar"); _local1.displayName = "English"; _local1.p_family = "www.dailygame.com"; _local1.p_tween = "www.dailygame.com"; _local1.p_girl = "www.dailygame.com"; _local1.p_teen = "www.a10.com"; _local1.p_zapapa = "www.zapapa.com"; _local1.bwcId = 20; addLanguage(_local1); addReference(_local1, "ar"); _local1 = new Language("es_mx", "mx"); _local1.displayName = "Español"; _local1.p_family = "www.juegos.mx"; _local1.p_tween = "www.juegos.mx"; _local1.p_girl = "www.juegosdechicas.mx"; _local1.p_teen = "www.a10.com"; _local1.p_zapapa = "www.zapapa.com"; _local1.textLanguage = "es"; addLanguage(_local1); addReference(_local1, "mx"); _local1 = new Language("es_ar", "arg"); _local1.displayName = "Español"; _local1.p_family = "www.juegos.com.ar"; _local1.p_tween = "www.juegos.com.ar"; _local1.p_girl = "www.juegosdechicas.com.ar"; _local1.p_teen = "www.a10.com"; _local1.p_zapapa = "www.zapapa.com"; _local1.textLanguage = "es"; addLanguage(_local1); addReference(_local1, "arg"); } public static function exportXML():XMLNode{ var _local1:Array; var _local2:XMLNode; var _local3:Language; _local1 = getLanguagesArray(); _local2 = new XMLNode(1, "languages"); for each (_local3 in _local1) { _local2.appendChild(_local3.exportXML()); }; return (_local2); } public static function getLanguagesArray():Array{ var _local1:Array; var _local2:Object; var _local3:Language; _local1 = new Array(); _local2 = new Object(); for each (_local3 in languages) { if (!_local2[_local3.name]){ _local1.push(_local3); _local2[_local3.name] = true; }; }; return (_local1); } public static function getLanguage(_arg1:String):Language{ return (languages[_arg1]); } private static function addLanguage(_arg1:Language):void{ languages[_arg1.name] = _arg1; } private static function addReference(_arg1:Language, _arg2:String):void{ languages[_arg2] = _arg1; _arg1.references.push(_arg2); } public static function getLanguageByOldID(_arg1:int):Language{ var _local2:Language; for each (_local2 in languages) { if (_local2.bwcId == _arg1){ return (_local2); }; }; return (null); } } }//package spill.localisation
Section 85
//LanguageSelectBox (spill.localisation.LanguageSelectBox) package spill.localisation { import flash.events.*; import flash.display.*; import flash.text.*; public class LanguageSelectBox extends MovieClip { private var flag:MovieClip; private var mc:MovieClip; private var popup:MovieClip; private var languageName_text:TextField; public function LanguageSelectBox(){ trace("new langselecbox"); super(); if (numChildren > 0){ removeChildAt(0); }; addEventListener(Event.ADDED_TO_STAGE, added, false, 0, true); addEventListener(Event.REMOVED_FROM_STAGE, removed, false, 0, true); addEventListener(MouseEvent.MOUSE_OVER, mouseOver, false, 0, true); addEventListener(MouseEvent.MOUSE_OUT, mouseOut, false, 0, true); Languages.initialize(); popup = new LanguageSelectPopup_mc(); x = Math.round(x); y = Math.round(y); popup.y = (-(Math.floor(popup.height)) + 1); popup.visible = false; addChild(popup); mc = new LanguageSelectBox_mc(); addChild(mc); flag = mc.flag; languageName_text = mc.languageName_text; if (stage){ added(); }; init(); languageChanged(); } private function added(_arg1:Event=null):void{ trace("addedselebnox"); SpilGame.addEventListener("languageChanged", languageChanged, false, 0, true); } public function set popupLocation(_arg1:String):void{ trace(("popupLocation = " + _arg1)); if (_arg1 == "bottom"){ popup.y = Math.floor(mc.height); } else { popup.y = (-(Math.floor(mc.height)) + 1); }; } public function init():void{ var _local1:Array; var _local2:int; var _local3:MovieClip; var _local4:Language; trace("initselectbox"); _local1 = new Array(popup.l_br, popup.l_de, popup.l_en_us, popup.l_fr, popup.l_in, popup.l_jp, popup.l_pt, popup.l_ru, popup.l_ar, popup.l_cn, popup.l_en_uk, popup.l_es, popup.l_id, popup.l_it, popup.l_nl, popup.l_pl, popup.l_se, popup.l_es_mx, popup.l_es_ar); _local2 = 0; while (_local2 < _local1.length) { _local3 = MovieClip(_local1[_local2]); if (_local3){ _local3.addEventListener(MouseEvent.CLICK, itemClicked, true, 0, true); _local3.flag.gotoAndStop(_local3.name.substr(2)); _local3.flag.mouseEnabled = false; _local3.text.mouseEnabled = false; _local4 = Languages.getLanguage(_local3.name.substr(2)); if (_local4){ _local3.text.text = _local4.displayAcronim; } else { trace((("Error, '" + _local3.name.substr(2)) + "' language not found")); }; } else { trace((((("Error, btn number '" + _local2) + "' is not a MovieClip or there is no button '") + _local1[_local2]) + "'")); }; _local2++; }; } private function mouseOver(_arg1:MouseEvent):void{ popup.visible = true; } private function languageChanged(_arg1:Event=null):void{ if (SpilGame.currentLanguage){ if ((((SpilGame.portalGroup == PortalGroup.HYVES)) && ((SpilGame.currentLanguage.name == "nl")))){ this.visible = false; return; }; this.visible = true; flag.gotoAndStop(SpilGame.currentLanguage.name); languageName_text.text = SpilGame.currentLanguage.displayName; languageName_text.embedFonts = SpilGame.currentLanguage.embedInputFonts; }; } private function mouseOut(_arg1:MouseEvent):void{ popup.visible = false; } private function removed(_arg1:Event):void{ SpilGame.removeEventListener("languageChanged", languageChanged); } private function itemClicked(_arg1:MouseEvent):void{ SpilGame.changeLanguage(_arg1.currentTarget.name.substr(2)); popup.visible = false; } } }//package spill.localisation
Section 86
//LanguageSelectBox_mc (spill.localisation.LanguageSelectBox_mc) package spill.localisation { import flash.display.*; import flash.text.*; public dynamic class LanguageSelectBox_mc extends MovieClip { public var flag:MovieClip; public var languageName_text:TextField; } }//package spill.localisation
Section 87
//LanguageSelectPopup_mc (spill.localisation.LanguageSelectPopup_mc) package spill.localisation { import flash.display.*; public dynamic class LanguageSelectPopup_mc extends MovieClip { public var l_se:MovieClip; public var l_ar:MovieClip; public var l_br:MovieClip; public var l_in:MovieClip; public var l_cn:MovieClip; public var l_de:MovieClip; public var l_es_mx:MovieClip; public var l_es:MovieClip; public var l_en_uk:MovieClip; public var l_fr:MovieClip; public var l_en_us:MovieClip; public var l_pl:MovieClip; public var l_pt:MovieClip; public var l_nl:MovieClip; public var l_id:MovieClip; public var l_es_ar:MovieClip; public var l_it:MovieClip; public var l_jp:MovieClip; public var l_ru:MovieClip; } }//package spill.localisation
Section 88
//LocalizedTextField (spill.localisation.LocalizedTextField) package spill.localisation { import flash.events.*; public class LocalizedTextField extends TextFieldFit { private var regex:RegExp; private var originalText:String; public function LocalizedTextField(){ regex = /{([^{}]*)}/g; super(); addEventListener(Event.ADDED_TO_STAGE, added, false, 0, true); addEventListener(Event.REMOVED_FROM_STAGE, removed, false, 0, true); added(); } private function languageChanged(_arg1:Event):void{ text = originalText; updateProperties(); } override public function set text(_arg1:String):void{ originalText = _arg1; if ((_arg1 is String)){ super.text = _arg1.replace(regex, replaceFn); } else { super.text = ""; }; } private function removed(_arg1:Event):void{ SpilGame.removeEventListener("languageChanged", languageChanged); } private function replaceFn():String{ var _local2:String; _local2 = SpilGame.getString(arguments[1]); if (((!(_local2)) || ((_local2 == "")))){ return ((("{" + arguments[1]) + "}")); }; return (_local2); } private function added(_arg1:Event=null):void{ SpilGame.addEventListener("languageChanged", languageChanged, false, 0, true); text = originalText; } } }//package spill.localisation
Section 89
//PortalGroup (spill.localisation.PortalGroup) package spill.localisation { import flash.xml.*; public class PortalGroup { public static const YOUNG_ADULTS:uint = 3; public static const FAMILY:uint = 0; public static const channelNames:Array = ["family", "tween", "girl", "teen", "zapapa", "hyves"]; public static const ZAPAPA:uint = 4; public static const HYVES:uint = 5; public static const TEENS:uint = 1; public static const GIRL:uint = 2; public static const backgroundColors:Array = [0xFFFFFF, 0xFFFFFF, 16742331, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF]; public static const NONE:uint = 6; public static function getName(_arg1:int):String{ return (channelNames[_arg1]); } public static function exportXML():XMLNode{ var _local1:XMLNode; var _local2:int; var _local3:XMLNode; _local1 = new XMLNode(1, "channels"); _local2 = 0; while (_local2 < 5) { _local3 = new XMLNode(1, "channel"); _local3.attributes.name = channelNames[_local2]; _local3.attributes.id = _local2; _local1.appendChild(_local3); _local2++; }; return (_local1); } } }//package spill.localisation
Section 90
//spil_internal (spill.localisation.spil_internal) package spill.localisation { public namespace spil_internal = "spill.localisation"; }//package spill.localisation
Section 91
//SpilGame (spill.localisation.SpilGame) package spill.localisation { import flash.display.*; import flash.text.*; import flash.events.*; import flash.ui.*; import flash.net.*; import flash.system.*; import flash.external.*; public class SpilGame { private static const cookieName:String = "spilgames_language_v100"; private static const cookiePath:String = "/"; private static const cookieLanguageVar:String = "savedLang"; public static const LANGUAGE_CHANGED:String = "languageChanged"; public static const BRANDING_CHANGED:String = "brandingChanged"; private static var strings:Object = new Object(); public static var currentBranding:Brand; private static var contexMenuItem:ContextMenuItem; spil_internal static var gameName:String; spil_internal static var debugHostDomain:String = ""; private static var localDomains:Object = new Object(); spil_internal static var emailPage:String; private static var channelLock:Boolean = false; spil_internal static var debugEmbedDomain:String = ""; private static var eventDispatcher:EventDispatcher; private static var _init:Boolean = false; public static var currentLanguage:Language; spil_internal static var portalGroup:uint; private static var stage:Sprite; public static function getSpilCompanyLink():String{ if (currentLanguage.name == "cn"){ return ("http://www.game.com.cn/downloads/"); }; return ("http://www.gameportal.net"); } public static function getPromotionLink(_arg1:String="feature_promotion"):String{ var _local2:String; _local2 = (embedDomain) ? embedDomain : hostingDomain; return (currentBranding.getPromotionLink(gameName, emailPage, isExternal, _local2, _arg1)); } public static function traceAllBrands():void{ trace(outputAllBrands()); } public static function getString(_arg1:String):String{ var _local2:Object; _local2 = strings[_arg1]; if (_local2){ if (currentLanguage.textLanguage){ return (_local2[currentLanguage.textLanguage]); }; if (_local2[currentLanguage.name]){ return (_local2[currentLanguage.name]); }; return (_local2["en_us"]); //unresolved jump }; return (""); } public static function initialize(_arg1:String, _arg2:int, _arg3:String, _arg4:Sprite, _arg5:Boolean=false):void{ stage = _arg4; if (_init){ trace("ERROR: LocalisationManager already initialised"); return; }; _init = true; localDomains["localhost"] = true; localDomains["www8.agame.com"] = true; localDomains["gamedev.dev.spilgames.com"] = true; localDomains["stg.spel.nl"] = true; localDomains["stg.girlsgogames.nl"] = true; localDomains["stg.pl.spel.nl"] = true; localDomains["stg.pl.girlsgogames.nl"] = true; trace(localDomains["stg.girlsgogames.nl"]); Brandings.initialize(); Languages.initialize(); initContexMenu(_arg4); channelLock = _arg5; gameName = _arg1.replace(" ", "_"); portalGroup = _arg2; emailPage = _arg3; chooseLanguage(); chooseBranding(); if (portalGroup == PortalGroup.HYVES){ changeLanguage("nl"); }; } public static function get isExternal():Boolean{ return (((((!(Brandings.hasDomain(embedDomain))) && (!(localDomains[embedDomain])))) && (!(isStagingDomain)))); } private static function initContexMenu(_arg1:Sprite):void{ contexMenuItem = new ContextMenuItem(""); _arg1.contextMenu = new ContextMenu(); _arg1.contextMenu.customItems.push(contexMenuItem); contexMenuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, contexMenuClicked); } private static function replaceFn():String{ var _local2:String; _local2 = SpilGame.getString(arguments[1]); if (((!(_local2)) || ((_local2 == "")))){ return ((("{" + arguments[1]) + "}")); }; return (_local2); } spil_internal static function get hostingDomain():String{ var _local1:LocalConnection; if (debugHostDomain != ""){ return (debugHostDomain); }; _local1 = new LocalConnection(); return (_local1.domain); } spil_internal static function chooseLanguage():void{ if (cookieLanguage != null){ currentLanguage = cookieLanguage; } else { if (isExternal){ currentLanguage = systemLanguage; } else { currentLanguage = portalLanguage; if (!currentLanguage){ currentLanguage = systemLanguage; }; }; }; if (!currentLanguage){ trace("Unable to determine language, using 'English US'"); currentLanguage = Languages.getLanguage("en_us"); }; TextFieldFit.embedFonts = currentLanguage.embedFonts; TextFieldFit.forceFont = currentLanguage.forceFont; dispatchEvent(new Event(LANGUAGE_CHANGED)); } private static function contexMenuClicked(_arg1:ContextMenuEvent):void{ navigateToURL(new URLRequest(getMoreGamesLink("Contex_Menu"))); } public static function initTextField(_arg1:TextField):void{ var _local2:TextFormat; trace(_arg1.text); _arg1.text = _arg1.text.replace(/{([^{}]*)}/g, replaceFn); trace(_arg1.text); _arg1.embedFonts = currentLanguage.embedFonts; if (currentLanguage.forceFont != ""){ _local2 = new TextFormat(); _local2.font = currentLanguage.forceFont; _arg1.setTextFormat(_local2); }; } public static function importXMLv2(_arg1:XML):void{ var _local2:XML; var _local3:Object; var _local4:XML; for each (_local2 in _arg1.children()) { _local3 = (strings[_local2.attribute("identifier")] = new Object()); for each (_local4 in _local2.children()) { if (_local4.children().length() > 0){ _local3[_local4.name()] = _local4.children()[0].toString(); } else { _local3[_local4.name()] = ""; }; }; }; } spil_internal static function changeLanguage(_arg1:String):void{ var _local2:Language; _local2 = Languages.getLanguage(_arg1); if (!_local2){ trace("ERROR: Supplied language string does not have a matching language"); } else { cookieLanguage = _local2; currentLanguage = _local2; }; TextFieldFit.embedFonts = currentLanguage.embedFonts; TextFieldFit.forceFont = currentLanguage.forceFont; chooseBranding(); dispatchEvent(new Event(LANGUAGE_CHANGED)); } public static function getSendToFriendLink():String{ return (currentBranding.getSendToFriendLink(gameName, emailPage, isExternal, embedDomain)); } spil_internal static function chooseBranding():void{ currentBranding = Brandings.getBrandByDomain(currentLanguage.portal_groups[portalGroup]); if (!(currentBranding is Brand)){ currentBranding = Brandings.getBrandByDomain("www.agame.com"); }; contexMenuItem.caption = ("More Games: " + currentBranding.domain); dispatchEvent(new Event(BRANDING_CHANGED)); } spil_internal static function get systemLanguage():Language{ return (Languages.getLanguage(Capabilities.language)); } spil_internal static function set cookieLanguage(_arg1:Language):void{ var _local2:SharedObject; _local2 = SharedObject.getLocal(cookieName, cookiePath); if (_arg1 == null){ _local2.data[cookieLanguageVar] = null; } else { _local2.data[cookieLanguageVar] = _arg1.name; }; _local2.flush(); } public static function importXML(_arg1:XML):void{ var _local2:XML; var _local3:Object; var _local4:XML; for each (_local2 in _arg1.children()) { _local3 = (strings[_local2.identifier] = new Object()); for each (_local4 in _local2.children()) { _local3[_local4.name()] = _local4.children()[0].toString(); }; }; } spil_internal static function dispatchEvent(_arg1:Event):void{ if (!eventDispatcher){ eventDispatcher = new EventDispatcher(); }; eventDispatcher.dispatchEvent(_arg1); } private static function getDomain(_arg1:String):String{ var _local2:String; var _local3:uint; if (_arg1.indexOf("file") == 0){ return ("offline_play"); }; _local2 = new String(); _local3 = 7; while (_local3 < _arg1.length) { if (_arg1.charAt(_local3) == "/"){ break; }; _local2 = (_local2 + _arg1.charAt(_local3)); _local3++; }; if (_local2 == "localhost"){ _local2 = "offline_play"; }; return (_local2); } public static function exportXML():XML{ var _local1:XML; _local1 = <spil_games/> ; _local1.appendChild(Brandings.exportXML()); _local1.appendChild(Languages.exportXML()); _local1.appendChild(PortalGroup.exportXML()); return (_local1); } public static function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ if (!eventDispatcher){ eventDispatcher = new EventDispatcher(); }; eventDispatcher.removeEventListener(_arg1, _arg2, _arg3); } public static function outputAllBrands():String{ var _local1:Array; var _local2:String; var _local3:Brand; _local1 = Brandings.getBrandsArray(); _local2 = ""; for each (_local3 in _local1) { _local2 = (_local2 + (_local3.getSendToFriendLink(gameName, emailPage, isExternal, embedDomain) + "\n")); }; return (_local2); } public static function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ if (!eventDispatcher){ eventDispatcher = new EventDispatcher(); }; eventDispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } public static function getMoreGamesLink(_arg1:String=""):String{ var _local2:String; _local2 = (embedDomain) ? embedDomain : hostingDomain; return (currentBranding.getMoreGamesLink(gameName, isExternal, _local2, _arg1)); } public static function get isStagingDomain():Boolean{ var _local1:String; _local1 = ("http://" + embedDomain); return ((_local1.indexOf("http://stg.") >= 0)); } spil_internal static function get cookieLanguage():Language{ var _local1:SharedObject; var _local2:String; _local1 = SharedObject.getLocal(cookieName, cookiePath); _local2 = String(_local1.data[cookieLanguageVar]); return (Languages.getLanguage(_local2)); } private static function get portalLanguage():Language{ var _local1:Brand; var _local2:String; var _local3:Language; if (isExternal){ return (null); }; if (!embedDomain){ return (null); }; _local1 = Brandings.getBrandByDomain(embedDomain); if (!_local1){ return (null); }; _local2 = _local1.preferedLanguage; if (!_local2){ return (null); }; _local3 = Languages.getLanguage(_local2); if (!_local3){ return (null); }; return (_local3); } spil_internal static function get embedDomain():String{ var loc:String; if (debugEmbedDomain != ""){ return (debugEmbedDomain); }; if (ExternalInterface.available){ try { loc = ExternalInterface.call("window.location.href.toString"); if (((!((loc == ""))) && (!((loc == null))))){ trace(("embed domain = " + getDomain(loc))); return (getDomain(loc)); }; } catch(e:SecurityError) { trace(("Security Error connecting to external interface, error = " + e)); } catch(e:Error) { trace(("Error connecting to external interface, error = " + e)); }; }; return (null); } } }//package spill.localisation
Section 92
//SpilGamesLink (spill.localisation.SpilGamesLink) package spill.localisation { import flash.events.*; import flash.display.*; import flash.net.*; public class SpilGamesLink extends SimpleButton { public function SpilGamesLink(){ addEventListener(MouseEvent.CLICK, buttonClicked); } private function buttonClicked(_arg1:MouseEvent):void{ navigateToURL(new URLRequest(SpilGame.getSpilCompanyLink()), "_blank"); } } }//package spill.localisation
Section 93
//TextFieldFit (spill.localisation.TextFieldFit) package spill.localisation { import flash.display.*; import flash.text.*; import flash.events.*; import flash.filters.*; import flash.utils.*; public class TextFieldFit extends MovieClip { protected var _text:String;// = "default" protected var _textSize:Number;// = 12 protected var _embedFonts:Boolean;// = true protected var _glowColor:uint;// = 0 private var h:Number; protected var _antiAliasType:String;// = "advanced" private var w:Number; protected var _useGlowFilter:Boolean;// = false protected var _hAlign:String;// = "left" protected var _textColor:uint;// = 0 protected var _glowStrength:Number;// = 5 protected var _glowBlur:Number;// = 3 private var field:TextField; protected var _gridFitType:String;// = "pixel" protected var _glowQuality:Number;// = 1 private var debugBounding:Sprite; protected var _disableWordwrap:Boolean;// = false protected var _multiline:Boolean;// = false protected var _font:String;// = "" protected var _underline:Boolean;// = false protected var _vAlign:String;// = "top" protected var _italic:Boolean;// = false protected var _bold:Boolean;// = false private var sizeChanged:Boolean;// = true private var embeddedFonts:Array; protected var _selectable:Boolean;// = false private var format:TextFormat; private var valid:Boolean;// = true private static const gutter:Number = 2; spil_internal static var embedFonts:Boolean = true; spil_internal static var forceAAType:String = null; spil_internal static var forceFont:String = null; public static var alwaysCheckWidth:Boolean = false; public function TextFieldFit(){ var _local1:Boolean; var _local2:Number; var _local3:Number; sizeChanged = true; valid = true; _text = "default"; _textColor = 0; _textSize = 12; _multiline = false; _disableWordwrap = false; _hAlign = "left"; _vAlign = "top"; _bold = false; _underline = false; _italic = false; _selectable = false; _font = ""; _embedFonts = true; _antiAliasType = "advanced"; _gridFitType = "pixel"; _useGlowFilter = false; _glowBlur = 3; _glowColor = 0; _glowStrength = 5; _glowQuality = 1; super(); _local1 = ((!((parent == null))) && ((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent"))); _local2 = width; _local3 = height; if (numChildren > 0){ removeChildAt(0); }; if (!field){ field = new TextField(); addChild(field); }; field.border = false; field.background = false; field.type = TextFieldType.DYNAMIC; mouseEnabled = false; mouseChildren = false; format = new TextFormat(); embeddedFonts = Font.enumerateFonts(false); setSize(_local2, _local3); validate(); if (stage){ addEventListener(Event.RENDER, init); stage.invalidate(); }; init(); } private function resizeText(_arg1:Boolean=false):void{ if (!doesTextFit()){ format.size = Object((Number(format.size) - 1)); if (format.size <= 3){ trace("WARNING: Text resised to 3px, either an error occured or the text just wont fit"); return; }; field.setTextFormat(format); resizeText(true); } else { if (_arg1 == false){ while (doesTextFit()) { if (format.size <= textSize){ format.size = Object((Number(format.size) + 1)); field.setTextFormat(format); if (!doesTextFit()){ format.size = Object((Number(format.size) - 1)); field.setTextFormat(format); break; }; } else { break; }; }; }; }; } public function get italic():Boolean{ return (_italic); } public function get textColor():uint{ return (_textColor); } public function get vAlign():String{ return (_vAlign); } public function get useGlowFilter():Boolean{ return (_useGlowFilter); } public function get selectable():Boolean{ return (_selectable); } public function set italic(_arg1:Boolean):void{ _italic = _arg1; invalidate(); } public function set text(_arg1:String):void{ _text = _arg1; invalidate(); } public function set vAlign(_arg1:String):void{ _vAlign = _arg1; invalidate(); } public function get font():String{ return (_font); } public function set textColor(_arg1:uint):void{ _textColor = _arg1; invalidate(); } public function get antiAliasType():String{ return (_antiAliasType); } public function get bold():Boolean{ return (_bold); } public function set useGlowFilter(_arg1:Boolean):void{ _useGlowFilter = _arg1; invalidate(); } public function set font(_arg1:String):void{ _font = _arg1; invalidate(); } public function set selectable(_arg1:Boolean):void{ _selectable = _arg1; invalidate(); } public function get multiline():Boolean{ return (_multiline); } public function set disableWordwrap(_arg1:Boolean):void{ _disableWordwrap = _arg1; invalidate(); } public function get glowQuality():Number{ return (_glowQuality); } public function get embedFonts():Boolean{ return (_embedFonts); } public function get gridFitType():String{ return (_gridFitType); } public function get underline():Boolean{ return (_underline); } public function get textSize():Number{ return (_textSize); } public function set antiAliasType(_arg1:String):void{ _antiAliasType = _arg1; invalidate(); } protected function updateProperties():void{ var _local1:Boolean; var _local2:Font; field.text = _text; field.multiline = ((((_text.indexOf(" ") < 0)) && ((_text.length < 14)))) ? false : _multiline; field.wordWrap = ((field.multiline) && (!(_disableWordwrap))); field.selectable = _selectable; field.antiAliasType = (forceAAType) ? forceAAType : _antiAliasType; field.gridFitType = _gridFitType; embeddedFonts = Font.enumerateFonts(false); if (((((_embedFonts) && (!((_font == ""))))) && (TextFieldFit.embedFonts))){ _local1 = false; for each (_local2 in embeddedFonts) { if (_font == _local2.fontName){ _local1 = true; break; }; }; field.embedFonts = _local1; if (!_local1){ trace(((("WARNING: Embedded font '" + _font) + "' not found, disabling embedding of fonts, text = ") + _text)); } else { trace((("Found Embedded font '" + _font) + "' using font")); }; } else { field.embedFonts = false; }; if (TextFieldFit.forceFont){ format.font = TextFieldFit.forceFont; } else { format.font = _font; }; if (sizeChanged){ format.size = _textSize; }; format.color = _textColor; format.align = _hAlign; format.bold = _bold; format.italic = _italic; format.underline = _underline; format.leftMargin = 0; format.rightMargin = 0; field.setTextFormat(format); if (_useGlowFilter){ filters = [new GlowFilter(_glowColor, 1, _glowBlur, _glowBlur, _glowStrength, _glowQuality)]; } else { filters = []; }; } private function doesTextFit():Boolean{ if (((((field.textHeight + (gutter * 2)) > h)) || (((((field.textWidth + (gutter * 2)) > w)) && (((!(field.multiline)) || (alwaysCheckWidth))))))){ return (false); }; return (true); } public function get glowStrength():Number{ return (_glowStrength); } public function set hAlign(_arg1:String):void{ _hAlign = _arg1; invalidate(); } private function init(_arg1:Event=null):void{ removeEventListener(Event.RENDER, init); updateProperties(); layoutText(); } public function set bold(_arg1:Boolean):void{ _bold = _arg1; invalidate(); } private function validate(_arg1:Event=null):void{ updateProperties(); layoutText(); removeEventListener(Event.ENTER_FRAME, validate); valid = true; } public function get text():String{ return (_text); } public function set glowBlur(_arg1:Number):void{ _glowBlur = _arg1; invalidate(); } private function invalidate():void{ if (valid){ addEventListener(Event.ENTER_FRAME, validate); if (stage){ stage.invalidate(); }; valid = false; }; } public function set embedFonts(_arg1:Boolean):void{ _embedFonts = _arg1; invalidate(); } public function set multiline(_arg1:Boolean):void{ _multiline = _arg1; invalidate(); } public function get disableWordwrap():Boolean{ return (_disableWordwrap); } public function set glowQuality(_arg1:Number):void{ _glowQuality = _arg1; invalidate(); } private function layoutText():void{ resizeText(); field.height = (field.textHeight + (gutter * 2)); if (vAlign == "top"){ field.y = 0; } else { if (vAlign == "middle"){ field.y = ((h - field.height) / 2); } else { if (vAlign == "bottom"){ field.y = (h - field.height); }; }; }; } public function get hAlign():String{ return (_hAlign); } public function setSize(_arg1:Number, _arg2:Number):void{ w = _arg1; h = _arg2; scaleX = (scaleY = 1); field.width = w; field.height = h; invalidate(); } public function set gridFitType(_arg1:String):void{ _gridFitType = _arg1; invalidate(); } public function set underline(_arg1:Boolean):void{ _underline = _arg1; invalidate(); } public function get glowBlur():Number{ return (_glowBlur); } public function set textSize(_arg1:Number):void{ _textSize = _arg1; sizeChanged = true; invalidate(); } public function set glowColor(_arg1:uint):void{ _glowColor = _arg1; invalidate(); } public function get glowColor():uint{ return (_glowColor); } public function set glowStrength(_arg1:Number):void{ _glowStrength = _arg1; invalidate(); } } }//package spill.localisation
Section 94
//amb_129 (Untitled_fla.amb_129) package Untitled_fla { import flash.display.*; import spill.localisation.*; public dynamic class amb_129 extends MovieClip { public var __id8_:LocalizedTextField; public function amb_129(){ __setProp___id8__amb_Layer1_1(); } function __setProp___id8__amb_Layer1_1(){ try { __id8_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id8_.text = "{sn1}"; __id8_.textColor = 0xFFFFFF; __id8_.textSize = 14; __id8_.bold = false; __id8_.disableWordwrap = false; __id8_.embedFonts = true; __id8_.font = "Arial"; __id8_.hAlign = "center"; __id8_.multiline = false; __id8_.vAlign = "top"; __id8_.antiAliasType = "advanced"; __id8_.glowBlur = 3; __id8_.glowColor = 0; __id8_.useGlowFilter = false; __id8_.glowQuality = 1; __id8_.glowStrength = 5; __id8_.gridFitType = "pixel"; __id8_.italic = false; __id8_.selectable = false; __id8_.underline = false; try { __id8_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Untitled_fla
Section 95
//blgame_17 (Untitled_fla.blgame_17) package Untitled_fla { import flash.display.*; import spill.localisation.*; public dynamic class blgame_17 extends MovieClip { public var bl:BrandingLogo; } }//package Untitled_fla
Section 96
//blmenu_128 (Untitled_fla.blmenu_128) package Untitled_fla { import flash.display.*; import spill.localisation.*; public dynamic class blmenu_128 extends MovieClip { public var bl:BrandingLogo; } }//package Untitled_fla
Section 97
//blselect_114 (Untitled_fla.blselect_114) package Untitled_fla { import flash.display.*; import spill.localisation.*; public dynamic class blselect_114 extends MovieClip { public var bl:BrandingLogo; } }//package Untitled_fla
Section 98
//flag_icon_164 (Untitled_fla.flag_icon_164) package Untitled_fla { import flash.display.*; public dynamic class flag_icon_164 extends MovieClip { public function flag_icon_164(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Untitled_fla
Section 99
//glaz_golova_108 (Untitled_fla.glaz_golova_108) package Untitled_fla { import flash.display.*; public dynamic class glaz_golova_108 extends MovieClip { public function glaz_golova_108(){ addFrameScript(0, frame1, 24, frame25, 44, frame45, 64, frame65); } function frame65(){ gotoAndStop(1); } function frame1(){ stop(); } function frame25(){ gotoAndStop(1); } function frame45(){ gotoAndStop(1); } } }//package Untitled_fla
Section 100
//ins_move1_1_134 (Untitled_fla.ins_move1_1_134) package Untitled_fla { import flash.display.*; import spill.localisation.*; public dynamic class ins_move1_1_134 extends MovieClip { public var __id0_:LocalizedTextField; public function ins_move1_1_134(){ __setProp___id0__ins_move1_1_Layer1_1(); } function __setProp___id0__ins_move1_1_Layer1_1(){ try { __id0_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id0_.text = "{s12}"; __id0_.textColor = 0xFFFFFF; __id0_.textSize = 14; __id0_.bold = false; __id0_.disableWordwrap = false; __id0_.embedFonts = true; __id0_.font = "Arial"; __id0_.hAlign = "left"; __id0_.multiline = true; __id0_.vAlign = "top"; __id0_.antiAliasType = "advanced"; __id0_.glowBlur = 3; __id0_.glowColor = 0; __id0_.useGlowFilter = false; __id0_.glowQuality = 1; __id0_.glowStrength = 5; __id0_.gridFitType = "pixel"; __id0_.italic = false; __id0_.selectable = false; __id0_.underline = false; try { __id0_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Untitled_fla
Section 101
//ins_move1_2_135 (Untitled_fla.ins_move1_2_135) package Untitled_fla { import flash.display.*; import spill.localisation.*; public dynamic class ins_move1_2_135 extends MovieClip { public var __id1_:LocalizedTextField; public function ins_move1_2_135(){ __setProp___id1__ins_move1_2_Layer1_1(); } function __setProp___id1__ins_move1_2_Layer1_1(){ try { __id1_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id1_.text = "{s13}"; __id1_.textColor = 0xFFFFFF; __id1_.textSize = 14; __id1_.bold = false; __id1_.disableWordwrap = false; __id1_.embedFonts = true; __id1_.font = "Arial"; __id1_.hAlign = "center"; __id1_.multiline = true; __id1_.vAlign = "top"; __id1_.antiAliasType = "advanced"; __id1_.glowBlur = 3; __id1_.glowColor = 0; __id1_.useGlowFilter = false; __id1_.glowQuality = 1; __id1_.glowStrength = 5; __id1_.gridFitType = "pixel"; __id1_.italic = false; __id1_.selectable = false; __id1_.underline = false; try { __id1_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Untitled_fla
Section 102
//ins_move1_3_136 (Untitled_fla.ins_move1_3_136) package Untitled_fla { import flash.display.*; import spill.localisation.*; public dynamic class ins_move1_3_136 extends MovieClip { public var __id2_:LocalizedTextField; public function ins_move1_3_136(){ __setProp___id2__ins_move1_3_Layer1_1(); } function __setProp___id2__ins_move1_3_Layer1_1(){ try { __id2_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id2_.text = "{s14}"; __id2_.textColor = 0xFFFFFF; __id2_.textSize = 14; __id2_.bold = false; __id2_.disableWordwrap = false; __id2_.embedFonts = true; __id2_.font = "Arial"; __id2_.hAlign = "left"; __id2_.multiline = true; __id2_.vAlign = "top"; __id2_.antiAliasType = "advanced"; __id2_.glowBlur = 3; __id2_.glowColor = 0; __id2_.useGlowFilter = false; __id2_.glowQuality = 1; __id2_.glowStrength = 5; __id2_.gridFitType = "pixel"; __id2_.italic = false; __id2_.selectable = false; __id2_.underline = false; try { __id2_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Untitled_fla
Section 103
//ins_move2_1_138 (Untitled_fla.ins_move2_1_138) package Untitled_fla { import flash.display.*; import spill.localisation.*; public dynamic class ins_move2_1_138 extends MovieClip { public var __id3_:LocalizedTextField; public function ins_move2_1_138(){ __setProp___id3__ins_move2_1_Layer1_1(); } function __setProp___id3__ins_move2_1_Layer1_1(){ try { __id3_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id3_.text = "{s15}"; __id3_.textColor = 0xFFFFFF; __id3_.textSize = 14; __id3_.bold = false; __id3_.disableWordwrap = false; __id3_.embedFonts = true; __id3_.font = "Arial"; __id3_.hAlign = "left"; __id3_.multiline = true; __id3_.vAlign = "top"; __id3_.antiAliasType = "advanced"; __id3_.glowBlur = 3; __id3_.glowColor = 0; __id3_.useGlowFilter = false; __id3_.glowQuality = 1; __id3_.glowStrength = 5; __id3_.gridFitType = "pixel"; __id3_.italic = false; __id3_.selectable = false; __id3_.underline = false; try { __id3_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Untitled_fla
Section 104
//ins_move2_2_139 (Untitled_fla.ins_move2_2_139) package Untitled_fla { import flash.display.*; import spill.localisation.*; public dynamic class ins_move2_2_139 extends MovieClip { public var __id4_:LocalizedTextField; public function ins_move2_2_139(){ __setProp___id4__ins_move2_2_Layer1_1(); } function __setProp___id4__ins_move2_2_Layer1_1(){ try { __id4_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id4_.text = "{s16}"; __id4_.textColor = 0xFFFFFF; __id4_.textSize = 14; __id4_.bold = false; __id4_.disableWordwrap = false; __id4_.embedFonts = true; __id4_.font = "Arial"; __id4_.hAlign = "left"; __id4_.multiline = true; __id4_.vAlign = "top"; __id4_.antiAliasType = "advanced"; __id4_.glowBlur = 3; __id4_.glowColor = 0; __id4_.useGlowFilter = false; __id4_.glowQuality = 1; __id4_.glowStrength = 5; __id4_.gridFitType = "pixel"; __id4_.italic = false; __id4_.selectable = false; __id4_.underline = false; try { __id4_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Untitled_fla
Section 105
//ipbut1_2_94 (Untitled_fla.ipbut1_2_94) package Untitled_fla { import flash.display.*; import spill.localisation.*; public dynamic class ipbut1_2_94 extends MovieClip { public var __id15_:LocalizedTextField; public function ipbut1_2_94(){ __setProp___id15__ipbut1_2_Layer1_1(); } function __setProp___id15__ipbut1_2_Layer1_1(){ try { __id15_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id15_.text = "{s9}"; __id15_.textColor = 0xFFFFFF; __id15_.textSize = 14; __id15_.bold = false; __id15_.disableWordwrap = false; __id15_.embedFonts = true; __id15_.font = "Arial"; __id15_.hAlign = "center"; __id15_.multiline = false; __id15_.vAlign = "top"; __id15_.antiAliasType = "advanced"; __id15_.glowBlur = 3; __id15_.glowColor = 0; __id15_.useGlowFilter = false; __id15_.glowQuality = 1; __id15_.glowStrength = 5; __id15_.gridFitType = "pixel"; __id15_.italic = false; __id15_.selectable = false; __id15_.underline = false; try { __id15_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Untitled_fla
Section 106
//ipbut1_2copy_95 (Untitled_fla.ipbut1_2copy_95) package Untitled_fla { import flash.display.*; import spill.localisation.*; public dynamic class ipbut1_2copy_95 extends MovieClip { public var __id16_:LocalizedTextField; public function ipbut1_2copy_95(){ __setProp___id16__ipbut1_2copy_Layer1_1(); } function __setProp___id16__ipbut1_2copy_Layer1_1(){ try { __id16_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id16_.text = "{s11}"; __id16_.textColor = 0xFFFFFF; __id16_.textSize = 14; __id16_.bold = false; __id16_.disableWordwrap = false; __id16_.embedFonts = true; __id16_.font = "Arial"; __id16_.hAlign = "right"; __id16_.multiline = false; __id16_.vAlign = "top"; __id16_.antiAliasType = "advanced"; __id16_.glowBlur = 3; __id16_.glowColor = 0; __id16_.useGlowFilter = false; __id16_.glowQuality = 1; __id16_.glowStrength = 5; __id16_.gridFitType = "pixel"; __id16_.italic = false; __id16_.selectable = false; __id16_.underline = false; try { __id16_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Untitled_fla
Section 107
//ipbut1_93 (Untitled_fla.ipbut1_93) package Untitled_fla { import flash.display.*; import spill.localisation.*; public dynamic class ipbut1_93 extends MovieClip { public var __id14_:LocalizedTextField; public function ipbut1_93(){ __setProp___id14__ipbut1_Layer1_1(); } function __setProp___id14__ipbut1_Layer1_1(){ try { __id14_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id14_.text = "{s8}"; __id14_.textColor = 0xFFFFFF; __id14_.textSize = 14; __id14_.bold = false; __id14_.disableWordwrap = false; __id14_.embedFonts = true; __id14_.font = "Arial"; __id14_.hAlign = "center"; __id14_.multiline = false; __id14_.vAlign = "top"; __id14_.antiAliasType = "advanced"; __id14_.glowBlur = 3; __id14_.glowColor = 0; __id14_.useGlowFilter = false; __id14_.glowQuality = 1; __id14_.glowStrength = 5; __id14_.gridFitType = "pixel"; __id14_.italic = false; __id14_.selectable = false; __id14_.underline = false; try { __id14_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Untitled_fla
Section 108
//l_br_162 (Untitled_fla.l_br_162) package Untitled_fla { import flash.display.*; import flash.text.*; public dynamic class l_br_162 extends MovieClip { public var text:TextField; public var flag:MovieClip; } }//package Untitled_fla
Section 109
//mbtn1_124 (Untitled_fla.mbtn1_124) package Untitled_fla { import flash.display.*; import spill.localisation.*; public dynamic class mbtn1_124 extends MovieClip { public var __id5_:LocalizedTextField; public function mbtn1_124(){ __setProp___id5__mbtn1_Layer2_1(); } function __setProp___id5__mbtn1_Layer2_1(){ try { __id5_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id5_.text = "{s2}"; __id5_.textColor = 0xFFFFFF; __id5_.textSize = 14; __id5_.bold = false; __id5_.disableWordwrap = false; __id5_.embedFonts = true; __id5_.font = "Arial"; __id5_.hAlign = "center"; __id5_.multiline = false; __id5_.vAlign = "top"; __id5_.antiAliasType = "advanced"; __id5_.glowBlur = 3; __id5_.glowColor = 0; __id5_.useGlowFilter = false; __id5_.glowQuality = 1; __id5_.glowStrength = 5; __id5_.gridFitType = "pixel"; __id5_.italic = false; __id5_.selectable = false; __id5_.underline = false; try { __id5_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Untitled_fla
Section 110
//mbtn3_126 (Untitled_fla.mbtn3_126) package Untitled_fla { import flash.display.*; import spill.localisation.*; public dynamic class mbtn3_126 extends MovieClip { public var __id6_:LocalizedTextField; public function mbtn3_126(){ __setProp___id6__mbtn3_Layer1_1(); } function __setProp___id6__mbtn3_Layer1_1(){ try { __id6_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id6_.text = "{s4}"; __id6_.textColor = 0xFFFFFF; __id6_.textSize = 14; __id6_.bold = false; __id6_.disableWordwrap = false; __id6_.embedFonts = true; __id6_.font = "Arial"; __id6_.hAlign = "center"; __id6_.multiline = false; __id6_.vAlign = "top"; __id6_.antiAliasType = "advanced"; __id6_.glowBlur = 3; __id6_.glowColor = 0; __id6_.useGlowFilter = false; __id6_.glowQuality = 1; __id6_.glowStrength = 5; __id6_.gridFitType = "pixel"; __id6_.italic = false; __id6_.selectable = false; __id6_.underline = false; try { __id6_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Untitled_fla
Section 111
//mbtn4_127 (Untitled_fla.mbtn4_127) package Untitled_fla { import flash.display.*; import spill.localisation.*; public dynamic class mbtn4_127 extends MovieClip { public var __id7_:LocalizedTextField; public function mbtn4_127(){ __setProp___id7__mbtn4_Layer2_1(); } function __setProp___id7__mbtn4_Layer2_1(){ try { __id7_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id7_.text = "{s3}"; __id7_.textColor = 0xFFFFFF; __id7_.textSize = 14; __id7_.bold = false; __id7_.disableWordwrap = false; __id7_.embedFonts = true; __id7_.font = "Arial"; __id7_.hAlign = "center"; __id7_.multiline = false; __id7_.vAlign = "top"; __id7_.antiAliasType = "advanced"; __id7_.glowBlur = 3; __id7_.glowColor = 0; __id7_.useGlowFilter = false; __id7_.glowQuality = 1; __id7_.glowStrength = 5; __id7_.gridFitType = "pixel"; __id7_.italic = false; __id7_.selectable = false; __id7_.underline = false; try { __id7_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Untitled_fla
Section 112
//power_line_96 (Untitled_fla.power_line_96) package Untitled_fla { import flash.display.*; public dynamic class power_line_96 extends MovieClip { public var line:MovieClip; } }//package Untitled_fla
Section 113
//robot_live_109 (Untitled_fla.robot_live_109) package Untitled_fla { import flash.display.*; public dynamic class robot_live_109 extends MovieClip { public var live:MovieClip; } }//package Untitled_fla
Section 114
//selbtn2_4 (Untitled_fla.selbtn2_4) package Untitled_fla { import flash.display.*; import spill.localisation.*; public dynamic class selbtn2_4 extends MovieClip { public var __id11_:LocalizedTextField; public function selbtn2_4(){ __setProp___id11__selbtn2_Layer2_1(); } function __setProp___id11__selbtn2_Layer2_1(){ try { __id11_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id11_.text = "{s5}"; __id11_.textColor = 0xFFFFFF; __id11_.textSize = 14; __id11_.bold = false; __id11_.disableWordwrap = false; __id11_.embedFonts = true; __id11_.font = "Arial"; __id11_.hAlign = "center"; __id11_.multiline = false; __id11_.vAlign = "top"; __id11_.antiAliasType = "advanced"; __id11_.glowBlur = 3; __id11_.glowColor = 0; __id11_.useGlowFilter = false; __id11_.glowQuality = 1; __id11_.glowStrength = 5; __id11_.gridFitType = "pixel"; __id11_.italic = false; __id11_.selectable = false; __id11_.underline = false; try { __id11_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Untitled_fla
Section 115
//selbtn2copy_116 (Untitled_fla.selbtn2copy_116) package Untitled_fla { import flash.display.*; import spill.localisation.*; public dynamic class selbtn2copy_116 extends MovieClip { public var __id13_:LocalizedTextField; public function selbtn2copy_116(){ __setProp___id13__selbtn2copy_Layer2_1(); } function __setProp___id13__selbtn2copy_Layer2_1(){ try { __id13_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id13_.text = "{s6}"; __id13_.textColor = 0xFFFFFF; __id13_.textSize = 14; __id13_.bold = false; __id13_.disableWordwrap = false; __id13_.embedFonts = true; __id13_.font = "Arial"; __id13_.hAlign = "center"; __id13_.multiline = false; __id13_.vAlign = "top"; __id13_.antiAliasType = "advanced"; __id13_.glowBlur = 3; __id13_.glowColor = 0; __id13_.useGlowFilter = false; __id13_.glowQuality = 1; __id13_.glowStrength = 5; __id13_.gridFitType = "pixel"; __id13_.italic = false; __id13_.selectable = false; __id13_.underline = false; try { __id13_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Untitled_fla
Section 116
//Symbol2_115 (Untitled_fla.Symbol2_115) package Untitled_fla { import flash.display.*; import spill.localisation.*; public dynamic class Symbol2_115 extends MovieClip { public var __id12_:LocalizedTextField; public function Symbol2_115(){ __setProp___id12__Symbol2_Layer1_1(); } function __setProp___id12__Symbol2_Layer1_1(){ try { __id12_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id12_.text = "{s7}"; __id12_.textColor = 0xFFFFFF; __id12_.textSize = 14; __id12_.bold = false; __id12_.disableWordwrap = false; __id12_.embedFonts = true; __id12_.font = "Arial"; __id12_.hAlign = "right"; __id12_.multiline = false; __id12_.vAlign = "top"; __id12_.antiAliasType = "advanced"; __id12_.glowBlur = 3; __id12_.glowColor = 0; __id12_.useGlowFilter = false; __id12_.glowQuality = 1; __id12_.glowStrength = 5; __id12_.gridFitType = "pixel"; __id12_.italic = false; __id12_.selectable = false; __id12_.underline = false; try { __id12_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Untitled_fla
Section 117
//Symbol2copy_113 (Untitled_fla.Symbol2copy_113) package Untitled_fla { import flash.display.*; import spill.localisation.*; public dynamic class Symbol2copy_113 extends MovieClip { public var __id10_:LocalizedTextField; public function Symbol2copy_113(){ __setProp___id10__Symbol2copy_Layer1_1(); } function __setProp___id10__Symbol2copy_Layer1_1(){ try { __id10_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id10_.text = "{s3}"; __id10_.textColor = 0xFFFFFF; __id10_.textSize = 14; __id10_.bold = false; __id10_.disableWordwrap = false; __id10_.embedFonts = true; __id10_.font = "Arial"; __id10_.hAlign = "center"; __id10_.multiline = false; __id10_.vAlign = "top"; __id10_.antiAliasType = "advanced"; __id10_.glowBlur = 3; __id10_.glowColor = 0; __id10_.useGlowFilter = false; __id10_.glowQuality = 1; __id10_.glowStrength = 5; __id10_.gridFitType = "pixel"; __id10_.italic = false; __id10_.selectable = false; __id10_.underline = false; try { __id10_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Untitled_fla
Section 118
//awardmc (awardmc) package { import flash.display.*; import spill.localisation.*; public dynamic class awardmc extends MovieClip { public var __id20_:LocalizedTextField; public var __id17_:LocalizedTextField; public var __id18_:LocalizedTextField; public var __id19_:LocalizedTextField; public var menubtn:MovieClip; public var aw1:MovieClip; public var aw3:MovieClip; public var aw4:MovieClip; public var aw2:MovieClip; public function awardmc(){ __setProp___id20__awardmc_Layer3_1(); __setProp___id19__awardmc_Layer3_1(); __setProp___id17__awardmc_Layer3_1(); __setProp___id18__awardmc_Layer3_1(); } function __setProp___id18__awardmc_Layer3_1(){ try { __id18_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id18_.text = "{award_desc_4}"; __id18_.textColor = 0xFFFFFF; __id18_.textSize = 14; __id18_.bold = false; __id18_.disableWordwrap = false; __id18_.embedFonts = true; __id18_.font = "Arial"; __id18_.hAlign = "center"; __id18_.multiline = false; __id18_.vAlign = "top"; __id18_.antiAliasType = "advanced"; __id18_.glowBlur = 3; __id18_.glowColor = 0; __id18_.useGlowFilter = false; __id18_.glowQuality = 1; __id18_.glowStrength = 5; __id18_.gridFitType = "pixel"; __id18_.italic = false; __id18_.selectable = false; __id18_.underline = false; try { __id18_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id17__awardmc_Layer3_1(){ try { __id17_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id17_.text = "{award_desc_2}"; __id17_.textColor = 0xFFFFFF; __id17_.textSize = 14; __id17_.bold = false; __id17_.disableWordwrap = false; __id17_.embedFonts = true; __id17_.font = "Arial"; __id17_.hAlign = "center"; __id17_.multiline = false; __id17_.vAlign = "top"; __id17_.antiAliasType = "advanced"; __id17_.glowBlur = 3; __id17_.glowColor = 0; __id17_.useGlowFilter = false; __id17_.glowQuality = 1; __id17_.glowStrength = 5; __id17_.gridFitType = "pixel"; __id17_.italic = false; __id17_.selectable = false; __id17_.underline = false; try { __id17_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id20__awardmc_Layer3_1(){ try { __id20_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id20_.text = "{award_desc_3}"; __id20_.textColor = 0xFFFFFF; __id20_.textSize = 14; __id20_.bold = false; __id20_.disableWordwrap = false; __id20_.embedFonts = true; __id20_.font = "Arial"; __id20_.hAlign = "center"; __id20_.multiline = false; __id20_.vAlign = "top"; __id20_.antiAliasType = "advanced"; __id20_.glowBlur = 3; __id20_.glowColor = 0; __id20_.useGlowFilter = false; __id20_.glowQuality = 1; __id20_.glowStrength = 5; __id20_.gridFitType = "pixel"; __id20_.italic = false; __id20_.selectable = false; __id20_.underline = false; try { __id20_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id19__awardmc_Layer3_1(){ try { __id19_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id19_.text = "{award_desc_1}"; __id19_.textColor = 0xFFFFFF; __id19_.textSize = 14; __id19_.bold = false; __id19_.disableWordwrap = false; __id19_.embedFonts = true; __id19_.font = "Arial"; __id19_.hAlign = "center"; __id19_.multiline = false; __id19_.vAlign = "top"; __id19_.antiAliasType = "advanced"; __id19_.glowBlur = 3; __id19_.glowColor = 0; __id19_.useGlowFilter = false; __id19_.glowQuality = 1; __id19_.glowStrength = 5; __id19_.gridFitType = "pixel"; __id19_.italic = false; __id19_.selectable = false; __id19_.underline = false; try { __id19_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 119
//blendmc (blendmc) package { import flash.display.*; public dynamic class blendmc extends MovieClip { } }//package
Section 120
//btnbtn (btnbtn) package { import flash.display.*; public dynamic class btnbtn extends MovieClip { } }//package
Section 121
//chickmc (chickmc) package { import flash.display.*; public dynamic class chickmc extends MovieClip { public var live:MovieClip; public var robohit:MovieClip; public var head:MovieClip; } }//package
Section 122
//circmc (circmc) package { import flash.display.*; public dynamic class circmc extends MovieClip { } }//package
Section 123
//cursormc (cursormc) package { import flash.display.*; public dynamic class cursormc extends MovieClip { public function cursormc(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 124
//exitmc (exitmc) package { import flash.display.*; public dynamic class exitmc extends MovieClip { } }//package
Section 125
//explosion (explosion) package { import flash.display.*; public dynamic class explosion extends MovieClip { } }//package
Section 126
//explosion2 (explosion2) package { import flash.display.*; public dynamic class explosion2 extends MovieClip { } }//package
Section 127
//flongamove (flongamove) package { import flash.display.*; import flash.text.*; import spill.localisation.*; public dynamic class flongamove extends MovieClip { public var bl:BrandingLogo; public var fText:TextField; } }//package
Section 128
//fonmc (fonmc) package { import flash.display.*; public dynamic class fonmc extends MovieClip { } }//package
Section 129
//Font1 (Font1) package { import flash.text.*; public dynamic class Font1 extends Font { } }//package
Section 130
//gnezd1 (gnezd1) package { import flash.display.*; public dynamic class gnezd1 extends MovieClip { } }//package
Section 131
//gnezd2 (gnezd2) package { import flash.display.*; public dynamic class gnezd2 extends MovieClip { } }//package
Section 132
//gnezd3 (gnezd3) package { import flash.display.*; public dynamic class gnezd3 extends MovieClip { } }//package
Section 133
//gnezdomc (gnezdomc) package { import flash.display.*; public dynamic class gnezdomc extends MovieClip { } }//package
Section 134
//kvadmc (kvadmc) package { import flash.display.*; public dynamic class kvadmc extends MovieClip { } }//package
Section 135
//lvlcomp (lvlcomp) package { import flash.display.*; public dynamic class lvlcomp extends MovieClip { } }//package
Section 136
//m_btn (m_btn) package { import flash.display.*; import flash.text.*; public dynamic class m_btn extends MovieClip { public var verh:MovieClip; public var scoretxt:TextField; public var niztxt:TextField; } }//package
Section 137
//Main (Main) package { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import flash.events.*; import flash.display.*; import com.spilgames.api.*; import flash.text.*; import flash.media.*; import spill.localisation.*; import flash.utils.*; import flash.filters.*; import flash.net.*; import flash.ui.*; import caurina.transitions.*; public class Main extends Sprite { public var nextbtnmc; public var allpower:int;// = 10 public var btnbtnmc; public var musicbtn; public var kvadmcar:Array; public var scm:SoundChannel; public var gnezmcar:Array; public var scoreint:int; public var blendm; public var boxDef:b2PolygonDef; public var gmenu; public var fonm; public var resbtnmc; public var iTimer:Timer; private var gravity:b2Vec2; public var chickmcar:Array; public var estvrag:int;// = 1 public var exitbtn; public var scoretf:TextField; public var killTimer:Timer; public var glowfall:GlowFilter; public var glowf:GlowFilter; public var tf:TextField; public var zvv1s:Sound; public var zv1s:Sound; public var pixels_in_a_meter2:int;// = 60 public var nextbtntf:TextField; public var zv2s:Sound; public var zvv2s:Sound; public var perehodm; public var dazvuk:Boolean;// = true var body3:b2Body; var body4:b2Body; var body2:b2Body; public var glowf3:GlowFilter; public var btnbtnmc3; private var m_sprite:Sprite; public var zvv3s:Sound; public var soundbtn; public var menum; public var selectm; public var zvv4s:Sound; public var lasgen:Boolean;// = false public var zv4s:Sound; public var bodyDef:b2BodyDef; public var btnbtnmc2; public var gnezobjar:Array; private var worldAABB:b2AABB; public var lvlpart:int;// = 0 public var format1:TextFormat; private var doSleep:Boolean;// = true var circleDef:b2CircleDef; public var m_contactListener; public var resbtntf:TextField; public var chickobjar:Array; public var listsens:Array; public var boxDef2:b2PolygonDef; public var boxDef3:b2PolygonDef; public var boxDef4:b2PolygonDef; public var zv3s:Sound; public var polygon:b2PolygonDef; public var zvmuss:Sound; public var m_world:b2World; public var menTimer:Timer; private var mousePVec:b2Vec2; public var estpower:int;// = 10 public var menupanm; public var all_obj:Array; public var kvadobjar:Array; public var damenu:Boolean;// = false public var zvmuss2:Sound; public var all_mcsmen:Array; public var medpantf:TextField; public var bodyDef2:b2BodyDef; public var bodyDef3:b2BodyDef; public var bodyDef4:b2BodyDef; public var allscore:Number;// = 0 public var glow:GlowFilter; public var tlevel:int;// = 0 var body:b2Body; public var awardm; public var btnsm:Array; public var animTimer:Timer; public var damusic:Boolean;// = true private var dbgSprite:Sprite; public var pantf:TextField; public var mySharedObject; private var iTunesImg:PixelExplosion; public var scoreTimer:Timer; public var cursorm; public var all_objmen:Array; public var pixels_in_a_meter:int;// = 30 public var glmenu:Boolean;// = true public var space_pressed:Boolean;// = false public var m_mouseJoint:b2MouseJoint; public var myfont:Font1; public var all_mcs:Array; static var instance; public function Main(){ var _local1:XML; var _local2:b2BodyDef; var _local3:b2PolygonDef; var _local4:b2CircleDef; var _local5:b2DebugDraw; var _local6:SpilGamesServices; pixels_in_a_meter = 30; m_contactListener = new b2ContactListener(); mySharedObject = SharedObject.getLocal("gameresult"); format1 = new TextFormat(); glow = new GlowFilter(0, 1, 4, 4, 4, 1); glowf = new GlowFilter(0xFFFFFF, 1, 5, 5, 2, 1, true); glowfall = new GlowFilter(4342595, 1, 2, 2, 3, 3, true); glowf3 = new GlowFilter(0xFFFFFF, 1, 2, 2, 3, 3, true); scm = new SoundChannel(); myfont = new Font1(); btnsm = []; zvmuss = new zvmus(); zvmuss2 = new zvmus2(); pantf = new TextField(); medpantf = new TextField(); resbtntf = new TextField(); nextbtntf = new TextField(); tf = new TextField(); scoretf = new TextField(); allscore = 0; damenu = false; glmenu = true; dazvuk = true; damusic = true; tlevel = 0; estvrag = 1; lvlpart = 0; kvadmcar = []; kvadobjar = []; all_mcs = []; all_obj = []; chickmcar = []; chickobjar = []; gnezmcar = []; gnezobjar = []; zv1s = new zv1(); zv2s = new zv2(); zv3s = new zv3(); zv4s = new zv4(); zvv1s = new zvv1(); zvv2s = new zvv2(); zvv3s = new zvv3(); zvv4s = new zvv4(); lasgen = false; space_pressed = false; allpower = 10; estpower = 10; listsens = []; pixels_in_a_meter2 = 60; polygon = new b2PolygonDef(); all_mcsmen = []; all_objmen = []; worldAABB = new b2AABB(); doSleep = true; dbgSprite = new Sprite(); gravity = new b2Vec2(0, 10); mousePVec = new b2Vec2(); super(); _local1 = <LocalisedText><textItem identifier="s1"><en_us>Rolling Drones</en_us><en_uk>Rolling Drones</en_uk><nl>Rollende Robots</nl><fr>Drones qui roulent</fr><de>Rollende Drohnen</de><es>Bombas rodantes</es><br>Robôs Rolantes</br><pt>Drones Rolantes</pt><it>Robot rotolanti</it><se>Robotjakt</se><pl>Toczące się Roboty</pl><ru>Бомбы и роботы</ru><id>Menggulung Robot</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="s2"><en_us>New Game</en_us><en_uk>New Game</en_uk><nl>Nieuw spel</nl><fr>Nouveau jeu</fr><de>Neues Spiel</de><es>Nueva partida</es><br>Novo jogo</br><pt>Novo jogo</pt><it>Nuovo gioco</it><se>Nytt spel</se><pl>Nowa gra</pl><ru>Новая игра</ru><id>Game Baru</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="s3"><en_us>Select Level</en_us><en_uk>Select level</en_uk><nl>Kies een level</nl><fr>Choisir un niveau</fr><de>Level auswählen</de><es>Seleccionar un nivel</es><br>Escolher fase</br><pt>Selecção de nível</pt><it>Seleziona il livello</it><se>Välj nivå</se><pl>Wybór poziomu</pl><ru>Выбор уровня</ru><id>Pilih Level</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="s4"><en_us>More Games</en_us><en_uk>More Games</en_uk><nl>Meer spellen</nl><fr>Plus de jeux</fr><de>Mehr Spiele</de><es>Más juegos</es><br>Mais jogos</br><pt>Mais jogos</pt><it>Più giochi</it><se>Fler spel</se><pl>Więcej gier</pl><ru>Другие игры</ru><id>Game Lain</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="s5"><en_us>Main Menu</en_us><en_uk>Main Menu</en_uk><nl>Hoofdmenu</nl><fr>Menu principal</fr><de>Hauptmenü</de><es>Menú principal</es><br>Menu principal</br><pt>Menu Principal</pt><it>Menu principale</it><se>Huvudmeny</se><pl>Menu główne</pl><ru>Главное меню</ru><id>Menu Utama</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="s6"><en_us>Submit Score</en_us><en_uk>Submit Score</en_uk><nl>Score verzenden</nl><fr>Enregistrer le score</fr><de>Punkte eintragen</de><es>Enviar puntuación</es><br>Enviar pontuação</br><pt>Enviar pontuação</pt><it>Invia il punteggio</it><se>Skicka poäng</se><pl>Zapisz wynik</pl><ru>Сохранить счет</ru><id>Kirim Skor</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="s7"><en_us>Total Score:</en_us><en_uk>Total Score:</en_uk><nl>Totaalscore:</nl><fr>Score total :</fr><de>Gesamtpunktzahl:</de><es>Puntuación total:</es><br>Placar Total:</br><pt>Pontuação Total:</pt><it>Punteggio totale:</it><se>Totalpoäng:</se><pl>Łączny wynik:</pl><ru>Общий счет:</ru><id>Total Skor:</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="s8"><en_us>Menu</en_us><en_uk>Menu</en_uk><nl>Menu</nl><fr>Menu</fr><de>Menü</de><es>Menú</es><br>Menu</br><pt>Menu</pt><it>Menu</it><se>Meny</se><pl>Menu</pl><ru>Меню</ru><id>Menu</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="s9"><en_us>Retry</en_us><en_uk>Retry</en_uk><nl>Opnieuw</nl><fr>Réessayer</fr><de>Nochmal versuchen</de><es>Repetir</es><br>Tentar novamente</br><pt>Repetir</pt><it>Riprova</it><se>Försök igen</se><pl>Spróbuj ponownie</pl><ru>Сначала</ru><id>Coba lagi</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="s10"><en_us>Level:</en_us><en_uk>Level:</en_uk><nl>Level:</nl><fr>Niveau :</fr><de>Level:</de><es>Nivel:</es><br>Fase:</br><pt>Nível:</pt><it>Livello:</it><se>Nivå:</se><pl>Poziom:</pl><ru>Уровень:</ru><id>Level:</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="s11"><en_us>Score:</en_us><en_uk>Score:</en_uk><nl>Score:</nl><fr>Score :</fr><de>Punkte:</de><es>Puntuación:</es><br>Pontuação:</br><pt>Pontuação:</pt><it>Punteggio:</it><se>Poäng:</se><pl>Wynik:</pl><ru>Счет:</ru><id>Skor:</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="s12"><en_us>This robot is an intruder!</en_us><en_uk>This robot is an intruder!</en_uk><nl>Deze robot is een indringer!</nl><fr>Ce robot est un intrus !</fr><de>Dieser Roboter ist hier eingedrungen!</de><es>¡Este robot es un intruso!</es><br>Este robô é um invasor!</br><pt>Este robô é um intruso!</pt><it>Questo robot è un intruso!</it><se>Den här roboten är en inkräktare!</se><pl>Ten robot jest intruzem!</pl><ru>Это злобный робот-захватчик!</ru><id>Robot ini penyusup!</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="s13"><en_us>Your mission: Use bombs to destroy the intruding robots.</en_us><en_uk>Your mission: Use bombs to destroy the intruding robots.</en_uk><nl>Je missie: vernietig de indringende robots met bommen.</nl><fr>Ta mission : détruis les robots intrus à l'aide de bombes.</fr><de>Deine Mission: Zerstöre die Robotereindringlinge mithilfe von Bomben.</de><es>Tu misión: usa las bombas para destruir a los robots intrusos.</es><br>Sua missão: Usar as bombas para destruir os robos invasores!</br><pt>A tua missão: usa as bombas para destruir os robôs intrusos.</pt><it>La tua missione: usare le bombe per distruggere i robot invasori.</it><se>Ditt uppdrag: Använd bomber för att spränga robotar.</se><pl>Twoja misja: Zniszcz za pomocą bomb obce roboty.</pl><ru>Твоя задача – использовать бомбы для уничтожения злых роботов.</ru><id>Misi kamu: Gunakan bom untuk menghancurkan robot penyusup.</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="s14"><en_us>Click on an object to reduce its size.</en_us><en_uk>Click on an object to reduce its size.</en_uk><nl>Klik op een object om het kleiner te maken.</nl><fr>Clique sur un objet pour réduire sa taille.</fr><de>Klicke auf ein Objekt, um seine Größe zu verringern.</de><es>Haz clic en un objeto para reducir su tamaño.</es><br>Clique nos objetos para reduzir seu tamanho.</br><pt>Clica num objecto para reduzires o seu tamanho.</pt><it>Clicca su un oggetto per rimpicciolirlo.</it><se>Klicka på ett föremål för att minska storleken.</se><pl>Kliknij na obiekt, aby zredukować jego rozmiar.</pl><ru>Щелкай мышью по предметам, чтобы уменьшить их.</ru><id>Klik benda untuk mengurangi ukurannya.</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="s15"><en_us>Hold Space and click on an object to increase its size.</en_us><en_uk>Hold Space and click on an object to increase its size.</en_uk><nl>Houd spatie ingedrukt en klik op een object om het groter te maken.</nl><fr>Appuie en continu sur la barre d'espace et clique sur un objet pour augmenter sa taille.</fr><de>Halte die Leertaste gedrückt und klicke auf ein Objekt, um seine Größe zu erhöhen.</de><es>Mantén pulsado espacio y haz clic en un objeto para aumentar su tamaño.</es><br>Segure a barra de espaço e clique num objeto para aumentar seu tamanho.</br><pt>Mantém Espaço premido e clica num objecto para aumentares o seu tamanho.</pt><it>Tieni premuta la barra spaziatrice e clicca su un oggetto per ingrandirlo.</it><se>Håll ned mellanslag och klicka på ett föremål för att öka storleken.</se><pl>Przytrzymaj spację i kliknij na obiekt, aby zwiększyć jego rozmiar.</pl><ru>Чтобы увеличить предмет, щелкай по нему, удерживая пробел.</ru><id>Tekan spasi dan klik benda untuk menambah ukurannya.</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="s16"><en_us>Kill all the robots!</en_us><en_uk>Kill all the robots!</en_uk><nl>Dood alle robots!</nl><fr>Tue tous les robots !</fr><de>Töte alle Roboter!</de><es>¡Mata a todos los robots!</es><br>Destrua todos os robôs!</br><pt>Mata todos os robôs!</pt><it>Uccidi tutti i robot!</it><se>Döda alla robotarna!</se><pl>Zabij wszystkie roboty!</pl><ru>Убей всех роботов!</ru><id>Bunuh semua robot!</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="award_name_1"><en_us>Little Drone</en_us><en_uk>Little Drone</en_uk><nl>Robotje</nl><fr>Petit drone</fr><de>Kleine Drohne</de><es>Bomba pequeña</es><br>Robozinho</br><pt>Drone Pequeno</pt><it>Robottino</it><se>Liten sprängare</se><pl>Robocik</pl><ru>Роботенок</ru><id>Robot Kecil</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="award_desc_1"><en_us>2,000 points scored.</en_us><en_uk>2,000 points scored.</en_uk><nl>2.000 punten gescoord.</nl><fr>2 000 points marqués.</fr><de>Mehr als 2.000 Punkte erreicht.</de><es>Consigue más de 2.000 puntos.</es><br> 2.000 pontos.</br><pt>2.000 pontos ganhos.</pt><it>Raggiunti più di 2000 punti.</it><se>Fick över 2000 poäng.</se><pl>Uzyskano >2000 punktów.</pl><ru>Набрано более 2 000 очков.</ru><id>Mencetak >2000 poin.</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="award_name_2"><en_us>Drones Away!</en_us><en_uk>Drones Away!</en_uk><nl>Weg met de robots!</nl><fr>Et que ça drone !</fr><de>Drohnen raus!</de><es>¡Bombas fuera!</es><br>Lá vai bomba!</br><pt>Drones Lançados!</pt><it>Caccia ai Robot!</it><se>Pangfest!</se><pl>Roboty sio!</pl><ru>Долой роботов!</ru><id>Robot Enyah!</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="award_desc_2"><en_us>Level 10 completed.</en_us><en_uk>Level 10 completed.</en_uk><nl>Level 10 voltooid.</nl><fr>Niveau 10 réussi.</fr><de>Level 10 abgeschlossen.</de><es>Completa el nivel 10.</es><br>Fase 10 concluída.</br><pt>Nível 10 concluído.</pt><it>Completato il livello 10.</it><se>Klarade nivå 10!</se><pl>Ukończono poziom 10.</pl><ru>Пройден 10 уровень.</ru><id>Level 10 selesai.</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="award_name_3"><en_us>Destruct-o-Drone</en_us><en_uk>Destruct-o-Drone</en_uk><nl>Robotvernietiger</nl><fr>Dronovore</fr><de>Drohnenvernichter</de><es>Bomba destructora</es><br>Destruidor de Robôs</br><pt>Destrui-Drone</pt><it>Distruggi-robot</it><se>Explosivt bra</se><pl>Robotoniszczarka</pl><ru>Смерть роботам!</ru><id>Penghancur Robot</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="award_desc_3"><en_us>10,000 points scored.</en_us><en_uk>10,000 points scored.</en_uk><nl>10.000 punten gescoord.</nl><fr> 10 000 points marqués.</fr><de>Mehr als 10.000 Punkte erreicht.</de><es>Consigue más de 10.000 puntos.</es><br>10.000 pontos.</br><pt>10.000 pontos ganhos.</pt><it>Raggiunti più di 10000 punti.</it><se>Fick över 10 000 poäng.</se><pl>Uzyskano >10 000 punktów.</pl><ru>Набрано более 10 000 очков.</ru><id>Mencetak >10.000 poin.</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="award_name_4"><en_us>No More Drones</en_us><en_uk>No More Drones</en_uk><nl>Robotloos</nl><fr>Plus de drones</fr><de>Keine Drohnen mehr</de><es>No más bombas</es><br>Não tem mais robô.</br><pt>Fim dos Drones</pt><it>Robot in estinzione</it><se>Robotarna väck</se><pl>I po robocie</pl><ru>Роботам конец</ru><id>Robot Habis</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="award_desc_4"><en_us>Game completed.</en_us><en_uk>Game completed.</en_uk><nl>Spel uitgespeeld.</nl><fr>Jeu réussi.</fr><de>Spiel abgeschlossen.</de><es>Juego completado.</es><br>Jogo concluído.</br><pt>Jogo acabado.</pt><it>Gioco completato.</it><se>Klarade hela spelet.</se><pl>Gra skończona</pl><ru>Игра пройдена.</ru><id>Game selesai.</id><ar></ar><jp></jp><cn></cn></textItem><textItem identifier="sn1"><en_us>Achievements</en_us><en_uk>Achievements</en_uk><nl>Resultaten</nl><fr>Réalisations</fr><de>Erfolge</de><es>Logros</es><br>Recompensar</br><pt>Conquistas</pt><it>Realizzazioni</it><se>Resultat</se><pl>Osiągnięć</pl><ru>Достижения</ru><id>Prestasi</id><ar></ar><jp></jp><cn></cn></textItem></LocalisedText> ; SpilGame.importXMLv2(_local1); trace("Language Data Succesfully included"); m_sprite = new Sprite(); addChild(m_sprite); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(KeyboardEvent.KEY_DOWN, key_down); stage.addEventListener(KeyboardEvent.KEY_UP, key_up); _local5 = 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); Mouse.hide(); textCreate(); init(); if ((((selectm.visible == true)) || ((menum.visible == true)))){ scm = zvmuss.play(0, int.MAX_VALUE); }; if ((((selectm.visible == false)) && ((menum.visible == false)))){ scm = zvmuss2.play(0, int.MAX_VALUE); }; swapChildren(fonm, m_sprite); _local6 = SpilGamesServices.getInstance(); _local6.addEventListener("servicesReady", onServicesReady); _local6.addEventListener("servicesFailed", onServicesFailed); _local6.connect(this); instance = this; } public function create_palkan(_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){ _local9.buttonMode = true; _local9.addEventListener(MouseEvent.CLICK, selmcClick); _local9.addEventListener(MouseEvent.MOUSE_OVER, selmcOver); _local9.addEventListener(MouseEvent.MOUSE_OUT, selmcOut); }; 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(); parent.parent.addChild(_local9); all_mcsmen.push(_local9); all_objmen.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){ _local9.addEventListener(MouseEvent.MOUSE_DOWN, selmcClick); _local9.addEventListener(MouseEvent.MOUSE_OVER, selmcOver); _local9.addEventListener(MouseEvent.MOUSE_OUT, selmcOut); }; 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; if (_arg8 == 1){ bodyDef.userData.dada = true; _local9.filters = [glowf3]; }; bodyDef.angle = (_arg5 / (180 / Math.PI)); _local9.rotation = (bodyDef.angle * (180 / Math.PI)); body = m_world.CreateBody(bodyDef); body.CreateShape(polygon); body.SetMassFromShapes(); addChild(_local9); kvadmcar.push(_local9); kvadobjar.push(body); } public function worldClearMen(){ var _local1:uint; var _local2:uint; _local1 = 0; while (_local1 < all_mcsmen.length) { if (all_mcsmen[_local1] != undefined){ parent.parent.removeChild(all_mcsmen[_local1]); delete all_mcsmen[_local1]; }; _local1++; }; _local2 = 0; while (_local2 < all_objmen.length) { if (all_objmen[_local2] != undefined){ m_world.DestroyBody(all_objmen[_local2]); all_objmen[_local2] = null; }; _local2++; }; all_mcsmen = []; all_objmen = []; } public function mouseClick(_arg1:Event):void{ cursorm.visible = true; Mouse.hide(); } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local2:Number; var _local3:*; var _local4:*; var _local5:b2AABB; var _local6:int; var _local7:Array; var _local8:int; var _local9:b2Body; var _local10:int; var _local11:b2Shape; var _local12:Boolean; var _local13:b2Shape; var _local14:int; var _local15:b2CircleShape; var _local16:*; var _local17:*; var _local18:*; var _local19:*; var _local20:b2CircleDef; var _local21:b2PolygonShape; var _local22:*; var _local23:*; var _local24:int; var _local25:Array; var _local26:b2PolygonDef; var _local27:b2Vec2; _local2 = 0.9; if (space_pressed){ _local2 = 1.1; }; _local3 = (mouseX / 30); _local4 = (mouseY / 30); mousePVec.Set(_local3, _local4); _local5 = new b2AABB(); _local5.lowerBound.Set((_local3 - 0.001), (_local4 - 0.001)); _local5.upperBound.Set((_local3 + 0.001), (_local4 + 0.001)); _local6 = 10000; _local7 = new Array(); _local8 = m_world.Query(_local5, _local7, _local6); _local9 = null; _local10 = 0; while (_local10 < _local8) { if ((((_local7[_local10].GetBody().IsStatic() == false)) || (_arg1))){ _local11 = (_local7[_local10] as b2Shape); _local12 = (_local7[_local10] as b2Shape).TestPoint(_local11.GetBody().GetXForm(), mousePVec); if (_local12){ _local9 = _local11.GetBody(); break; }; }; _local10++; }; if (_local9){ if ((((_local9.m_userData.dada == true)) && ((estpower > 0)))){ _local13 = _local9.GetShapeList(); _local14 = _local13.GetType(); switch (_local14){ case 0: if (dazvuk){ zvv3s.play(); }; scoreint = (scoreint - 10); estpower--; _local15 = (_local9.GetShapeList() as b2CircleShape); _local16 = _local15.GetRadius(); _local17 = _local15.GetFriction(); _local18 = _local15.GetRestitution(); _local19 = _local15.m_density; _local9.DestroyShape(_local15); _local20 = new b2CircleDef(); _local20.radius = (_local16 * _local2); _local20.density = _local19; _local20.friction = _local17; _local20.restitution = _local18; _local9.CreateShape(_local20); _local9.SetMassFromShapes(); _local9.m_userData.scaleX = (_local9.m_userData.scaleX * _local2); _local9.m_userData.scaleY = (_local9.m_userData.scaleY * _local2); break; case 1: if (dazvuk){ zvv3s.play(); }; scoreint = (scoreint - 10); estpower--; _local21 = (_local9.GetShapeList() as b2PolygonShape); _local22 = _local21.m_density; _local23 = _local21.GetFriction(); _local24 = _local21.GetVertexCount(); _local25 = _local21.GetVertices(); for each (_local27 in _local25) { _local27.Multiply(_local2); }; _local9.DestroyShape(_local21); _local9.m_userData.scaleX = (_local9.m_userData.scaleX * _local2); _local9.m_userData.scaleY = (_local9.m_userData.scaleY * _local2); _local26 = new b2PolygonDef(); _local26.vertexCount = _local24; _local26.vertices = _local25; _local26.friction = _local23; _local26.density = _local22; _local9.CreateShape(_local26); _local9.SetMassFromShapes(); break; }; }; }; return (_local9); } public function onmenTimer(_arg1:TimerEvent){ create_chickn(); } public function create_gnezdo(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):void{ var _local9:*; _local9 = new gnezd3(); _local9.gotoAndStop(_arg7); if (_arg8 == 1){ _local9.addEventListener(MouseEvent.MOUSE_DOWN, selmcClick); _local9.addEventListener(MouseEvent.MOUSE_OVER, selmcOver); _local9.addEventListener(MouseEvent.MOUSE_OUT, selmcOut); }; bodyDef = new b2BodyDef(); _local9.width = _arg3; _local9.height = _arg4; _local9.x = (_arg1 + (_arg3 / 2)); _local9.y = (_arg2 + (_arg4 / 2)); _local9.iss = 1; _local9.dead = false; 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; if (_arg8 == 1){ bodyDef.userData.dada = true; _local9.filters = [glowf3]; }; bodyDef.angle = (_arg5 / (180 / Math.PI)); _local9.rotation = (bodyDef.angle * (180 / Math.PI)); body = m_world.CreateBody(bodyDef); body.CreateShape(circleDef); body.SetMassFromShapes(); addChild(_local9); gnezmcar.push(_local9); gnezobjar.push(body); } public function butmenOver(_arg1:Event):void{ _arg1.target.gotoAndPlay(2); } 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){ _local9.addEventListener(MouseEvent.MOUSE_DOWN, selmcClick); _local9.addEventListener(MouseEvent.MOUSE_OVER, selmcOver); _local9.addEventListener(MouseEvent.MOUSE_OUT, selmcOut); }; 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; if (_arg8 == 1){ bodyDef.userData.dada = true; _local9.filters = [glowf3]; }; bodyDef.angle = (_arg5 / (180 / Math.PI)); _local9.rotation = (bodyDef.angle * (180 / Math.PI)); body = m_world.CreateBody(bodyDef); body.CreateShape(boxDef); body.SetMassFromShapes(); addChild(_local9); kvadmcar.push(_local9); kvadobjar.push(body); } public function 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){ _local9.addEventListener(MouseEvent.MOUSE_DOWN, selmcClick); _local9.addEventListener(MouseEvent.MOUSE_OVER, selmcOver); _local9.addEventListener(MouseEvent.MOUSE_OUT, selmcOut); }; 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; if (_arg8 == 1){ bodyDef.userData.dada = true; _local9.filters = [glowf3]; }; bodyDef.angle = (_arg5 / (180 / Math.PI)); _local9.rotation = (bodyDef.angle * (180 / Math.PI)); body = m_world.CreateBody(bodyDef); body.CreateShape(boxDef); body.SetMassFromShapes(); addChild(_local9); kvadmcar.push(_local9); kvadobjar.push(body); } public function selmen1click(_arg1:Event):void{ SubmitScore(allscore); if (dazvuk){ zvv4s.play(); }; } public function butm3click(_arg1:Event):void{ trace("yes"); if (dazvuk){ zvv4s.play(); }; } public function selOver(_arg1:Event):void{ _arg1.target.parent.filters = [glowf]; } public function selmcOver(_arg1:Event):void{ var _local2:MovieClip; _arg1.target.alpha = 1; if (estpower > 0){ lasgen = true; if (!space_pressed){ cursorm.gotoAndStop(2); }; if (space_pressed){ cursorm.gotoAndStop(3); }; }; } public function real_pixels(_arg1:int){ return (((_arg1 / pixels_in_a_meter) / 2)); } public function create_kvadn(_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){ _local9.buttonMode = true; _local9.addEventListener(MouseEvent.CLICK, selmcClick); _local9.addEventListener(MouseEvent.MOUSE_OVER, selmcOver); _local9.addEventListener(MouseEvent.MOUSE_OUT, selmcOut); }; 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(); parent.parent.addChild(_local9); all_mcsmen.push(_local9); all_objmen.push(body); } public function key_down(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == 32){ space_pressed = true; if (cursorm.currentFrame == 2){ cursorm.gotoAndStop(3); }; }; } public function lasd(_arg1:Event):void{ var _local2:GlowFilter; var _local3:GlowFilter; _arg1.target.ln = (_arg1.target.ln - 0.05); _local2 = new GlowFilter(0xFF0000, _arg1.target.ln, 10, 10, 1, 3, false, false); _local3 = new GlowFilter(0xFF0000, _arg1.target.ln, 10, 10, 1, 3, true, false); _arg1.target.filters = [glowf3, _local2, _local3]; if (_arg1.target.ln <= 0){ _arg1.target.removeEventListener(Event.ENTER_FRAME, lasd); }; } public function key_up(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == 32){ space_pressed = false; if (cursorm.currentFrame == 3){ cursorm.gotoAndStop(2); }; }; } public function onAnimTimer(_arg1:TimerEvent){ var _local2:*; var _local3:int; _local2 = 0; while (_local2 < chickmcar.length) { if (_local2 != undefined){ _local3 = random(1, 3); if (_local3 == 1){ chickmcar[_local2].head.gotoAndPlay(6); }; if (_local3 == 2){ chickmcar[_local2].head.gotoAndPlay(26); }; if (_local3 == 3){ chickmcar[_local2].head.gotoAndPlay(46); }; }; _local2++; }; } public function textCreate():void{ format1.font = myfont.fontName; format1.color = "0xffffff"; format1.size = 16; gmenu = new MovieClip(); gmenu.x = 0; gmenu.y = 0; parent.addChild(gmenu); menupanm = new menupan(); menupanm.x = 20; menupanm.y = 20; parent.addChild(menupanm); menupanm.resbtn.addEventListener(MouseEvent.CLICK, resBtnEv); menupanm.mmbtn.addEventListener(MouseEvent.CLICK, closeBtn); glmenu = true; selectm = new selectmc(); selectm.x = (0 + (selectm.width / 2)); selectm.y = (0 + (selectm.height / 2)); parent.addChild(selectm); selectm.scorebtn.addEventListener(MouseEvent.CLICK, selmen1click); selectm.menubtn.addEventListener(MouseEvent.CLICK, closeBtn); menum = new menumc(); menum.x = (menum.width / 2); menum.y = (menum.height / 2); parent.addChild(menum); menum.ngb.addEventListener(MouseEvent.CLICK, butm1click); menum.conb.addEventListener(MouseEvent.CLICK, butm1click); menum.higb.visible = false; menum.amb.addEventListener(MouseEvent.CLICK, ambclick); awardm = new awardmc(); awardm.x = (0 + (awardm.width / 2)); awardm.y = (0 + (awardm.height / 2)); parent.addChild(awardm); awardm.menubtn.addEventListener(MouseEvent.CLICK, closeBtn); awardm.visible = false; if (mySharedObject.data["aw1"] == undefined){ awardm.aw1.gotoAndStop(1); }; if (mySharedObject.data["aw2"] == undefined){ awardm.aw2.gotoAndStop(1); }; if (mySharedObject.data["aw3"] == undefined){ awardm.aw3.gotoAndStop(1); }; if (mySharedObject.data["aw4"] == undefined){ awardm.aw4.gotoAndStop(1); }; if (mySharedObject.data["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); }; exitbtn = new exitmc(); exitbtn.x = (617 + (exitbtn.width / 2)); exitbtn.y = (480 + (exitbtn.height / 2)); exitbtn.filters = [glow]; parent.addChild(exitbtn); btnbtnmc = new btnbtn(); btnbtnmc.x = exitbtn.x; btnbtnmc.y = exitbtn.y; btnbtnmc.buttonMode = true; parent.addChild(btnbtnmc); btnbtnmc.addEventListener(MouseEvent.CLICK, closeBtn); btnbtnmc.addEventListener(MouseEvent.MOUSE_OVER, btnOver); btnbtnmc.addEventListener(MouseEvent.MOUSE_OUT, btnOut); exitbtn.visible = false; btnbtnmc.visible = false; soundbtn = new soundmc(); soundbtn.x = (660 + (soundbtn.width / 2)); soundbtn.y = (20 + (soundbtn.height / 2)); soundbtn.filters = [glow]; soundbtn.gotoAndStop(1); parent.addChild(soundbtn); btnbtnmc2 = new btnbtn(); btnbtnmc2.x = soundbtn.x; btnbtnmc2.y = soundbtn.y; btnbtnmc2.buttonMode = true; parent.addChild(btnbtnmc2); btnbtnmc2.addEventListener(MouseEvent.CLICK, soundBtnDa); btnbtnmc2.addEventListener(MouseEvent.MOUSE_OVER, btnOver); btnbtnmc2.addEventListener(MouseEvent.MOUSE_OUT, btnOut); musicbtn = new musicmc(); musicbtn.x = (625 + (musicbtn.width / 2)); musicbtn.y = (20 + (musicbtn.height / 2)); musicbtn.filters = [glow]; musicbtn.gotoAndStop(1); parent.addChild(musicbtn); btnbtnmc3 = new btnbtn(); btnbtnmc3.x = musicbtn.x; btnbtnmc3.y = musicbtn.y; btnbtnmc3.buttonMode = true; parent.addChild(btnbtnmc3); btnbtnmc3.addEventListener(MouseEvent.CLICK, musicBtnDa); btnbtnmc3.addEventListener(MouseEvent.MOUSE_OVER, btnOver); btnbtnmc3.addEventListener(MouseEvent.MOUSE_OUT, btnOut); fonm = new fonmc(); fonm.x = (fonm.width / 2); fonm.y = (fonm.height / 2); addChild(fonm); scoreTimer = new Timer(1000); scoreTimer.addEventListener(TimerEvent.TIMER, onScoreTimer); killTimer = new Timer(200); killTimer.addEventListener(TimerEvent.TIMER, onKillTimer); animTimer = new Timer(2000); animTimer.addEventListener(TimerEvent.TIMER, onAnimTimer); mySharedObject.data.lev0 = "100"; exitbtn.visible = false; stage.addEventListener(MouseEvent.MOUSE_DOWN, GetBodyAtMouse); cursorm = new cursormc(); cursorm.mouseEnabled = false; cursorm.mouseChildren = false; cursorm.startDrag(true); parent.parent.addChild(cursorm); stage.addEventListener(MouseEvent.CLICK, mouseClick); stage.addEventListener(Event.MOUSE_LEAVE, mouseLeave); blendm = new blendmc(); blendm.x = 0; blendm.y = 0; parent.parent.addChild(blendm); blendm.visible = false; menTimer = new Timer(500); menTimer.addEventListener(TimerEvent.TIMER, onmenTimer); menTimer.start(); create_palkan(-26, 440, 100, 10, 10, 0, 3, 0); create_kvadn(75, 450, 20, 20, 0, 0, 1, 0); create_kvadn(95, 450, 20, 20, 0, 0, 1, 0); create_kvadn(115, 450, 20, 20, 0, 0, 1, 0); create_kvadn(135, 450, 20, 20, 0, 0, 1, 0); create_kvadn(155, 450, 20, 20, 0, 0, 1, 0); create_kvadn(175, 450, 20, 20, 0, 0, 1, 0); create_kvadn(195, 450, 20, 20, 0, 0, 1, 0); create_kvadn(215, 450, 20, 20, 0, 0, 1, 0); create_kvadn(235, 450, 20, 20, 0, 0, 1, 0); create_kvadn(0xFF, 450, 20, 20, 0, 0, 1, 0); create_kvadn(275, 450, 20, 20, 0, 0, 1, 0); create_kvadn(295, 450, 20, 20, 0, 0, 1, 0); create_palkan(295, 470, 80, 10, 0, 0, 3, 0); create_palkan(315, 460, 80, 10, 0, 0, 1, 0); menum.mgb.addEventListener(MouseEvent.MOUSE_DOWN, blMenu); menum.bl.addEventListener(MouseEvent.MOUSE_DOWN, blMenu); menum.bl.buttonMode = true; menupanm.bl.addEventListener(MouseEvent.MOUSE_DOWN, blGame); menupanm.bl.buttonMode = true; selectm.bl.addEventListener(MouseEvent.MOUSE_DOWN, blSelect); selectm.bl.buttonMode = true; } private function onServicesReady(_arg1:Event):void{ trace("SpilGamesServices are ready\n"); } public function selOut(_arg1:Event):void{ _arg1.target.parent.filters = []; } public function create_chickn():void{ var _local1:*; _local1 = new gnezd3(); _local1.gotoAndStop(1); bodyDef = new b2BodyDef(); _local1.x = (random(-50, 20) + (_local1.width / 2)); _local1.y = (random(-120, -80) + (_local1.height / 2)); _local1.width = random(20, 40); _local1.height = _local1.width; bodyDef.position.x = (_local1.x / pixels_in_a_meter); bodyDef.position.y = (_local1.y / pixels_in_a_meter); circleDef = new b2CircleDef(); circleDef.radius = ((_local1.width / 2) / pixels_in_a_meter); circleDef.density = 1; circleDef.friction = 1; circleDef.restitution = 0; bodyDef.userData = _local1; body = m_world.CreateBody(bodyDef); body.CreateShape(circleDef); body.SetMassFromShapes(); parent.parent.addChild(_local1); all_mcsmen.push(_local1); all_objmen.push(body); } public function 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){ _local9.addEventListener(MouseEvent.MOUSE_DOWN, selmcClick); _local9.addEventListener(MouseEvent.MOUSE_OVER, selmcOver); _local9.addEventListener(MouseEvent.MOUSE_OUT, selmcOut); }; 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; if (_arg8 == 1){ bodyDef.userData.dada = true; _local9.filters = [glowf3]; }; bodyDef.angle = (_arg5 / (180 / Math.PI)); _local9.rotation = (bodyDef.angle * (180 / Math.PI)); body = m_world.CreateBody(bodyDef); body.CreateShape(circleDef); body.SetMassFromShapes(); addChild(_local9); kvadmcar.push(_local9); kvadobjar.push(body); } public function selectBtnEv(_arg1:MouseEvent):void{ menum.visible = false; selectm.visible = true; glmenu = true; btnbtnmc.visible = false; allscore = 0; if (damusic){ scm.stop(); scm = zvmuss.play(0, int.MAX_VALUE); }; selMen(); } public function soundBtnDa(_arg1:MouseEvent):void{ if (soundbtn.currentFrame == 1){ soundbtn.gotoAndStop(2); dazvuk = false; } else { if (soundbtn.currentFrame == 2){ soundbtn.gotoAndStop(1); dazvuk = true; }; }; } public function awardTest():void{ selMen(); if (mySharedObject.data["aw1"] == undefined){ if (mySharedObject.data["lev10"] != undefined){ awardm.aw1.gotoAndStop(2); mySharedObject.data["aw1"] = "da"; SubmitAward(1); }; }; 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"; SubmitAward(2); }; }; if (mySharedObject.data["aw2"] != undefined){ awardm.aw2.gotoAndStop(2); }; if (mySharedObject.data["aw3"] == undefined){ if (allscore >= 2000){ awardm.aw3.gotoAndStop(2); mySharedObject.data["aw3"] = "da"; SubmitAward(3); }; }; if (mySharedObject.data["aw3"] != undefined){ awardm.aw3.gotoAndStop(2); }; if (mySharedObject.data["aw4"] == undefined){ if (allscore >= 10000){ awardm.aw4.gotoAndStop(2); mySharedObject.data["aw4"] = "da"; SubmitAward(4); }; }; if (mySharedObject.data["aw4"] != undefined){ awardm.aw4.gotoAndStop(2); }; mySharedObject.flush(); } public function killMeDa(_arg1:MovieClip):void{ _arg1.addFrameScript((_arg1.totalFrames - 1), null); parent.removeChild(_arg1); } public function deadhit():void{ var _local1:uint; var _local2:uint; var _local3:uint; _local1 = 0; while (_local1 < kvadmcar.length) { if (kvadmcar[_local1] != undefined){ if (kvadmcar[_local1].dead == true){ m_world.DestroyBody(kvadobjar[_local1]); removeChild(kvadmcar[_local1]); kvadmcar.splice(_local1, 1); kvadobjar.splice(_local1, 1); }; }; _local1++; }; _local2 = 0; while (_local2 < chickmcar.length) { if (chickmcar[_local2] != undefined){ if (chickmcar[_local2].dead == true){ if (dazvuk){ zvv1s.play(); }; blendm.visible = true; blendm.blendMode = "overlay"; blendm.alpha = 0.8; blendm.addEventListener(Event.ENTER_FRAME, blendef); addExplosion(chickmcar[_local2].x, chickmcar[_local2].y, 10, 60, 200, 75); m_world.DestroyBody(chickobjar[_local2]); removeChild(chickmcar[_local2]); chickmcar.splice(_local2, 1); chickobjar.splice(_local2, 1); estvrag--; }; }; _local2++; }; _local3 = 0; while (_local3 < gnezmcar.length) { if (gnezmcar[_local3] != undefined){ if (gnezmcar[_local3].dead == true){ if (dazvuk){ zvv2s.play(); }; addExplosion(gnezmcar[_local3].x, gnezmcar[_local3].y, 10, 60, 200, 75); m_world.DestroyBody(gnezobjar[_local3]); removeChild(gnezmcar[_local3]); gnezmcar.splice(_local3, 1); gnezobjar.splice(_local3, 1); killTimer.start(); }; }; _local3++; }; } public function blendef(_arg1:Event):void{ _arg1.target.alpha = (_arg1.target.alpha - 0.03); if (_arg1.target.alpha <= 0){ _arg1.target.removeEventListener(Event.ENTER_FRAME, blendef); _arg1.target.visible = false; }; } public function blMenu(_arg1:MouseEvent):void{ var _local2:String; _local2 = SpilGame.getMoreGamesLink("MainMenuScreen"); navigateToURL(new URLRequest(_local2), "_balnk"); } public function random(_arg1:Number, _arg2:Number):Number{ return ((Math.round((Math.random() * (_arg2 - _arg1))) + _arg1)); } public function musicBtnDa(_arg1:MouseEvent):void{ if (musicbtn.currentFrame == 1){ scm.stop(); musicbtn.gotoAndStop(2); damusic = false; } else { if (musicbtn.currentFrame == 2){ if ((((selectm.visible == true)) || ((menum.visible == true)))){ scm = zvmuss.play(0, int.MAX_VALUE); }; if ((((selectm.visible == false)) && ((menum.visible == false)))){ scm = zvmuss2.play(0, int.MAX_VALUE); }; musicbtn.gotoAndStop(1); damusic = true; }; }; } public function killSensor():void{ m_world.DestroyBody(listsens[0]); listsens.shift(); } public function selbtnClick(_arg1:Event):void{ if (((!((mySharedObject.data[("lev" + _arg1.target.clev)] == undefined))) || ((((mySharedObject.data[("lev" + (_arg1.target.clev + 1))] == undefined)) && (!((mySharedObject.data[("lev" + (_arg1.target.clev - 1))] == undefined))))))){ menum.visible = false; selectm.visible = false; tlevel = _arg1.target.clev; glmenu = false; scm.stop(); if (damusic){ scm = zvmuss2.play(0, int.MAX_VALUE); }; musicbtn.visible = true; soundbtn.visible = true; worldClear(); }; if (dazvuk){ zvv4s.play(); }; menupanm.bl.x = (10 + (menupanm.bl.width / 2)); menupanm.bl.y = (10 + (menupanm.bl.height / 2)); } public function Update(_arg1:Event):void{ var _local2:b2Body; var _local3:*; var _local4:b2Contact; var _local5:*; var _local6:*; var _local7:int; var _local8:int; var _local9:b2Vec2; var _local10:int; var _local11:int; var _local12:b2Vec2; m_world.Step((1 / 30), 10); deadhit(); hitgnez(); endLevel(); textUpdate(); menuhit(); if (m_world.m_contactList){ _local3 = 10; _local4 = m_world.m_contactList; _local5 = _local4.GetShape2().GetBody(); _local6 = _local4.GetShape1().GetBody(); if (_local5.GetUserData().name == "groundsensor"){ _local7 = 2; _local8 = _local5.GetUserData().radnum; _local9 = new b2Vec2(((_local6.GetWorldCenter().x - _local5.GetWorldCenter().x) * (_local8 / _local7)), ((_local6.GetWorldCenter().y - _local5.GetWorldCenter().y) * (_local8 / _local7))); _local6.ApplyImpulse(_local9, _local6.GetPosition()); }; if (_local6.GetUserData().name == "groundsensor"){ _local10 = 2; _local11 = _local6.GetUserData().radnum; _local12 = new b2Vec2(((_local5.GetWorldCenter().x - _local6.GetWorldCenter().x) * (_local11 / _local10)), ((_local5.GetWorldCenter().y - _local6.GetWorldCenter().y) * (_local11 / _local10))); _local5.ApplyImpulse(_local12, _local5.GetPosition()); }; }; _local2 = m_world.m_bodyList; while (_local2) { if ((((_local2.m_userData is Sprite)) && (!(_local2.IsStatic())))){ if (_local2.m_userData.head != undefined){ _local2.m_userData.x = (_local2.GetPosition().x * pixels_in_a_meter); _local2.m_userData.y = (_local2.GetPosition().y * pixels_in_a_meter); _local2.m_userData.rotation = (_local2.GetAngle() * (180 / Math.PI)); _local2.m_userData.head.rotation = (_local2.m_userData.rotation * -1); _local2.m_userData.live.rotation = (_local2.m_userData.rotation * -1); } else { _local2.m_userData.x = (_local2.GetPosition().x * pixels_in_a_meter); _local2.m_userData.y = (_local2.GetPosition().y * pixels_in_a_meter); _local2.m_userData.rotation = (_local2.GetAngle() * (180 / Math.PI)); }; }; _local2 = _local2.m_next; }; } 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(); circleDef.radius = (_arg3 / pixels_in_a_meter); circleDef.density = 0; circleDef.isSensor = true; bodyDef.userData = new MovieClip(); bodyDef.userData.radnum = _arg3; bodyDef.userData.name = "groundsensor"; body = m_world.CreateBody(bodyDef); body.CreateShape(circleDef); body.SetMassFromShapes(); listsens.push(body); } public function textUpdate():void{ menupanm.lvltxt.text = (tlevel + "/30"); menupanm.scoretxt.text = scoreint; menupanm.powertxt.text = ((estpower + " / ") + allpower); menupanm.powerline.line.width = ((300 * estpower) / allpower); } function mouseLeave(_arg1:Event):void{ cursorm.visible = false; stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseBack); } private function init():void{ if (tlevel == 1){ scoreint = 1000; allpower = 5; estpower = allpower; create_kvad(100, 410, 20, 20, 0, 0, 1, 0); create_kvad(120, 410, 20, 20, 0, 0, 1, 0); create_kvad(140, 410, 20, 20, 0, 0, 1, 0); create_kvad(160, 410, 20, 20, 0, 0, 1, 0); create_kvad(180, 410, 20, 20, 0, 0, 1, 0); create_chick(130, 370, 40, 40, 0, 0, 1, 0); create_palka(30, 225, 80, 20, 0, 0, 3, 1); create_palka(200, 420, 80, 10, 0, 0, 3, 0); create_gnezdo(500, 400, 20, 20, 0, 0, 0, 0); create_palka(280, 420, 80, 10, 0, 0, 3, 0); create_palka(360, 420, 80, 10, 0, 0, 3, 0); create_gnezdo(90, 195, 30, 30, 0, 0, 0, 0); create_palka(440, 420, 80, 10, 0, 0, 3, 0); create_triangle(520, 390, 30, 30, 0, 0, 1, 0); create_palka(520, 420, 30, 10, 0, 0, 3, 0); fonm.gotoAndStop(5); estvrag = 1; }; if (tlevel == 2){ scoreint = 1000; allpower = 15; estpower = allpower; create_triangle(470, 260, 30, 30, 0, 0, 1, 0); create_kvad(480, 290, 20, 20, 0, 0, 1, 0); create_kvad(460, 290, 20, 20, 0, 0, 1, 0); create_kvad(440, 290, 20, 20, 0, 0, 1, 0); create_circ(355, 285, 30, 30, 0, 0, 2, 1); create_chick(495, 200, 40, 40, 0, 0, 1, 0); create_palka(490, 240, 80, 10, 0, 0, 3, 0); create_circ(550, 95, 30, 30, 0, 0, 1, 0); create_kvad(565, 125, 20, 20, 0, 0, 1, 1); create_gnezdo(405, 385, 20, 20, 0, 0, 0, 0); create_palka(365, 405, 80, 10, 0, 0, 3, 0); create_palka(125, 405, 80, 20, 0, 0, 3, 1); create_kvad(165, 205, 20, 20, 0, 0, 1, 0); create_kvad(185, 205, 20, 20, 0, 0, 1, 0); create_kvad(205, 205, 20, 20, 0, 0, 1, 0); create_circ(225, 205, 20, 20, 0, 0, 4, 0); create_circ(145, 205, 20, 20, 0, 0, 4, 0); create_kvad(420, 290, 20, 20, 0, 0, 1, 0); create_circ(55, 265, 40, 40, 0, 0, 2, 1); create_gnezdo(145, 375, 30, 30, 0, 0, 0, 0); fonm.gotoAndStop(6); estvrag = 1; }; if (tlevel == 3){ scoreint = 1000; allpower = 10; estpower = allpower; create_gnezdo(385, 400, 30, 30, 0, 0, 0, 0); create_gnezdo(420, 400, 30, 30, 0, 0, 0, 0); create_chick(265, 280, 40, 40, 0, 0, 1, 1); create_kvad(50, 435, 600, 20, 0, 0, 1, 0); create_palka(115, 325, 200, 10, 0, 0, 1, 0); create_kvad(205, 335, 20, 100, 0, 0, 1, 0); create_kvad(120, 285, 40, 40, 0, 0, 5, 1); create_kvad(630, 335, 20, 100, 0, 0, 1, 0); create_gnezdo(350, 400, 30, 30, 0, 0, 0, 0); create_gnezdo(370, 370, 30, 30, 0, 0, 0, 0); fonm.gotoAndStop(3); estvrag = 1; }; if (tlevel == 4){ scoreint = 1000; allpower = 10; estpower = allpower; create_gnezdo(240, 370, 30, 30, 0, 0, 0, 0); create_gnezdo(420, 400, 30, 30, 0, 0, 0, 0); create_chick(235, 275, 40, 40, 0, 0, 1, 1); create_kvad(50, 435, 600, 20, 0, 0, 1, 0); create_kvad(200, 390, 40, 40, 0, 0, 5, 1); create_kvad(630, 135, 20, 300, 0, 0, 1, 0); create_kvad(50, 135, 20, 300, 0, 0, 1, 0); create_kvad(270, 390, 40, 40, 0, 0, 5, 1); create_kvad(200, 345, 40, 40, 0, 0, 5, 1); create_kvad(270, 345, 40, 40, 0, 0, 5, 1); create_kvad(50, 115, 600, 20, 0, 0, 1, 0); fonm.gotoAndStop(4); estvrag = 1; }; if (tlevel == 5){ scoreint = 1000; allpower = 10; estpower = allpower; create_gnezdo(200, 400, 30, 30, 0, 0, 0, 0); create_gnezdo(170, 400, 30, 30, 0, 0, 0, 0); create_chick(580, 270, 40, 40, 0, 0, 1, 1); create_kvad(50, 435, 600, 20, 0, 0, 1, 0); create_kvad(630, 135, 20, 300, 0, 0, 1, 0); create_kvad(50, 135, 20, 300, 0, 0, 1, 0); create_kvad(50, 115, 600, 20, 0, 0, 1, 0); create_palka(430, 315, 200, 20, 0, 0, 1, 1); create_kvad(600, 335, 20, 100, 0, 0, 1, 0); create_kvad(520, 335, 20, 100, 0, 0, 1, 0); create_palka(480, 220, 80, 10, 0, 0, 3, 1); create_kvad(480, 175, 40, 40, 0, 0, 5, 0); create_gnezdo(185, 370, 30, 30, 0, 0, 0, 0); create_gnezdo(230, 400, 30, 30, 0, 0, 0, 0); create_gnezdo(215, 370, 30, 30, 0, 0, 0, 0); fonm.gotoAndStop(1); estvrag = 1; }; if (tlevel == 6){ scoreint = 1000; allpower = 10; estpower = allpower; create_gnezdo(595, 340, 30, 30, 0, 0, 0, 0); create_chick(560, 270, 40, 40, 0, 0, 1, 1); create_kvad(630, 135, 20, 300, 0, 0, 1, 0); create_kvad(50, 135, 20, 300, 0, 0, 1, 0); create_kvad(50, 115, 600, 20, 0, 0, 1, 0); create_palka(405, 310, 200, 20, 0, 0, 1, 1); create_gnezdo(70, 360, 30, 30, 0, 0, 0, 0); create_kvad(465, 330, 20, 60, 0, 0, 5, 1); create_kvad(530, 330, 20, 60, 0, 0, 5, 1); create_circ(285, 150, 50, 50, 0, 0, 1, 0); create_palka(235, 190, 80, 10, 0, 0, 3, 1); create_palka(71, 390, 259, 20, 0, 0, 3, 0); create_palka(50, 435, 600, 20, 0, 0, 3, 0); create_palka(380, 390, 250, 20, 0, 0, 3, 0); fonm.gotoAndStop(2); estvrag = 1; }; if (tlevel == 7){ scoreint = 1000; allpower = 7; estpower = allpower; create_chick(125, 315, 40, 40, 0, 0, 1, 0); create_palka(55, 455, 600, 20, 0, 0, 3, 0); create_palka(35, 25, 20, 450, 0, 0, 5, 1); create_palka(655, 25, 20, 450, 0, 0, 5, 0); create_palka(55, 25, 600, 20, 0, 0, 3, 0); create_palka(105, 355, 80, 10, 0, 0, 1, 0); create_palka(105, 365, 10, 80, 0, 0, 4, 1); create_palka(175, 365, 10, 80, 0, 0, 4, 0); create_palka(185, 355, 80, 10, 0, 0, 1, 0); create_palka(185, 365, 10, 50, 0, 0, 4, 0); create_palka(0xFF, 365, 10, 50, 0, 0, 4, 0); create_palka(265, 355, 160, 10, 0, 0, 1, 0); create_palka(415, 365, 10, 80, 0, 0, 4, 1); create_palka(265, 365, 10, 50, 0, 0, 4, 0); create_kvad(425, 435, 20, 20, 0, 0, 1, 0); create_kvad(425, 415, 20, 20, 0, 0, 1, 0); create_kvad(485, 435, 20, 20, 0, 0, 1, 0); create_kvad(485, 415, 20, 20, 0, 0, 1, 0); create_gnezdo(450, 385, 30, 30, 0, 0, 0, 0); create_gnezdo(60, 415, 30, 30, 0, 0, 0, 0); create_kvad(425, 395, 20, 20, 0, 0, 1, 0); create_kvad(485, 395, 20, 20, 0, 0, 1, 0); create_gnezdo(450, 420, 30, 30, 0, 0, 0, 0); fonm.gotoAndStop(3); estvrag = 1; }; if (tlevel == 8){ scoreint = 1000; allpower = 7; estpower = allpower; create_chick(75, 320, 40, 40, 0, 0, 1, 0); create_palka(55, 455, 600, 20, 0, 0, 3, 0); create_palka(35, 25, 20, 450, 0, 0, 5, 1); create_palka(655, 25, 20, 450, 0, 0, 5, 0); create_palka(55, 25, 600, 20, 0, 0, 3, 0); create_palka(75, 375, 10, 80, 0, 0, 4, 1); create_palka(110, 375, 10, 80, 0, 0, 4, 0); create_palka(55, 365, 80, 10, 0, 0, 1, 0); create_palka(135, 365, 80, 10, 0, 0, 1, 0); create_palka(145, 375, 10, 80, 0, 0, 4, 0); create_palka(180, 375, 10, 80, 0, 0, 4, 0); create_palka(555, 118, 100, 10, -24, 0, 3, 1); create_triangle(540, 130, 30, 30, 0, 0, 1, 1); create_palka(400, 200, 200, 10, 0, 0, 1, 0); create_palka(495, 210, 10, 200, 0, 0, 4, 1); create_kvad(510, 435, 20, 20, 0, 0, 1, 1); create_gnezdo(575, 90, 30, 30, 0, 0, 0, 0); create_gnezdo(545, 105, 30, 30, 0, 0, 0, 0); create_kvad(510, 415, 20, 20, 0, 0, 1, 1); create_palka(190, 375, 200, 10, 0, 0, 1, 1); create_palka(310, 380, 10, 80, 0, 0, 4, 1); create_gnezdo(605, 75, 30, 30, 0, 0, 0, 0); create_gnezdo(625, 45, 30, 30, 0, 0, 0, 0); fonm.gotoAndStop(4); estvrag = 1; }; if (tlevel == 9){ scoreint = 1000; allpower = 4; estpower = allpower; create_chick(365, 320, 40, 40, 0, 0, 1, 0); create_palka(55, 455, 600, 20, 0, 0, 3, 0); create_palka(35, 25, 20, 450, 0, 0, 5, 1); create_palka(655, 25, 20, 450, 0, 0, 5, 0); create_palka(55, 25, 600, 20, 0, 0, 3, 0); create_palka(380, 365, 10, 80, 0, 0, 4, 1); create_kvad(280, 435, 20, 20, 0, 0, 1, 0); create_kvad(280, 415, 20, 20, 0, 0, 1, 0); create_kvad(280, 395, 20, 20, 0, 0, 1, 0); create_gnezdo(245, 420, 30, 30, 0, 0, 0, 0); create_gnezdo(210, 420, 30, 30, 0, 0, 0, 0); fonm.gotoAndStop(1); estvrag = 1; }; if (tlevel == 10){ scoreint = 1000; allpower = 8; estpower = allpower; create_chick(445, 50, 40, 40, 0, 0, 1, 0); create_palka(55, 455, 600, 20, 0, 0, 3, 0); create_palka(35, 25, 20, 450, 0, 0, 5, 1); create_palka(655, 25, 20, 450, 0, 0, 5, 0); create_palka(55, 25, 600, 20, 0, 0, 3, 0); create_palka(445, 375, 10, 80, 0, 0, 4, 1); create_palka(635, 100, 10, 80, 0, 0, 4, 0); create_palka(570, 90, 10, 80, 0, 0, 4, 0); create_palka(535, 90, 10, 80, 0, 0, 4, 0); create_palka(455, 180, 200, 20, 0, 0, 3, 0); create_palka(495, 90, 10, 80, 0, 0, 4, 0); create_palka(455, 100, 20, 80, 0, 0, 4, 0); create_circ(625, 70, 30, 30, 0, 0, 1, 1); create_palka(375, 340, 80, 10, 0, 0, 1, 0); create_palka(375, 355, 10, 100, 0, 0, 4, 1); create_gnezdo(230, 425, 30, 30, 0, 0, 0, 1); create_gnezdo(625, 425, 30, 30, 0, 0, 0, 1); fonm.gotoAndStop(2); estvrag = 1; }; if (tlevel == 11){ scoreint = 1000; allpower = 3; estpower = allpower; create_kvad(40, 450, 600, 20, 0, 0, 1, 0); create_kvad(20, 70, 20, 399.95, 0, 0, 1, 0); create_kvad(40, 70, 600, 20, 0, 0, 1, 0); create_kvad(640, 70, 20, 399.95, 0, 0, 1, 0); create_palka(40, 370, 10, 80, 0, 0, 4, 0); create_palka(110, 370, 10, 80, 0, 0, 4, 1); create_palka(40, 360, 80, 10, 0, 0, 1, 0); create_palka(135, 370, 10, 80, 0, 0, 4, 0); create_palka(155, 370, 10, 80, 0, 0, 4, 0); create_chick(60, 315, 40, 40, 0, 0, 1, 1); create_palka(175, 345, 10, 100, 0, 0, 4, 1); create_palka(195, 370, 10, 80, 0, 0, 4, 0); create_palka(215, 370, 10, 80, 0, 0, 4, 0); create_palka(235, 350, 10, 80, 0, 0, 4, 0); create_palka(0xFF, 370, 10, 80, 0, 0, 4, 0); create_palka(275, 370, 10, 80, 0, 0, 4, 0); create_gnezdo(310, 400, 50, 50, 0, 0, 0, 0); create_chick(565, 135, 40, 40, 0, 0, 1, 0); create_gnezdo(610, 420, 30, 30, 0, 0, 0, 0); create_gnezdo(610, 390, 30, 30, 0, 0, 0, 0); create_circ(325, 280, 30, 30, 0, 0, 1, 0); create_palka(335, 315, 10, 80, 0, 0, 4, 0); create_circ(325, 195, 30, 30, 0, 0, 1, 0); fonm.gotoAndStop(3); estvrag = 2; }; if (tlevel == 12){ scoreint = 1000; allpower = 15; estpower = allpower; create_palka(120, 335, 80, 10, 0, 0, 3, 0); create_palka(200, 335, 80, 10, 0, 0, 3, 0); create_palka(280, 335, 80, 10, 0, 0, 3, 0); create_palka(376, 398, 80, 10, -25, 0, 3, 0); create_palka(450, 335, 10, 80, 0, 0, 5, 0); create_palka(460, 335, 80, 10, 0, 0, 3, 0); create_palka(540, 335, 80, 10, 0, 0, 3, 0); create_palka(620, 265, 10, 80, 0, 0, 5, 0); create_palka(620, 0xFF, 80, 10, 0, 0, 3, 0); create_kvad(360, 325, 20, 20, 0, 0, 1, 0); create_circ(305, 290, 30, 30, 0, 0, 1, 1); create_chick(300, 250, 40, 40, 0, 0, 1, 0); create_palka(-8, 387, 80, 10, 45, 0, 3, 0); create_palka(60, 415, 80, 10, 0, 0, 3, 0); create_palka(140, 415, 80, 10, 0, 0, 3, 0); create_palka(220, 415, 80, 10, 0, 0, 3, 0); create_palka(300, 415, 80, 10, 0, 0, 3, 0); create_gnezdo(95, 275, 50, 50, 0, 0, 0, 1); create_chick(55, 375, 40, 40, 0, 0, 1, 1); create_gnezdo(355, 295, 30, 30, 0, 0, 0, 0); create_gnezdo(585, 305, 30, 30, 0, 0, 0, 0); create_palka(0, 280, 10, 80, 0, 0, 5, 1); fonm.gotoAndStop(4); estvrag = 2; }; if (tlevel == 13){ scoreint = 1000; allpower = 15; estpower = allpower; create_palka(55, 70, 600, 10, 0, 0, 3, 0); create_palka(55, 460, 600, 10, 0, 0, 3, 0); create_palka(655, 70, 10, 400, 0, 0, 5, 0); create_palka(45, 70, 10, 400, 0, 0, 5, 0); create_chick(335, 110, 40, 40, 0, 0, 1, 0); create_palka(290, 380, 10, 80, 0, 0, 4, 0); create_palka(270, 380, 10, 80, 0, 0, 4, 0); create_palka(250, 380, 10, 80, 0, 0, 4, 0); create_chick(60, 300, 40, 40, 0, 0, 1, 0); create_circ(340, 430, 30, 30, 0, 0, 1, 0); create_palka(315, 420, 80, 10, 0, 0, 1, 0); create_palka(55, 370, 80, 10, 0, 0, 1, 0); create_palka(55, 380, 10, 80, 0, 0, 4, 0); create_palka(130, 380, 10, 80, 0, 0, 4, 1); create_gnezdo(605, 415, 30, 30, 0, 0, 0, 0); create_gnezdo(95, 400, 40, 40, 0, 0, 0, 0); create_circ(95, 430, 30, 30, 0, 0, 1, 0); create_circ(65, 430, 30, 30, 0, 0, 1, 0); create_gnezdo(420, 410, 50, 50, 0, 0, 0, 0); fonm.gotoAndStop(1); estvrag = 2; }; if (tlevel == 14){ scoreint = 1000; allpower = 6; estpower = allpower; create_palka(85, 395, 500, 10, 0, 0, 3, 0); create_palka(85, 315, 10, 80, 0, 0, 5, 0); create_palka(575, 315, 10, 80, 0, 0, 5, 0); create_palka(571, 298, 80, 10, -25, 0, 3, 0); create_palka(15, 305, 80, 10, 0, 0, 3, 0); create_palka(640, 210, 10, 80, 0, 0, 5, 0); create_palka(15, 230, 10, 80, 0, 0, 5, 0); create_chick(95, 275, 40, 40, 0, 0, 1, 0); create_gnezdo(25, 0xFF, 50, 50, 0, 0, 0, 1); create_chick(535, 355, 40, 40, 0, 0, 1, 0); create_palka(15, 150, 10, 80, 0, 0, 4, 0); create_palka(110, 315, 10, 80, 0, 0, 4, 1); create_palka(15, 70, 10, 80, 0, 0, 4, 0); create_gnezdo(305, 210, 30, 30, 0, 0, 0, 1); create_palka(381, 378, 80, 10, 25, 0, 3, 0); create_palka(312, 350, 80, 10, 17, 0, 3, 0); fonm.gotoAndStop(2); estvrag = 2; }; if (tlevel == 15){ scoreint = 1000; allpower = 15; estpower = allpower; create_palka(100, 430, 600, 10, 0, 0, 3, 0); create_palka(37, 402, 80, 10, 45, 0, 3, 0); create_palka(690, 350, 10, 80, 0, 0, 5, 0); create_palka(690, 270, 10, 80, 0, 0, 5, 0); create_palka(135, 370, 80, 10, 0, 0, 3, 0); create_palka(215, 370, 80, 10, 0, 0, 3, 0); create_palka(295, 370, 80, 10, 0, 0, 3, 0); create_palka(365, 290, 10, 80, 0, 0, 5, 0); create_palka(440, 350, 10, 80, 0, 0, 5, 0); create_palka(440, 340, 80, 10, 0, 0, 3, 0); create_palka(315, 280, 100, 10, 0, 0, 1, 0); create_chick(440, 300, 40, 40, 0, 0, 1, 0); create_gnezdo(340, 250, 30, 30, 0, 0, 0, 1); create_gnezdo(370, 250, 30, 30, 0, 0, 0, 1); create_palka(45, 305, 10, 80, 0, 0, 5, 0); create_palka(45, 225, 10, 80, 0, 0, 5, 0); create_palka(45, 145, 10, 80, 0, 0, 5, 0); create_palka(690, 190, 10, 80, 0, 0, 5, 0); create_chick(295, 390, 40, 40, 0, 0, 1, 1); create_chick(450, 390, 40, 40, 0, 0, 1, 0); create_gnezdo(660, 220, 30, 30, 0, 0, 0, 0); create_palka(620, 250, 50, 10, 0, 0, 3, 1); create_gnezdo(660, 190, 30, 30, 0, 0, 0, 0); create_palka(632, 402, 80, 10, -45, 0, 3, 0); fonm.gotoAndStop(3); estvrag = 3; }; if (tlevel == 16){ scoreint = 1000; allpower = 20; estpower = allpower; create_palka(50, 435, 600, 10, 0, 0, 3, 0); create_palka(640, 355, 10, 80, 0, 0, 5, 0); create_palka(640, 275, 10, 80, 0, 0, 5, 0); create_palka(50, 355, 10, 80, 0, 0, 5, 0); create_palka(50, 275, 10, 80, 0, 0, 5, 0); create_palka(640, 195, 10, 80, 0, 0, 5, 0); create_chick(40, 45, 40, 40, 0, 0, 1, 0); create_palka(50, 195, 10, 80, 0, 0, 5, 0); create_chick(610, 30, 40, 40, 0, 0, 1, 0); create_circ(630, 165, 30, 30, 0, 0, 2, 0); create_circ(40, 85, 30, 30, 0, 0, 2, 0); create_palka(50, 115, 10, 80, 0, 0, 5, 0); create_palka(540, 395, 100, 10, 0, 0, 1, 1); create_circ(575, 405, 30, 30, 0, 0, 1, 0); create_gnezdo(590, 365, 30, 30, 0, 0, 0, 0); create_circ(610, 405, 30, 30, 0, 0, 1, 0); create_palka(60, 310, 80, 10, 0, 0, 3, 0); create_palka(550, 175, 80, 10, 0, 0, 3, 0); create_gnezdo(60, 405, 30, 30, 0, 0, 0, 0); create_gnezdo(60, 375, 30, 30, 0, 0, 0, 0); create_palka(115, 385, 80, 10, 0, 0, 1, 0); create_kvad(175, 395, 20, 40, 0, 0, 5, 1); create_gnezdo(60, 345, 30, 30, 0, 0, 0, 0); fonm.gotoAndStop(4); estvrag = 2; }; if (tlevel == 17){ scoreint = 1000; allpower = 12; estpower = allpower; create_palka(125, 100, 80, 10, 0, 0, 3, 0); create_palka(51, 83, 80, 10, 25, 0, 3, 0); create_palka(55, 70, 10, 80, 0, 0, 5, 0); create_palka(55, 145, 10, 80, 0, 0, 5, 0); create_palka(55, 225, 10, 80, 0, 0, 5, 0); create_palka(55, 305, 10, 80, 0, 0, 5, 0); create_palka(615, 140, 10, 80, 0, 0, 5, 0); create_palka(65, 370, 80, 10, 0, 0, 3, 0); create_palka(140, 370, 80, 10, 0, 0, 3, 0); create_palka(220, 370, 80, 10, 0, 0, 3, 0); create_palka(300, 370, 80, 10, 0, 0, 3, 0); create_palka(375, 370, 80, 10, 0, 0, 3, 0); create_palka(455, 370, 80, 10, 0, 0, 3, 0); create_palka(535, 370, 80, 10, 0, 0, 3, 0); create_palka(615, 220, 10, 80, 0, 0, 5, 0); create_palka(615, 300, 10, 80, 0, 0, 5, 0); create_palka(205, 100, 80, 10, 0, 0, 3, 0); create_palka(280, 110, 80, 10, 15, 0, 3, 0); create_palka(415, 205, 80, 10, 0, 0, 3, 0); create_palka(535, 0xFF, 80, 10, 0, 0, 3, 0); create_kvad(425, 185, 20, 20, 0, 0, 5, 1); create_kvad(465, 185, 20, 20, 0, 0, 5, 1); create_kvad(540, 235, 20, 20, 0, 0, 5, 1); create_kvad(585, 235, 20, 20, 0, 0, 5, 1); create_palka(530, 225, 80, 10, 0, 0, 1, 0); create_palka(415, 175, 80, 10, 0, 0, 1, 0); create_chick(105, 25, 40, 40, 0, 0, 1, 0); create_gnezdo(580, 335, 50, 50, 0, 0, 0, 0); create_kvad(480, 350, 20, 20, 0, 0, 5, 0); create_triangle(475, 320, 30, 30, 0, 0, 2, 0); create_palka(110, 205, 80, 10, 0, 0, 3, 0); create_palka(47, 342, 80, 10, 45, 0, 3, 0); create_palka(190, 205, 10, 80, 0, 0, 5, 0); create_palka(200, 275, 80, 10, 0, 0, 3, 0); create_palka(280, 205, 10, 80, 0, 0, 5, 0); create_circ(140, 175, 30, 30, 0, 0, 1, 0); create_palka(110, 165, 100, 10, 0, 0, 1, 0); create_circ(110, 130, 30, 30, 0, 0, 1, 0); create_circ(160, 130, 30, 30, 0, 0, 1, 1); fonm.gotoAndStop(1); estvrag = 1; }; if (tlevel == 18){ scoreint = 1000; allpower = 20; estpower = allpower; create_palka(50, 435, 600, 10, 0, 0, 3, 0); create_palka(605, 365, 10, 80, 0, 0, 5, 0); create_palka(605, 290, 10, 80, 0, 0, 5, 0); create_palka(50, 355, 10, 80, 0, 0, 5, 0); create_palka(50, 275, 10, 80, 0, 0, 5, 0); create_palka(605, 210, 10, 80, 0, 0, 5, 0); create_palka(50, 180, 10, 100, 0, 0, 5, 0); create_palka(50, 355, 300, 10, 0, 0, 3, 0); create_chick(180, 210, 40, 40, 0, 0, 1, 0); create_kvad(485, 410, 20, 20, 0, 0, 5, 0); create_triangle(480, 375, 30, 30, 0, 0, 2, 0); create_palka(60, 250, 80, 10, 0, 0, 3, 0); create_palka(140, 250, 80, 10, 0, 0, 3, 0); create_chick(95, 210, 40, 40, 0, 0, 1, 0); create_palka(50, 100, 10, 80, 0, 0, 5, 0); create_gnezdo(45, 25, 25, 25, 0, 0, 0, 0); create_circ(40, 95, 30, 30, 0, 0, 2, 0); create_circ(40, 45, 10, 10, 0, 0, 2, 0); create_circ(65, 30, 30, 30, 0, 0, 2, 1); create_gnezdo(0xFF, 335, 20, 20, 0, 0, 0, 0); create_gnezdo(295, 335, 20, 20, 0, 0, 0, 0); create_gnezdo(265, 310, 20, 20, 0, 0, 0, 0); create_gnezdo(285, 310, 20, 20, 0, 0, 0, 0); create_palka(605, 270, 80, 10, 0, 0, 3, 0); create_palka(685, 200, 10, 80, 0, 0, 5, 0); create_chick(590, 170, 40, 40, 0, 0, 1, 0); create_gnezdo(635, 225, 50, 50, 0, 0, 0, 0); fonm.gotoAndStop(2); estvrag = 3; }; if (tlevel == 19){ scoreint = 1000; allpower = 20; estpower = allpower; create_palka(50, 435, 600, 10, 0, 0, 3, 0); create_palka(640, 355, 10, 80, 0, 0, 5, 0); create_palka(640, 275, 10, 80, 0, 0, 5, 0); create_palka(50, 355, 10, 80, 0, 0, 5, 0); create_palka(50, 275, 10, 80, 0, 0, 5, 0); create_palka(50, 180, 10, 100, 0, 0, 5, 0); create_chick(545, 395, 40, 40, 0, 0, 1, 0); create_chick(80, 395, 40, 40, 0, 0, 1, 0); create_palka(50, 100, 10, 80, 0, 0, 5, 0); create_palka(640, 195, 10, 80, 0, 0, 5, 0); create_palka(640, 115, 10, 80, 0, 0, 5, 0); create_palka(50, 95, 80, 10, 0, 0, 3, 0); create_palka(310, 395, 80, 10, 0, 0, 1, 1); create_circ(335, 405, 30, 30, 0, 0, 1, 1); create_gnezdo(315, 365, 30, 30, 0, 0, 0, 0); create_gnezdo(355, 365, 30, 30, 0, 0, 0, 1); create_palka(577, 407, 80, 10, -45, 0, 3, 0); create_gnezdo(180, 405, 30, 30, 0, 0, 0, 0); create_palka(121, 108, 80, 10, 25, 0, 3, 0); create_circ(115, 80, 30, 30, 0, 0, 2, 0); fonm.gotoAndStop(3); estvrag = 2; }; if (tlevel == 20){ scoreint = 1000; allpower = 20; estpower = allpower; create_palka(50, 435, 600, 10, 0, 0, 3, 0); create_palka(640, 355, 10, 80, 0, 0, 5, 0); create_palka(640, 275, 10, 80, 0, 0, 5, 0); create_palka(50, 355, 10, 80, 0, 0, 5, 0); create_palka(50, 275, 10, 80, 0, 0, 5, 0); create_palka(50, 180, 10, 100, 0, 0, 5, 0); create_chick(80, 315, 40, 40, 0, 0, 1, 0); create_palka(50, 100, 10, 80, 0, 0, 5, 0); create_palka(640, 195, 10, 80, 0, 0, 5, 0); create_palka(640, 115, 10, 80, 0, 0, 5, 0); create_kvad(90, 355, 20, 20, 0, 0, 1, 0); create_gnezdo(60, 405, 30, 30, 0, 0, 0, 0); create_gnezdo(60, 45, 20, 20, 0, 0, 0, 0); create_circ(50, 100, 30, 30, 0, 0, 2, 0); create_circ(80, 115, 30, 30, 0, 0, 2, 0); create_circ(140, 120, 30, 30, 0, 0, 2, 0); create_circ(125, 150, 30, 30, 0, 0, 2, 0); create_circ(100, 175, 30, 30, 0, 0, 2, 0); create_circ(80, 200, 30, 30, 0, 0, 2, 0); create_palka(366, 418, 80, 10, -25, 0, 3, 0); create_palka(468, 365, 10, 80, 85, 0, 5, 0); create_palka(540, 395, 10, 40, 0, 0, 5, 0); create_circ(510, 155, 30, 30, 0, 0, 1, 0); create_circ(480, 180, 30, 30, 0, 0, 2, 0); create_circ(535, 185, 30, 30, 0, 0, 2, 1); create_palka(110, 355, 10, 80, 0, 0, 4, 1); fonm.gotoAndStop(4); estvrag = 1; }; if (tlevel == 21){ scoreint = 1000; allpower = 8; estpower = allpower; create_palka(31, 333, 80, 10, 25, 0, 3, 0); create_palka(596, 403, 80, 10, -25, 0, 3, 0); create_palka(670, 315, 10, 80, 0, 0, 5, 0); create_palka(30, 190, 10, 80, 0, 0, 5, 0); create_palka(670, 235, 10, 80, 0, 0, 5, 0); create_palka(30, 265, 10, 80, 0, 0, 5, 0); create_palka(540, 305, 80, 10, 0, 0, 1, 0); create_palka(540, 335, 80, 10, 0, 0, 3, 0); create_kvad(545, 315, 20, 20, 0, 0, 5, 0); create_kvad(595, 315, 20, 20, 0, 0, 5, 1); create_palka(95, 270, 80, 10, 0, 0, 3, 0); create_kvad(100, 250, 20, 20, 0, 0, 5, 1); create_kvad(150, 250, 20, 20, 0, 0, 5, 0); create_palka(95, 240, 80, 10, 0, 0, 1, 0); create_palka(455, 420, 80, 10, 0, 0, 3, 0); create_kvad(585, 420, 20, 20, 0, 0, 1, 0); create_kvad(585, 440, 20, 20, 0, 0, 1, 0); create_kvad(570, 450, 20, 20, 0, 0, 1, 0); create_kvad(585, 450, 20, 20, 0, 0, 1, 0); create_kvad(550, 450, 20, 20, 0, 0, 1, 0); create_kvad(535, 450, 20, 20, 0, 0, 1, 0); create_kvad(535, 430, 20, 20, 0, 0, 1, 0); create_kvad(535, 420, 20, 20, 0, 0, 1, 0); create_circ(120, 210, 30, 30, 0, 0, 1, 0); create_palka(110, 405, 80, 10, 0, 0, 3, 0); create_palka(190, 400, 80, 10, -7, 0, 3, 0); create_palka(260, 395, 80, 10, 0, 0, 3, 0); create_palka(335, 395, 80, 10, 0, 0, 3, 0); create_palka(385, 430, 80, 10, -15, 0, 3, 0); create_palka(310, 440, 80, 10, 0, 0, 3, 0); create_palka(230, 450, 80, 10, 0, 0, 3, 0); create_palka(150, 460, 80, 10, 0, 0, 3, 0); create_chick(160, 420, 40, 40, 0, 0, 1, 0); create_palka(145, 410, 10, 60, 0, 0, 5, 0); create_gnezdo(220, 425, 30, 30, 0, 0, 0, 0); create_gnezdo(250, 425, 30, 30, 0, 0, 0, 0); create_palka(70, 460, 80, 10, 0, 0, 3, 0); create_palka(30, 460, 80, 10, 0, 0, 3, 0); create_palka(30, 345, 10, 80, 0, 0, 5, 0); create_palka(30, 385, 10, 80, 0, 0, 5, 0); create_gnezdo(100, 375, 30, 30, 0, 0, 0, 0); create_chick(110, 420, 40, 40, 0, 0, 1, 0); create_triangle(25, 430, 30, 30, 0, 0, 1, 0); create_gnezdo(75, 430, 30, 30, 0, 0, 0, 0); create_circ(560, 275, 30, 30, 0, 0, 1, 1); fonm.gotoAndStop(1); estvrag = 2; }; if (tlevel == 22){ scoreint = 1000; allpower = 9; estpower = allpower; create_palka(45, 220, 80, 10, 0, 0, 3, 0); create_gnezdo(50, 170, 50, 50, 0, 0, 0, 0); create_palka(170, 250, 80, 10, 0, 0, 3, 0); create_chick(160, 40, 40, 40, 0, 0, 1, 0); create_chick(115, 40, 40, 40, 0, 0, 1, 0); create_palka(105, 210, 80, 10, 0, 0, 1, 0); create_circ(165, 220, 30, 30, 0, 0, 1, 1); create_palka(250, 290, 80, 10, 0, 0, 3, 0); create_triangle(250, 260, 30, 30, 0, 0, 2, 0); create_palka(335, 285, 80, 10, 0, 0, 3, 0); create_palka(420, 280, 80, 10, 0, 0, 3, 0); create_palka(555, 320, 80, 10, 0, 0, 3, 0); create_palka(470, 395, 80, 10, 0, 0, 3, 0); create_gnezdo(585, 270, 50, 50, 0, 0, 0, 0); create_chick(465, 240, 40, 40, 0, 0, 1, 0); create_gnezdo(490, 345, 50, 50, 0, 0, 0, 0); create_gnezdo(280, 280, 10, 10, 0, 0, 0, 0); fonm.gotoAndStop(2); estvrag = 3; }; if (tlevel == 23){ scoreint = 1000; allpower = 9; estpower = allpower; create_palka(45, 420, 80, 10, 0, 0, 3, 0); create_palka(125, 420, 80, 10, 0, 0, 3, 0); create_palka(205, 420, 80, 10, 0, 0, 3, 0); create_palka(285, 420, 80, 10, 0, 0, 3, 0); create_palka(365, 420, 80, 10, 0, 0, 3, 0); create_palka(95, 340, 10, 80, 0, 0, 4, 0); create_circ(40, 300, 30, 30, 0, 0, 2, 0); create_chick(50, 10, 40, 40, 0, 0, 1, 0); create_palka(110, 340, 10, 80, 0, 0, 4, 0); create_palka(125, 340, 10, 80, 0, 0, 4, 0); create_palka(140, 340, 10, 80, 0, 0, 4, 0); create_kvad(150, 400, 20, 20, 0, 0, 5, 0); create_kvad(150, 380, 20, 20, 0, 0, 5, 0); create_kvad(150, 360, 20, 20, 0, 0, 5, 1); create_palka(150, 350, 80, 10, 0, 0, 1, 1); create_kvad(210, 360, 20, 20, 0, 0, 5, 0); create_kvad(210, 380, 20, 20, 0, 0, 5, 0); create_kvad(210, 400, 20, 20, 0, 0, 5, 0); create_gnezdo(630, 195, 50, 50, 0, 0, 0, 0); create_gnezdo(0xFF, 400, 20, 20, 0, 0, 0, 0); create_gnezdo(315, 400, 20, 20, 0, 0, 0, 0); create_palka(615, 250, 80, 10, 0, 0, 3, 0); fonm.gotoAndStop(3); estvrag = 1; }; if (tlevel == 24){ scoreint = 1000; allpower = 8; estpower = allpower; create_palka(275, 465, 80, 10, 0, 0, 3, 0); create_palka(245, 415, 140, 10, 0, 0, 1, 0); create_gnezdo(240, 385, 30, 30, 0, 0, 0, 0); create_kvad(305, 425, 20, 20, 0, 0, 1, 0); create_kvad(305, 445, 20, 20, 0, 0, 1, 0); create_palka(195, 465, 80, 10, 0, 0, 3, 0); create_palka(350, 465, 80, 10, 0, 0, 3, 0); create_kvad(370, 395, 20, 20, 0, 0, 5, 0); create_kvad(350, 395, 20, 20, 0, 0, 5, 0); create_chick(550, 365, 40, 40, 0, 0, 1, 0); create_palka(515, 405, 80, 10, 0, 0, 3, 0); create_palka(595, 405, 80, 10, 0, 0, 3, 0); create_kvad(655, 385, 20, 20, 0, 0, 1, 0); create_kvad(655, 365, 20, 20, 0, 0, 1, 0); create_kvad(655, 345, 20, 20, 0, 0, 1, 0); create_circ(340, 40, 70, 70, 0, 0, 3, 0); create_circ(315, 85, 30, 30, 0, 0, 2, 1); create_gnezdo(650, 315, 30, 30, 0, 0, 0, 1); create_triangle(640, 385, 30, 30, 0, 0, 1, 0); create_circ(405, 85, 30, 30, 0, 0, 2, 1); fonm.gotoAndStop(4); estvrag = 1; }; if (tlevel == 25){ scoreint = 1000; allpower = 11; estpower = allpower; create_palka(135, 420, 80, 10, 0, 0, 3, 0); create_palka(215, 420, 80, 10, 0, 0, 3, 0); create_palka(295, 420, 80, 10, 0, 0, 3, 0); create_palka(375, 420, 80, 10, 0, 0, 3, 0); create_palka(62, 415, 80, 10, 10, 0, 3, 0); create_palka(190, 330, 80, 10, 0, 0, 1, 0); create_palka(205, 340, 10, 80, 0, 0, 4, 0); create_palka(245, 340, 10, 80, 0, 0, 4, 1); create_palka(280, 340, 10, 80, 0, 0, 4, 1); create_palka(320, 340, 10, 80, 0, 0, 4, 0); create_palka(270, 330, 80, 10, 0, 0, 1, 0); create_palka(360, 340, 10, 80, 0, 0, 4, 1); create_palka(350, 330, 80, 10, 0, 0, 1, 0); create_palka(405, 340, 10, 80, 0, 0, 4, 0); create_chick(125, 285, 40, 40, 0, 0, 1, 0); create_palka(170, 340, 10, 80, 0, 0, 4, 0); create_palka(135, 340, 10, 80, 0, 0, 4, 1); create_palka(110, 330, 80, 10, 0, 0, 1, 0); create_palka(505, 420, 80, 10, 0, 0, 3, 0); create_gnezdo(570, 365, 50, 50, 0, 0, 0, 0); create_palka(585, 420, 80, 10, 0, 0, 3, 0); create_circ(390, 300, 30, 30, 0, 0, 1, 0); fonm.gotoAndStop(1); estvrag = 1; }; if (tlevel == 26){ scoreint = 1000; allpower = 18; estpower = allpower; create_palka(80, 420, 80, 10, 0, 0, 3, 0); create_palka(160, 420, 80, 10, 0, 0, 3, 0); create_palka(320, 420, 80, 10, 0, 0, 3, 0); create_palka(400, 420, 80, 10, 0, 0, 3, 0); create_palka(480, 420, 80, 10, 0, 0, 3, 0); create_kvad(60, 410, 20, 20, 0, 0, 1, 0); create_kvad(560, 410, 20, 20, 0, 0, 1, 0); create_palka(60, 400, 80, 10, 0, 0, 1, 0); create_kvad(240, 410, 20, 20, 0, 0, 1, 0); create_palka(180, 400, 100, 10, 0, 0, 1, 0); create_palka(135, 410, 50, 10, 0, 0, 1, 1); create_circ(20, 295, 30, 30, 0, 0, 2, 1); create_gnezdo(30, 10, 30, 30, 0, 0, 0, 1); create_circ(0, 25, 30, 30, 0, 0, 2, 1); create_circ(55, 30, 30, 30, 0, 0, 2, 1); create_chick(455, 380, 40, 40, 0, 0, 1, 0); create_kvad(560, 390, 20, 20, 0, 0, 1, 0); create_kvad(560, 370, 20, 20, 0, 0, 1, 0); create_kvad(560, 350, 20, 20, 0, 0, 1, 0); create_kvad(560, 330, 20, 20, 0, 0, 1, 0); create_kvad(560, 310, 20, 20, 0, 0, 1, 0); fonm.gotoAndStop(2); estvrag = 1; }; if (tlevel == 27){ scoreint = 1000; allpower = 9; estpower = allpower; create_palka(90, 110, 80, 10, 0, 0, 3, 0); create_palka(170, 110, 80, 10, 0, 0, 3, 0); create_palka(16, 93, 80, 10, 25, 0, 3, 0); create_chick(35, 5, 40, 40, 0, 0, 1, 0); create_palka(250, 110, 80, 10, 0, 0, 3, 0); create_palka(330, 110, 80, 10, 0, 0, 3, 0); create_palka(490, 110, 80, 10, 0, 0, 3, 0); create_palka(570, 110, 80, 10, 0, 0, 3, 0); create_palka(410, 200, 80, 10, 0, 0, 3, 0); create_kvad(420, 180, 20, 20, 0, 0, 5, 1); create_kvad(460, 180, 20, 20, 0, 0, 5, 1); create_palka(410, 170, 80, 10, 0, 0, 1, 0); create_palka(510, 0xFF, 80, 10, 0, 0, 3, 0); create_palka(650, 110, 10, 80, 0, 0, 5, 0); create_palka(15, 75, 10, 80, 0, 0, 5, 0); create_palka(15, 155, 10, 80, 0, 0, 5, 0); create_palka(15, 235, 10, 80, 0, 0, 5, 0); create_palka(15, 315, 10, 80, 0, 0, 5, 0); create_palka(650, 190, 10, 80, 0, 0, 5, 0); create_palka(650, 270, 10, 80, 0, 0, 5, 0); create_palka(565, 325, 80, 10, 0, 0, 3, 0); create_palka(15, 365, 10, 80, 0, 0, 5, 0); create_palka(650, 320, 10, 80, 0, 0, 5, 0); create_palka(25, 435, 80, 10, 0, 0, 3, 0); create_palka(105, 435, 80, 10, 0, 0, 3, 0); create_palka(185, 435, 80, 10, 0, 0, 3, 0); create_palka(265, 435, 80, 10, 0, 0, 3, 0); create_palka(345, 435, 80, 10, 0, 0, 3, 0); create_palka(425, 435, 80, 10, 0, 0, 3, 0); create_palka(505, 435, 80, 10, 0, 0, 3, 0); create_palka(580, 435, 80, 10, 0, 0, 3, 0); create_palka(650, 365, 10, 80, 0, 0, 5, 0); create_triangle(635, 295, 30, 30, 0, 0, 1, 0); create_circ(570, 245, 30, 30, 0, 0, 2, 0); create_chick(565, 205, 40, 40, 0, 0, 1, 0); create_gnezdo(520, 395, 20, 20, 0, 0, 0, 0); create_kvad(520, 415, 20, 20, 0, 0, 5, 1); create_palka(170, 260, 80, 10, 0, 0, 3, 0); create_palka(90, 260, 80, 10, 0, 0, 3, 0); create_palka(25, 260, 80, 10, 0, 0, 3, 0); create_gnezdo(30, 230, 40, 40, 0, 0, 0, 0); create_gnezdo(25, 385, 50, 50, 0, 0, 0, 0); create_kvad(230, 240, 20, 20, 0, 0, 1, 0); create_kvad(230, 220, 20, 20, 0, 0, 1, 0); create_kvad(230, 200, 20, 20, 0, 0, 1, 0); create_circ(380, 80, 30, 30, 0, 0, 1, 0); fonm.gotoAndStop(3); estvrag = 2; }; if (tlevel == 28){ scoreint = 1000; allpower = 10; estpower = allpower; create_kvad(115, 250, 20, 20, 0, 0, 1, 0); create_palka(85, 240, 80, 10, 0, 0, 1, 0); create_kvad(85, 220, 20, 20, 0, 0, 5, 1); create_kvad(145, 220, 20, 20, 0, 0, 5, 1); create_palka(85, 210, 80, 10, 0, 0, 1, 0); create_circ(110, 180, 30, 30, 0, 0, 1, 0); create_palka(85, 170, 80, 10, 0, 0, 1, 0); create_chick(105, 130, 40, 40, 0, 0, 1, 0); create_palka(166, 313, 80, 10, 25, 0, 3, 0); create_kvad(225, 330, 20, 20, 0, 0, 1, 0); create_kvad(225, 350, 20, 20, 0, 0, 1, 0); create_kvad(225, 370, 20, 20, 0, 0, 1, 0); create_kvad(225, 390, 20, 20, 0, 0, 1, 0); create_kvad(225, 410, 20, 20, 0, 0, 1, 0); create_kvad(225, 430, 20, 20, 0, 0, 1, 0); create_palka(245, 440, 80, 10, 0, 0, 3, 0); create_kvad(305, 430, 20, 20, 0, 0, 1, 0); create_kvad(305, 410, 20, 20, 0, 0, 1, 0); create_kvad(305, 390, 20, 20, 0, 0, 1, 0); create_kvad(305, 370, 20, 20, 0, 0, 1, 0); create_kvad(305, 350, 20, 20, 0, 0, 1, 0); create_palka(85, 440, 80, 10, 0, 0, 3, 0); create_kvad(155, 430, 20, 20, 0, 0, 1, 0); create_kvad(75, 430, 20, 20, 0, 0, 1, 0); create_kvad(155, 410, 20, 20, 0, 0, 1, 0); create_kvad(75, 410, 20, 20, 0, 0, 1, 0); create_gnezdo(110, 395, 50, 50, 0, 0, 0, 0); create_chick(295, 310, 40, 40, 0, 0, 1, 0); create_palka(315, 440, 80, 10, 0, 0, 3, 0); create_gnezdo(325, 380, 50, 50, 0, 0, 0, 0); fonm.gotoAndStop(4); estvrag = 2; }; if (tlevel == 29){ scoreint = 1000; allpower = 15; estpower = allpower; create_palka(50, 420, 80, 10, 0, 0, 3, 0); create_palka(130, 420, 80, 10, 0, 0, 3, 0); create_palka(50, 190, 80, 10, 0, 0, 3, 0); create_palka(130, 190, 80, 10, 0, 0, 3, 0); create_palka(290, 200, 80, 10, 0, 0, 3, 0); create_palka(370, 190, 80, 10, 0, 0, 3, 0); create_palka(450, 310, 80, 10, 0, 0, 3, 0); create_palka(325, 155, 10, 40, 0, 0, 4, 0); create_palka(280, 135, 100, 10, 0, 0, 1, 0); create_palka(525, 380, 80, 10, 0, 0, 3, 0); create_kvad(50, 400, 20, 20, 0, 0, 1, 0); create_kvad(50, 380, 20, 20, 0, 0, 1, 0); create_kvad(110, 400, 20, 20, 0, 0, 1, 0); create_palka(50, 370, 80, 10, 0, 0, 1, 0); create_chick(40, 315, 40, 40, 0, 0, 1, 0); create_kvad(110, 380, 20, 20, 0, 0, 5, 1); create_chick(310, 90, 40, 40, 0, 0, 1, 0); create_gnezdo(145, 400, 20, 20, 0, 0, 0, 0); create_kvad(335, 175, 20, 20, 0, 0, 5, 0); create_kvad(305, 175, 20, 20, 0, 0, 5, 0); create_kvad(305, 155, 20, 20, 0, 0, 5, 0); create_kvad(335, 155, 20, 20, 0, 0, 5, 0); create_kvad(430, 200, 20, 20, 0, 0, 1, 0); create_kvad(430, 220, 20, 20, 0, 0, 1, 0); create_kvad(430, 240, 20, 20, 0, 0, 1, 0); create_kvad(430, 260, 20, 20, 0, 0, 1, 0); create_kvad(430, 280, 20, 20, 0, 0, 1, 0); create_kvad(430, 300, 20, 20, 0, 0, 1, 0); create_palka(525, 310, 10, 80, 0, 0, 5, 0); create_gnezdo(455, 0xFF, 50, 50, 0, 0, 0, 0); create_gnezdo(550, 325, 50, 50, 0, 0, 0, 0); create_palka(605, 310, 10, 80, 0, 0, 5, 0); fonm.gotoAndStop(1); estvrag = 2; }; if (tlevel == 30){ scoreint = 1000; allpower = 18; estpower = allpower; create_palka(230, 325, 10, 80, 0, 0, 5, 0); create_palka(230, 245, 10, 80, 0, 0, 5, 0); create_palka(240, 320, 80, 10, 0, 0, 3, 0); create_palka(240, 245, 80, 10, 0, 0, 3, 0); create_palka(240, 395, 80, 10, 0, 0, 3, 0); create_palka(380, 325, 10, 80, 0, 0, 5, 0); create_palka(380, 245, 10, 80, 0, 0, 5, 0); create_palka(470, 325, 10, 80, 0, 0, 5, 0); create_palka(470, 245, 10, 80, 0, 0, 5, 0); create_palka(379, 331, 100, 10, 30, 0, 3, 0); create_palka(550, 325, 10, 80, 0, 0, 5, 0); create_palka(550, 245, 10, 80, 0, 0, 5, 0); create_palka(550, 250, 80, 10, 15, 0, 3, 0); create_palka(552, 395, 80, 10, -10, 0, 3, 0); create_palka(625, 260, 10, 70, 0, 0, 5, 0); create_palka(625, 320, 10, 70, 0, 0, 5, 0); create_gnezdo(265, 300, 20, 20, 0, 0, 0, 0); create_chick(290, 280, 40, 40, 0, 0, 1, 0); create_circ(245, 300, 20, 20, 0, 0, 3, 1); create_kvad(130, 60, 20, 20, 0, 0, 1, 0); create_kvad(130, 170, 20, 20, 0, 0, 1, 1); create_kvad(200, 75, 20, 20, 0, 0, 1, 0); create_kvad(200, 155, 20, 20, 0, 0, 1, 0); create_kvad(220, 135, 20, 20, 0, 0, 1, 0); create_kvad(220, 95, 20, 20, 0, 0, 1, 0); create_kvad(220, 115, 20, 20, 0, 0, 1, 0); create_kvad(335, 450, 20, 20, 0, 0, 1, 0); create_gnezdo(330, 420, 30, 30, 0, 0, 0, 0); create_gnezdo(435, 300, 30, 30, 0, 0, 0, 0); create_chick(365, 205, 40, 40, 0, 0, 1, 0); create_palka(270, 105, 80, 10, 0, 0, 1, 0); create_circ(300, 115, 20, 20, 0, 0, 4, 0); create_kvad(330, 85, 20, 20, 0, 0, 5, 1); create_kvad(270, 85, 20, 20, 0, 0, 5, 1); create_kvad(385, 0, 20, 20, 0, 0, 1, 0); create_kvad(485, 0, 20, 20, 0, 0, 1, 0); create_kvad(405, 0, 20, 20, 0, 0, 1, 0); create_kvad(465, 0, 20, 20, 0, 0, 1, 0); create_kvad(425, 0, 20, 20, 0, 0, 1, 0); create_kvad(445, 0, 20, 20, 0, 0, 1, 0); create_palka(475, 105, 100, 10, 0, 0, 3, 0); create_palka(575, 25, 10, 80, 0, 0, 5, 0); create_kvad(565, 0, 20, 20, 0, 0, 1, 0); create_gnezdo(535, 75, 20, 20, 0, 0, 0, 0); create_chick(130, 130, 40, 40, 0, 0, 1, 1); create_gnezdo(145, 345, 30, 30, 0, 0, 0, 0); create_palka(120, 375, 80, 10, 0, 0, 3, 1); create_chick(580, 280, 40, 40, 0, 0, 1, 0); create_kvad(600, 320, 10, 10, 0, 0, 1, 1); create_gnezdo(585, 365, 20, 20, 0, 0, 0, 1); create_kvad(365, 0, 20, 20, 0, 0, 1, 0); create_palka(285, 0, 80, 10, 0, 0, 3, 0); create_gnezdo(450, 325, 20, 20, 0, 0, 0, 0); create_gnezdo(175, 345, 30, 30, 0, 0, 0, 0); create_kvad(150, 0xFF, 20, 20, 0, 0, 1, 1); fonm.gotoAndStop(1); estvrag = 4; }; scoreTimer.start(); animTimer.start(); } public function onScoreTimer(_arg1:TimerEvent){ scoreint--; } public function selMen():void{ var _local1:*; var _local2:*; var _local3:*; var _local4:Number; var _local5:*; var _local6:*; var _local7:*; _local1 = 200; _local2 = 145; if (btnsm.length > 0){ _local7 = 0; while (_local7 < btnsm.length) { selectm.removeChild(btnsm[_local7]); _local7++; }; btnsm = []; }; _local6 = 1; while (_local6 < 31) { _local5 = new m_btn(); _local5.x = (_local1 - (selectm.width / 2)); _local5.y = (_local2 - (selectm.height / 2)); selectm.addChild(_local5); _local5.scoretxt.text = _local6; _local5.verh.clev = _local6; _local5.verh.addEventListener(MouseEvent.CLICK, selbtnClick); _local5.verh.addEventListener(MouseEvent.MOUSE_OVER, selOver); _local5.verh.addEventListener(MouseEvent.MOUSE_OUT, selOut); btnsm.push(_local5); _local1 = (_local1 + 60); if ((((((((((_local6 == 6)) || ((_local6 == 12)))) || ((_local6 == 18)))) || ((_local6 == 24)))) || ((_local6 == 30)))){ _local2 = (_local2 + 60); _local1 = 200; }; if (mySharedObject.data[("lev" + _local6)] == undefined){ _local5.gotoAndStop(2); if ((((mySharedObject.data[("lev" + (_local6 + 1))] == undefined)) && (!((mySharedObject.data[("lev" + (_local6 - 1))] == undefined))))){ _local5.gotoAndStop(3); _local5.buttonMode = true; }; } else { _local5.gotoAndStop(1); _local5.niztxt.text = mySharedObject.data[("lev" + _local6)]; allscore = (allscore + mySharedObject.data[("lev" + _local6)]); _local5.buttonMode = true; }; _local6++; }; selectm.scoretxt.text = ""; selectm.scoretxt.text = allscore; } public function butm1click(_arg1:Event):void{ menum.visible = false; allscore = 0; selMen(); menTimer.stop(); worldClearMen(); tlevel = 1; if (dazvuk){ zvv4s.play(); }; } public function create_chick(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):void{ var _local9:*; _local9 = new chickmc(); _local9.robohit.visible = false; _local9.gotoAndStop(_arg7); if (_arg8 == 1){ _local9.addEventListener(MouseEvent.MOUSE_DOWN, selmcClick); _local9.addEventListener(MouseEvent.MOUSE_OVER, selmcOver); _local9.addEventListener(MouseEvent.MOUSE_OUT, selmcOut); }; bodyDef = new b2BodyDef(); _arg3 = 40; _arg4 = 40; _local9.x = (_arg1 + (_arg3 / 2)); _local9.y = (_arg2 + (_arg4 / 2)); _local9.dead = false; _local9.livenum = 100; _local9.live.live.gotoAndStop(1); 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; circleDef.friction = 1; circleDef.restitution = 0; bodyDef.userData = _local9; bodyDef.userData.name = "chick"; bodyDef.angle = (_arg5 / (180 / Math.PI)); _local9.rotation = (bodyDef.angle * (180 / Math.PI)); body = m_world.CreateBody(bodyDef); body.CreateShape(circleDef); body.SetMassFromShapes(); addChild(_local9); chickmcar.push(_local9); chickobjar.push(body); } function mouseBack(_arg1:Event):void{ cursorm.visible = true; Mouse.hide(); stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseBack); } public function UpdatePerehod(_arg1:Event):void{ if (_arg1.target.currentFrame == 20){ tlevel++; worldClear(); _arg1.target.removeEventListener(Event.ENTER_FRAME, UpdatePerehod); glmenu = false; }; } public function btnOut(_arg1:MouseEvent):void{ damenu = false; } public function btnOver(_arg1:MouseEvent):void{ damenu = true; } private function onAwardRequestProcessed(_arg1:int, _arg2:Object):void{ if (!_arg2.errorMessage){ trace((("\txml: " + _arg2.xml) + "\n")); } else { trace((("\tError in request: " + _arg2.errorMessage) + "\n")); }; } public function closeBtn(_arg1:Event):void{ if (dazvuk){ zvv4s.play(); }; create_palkan(-26, 440, 100, 10, 10, 0, 3, 0); create_kvadn(75, 450, 20, 20, 0, 0, 1, 0); create_kvadn(95, 450, 20, 20, 0, 0, 1, 0); create_kvadn(115, 450, 20, 20, 0, 0, 1, 0); create_kvadn(135, 450, 20, 20, 0, 0, 1, 0); create_kvadn(155, 450, 20, 20, 0, 0, 1, 0); create_kvadn(175, 450, 20, 20, 0, 0, 1, 0); create_kvadn(195, 450, 20, 20, 0, 0, 1, 0); create_kvadn(215, 450, 20, 20, 0, 0, 1, 0); create_kvadn(235, 450, 20, 20, 0, 0, 1, 0); create_kvadn(0xFF, 450, 20, 20, 0, 0, 1, 0); create_kvadn(275, 450, 20, 20, 0, 0, 1, 0); create_kvadn(295, 450, 20, 20, 0, 0, 1, 0); create_palkan(295, 470, 80, 10, 0, 0, 3, 0); create_palkan(315, 460, 80, 10, 0, 0, 1, 0); menum.visible = true; menTimer.start(); selectm.visible = true; awardm.visible = false; glmenu = true; exitbtn.visible = false; btnbtnmc.visible = false; exitbtn.visible = false; worldClear(); tlevel = 0; worldClear(); if (damusic){ scm.stop(); scm = zvmuss.play(0, int.MAX_VALUE); }; awardTest(); } public function endLevel(){ if (estvrag == 0){ if (dazvuk){ }; if (mySharedObject.data[("lev" + tlevel)] == undefined){ mySharedObject.data[("lev" + tlevel)] = scoreint; } else { if (mySharedObject.data[("lev" + tlevel)] < scoreint){ mySharedObject.data[("lev" + tlevel)] = scoreint; }; }; estvrag = 100; mySharedObject.flush(); if (tlevel != 30){ glmenu = true; scoreTimer.stop(); animTimer.stop(); perehodm = new perehodmc(); perehodm.x = (perehodm.width / 2); perehodm.y = (perehodm.height / 2); parent.addChild(perehodm); perehodm.addEventListener(Event.ENTER_FRAME, UpdatePerehod); perehodm.addFrameScript((perehodm.totalFrames - 1), function (_arg1:MovieClip){ var perehodm = _arg1; return (function (){ killMeDa(perehodm); }); }(perehodm)); }; if (tlevel == 30){ selectm.visible = true; glmenu = true; exitbtn.visible = false; btnbtnmc.visible = false; exitbtn.visible = false; if (damusic){ scm.stop(); scm = zvmuss.play(0, int.MAX_VALUE); }; menum.visible = false; selMen(); }; awardTest(); }; } public function mousetext(_arg1:MovieClip):void{ var _local2:*; var _local3:TextField; _local2 = 0; while (_local2 < _arg1.numChildren) { _local3 = new TextField(); _local3.x = _arg1.getChildAt(_local2).x; _local3.y = _arg1.getChildAt(_local2).y; _local3.selectable = false; _local3.htmlText = ((((("<b>" + _local2) + "(") + _local2) + ")") + "</b>"); _local3.textColor = 13551989; parent.parent.addChild(_local3); _local2++; }; } public function blGame(_arg1:MouseEvent):void{ var _local2:String; _local2 = SpilGame.getMoreGamesLink("GameScreen"); navigateToURL(new URLRequest(_local2), "_balnk"); } public function resBtnEv(_arg1:MouseEvent):void{ if (dazvuk){ zvv4s.play(); }; glmenu = false; worldClear(); } public function butmenOut(_arg1:Event):void{ _arg1.target.gotoAndStop(1); } public function addExplosion(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):void{ var i:*; var _tempClip2:*; var _tempClip:*; var tempRandomSize:*; var tempRandomSize2:*; var _targetX = _arg1; var _targetY = _arg2; var _explosionParticleAmount = _arg3; var _distance = _arg4; var _explosionSize = _arg5; var _explosionAlpha = _arg6; i = 0; while (i < _explosionParticleAmount) { _tempClip2 = new explosion2(); _tempClip = new explosion(); _tempClip.x = ((_targetX + (Math.random() * _distance)) - (_distance / 2)); _tempClip.y = ((_targetY + (Math.random() * _distance)) - (_distance / 2)); _tempClip2.x = ((_targetX + (Math.random() * _distance)) - (_distance / 2)); _tempClip2.y = ((_targetY + (Math.random() * _distance)) - (_distance / 2)); tempRandomSize = ((_explosionSize / 130) + ((Math.random() * (_explosionSize - (_explosionSize / 2))) / 100)); _tempClip.scaleX = tempRandomSize; _tempClip.scaleY = tempRandomSize; _tempClip.rotation = (Math.random() * 360); tempRandomSize2 = ((_explosionSize / 130) + ((Math.random() * (_explosionSize + (_explosionSize / 2))) / 100)); _tempClip2.xscale = tempRandomSize2; _tempClip2.yscale = tempRandomSize2; _tempClip2.rotation = (Math.random() * 360); _tempClip.alpha = (((Math.random() * _explosionAlpha) + (_explosionAlpha / 4)) / 100); _tempClip2.alpha = (((Math.random() * _explosionAlpha) + (_explosionAlpha / 4)) / 100); _tempClip.addFrameScript((_tempClip.totalFrames - 1), function (_arg1:MovieClip){ var _tempClip = _arg1; return (function (){ killMe(_tempClip); }); }(_tempClip)); _tempClip2.addFrameScript((_tempClip2.totalFrames - 1), function (_arg1:MovieClip){ var _tempClip2 = _arg1; return (function (){ killMe(_tempClip2); }); }(_tempClip2)); addChild(_tempClip); addChild(_tempClip2); i = (i + 1); }; } public function onKillTimer(_arg1:TimerEvent){ killSensor(); killTimer.stop(); } private function onScoreRequestProcessed(_arg1:int, _arg2:Object):void{ if (!_arg2.errorMessage){ trace((("\txml: " + _arg2.xml) + "\n")); } else { trace((("\tError in request: " + _arg2.errorMessage) + "\n")); }; } public function killMe(_arg1:MovieClip):void{ _arg1.addFrameScript((_arg1.totalFrames - 1), null); removeChild(_arg1); } public function ambclick(_arg1:Event):void{ menum.visible = false; awardm.visible = true; allscore = 0; menTimer.stop(); worldClearMen(); if (dazvuk){ zvv4s.play(); }; awardTest(); } public function selmcOut(_arg1:Event):void{ _arg1.target.alpha = 1; lasgen = false; cursorm.gotoAndStop(1); } public function menuhit():void{ var _local1:uint; if (menum.visible == true){ _local1 = 0; while (_local1 < all_mcsmen.length) { if (all_mcsmen[_local1].y > 560){ m_world.DestroyBody(all_objmen[_local1]); parent.parent.removeChild(all_mcsmen[_local1]); all_mcsmen.splice(_local1, 1); all_objmen.splice(_local1, 1); }; _local1++; }; }; } public function butm2click(_arg1:Event):void{ trace("yes"); if (dazvuk){ zvv4s.play(); }; } public function blSelect(_arg1:MouseEvent):void{ var _local2:String; _local2 = SpilGame.getMoreGamesLink("SelectMenuScreen"); navigateToURL(new URLRequest(_local2), "_balnk"); } public function hitgnez():void{ var _local1:uint; var _local2:uint; _local1 = 0; while (_local1 < chickmcar.length) { _local2 = 0; while (_local2 < gnezmcar.length) { if (chickmcar[_local1].dead == false){ if (chickmcar[_local1].robohit.hitTestObject(gnezmcar[_local2])){ if (gnezmcar[_local2].iss == "1"){ chickmcar[_local1].livenum = (chickmcar[_local1].livenum - (gnezmcar[_local2].width * 2)); chickmcar[_local1].live.live.width = ((70 * chickmcar[_local1].livenum) / 100); chickmcar[_local1].live.live.gotoAndStop(34); gnezmcar[_local2].iss = "0"; create_sens(gnezmcar[_local2].x, gnezmcar[_local2].y, ((gnezmcar[_local2].width / 2) + (gnezmcar[_local2].width / 3))); gnezmcar[_local2].dead = true; }; if (chickmcar[_local1].livenum <= 0){ chickmcar[_local1].dead = true; }; }; }; _local2++; }; _local1++; }; } public function worldClear(){ var _local1:uint; var _local2:uint; all_mcs = all_mcs.concat(kvadmcar, chickmcar, gnezmcar); _local1 = 0; while (_local1 < all_mcs.length) { if (all_mcs[_local1] != undefined){ removeChild(all_mcs[_local1]); delete all_mcs[_local1]; }; _local1++; }; all_obj = all_obj.concat(kvadobjar, chickobjar, gnezobjar, listsens); _local2 = 0; while (_local2 < all_obj.length) { if (all_obj[_local2] != undefined){ m_world.DestroyBody(all_obj[_local2]); all_obj[_local2] = null; }; _local2++; }; kvadmcar = []; kvadobjar = []; chickmcar = []; chickobjar = []; gnezmcar = []; gnezobjar = []; all_mcs = []; all_obj = []; listsens = []; init(); } public function selmcClick(_arg1:Event):void{ var _local2:GlowFilter; var _local3:GlowFilter; if (estpower > 0){ _local2 = new GlowFilter(0xFF0000, 1, 12, 12, 2, 3, false, false); _local3 = new GlowFilter(0xFF0000, 1, 12, 12, 2, 3, true, false); _arg1.target.ln = 1; _arg1.target.addEventListener(Event.ENTER_FRAME, lasd); _arg1.target.filters = [_local2, _local3]; cursorm.filters = [_local2, _local3]; cursorm.ln = 1; cursorm.addEventListener(Event.ENTER_FRAME, lasd); }; } private function onServicesFailed(_arg1:ErrorEvent):void{ trace((("SpilGamesServices failed: " + _arg1.text) + "\n")); } public static function SubmitScore(_arg1:int):void{ ScoreService.submitScore(_arg1, instance.onScoreRequestProcessed); } public static function SubmitAward(_arg1:int):void{ AwardsService.submitAward(("award" + _arg1), instance.onAwardRequestProcessed); } } }//package
Section 138
//mainclass (mainclass) package { public dynamic class mainclass extends Main { } }//package
Section 139
//menumc (menumc) package { import flash.display.*; public dynamic class menumc extends MovieClip { public var mgb:MovieClip; public var conb:MovieClip; public var bl:MovieClip; public var amb:MovieClip; public var higb:SimpleButton; public var ngb:MovieClip; } }//package
Section 140
//menupan (menupan) package { import flash.display.*; import flash.text.*; public dynamic class menupan extends MovieClip { public var lvltxt:TextField; public var powertxt:TextField; public var bl:MovieClip; public var powerline:MovieClip; public var scoretxt:TextField; public var resbtn:MovieClip; public var mmbtn:MovieClip; } }//package
Section 141
//musicmc (musicmc) package { import flash.display.*; public dynamic class musicmc extends MovieClip { } }//package
Section 142
//MyRectangle (MyRectangle) package { import flash.display.*; public dynamic class MyRectangle extends MovieClip { } }//package
Section 143
//nextbtnm (nextbtnm) package { import flash.display.*; public dynamic class nextbtnm extends MovieClip { } }//package
Section 144
//palkamc (palkamc) package { import flash.display.*; public dynamic class palkamc extends MovieClip { } }//package
Section 145
//perehodmc (perehodmc) package { import flash.display.*; public dynamic class perehodmc extends MovieClip { } }//package
Section 146
//PixelExplosion (PixelExplosion) package { import flash.events.*; import flash.display.*; public class PixelExplosion extends Sprite { private var img_bmp:Bitmap; private var K:Number; private var V:Number; private var pixelsCount:uint; private var ySpeed:Array; private var h:uint; private var minPixelLife:Number; private var w:uint; private var pixelAlpha:Array; private var deadPixel:uint; private var r:uint; private var img_mc:Sprite; private var pixel:Array; private var maxPixelLife:Number; private var xSpeed:Array; private var outAlpha:Number; private var img:BitmapData; private var xA:Number; private var yA:Number; private var overAlpha:Number; public function PixelExplosion(_arg1:uint, _arg2:BitmapData, _arg3:Number=14, _arg4:Number=0.1, _arg5:Number=0, _arg6:Number=14, _arg7:Number=0.2, _arg8:Number=0.5, _arg9:Number=1, _arg10:Number=0.8){ img_mc = new Sprite(); super(); this.overAlpha = _arg9; this.outAlpha = _arg10; this.V = (_arg3 / _arg1); this.K = _arg4; this.xA = (_arg5 / _arg1); this.yA = (_arg6 / _arg1); this.minPixelLife = (1 / (_arg7 * _arg1)); this.maxPixelLife = (1 / (_arg8 * _arg1)); img = _arg2; img_bmp = new Bitmap(img); img_mc.addChild(img_bmp); w = img.width; h = img.height; pixelsCount = (w * h); pixel = formArray(w, h); pixelAlpha = formArray(w, h); xSpeed = formArray(w, h); ySpeed = formArray(w, h); createPixelArray(); img_mc.alpha = _arg10; addChild(img_mc); mouseDownListener(); } private function setSpeed():void{ var _local1:uint; var _local2:uint; _local1 = 0; while (_local1 < w) { _local2 = 0; while (_local2 < h) { xSpeed[_local1][_local2] = ((K * (0.5 - Math.random())) + ((V * ((_local1 - img_mc.x) - (img_mc.width / 2))) * Math.random())); ySpeed[_local1][_local2] = ((K * (0.5 - Math.random())) + ((V * ((_local2 - img_mc.y) - 10)) * Math.random())); _local2++; }; _local1++; }; } private function formArray(_arg1:uint, _arg2:uint):Array{ var _local3:Array; var _local4:uint; _local3 = new Array(_arg1); _local4 = 0; while (_local4 < _arg1) { _local3[_local4] = new Array(_arg2); _local4++; }; return (_local3); } private function setAlpha():void{ var _local1:uint; var _local2:uint; _local1 = 0; while (_local1 < w) { _local2 = 0; while (_local2 < h) { pixelAlpha[_local1][_local2] = (minPixelLife + ((maxPixelLife - minPixelLife) * Math.random())); _local2++; }; _local1++; }; } private function enterFrameHandler(_arg1:Event):void{ var _local2:uint; var _local3:uint; _local2 = 0; while (_local2 < w) { _local3 = 0; while (_local3 < h) { if (pixel[_local2][_local3] != null){ pixel[_local2][_local3].x = (pixel[_local2][_local3].x + (xSpeed[_local2][_local3] + (xA / 2))); xSpeed[_local2][_local3] = (xSpeed[_local2][_local3] + xA); pixel[_local2][_local3].y = (pixel[_local2][_local3].y + (ySpeed[_local2][_local3] + (yA / 2))); ySpeed[_local2][_local3] = (ySpeed[_local2][_local3] + yA); pixel[_local2][_local3].alpha = (pixel[_local2][_local3].alpha - pixelAlpha[_local2][_local3]); if (pixel[_local2][_local3].alpha <= 0){ removeChild(pixel[_local2][_local3]); pixel[_local2][_local3] = new Shape(); pixel[_local2][_local3] = null; deadPixel++; }; }; _local3++; }; _local2++; }; if (deadPixel == pixelsCount){ removeEventListener(Event.ENTER_FRAME, enterFrameHandler); deactivate(); }; } private function showPixelArray():void{ var _local1:uint; var _local2:uint; _local1 = 0; while (_local1 < w) { _local2 = 0; while (_local2 < h) { addChild(pixel[_local1][_local2]); _local2++; }; _local1++; }; } public function deactivate():void{ pixel = null; pixelAlpha = null; xSpeed = null; ySpeed = null; } private function deleteImage():void{ img_mc.removeChild(img_bmp); removeChild(img_mc); img = null; img_bmp = null; img_mc = null; } private function createPixelArray():void{ var _local1:uint; var _local2:uint; var _local3:uint; _local2 = 0; while (_local2 < w) { _local3 = 0; while (_local3 < h) { _local1 = ((img.getPixel32(_local2, _local3) >> 24) & 0xFF); pixel[_local2][_local3] = new Shape(); if (_local1 != 0){ pixel[_local2][_local3].alpha = (_local1 / 0xFF); pixel[_local2][_local3].graphics.lineStyle(0, 0, 0); pixel[_local2][_local3].graphics.beginFill(img.getPixel(_local2, _local3)); pixel[_local2][_local3].graphics.drawRect(0, 0, 1, 1); pixel[_local2][_local3].graphics.endFill(); pixel[_local2][_local3].x = _local2; pixel[_local2][_local3].y = _local3; }; _local3++; }; _local2++; }; } private function mouseDownListener():void{ setSpeed(); setAlpha(); showPixelArray(); deleteImage(); addEventListener(Event.ENTER_FRAME, enterFrameHandler); } } }//package
Section 147
//Preloader (Preloader) package { import flash.display.*; import flash.events.*; import spill.localisation.*; import flash.ui.*; import flash.net.*; import flash.media.*; import flash.filters.*; import com.spilgames.api.*; public class Preloader extends MovieClip { private var flongamovem; private var progressBar:Sprite; private static const ENTRY_FRAME:int = 2; public function Preloader():void{ Languages.initialize(); SpilGame.initialize("Rolling_drones", PortalGroup.TEENS, "Rolling_drones.html", this, true); super(); stop(); flongamovem = new flongamove(); flongamovem.x = (700 / 2); flongamovem.y = (525 / 2); addChild(flongamovem); flongamovem.bl.addEventListener(MouseEvent.CLICK, btnClick); flongamovem.bl.stop(); flongamovem.bl.buttonMode = true; loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler); loaderInfo.addEventListener(Event.COMPLETE, completeHandler); } private function enterFrameHandler(_arg1:Event):void{ if (currentFrame >= ENTRY_FRAME){ removeEventListener(Event.ENTER_FRAME, enterFrameHandler); stop(); removeChild(flongamovem); }; } private function progressHandler(_arg1:ProgressEvent):void{ flongamovem.fText.text = (Math.round(((_arg1.bytesLoaded / _arg1.bytesTotal) * 100)) + "%"); } private function btnClick(_arg1:MouseEvent):void{ var _local2:String; _local2 = SpilGame.getMoreGamesLink("PreloaderScreen"); navigateToURL(new URLRequest(_local2), "_balnk"); } private function completeHandler(_arg1:Event):void{ play(); addEventListener(Event.ENTER_FRAME, enterFrameHandler); } } }//package
Section 148
//resbtnm (resbtnm) package { import flash.display.*; public dynamic class resbtnm extends MovieClip { } }//package
Section 149
//selectmc (selectmc) package { import flash.display.*; import flash.text.*; public dynamic class selectmc extends MovieClip { public var bl:MovieClip; public var scorebtn:MovieClip; public var menubtn:MovieClip; public var scoretxt:TextField; } }//package
Section 150
//soundmc (soundmc) package { import flash.display.*; public dynamic class soundmc extends MovieClip { } }//package
Section 151
//trianglemc (trianglemc) package { import flash.display.*; public dynamic class trianglemc extends MovieClip { } }//package
Section 152
//zv1 (zv1) package { import flash.media.*; public dynamic class zv1 extends Sound { } }//package
Section 153
//zv2 (zv2) package { import flash.media.*; public dynamic class zv2 extends Sound { } }//package
Section 154
//zv3 (zv3) package { import flash.media.*; public dynamic class zv3 extends Sound { } }//package
Section 155
//zv4 (zv4) package { import flash.media.*; public dynamic class zv4 extends Sound { } }//package
Section 156
//zvmus (zvmus) package { import flash.media.*; public dynamic class zvmus extends Sound { } }//package
Section 157
//zvmus2 (zvmus2) package { import flash.media.*; public dynamic class zvmus2 extends Sound { } }//package
Section 158
//zvv1 (zvv1) package { import flash.media.*; public dynamic class zvv1 extends Sound { } }//package
Section 159
//zvv2 (zvv2) package { import flash.media.*; public dynamic class zvv2 extends Sound { } }//package
Section 160
//zvv3 (zvv3) package { import flash.media.*; public dynamic class zvv3 extends Sound { } }//package
Section 161
//zvv4 (zvv4) package { import flash.media.*; public dynamic class zvv4 extends Sound { } }//package

Library Items

Symbol 1 Font {Font1}Used by:16 54
Symbol 2 Sound {zvv4}
Symbol 3 Sound {zvv3}
Symbol 4 Sound {zvv2}
Symbol 5 Sound {zvv1}
Symbol 6 Sound {zv4}Used by:392
Symbol 7 Sound {zv3}Used by:392
Symbol 8 Sound {zv2}Used by:392
Symbol 9 Sound {zv1}Used by:392
Symbol 10 FontUsed by:11 13
Symbol 11 TextUses:10Used by:14
Symbol 12 GraphicUsed by:14
Symbol 13 TextUses:10Used by:14
Symbol 14 Button {spill.localisation.SpilGamesLink}Uses:11 12 13
Symbol 15 GraphicUsed by:43
Symbol 16 EditableTextUses:1Used by:43
Symbol 17 GraphicUsed by:43 50 374 392
Symbol 18 GraphicUsed by:42
Symbol 19 GraphicUsed by:42
Symbol 20 GraphicUsed by:42
Symbol 21 GraphicUsed by:42
Symbol 22 GraphicUsed by:42
Symbol 23 GraphicUsed by:42
Symbol 24 GraphicUsed by:42
Symbol 25 GraphicUsed by:42
Symbol 26 GraphicUsed by:42
Symbol 27 GraphicUsed by:42
Symbol 28 GraphicUsed by:42
Symbol 29 GraphicUsed by:42
Symbol 30 GraphicUsed by:42
Symbol 31 GraphicUsed by:42
Symbol 32 GraphicUsed by:42
Symbol 33 GraphicUsed by:42
Symbol 34 GraphicUsed by:42
Symbol 35 GraphicUsed by:42
Symbol 36 GraphicUsed by:42
Symbol 37 GraphicUsed by:42
Symbol 38 BitmapUsed by:39
Symbol 39 GraphicUses:38Used by:42
Symbol 40 BitmapUsed by:41
Symbol 41 GraphicUses:40Used by:42
Symbol 42 MovieClip {Untitled_fla.flag_icon_164}Uses:18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 41Used by:43 50
Symbol 43 MovieClip {spill.localisation.LanguageSelectBox_mc}Uses:15 16 17 42
Symbol 44 GraphicUsed by:47 326 381
Symbol 45 GraphicUsed by:47
Symbol 46 GraphicUsed by:47
Symbol 47 ButtonUses:44 45 46Used by:50
Symbol 48 FontUsed by:49
Symbol 49 EditableTextUses:48Used by:50
Symbol 50 MovieClip {Untitled_fla.l_br_162}Uses:47 17 42 49Used by:53
Symbol 51 GraphicUsed by:52
Symbol 52 MovieClipUses:51Used by:53
Symbol 53 MovieClip {spill.localisation.LanguageSelectPopup_mc}Uses:50 52
Symbol 54 EditableTextUses:1Used by:198
Symbol 55 FontUsed by:56
Symbol 56 EditableTextUses:55Used by:198
Symbol 57 GraphicUsed by:58
Symbol 58 MovieClipUses:57Used by:59
Symbol 59 MovieClipUses:58Used by:197
Symbol 60 GraphicUsed by:71
Symbol 61 GraphicUsed by:71
Symbol 62 GraphicUsed by:71
Symbol 63 GraphicUsed by:71 189 195
Symbol 64 GraphicUsed by:71
Symbol 65 GraphicUsed by:71
Symbol 66 GraphicUsed by:71
Symbol 67 GraphicUsed by:71
Symbol 68 GraphicUsed by:71
Symbol 69 GraphicUsed by:70
Symbol 70 MovieClipUses:69Used by:71
Symbol 71 MovieClipUses:60 61 62 63 64 65 66 67 68 70Used by:197
Symbol 72 GraphicUsed by:73
Symbol 73 MovieClipUses:72Used by:197
Symbol 74 GraphicUsed by:75
Symbol 75 MovieClipUses:74Used by:197
Symbol 76 GraphicUsed by:77
Symbol 77 MovieClipUses:76Used by:197
Symbol 78 GraphicUsed by:79
Symbol 79 MovieClipUses:78Used by:197
Symbol 80 GraphicUsed by:81
Symbol 81 MovieClipUses:80Used by:197
Symbol 82 GraphicUsed by:83
Symbol 83 MovieClipUses:82Used by:197
Symbol 84 GraphicUsed by:85
Symbol 85 MovieClipUses:84Used by:197
Symbol 86 GraphicUsed by:87
Symbol 87 MovieClipUses:86Used by:197
Symbol 88 GraphicUsed by:89
Symbol 89 MovieClipUses:88Used by:197
Symbol 90 GraphicUsed by:91
Symbol 91 MovieClipUses:90Used by:197
Symbol 92 GraphicUsed by:93
Symbol 93 MovieClipUses:92Used by:197
Symbol 94 GraphicUsed by:95
Symbol 95 MovieClipUses:94Used by:197
Symbol 96 GraphicUsed by:97
Symbol 97 MovieClipUses:96Used by:197
Symbol 98 GraphicUsed by:99
Symbol 99 MovieClipUses:98Used by:197
Symbol 100 GraphicUsed by:101
Symbol 101 MovieClipUses:100Used by:102
Symbol 102 MovieClipUses:101Used by:197
Symbol 103 GraphicUsed by:104
Symbol 104 MovieClipUses:103Used by:105
Symbol 105 MovieClipUses:104Used by:197
Symbol 106 GraphicUsed by:107
Symbol 107 MovieClipUses:106Used by:108
Symbol 108 MovieClipUses:107Used by:197
Symbol 109 GraphicUsed by:110
Symbol 110 MovieClipUses:109Used by:111
Symbol 111 MovieClipUses:110Used by:197
Symbol 112 GraphicUsed by:113
Symbol 113 MovieClipUses:112Used by:114
Symbol 114 MovieClipUses:113Used by:197
Symbol 115 GraphicUsed by:116
Symbol 116 MovieClipUses:115Used by:117
Symbol 117 MovieClipUses:116Used by:197
Symbol 118 GraphicUsed by:119
Symbol 119 MovieClipUses:118Used by:120
Symbol 120 MovieClipUses:119Used by:197
Symbol 121 GraphicUsed by:122
Symbol 122 MovieClipUses:121Used by:123
Symbol 123 MovieClipUses:122Used by:197
Symbol 124 GraphicUsed by:125
Symbol 125 MovieClipUses:124Used by:126
Symbol 126 MovieClipUses:125Used by:197
Symbol 127 GraphicUsed by:128
Symbol 128 MovieClipUses:127Used by:129
Symbol 129 MovieClipUses:128Used by:197
Symbol 130 GraphicUsed by:131
Symbol 131 MovieClipUses:130Used by:132
Symbol 132 MovieClipUses:131Used by:197
Symbol 133 GraphicUsed by:134
Symbol 134 MovieClipUses:133Used by:135
Symbol 135 MovieClipUses:134Used by:197
Symbol 136 GraphicUsed by:137
Symbol 137 MovieClipUses:136Used by:138
Symbol 138 MovieClipUses:137Used by:197
Symbol 139 GraphicUsed by:140
Symbol 140 MovieClipUses:139Used by:197
Symbol 141 GraphicUsed by:142
Symbol 142 MovieClipUses:141Used by:197
Symbol 143 GraphicUsed by:144
Symbol 144 MovieClipUses:143Used by:197
Symbol 145 GraphicUsed by:146
Symbol 146 MovieClipUses:145Used by:197
Symbol 147 GraphicUsed by:148
Symbol 148 MovieClipUses:147Used by:197
Symbol 149 GraphicUsed by:150
Symbol 150 MovieClipUses:149Used by:197
Symbol 151 GraphicUsed by:152
Symbol 152 MovieClipUses:151Used by:197
Symbol 153 GraphicUsed by:154
Symbol 154 MovieClipUses:153Used by:197
Symbol 155 GraphicUsed by:156
Symbol 156 MovieClipUses:155Used by:197
Symbol 157 BitmapUsed by:158
Symbol 158 GraphicUses:157Used by:159
Symbol 159 MovieClipUses:158Used by:197
Symbol 160 BitmapUsed by:161
Symbol 161 GraphicUses:160Used by:162
Symbol 162 MovieClipUses:161Used by:197
Symbol 163 GraphicUsed by:164
Symbol 164 MovieClipUses:163Used by:197
Symbol 165 GraphicUsed by:166
Symbol 166 MovieClipUses:165Used by:197
Symbol 167 GraphicUsed by:168
Symbol 168 MovieClipUses:167Used by:197
Symbol 169 GraphicUsed by:170
Symbol 170 MovieClipUses:169Used by:197
Symbol 171 GraphicUsed by:172
Symbol 172 MovieClipUses:171Used by:197
Symbol 173 GraphicUsed by:174
Symbol 174 MovieClipUses:173Used by:197
Symbol 175 GraphicUsed by:176
Symbol 176 MovieClipUses:175Used by:197
Symbol 177 GraphicUsed by:178
Symbol 178 MovieClipUses:177Used by:197
Symbol 179 GraphicUsed by:180
Symbol 180 MovieClipUses:179Used by:181
Symbol 181 MovieClipUses:180Used by:197
Symbol 182 GraphicUsed by:185
Symbol 183 GraphicUsed by:185
Symbol 184 GraphicUsed by:185 193
Symbol 185 MovieClipUses:182 183 184Used by:190
Symbol 186 GraphicUsed by:189 195
Symbol 187 GraphicUsed by:188 194
Symbol 188 MovieClipUses:187Used by:189
Symbol 189 MovieClipUses:186 188 63Used by:190
Symbol 190 MovieClipUses:185 189Used by:197
Symbol 191 GraphicUsed by:192 193
Symbol 192 MovieClipUses:191Used by:193
Symbol 193 MovieClipUses:192 191 184Used by:196
Symbol 194 MovieClipUses:187Used by:195
Symbol 195 MovieClipUses:186 194 63Used by:196
Symbol 196 MovieClipUses:193 195Used by:197
Symbol 197 MovieClipUses:59 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 102 105 108 111 114 117 120 123 126 129 132 135 138 140 142 144 146 148 150 152 154 156 159 162 164 166 168 170 172 174 176 178 181 190 196Used by:198 306 315 362
Symbol 198 MovieClipUses:54 56 197
Symbol 199 MovieClip {com.scoreplug.graphics.ContainerPreloader}
Symbol 200 BitmapUsed by:201
Symbol 201 GraphicUses:200Used by:204
Symbol 202 BitmapUsed by:203
Symbol 203 GraphicUses:202Used by:204
Symbol 204 MovieClip {trianglemc}Uses:201 203
Symbol 205 GraphicUsed by:206
Symbol 206 MovieClipUses:205Used by:207
Symbol 207 MovieClip {explosion2}Uses:206
Symbol 208 GraphicUsed by:209
Symbol 209 MovieClipUses:208Used by:212
Symbol 210 GraphicUsed by:211
Symbol 211 MovieClipUses:210Used by:212
Symbol 212 MovieClip {explosion}Uses:209 211
Symbol 213 GraphicUsed by:216
Symbol 214 FontUsed by:215
Symbol 215 EditableTextUses:214Used by:216
Symbol 216 MovieClip {lvlcomp}Uses:213 215
Symbol 217 BitmapUsed by:218
Symbol 218 GraphicUses:217Used by:223
Symbol 219 BitmapUsed by:220
Symbol 220 GraphicUses:219Used by:223
Symbol 221 BitmapUsed by:222
Symbol 222 GraphicUses:221Used by:223
Symbol 223 MovieClip {circmc}Uses:218 220 222
Symbol 224 BitmapUsed by:225 226 229
Symbol 225 GraphicUses:224Used by:231
Symbol 226 GraphicUses:224Used by:231
Symbol 227 BitmapUsed by:228 230
Symbol 228 GraphicUses:227Used by:231
Symbol 229 GraphicUses:224Used by:231
Symbol 230 GraphicUses:227Used by:231
Symbol 231 MovieClip {palkamc}Uses:225 226 228 229 230
Symbol 232 BitmapUsed by:233
Symbol 233 GraphicUses:232Used by:234
Symbol 234 MovieClipUses:233Used by:240
Symbol 235 FontUsed by:236 237 313 366 367 372
Symbol 236 EditableTextUses:235Used by:240
Symbol 237 EditableTextUses:235Used by:240
Symbol 238 GraphicUsed by:239
Symbol 239 MovieClipUses:238Used by:240
Symbol 240 MovieClip {m_btn}Uses:234 236 237 239
Symbol 241 GraphicUsed by:242 243
Symbol 242 MovieClip {resbtnm}Uses:241
Symbol 243 MovieClip {nextbtnm}Uses:241
Symbol 244 GraphicUsed by:245
Symbol 245 MovieClip {btnbtn}Uses:244
Symbol 246 BitmapUsed by:247
Symbol 247 GraphicUses:246Used by:250
Symbol 248 GraphicUsed by:249
Symbol 249 MovieClipUses:248Used by:250 255
Symbol 250 MovieClip {soundmc}Uses:247 249
Symbol 251 GraphicUsed by:252
Symbol 252 MovieClip {exitmc}Uses:251
Symbol 253 BitmapUsed by:254
Symbol 254 GraphicUses:253Used by:255
Symbol 255 MovieClip {musicmc}Uses:254 249
Symbol 256 BitmapUsed by:257
Symbol 257 GraphicUses:256Used by:277
Symbol 258 BitmapUsed by:259
Symbol 259 GraphicUses:258Used by:277
Symbol 260 BitmapUsed by:261
Symbol 261 GraphicUses:260Used by:277
Symbol 262 BitmapUsed by:263
Symbol 263 GraphicUses:262Used by:277
Symbol 264 GraphicUsed by:268
Symbol 265 GraphicUsed by:266 278
Symbol 266 MovieClipUses:265Used by:267
Symbol 267 MovieClip {spill.localisation.LocalizedTextField}Uses:266Used by:268 269 271 274 275 298 304 305 307 312 314 316 317 363 364 365 391
Symbol 268 MovieClip {Untitled_fla.ins_move1_1_134}Uses:264 267Used by:272
Symbol 269 MovieClip {Untitled_fla.ins_move1_2_135}Uses:267Used by:272
Symbol 270 GraphicUsed by:271
Symbol 271 MovieClip {Untitled_fla.ins_move1_3_136}Uses:270 267Used by:272
Symbol 272 MovieClipUses:268 269 271Used by:277
Symbol 273 GraphicUsed by:274
Symbol 274 MovieClip {Untitled_fla.ins_move2_1_138}Uses:273 267Used by:276
Symbol 275 MovieClip {Untitled_fla.ins_move2_2_139}Uses:267Used by:276
Symbol 276 MovieClipUses:274 275Used by:277
Symbol 277 MovieClip {fonmc}Uses:257 259 261 263 272 276
Symbol 278 MovieClipUses:265Used by:279
Symbol 279 MovieClip {spill.localisation.LanguageSelectBox}Uses:278Used by:308
Symbol 280 BitmapUsed by:281 382
Symbol 281 GraphicUses:280Used by:308
Symbol 282 BitmapUsed by:283
Symbol 283 GraphicUses:282Used by:284
Symbol 284 MovieClipUses:283Used by:285
Symbol 285 MovieClipUses:284Used by:308
Symbol 286 BitmapUsed by:287
Symbol 287 GraphicUses:286Used by:288
Symbol 288 MovieClipUses:287Used by:308
Symbol 289 GraphicUsed by:290
Symbol 290 MovieClipUses:289Used by:293
Symbol 291 BitmapUsed by:292
Symbol 292 GraphicUses:291Used by:293
Symbol 293 MovieClipUses:290 292Used by:294
Symbol 294 MovieClipUses:293Used by:308
Symbol 295 BitmapUsed by:296
Symbol 296 GraphicUses:295Used by:308
Symbol 297 GraphicUsed by:298 305
Symbol 298 MovieClip {Untitled_fla.mbtn1_124}Uses:297 267Used by:308
Symbol 299 BitmapUsed by:300
Symbol 300 GraphicUses:299Used by:303
Symbol 301 BitmapUsed by:302
Symbol 302 GraphicUses:301Used by:303
Symbol 303 ButtonUses:300 302Used by:308
Symbol 304 MovieClip {Untitled_fla.mbtn3_126}Uses:267Used by:308
Symbol 305 MovieClip {Untitled_fla.mbtn4_127}Uses:297 267Used by:308
Symbol 306 MovieClip {Untitled_fla.blmenu_128}Uses:197Used by:308
Symbol 307 MovieClip {Untitled_fla.amb_129}Uses:267Used by:308
Symbol 308 MovieClip {menumc}Uses:281 285 288 294 296 298 303 304 305 306 307 279
Symbol 309 BitmapUsed by:311
Symbol 310 BitmapUsed by:311
Symbol 311 GraphicUses:309 310Used by:318
Symbol 312 MovieClip {Untitled_fla.Symbol2copy_113}Uses:267Used by:318
Symbol 313 EditableTextUses:235Used by:318
Symbol 314 MovieClip {Untitled_fla.selbtn2_4}Uses:267Used by:318 391
Symbol 315 MovieClip {Untitled_fla.blselect_114}Uses:197Used by:318
Symbol 316 MovieClip {Untitled_fla.Symbol2_115}Uses:267Used by:318
Symbol 317 MovieClip {Untitled_fla.selbtn2copy_116}Uses:267Used by:318
Symbol 318 MovieClip {selectmc}Uses:311 312 313 314 315 316 317
Symbol 319 BitmapUsed by:320
Symbol 320 GraphicUses:319Used by:323
Symbol 321 BitmapUsed by:322
Symbol 322 GraphicUses:321Used by:323
Symbol 323 MovieClip {kvadmc}Uses:320 322
Symbol 324 BitmapUsed by:325
Symbol 325 GraphicUses:324Used by:341
Symbol 326 MovieClipUses:44Used by:341
Symbol 327 BitmapUsed by:328
Symbol 328 GraphicUses:327Used by:335
Symbol 329 BitmapUsed by:330
Symbol 330 GraphicUses:329Used by:335
Symbol 331 BitmapUsed by:332
Symbol 332 GraphicUses:331Used by:335
Symbol 333 BitmapUsed by:334
Symbol 334 GraphicUses:333Used by:335
Symbol 335 MovieClip {Untitled_fla.glaz_golova_108}Uses:328 330 332 334Used by:341
Symbol 336 ShapeTweeningUsed by:339
Symbol 337 ShapeTweeningUsed by:339
Symbol 338 GraphicUsed by:339
Symbol 339 MovieClipUses:336 337 338Used by:340
Symbol 340 MovieClip {Untitled_fla.robot_live_109}Uses:339Used by:341
Symbol 341 MovieClip {chickmc}Uses:325 326 335 340
Symbol 342 BitmapUsed by:343
Symbol 343 GraphicUses:342Used by:344
Symbol 344 MovieClip {gnezdomc}Uses:343
Symbol 345 BitmapUsed by:346
Symbol 346 GraphicUses:345Used by:350
Symbol 347 GraphicUsed by:348
Symbol 348 MovieClipUses:347Used by:349
Symbol 349 MovieClipUses:348Used by:350
Symbol 350 MovieClip {gnezd3}Uses:346 349
Symbol 351 BitmapUsed by:352 354
Symbol 352 GraphicUses:351Used by:353
Symbol 353 MovieClip {gnezd2}Uses:352
Symbol 354 GraphicUses:351Used by:355
Symbol 355 MovieClip {gnezd1}Uses:354
Symbol 356 GraphicUsed by:359
Symbol 357 GraphicUsed by:358
Symbol 358 MovieClipUses:357Used by:359
Symbol 359 MovieClip {MyRectangle}Uses:356 358
Symbol 360 BitmapUsed by:361
Symbol 361 GraphicUses:360Used by:373
Symbol 362 MovieClip {Untitled_fla.blgame_17}Uses:197Used by:373
Symbol 363 MovieClip {Untitled_fla.ipbut1_93}Uses:267Used by:373
Symbol 364 MovieClip {Untitled_fla.ipbut1_2_94}Uses:267Used by:373
Symbol 365 MovieClip {Untitled_fla.ipbut1_2copy_95}Uses:267Used by:373
Symbol 366 EditableTextUses:235Used by:373
Symbol 367 EditableTextUses:235Used by:373
Symbol 368 GraphicUsed by:371
Symbol 369 GraphicUsed by:370
Symbol 370 MovieClipUses:369Used by:371
Symbol 371 MovieClip {Untitled_fla.power_line_96}Uses:368 370Used by:373
Symbol 372 EditableTextUses:235Used by:373
Symbol 373 MovieClip {menupan}Uses:361 362 363 364 365 366 367 371 372
Symbol 374 MovieClipUses:17Used by:375
Symbol 375 MovieClip {perehodmc}Uses:374
Symbol 376 GraphicUsed by:377
Symbol 377 MovieClipUses:376Used by:380
Symbol 378 GraphicUsed by:380
Symbol 379 GraphicUsed by:380
Symbol 380 MovieClip {cursormc}Uses:377 378 379
Symbol 381 MovieClip {blendmc}Uses:44
Symbol 382 GraphicUses:280Used by:391
Symbol 383 BitmapUsed by:384
Symbol 384 GraphicUses:383Used by:387 388 389 390
Symbol 385 BitmapUsed by:386
Symbol 386 GraphicUses:385Used by:387 388 389 390
Symbol 387 MovieClipUses:384 386Used by:391
Symbol 388 MovieClipUses:384 386Used by:391
Symbol 389 MovieClipUses:384 386Used by:391
Symbol 390 MovieClipUses:384 386Used by:391
Symbol 391 MovieClip {awardmc}Uses:382 314 387 388 389 390 267
Symbol 392 MovieClip {mainclass}Uses:17 9 8 7 6Used by:Timeline
Symbol 393 GraphicUsed by:396
Symbol 394 Sound {zvmus}Used by:396
Symbol 395 Sound {zvmus2}Used by:396
Symbol 396 MovieClipUses:393 394 395Used by:Timeline

Instance Names

"languageName_text"Symbol 43 MovieClip {spill.localisation.LanguageSelectBox_mc} Frame 1Symbol 16 EditableText
"flag"Symbol 43 MovieClip {spill.localisation.LanguageSelectBox_mc} Frame 1Symbol 42 MovieClip {Untitled_fla.flag_icon_164}
"flag"Symbol 50 MovieClip {Untitled_fla.l_br_162} Frame 1Symbol 42 MovieClip {Untitled_fla.flag_icon_164}
"text"Symbol 50 MovieClip {Untitled_fla.l_br_162} Frame 1Symbol 49 EditableText
"l_de"Symbol 53 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 50 MovieClip {Untitled_fla.l_br_162}
"l_en_us"Symbol 53 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 50 MovieClip {Untitled_fla.l_br_162}
"l_fr"Symbol 53 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 50 MovieClip {Untitled_fla.l_br_162}
"l_it"Symbol 53 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 50 MovieClip {Untitled_fla.l_br_162}
"l_nl"Symbol 53 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 50 MovieClip {Untitled_fla.l_br_162}
"l_pl"Symbol 53 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 50 MovieClip {Untitled_fla.l_br_162}
"l_es_mx"Symbol 53 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 50 MovieClip {Untitled_fla.l_br_162}
"l_br"Symbol 53 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 50 MovieClip {Untitled_fla.l_br_162}
"l_cn"Symbol 53 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 50 MovieClip {Untitled_fla.l_br_162}
"l_en_uk"Symbol 53 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 50 MovieClip {Untitled_fla.l_br_162}
"l_es"Symbol 53 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 50 MovieClip {Untitled_fla.l_br_162}
"l_id"Symbol 53 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 50 MovieClip {Untitled_fla.l_br_162}
"l_jp"Symbol 53 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 50 MovieClip {Untitled_fla.l_br_162}
"l_pt"Symbol 53 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 50 MovieClip {Untitled_fla.l_br_162}
"l_ar"Symbol 53 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 50 MovieClip {Untitled_fla.l_br_162}
"l_in"Symbol 53 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 50 MovieClip {Untitled_fla.l_br_162}
"l_es_ar"Symbol 53 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 50 MovieClip {Untitled_fla.l_br_162}
"l_se"Symbol 53 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 50 MovieClip {Untitled_fla.l_br_162}
"l_ru"Symbol 53 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 50 MovieClip {Untitled_fla.l_br_162}
"fText"Symbol 198 MovieClip Frame 1Symbol 56 EditableText
"bl"Symbol 198 MovieClip Frame 1Symbol 197 MovieClip
"scoretxt"Symbol 240 MovieClip {m_btn} Frame 1Symbol 236 EditableText
"niztxt"Symbol 240 MovieClip {m_btn} Frame 1Symbol 237 EditableText
"verh"Symbol 240 MovieClip {m_btn} Frame 1Symbol 239 MovieClip
"__id0_"Symbol 268 MovieClip {Untitled_fla.ins_move1_1_134} Frame 1Symbol 267 MovieClip {spill.localisation.LocalizedTextField}
"__id1_"Symbol 269 MovieClip {Untitled_fla.ins_move1_2_135} Frame 1Symbol 267 MovieClip {spill.localisation.LocalizedTextField}
"__id2_"Symbol 271 MovieClip {Untitled_fla.ins_move1_3_136} Frame 1Symbol 267 MovieClip {spill.localisation.LocalizedTextField}
"__id3_"Symbol 274 MovieClip {Untitled_fla.ins_move2_1_138} Frame 1Symbol 267 MovieClip {spill.localisation.LocalizedTextField}
"__id4_"Symbol 275 MovieClip {Untitled_fla.ins_move2_2_139} Frame 1Symbol 267 MovieClip {spill.localisation.LocalizedTextField}
"__id5_"Symbol 298 MovieClip {Untitled_fla.mbtn1_124} Frame 1Symbol 267 MovieClip {spill.localisation.LocalizedTextField}
"__id6_"Symbol 304 MovieClip {Untitled_fla.mbtn3_126} Frame 1Symbol 267 MovieClip {spill.localisation.LocalizedTextField}
"__id7_"Symbol 305 MovieClip {Untitled_fla.mbtn4_127} Frame 1Symbol 267 MovieClip {spill.localisation.LocalizedTextField}
"bl"Symbol 306 MovieClip {Untitled_fla.blmenu_128} Frame 1Symbol 197 MovieClip
"__id8_"Symbol 307 MovieClip {Untitled_fla.amb_129} Frame 1Symbol 267 MovieClip {spill.localisation.LocalizedTextField}
"ngb"Symbol 308 MovieClip {menumc} Frame 1Symbol 298 MovieClip {Untitled_fla.mbtn1_124}
"higb"Symbol 308 MovieClip {menumc} Frame 1Symbol 303 Button
"mgb"Symbol 308 MovieClip {menumc} Frame 1Symbol 304 MovieClip {Untitled_fla.mbtn3_126}
"conb"Symbol 308 MovieClip {menumc} Frame 1Symbol 305 MovieClip {Untitled_fla.mbtn4_127}
"bl"Symbol 308 MovieClip {menumc} Frame 1Symbol 306 MovieClip {Untitled_fla.blmenu_128}
"amb"Symbol 308 MovieClip {menumc} Frame 1Symbol 307 MovieClip {Untitled_fla.amb_129}
"__id10_"Symbol 312 MovieClip {Untitled_fla.Symbol2copy_113} Frame 1Symbol 267 MovieClip {spill.localisation.LocalizedTextField}
"__id11_"Symbol 314 MovieClip {Untitled_fla.selbtn2_4} Frame 1Symbol 267 MovieClip {spill.localisation.LocalizedTextField}
"bl"Symbol 315 MovieClip {Untitled_fla.blselect_114} Frame 1Symbol 197 MovieClip
"__id12_"Symbol 316 MovieClip {Untitled_fla.Symbol2_115} Frame 1Symbol 267 MovieClip {spill.localisation.LocalizedTextField}
"__id13_"Symbol 317 MovieClip {Untitled_fla.selbtn2copy_116} Frame 1Symbol 267 MovieClip {spill.localisation.LocalizedTextField}
"scoretxt"Symbol 318 MovieClip {selectmc} Frame 1Symbol 313 EditableText
"menubtn"Symbol 318 MovieClip {selectmc} Frame 1Symbol 314 MovieClip {Untitled_fla.selbtn2_4}
"bl"Symbol 318 MovieClip {selectmc} Frame 1Symbol 315 MovieClip {Untitled_fla.blselect_114}
"scorebtn"Symbol 318 MovieClip {selectmc} Frame 1Symbol 317 MovieClip {Untitled_fla.selbtn2copy_116}
"live"Symbol 340 MovieClip {Untitled_fla.robot_live_109} Frame 1Symbol 339 MovieClip
"robohit"Symbol 341 MovieClip {chickmc} Frame 1Symbol 326 MovieClip
"head"Symbol 341 MovieClip {chickmc} Frame 1Symbol 335 MovieClip {Untitled_fla.glaz_golova_108}
"live"Symbol 341 MovieClip {chickmc} Frame 1Symbol 340 MovieClip {Untitled_fla.robot_live_109}
"bl"Symbol 362 MovieClip {Untitled_fla.blgame_17} Frame 1Symbol 197 MovieClip
"__id14_"Symbol 363 MovieClip {Untitled_fla.ipbut1_93} Frame 1Symbol 267 MovieClip {spill.localisation.LocalizedTextField}
"__id15_"Symbol 364 MovieClip {Untitled_fla.ipbut1_2_94} Frame 1Symbol 267 MovieClip {spill.localisation.LocalizedTextField}
"__id16_"Symbol 365 MovieClip {Untitled_fla.ipbut1_2copy_95} Frame 1Symbol 267 MovieClip {spill.localisation.LocalizedTextField}
"line"Symbol 371 MovieClip {Untitled_fla.power_line_96} Frame 1Symbol 370 MovieClip
"bl"Symbol 373 MovieClip {menupan} Frame 1Symbol 362 MovieClip {Untitled_fla.blgame_17}
"mmbtn"Symbol 373 MovieClip {menupan} Frame 1Symbol 363 MovieClip {Untitled_fla.ipbut1_93}
"resbtn"Symbol 373 MovieClip {menupan} Frame 1Symbol 364 MovieClip {Untitled_fla.ipbut1_2_94}
"scoretxt"Symbol 373 MovieClip {menupan} Frame 1Symbol 366 EditableText
"lvltxt"Symbol 373 MovieClip {menupan} Frame 1Symbol 367 EditableText
"powerline"Symbol 373 MovieClip {menupan} Frame 1Symbol 371 MovieClip {Untitled_fla.power_line_96}
"powertxt"Symbol 373 MovieClip {menupan} Frame 1Symbol 372 EditableText
"menubtn"Symbol 391 MovieClip {awardmc} Frame 1Symbol 314 MovieClip {Untitled_fla.selbtn2_4}
"aw1"Symbol 391 MovieClip {awardmc} Frame 1Symbol 387 MovieClip
"aw2"Symbol 391 MovieClip {awardmc} Frame 1Symbol 388 MovieClip
"aw3"Symbol 391 MovieClip {awardmc} Frame 1Symbol 389 MovieClip
"aw4"Symbol 391 MovieClip {awardmc} Frame 1Symbol 390 MovieClip
"__id17_"Symbol 391 MovieClip {awardmc} Frame 1Symbol 267 MovieClip {spill.localisation.LocalizedTextField}
"__id18_"Symbol 391 MovieClip {awardmc} Frame 1Symbol 267 MovieClip {spill.localisation.LocalizedTextField}
"__id19_"Symbol 391 MovieClip {awardmc} Frame 1Symbol 267 MovieClip {spill.localisation.LocalizedTextField}
"__id20_"Symbol 391 MovieClip {awardmc} Frame 1Symbol 267 MovieClip {spill.localisation.LocalizedTextField}

Special Tags

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

Labels

"br"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 1
"nl"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 2
"cn"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 3
"de"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 4
"es"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 5
"fr"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 6
"in"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 7
"it"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 8
"jp"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 9
"my"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 10
"ph"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 11
"pl"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 12
"pt"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 13
"ru"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 14
"se"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 15
"tr"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 16
"en_uk"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 17
"en_us"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 18
"id"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 19
"ar"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 20
"es_mx"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 21
"es_ar"Symbol 42 MovieClip {Untitled_fla.flag_icon_164} Frame 22
"www.agame.com"Symbol 197 MovieClip Frame 1
"www.game.com.cn"Symbol 197 MovieClip Frame 2
"www.zapjuegos.com"Symbol 197 MovieClip Frame 3
"www.spel.nl"Symbol 197 MovieClip Frame 4
"www.jeu.fr"Symbol 197 MovieClip Frame 5
"www.spielen.com"Symbol 197 MovieClip Frame 6
"www.clickjogos.com"Symbol 197 MovieClip Frame 7
"www.giocaregratis.it"Symbol 197 MovieClip Frame 8
"www.spel.se"Symbol 197 MovieClip Frame 9
"www.mygames.co.uk"Symbol 197 MovieClip Frame 10
"www.flashgames.ru"Symbol 197 MovieClip Frame 11
"www.game.co.in"Symbol 197 MovieClip Frame 12
"www.games.co.id"Symbol 197 MovieClip Frame 13
"www.minigry.pl"Symbol 197 MovieClip Frame 14
"www.asoyun.com"Symbol 197 MovieClip Frame 15
"www.game.com.my"Symbol 197 MovieClip Frame 16
"www.gamesgames.com"Symbol 197 MovieClip Frame 17
"www.spelletjes.nl"Symbol 197 MovieClip Frame 18
"www.jeux.fr"Symbol 197 MovieClip Frame 19
"www.jetztspielen.de"Symbol 197 MovieClip Frame 20
"www.gry.pl"Symbol 197 MovieClip Frame 21
"www.spela.se"Symbol 197 MovieClip Frame 22
"www.gioco.it"Symbol 197 MovieClip Frame 23
"www.juegos.com"Symbol 197 MovieClip Frame 24
"www.juegos.com.mx"Symbol 197 MovieClip Frame 25
"www.juegos.com.ar"Symbol 197 MovieClip Frame 26
"www.ojogos.com.br"Symbol 197 MovieClip Frame 27
"www.ourgames.ru"Symbol 197 MovieClip Frame 28
"www.games.co.uk"Symbol 197 MovieClip Frame 29
"www.oyunlar123.com"Symbol 197 MovieClip Frame 30
"www.girlsgogames.com"Symbol 197 MovieClip Frame 31
"www.girlsgogames.in"Symbol 197 MovieClip Frame 32
"www.girlsgogamestr.com"Symbol 197 MovieClip Frame 33
"www.girlsgogames.com.br"Symbol 197 MovieClip Frame 34
"www.girlsgogames.fr"Symbol 197 MovieClip Frame 35
"www.girlsgogames.co.uk"Symbol 197 MovieClip Frame 36
"www.girlsgogames.de"Symbol 197 MovieClip Frame 37
"www.girlsgogames.pl"Symbol 197 MovieClip Frame 38
"www.girlsgogames.ru"Symbol 197 MovieClip Frame 39
"www.juegosdechicas.com"Symbol 197 MovieClip Frame 40
"www.juegosdechicas.com.ar"Symbol 197 MovieClip Frame 41
"www.juegosdechicas.mx"Symbol 197 MovieClip Frame 42
"www.girlsgogames.it"Symbol 197 MovieClip Frame 43
"www.girlsgogames.es"Symbol 197 MovieClip Frame 44
"www.girlsgogames.nl"Symbol 197 MovieClip Frame 45
"www.girlsgogames.se"Symbol 197 MovieClip Frame 46
"www.ojogos.pt"Symbol 197 MovieClip Frame 47
"www.laro.com.ph"Symbol 197 MovieClip Frame 48
"www.egames.jp"Symbol 197 MovieClip Frame 49
"www.a10.com"Symbol 197 MovieClip Frame 50
"www.dailygame.com"Symbol 197 MovieClip Frame 51
"www.zapapa.com"Symbol 197 MovieClip Frame 52
"www.zapapa.nl"Symbol 197 MovieClip Frame 53




http://swfchan.com/22/109033/info.shtml
Created: 14/3 -2019 20:57:24 Last modified: 14/3 -2019 20:57:24 Server time: 22/12 -2024 09:15:07