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

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

Rebuild-the-Temple.swf

This is the info page for
Flash #109058

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


Text
add this to your site

add this to your site

BR

000

Rebuild

THE Temple

select level

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

check:

points:

Next Level

Next Level

-200

-250

-300

Walkthrough

Walkthrough

Help

Help

debug

debug

<p align="left"><font face="PerryGothic" size="22" color="#006699" letterSpacing="0.000000" kerning="1">100</font></p>

<p align="center"><font face="PerryGothic" size="38" color="#006699" letterSpacing="0.000000" kerning="1">5/13</font></p>

<p align="left"><font face="PerryGothic" size="38" color="#006699" letterSpacing="0.000000" kerning="1">00000</font></p>

<p align="left"><font face="Arial" size="15" color="#000000" letterSpacing="0.000000" kerning="1">mo</font></p>

<p align="left"><font face="Transmaidens" size="25" color="#ffffff" letterSpacing="0.000000" kerning="1">-100</font></p>

0000000

GamesOnly.net

Back

Back

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.Collision.*; import Box2D.Common.Math.*; 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.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ var _local3:b2ManifoldPoint; m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; _local3 = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactPoint; var _local8:b2ManifoldPoint; _local5 = m_shape1.m_body; _local6 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 38
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; 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.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var normal:b2Vec2; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ var _local1:int; normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 40
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var r2:b2Vec2; public var separation:Number; public var positionImpulse:Number; public var normalImpulse:Number; public var equalizedMass:Number; public var tangentMass:Number; public var tangentImpulse:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var normalMass:Number; public var velocityBias:Number; public var r1:b2Vec2; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 41
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var next:b2ContactEdge; public var other:b2Body; public var contact:b2Contact; public var prev:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 42
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn:Function; public var destroyFcn:Function; } }//package Box2D.Dynamics.Contacts
Section 43
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; 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.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2ContactSolver { public var m_constraintCount:int; public var m_constraints:Array; public var m_allocator; public var m_step:b2TimeStep; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local9:int; var _local10:b2Body; var _local11:b2Body; var _local12:int; var _local13:Array; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; var _local23:b2Manifold; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraint; var _local27:uint; var _local28:b2ManifoldPoint; var _local29:b2ContactConstraintPoint; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; m_step = new b2TimeStep(); m_constraints = new Array(); super(); m_step.dt = _arg1.dt; m_step.inv_dt = _arg1.inv_dt; m_step.maxIterations = _arg1.maxIterations; m_allocator = _arg4; m_constraintCount = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; m_constraintCount = (m_constraintCount + _local5.m_manifoldCount); _local6++; }; _local6 = 0; while (_local6 < m_constraintCount) { m_constraints[_local6] = new b2ContactConstraint(); _local6++; }; _local9 = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1.m_body; _local11 = _local5.m_shape2.m_body; _local12 = _local5.m_manifoldCount; _local13 = _local5.GetManifolds(); _local14 = _local5.m_friction; _local15 = _local5.m_restitution; _local16 = _local10.m_linearVelocity.x; _local17 = _local10.m_linearVelocity.y; _local18 = _local11.m_linearVelocity.x; _local19 = _local11.m_linearVelocity.y; _local20 = _local10.m_angularVelocity; _local21 = _local11.m_angularVelocity; _local22 = 0; while (_local22 < _local12) { _local23 = _local13[_local22]; _local24 = _local23.normal.x; _local25 = _local23.normal.y; _local26 = m_constraints[_local9]; _local26.body1 = _local10; _local26.body2 = _local11; _local26.manifold = _local23; _local26.normal.x = _local24; _local26.normal.y = _local25; _local26.pointCount = _local23.pointCount; _local26.friction = _local14; _local26.restitution = _local15; _local27 = 0; while (_local27 < _local26.pointCount) { _local28 = _local23.points[_local27]; _local29 = _local26.points[_local27]; _local29.normalImpulse = _local28.normalImpulse; _local29.tangentImpulse = _local28.tangentImpulse; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local8 = _local10.m_xf.R; _local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x); _local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33)); _local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33)); _local32 = _local30; _local29.r1.Set(_local32, _local33); _local8 = _local11.m_xf.R; _local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x); _local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local30; _local29.r2.Set(_local34, _local35); _local36 = ((_local32 * _local32) + (_local33 * _local33)); _local37 = ((_local34 * _local34) + (_local35 * _local35)); _local38 = ((_local32 * _local24) + (_local33 * _local25)); _local39 = ((_local34 * _local24) + (_local35 * _local25)); _local40 = (_local10.m_invMass + _local11.m_invMass); _local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39))))); _local29.normalMass = (1 / _local40); _local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass)); _local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39))))); _local29.equalizedMass = (1 / _local41); _local42 = _local25; _local43 = -(_local24); _local44 = ((_local32 * _local42) + (_local33 * _local43)); _local45 = ((_local34 * _local42) + (_local35 * _local43)); _local46 = (_local10.m_invMass + _local11.m_invMass); _local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45))))); _local29.tangentMass = (1 / _local46); _local29.velocityBias = 0; if (_local29.separation > 0){ _local29.velocityBias = (-60 * _local29.separation); }; _local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33)); _local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32)); _local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47)); }; _local27++; }; _local9++; _local22++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local5:int; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; _local5 = 0; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:int; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; _local2 = 0; _local5 = 0; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Mat22; var _local18:b2Vec2; var _local19:int; var _local20:b2ContactConstraint; var _local21:b2Body; var _local22:b2Body; var _local23:Number; var _local24:Number; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:int; var _local38:Number; _local19 = 0; while (_local19 < m_constraintCount) { _local20 = m_constraints[_local19]; _local21 = _local20.body1; _local22 = _local20.body2; _local23 = _local21.m_angularVelocity; _local24 = _local22.m_angularVelocity; _local25 = _local21.m_linearVelocity; _local26 = _local22.m_linearVelocity; _local27 = _local21.m_invMass; _local28 = _local21.m_invI; _local29 = _local22.m_invMass; _local30 = _local22.m_invI; _local31 = _local20.normal.x; _local32 = _local20.normal.y; _local33 = _local32; _local34 = -(_local31); _local35 = _local20.friction; _local37 = _local20.pointCount; _local1 = 0; while (_local1 < _local37) { _local2 = _local20.points[_local1]; _local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y)); _local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x)); _local9 = ((_local7 * _local31) + (_local8 * _local32)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local10 = ((_local7 * _local33) + (_local8 * _local34)); _local12 = (_local2.tangentMass * -(_local10)); _local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0); _local11 = (_local13 - _local2.normalImpulse); _local38 = (_local35 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38); _local12 = (_local14 - _local2.tangentImpulse); _local15 = ((_local11 * _local31) + (_local12 * _local33)); _local16 = ((_local11 * _local32) + (_local12 * _local34)); _local25.x = (_local25.x - (_local27 * _local15)); _local25.y = (_local25.y - (_local27 * _local16)); _local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local26.x = (_local26.x + (_local29 * _local15)); _local26.y = (_local26.y + (_local29 * _local16)); _local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.normalImpulse = _local13; _local2.tangentImpulse = _local14; _local1++; }; _local21.m_angularVelocity = _local23; _local22.m_angularVelocity = _local24; _local19++; }; } public function FinalizeVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; _local1 = 0; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 45
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function GetManifolds():Array{ return (null); } override public function Evaluate(_arg1:b2ContactListener):void{ } } }//package Box2D.Dynamics.Contacts
Section 46
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ var _local3:b2ManifoldPoint; m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; _local3 = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local6:b2Body; var _local7:b2Body; var _local8:Array; var _local9:b2ContactPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; _local6 = m_shape1.m_body; _local7 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); _local8 = [false, false]; _local9 = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 47
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; 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.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; 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.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactListener { public function Add(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Persist(_arg1:b2ContactPoint):void{ } public function Result(_arg1:b2ContactResult):void{ } } }//package Box2D.Dynamics
Section 69
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2Contact; _local3 = (_arg1 as b2Shape); _local4 = (_arg2 as b2Shape); _local5 = _local3.m_body; _local6 = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; _local7 = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } override public function PairRemoved(_arg1, _arg2, _arg3):void{ var _local4:b2Contact; if (_arg3 == null){ return; }; _local4 = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local2:b2Shape; var _local3:b2Shape; var _local4:int; var _local5:b2Body; var _local6:b2Body; var _local7:b2Body; var _local8:b2Body; var _local9:Array; var _local10:b2ContactPoint; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2Vec2; var _local16:b2Vec2; _local2 = _arg1.m_shape1; _local3 = _arg1.m_shape2; _local4 = _arg1.m_manifoldCount; if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = _local2.m_body; _local8 = _local3.m_body; _local9 = _arg1.GetManifolds(); _local10 = s_evalCP; _local10.shape1 = _arg1.m_shape1; _local10.shape2 = _arg1.m_shape2; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; _local5 = _local2.m_body; _local6 = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } public function Collide():void{ var _local1:b2Contact; var _local2:b2Body; var _local3:b2Body; _local1 = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.Dynamics
Section 70
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import flash.display.*; import Box2D.Dynamics.Contacts.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_lineThickness:Number;// = 1 public var m_drawFlags:uint; public var m_sprite:Sprite; public var m_drawScale:Number;// = 1 public static var e_coreShapeBit:uint = 4; public static var e_shapeBit:uint = 1; public static var e_centerOfMassBit:uint = 64; public static var e_aabbBit:uint = 8; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_jointBit:uint = 2; public function b2DebugDraw(){ m_drawScale = 1; m_lineThickness = 1; m_alpha = 1; m_fillAlpha = 1; m_xformScale = 1; super(); m_drawFlags = 0; } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function GetFlags():uint{ return (m_drawFlags); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } } }//package Box2D.Dynamics
Section 71
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; public class b2DestructionListener { public function SayGoodbyeJoint(_arg1:b2Joint):void{ } public function SayGoodbyeShape(_arg1:b2Shape):void{ } } }//package Box2D.Dynamics
Section 72
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Island { public var m_joints:Array; public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies:Array; public var m_jointCapacity:int; public var m_contactCount:int; public var m_contacts:Array; public var m_contactCapacity:int; public var m_jointCount:int; public var m_allocator; public var m_bodyCount:int; private static var s_reportCR:b2ContactResult = new b2ContactResult(); public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){ var _local6:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; m_bodies = new Array(_arg1); _local6 = 0; while (_local6 < _arg1) { m_bodies[_local6] = null; _local6++; }; m_contacts = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { m_contacts[_local6] = null; _local6++; }; m_joints = new Array(_arg3); _local6 = 0; while (_local6 < _arg3) { m_joints[_local6] = null; _local6++; }; m_positionIterationCount = 0; } public function AddBody(_arg1:b2Body):void{ var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } public function Report(_arg1:Array):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local4:int; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; _local4 = 0; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local8:b2ContactSolver; var _local9:int; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Number; var _local14:Number; var _local15:Number; _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; _local8 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local8.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local8.SolveVelocityConstraints(); _local9 = 0; while (_local9 < m_jointCount) { _local7 = m_joints[_local9]; _local7.SolveVelocityConstraints(_arg1); _local9++; }; _local5++; }; _local8.FinalizeVelocityConstraints(); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_sweep.c0.SetV(_local6.m_sweep.c); _local6.m_sweep.a0 = _local6.m_sweep.a; _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y)); _local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity)); _local6.SynchronizeTransform(); }; _local5++; }; if (_arg3){ _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local10 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local12 = _local7.SolvePositionConstraints(); _local11 = ((_local11) && (_local12)); _local5++; }; if (((_local10) && (_local11))){ break; }; m_positionIterationCount++; }; }; Report(_local8.m_constraints); if (_arg4){ _local13 = Number.MAX_VALUE; _local14 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local15 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.m_invMass == 0){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local13 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local15)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local14)))){ _local6.m_sleepTime = 0; _local13 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local13 = b2Math.b2Min(_local13, _local6.m_sleepTime); }; }; _local5++; }; if (_local13 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local3:b2ContactSolver; var _local4:Number; var _local5:b2Body; var _local6:Boolean; _local3 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; _local4 = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } }//package Box2D.Dynamics
Section 73
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var warmStarting:Boolean; public var positionCorrection:Boolean; public var dt:Number; public var maxIterations:int; public var dtRatio:Number; public var inv_dt:Number; } }//package Box2D.Dynamics
Section 74
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2World { public var m_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
//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 76
//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 77
//SpilGamesServices (com.spilgames.api.SpilGamesServices) package com.spilgames.api { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class SpilGamesServices extends MovieClip { private const DEFAULT_CONNECTION_LOCATION:String = "http://www8.agame.com/games/flash/services/ServicesConnection.swf"; private var _alwaysInFront:Boolean;// = false private var _loader:Loader; private var _request:URLRequest; private var _connecting:Boolean;// = false private var _servicesConnection;// = null private var _connected:Boolean;// = false private var currentDelay:Number;// = 0 private var previousFrameTime:Number; private var _numConnectionLoadTries:uint;// = 0 public static const INVALID_ID:int = -1; public static const CONFIGURATION_FAILED:String = "configurationFailure"; private static const MAX_CONNECTION_LOAD_RETRIES:uint = 99; public static const INVALID_DOMAIN:String = "invalidDomain"; private static var _instance:SpilGamesServices = null; public function SpilGamesServices(_arg1:Private=null){ _servicesConnection = null; _connecting = false; _connected = false; _numConnectionLoadTries = 0; _alwaysInFront = false; currentDelay = 0; super(); if (!_arg1){ throw (new Error("Cannot instantiate this class, use SpilGamesServices.getInstance")); }; } public function get alwaysInFront():Boolean{ return (_alwaysInFront); } public function get version():String{ return ("1.1"); } private function handleRemovedFromStage(_arg1:Event):void{ trace("WARNING: please do not remove SpilGamesServices from the stage"); } private function handleIOError(_arg1:IOErrorEvent):void{ _numConnectionLoadTries++; if (_numConnectionLoadTries > MAX_CONNECTION_LOAD_RETRIES){ _loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, handleLoadComplete); _loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, handleIOError); _connecting = false; trace("ERROR: SpilGamesServices failed to load the connection object"); if (hasEventListener(_arg1.type)){ dispatchEvent(_arg1); }; } else { trace(("WARN: SpilGamesServices failed to load the connection object, retry #" + _numConnectionLoadTries)); previousFrameTime = getTimer(); addEventListener(Event.ENTER_FRAME, updateConnectionRetry); }; } public function allowDomain(_arg1:String):void{ Security.allowDomain("*"); Security.allowInsecureDomain("*"); } private function updateConnectionRetry(_arg1:Event):void{ var _local2:Number; var _local3:Number; _local2 = getTimer(); _local3 = ((_local2 - previousFrameTime) / 1000); currentDelay = (currentDelay + _local3); if (currentDelay >= 2){ trace(("WARN: SpilGamesServices trying to reconnect after: " + currentDelay)); _loader.load(_request); removeEventListener(Event.ENTER_FRAME, updateConnectionRetry); currentDelay = 0; }; previousFrameTime = _local2; } 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.ENTER_FRAME, bringToFront); removeEventListener(Event.REMOVED_FROM_STAGE, handleRemovedFromStage); if (parent){ parent.removeChild(this); }; _connected = (_connecting = false); } public function get connecting():Boolean{ return (_connecting); } 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 connection(){ return (_servicesConnection); } public function isServiceAvailable(_arg1:String):Boolean{ return (((isReady()) && (_servicesConnection.isServiceAvailable(_arg1)))); } public function set alwaysInFront(_arg1:Boolean):void{ if (_alwaysInFront != _arg1){ _alwaysInFront = _arg1; if (_alwaysInFront){ addEventListener(Event.ENTER_FRAME, bringToFront); } else { removeEventListener(Event.ENTER_FRAME, bringToFront); }; }; } public function connect(_arg1:DisplayObjectContainer, ... _args):void{ 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"]; _request = new URLRequest(_local3); } else { _local3 = DEFAULT_CONNECTION_LOCATION; _local4 = new URLVariables(); _local5 = new Date(); _local4.nocache = ((((_local5.fullYear * 12) + (_local5.month + 1)) * 31) + _local5.day); _request = new URLRequest(_local3); _request.data = _local4; }; allowDomain(_local3); _loader = new Loader(); _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleLoadComplete); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, handleIOError); _loader.load(_request); }; } public static function getInstance():SpilGamesServices{ if (!_instance){ _instance = new SpilGamesServices(new Private()); }; return (_instance); } } }//package com.spilgames.api class Private { private function Private(){ } }
Section 78
//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 79
//bt_mc_fscreen_154 (RebuildtheTemple_fla.bt_mc_fscreen_154) package RebuildtheTemple_fla { import flash.display.*; public dynamic class bt_mc_fscreen_154 extends MovieClip { public function bt_mc_fscreen_154(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package RebuildtheTemple_fla
Section 80
//Destory1_189 (RebuildtheTemple_fla.Destory1_189) package RebuildtheTemple_fla { import flash.display.*; public dynamic class Destory1_189 extends MovieClip { public var Rect:MovieClip; public function Destory1_189(){ addFrameScript(18, frame19); } function frame19(){ stop(); } } }//package RebuildtheTemple_fla
Section 81
//Destory1smoke_187 (RebuildtheTemple_fla.Destory1smoke_187) package RebuildtheTemple_fla { import flash.display.*; public dynamic class Destory1smoke_187 extends MovieClip { public function Destory1smoke_187(){ addFrameScript(9, frame10); } function frame10(){ stop(); } } }//package RebuildtheTemple_fla
Section 82
//Destory4_184 (RebuildtheTemple_fla.Destory4_184) package RebuildtheTemple_fla { import flash.display.*; public dynamic class Destory4_184 extends MovieClip { public function Destory4_184(){ addFrameScript(0, frame1, 22, frame23); } function frame1(){ stop(); } function frame23(){ stop(); } } }//package RebuildtheTemple_fla
Section 83
//flag_icon_205 (RebuildtheTemple_fla.flag_icon_205) package RebuildtheTemple_fla { import flash.display.*; public dynamic class flag_icon_205 extends MovieClip { public function flag_icon_205(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package RebuildtheTemple_fla
Section 84
//l_br_207 (RebuildtheTemple_fla.l_br_207) package RebuildtheTemple_fla { import flash.display.*; import flash.text.*; public dynamic class l_br_207 extends MovieClip { public var text:TextField; public var flag:MovieClip; } }//package RebuildtheTemple_fla
Section 85
//LevelFailed_183 (RebuildtheTemple_fla.LevelFailed_183) package RebuildtheTemple_fla { import flash.display.*; import flash.text.*; import spill.localisation.*; public dynamic class LevelFailed_183 extends MovieClip { public var d_Restart:SimpleButton; public var __id17_:LocalizedTextField; public var __id18_:LocalizedTextField; public var d_End:SimpleButton; public var Ani:MovieClip; public var d_Score:TextField; public var __id15_:LocalizedTextField; public var __id16_:LocalizedTextField; public function LevelFailed_183(){ __setProp___id17__LevelFailed__1(); __setProp___id18__LevelFailed__1(); __setProp___id15__LevelFailed__1(); __setProp___id16__LevelFailed__1(); } function __setProp___id15__LevelFailed__1(){ try { __id15_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id15_.text = "{levelfailed}"; __id15_.textColor = 0xFFFFFF; __id15_.textSize = 35; __id15_.bold = true; __id15_.disableWordwrap = false; __id15_.embedFonts = true; __id15_.font = ""; __id15_.hAlign = "center"; __id15_.multiline = true; __id15_.vAlign = "middle"; __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) { }; } function __setProp___id18__LevelFailed__1(){ try { __id18_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id18_.text = "{endgame}"; __id18_.textColor = 0xFFFFFF; __id18_.textSize = 28; __id18_.bold = true; __id18_.disableWordwrap = false; __id18_.embedFonts = true; __id18_.font = ""; __id18_.hAlign = "center"; __id18_.multiline = false; __id18_.vAlign = "top"; __id18_.antiAliasType = "advanced"; __id18_.glowBlur = 4; __id18_.glowColor = 5917506; __id18_.useGlowFilter = true; __id18_.glowQuality = 1; __id18_.glowStrength = 2; __id18_.gridFitType = "pixel"; __id18_.italic = false; __id18_.selectable = false; __id18_.underline = false; try { __id18_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id16__LevelFailed__1(){ try { __id16_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id16_.text = "{restart}"; __id16_.textColor = 0xFFFFFF; __id16_.textSize = 28; __id16_.bold = true; __id16_.disableWordwrap = false; __id16_.embedFonts = true; __id16_.font = ""; __id16_.hAlign = "center"; __id16_.multiline = false; __id16_.vAlign = "top"; __id16_.antiAliasType = "advanced"; __id16_.glowBlur = 4; __id16_.glowColor = 5917506; __id16_.useGlowFilter = true; __id16_.glowQuality = 1; __id16_.glowStrength = 2; __id16_.gridFitType = "pixel"; __id16_.italic = false; __id16_.selectable = false; __id16_.underline = false; try { __id16_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id17__LevelFailed__1(){ try { __id17_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id17_.text = "{score2}"; __id17_.textColor = 0xFFFFFF; __id17_.textSize = 30; __id17_.bold = true; __id17_.disableWordwrap = false; __id17_.embedFonts = true; __id17_.font = ""; __id17_.hAlign = "right"; __id17_.multiline = false; __id17_.vAlign = "middle"; __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) { }; } } }//package RebuildtheTemple_fla
Section 86
//LevelList_72 (RebuildtheTemple_fla.LevelList_72) package RebuildtheTemple_fla { import flash.display.*; public dynamic class LevelList_72 extends MovieClip { public function LevelList_72(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package RebuildtheTemple_fla
Section 87
//LevelupWindow_180 (RebuildtheTemple_fla.LevelupWindow_180) package RebuildtheTemple_fla { import flash.display.*; import spill.localisation.*; public dynamic class LevelupWindow_180 extends MovieClip { public var d_Play:SimpleButton; public var __id13_:LocalizedTextField; public var __id14_:LocalizedTextField; public function LevelupWindow_180(){ __setProp___id14__LevelupWindow__1(); __setProp___id13__LevelupWindow__1(); } function __setProp___id13__LevelupWindow__1(){ try { __id13_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id13_.text = "{levelcompleted}"; __id13_.textColor = 0xFFFFFF; __id13_.textSize = 30; __id13_.bold = true; __id13_.disableWordwrap = false; __id13_.embedFonts = true; __id13_.font = ""; __id13_.hAlign = "center"; __id13_.multiline = true; __id13_.vAlign = "middle"; __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) { }; } function __setProp___id14__LevelupWindow__1(){ try { __id14_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id14_.text = "{next}"; __id14_.textColor = 0xFFFFFF; __id14_.textSize = 28; __id14_.bold = true; __id14_.disableWordwrap = false; __id14_.embedFonts = true; __id14_.font = ""; __id14_.hAlign = "center"; __id14_.multiline = false; __id14_.vAlign = "top"; __id14_.antiAliasType = "advanced"; __id14_.glowBlur = 4; __id14_.glowColor = 5917506; __id14_.useGlowFilter = true; __id14_.glowQuality = 1; __id14_.glowStrength = 2; __id14_.gridFitType = "pixel"; __id14_.italic = false; __id14_.selectable = false; __id14_.underline = false; try { __id14_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package RebuildtheTemple_fla
Section 88
//MainTimeline (RebuildtheTemple_fla.MainTimeline) package RebuildtheTemple_fla { import flash.xml.*; import flash.display.*; import flash.text.*; import flash.events.*; import spill.localisation.*; import com.spilgames.api.*; import flash.media.*; import flash.utils.*; import flash.net.*; import flash.ui.*; import flash.external.*; import flash.system.*; import flash.geom.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.printing.*; public dynamic class MainTimeline extends MovieClip { public var d_Back:SimpleButton; public var lbar:MovieClip; public var d_OverLogo:SimpleButton; public var __setPropDict:Dictionary; public var d_Help:SimpleButton; public var d_Facebook:SimpleButton; public var d_RePlay:SimpleButton; public var __id19_:LocalizedTextField; public var d_Play:SimpleButton; public var awardname:LocalizedTextField; public var __id0_:LocalizedTextField; public var d_SelectLevel:MovieClip; public var awarddesc:LocalizedTextField; public var d_More:SimpleButton; public var d_Submit:SimpleButton; public var award:uint; public var xmlData:XML; public var __id1_:LocalizedTextField; public var d_MainLogo:SimpleButton; public var __id2_:LocalizedTextField; public var isfull:String; public var d_High:SimpleButton; public var __id3_:LocalizedTextField; public var d_Score:TextField; public var __id5_:LocalizedTextField; public var __id20_:LocalizedTextField; public var StartLogo:SimpleButton; public var __id21_:LocalizedTextField; public var __id6_:LocalizedTextField; public var __id22_:LocalizedTextField; public var furl; public var d_Fscreen:MovieClip; public var lpc:TextField; public var d_Twitter:SimpleButton; public var gamename; public var _spilGamesServices:SpilGamesServices; public var d_Credits:SimpleButton; public var d_HelpPlay:SimpleButton; public var LoadLogo:BrandingLogo; public var wocao:LocalizedTextField; public function MainTimeline(){ __setPropDict = new Dictionary(true); super(); addFrameScript(1, frame2, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8); } function __setProp___id2___4(){ try { __id2_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id2_.text = "{credits}"; __id2_.textColor = 0xFF6600; __id2_.textSize = 44; __id2_.bold = false; __id2_.disableWordwrap = false; __id2_.embedFonts = false; __id2_.font = ""; __id2_.hAlign = "center"; __id2_.multiline = false; __id2_.vAlign = "middle"; __id2_.antiAliasType = "advanced"; __id2_.glowBlur = 6; __id2_.glowColor = 0xFFFFFF; __id2_.useGlowFilter = true; __id2_.glowQuality = 1; __id2_.glowStrength = 10; __id2_.gridFitType = "pixel"; __id2_.italic = false; __id2_.selectable = false; __id2_.underline = false; try { __id2_["componentInspectorSetting"] = false; } catch(e:Error) { }; } public function onMainLogo(_arg1){ var _local2:*; _local2 = getLink("button_mainscreen_moregames"); navigateToURL(new URLRequest(_local2), "_blank"); } function __setProp___id22___7(){ try { __id22_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id22_.text = "{playagain}"; __id22_.textColor = 0xFF6600; __id22_.textSize = 44; __id22_.bold = false; __id22_.disableWordwrap = false; __id22_.embedFonts = false; __id22_.font = ""; __id22_.hAlign = "center"; __id22_.multiline = false; __id22_.vAlign = "middle"; __id22_.antiAliasType = "advanced"; __id22_.glowBlur = 6; __id22_.glowColor = 0xFFFFFF; __id22_.useGlowFilter = true; __id22_.glowQuality = 1; __id22_.glowStrength = 10; __id22_.gridFitType = "pixel"; __id22_.italic = false; __id22_.selectable = false; __id22_.underline = false; try { __id22_["componentInspectorSetting"] = false; } catch(e:Error) { }; } public function enterFrameHandler(_arg1:Event):void{ lpc.text = (Math.floor((lbar.currentFrame / 2)) + "%"); if (lbar.currentFrame >= 200){ lbar.removeEventListener(Event.ENTER_FRAME, enterFrameHandler); stage.removeEventListener(MouseEvent.CLICK, fnLogoUrl); gotoAndPlay("start"); }; } function __setProp_awarddesc__7(){ try { awarddesc["componentInspectorSetting"] = true; } catch(e:Error) { }; awarddesc.text = "{youscore}"; awarddesc.textColor = 0xFFFFFF; awarddesc.textSize = 26; awarddesc.bold = false; awarddesc.disableWordwrap = false; awarddesc.embedFonts = false; awarddesc.font = ""; awarddesc.hAlign = "center"; awarddesc.multiline = false; awarddesc.vAlign = "middle"; awarddesc.antiAliasType = "advanced"; awarddesc.glowBlur = 3; awarddesc.glowColor = 0; awarddesc.useGlowFilter = true; awarddesc.glowQuality = 1; awarddesc.glowStrength = 2; awarddesc.gridFitType = "pixel"; awarddesc.italic = false; awarddesc.selectable = false; awarddesc.underline = false; try { awarddesc["componentInspectorSetting"] = false; } catch(e:Error) { }; } public function onServicesReady(_arg1:Event):void{ trace("ok", _spilGamesServices.isDomainAllowed()); } function frame6(){ d_MainLogo.addEventListener(MouseEvent.CLICK, onMainLogo); } function frame8(){ d_Back.addEventListener(MouseEvent.CLICK, ond_RePlayd_Back); } function frame5(){ if ((((__setPropDict[__id5_] == undefined)) || (!((int(__setPropDict[__id5_]) == 5))))){ __setPropDict[__id5_] = currentFrame; __setProp___id5___5(); }; if ((((__setPropDict[__id6_] == undefined)) || (!((int(__setPropDict[__id6_]) == 5))))){ __setPropDict[__id6_] = currentFrame; __setProp___id6___5(); }; if ((((__setPropDict[wocao] == undefined)) || (!((int(__setPropDict[wocao]) == 5))))){ __setPropDict[wocao] = currentFrame; __setProp_wocao__5(); }; stop(); d_HelpPlay.addEventListener(MouseEvent.CLICK, onHelpPlay); } function __setProp___id1___4(){ try { __id1_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id1_.text = "{howtoplay}"; __id1_.textColor = 0xFF6600; __id1_.textSize = 44; __id1_.bold = false; __id1_.disableWordwrap = false; __id1_.embedFonts = false; __id1_.font = ""; __id1_.hAlign = "center"; __id1_.multiline = false; __id1_.vAlign = "middle"; __id1_.antiAliasType = "advanced"; __id1_.glowBlur = 6; __id1_.glowColor = 0xFFFFFF; __id1_.useGlowFilter = true; __id1_.glowQuality = 1; __id1_.glowStrength = 10; __id1_.gridFitType = "pixel"; __id1_.italic = false; __id1_.selectable = false; __id1_.underline = false; try { __id1_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id5___5(){ try { __id5_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id5_.text = "{play}"; __id5_.textColor = 0xFF6600; __id5_.textSize = 44; __id5_.bold = false; __id5_.disableWordwrap = false; __id5_.embedFonts = false; __id5_.font = ""; __id5_.hAlign = "center"; __id5_.multiline = false; __id5_.vAlign = "middle"; __id5_.antiAliasType = "advanced"; __id5_.glowBlur = 6; __id5_.glowColor = 0xFFFFFF; __id5_.useGlowFilter = true; __id5_.glowQuality = 1; __id5_.glowStrength = 10; __id5_.gridFitType = "pixel"; __id5_.italic = false; __id5_.selectable = false; __id5_.underline = false; try { __id5_["componentInspectorSetting"] = false; } catch(e:Error) { }; } public function getLink(_arg1:String):String{ if (!SpilGame.isExternal){ return (((("http://" + SpilGame.currentBranding.domain) + "/") + SpilGame.currentBranding.moreLink)); }; return (SpilGame.getMoreGamesLink(_arg1)); } function frame4(){ if ((((__setPropDict[__id1_] == undefined)) || (!((int(__setPropDict[__id1_]) == 4))))){ __setPropDict[__id1_] = currentFrame; __setProp___id1___4(); }; if ((((__setPropDict[__id0_] == undefined)) || (!((int(__setPropDict[__id0_]) == 4))))){ __setPropDict[__id0_] = currentFrame; __setProp___id0___4(); }; if ((((__setPropDict[__id2_] == undefined)) || (!((int(__setPropDict[__id2_]) == 4))))){ __setPropDict[__id2_] = currentFrame; __setProp___id2___4(); }; if ((((__setPropDict[__id3_] == undefined)) || (!((int(__setPropDict[__id3_]) == 4))))){ __setPropDict[__id3_] = currentFrame; __setProp___id3___4(); }; stop(); SoundMixer.stopAll(); MediaManager.playMusic(SStart); d_SelectLevel.visible = false; StartLogo.addEventListener(MouseEvent.CLICK, StartLogoUrl); d_Play.addEventListener(MouseEvent.CLICK, onClick); d_Help.addEventListener(MouseEvent.CLICK, onClick); d_More.addEventListener(MouseEvent.CLICK, onClick); d_Credits.addEventListener(MouseEvent.CLICK, onClick); d_High.addEventListener(MouseEvent.CLICK, onHighScore); d_Twitter.addEventListener(MouseEvent.CLICK, onShare); d_Facebook.addEventListener(MouseEvent.CLICK, onShare); d_Fscreen.addEventListener(MouseEvent.CLICK, onFscreen); d_Fscreen.buttonMode = true; try { isfull = String(EmbedObject.getParamViaExternal("allowFullScreen")); isfull = isfull.toLowerCase(); if (isfull != "true"){ d_Fscreen.visible = false; }; } catch(e) { }; } function frame2(){ stop(); xmlData = <LocalisedText><textItem identifier="play"><en_us><![CDATA[PLAY]]></en_us><en_uk><![CDATA[PLAY]]></en_uk><nl><![CDATA[SPELEN]]></nl><fr><![CDATA[JOUER]]></fr><de><![CDATA[SPIELEN]]></de><es><![CDATA[JUGAR]]></es><br><![CDATA[JOGAR]]></br><pt><![CDATA[JOGAR]]></pt><it><![CDATA[GIOCA]]></it><se><![CDATA[SPELA]]></se><pl><![CDATA[GRAJ]]></pl><ru><![CDATA[ИГРАТЬ]]></ru><id><![CDATA[MAIN]]></id><ar><![CDATA[PLAY]]></ar><jp><![CDATA[PLAY]]></jp><cn><![CDATA[PLAY]]></cn><es_mx><![CDATA[JUGAR]]></es_mx><es_ar><![CDATA[JUGAR]]></es_ar></textItem><textItem identifier="howtoplay"><en_us><![CDATA[HOW TO PLAY]]></en_us><en_uk><![CDATA[HOW TO PLAY]]></en_uk><nl><![CDATA[SPELUITLEG]]></nl><fr><![CDATA[INSTRUCTIONS]]></fr><de><![CDATA[ANLEITUNG]]></de><es><![CDATA[CÓMO JUGAR]]></es><br><![CDATA[COMO JOGAR]]></br><pt><![CDATA[COMO JOGAR]]></pt><it><![CDATA[COME GIOCARE]]></it><se><![CDATA[SÅ SPELAR MAN]]></se><pl><![CDATA[JAK GRAĆ]]></pl><ru><![CDATA[КАК ИГРАТЬ]]></ru><id><![CDATA[CARA MAIN]]></id><ar><![CDATA[HOW TO PLAY]]></ar><jp><![CDATA[HOW TO PLAY]]></jp><cn><![CDATA[HOW TO PLAY]]></cn><es_mx><![CDATA[CÓMO JUGAR]]></es_mx><es_ar><![CDATA[CÓMO JUGAR]]></es_ar></textItem><textItem identifier="credits"><en_us><![CDATA[CREDITS]]></en_us><en_uk><![CDATA[CREDITS]]></en_uk><nl><![CDATA[CREDITS]]></nl><fr><![CDATA[CREDITS]]></fr><de><![CDATA[CREDITS]]></de><es><![CDATA[CREDITS]]></es><br><![CDATA[CREDITS]]></br><pt><![CDATA[CREDITS]]></pt><it><![CDATA[CREDITS]]></it><se><![CDATA[CREDITS]]></se><pl><![CDATA[CREDITS]]></pl><ru><![CDATA[CREDITS]]></ru><id><![CDATA[CREDITS]]></id><ar><![CDATA[CREDITS]]></ar><jp><![CDATA[CREDITS]]></jp><cn><![CDATA[CREDITS]]></cn><es_mx><![CDATA[CREDITS]]></es_mx><es_ar><![CDATA[CREDITS]]></es_ar></textItem><textItem identifier="moregames"><en_us><![CDATA[MORE GAMES]]></en_us><en_uk><![CDATA[MORE GAMES]]></en_uk><nl><![CDATA[MEER SPELLETJES]]></nl><fr><![CDATA[PLUS DE JEUX]]></fr><de><![CDATA[MEHR SPIELE]]></de><es><![CDATA[MÁS JUEGOS]]></es><br><![CDATA[MAIS JOGOS]]></br><pt><![CDATA[MAIS JOGOS]]></pt><it><![CDATA[ALTRI GIOCHI]]></it><se><![CDATA[FLER SPEL]]></se><pl><![CDATA[WIĘCEJ GIER]]></pl><ru><![CDATA[ДРУГИЕ ИГРЫ]]></ru><id><![CDATA[GAME LAINNYA]]></id><ar><![CDATA[MORE GAMES]]></ar><jp><![CDATA[MORE GAMES]]></jp><cn><![CDATA[MORE GAMES]]></cn><es_mx><![CDATA[MÁS JUEGOS]]></es_mx><es_ar><![CDATA[MÁS JUEGOS]]></es_ar></textItem><textItem identifier="howtoplay2"><en_us><![CDATA[How to Play]]></en_us><en_uk><![CDATA[How to Play]]></en_uk><nl><![CDATA[Speluitleg]]></nl><fr><![CDATA[Instructions]]></fr><de><![CDATA[Spielanleitung]]></de><es><![CDATA[Cómo jugar]]></es><br><![CDATA[Como jogar]]></br><pt><![CDATA[Como jogar]]></pt><it><![CDATA[Come giocare]]></it><se><![CDATA[Så spelar man]]></se><pl><![CDATA[Jak grać]]></pl><ru><![CDATA[Как играть]]></ru><id><![CDATA[Cara Main]]></id><ar><![CDATA[How to Play]]></ar><jp><![CDATA[How to Play]]></jp><cn><![CDATA[How to Play]]></cn><es_mx><![CDATA[Cómo jugar]]></es_mx><es_ar><![CDATA[Cómo jugar]]></es_ar></textItem><textItem identifier="helptext"><en_us><![CDATA[Click to remove blocks 'til they're all below the horizontal rope. Don't let them hit the pillars! Gray blocks can't be removed.]]></en_us><en_uk><![CDATA[Click blocks to remove them 'til they're all below the horizontal rope. Don't let them hit the pillars! Grey blocks can't be removed.]]></en_uk><nl><![CDATA[Klik op blokken om ze weg te spelen totdat ze allemaal onder de streep liggen. Ze mogen de pilaren niet aanraken! Grijze blokken kun je niet wegspelen.]]></nl><fr><![CDATA[Clique pour enlever les blocs jusqu'à ce qu'ils soient tous sous la corde horizontale. Ne les laisse pas heurter les colonnes ! Tu ne peux pas enlever les blocs gris.]]></fr><de><![CDATA[Klicke Blöcke an, um sie zu entfernen, bis sich alle Blöcke unterhalb des waagerecht gespannten Seils befinden. Pass auf, dass kein Block die Säulen des Tempels berührt. Graue Blöcke kannst du nicht entfernen.]]></de><es><![CDATA[Haz clic para eliminar bloques hasta que estén por debajo de la cuerda horizontal. ¡Que no golpeen las columnas! Los bloques grises no se pueden eliminar.]]></es><br><![CDATA[Clique para remover blocos até que todos estejam abaixo da corda horizontal. Não deixe que eles acertem os pilares! Blocos cinzas não podem ser removidos.]]></br><pt><![CDATA[Clica para removeres os blocos até que estejam todos abaixo da corda horizontal. Não os deixes bater nos pilares! Os blocos cinzentos não podem ser removidos.]]></pt><it><![CDATA[Clicca sui blocchi per eliminarli finché restano tutti al di sotto della corda, ma non farli sbattere contro i pilastri! I blocchi grigi non si possono rimuovere.]]></it><se><![CDATA[Klicka för att ta bort block tills alla befinner sig under det vågräta repet. Låt dem inte välta pelarna! Grå block kan inte tas bort.]]></se><pl><![CDATA[Klikaj, aby usuwać klocki, aż wszystkie znajdą się poniżej rozciągniętej poziomo liny. Nie dopuść, by uderzyły w filary! Szarych klocków nie można usunąć.]]></pl><ru><![CDATA[Щелкай мышью, удаляя блоки, пока конструкция не окажется ниже натянутого каната. Блоки не должны задеть колонны! Серые блоки удалить нельзя.]]></ru><id><![CDATA[Klik untuk menyingkirkan blok sampai semuanya di bawah tali horisontal. Jangan biarkan bloknya menghantam pilar! Blok abu-abu tidak bisa disingkirkan.]]></id><ar><![CDATA[Click to remove blocks 'til they're all below the horizontal rope. Don't let them hit the pillars! Gray blocks can't be removed.]]></ar><jp><![CDATA[Click to remove blocks 'til they're all below the horizontal rope. Don't let them hit the pillars! Gray blocks can't be removed.]]></jp><cn><![CDATA[Click to remove blocks 'til they're all below the horizontal rope. Don't let them hit the pillars! Gray blocks can't be removed.]]></cn><es_mx><![CDATA[Haz clic para eliminar bloques hasta que estén por debajo de la cuerda horizontal. ¡Que no golpeen las columnas! Los bloques grises no se pueden eliminar.]]></es_mx><es_ar><![CDATA[Haz clic para eliminar bloques hasta que estén por debajo de la cuerda horizontal. ¡Que no golpeen las columnas! Los bloques grises no se pueden eliminar.]]></es_ar></textItem><textItem identifier="restart"><en_us><![CDATA[Restart]]></en_us><en_uk><![CDATA[Restart]]></en_uk><nl><![CDATA[Opnieuw starten]]></nl><fr><![CDATA[Redémarrer]]></fr><de><![CDATA[Neustart]]></de><es><![CDATA[Reiniciar]]></es><br><![CDATA[Reiniciar]]></br><pt><![CDATA[Reiniciar]]></pt><it><![CDATA[Ricomincia]]></it><se><![CDATA[Starta om]]></se><pl><![CDATA[Restart]]></pl><ru><![CDATA[Сначала]]></ru><id><![CDATA[Mulai dari Awal]]></id><ar><![CDATA[Restart]]></ar><jp><![CDATA[Restart]]></jp><cn><![CDATA[Restart]]></cn><es_mx><![CDATA[Reiniciar]]></es_mx><es_ar><![CDATA[Reiniciar]]></es_ar></textItem><textItem identifier="higherline"><en_us><![CDATA[Raise Rope]]></en_us><en_uk><![CDATA[Raise Rope]]></en_uk><nl><![CDATA[Hoger touw]]></nl><fr><![CDATA[Lever la corde]]></fr><de><![CDATA[Seil anheben]]></de><es><![CDATA[Elevar cuerda]]></es><br><![CDATA[Levantar Corda]]></br><pt><![CDATA[Subir a corda]]></pt><it><![CDATA[Alza corda]]></it><se><![CDATA[Höj rep]]></se><pl><![CDATA[Podnieś linę]]></pl><ru><![CDATA[Канат повыше]]></ru><id><![CDATA[Naikkan Tali]]></id><ar><![CDATA[Raise Rope]]></ar><jp><![CDATA[Raise Rope]]></jp><cn><![CDATA[Raise Rope]]></cn><es_mx><![CDATA[Elevar cuerda]]></es_mx><es_ar><![CDATA[Elevar cuerda]]></es_ar></textItem><textItem identifier="widerarea"><en_us><![CDATA[Widen Area]]></en_us><en_uk><![CDATA[Widen Area]]></en_uk><nl><![CDATA[Groter gebied]]></nl><fr><![CDATA[Élargir la zone]]></fr><de><![CDATA[Bereich vergrößern]]></de><es><![CDATA[Ensanchar zona]]></es><br><![CDATA[Aumentar Área]]></br><pt><![CDATA[Alargar a área]]></pt><it><![CDATA[Allarga zona]]></it><se><![CDATA[Utöka område]]></se><pl><![CDATA[Rozszerz filary]]></pl><ru><![CDATA[Зона пошире]]></ru><id><![CDATA[Perluas Area]]></id><ar><![CDATA[Widen Area]]></ar><jp><![CDATA[Widen Area]]></jp><cn><![CDATA[Widen Area]]></cn><es_mx><![CDATA[Ensanchar zona]]></es_mx><es_ar><![CDATA[Ensanchar zona]]></es_ar></textItem><textItem identifier="menu"><en_us><![CDATA[Menu]]></en_us><en_uk><![CDATA[Menu]]></en_uk><nl><![CDATA[Menu]]></nl><fr><![CDATA[Menu]]></fr><de><![CDATA[Menü]]></de><es><![CDATA[Menú]]></es><br><![CDATA[Menu]]></br><pt><![CDATA[Menu]]></pt><it><![CDATA[Menu]]></it><se><![CDATA[Meny]]></se><pl><![CDATA[Menu]]></pl><ru><![CDATA[Меню]]></ru><id><![CDATA[Menu]]></id><ar><![CDATA[Menu]]></ar><jp><![CDATA[Menu]]></jp><cn><![CDATA[Menu]]></cn><es_mx><![CDATA[Menú]]></es_mx><es_ar><![CDATA[Menú]]></es_ar></textItem><textItem identifier="level"><en_us><![CDATA[Level:]]></en_us><en_uk><![CDATA[Level:]]></en_uk><nl><![CDATA[Level:]]></nl><fr><![CDATA[Niveau :]]></fr><de><![CDATA[Level:]]></de><es><![CDATA[Nivel:]]></es><br><![CDATA[Fase:]]></br><pt><![CDATA[Nível:]]></pt><it><![CDATA[Livello:]]></it><se><![CDATA[Nivå:]]></se><pl><![CDATA[Poziom:]]></pl><ru><![CDATA[Ур-нь:]]></ru><id><![CDATA[Level:]]></id><ar><![CDATA[Level:]]></ar><jp><![CDATA[Level:]]></jp><cn><![CDATA[Level:]]></cn><es_mx><![CDATA[Nivel:]]></es_mx><es_ar><![CDATA[Nivel:]]></es_ar></textItem><textItem identifier="score"><en_us><![CDATA[Score:]]></en_us><en_uk><![CDATA[Score:]]></en_uk><nl><![CDATA[Score:]]></nl><fr><![CDATA[Score :]]></fr><de><![CDATA[Punkte:]]></de><es><![CDATA[Puntaje:]]></es><br><![CDATA[Pontuação:]]></br><pt><![CDATA[Pontuação:]]></pt><it><![CDATA[Punteggio:]]></it><se><![CDATA[Poäng:]]></se><pl><![CDATA[Wynik:]]></pl><ru><![CDATA[Счет:]]></ru><id><![CDATA[Skor:]]></id><ar><![CDATA[Score:]]></ar><jp><![CDATA[Score:]]></jp><cn><![CDATA[Score:]]></cn><es_mx><![CDATA[Puntaje:]]></es_mx><es_ar><![CDATA[Puntaje:]]></es_ar></textItem><textItem identifier="levelcompleted"><en_us><![CDATA[Level complete!]]></en_us><en_uk><![CDATA[Level complete!]]></en_uk><nl><![CDATA[Level voltooid!]]></nl><fr><![CDATA[Niveau atteint !]]></fr><de><![CDATA[Level abgeschlossen!]]></de><es><![CDATA[¡Nivel completado!]]></es><br><![CDATA[Fase concluída!]]></br><pt><![CDATA[Nível terminado!]]></pt><it><![CDATA[Livello completato!]]></it><se><![CDATA[Nivå klarad!]]></se><pl><![CDATA[Poziom ukończony!]]></pl><ru><![CDATA[Уровень пройден!]]></ru><id><![CDATA[Level selesai!]]></id><ar><![CDATA[Level complete!]]></ar><jp><![CDATA[Level complete!]]></jp><cn><![CDATA[Level complete!]]></cn><es_mx><![CDATA[¡Nivel completado!]]></es_mx><es_ar><![CDATA[¡Nivel completado!]]></es_ar></textItem><textItem identifier="next"><en_us><![CDATA[Next]]></en_us><en_uk><![CDATA[Next]]></en_uk><nl><![CDATA[Volgende]]></nl><fr><![CDATA[Suivant]]></fr><de><![CDATA[Weiter]]></de><es><![CDATA[Próximo]]></es><br><![CDATA[Seguinte]]></br><pt><![CDATA[Seguinte]]></pt><it><![CDATA[Avanti]]></it><se><![CDATA[Nästa]]></se><pl><![CDATA[Dalej]]></pl><ru><![CDATA[Дальше]]></ru><id><![CDATA[Berikutnya]]></id><ar><![CDATA[Next]]></ar><jp><![CDATA[Next]]></jp><cn><![CDATA[Next]]></cn><es_mx><![CDATA[Próximo]]></es_mx><es_ar><![CDATA[Próximo]]></es_ar></textItem><textItem identifier="levelfailed"><en_us><![CDATA[Level failed…]]></en_us><en_uk><![CDATA[Level failed…]]></en_uk><nl><![CDATA[Level mislukt...]]></nl><fr><![CDATA[Niveau non atteint…]]></fr><de><![CDATA[Level fehlgeschlagen...]]></de><es><![CDATA[Nivel fallido...]]></es><br><![CDATA[Fase perdida...]]></br><pt><![CDATA[Nível falhado…]]></pt><it><![CDATA[Livello fallito...]]></it><se><![CDATA[Nivå ej klarad ...]]></se><pl><![CDATA[Poziom nie został ukończony...]]></pl><ru><![CDATA[Не вышло...]]></ru><id><![CDATA[Level gagal…]]></id><ar><![CDATA[Level failed…]]></ar><jp><![CDATA[Level failed…]]></jp><cn><![CDATA[Level failed…]]></cn><es_mx><![CDATA[Nivel fallido...]]></es_mx><es_ar><![CDATA[Nivel fallido...]]></es_ar></textItem><textItem identifier="score2"><en_us><![CDATA[Score]]></en_us><en_uk><![CDATA[Score]]></en_uk><nl><![CDATA[Score]]></nl><fr><![CDATA[Score]]></fr><de><![CDATA[Punkte]]></de><es><![CDATA[Puntaje]]></es><br><![CDATA[Pontuação]]></br><pt><![CDATA[Pontuação]]></pt><it><![CDATA[Punteggio]]></it><se><![CDATA[Poäng]]></se><pl><![CDATA[Wynik:]]></pl><ru><![CDATA[Счет]]></ru><id><![CDATA[Skor]]></id><ar><![CDATA[Score]]></ar><jp><![CDATA[Score]]></jp><cn><![CDATA[Score]]></cn><es_mx><![CDATA[Puntaje]]></es_mx><es_ar><![CDATA[Puntaje]]></es_ar></textItem><textItem identifier="restart"><en_us><![CDATA[Try Again]]></en_us><en_uk><![CDATA[Try Again]]></en_uk><nl><![CDATA[Opnieuw]]></nl><fr><![CDATA[Réessayer]]></fr><de><![CDATA[Nochmal]]></de><es><![CDATA[Reintentar]]></es><br><![CDATA[Repetir]]></br><pt><![CDATA[Repetir]]></pt><it><![CDATA[Riprova]]></it><se><![CDATA[Igen]]></se><pl><![CDATA[Jeszcze raz]]></pl><ru><![CDATA[Еще раз]]></ru><id><![CDATA[Coba Lagi]]></id><ar><![CDATA[Try Again]]></ar><jp><![CDATA[Try Again]]></jp><cn><![CDATA[Try Again]]></cn><es_mx><![CDATA[Reintentar]]></es_mx><es_ar><![CDATA[Reintentar]]></es_ar></textItem><textItem identifier="endgame"><en_us><![CDATA[Quit]]></en_us><en_uk><![CDATA[Quit]]></en_uk><nl><![CDATA[Stoppen]]></nl><fr><![CDATA[Quitter]]></fr><de><![CDATA[Beenden]]></de><es><![CDATA[Abandonar]]></es><br><![CDATA[Sair]]></br><pt><![CDATA[Sair]]></pt><it><![CDATA[Esci]]></it><se><![CDATA[Avsluta]]></se><pl><![CDATA[Zakończ]]></pl><ru><![CDATA[Выход]]></ru><id><![CDATA[Keluar]]></id><ar><![CDATA[Quit]]></ar><jp><![CDATA[Quit]]></jp><cn><![CDATA[Quit]]></cn><es_mx><![CDATA[Abandonar]]></es_mx><es_ar><![CDATA[Abandonar]]></es_ar></textItem><textItem identifier="gameover"><en_us><![CDATA[GAME OVER]]></en_us><en_uk><![CDATA[GAME OVER]]></en_uk><nl><![CDATA[GAME OVER]]></nl><fr><![CDATA[FIN]]></fr><de><![CDATA[GAME OVER]]></de><es><![CDATA[FIN DEL JUEGO]]></es><br><![CDATA[ACABOU]]></br><pt><![CDATA[ACABOU]]></pt><it><![CDATA[GAME OVER]]></it><se><![CDATA[GAME OVER]]></se><pl><![CDATA[KONIEC GRY]]></pl><ru><![CDATA[КОНЕЦ ИГРЫ]]></ru><id><![CDATA[GAME TAMAT]]></id><ar><![CDATA[GAME OVER]]></ar><jp><![CDATA[GAME OVER]]></jp><cn><![CDATA[GAME OVER]]></cn><es_mx><![CDATA[FIN DEL JUEGO]]></es_mx><es_ar><![CDATA[FIN DEL JUEGO]]></es_ar></textItem><textItem identifier="youscore"><en_us><![CDATA[Your Score: ]]></en_us><en_uk><![CDATA[Your Score: ]]></en_uk><nl><![CDATA[Je score:]]></nl><fr><![CDATA[Ton score : ]]></fr><de><![CDATA[Deine Punkte: ]]></de><es><![CDATA[Tu puntaje]]></es><br><![CDATA[Sua Pontuação:]]></br><pt><![CDATA[A tua pontuação:]]></pt><it><![CDATA[Il tuo punteggio:]]></it><se><![CDATA[Din poäng:]]></se><pl><![CDATA[Twój wynik:]]></pl><ru><![CDATA[Твой счет:]]></ru><id><![CDATA[Skormu:]]></id><ar><![CDATA[Your Score: ]]></ar><jp><![CDATA[Your Score: ]]></jp><cn><![CDATA[Your Score: ]]></cn><es_mx><![CDATA[Tu puntaje]]></es_mx><es_ar><![CDATA[Tu puntaje]]></es_ar></textItem><textItem identifier="submit"><en_us><![CDATA[Submit Score]]></en_us><en_uk><![CDATA[Submit Score]]></en_uk><nl><![CDATA[Score verzenden]]></nl><fr><![CDATA[Soumettre score]]></fr><de><![CDATA[Punkte abgeben]]></de><es><![CDATA[Enviar puntaje]]></es><br><![CDATA[Enviar]]></br><pt><![CDATA[Enviar]]></pt><it><![CDATA[Invia punteggio]]></it><se><![CDATA[Skicka poäng]]></se><pl><![CDATA[Zapisz wynik]]></pl><ru><![CDATA[Сохранить счет]]></ru><id><![CDATA[Kirim Skor]]></id><ar><![CDATA[Submit Score]]></ar><jp><![CDATA[Submit Score]]></jp><cn><![CDATA[Submit Score]]></cn><es_mx><![CDATA[Enviar puntaje]]></es_mx><es_ar><![CDATA[Enviar puntaje]]></es_ar></textItem><textItem identifier="playagain"><en_us><![CDATA[Play Again]]></en_us><en_uk><![CDATA[Play Again]]></en_uk><nl><![CDATA[Opnieuw spelen]]></nl><fr><![CDATA[Rejouer]]></fr><de><![CDATA[Nochmal spielen]]></de><es><![CDATA[Volver a jugar]]></es><br><![CDATA[Jogar de Novo]]></br><pt><![CDATA[Jogar outra vez]]></pt><it><![CDATA[Gioca ancora]]></it><se><![CDATA[Spela igen]]></se><pl><![CDATA[Zagraj ponownie]]></pl><ru><![CDATA[Еще раз]]></ru><id><![CDATA[Main Lagi]]></id><ar><![CDATA[Play Again]]></ar><jp><![CDATA[Play Again]]></jp><cn><![CDATA[Play Again]]></cn><es_mx><![CDATA[Volver a jugar]]></es_mx><es_ar><![CDATA[Volver a jugar]]></es_ar></textItem><textItem identifier="award_name_1"><en_us><![CDATA[Temple Toddler]]></en_us><en_uk><![CDATA[Tempeltraining]]></en_uk><nl><![CDATA[Petit temple]]></nl><fr><![CDATA[Tempelbaby]]></fr><de><![CDATA[Novato del Templo]]></de><es><![CDATA[Bebê do Templo]]></es><br><![CDATA[O Bebé do Templo]]></br><pt><![CDATA[Ai primi templi]]></pt><it><![CDATA[Tempelnybörjare]]></it><se><![CDATA[Początkujący]]></se><pl><![CDATA[Новичок]]></pl><ru><![CDATA[Balita Kuil]]></ru><id><![CDATA[]]></id><ar><![CDATA[]]></ar><jp><![CDATA[]]></jp><cn><![CDATA[]]></cn><es_mx><![CDATA[]]></es_mx><es_ar><![CDATA[]]></es_ar></textItem><textItem identifier="award_desc_1"><en_us><![CDATA[Completed level 3. ]]></en_us><en_uk><![CDATA[Level 3 voltooid.]]></en_uk><nl><![CDATA[Niveau 3 atteint.]]></nl><fr><![CDATA[Level 3 abgeschlossen.]]></fr><de><![CDATA[Completa el nivel 3.]]></de><es><![CDATA[Fase 3 concluída.]]></es><br><![CDATA[Nível 3 concluído.]]></br><pt><![CDATA[Completato il livello 3.]]></pt><it><![CDATA[Klarade nivå 3.]]></it><se><![CDATA[Ukończono poziom 3.]]></se><pl><![CDATA[Пройден 3 уровень.]]></pl><ru><![CDATA[Level 3 selesai.]]></ru><id><![CDATA[]]></id><ar><![CDATA[]]></ar><jp><![CDATA[]]></jp><cn><![CDATA[]]></cn><es_mx><![CDATA[]]></es_mx><es_ar><![CDATA[]]></es_ar></textItem><textItem identifier="award_name_2"><en_us><![CDATA[Temple Try-Hard]]></en_us><en_uk><![CDATA[Tempelkenner]]></en_uk><nl><![CDATA[Acharné du temple]]></nl><fr><![CDATA[Tempeltester]]></fr><de><![CDATA[Oficial del Templo]]></de><es><![CDATA[Aprendiz do Templo]]></es><br><![CDATA[O Duro do Templo]]></br><pt><![CDATA[Templi duri]]></pt><it><![CDATA[Tempelnovis]]></it><se><![CDATA[Wytrwały]]></se><pl><![CDATA[Подмастерье]]></pl><ru><![CDATA[Kuil Coba Terus]]></ru><id><![CDATA[]]></id><ar><![CDATA[]]></ar><jp><![CDATA[]]></jp><cn><![CDATA[]]></cn><es_mx><![CDATA[]]></es_mx><es_ar><![CDATA[]]></es_ar></textItem><textItem identifier="award_desc_2"><en_us><![CDATA[Completed level 5.]]></en_us><en_uk><![CDATA[Level 5 voltooid.]]></en_uk><nl><![CDATA[Niveau 5 atteint.]]></nl><fr><![CDATA[Level 5 abgeschlossen.]]></fr><de><![CDATA[Completa el nivel 5.]]></de><es><![CDATA[Fase 5 concluída.]]></es><br><![CDATA[Nível 5 concluído.]]></br><pt><![CDATA[Completato il livello 5.]]></pt><it><![CDATA[Klarade nivå 5.]]></it><se><![CDATA[Ukończono poziom 5.]]></se><pl><![CDATA[Пройден 5 уровень.]]></pl><ru><![CDATA[Level 5 selesai.]]></ru><id><![CDATA[]]></id><ar><![CDATA[]]></ar><jp><![CDATA[]]></jp><cn><![CDATA[]]></cn><es_mx><![CDATA[]]></es_mx><es_ar><![CDATA[]]></es_ar></textItem><textItem identifier="award_name_3"><en_us><![CDATA[Temple Expert]]></en_us><en_uk><![CDATA[Tempelexpert]]></en_uk><nl><![CDATA[Bâtisseur de temple]]></nl><fr><![CDATA[Tempelheld]]></fr><de><![CDATA[Señor del Templo]]></de><es><![CDATA[Perito do Templo]]></es><br><![CDATA[O Ás do Templo]]></br><pt><![CDATA[Esperto di templi]]></pt><it><![CDATA[Tempelbyggare]]></it><se><![CDATA[Doświadczony]]></se><pl><![CDATA[Рабочий]]></pl><ru><![CDATA[Pemain Kuil]]></ru><id><![CDATA[]]></id><ar><![CDATA[]]></ar><jp><![CDATA[]]></jp><cn><![CDATA[]]></cn><es_mx><![CDATA[]]></es_mx><es_ar><![CDATA[]]></es_ar></textItem><textItem identifier="award_desc_3"><en_us><![CDATA[Completed level 10 with 5,500 points.]]></en_us><en_uk><![CDATA[Level 10 voltooid met 5500 punten.]]></en_uk><nl><![CDATA[Niveau 10 atteint avec 5 500 points.]]></nl><fr><![CDATA[Level 10 mit 5.500 Punkten abgeschlossen.]]></fr><de><![CDATA[Completa el nivel 10 con 5.500 puntos.]]></de><es><![CDATA[Fase 10 concluída com 5500 pontos.]]></es><br><![CDATA[Nível 10 concluído com 5500 pontos.]]></br><pt><![CDATA[Completato il livello 10 con 5.000 punti.]]></pt><it><![CDATA[Klarade nivå 10 med 5500 poäng.]]></it><se><![CDATA[Ukończono poziom 10 z wynikiem 5500 punktów.]]></se><pl><![CDATA[10 уровень пройден, набрано 5500 очков.]]></pl><ru><![CDATA[Level 10 selesai dengan 5.500 poin.]]></ru><id><![CDATA[]]></id><ar><![CDATA[]]></ar><jp><![CDATA[]]></jp><cn><![CDATA[]]></cn><es_mx><![CDATA[]]></es_mx><es_ar><![CDATA[]]></es_ar></textItem><textItem identifier="award_name_4"><en_us><![CDATA[Temple Master]]></en_us><en_uk><![CDATA[Tempelmeester]]></en_uk><nl><![CDATA[Maître du temple]]></nl><fr><![CDATA[Tempelmeister]]></fr><de><![CDATA[Maestro del Templo]]></de><es><![CDATA[Mestre do Templo]]></es><br><![CDATA[Mestre do Templo]]></br><pt><![CDATA[Maestro di templi]]></pt><it><![CDATA[Tempelmästare]]></it><se><![CDATA[Mistrz świątyni]]></se><pl><![CDATA[Мастер]]></pl><ru><![CDATA[Ahli Kuil]]></ru><id><![CDATA[]]></id><ar><![CDATA[]]></ar><jp><![CDATA[]]></jp><cn><![CDATA[]]></cn><es_mx><![CDATA[]]></es_mx><es_ar><![CDATA[]]></es_ar></textItem><textItem identifier="award_desc_4"><en_us><![CDATA[Completed level 15.]]></en_us><en_uk><![CDATA[Level 15 voltooid.]]></en_uk><nl><![CDATA[Niveau 15 atteint.]]></nl><fr><![CDATA[Level 15 abgeschlossen.]]></fr><de><![CDATA[Completa el nivel 15.]]></de><es><![CDATA[Fase 15 concluída.]]></es><br><![CDATA[Nível 15 concluído.]]></br><pt><![CDATA[Completato il livello 15.]]></pt><it><![CDATA[Klarade nivå 15.]]></it><se><![CDATA[Ukończono poziom 15.]]></se><pl><![CDATA[Пройден 15 уровень.]]></pl><ru><![CDATA[Level 15 selesai.]]></ru><id><![CDATA[]]></id><ar><![CDATA[]]></ar><jp><![CDATA[]]></jp><cn><![CDATA[]]></cn><es_mx><![CDATA[]]></es_mx><es_ar><![CDATA[]]></es_ar></textItem><textItem identifier="award_name_5"><en_us><![CDATA[Templetastic]]></en_us><en_uk><![CDATA[Tempeltastisch]]></en_uk><nl><![CDATA[Temple d'enfer]]></nl><fr><![CDATA[Tempelgott]]></fr><de><![CDATA[Templotástico]]></de><es><![CDATA[Templotástico]]></es><br><![CDATA[Templástico]]></br><pt><![CDATA[Templomane]]></pt><it><![CDATA[Tempelproffs]]></it><se><![CDATA[Uświęcony]]></se><pl><![CDATA[Крутой инженер]]></pl><ru><![CDATA[Kuil-tastis]]></ru><id><![CDATA[]]></id><ar><![CDATA[]]></ar><jp><![CDATA[]]></jp><cn><![CDATA[]]></cn><es_mx><![CDATA[]]></es_mx><es_ar><![CDATA[]]></es_ar></textItem><textItem identifier="award_desc_5"><en_us><![CDATA[Completed the game without restarting.]]></en_us><en_uk><![CDATA[Spel voltooid zonder opnieuw te starten.]]></en_uk><nl><![CDATA[Partie terminée sans redémarrage.]]></nl><fr><![CDATA[Spiel ohne Neustart abgeschlossen.]]></fr><de><![CDATA[Completa el juego sin reiniciar.]]></de><es><![CDATA[Jogo concluído sem reiniciar.]]></es><br><![CDATA[Jogo concluído sem reiniciar.]]></br><pt><![CDATA[Completato il gioco senza ricominciare.]]></pt><it><![CDATA[Klarade spelet utan att starta om.]]></it><se><![CDATA[Ukończono grę bez restartowania.]]></se><pl><![CDATA[Игра пройдена с первой попытки.]]></pl><ru><![CDATA[Game selesai tanpa mulai dari awal.]]></ru><id><![CDATA[]]></id><ar><![CDATA[]]></ar><jp><![CDATA[]]></jp><cn><![CDATA[]]></cn><es_mx><![CDATA[]]></es_mx><es_ar><![CDATA[]]></es_ar></textItem></LocalisedText> ; SpilGame.importXMLv2(xmlData); trace("Language Data Succesfully included"); Languages.initialize(); SpilGame.initialize("Rebuild the Temple", PortalGroup.FAMILY, "Rebuild the Temple.html", this, true); _spilGamesServices = SpilGamesServices.getInstance(); _spilGamesServices.addEventListener("servicesReady", onServicesReady); _spilGamesServices.addEventListener("servicesFailed", onServicesFailed); _spilGamesServices.connect(this); stage.addEventListener(MouseEvent.CLICK, fnLogoUrl); LoadLogo.addEventListener(MouseEvent.CLICK, fnLogoUrl); lbar.addEventListener(Event.ENTER_FRAME, enterFrameHandler); } public function ond_RePlayd_Back(_arg1){ gotoAndStop("start"); } function __setProp___id21___7(){ try { __id21_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id21_.text = "{submit}"; __id21_.textColor = 0xFF6600; __id21_.textSize = 44; __id21_.bold = false; __id21_.disableWordwrap = false; __id21_.embedFonts = false; __id21_.font = ""; __id21_.hAlign = "center"; __id21_.multiline = false; __id21_.vAlign = "middle"; __id21_.antiAliasType = "advanced"; __id21_.glowBlur = 6; __id21_.glowColor = 0xFFFFFF; __id21_.useGlowFilter = true; __id21_.glowQuality = 1; __id21_.glowStrength = 10; __id21_.gridFitType = "pixel"; __id21_.italic = false; __id21_.selectable = false; __id21_.underline = false; try { __id21_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame7(){ if ((((__setPropDict[__id20_] == undefined)) || (!((int(__setPropDict[__id20_]) == 7))))){ __setPropDict[__id20_] = currentFrame; __setProp___id20___7(); }; if ((((__setPropDict[awarddesc] == undefined)) || (!((int(__setPropDict[awarddesc]) == 7))))){ __setPropDict[awarddesc] = currentFrame; __setProp_awarddesc__7(); }; if ((((__setPropDict[awardname] == undefined)) || (!((int(__setPropDict[awardname]) == 7))))){ __setPropDict[awardname] = currentFrame; __setProp_awardname__7(); }; if ((((__setPropDict[__id22_] == undefined)) || (!((int(__setPropDict[__id22_]) == 7))))){ __setPropDict[__id22_] = currentFrame; __setProp___id22___7(); }; if ((((__setPropDict[__id19_] == undefined)) || (!((int(__setPropDict[__id19_]) == 7))))){ __setPropDict[__id19_] = currentFrame; __setProp___id19___7(); }; if ((((__setPropDict[__id21_] == undefined)) || (!((int(__setPropDict[__id21_]) == 7))))){ __setPropDict[__id21_] = currentFrame; __setProp___id21___7(); }; stop(); SoundMixer.stopAll(); d_OverLogo.addEventListener(MouseEvent.CLICK, onOverLogo); if (Game.AllScore < 0){ Game.AllScore = 0; }; d_Score.text = String(Game.AllScore); award = 0; if (Game._level >= 3){ award = 1; }; if (Game._level >= 5){ award = 2; }; if ((((Game._level >= 10)) && ((Game.AllScore >= 5500)))){ award = 3; }; if (Game._level >= 15){ award = 4; if (Game.Retrying == false){ award = 5; }; }; awardname.visible = !((award == 0)); awarddesc.visible = !((award == 0)); if (award > 0){ awardname.text = (("{award_name_" + award) + "}"); awarddesc.text = (("{award_desc_" + award) + "}"); }; trace("award", award); d_RePlay.addEventListener(MouseEvent.CLICK, onReplay); d_Submit.addEventListener(MouseEvent.CLICK, onSubmit); gamename = "RebuildTheTemple"; furl = "www.gamesonly.net"; } public function onReplay(_arg1){ gotoAndStop("start"); } public function onSubmit(_arg1){ if (award > 0){ AwardsService.submitAward(("award" + award)); }; ScoreService.submitScore(int(d_Score.text)); } public function onClick(_arg1){ var _local2:*; switch (_arg1.currentTarget.name){ case "d_Play": Game._level = 1; gotoAndStop("game"); break; case "d_Help": gotoAndStop("help"); break; case "d_Credits": gotoAndStop("credits"); break; case "d_More": _local2 = getLink("logo_intro"); navigateToURL(new URLRequest(_local2), "_blank"); break; }; } public function onHighScore(_arg1){ navigateToURL(new URLRequest("http://www.gamesonly.net/highscore.php?game=RebuildTheTemple"), "_blank"); } function __setProp___id0___4(){ try { __id0_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id0_.text = "{play}"; __id0_.textColor = 0xFF6600; __id0_.textSize = 44; __id0_.bold = false; __id0_.disableWordwrap = false; __id0_.embedFonts = false; __id0_.font = ""; __id0_.hAlign = "center"; __id0_.multiline = false; __id0_.vAlign = "middle"; __id0_.antiAliasType = "advanced"; __id0_.glowBlur = 6; __id0_.glowColor = 0xFFFFFF; __id0_.useGlowFilter = true; __id0_.glowQuality = 1; __id0_.glowStrength = 10; __id0_.gridFitType = "pixel"; __id0_.italic = false; __id0_.selectable = false; __id0_.underline = false; try { __id0_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id20___7(){ try { __id20_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id20_.text = "{youscore}"; __id20_.textColor = 0xFFFF00; __id20_.textSize = 30; __id20_.bold = false; __id20_.disableWordwrap = false; __id20_.embedFonts = false; __id20_.font = ""; __id20_.hAlign = "center"; __id20_.multiline = false; __id20_.vAlign = "middle"; __id20_.antiAliasType = "advanced"; __id20_.glowBlur = 6; __id20_.glowColor = 0; __id20_.useGlowFilter = true; __id20_.glowQuality = 1; __id20_.glowStrength = 2; __id20_.gridFitType = "pixel"; __id20_.italic = false; __id20_.selectable = false; __id20_.underline = false; try { __id20_["componentInspectorSetting"] = false; } catch(e:Error) { }; } public function onHelpPlay(_arg1){ gotoAndStop("game"); } public function StartLogoUrl(_arg1:MouseEvent){ var _local2:*; _local2 = getLink("logo_intro"); navigateToURL(new URLRequest(_local2), "_blank"); } public function onShare(_arg1){ var _local2:String; var _local3:String; _local2 = ExternalInterface.call("eval", "window.location.href"); if (_local2 == null){ _local2 = "http://www.gamesonly.net"; }; if (_arg1.currentTarget == d_Facebook){ _local3 = (("http://www.facebook.com/share.php?u=" + _local2) + "&t= Rebuild The Temple"); } else { _local3 = ("http://twitter.com/home?status=Currently Playing Rebuild The Temple " + _local2); }; navigateToURL(new URLRequest(_local3), "_blank"); } public function onFscreen(_arg1:MouseEvent):void{ var event = _arg1; try { switch (stage.displayState){ case "normal": stage.displayState = "fullScreen"; d_Fscreen.gotoAndStop(2); break; case "fullScreen": default: stage.displayState = "normal"; d_Fscreen.gotoAndStop(1); break; }; } catch(e:SecurityError) { trace("<param name=\"allowFullScreen\" value=\"true\" />"); }; } function __setProp___id3___4(){ try { __id3_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id3_.text = "{moregames}"; __id3_.textColor = 0xFF6600; __id3_.textSize = 44; __id3_.bold = false; __id3_.disableWordwrap = false; __id3_.embedFonts = false; __id3_.font = ""; __id3_.hAlign = "center"; __id3_.multiline = false; __id3_.vAlign = "middle"; __id3_.antiAliasType = "advanced"; __id3_.glowBlur = 6; __id3_.glowColor = 0xFFFFFF; __id3_.useGlowFilter = true; __id3_.glowQuality = 1; __id3_.glowStrength = 10; __id3_.gridFitType = "pixel"; __id3_.italic = false; __id3_.selectable = false; __id3_.underline = false; try { __id3_["componentInspectorSetting"] = false; } catch(e:Error) { }; } public function onOverLogo(_arg1){ var _local2:*; _local2 = getLink("button_gameover_moregames"); navigateToURL(new URLRequest(_local2), "_blank"); } function __setProp_wocao__5(){ try { wocao["componentInspectorSetting"] = true; } catch(e:Error) { }; wocao.text = "{howtoplay2}"; wocao.textColor = 0xFFFFFF; wocao.textSize = 50; wocao.bold = false; wocao.disableWordwrap = false; wocao.embedFonts = false; wocao.font = ""; wocao.hAlign = "center"; wocao.multiline = false; wocao.vAlign = "middle"; wocao.antiAliasType = "advanced"; wocao.glowBlur = 10; wocao.glowColor = 2848799; wocao.useGlowFilter = true; wocao.glowQuality = 1; wocao.glowStrength = 5; wocao.gridFitType = "pixel"; wocao.italic = false; wocao.selectable = false; wocao.underline = false; try { wocao["componentInspectorSetting"] = false; } catch(e:Error) { }; } public function fnLogoUrl(_arg1:MouseEvent){ var _local2:*; _local2 = getLink("logo_intro"); navigateToURL(new URLRequest(_local2), "_blank"); } function __setProp_awardname__7(){ try { awardname["componentInspectorSetting"] = true; } catch(e:Error) { }; awardname.text = "{youscore}"; awardname.textColor = 0xFFFF00; awardname.textSize = 30; awardname.bold = false; awardname.disableWordwrap = false; awardname.embedFonts = false; awardname.font = ""; awardname.hAlign = "center"; awardname.multiline = false; awardname.vAlign = "middle"; awardname.antiAliasType = "advanced"; awardname.glowBlur = 6; awardname.glowColor = 0; awardname.useGlowFilter = true; awardname.glowQuality = 1; awardname.glowStrength = 2; awardname.gridFitType = "pixel"; awardname.italic = false; awardname.selectable = false; awardname.underline = false; try { awardname["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id6___5(){ try { __id6_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id6_.text = "{helptext}"; __id6_.textColor = 16446133; __id6_.textSize = 20; __id6_.bold = false; __id6_.disableWordwrap = false; __id6_.embedFonts = false; __id6_.font = ""; __id6_.hAlign = "left"; __id6_.multiline = true; __id6_.vAlign = "middle"; __id6_.antiAliasType = "advanced"; __id6_.glowBlur = 10; __id6_.glowColor = 2848799; __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) { }; } public function onServicesFailed(_arg1:Event):void{ trace("Submitter failed to load"); trace(_spilGamesServices.isDomainAllowed()); } function __setProp___id19___7(){ try { __id19_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id19_.text = "{gameover}"; __id19_.textColor = 0xFF6600; __id19_.textSize = 50; __id19_.bold = false; __id19_.disableWordwrap = false; __id19_.embedFonts = false; __id19_.font = ""; __id19_.hAlign = "center"; __id19_.multiline = false; __id19_.vAlign = "middle"; __id19_.antiAliasType = "advanced"; __id19_.glowBlur = 10; __id19_.glowColor = 16777113; __id19_.useGlowFilter = true; __id19_.glowQuality = 1; __id19_.glowStrength = 10; __id19_.gridFitType = "pixel"; __id19_.italic = false; __id19_.selectable = false; __id19_.underline = false; try { __id19_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package RebuildtheTemple_fla
Section 89
//SelectLevel_146 (RebuildtheTemple_fla.SelectLevel_146) package RebuildtheTemple_fla { import flash.display.*; public dynamic class SelectLevel_146 extends MovieClip { public var d_S8:SimpleButton; public var d_S2:SimpleButton; public var d_S5:SimpleButton; public var d_S6:SimpleButton; public var d_S7:SimpleButton; public var d_S9:SimpleButton; public var d_S4:SimpleButton; public var d_S10:SimpleButton; public var d_S14:SimpleButton; public var d_S11:SimpleButton; public var d_S15:SimpleButton; public var d_S13:SimpleButton; public var d_S12:SimpleButton; public var d_S3:SimpleButton; public var d_S1:SimpleButton; } }//package RebuildtheTemple_fla
Section 90
//Timeline_1 (RebuildtheTemple_fla.Timeline_1) package RebuildtheTemple_fla { import flash.display.*; public dynamic class Timeline_1 extends MovieClip { public function Timeline_1(){ addFrameScript(199, frame200); } function frame200(){ stop(); } } }//package RebuildtheTemple_fla
Section 91
//Timeline_167 (RebuildtheTemple_fla.Timeline_167) package RebuildtheTemple_fla { import flash.display.*; public dynamic class Timeline_167 extends MovieClip { public function Timeline_167(){ addFrameScript(0, frame1); } function frame1(){ stop(); if (!MediaManager.soundState){ gotoAndStop(2); }; } } }//package RebuildtheTemple_fla
Section 92
//Timeline_168 (RebuildtheTemple_fla.Timeline_168) package RebuildtheTemple_fla { import flash.display.*; public dynamic class Timeline_168 extends MovieClip { public function Timeline_168(){ addFrameScript(0, frame1); } function frame1(){ stop(); if (!MediaManager.musicState){ gotoAndStop(2); }; } } }//package RebuildtheTemple_fla
Section 93
//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); } public 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 94
//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 95
//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 96
//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 97
//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.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.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 (mx)"; _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"; addLanguage(_local1); addReference(_local1, "mx"); _local1 = new Language("es_ar", "arg"); _local1.displayName = "Español (ar)"; _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"; 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 98
//LanguageSelectBox (spill.localisation.LanguageSelectBox) package spill.localisation { import flash.display.*; import flash.text.*; import flash.events.*; 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 99
//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 100
//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 101
//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 = ""; }; trace(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 102
//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 103
//spil_internal (spill.localisation.spil_internal) package spill.localisation { public namespace spil_internal = "spill.localisation"; }//package spill.localisation
Section 104
//SpilGame (spill.localisation.SpilGame) package spill.localisation { import flash.display.*; import flash.text.*; import flash.events.*; import flash.net.*; import flash.ui.*; import flash.external.*; import flash.system.*; 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{ var _local1:String; _local1 = "http://www.gameportal.net/"; _local1 = (_local1 + ("?utm_medium=brandedgames_" + (isExternal) ? "external" : "internal")); _local1 = (_local1 + ("&utm_campaign=" + gameName)); _local1 = (_local1 + ("&utm_source=" + Brand.stripSubDomain((embedDomain) ? embedDomain : hostingDomain))); _local1 = (_local1 + "&utm_content=Branding_Link"); return (_local1); } 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 105
//SpilGamesLink (spill.localisation.SpilGamesLink) package spill.localisation { import flash.display.*; import flash.events.*; 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 106
//TextFieldFit (spill.localisation.TextFieldFit) package spill.localisation { import flash.display.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.filters.*; 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 textField():TextField{ return (field); } public function get glowColor():uint{ return (_glowColor); } public function set glowStrength(_arg1:Number):void{ _glowStrength = _arg1; invalidate(); } } }//package spill.localisation
Section 107
//Submitter (Spill.Components.Submitter) package Spill.Components { import flash.display.*; public dynamic class Submitter extends MovieClip { public var OO00OO1l1l:OOO000lll; } }//package Spill.Components
Section 108
//O1OOO0O00 (Util.O1OOO0O00) package Util { import flash.net.*; import flash.external.*; public class O1OOO0O00 { private static const _O1lO0Oll1:Array = ["www.a10.com.gp.dev.spilgames.eu", "stg.pl.a10.com", "gamedev.dev.spilgames.com", "www.agame.com", "www.girlsgogames.com", "www.games.co.uk", "www.mygames.co.uk", "www.girlsgogames.co.uk", "www.spel.nl", "www.spelletjes.nl", "www.girlsgogames.nl", "www.jetztspielen.de", "www.spielen.com", "www.girlsgogames.de", "www.jeux.fr", "www.jeu.fr", "www.girlsgogames.fr", "www.juegos.com", "www.zapjuegos.com", "www.juegosdechicas.com", "www.gioco.it", "www.giocaregratis.it", "www.girlsgogames.it", "www.gry.pl", "www.minigry.pl", "www.girlsgogames.pl", "www.spela.se", "www.spel.eu", "www.girlsgogames.se", "www.ojogos.pt", "www.ourgames.ru", "www.flashgames.ru", "www.girlsgogames.ru", "www.oyunlar123.com", "www.asoyun.com", "www.girlsgogamestr.com", "www.gamesgames.com", "www.agame.com", "www.girlsgogames.com", "www.juegos.com", "www.zapjuegos.com", "www.juegosdechicas.com", "www.ojogos.com.br", "www.clickjogos.com", "www.girlsgogames.com.br", "www.game.com.cn", "www.xiaoyouxi.com", "www.egames.jp", "www.game.co.in", "www.game.co.in", "www.girlsgogames.in", "www.games.co.id", "www.laro.com.ph", "www.game.com.my", "www.onrpg.com", "www.zlonggames.com", "www.a10.com", "localhost"]; private static var _OOl10ll1l:URLRequest; private static var _O0Oll0l00; public function O1OOO0O00():void{ super(); try { _O0Oll0l00 = ExternalInterface.call("window.location.href.toString"); } catch(e) { _O0Oll0l00 = "error"; }; if ((((_O0Oll0l00 == null)) || ((_O0Oll0l00 == "")))){ _O0Oll0l00 = "error"; }; if (String(_O0Oll0l00).indexOf(".swf") != -1){ _O0Oll0l00 = "error"; }; } public function O0111l110():Boolean{ if (((!((_O001llOll(_O11ll1l00(_O0Oll0l00)) == -1))) && (!((_O0Oll0l00 == "error"))))){ return (true); }; return (false); } private static function _O11ll1l00(_arg1:String):String{ var _local2:String = new String(); var _local3:uint = 7; while (_local3 < _arg1.length) { if (_arg1.charAt(_local3) == "/"){ break; }; _local2 = (_local2 + _arg1.charAt(_local3)); _local3++; }; return (_local2); } private static function _O001llOll(_arg1:String):Number{ var _local2:uint; if (((_O1lO0Oll1) && (_arg1))){ _local2 = 0; while (_local2 < _O1lO0Oll1.length) { if (_arg1 == _O1lO0Oll1[_local2]){ return (_local2); }; _local2++; }; return (-1); } else { trace("cannot find site name"); }; return (-1); } } }//package Util
Section 109
//Box1 (Box1) package { import flash.display.*; public dynamic class Box1 extends MovieClip { public var Rect:MovieClip; } }//package
Section 110
//Box1_2 (Box1_2) package { import flash.display.*; public dynamic class Box1_2 extends MovieClip { public var Rect:MovieClip; } }//package
Section 111
//Box10_1 (Box10_1) package { import flash.display.*; public dynamic class Box10_1 extends MovieClip { public var Rect:MovieClip; } }//package
Section 112
//Box10_2 (Box10_2) package { import flash.display.*; public dynamic class Box10_2 extends MovieClip { public var Rect:MovieClip; } }//package
Section 113
//Box2_1 (Box2_1) package { import flash.display.*; public dynamic class Box2_1 extends MovieClip { public var Rect:MovieClip; } }//package
Section 114
//Box2_2 (Box2_2) package { import flash.display.*; public dynamic class Box2_2 extends MovieClip { public var Rect:MovieClip; } }//package
Section 115
//Box3_1 (Box3_1) package { import flash.display.*; public dynamic class Box3_1 extends MovieClip { public var Rect:MovieClip; } }//package
Section 116
//Box3_2 (Box3_2) package { import flash.display.*; public dynamic class Box3_2 extends MovieClip { public var Rect:MovieClip; } }//package
Section 117
//Box4_1 (Box4_1) package { import flash.display.*; public dynamic class Box4_1 extends MovieClip { public var Rect:MovieClip; } }//package
Section 118
//Box4_2 (Box4_2) package { import flash.display.*; public dynamic class Box4_2 extends MovieClip { public var Rect:MovieClip; } }//package
Section 119
//Box5_1 (Box5_1) package { import flash.display.*; public dynamic class Box5_1 extends MovieClip { public var Rect:MovieClip; } }//package
Section 120
//Box5_2 (Box5_2) package { import flash.display.*; public dynamic class Box5_2 extends MovieClip { public var Rect:MovieClip; } }//package
Section 121
//Box6_1 (Box6_1) package { import flash.display.*; public dynamic class Box6_1 extends MovieClip { public var Rect:MovieClip; } }//package
Section 122
//Box6_2 (Box6_2) package { import flash.display.*; public dynamic class Box6_2 extends MovieClip { public var Rect:MovieClip; } }//package
Section 123
//Box7_1 (Box7_1) package { import flash.display.*; public dynamic class Box7_1 extends MovieClip { public var Rect:MovieClip; } }//package
Section 124
//Box7_2 (Box7_2) package { import flash.display.*; public dynamic class Box7_2 extends MovieClip { public var Rect:MovieClip; } }//package
Section 125
//Box8_1 (Box8_1) package { import flash.display.*; public dynamic class Box8_1 extends MovieClip { public var Rect:MovieClip; } }//package
Section 126
//Box8_2 (Box8_2) package { import flash.display.*; public dynamic class Box8_2 extends MovieClip { public var Rect:MovieClip; } }//package
Section 127
//Box9_1 (Box9_1) package { import flash.display.*; public dynamic class Box9_1 extends MovieClip { public var Rect:MovieClip; } }//package
Section 128
//Box9_2 (Box9_2) package { import flash.display.*; public dynamic class Box9_2 extends MovieClip { public var Rect:MovieClip; } }//package
Section 129
//Circle1_1 (Circle1_1) package { import flash.display.*; public dynamic class Circle1_1 extends MovieClip { public var Rect:MovieClip; } }//package
Section 130
//Circle1_2 (Circle1_2) package { import flash.display.*; public dynamic class Circle1_2 extends MovieClip { public var Rect:MovieClip; } }//package
Section 131
//Config (Config) package { public class Config { public static var Item4 = 0; public static var RestartScore = 300; public static var ClearScore = 20; public static var Item3 = 200; public static var HeightScore = 250; public static var WidthScore = 300; public static var LevelupScore = 400; public static var LevelupPlusScore = 30; public static var Item1 = 300; public static var Item2 = 250; } }//package
Section 132
//EmbedObject (EmbedObject) package { import flash.external.*; import flash.system.*; public class EmbedObject { private var attemptedPropsRetrieval:Boolean;// = false private var embedObjectProps:Object; private static var _singleton:EmbedObject; private static var SET_CALLBACK_NAME:String = "asorg_setEmbedObjectProps"; public function EmbedObject(){ attemptedPropsRetrieval = false; super(); initialize(); } public function external_SetEmbedObjectProps(_arg1:Object){ this.embedObjectProps = _arg1; } private function initialize(){ ExternalInterface.addCallback(SET_CALLBACK_NAME, external_SetEmbedObjectProps); } public function _getEmbedObjectProps():Object{ if (!attemptedPropsRetrieval){ retrieveEmbedObjectProps(); attemptedPropsRetrieval = true; }; return (embedObjectProps); } public function retrieveEmbedObjectProps(){ retrieveEmbedObjectPropsForTagname("embed"); if (!embedObjectProps){ retrieveEmbedObjectPropsForTagname("object"); }; } public function executeJS(_arg1:String):Object{ return (ExternalInterface.call((("function() {" + _arg1) + "}"))); } public function retrieveEmbedObjectPropsForTagname(_arg1:String){ var _local2:String; if ((((Capabilities.playerType == "PlugIn")) || ((Capabilities.playerType == "ActiveX")))){ _local2 = (((((("var elts = document.getElementsByTagName('" + _arg1) + "'); for (var i=0;i<elts.length;i++) {if(typeof elts[i].") + SET_CALLBACK_NAME) + " != 'undefined') { if (!elts[i].getAttribute('id')) {elts[i].setAttribute('id','asorgid_'+Math.floor(Math.random()*100000));} var props = {}; props.id = elts[i].getAttribute('id'); for (var x=0; x < elts[i].attributes.length; x++) { props[elts[i].attributes[x].nodeName] = elts[i].attributes[x].nodeValue;} elts[i].") + SET_CALLBACK_NAME) + "(props); }}"); singleton.executeJS(_local2); } else { singleton.external_SetEmbedObjectProps({}); }; } public static function getId():String{ return (getEnumerableParam("id")); } public static function getEnumerableParams():Object{ if (!singleton.embedObjectProps){ singleton._getEmbedObjectProps(); }; return (singleton.embedObjectProps); } public static function getSingleton():EmbedObject{ if (_singleton == null){ _singleton = new (EmbedObject); }; return (_singleton); } private static function testFunc(){ } public static function getParamViaExternal(_arg1:String):Object{ return (Object(singleton.executeJS((((("return document.getElementById('" + getEnumerableParam("id")) + "').getAttribute('") + _arg1) + "');")))); } public static function get singleton():EmbedObject{ return (getSingleton()); } public static function getEnumerableParam(_arg1:String):String{ return (String(getEnumerableParams()[_arg1])); } } }//package
Section 133
//Game (Game) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import flash.display.*; import flash.text.*; import flash.events.*; import spill.localisation.*; import Box2D.Dynamics.Contacts.*; import com.spilgames.api.*; import flash.media.*; import flash.system.*; import flash.geom.*; public class Game extends MovieClip { public var _points:int;// = 0 private var _listener:MyContact; public var d_DebugMC:MovieClip; public var d_LevelUp:MovieClip; public var d_Container:MovieClip; public var d_Music:MovieClip; public var d_Debug:SimpleButton; private var _world:b2World; public var _timeStep:Number;// = 0.0333333333333333 public var _world_scale:int;// = 30 public var d_Menu:SimpleButton; private var _equake:int;// = 0 private var _useEquake:Boolean;// = false private var _isEquake:Boolean;// = false public var _iterations:int;// = 10 public var d_Score:TextField; public var d_Points:TextField; public var __id7_:LocalizedTextField; public var __id10_:LocalizedTextField; public var d_Sound:MovieClip; public var __id11_:LocalizedTextField; public var d_LevelFailed:MovieClip; public var __id8_:LocalizedTextField; private var _currentLevel:LevelConfig; private var frame:uint; public var d_Memeoy:TextField; public var __id9_:LocalizedTextField; public var __id12_:LocalizedTextField; public var d_Item1:SimpleButton; public var d_Item3:SimpleButton; public var d_Level:TextField; public var d_Item4:SimpleButton; public var d_Item2:SimpleButton; private var _maxLevel:int;// = 15 private var _tickCount:int;// = 0 public static var AllScore:int = 0; public static var _level:int = 1; public static var Retrying:Boolean; public function Game(){ _maxLevel = 15; _points = 0; _world_scale = 30; _iterations = 10; _timeStep = (1 / 30); _equake = 0; _isEquake = false; _useEquake = false; _tickCount = 0; super(); SoundMixer.stopAll(); frame = this.stage.frameRate; while (d_DebugMC.numChildren) { d_DebugMC.removeChildAt(0); }; d_DebugMC.mouseEnabled = false; d_DebugMC.mouseChildren = false; d_Sound.addEventListener(MouseEvent.CLICK, onSound); d_Sound.buttonMode = true; d_Music.addEventListener(MouseEvent.CLICK, onMusic); d_Music.buttonMode = true; d_LevelUp.visible = false; d_LevelUp.cacheAsBitmap = true; d_LevelUp.d_Play.addEventListener(MouseEvent.CLICK, onPlay); d_LevelFailed.visible = false; d_LevelFailed.cacheAsBitmap = true; d_LevelFailed.d_Restart.addEventListener(MouseEvent.CLICK, onRestart); d_LevelFailed.d_End.addEventListener(MouseEvent.CLICK, gameover); d_Debug.addEventListener(MouseEvent.CLICK, onDebug); d_Menu.addEventListener(MouseEvent.CLICK, onMenu); d_Item1.addEventListener(MouseEvent.CLICK, onItem); d_Item2.addEventListener(MouseEvent.CLICK, onItem); d_Item3.addEventListener(MouseEvent.CLICK, onItem); d_Item4.addEventListener(MouseEvent.CLICK, onItem); score = 0; points = 3; level = 1; Game.Retrying = false; this.initWorld(); onPlay(); __setProp___id8__Game_lang_1(); __setProp___id7__Game_lang_1(); __setProp___id9__Game_lang_1(); __setProp___id10__Game_lang_1(); __setProp___id11__Game_lang_1(); __setProp___id12__Game_lang_1(); } private function onCollision(_arg1:MyContactEvent):void{ var _local2:b2Body; var _local3:b2Body; _local2 = _arg1.contactPoint.shape1.GetBody(); _local3 = _arg1.contactPoint.shape2.GetBody(); if ((((((((_currentLevel.Left == _local2)) || ((_currentLevel.Left == _local3)))) || ((_currentLevel.Right == _local2)))) || ((_currentLevel.Right == _local3)))){ levelfailed(1); }; } private function onTick(_arg1):void{ var _local2:b2Body; var _local3:MovieClip; _world.Step(_timeStep, _iterations); _local2 = _world.GetBodyList(); while (_local2 != null) { _local3 = (_local2.GetUserData() as MovieClip); if (_local3 != null){ _local3.x = (_local2.GetPosition().x * _world_scale); _local3.y = (_local2.GetPosition().y * _world_scale); _local3.rotation = ((_local2.GetAngle() / Math.PI) * 180); }; _local2 = _local2.GetNext(); }; if (_isEquake){ if ((_equake % 25) == 0){ BobyJump(); }; _equake++; if (_equake > 400){ _isEquake = false; }; }; _tickCount++; if (_tickCount > 25){ _tickCount = 0; if (checkLevelup()){ levelup(); } else { if (checkLevelfailed()){ levelfailed(2); }; }; }; d_Memeoy.text = (Math.round((System.totalMemory / 0x0400)) + " KB"); } function __setProp___id11__Game_lang_1(){ try { __id11_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id11_.text = "{score}"; __id11_.textColor = 4484737; __id11_.textSize = 28; __id11_.bold = true; __id11_.disableWordwrap = false; __id11_.embedFonts = true; __id11_.font = ""; __id11_.hAlign = "right"; __id11_.multiline = false; __id11_.vAlign = "middle"; __id11_.antiAliasType = "advanced"; __id11_.glowBlur = 3; __id11_.glowColor = 8088159; __id11_.useGlowFilter = true; __id11_.glowQuality = 1; __id11_.glowStrength = 1; __id11_.gridFitType = "pixel"; __id11_.italic = false; __id11_.selectable = false; __id11_.underline = false; try { __id11_["componentInspectorSetting"] = false; } catch(e:Error) { }; } public function initWorld(){ var _local1:b2AABB; var _local2:b2DebugDraw; var _local3:b2PolygonDef; var _local4:b2BodyDef; var _local5:b2Body; while (d_Container.numChildren > 0) { d_Container.removeChildAt(0); }; _local1 = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); _world = new b2World(_local1, new b2Vec2(0, 10), true); _local2 = new b2DebugDraw(); _local2.m_sprite = d_Container; _local2.m_drawScale = 30; _local2.m_fillAlpha = 0.3; _local2.m_lineThickness = 1; _local2.m_drawFlags = (b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit); _local3 = new b2PolygonDef(); _local4 = new b2BodyDef(); _local3.friction = 0.4; _local3.SetAsBox((350 / _world_scale), (20 / _world_scale)); _local3.density = 0; _local4.position.Set(0, (245 / _world_scale)); _local5 = _world.CreateBody(_local4); _local5.CreateShape(_local3); _local5.SetUserData("wall"); _local3.SetAsBox((350 / _world_scale), (4 / _world_scale)); _local4.position.Set((0 / _world_scale), (-240 / _world_scale)); _local5 = _world.CreateBody(_local4); _local5.CreateShape(_local3); _local5.SetUserData("wall"); _local3.SetAsBox((8 / _world_scale), (268 / _world_scale)); _local4.position.Set((-360 / _world_scale), (-3 / _world_scale)); _local5 = _world.CreateBody(_local4); _local5.CreateShape(_local3); _local5.SetUserData("wall"); _local4.position.Set((360 / _world_scale), (-3 / _world_scale)); _local5 = _world.CreateBody(_local4); _local5.CreateShape(_local3); _local5.SetUserData("wall"); _listener = new MyContact(); _listener.addEventListener(MyContactEvent.CollisionAdd, onCollision); _world.SetContactListener(_listener); } public function clear(){ this.removeEventListener(Event.ENTER_FRAME, onTick); if (_currentLevel != null){ _currentLevel.clear(); }; d_Container.removeEventListener(MouseEvent.CLICK, onClick); trace("清理完成"); } function onSound(_arg1){ if (d_Sound.currentFrame == 1){ d_Sound.gotoAndStop(2); MediaManager.soundState = false; } else { d_Sound.gotoAndStop(1); MediaManager.soundState = true; }; } public function get score(){ return (Game.AllScore); } function __setProp___id9__Game_lang_1(){ try { __id9_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id9_.text = "{widerarea}"; __id9_.textColor = 0xFFFFFF; __id9_.textSize = 25; __id9_.bold = true; __id9_.disableWordwrap = false; __id9_.embedFonts = true; __id9_.font = ""; __id9_.hAlign = "right"; __id9_.multiline = false; __id9_.vAlign = "top"; __id9_.antiAliasType = "advanced"; __id9_.glowBlur = 3; __id9_.glowColor = 0; __id9_.useGlowFilter = false; __id9_.glowQuality = 1; __id9_.glowStrength = 5; __id9_.gridFitType = "pixel"; __id9_.italic = false; __id9_.selectable = false; __id9_.underline = false; try { __id9_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id10__Game_lang_1(){ try { __id10_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id10_.text = "{level}"; __id10_.textColor = 4484737; __id10_.textSize = 28; __id10_.bold = true; __id10_.disableWordwrap = false; __id10_.embedFonts = true; __id10_.font = ""; __id10_.hAlign = "right"; __id10_.multiline = false; __id10_.vAlign = "middle"; __id10_.antiAliasType = "advanced"; __id10_.glowBlur = 4; __id10_.glowColor = 8088159; __id10_.useGlowFilter = true; __id10_.glowQuality = 1; __id10_.glowStrength = 1; __id10_.gridFitType = "pixel"; __id10_.italic = false; __id10_.selectable = false; __id10_.underline = false; try { __id10_["componentInspectorSetting"] = false; } catch(e:Error) { }; } public function levelfailed(_arg1:int){ if (d_LevelFailed.visible){ return; }; MediaManager.playMusic(SFailed, 1); clear(); d_LevelFailed.visible = true; d_LevelFailed.Ani.gotoAndPlay(2); if (_arg1 == 1){ score = (score - Config.WidthScore); d_LevelFailed.d_Score.text = ("-" + Config.WidthScore); } else { score = (score - Config.HeightScore); d_LevelFailed.d_Score.text = ("-" + Config.HeightScore); }; } private function checkLevelfailed():Boolean{ var _local1:b2Body; var _local2:MovieClip; _local1 = _world.GetBodyList(); while (_local1 != null) { _local2 = (_local1.GetUserData() as MovieClip); if (((!((_local2 == null))) && (_local2.IsModel))){ if (!_local2.Lock){ return (false); }; }; _local1 = _local1.GetNext(); }; return (true); } public function get points(){ return (_points); } function onClick(_arg1){ var _local2:Number; var _local3:Number; var _local4:b2AABB; var _local5:Array; var _local6:int; var _local7:*; var _local8:b2Shape; var _local9:Boolean; var _local10:b2Body; var _local11:MovieClip; if (_useEquake){ return; }; MediaManager.playSound(SClick); _local2 = (d_Container.mouseX / _world_scale); _local3 = (d_Container.mouseY / _world_scale); _local4 = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); _local5 = new Array(); _local6 = _world.Query(_local4, _local5, 10); trace(("点击:" + _local6), _local5.length); _local7 = 0; while (_local7 < _local5.length) { _local8 = _local5[_local7]; _local9 = _local5[_local7].TestPoint(_local8.GetBody().GetXForm(), new b2Vec2(_local2, _local3)); if (_local9){ _local10 = _local8.GetBody(); _local11 = (_local10.GetUserData() as MovieClip); if (((!((_local11 == null))) && (!(_local11.Lock)))){ _world.DestroyBody(_local10); if (d_Container.contains(_local11)){ d_Container.removeChild(_local11); }; score = (score + Config.ClearScore); }; }; _local7++; }; } private function checkLevelup():Boolean{ var _local1:b2Body; var _local2:Graphics; var _local3:MovieClip; var _local4:Rectangle; if (_currentLevel == null){ return (false); }; _local1 = _world.GetBodyList(); _local2 = d_DebugMC.graphics; _local2.clear(); _local2.beginFill(0, 0.3); while (_local1 != null) { _local3 = (_local1.GetUserData() as MovieClip); if (((!((_local3 == null))) && (_local3.IsModel))){ _local4 = _local3.Rect.getRect(d_Container); if (_local4.top < (_currentLevel.Line.y - 3)){ return (false); }; }; _local1 = _local1.GetNext(); }; return (true); } public function set level(_arg1){ Game._level = _arg1; if (_arg1 < 16){ d_Level.text = ((String(_arg1) + "/") + _maxLevel); }; } function __setProp___id8__Game_lang_1(){ try { __id8_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id8_.text = "{higherline}"; __id8_.textColor = 0xFFFFFF; __id8_.textSize = 25; __id8_.bold = true; __id8_.disableWordwrap = false; __id8_.embedFonts = true; __id8_.font = ""; __id8_.hAlign = "right"; __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) { }; } public function set score(_arg1){ Game.AllScore = _arg1; if (Game.AllScore < 0){ Game.AllScore = 0; }; d_Score.text = String(_arg1); } public function levelup(){ var _local1:*; clear(); MediaManager.playMusic(SLevelup, 1); score = (score + (Config.LevelupScore + ((level - 1) * Config.LevelupPlusScore))); _local1 = 0; if (level == 3){ _local1 = 1; AwardsService.submitAward(("award" + _local1)); }; if (level == 5){ _local1 = 2; AwardsService.submitAward(("award" + _local1)); }; if ((((level == 10)) && ((Game.AllScore >= 5500)))){ _local1 = 3; AwardsService.submitAward(("award" + _local1)); }; if (level == 15){ _local1 = 4; AwardsService.submitAward(("award" + _local1)); if (Game.Retrying == false){ _local1 = 5; AwardsService.submitAward(("award" + _local1)); }; }; if (_local1 > 0){ trace(_local1); }; if (score < 0){ score = 0; }; ScoreService.submitScore(score); level++; d_LevelUp.visible = true; } private function onRestart(_arg1){ Game.Retrying = true; d_LevelFailed.visible = false; score = (score - Config.RestartScore); onPlay(); } function __setProp___id7__Game_lang_1(){ try { __id7_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id7_.text = "{restart}"; __id7_.textColor = 0xFFFFFF; __id7_.textSize = 25; __id7_.bold = true; __id7_.disableWordwrap = false; __id7_.embedFonts = true; __id7_.font = ""; __id7_.hAlign = "right"; __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) { }; } private function onNext(_arg1){ d_LevelFailed.visible = false; level++; onPlay(); } public function get level(){ return (_level); } public function disorder(_arg1:Array):Array{ var _local2:uint; var _local3:*; var _local4:uint; var _local5:uint; _local2 = _arg1.length; _local5 = 0; while (_local5 < _local2) { _local4 = int((Math.random() * _local2)); _local3 = _arg1[_local5]; _arg1[_local5] = _arg1[_local4]; _arg1[_local4] = _local3; _local5++; }; while (--_local5 >= 0) { _local4 = int((Math.random() * _local2)); _local3 = _arg1[_local5]; _arg1[_local5] = _arg1[_local4]; _arg1[_local4] = _local3; }; return (_arg1); } private function onItem(_arg1:Event){ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; if (_currentLevel == null){ return; }; _local2 = _arg1.currentTarget.name.charAt(6); switch (_local2){ case 1: onPlay(); score = (score - Config.Item1); Game.Retrying = true; break; case 2: if ((((_currentLevel.Line.y < 200)) && ((score >= Config.Item2)))){ _currentLevel.Line.y = (_currentLevel.Line.y - 50); score = (score - Config.Item2); }; break; case 3: if ((((_currentLevel.Right == null)) || ((_currentLevel.Left == null)))){ return; }; _local3 = _currentLevel.Right.GetPosition(); _local4 = _currentLevel.Left.GetPosition(); if (((((((_local3.x * _world_scale) < 370)) && (((_local4.x * _world_scale) > -370)))) && ((score >= Config.Item3)))){ _local3.x = (_local3.x + (50 / _world_scale)); _currentLevel.Right.SetXForm(_local3, 0); _local4.x = (_local4.x - (50 / _world_scale)); _currentLevel.Left.SetXForm(_local4, 0); score = (score - Config.Item3); }; break; case 4: if (points >= Config.Item4){ level++; onPlay(); score = (score - Config.Item4); }; break; }; } function onMusic(_arg1){ if (d_Music.currentFrame == 1){ d_Music.gotoAndStop(2); MediaManager.musicState = false; } else { d_Music.gotoAndStop(1); MediaManager.musicState = true; }; } public function onPlay(_arg1=null){ var _local2:b2Body; var _local3:Class; var _local4:b2Body; var _local5:MovieClip; if (d_LevelUp.visible){ d_LevelUp.visible = false; }; if (level > _maxLevel){ gameover(); return; }; _equake = 0; _isEquake = false; _useEquake = false; MediaManager.playMusic(SBack); while (d_Container.numChildren) { d_Container.removeChildAt(0); }; _local2 = _world.GetBodyList(); while (_local2 != null) { _local4 = _local2.GetNext(); if (_local2.GetUserData() != "wall"){ _world.DestroyBody(_local2); }; _local2 = _local4; }; _world.DrawDebugData(); _local3 = (this.root.loaderInfo.applicationDomain.getDefinition(("Level" + level)) as Class); if (_local3 != null){ _local5 = new (_local3); _currentLevel = LevelManages.getInstance().init(_local5, _world, d_Container); } else { throw (new Error("level error!")); }; this.addEventListener(Event.ENTER_FRAME, onTick); d_Container.addEventListener(MouseEvent.CLICK, onClick); } function onDebug(_arg1){ score = (score + 2000); levelup(); } public function BobyJump(){ var _local1:b2Body; var _local2:int; _local1 = _world.GetBodyList(); while (_local1 != null) { _local2 = ((Math.random() < 0.5)) ? 1 : -1; _local1.ApplyForce(new b2Vec2((((Math.random() * 300) + 100) * _local2), (-(_local1.GetMass()) * 100)), _local1.GetPosition()); _local1 = _local1.GetNext(); }; } public function set points(_arg1){ _points = _arg1; d_Points.text = String(_arg1); } function onMenu(_arg1){ destroy(); MovieClip(parent).gotoAndPlay("start"); } public function gameover(_arg1=null){ destroy(); MovieClip(parent).gotoAndPlay("over"); } function __setProp___id12__Game_lang_1(){ try { __id12_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id12_.text = "{menu}"; __id12_.textColor = 13342872; __id12_.textSize = 28; __id12_.bold = true; __id12_.disableWordwrap = false; __id12_.embedFonts = true; __id12_.font = ""; __id12_.hAlign = "center"; __id12_.multiline = false; __id12_.vAlign = "middle"; __id12_.antiAliasType = "advanced"; __id12_.glowBlur = 4; __id12_.glowColor = 5917506; __id12_.useGlowFilter = true; __id12_.glowQuality = 1; __id12_.glowStrength = 2; __id12_.gridFitType = "pixel"; __id12_.italic = false; __id12_.selectable = false; __id12_.underline = false; try { __id12_["componentInspectorSetting"] = false; } catch(e:Error) { }; } private function destroy(){ var _local1:b2Body; var _local2:*; clear(); _local1 = _world.GetBodyList(); while (_local1 != null) { _local2 = _local1.GetNext(); _world.DestroyBody(_local1); _local1 = _local2; }; _world.SetContactListener(null); _listener.removeEventListener(MyContactEvent.CollisionAdd, onCollision); _world = null; _listener = null; } } }//package
Section 134
//HitLeft (HitLeft) package { import flash.display.*; public dynamic class HitLeft extends MovieClip { } }//package
Section 135
//HitRight (HitRight) package { import flash.display.*; public dynamic class HitRight extends MovieClip { } }//package
Section 136
//Level1 (Level1) package { import flash.display.*; public dynamic class Level1 extends MovieClip { } }//package
Section 137
//Level10 (Level10) package { import flash.display.*; public dynamic class Level10 extends MovieClip { } }//package
Section 138
//Level11 (Level11) package { import flash.display.*; public dynamic class Level11 extends MovieClip { } }//package
Section 139
//Level12 (Level12) package { import flash.display.*; public dynamic class Level12 extends MovieClip { } }//package
Section 140
//Level13 (Level13) package { import flash.display.*; public dynamic class Level13 extends MovieClip { } }//package
Section 141
//Level14 (Level14) package { import flash.display.*; public dynamic class Level14 extends MovieClip { } }//package
Section 142
//Level15 (Level15) package { import flash.display.*; public dynamic class Level15 extends MovieClip { } }//package
Section 143
//Level2 (Level2) package { import flash.display.*; public dynamic class Level2 extends MovieClip { } }//package
Section 144
//Level3 (Level3) package { import flash.display.*; public dynamic class Level3 extends MovieClip { } }//package
Section 145
//Level4 (Level4) package { import flash.display.*; public dynamic class Level4 extends MovieClip { } }//package
Section 146
//Level5 (Level5) package { import flash.display.*; public dynamic class Level5 extends MovieClip { } }//package
Section 147
//Level6 (Level6) package { import flash.display.*; public dynamic class Level6 extends MovieClip { } }//package
Section 148
//Level7 (Level7) package { import flash.display.*; public dynamic class Level7 extends MovieClip { } }//package
Section 149
//Level8 (Level8) package { import flash.display.*; public dynamic class Level8 extends MovieClip { } }//package
Section 150
//Level9 (Level9) package { import flash.display.*; public dynamic class Level9 extends MovieClip { } }//package
Section 151
//LevelConfig (LevelConfig) package { import Box2D.Dynamics.*; import flash.display.*; public class LevelConfig { public var BodyList:Array; public var Left:b2Body; public var Line:MovieClip; public var Right:b2Body; public function LevelConfig(){ BodyList = new Array(); super(); } public function clear(){ Left = null; Right = null; Line = null; BodyList.splice(0); } } }//package
Section 152
//LevelManages (LevelManages) package { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.utils.*; public class LevelManages { private static var _instance:LevelManages; public function init(_arg1:MovieClip, _arg2:b2World, _arg3:MovieClip):LevelConfig{ var _local4:LevelConfig; var _local5:MovieClip; var _local6:String; var _local7:MovieClip; var _local8:int; var _local9:String; var _local10:b2Body; _local4 = new LevelConfig(); trace(("数量:" + _arg1.numChildren)); while (_arg1.numChildren > 0) { _local5 = (_arg1.removeChildAt(0) as MovieClip); if (_local5 == null){ } else { _local5.Lock = true; _local5.IsModel = false; _local5.mouseChildren = false; _local5.mouseEnabled = false; _local6 = getQualifiedClassName(_local5); if (_local6 == "HitLeft"){ _local4.Left = getBoxBody(_arg2, _local5.x, _local5.y, (26 / 2), (288 / 2), true); _arg3.addChild(_local5); _local4.Left.SetUserData(_local5); } else { if (_local6 == "HitRight"){ _local4.Right = getBoxBody(_arg2, _local5.x, _local5.y, (26 / 2), (288 / 2), true); _arg3.addChild(_local5); _local4.Right.SetUserData(_local5); } else { if (_local6 == "Line"){ _local4.Line = _local5; _arg3.addChild(_local5); } else { _local7 = _local5.Rect; _local7.visible = false; _local8 = int(_local6.charAt((_local6.length - 1))); _local9 = _local6.charAt(0); _local6 = _local6.substr(0, (_local6.length - 2)); _local10 = null; if (_local9 == "B"){ _local10 = getBoxBody(_arg2, _local5.x, _local5.y, ((_local7.width * _local5.scaleX) / 2), ((_local7.height * _local5.scaleY) / 2)); } else { if (_local9 == "T"){ _local10 = getTriangleBody(_arg2, _local5.x, _local5.y, (_local7.width * _local5.scaleX), (_local7.height * _local5.scaleY)); } else { if (_local9 == "C"){ _local10 = getCircleBody(_arg2, _local5.x, _local5.y, ((_local7.width * _local5.scaleX) / 2)); }; }; }; if (_local10 != null){ _local10.SetXForm(_local10.GetPosition(), ((_local5.rotation / 180) * Math.PI)); _arg3.addChild(_local5); _local10.SetUserData(_local5); _local5.Lock = (_local8 == 2); _local5.IsModel = true; _local4.BodyList.push(_local10); }; }; }; }; }; }; return (_local4); } public function getTriangleBody(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):b2Body{ var _local6:b2PolygonDef; var _local7:b2BodyDef; var _local8:b2Body; _local6 = new b2PolygonDef(); _local7 = new b2BodyDef(); _local6.friction = 0.3; _local6.vertexCount = 3; _local6.vertices[0].Set(((-(_arg4) / 2) / 30), ((_arg5 / 2) / 30)); _local6.vertices[1].Set(0, ((-(_arg5) / 2) / 30)); _local6.vertices[2].Set(((_arg4 / 2) / 30), ((_arg5 / 2) / 30)); _local6.density = 8; _local7.position.Set((_arg2 / 30), (_arg3 / 30)); _local8 = _arg1.CreateBody(_local7); _local8.CreateShape(_local6); _local8.SetMassFromShapes(); return (_local8); } public function getCircleBody(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Number):b2Body{ var _local5:b2CircleDef; var _local6:b2BodyDef; var _local7:b2Body; _local5 = new b2CircleDef(); _local6 = new b2BodyDef(); _local5.radius = (_arg4 / 30); _local5.friction = 1; _local5.density = 3; _local6.position.Set((_arg2 / 30), (_arg3 / 30)); _local7 = _arg1.CreateBody(_local6); _local7.CreateShape(_local5); _local7.SetMassFromShapes(); return (_local7); } public function getBoxBody(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Boolean=false):b2Body{ var _local7:b2PolygonDef; var _local8:b2BodyDef; var _local9:b2Body; _local7 = new b2PolygonDef(); _local8 = new b2BodyDef(); _local7.SetAsBox((_arg4 / 30), (_arg5 / 30)); _local7.friction = 1; if (!_arg6){ _local7.density = 3; } else { _local7.density = 0; }; _local8.position.Set((_arg2 / 30), (_arg3 / 30)); _local9 = _arg1.CreateBody(_local8); _local9.CreateShape(_local7); _local9.SetMassFromShapes(); return (_local9); } public static function getInstance():LevelManages{ if (_instance == null){ _instance = new (LevelManages); }; return (_instance); } } }//package
Section 153
//Line (Line) package { import flash.display.*; public dynamic class Line extends MovieClip { } }//package
Section 154
//MediaManager (MediaManager) package { import flash.media.*; public class MediaManager { private static var _soundState:Boolean = true; private static var _musicState:Boolean = true; private static var _musicChannel:SoundChannel; public static function playMusic(_arg1:Class, _arg2:Number=99999999):void{ var _local3:Sound; if (_musicChannel != null){ _musicChannel.stop(); }; _local3 = new (_arg1); _musicChannel = _local3.play(0, _arg2, new SoundTransform((_musicState) ? 1 : 0)); } public static function stopMusic():void{ if (_musicChannel != null){ _musicChannel.stop(); _musicChannel = null; }; } public static function set soundState(_arg1:Boolean):void{ _soundState = _arg1; } public static function get musicState():Boolean{ return (_musicState); } public static function get soundState():Boolean{ return (_soundState); } public static function set musicState(_arg1:Boolean):void{ _musicState = _arg1; if (_musicChannel != null){ if (_arg1){ _musicChannel.soundTransform = new SoundTransform(1); } else { _musicChannel.soundTransform = new SoundTransform(0); }; }; } public static function playSound(_arg1:Class):void{ var _local2:Sound; if (_soundState){ _local2 = new (_arg1); _local2.play(); }; } } }//package
Section 155
//MyContact (MyContact) package { import Box2D.Collision.*; import Box2D.Dynamics.*; import flash.events.*; import Box2D.Dynamics.Contacts.*; public class MyContact extends b2ContactListener implements IEventDispatcher { private var eventDispatcher:EventDispatcher; public function MyContact(){ eventDispatcher = new EventDispatcher(this); } public function dispatchEvent(_arg1:Event):Boolean{ return (eventDispatcher.dispatchEvent.apply(null, arguments)); } override public function Remove(_arg1:b2ContactPoint):void{ } public function willTrigger(_arg1:String):Boolean{ return (eventDispatcher.willTrigger.apply(null, arguments)); } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ eventDispatcher.removeEventListener.apply(null, arguments); } override public function Add(_arg1:b2ContactPoint):void{ var _local2:MyContactEvent; _local2 = new MyContactEvent(MyContactEvent.CollisionAdd); _local2.contactPoint = _arg1; dispatchEvent(_local2); } override public function Persist(_arg1:b2ContactPoint):void{ } public function hasEventListener(_arg1:String):Boolean{ return (eventDispatcher.hasEventListener.apply(null, arguments)); } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ eventDispatcher.addEventListener.apply(null, arguments); } override public function Result(_arg1:b2ContactResult):void{ } } }//package
Section 156
//MyContactEvent (MyContactEvent) package { import Box2D.Collision.*; import flash.events.*; public class MyContactEvent extends Event { public var contactPoint:b2ContactPoint; public static const CollisionAdd = "mycollisionadd"; public function MyContactEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } } }//package
Section 157
//OOO000lll (OOO000lll) package { import flash.display.*; import flash.events.*; import Util.*; import flash.net.*; import flash.system.*; public class OOO000lll extends MovieClip { public var O1OlOO00O:XML; private var _O10OOO1O0:Loader; private var _O1l10l101:Object; private var _OO0l101l1:Object; public var OOO10O100:String; public var O0l00l0O0:XML; private var _OOl10010l:String; private var _O001OO010:Object; private var _O01OO1O00; private var _O01O0lOl0:int; private var _O1Ol011l1:String; private var _O11OO0110:String; private var _OOO00l00l:int; private var _O0lO0100O:String; private var _OOOOll01l:Array; private var _O111O01OO:Object; private var _OO10001Ol:Boolean; private var _OO1l1OO10:String; public var O1lll0ll0:XML; private var _O1OO1OllO:Object; private var _O0l0OO01O; private var _OO0l1lOO1:int; public var OOOll0OO0:int; public function OOO000lll():void{ var _O1OlO10O0:*; super(); Security.allowDomain("*"); _OO10001Ol = false; _O01OO1O00 = this.parent; _O01OO1O00.stop(); var _OOll00l11:int; while (true) { try { _O1OlO10O0 = _O01OO1O00.getChildAt(_OOll00l11); if ((_O1OlO10O0 is MovieClip)){ _O1OlO10O0.visible = false; } else { _O01OO1O00.removeChild(_O1OlO10O0); }; _OOll00l11 = (_OOll00l11 + 1); } catch(e:Error) { break; }; }; try { _O01OO1O00["_O0000Ol01"] = _O0000Ol01; _O01OO1O00["_O0Olll0lO"] = _O0Olll0lO; } catch(e:Error) { }; } private function _O11lll1OO0(_arg1:String):void{ if (_O0l0OO01O){ _O0l0OO01O.OO0011ll1O(_arg1); }; } private function _OO0OO1OO0(_arg1:Event):void{ if ((((((_arg1.type == "ScoreLoadSubmitComplete")) || ((_arg1.type == "ScoreLoadListComplete")))) || ((_arg1.type == "ScoreLoadUserListComplete")))){ O0l00l0O0 = _O0l0OO01O.O011Oll0O(); } else { if (_arg1.type == "ScoreLoadTimeComplete"){ O1lll0ll0 = _O0l0OO01O.OO011OOl1(); } else { O0l00l0O0 = _O0l0OO01O.O0001O0Ol(); }; }; _O01OO1O00.dispatchEvent(_arg1); } private function _O10Ol0l10(_arg1:IOErrorEvent):void{ removeEventListener(Event.ENTER_FRAME, _O0OlOOO1O); _O01OO1O00.dispatchEvent(new IOErrorEvent(IOErrorEvent.IO_ERROR)); } private function _O01Ol1O1O():void{ if (_O0l0OO01O){ _O0l0OO01O.OO011OOl1(); }; } private function _O110l10ll():void{ if (_O0l0OO01O){ _O0l0OO01O.O01l01OlO(); }; } private function _O01O1101l():void{ stop(); _O10OOO1O0 = new Loader(); _O10OOO1O0.load(new URLRequest(_O1Ol011l1)); _O01OO1O00.addChildAt(_O10OOO1O0, 0); this.addEventListener(Event.ENTER_FRAME, _O0OlOOO1O); _O10OOO1O0.contentLoaderInfo.addEventListener(Event.COMPLETE, _O100O0Oll); _O10OOO1O0.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, _O10Ol0l10); } private function _O0000Ol01(_arg1=null, _arg2:String="default", _arg3="", _arg4:int=0, _arg5:String="normal", _arg6:String="", _arg7:int=0, _arg8:int=0, _arg9:int=1, _arg10:Boolean=false):void{ OOO10O100 = _arg5; OOOll0OO0 = _arg4; _O11OO0110 = _arg2; if (_arg3 == ""){ _OO1l1OO10 = _O11OO0110; } else { _OO1l1OO10 = _arg3; }; if (((!((_arg1 == null))) && (!((_arg1.loaderInfo == null))))){ _O1l10l101 = _arg1.loaderInfo.parameters["username"]; _O001OO010 = _arg1.loaderInfo.parameters["hash"]; _OO0l101l1 = _arg1.loaderInfo.parameters["id"]; _O1OO1OllO = _arg1.loaderInfo.parameters["s"]; _O111O01OO = _arg1.loaderInfo.parameters["c"]; _O1Ol011l1 = "http://www8.agame.com/games/flash/highscore/SubmitterV2.swf"; if (_O00O00010(_arg10)){ _O01O1101l(); } else { _O01OO1O00.dispatchEvent(new Event("LoadingFailed")); }; }; _OOl10010l = _arg6; _OO0l1lOO1 = _arg7; _O01O0lOl0 = _arg8; _OOO00l00l = _arg9; } private function _O0O1l0OO0():Boolean{ return (!((_O0l0OO01O == null))); } private function _O100O0Oll(_arg1:Event):void{ _O0l0OO01O = _arg1.currentTarget.content; _O0l0OO01O.O0011ll110O0(_O1OO1OllO, 1, _OO0l101l1, _O111O01OO, OOOll0OO0, _OOl10010l, _OO0l1lOO1, _O01O0lOl0, _OOO00l00l, _O1l10l101, _O001OO010); _O0l0OO01O.addEventListener("HyScorSubmitterLoaded", _OOl11lOOl); _O0l0OO01O.addEventListener("ScoreLoadError", _OO0OO1OO0); _O0l0OO01O.addEventListener("ScoreLoadTimeComplete", _OO0OO1OO0); _O0l0OO01O.addEventListener("ScoreLoadSubmitComplete", _OO0OO1OO0); _O0l0OO01O.addEventListener("ScoreLoadListComplete", _OO0OO1OO0); _O0l0OO01O.addEventListener("ScoreLoadUserListComplete", _OO0OO1OO0); _O0l0OO01O.addEventListener("AchievLoadError", _O0l0O1Oll); _O0l0OO01O.addEventListener("AchievLoadTimeComplete", _O0l0O1Oll); _O0l0OO01O.addEventListener("AchievLoadListComplete", _O0l0O1Oll); _O0l0OO01O.addEventListener("AchievLoadInfoComplete", _O0l0O1Oll); _O0l0OO01O.addEventListener("AchievLoadGrantComplete", _O0l0O1Oll); _O01OO1O00["_O0Olll0lO"] = _O0Olll0lO; _O01OO1O00["_O0O1l0OO0"] = _O0O1l0OO0; _O01OO1O00["_O01Ol1O1O"] = _O01Ol1O1O; _O01OO1O00["_O01lOO10O"] = _O01lOO10O; _O01OO1O00["_O110l10ll"] = _O110l10ll; _O01OO1O00["_O11lll1OO0"] = _O11lll1OO0; _O01OO1O00["_O00OOl1Ol"] = _O00OOl1Ol; _O01OO1O00["_O1OlO10OO"] = _O1OlO10OO; _O01OO1O00["_OOlOOOll1"] = _OOlOOOll1; _O01OO1O00["_O010ll111"] = _O010ll111; } private function _O00O00010(_arg1:Boolean=false):Boolean{ var _local4:String; var _local5:O1OOO0O00; var _local2:Boolean = _arg1; if (!_local2){ _OOOOll01l = ["www8.agame.com"]; } else { _OOOOll01l = ["localhost", "www8.agame.com", "www.zlonggames.com", "gamedev.dev.spilgames.com", "stg.pl.a10.com", "www.a10.com.gp.dev.spilgames.eu"]; }; var _local3:LocalConnection = new LocalConnection(); if (((isNaN((_OO0l101l1 as int))) || (isNaN((_O1OO1OllO as int))))){ return (false); }; for each (_local4 in _OOOOll01l) { if (_local3.domain == _local4){ _local5 = new O1OOO0O00(); if (_local5.O0111l110()){ _OO10001Ol = true; return (true); }; }; }; return (false); } private function _O00OOl1Ol(_arg1:String):void{ if (_O0l0OO01O){ _O0l0OO01O.OO00lO1l0(_arg1, _O1l10l101, _O001OO010); }; } private function _O0OlOOO1O(_arg1:Event):void{ var _local2 = (((_O10OOO1O0.contentLoaderInfo.bytesLoaded / _O10OOO1O0.contentLoaderInfo.bytesTotal) * 100) >> 0); if (_local2 >= 100){ removeEventListener(Event.ENTER_FRAME, _O0OlOOO1O); }; } private function _OOl11lOOl(_arg1:Event):void{ if (_O0l0OO01O){ _O0l0OO01O.removeEventListener("HyScorSubmitterLoaded", _OOl11lOOl); }; _O01OO1O00.dispatchEvent(new Event(Event.COMPLETE)); } private function _O01lOO10O(_arg1:int):void{ if (_O0l0OO01O){ _O0l0OO01O.O0l01llOl(_arg1, _O1l10l101, _O001OO010); }; } private function _O0Olll0lO():Boolean{ return (_O00O00010(false)); } private function _O1OlO10OO():void{ if (_O0l0OO01O){ _O0l0OO01O.O1l0OOl1l(_O1l10l101, _O001OO010); }; } private function _O10O00lO0():String{ if (_O0l0OO01O){ return (_O0l0OO01O.OOOO00ll0()); }; return (("FAILED " + _O0l0OO01O)); } private function _O0l0O1Oll(_arg1:Event):void{ if ((((((_arg1.type == "AchievLoadListComplete")) || ((_arg1.type == "AchievLoadInfoComplete")))) || ((_arg1.type == "AchievLoadGrantComplete")))){ O1OlOO00O = _O0l0OO01O.O11OO0l0l(); } else { O1OlOO00O = _O0l0OO01O.O0O100l0l(); }; _O01OO1O00.dispatchEvent(_arg1); } private function _O010ll111():void{ _O0l0OO01O.removeEventListener("ScoreLoadError", _OO0OO1OO0); _O0l0OO01O.removeEventListener("ScoreLoadTimeComplete", _OO0OO1OO0); _O0l0OO01O.removeEventListener("ScoreLoadSubmitComplete", _OO0OO1OO0); _O0l0OO01O.removeEventListener("ScoreLoadListComplete", _OO0OO1OO0); _O0l0OO01O.removeEventListener("ScoreLoadUserListComplete", _OO0OO1OO0); _O0l0OO01O.removeEventListener("AchievLoadError", _O0l0O1Oll); _O0l0OO01O.removeEventListener("AchievLoadTimeComplete", _O0l0O1Oll); _O0l0OO01O.removeEventListener("AchievLoadListComplete", _O0l0O1Oll); _O0l0OO01O.removeEventListener("AchievLoadInfoComplete", _O0l0O1Oll); _O0l0OO01O.removeEventListener("AchievLoadGrantComplete", _O0l0O1Oll); _O01OO1O00 = null; _OOOOll01l = null; _O0l0OO01O = null; _O1l10l101 = null; _O001OO010 = null; _O10OOO1O0 = null; O1lll0ll0 = null; O0l00l0O0 = null; O1OlOO00O = null; } private function _OOlOOOll1(_arg1:int):void{ if (_O0l0OO01O){ _O0l0OO01O.O1OlOO111(_arg1); }; } } }//package
Section 158
//SBack (SBack) package { import flash.media.*; public dynamic class SBack extends Sound { } }//package
Section 159
//SClick (SClick) package { import flash.media.*; public dynamic class SClick extends Sound { } }//package
Section 160
//SFailed (SFailed) package { import flash.media.*; public dynamic class SFailed extends Sound { } }//package
Section 161
//SLevelup (SLevelup) package { import flash.media.*; public dynamic class SLevelup extends Sound { } }//package
Section 162
//SStart (SStart) package { import flash.media.*; public dynamic class SStart extends Sound { } }//package
Section 163
//Triangle1_1 (Triangle1_1) package { import flash.display.*; public dynamic class Triangle1_1 extends MovieClip { public var Rect:MovieClip; } }//package
Section 164
//Triangle1_2 (Triangle1_2) package { import flash.display.*; public dynamic class Triangle1_2 extends MovieClip { public var Rect:MovieClip; } }//package
Section 165
//Triangle2_1 (Triangle2_1) package { import flash.display.*; public dynamic class Triangle2_1 extends MovieClip { public var Rect:MovieClip; } }//package
Section 166
//Triangle2_2 (Triangle2_2) package { import flash.display.*; public dynamic class Triangle2_2 extends MovieClip { public var Rect:MovieClip; } }//package

Library Items

Symbol 1 FontUsed by:2 4
Symbol 2 TextUses:1Used by:5
Symbol 3 GraphicUsed by:5 378 380 382 384 395
Symbol 4 TextUses:1Used by:5
Symbol 5 Button {spill.localisation.SpilGamesLink}Uses:2 3 4
Symbol 6 GraphicUsed by:9
Symbol 7 GraphicUsed by:9
Symbol 8 GraphicUsed by:9
Symbol 9 ButtonUses:6 7 8Used by:38
Symbol 10 GraphicUsed by:38 45
Symbol 11 GraphicUsed by:35
Symbol 12 GraphicUsed by:35
Symbol 13 GraphicUsed by:35
Symbol 14 GraphicUsed by:35
Symbol 15 GraphicUsed by:35
Symbol 16 GraphicUsed by:35
Symbol 17 GraphicUsed by:35
Symbol 18 GraphicUsed by:35
Symbol 19 GraphicUsed by:35
Symbol 20 GraphicUsed by:35
Symbol 21 GraphicUsed by:35
Symbol 22 GraphicUsed by:35
Symbol 23 GraphicUsed by:35
Symbol 24 GraphicUsed by:35
Symbol 25 GraphicUsed by:35
Symbol 26 GraphicUsed by:35
Symbol 27 GraphicUsed by:35
Symbol 28 GraphicUsed by:35
Symbol 29 GraphicUsed by:35
Symbol 30 GraphicUsed by:35
Symbol 31 BitmapUsed by:32
Symbol 32 GraphicUses:31Used by:35
Symbol 33 BitmapUsed by:34
Symbol 34 GraphicUses:33Used by:35
Symbol 35 MovieClip {RebuildtheTemple_fla.flag_icon_205}Uses:11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 34Used by:38 45
Symbol 36 FontUsed by:37
Symbol 37 EditableTextUses:36Used by:38
Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207}Uses:9 10 35 37Used by:41
Symbol 39 GraphicUsed by:40
Symbol 40 MovieClipUses:39Used by:41
Symbol 41 MovieClip {spill.localisation.LanguageSelectPopup_mc}Uses:38 40
Symbol 42 GraphicUsed by:45
Symbol 43 FontUsed by:44 405
Symbol 44 EditableTextUses:43Used by:45
Symbol 45 MovieClip {spill.localisation.LanguageSelectBox_mc}Uses:42 44 10 35
Symbol 46 GraphicUsed by:47
Symbol 47 MovieClipUses:46Used by:48 49
Symbol 48 MovieClip {spill.localisation.LanguageSelectBox}Uses:47Used by:Timeline
Symbol 49 MovieClip {spill.localisation.LocalizedTextField}Uses:47Used by:411 445 446  Timeline
Symbol 50 GraphicUsed by:51
Symbol 51 MovieClipUses:50Used by:54 244 245 246
Symbol 52 GraphicUsed by:53 439
Symbol 53 MovieClipUses:52Used by:54 207 210 213 216 222 223 226 227 228 229 230 233 234 237 238 239 242 243 244 245 246 249 250 255 257
Symbol 54 MovieClip {Triangle2_1}Uses:51 53Used by:260 270
Symbol 55 GraphicUsed by:56
Symbol 56 MovieClip {Line}Uses:55Used by:217 251 256 258 259 260 261 262 263 264 265 266 267 268 269 361
Symbol 57 GraphicUsed by:58
Symbol 58 MovieClip {HitRight}Uses:57Used by:217 251 256 258 259 260 261 262 263 264 265 266 267 268 269 361
Symbol 59 GraphicUsed by:60
Symbol 60 MovieClip {HitLeft}Uses:59Used by:217 251 256 258 259 260 261 262 263 264 265 266 267 268 269 361
Symbol 61 GraphicUsed by:62
Symbol 62 MovieClipUses:61Used by:63
Symbol 63 MovieClipUses:62Used by:192
Symbol 64 GraphicUsed by:192
Symbol 65 GraphicUsed by:76
Symbol 66 GraphicUsed by:76
Symbol 67 GraphicUsed by:76
Symbol 68 GraphicUsed by:76
Symbol 69 GraphicUsed by:76
Symbol 70 GraphicUsed by:76
Symbol 71 GraphicUsed by:76
Symbol 72 GraphicUsed by:76
Symbol 73 GraphicUsed by:76
Symbol 74 GraphicUsed by:75
Symbol 75 MovieClipUses:74Used by:76
Symbol 76 MovieClipUses:65 66 67 68 69 70 71 72 73 75Used by:192
Symbol 77 GraphicUsed by:78
Symbol 78 MovieClipUses:77Used by:192
Symbol 79 GraphicUsed by:80
Symbol 80 MovieClipUses:79Used by:192
Symbol 81 GraphicUsed by:82
Symbol 82 MovieClipUses:81Used by:192
Symbol 83 GraphicUsed by:84
Symbol 84 MovieClipUses:83Used by:192
Symbol 85 GraphicUsed by:86
Symbol 86 MovieClipUses:85Used by:192
Symbol 87 GraphicUsed by:88
Symbol 88 MovieClipUses:87Used by:192
Symbol 89 GraphicUsed by:90
Symbol 90 MovieClipUses:89Used by:192
Symbol 91 GraphicUsed by:92
Symbol 92 MovieClipUses:91Used by:192
Symbol 93 GraphicUsed by:94
Symbol 94 MovieClipUses:93Used by:192
Symbol 95 GraphicUsed by:96
Symbol 96 MovieClipUses:95Used by:192
Symbol 97 GraphicUsed by:98
Symbol 98 MovieClipUses:97Used by:192
Symbol 99 GraphicUsed by:100
Symbol 100 MovieClipUses:99Used by:192
Symbol 101 GraphicUsed by:102
Symbol 102 MovieClipUses:101Used by:192
Symbol 103 GraphicUsed by:104
Symbol 104 MovieClipUses:103Used by:192
Symbol 105 GraphicUsed by:106
Symbol 106 MovieClipUses:105Used by:107
Symbol 107 MovieClipUses:106Used by:192
Symbol 108 GraphicUsed by:109
Symbol 109 MovieClipUses:108Used by:110
Symbol 110 MovieClipUses:109Used by:192
Symbol 111 GraphicUsed by:112
Symbol 112 MovieClipUses:111Used by:113
Symbol 113 MovieClipUses:112Used by:192
Symbol 114 GraphicUsed by:115
Symbol 115 MovieClipUses:114Used by:116
Symbol 116 MovieClipUses:115Used by:192
Symbol 117 GraphicUsed by:118
Symbol 118 MovieClipUses:117Used by:119
Symbol 119 MovieClipUses:118Used by:192
Symbol 120 GraphicUsed by:121
Symbol 121 MovieClipUses:120Used by:122
Symbol 122 MovieClipUses:121Used by:192
Symbol 123 GraphicUsed by:124
Symbol 124 MovieClipUses:123Used by:125
Symbol 125 MovieClipUses:124Used by:192
Symbol 126 GraphicUsed by:127
Symbol 127 MovieClipUses:126Used by:128
Symbol 128 MovieClipUses:127Used by:192
Symbol 129 GraphicUsed by:130
Symbol 130 MovieClipUses:129Used by:131
Symbol 131 MovieClipUses:130Used by:192
Symbol 132 GraphicUsed by:133
Symbol 133 MovieClipUses:132Used by:134
Symbol 134 MovieClipUses:133Used by:192
Symbol 135 GraphicUsed by:136
Symbol 136 MovieClipUses:135Used by:137
Symbol 137 MovieClipUses:136Used by:192
Symbol 138 GraphicUsed by:139
Symbol 139 MovieClipUses:138Used by:140
Symbol 140 MovieClipUses:139Used by:192
Symbol 141 GraphicUsed by:142
Symbol 142 MovieClipUses:141Used by:143
Symbol 143 MovieClipUses:142Used by:192
Symbol 144 GraphicUsed by:145
Symbol 145 MovieClipUses:144Used by:192
Symbol 146 GraphicUsed by:147
Symbol 147 MovieClipUses:146Used by:192
Symbol 148 GraphicUsed by:149
Symbol 149 MovieClipUses:148Used by:192
Symbol 150 GraphicUsed by:151
Symbol 151 MovieClipUses:150Used by:192
Symbol 152 GraphicUsed by:153
Symbol 153 MovieClipUses:152Used by:192
Symbol 154 GraphicUsed by:155
Symbol 155 MovieClipUses:154Used by:192
Symbol 156 GraphicUsed by:157
Symbol 157 MovieClipUses:156Used by:192
Symbol 158 GraphicUsed by:159
Symbol 159 MovieClipUses:158Used by:192
Symbol 160 GraphicUsed by:161
Symbol 161 MovieClipUses:160Used by:192
Symbol 162 BitmapUsed by:163
Symbol 163 GraphicUses:162Used by:164
Symbol 164 MovieClipUses:163Used by:192
Symbol 165 BitmapUsed by:166
Symbol 166 GraphicUses:165Used by:167
Symbol 167 MovieClipUses:166Used by:192
Symbol 168 GraphicUsed by:169
Symbol 169 MovieClipUses:168Used by:192
Symbol 170 GraphicUsed by:171
Symbol 171 MovieClipUses:170Used by:192
Symbol 172 GraphicUsed by:173
Symbol 173 MovieClipUses:172Used by:192
Symbol 174 GraphicUsed by:175
Symbol 175 MovieClipUses:174Used by:192
Symbol 176 GraphicUsed by:177
Symbol 177 MovieClipUses:176Used by:178
Symbol 178 MovieClipUses:177Used by:192
Symbol 179 GraphicUsed by:180
Symbol 180 MovieClipUses:179Used by:192
Symbol 181 GraphicUsed by:182
Symbol 182 MovieClipUses:181Used by:192
Symbol 183 GraphicUsed by:184
Symbol 184 MovieClipUses:183Used by:192
Symbol 185 GraphicUsed by:186
Symbol 186 MovieClipUses:185Used by:187
Symbol 187 MovieClipUses:186Used by:192
Symbol 188 GraphicUsed by:189
Symbol 189 MovieClipUses:188Used by:192
Symbol 190 GraphicUsed by:191
Symbol 191 MovieClipUses:190Used by:192
Symbol 192 MovieClip {spill.localisation.BrandingLogo}Uses:63 64 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 107 110 113 116 119 122 125 128 131 134 137 140 143 145 147 149 151 153 155 157 159 161 164 167 169 171 173 175 178 180 182 184 187 189 191Used by:Timeline
Symbol 193 GraphicUsed by:195
Symbol 194 MovieClip {OOO000lll}Used by:195
Symbol 195 MovieClip {Spill.Components.Submitter}Uses:193 194Used by:Timeline
Symbol 196 FontUsed by:197
Symbol 197 EditableTextUses:196Used by:Timeline
Symbol 198 GraphicUsed by:201
Symbol 199 GraphicUsed by:200
Symbol 200 MovieClipUses:199Used by:201
Symbol 201 MovieClip {RebuildtheTemple_fla.Timeline_1}Uses:198 200Used by:Timeline
Symbol 202 GraphicUsed by:203
Symbol 203 MovieClipUses:202Used by:270 361 446
Symbol 204 GraphicUsed by:217 251 256 258 259 260 261 262 263 264 265 266 267 268 269
Symbol 205 GraphicUsed by:206 430
Symbol 206 MovieClipUses:205Used by:207 228 361
Symbol 207 MovieClip {Box3_1}Uses:206 53Used by:217 251 256 261 262 263 270
Symbol 208 GraphicUsed by:209
Symbol 209 MovieClipUses:208Used by:210 229
Symbol 210 MovieClip {Box4_1}Uses:209 53Used by:217 251 256 258 259 260 261 262 270
Symbol 211 GraphicUsed by:212
Symbol 212 MovieClipUses:211Used by:213 230 361
Symbol 213 MovieClip {Box5_1}Uses:212 53Used by:217 251 256 260 263 266 269 270
Symbol 214 GraphicUsed by:215
Symbol 215 MovieClipUses:214Used by:216 239 361
Symbol 216 MovieClip {Box8_1}Uses:215 53Used by:217 263 265 270
Symbol 217 MovieClip {Level1}Uses:204 60 58 207 210 213 216 56Used by:270
Symbol 218 GraphicUsed by:221
Symbol 219 GraphicUsed by:220 437
Symbol 220 MovieClipUses:219Used by:221 254
Symbol 221 MovieClipUses:218 220Used by:222 223 361
Symbol 222 MovieClip {Box1}Uses:221 53Used by:258 259 260 261 263 264 267 269 270
Symbol 223 MovieClip {Box1_2}Uses:221 53Used by:251 256 261 262 263 266 268 270
Symbol 224 GraphicUsed by:225
Symbol 225 MovieClipUses:224Used by:226 227
Symbol 226 MovieClip {Box2_1}Uses:225 53Used by:256 264 270
Symbol 227 MovieClip {Box2_2}Uses:225 53Used by:258 270
Symbol 228 MovieClip {Box3_2}Uses:206 53Used by:256 261 262 263 270
Symbol 229 MovieClip {Box4_2}Uses:209 53Used by:260 270
Symbol 230 MovieClip {Box5_2}Uses:212 53Used by:259 263 266 267 269 270
Symbol 231 GraphicUsed by:232
Symbol 232 MovieClipUses:231Used by:233 234
Symbol 233 MovieClip {Box6_1}Uses:232 53Used by:259 260 265 269 270
Symbol 234 MovieClip {Box6_2}Uses:232 53Used by:259 260 269 270
Symbol 235 GraphicUsed by:236
Symbol 236 MovieClipUses:235Used by:237 238 361
Symbol 237 MovieClip {Box7_1}Uses:236 53Used by:251 265 269 270
Symbol 238 MovieClip {Box7_2}Uses:236 53Used by:265 269 270
Symbol 239 MovieClip {Box8_2}Uses:215 53Used by:265 270
Symbol 240 GraphicUsed by:241
Symbol 241 MovieClipUses:240Used by:242 243
Symbol 242 MovieClip {Box9_1}Uses:241 53Used by:265 266 268 269 270
Symbol 243 MovieClip {Box9_2}Uses:241 53Used by:265 268 269 270
Symbol 244 MovieClip {Triangle1_1}Uses:51 53Used by:258 262 264 266 267 270
Symbol 245 MovieClip {Triangle1_2}Uses:51 53Used by:260 267 270
Symbol 246 MovieClip {Triangle2_2}Uses:51 53Used by:270
Symbol 247 GraphicUsed by:248
Symbol 248 MovieClipUses:247Used by:249 250
Symbol 249 MovieClip {Circle1_1}Uses:248 53Used by:258 259 260 261 270
Symbol 250 MovieClip {Circle1_2}Uses:248 53Used by:258 259 260 261 262 263 264 266 267 268 269 270
Symbol 251 MovieClip {Level2}Uses:204 60 58 207 210 213 223 237 56Used by:270
Symbol 252 GraphicUsed by:254
Symbol 253 GraphicUsed by:254
Symbol 254 MovieClipUses:252 220 253Used by:255 257
Symbol 255 MovieClip {Box10_2}Uses:254 53Used by:256 269
Symbol 256 MovieClip {Level3}Uses:204 60 58 207 210 213 223 226 255 228 56Used by:270
Symbol 257 MovieClip {Box10_1}Uses:254 53Used by:258 259 262 266 269
Symbol 258 MovieClip {Level4}Uses:204 60 58 244 222 227 257 250 249 210 56Used by:270
Symbol 259 MovieClip {Level5}Uses:204 60 58 249 250 222 257 210 234 233 230 56Used by:270
Symbol 260 MovieClip {Level6}Uses:204 60 58 250 210 213 229 233 234 222 245 54 249 56Used by:270
Symbol 261 MovieClip {Level7}Uses:204 60 58 249 210 222 250 207 223 228 56Used by:270
Symbol 262 MovieClip {Level8}Uses:204 60 58 210 257 207 244 223 228 250 56Used by:270
Symbol 263 MovieClip {Level9}Uses:204 60 58 216 222 213 250 56 207 228 230 223Used by:270
Symbol 264 MovieClip {Level10}Uses:204 60 58 250 222 244 226 56Used by:270
Symbol 265 MovieClip {Level11}Uses:204 60 58 237 238 239 216 233 243 242 56Used by:270
Symbol 266 MovieClip {Level12}Uses:204 60 58 242 244 257 213 223 250 230 56Used by:270
Symbol 267 MovieClip {Level13}Uses:204 60 58 245 244 222 250 230 56Used by:270
Symbol 268 MovieClip {Level14}Uses:204 60 58 242 243 223 250 56Used by:270
Symbol 269 MovieClip {Level15}Uses:204 60 58 242 243 237 238 257 255 233 234 222 250 230 213 56Used by:270
Symbol 270 MovieClip {RebuildtheTemple_fla.LevelList_72}Uses:203 217 222 223 226 227 207 228 210 229 213 230 233 234 237 238 216 239 242 243 244 245 54 246 249 250 251 256 258 259 260 261 262 263 264 265 266 267 268 269Used by:Timeline
Symbol 271 GraphicUsed by:277
Symbol 272 Sound {SBack}Used by:277
Symbol 273 Sound {SClick}Used by:277
Symbol 274 Sound {SFailed}Used by:277
Symbol 275 Sound {SLevelup}Used by:277
Symbol 276 Sound {SStart}Used by:277
Symbol 277 MovieClipUses:271 272 273 274 275 276Used by:Timeline
Symbol 278 GraphicUsed by:Timeline
Symbol 279 GraphicUsed by:280
Symbol 280 MovieClipUses:279Used by:Timeline
Symbol 281 GraphicUsed by:Timeline
Symbol 282 GraphicUsed by:283
Symbol 283 MovieClipUses:282Used by:Timeline
Symbol 284 GraphicUsed by:285
Symbol 285 MovieClipUses:284Used by:Timeline
Symbol 286 BitmapUsed by:287
Symbol 287 GraphicUses:286Used by:288
Symbol 288 ButtonUses:287Used by:Timeline
Symbol 289 BitmapUsed by:290
Symbol 290 GraphicUses:289Used by:291
Symbol 291 ButtonUses:290Used by:Timeline
Symbol 292 GraphicUsed by:Timeline
Symbol 293 GraphicUsed by:294
Symbol 294 MovieClipUses:293Used by:Timeline
Symbol 295 GraphicUsed by:296
Symbol 296 ButtonUses:295Used by:Timeline
Symbol 297 GraphicUsed by:298
Symbol 298 ButtonUses:297Used by:Timeline
Symbol 299 GraphicUsed by:300
Symbol 300 ButtonUses:299Used by:Timeline
Symbol 301 GraphicUsed by:302
Symbol 302 ButtonUses:301Used by:Timeline
Symbol 303 GraphicUsed by:304
Symbol 304 MovieClipUses:303Used by:Timeline
Symbol 305 GraphicUsed by:306
Symbol 306 MovieClipUses:305Used by:310
Symbol 307 FontUsed by:308 309
Symbol 308 TextUses:307Used by:310
Symbol 309 TextUses:307Used by:310
Symbol 310 MovieClipUses:306 308 309Used by:Timeline
Symbol 311 GraphicUsed by:Timeline
Symbol 312 GraphicUsed by:338
Symbol 313 GraphicUsed by:314
Symbol 314 MovieClipUses:313Used by:338 362
Symbol 315 GraphicUsed by:316
Symbol 316 MovieClipUses:315Used by:338 362 408
Symbol 317 GraphicUsed by:338
Symbol 318 FontUsed by:319 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 374 375 376 377 379 381 383 396 397 398
Symbol 319 TextUses:318Used by:338
Symbol 320 GraphicUsed by:322
Symbol 321 GraphicUsed by:322
Symbol 322 ButtonUses:320 321Used by:338
Symbol 323 TextUses:318Used by:338
Symbol 324 TextUses:318Used by:338
Symbol 325 TextUses:318Used by:338
Symbol 326 TextUses:318Used by:338
Symbol 327 TextUses:318Used by:338
Symbol 328 TextUses:318Used by:338
Symbol 329 TextUses:318Used by:338
Symbol 330 TextUses:318Used by:338
Symbol 331 TextUses:318Used by:338
Symbol 332 TextUses:318Used by:338
Symbol 333 TextUses:318Used by:338
Symbol 334 TextUses:318Used by:338
Symbol 335 TextUses:318Used by:338
Symbol 336 TextUses:318Used by:338
Symbol 337 TextUses:318Used by:338
Symbol 338 MovieClip {RebuildtheTemple_fla.SelectLevel_146}Uses:312 314 316 317 319 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337Used by:Timeline
Symbol 339 GraphicUsed by:340
Symbol 340 ButtonUses:339Used by:Timeline
Symbol 341 GraphicUsed by:347
Symbol 342 GraphicUsed by:343 347
Symbol 343 MovieClipUses:342Used by:347
Symbol 344 GraphicUsed by:347
Symbol 345 GraphicUsed by:346 347 350
Symbol 346 MovieClipUses:345Used by:347 350
Symbol 347 ButtonUses:341 343 344 346 345 342Used by:351
Symbol 348 GraphicUsed by:350
Symbol 349 GraphicUsed by:350
Symbol 350 ButtonUses:348 346 349 345Used by:351
Symbol 351 MovieClip {RebuildtheTemple_fla.bt_mc_fscreen_154}Uses:347 350Used by:Timeline
Symbol 352 GraphicUsed by:Timeline
Symbol 353 GraphicUsed by:361 441
Symbol 354 GraphicUsed by:358
Symbol 355 GraphicUsed by:356
Symbol 356 MovieClipUses:355Used by:358
Symbol 357 GraphicUsed by:358
Symbol 358 MovieClipUses:354 356 357Used by:361 446
Symbol 359 GraphicUsed by:360
Symbol 360 MovieClipUses:359Used by:361
Symbol 361 MovieClipUses:353 358 203 60 58 56 206 212 221 236 215 360Used by:Timeline
Symbol 362 MovieClipUses:314 316Used by:Timeline
Symbol 363 GraphicUsed by:364
Symbol 364 MovieClipUses:363Used by:446  Timeline
Symbol 365 GraphicUsed by:446
Symbol 366 GraphicUsed by:367
Symbol 367 MovieClipUses:366Used by:446
Symbol 368 GraphicUsed by:370
Symbol 369 GraphicUsed by:370
Symbol 370 MovieClip {RebuildtheTemple_fla.Timeline_167}Uses:368 369Used by:446
Symbol 371 GraphicUsed by:373
Symbol 372 GraphicUsed by:373
Symbol 373 MovieClip {RebuildtheTemple_fla.Timeline_168}Uses:371 372Used by:446
Symbol 374 TextUses:318Used by:446
Symbol 375 TextUses:318Used by:446
Symbol 376 TextUses:318Used by:378
Symbol 377 TextUses:318Used by:378
Symbol 378 ButtonUses:3 376 377Used by:446
Symbol 379 TextUses:318Used by:380
Symbol 380 ButtonUses:3 379Used by:446
Symbol 381 TextUses:318Used by:382
Symbol 382 ButtonUses:3 381Used by:446
Symbol 383 TextUses:318Used by:384
Symbol 384 ButtonUses:3 383Used by:446
Symbol 385 FontUsed by:386 387 389 390 392 393 444 460 461
Symbol 386 TextUses:385Used by:388
Symbol 387 TextUses:385Used by:388
Symbol 388 ButtonUses:386 387Used by:446
Symbol 389 TextUses:385Used by:391
Symbol 390 TextUses:385Used by:391
Symbol 391 ButtonUses:389 390Used by:446
Symbol 392 TextUses:385Used by:394
Symbol 393 TextUses:385Used by:394
Symbol 394 ButtonUses:392 393Used by:446
Symbol 395 ButtonUses:3Used by:446
Symbol 396 EditableTextUses:318Used by:446
Symbol 397 EditableTextUses:318Used by:446
Symbol 398 EditableTextUses:318Used by:446
Symbol 399 GraphicUsed by:400
Symbol 400 MovieClipUses:399Used by:446
Symbol 401 GraphicUsed by:404
Symbol 402 GraphicUsed by:403
Symbol 403 MovieClipUses:402Used by:404
Symbol 404 MovieClipUses:401 403Used by:446
Symbol 405 EditableTextUses:43Used by:446
Symbol 406 GraphicUsed by:411
Symbol 407 GraphicUsed by:408
Symbol 408 MovieClipUses:407 316Used by:411 445
Symbol 409 GraphicUsed by:410 442 443
Symbol 410 ButtonUses:409Used by:411
Symbol 411 MovieClip {RebuildtheTemple_fla.LevelupWindow_180}Uses:406 408 410 49Used by:446
Symbol 412 GraphicUsed by:445
Symbol 413 GraphicUsed by:414
Symbol 414 MovieClipUses:413Used by:441
Symbol 415 GraphicUsed by:441
Symbol 416 GraphicUsed by:417
Symbol 417 MovieClipUses:416Used by:441
Symbol 418 BitmapUsed by:419 420 421 422 423
Symbol 419 GraphicUses:418Used by:425
Symbol 420 GraphicUses:418Used by:425
Symbol 421 GraphicUses:418Used by:425
Symbol 422 GraphicUses:418Used by:425
Symbol 423 GraphicUses:418Used by:424
Symbol 424 MovieClipUses:423Used by:425
Symbol 425 MovieClip {RebuildtheTemple_fla.Destory1smoke_187}Uses:419 420 421 422 424Used by:441
Symbol 426 GraphicUsed by:427
Symbol 427 MovieClipUses:426Used by:433 440
Symbol 428 GraphicUsed by:429
Symbol 429 MovieClipUses:428Used by:433 440
Symbol 430 MovieClipUses:205Used by:433 440
Symbol 431 GraphicUsed by:432
Symbol 432 MovieClipUses:431Used by:433 440
Symbol 433 MovieClipUses:427 429 430 432Used by:440
Symbol 434 GraphicUsed by:435
Symbol 435 MovieClipUses:434Used by:440
Symbol 436 GraphicUsed by:438
Symbol 437 MovieClipUses:219Used by:438
Symbol 438 MovieClipUses:436 437Used by:440
Symbol 439 MovieClipUses:52Used by:440
Symbol 440 MovieClip {RebuildtheTemple_fla.Destory1_189}Uses:433 435 429 427 438 432 439 430Used by:441
Symbol 441 MovieClip {RebuildtheTemple_fla.Destory4_184}Uses:353 414 415 417 425 440Used by:445
Symbol 442 ButtonUses:409Used by:445
Symbol 443 ButtonUses:409Used by:445
Symbol 444 EditableTextUses:385Used by:445
Symbol 445 MovieClip {RebuildtheTemple_fla.LevelFailed_183}Uses:412 408 441 442 443 444 49Used by:446
Symbol 446 MovieClip {Game}Uses:358 364 365 367 203 370 373 374 375 378 380 382 384 388 391 394 395 396 397 398 49 400 404 405 411 445Used by:Timeline
Symbol 447 GraphicUsed by:Timeline
Symbol 448 GraphicUsed by:Timeline
Symbol 449 GraphicUsed by:Timeline
Symbol 450 GraphicUsed by:451
Symbol 451 ButtonUses:450Used by:Timeline
Symbol 452 GraphicUsed by:453
Symbol 453 ButtonUses:452Used by:Timeline
Symbol 454 FontUsed by:455
Symbol 455 EditableTextUses:454Used by:Timeline
Symbol 456 GraphicUsed by:Timeline
Symbol 457 FontUsed by:458
Symbol 458 TextUses:457Used by:Timeline
Symbol 459 GraphicUsed by:462
Symbol 460 TextUses:385Used by:462
Symbol 461 TextUses:385Used by:462
Symbol 462 ButtonUses:459 460 461Used by:Timeline

Instance Names

"lpc"Frame 2Symbol 197 EditableText
"lbar"Frame 2Symbol 201 MovieClip {RebuildtheTemple_fla.Timeline_1}
"LoadLogo"Frame 2Symbol 192 MovieClip {spill.localisation.BrandingLogo}
"d_Facebook"Frame 4Symbol 288 Button
"d_Twitter"Frame 4Symbol 291 Button
"d_More"Frame 4Symbol 296 Button
"d_Credits"Frame 4Symbol 298 Button
"d_Play"Frame 4Symbol 300 Button
"d_Help"Frame 4Symbol 302 Button
"d_SelectLevel"Frame 4Symbol 338 MovieClip {RebuildtheTemple_fla.SelectLevel_146}
"d_High"Frame 4Symbol 298 Button
"__id0_"Frame 4Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"__id1_"Frame 4Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"__id2_"Frame 4Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"__id3_"Frame 4Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"StartLogo"Frame 4Symbol 340 Button
"d_Fscreen"Frame 4Symbol 351 MovieClip {RebuildtheTemple_fla.bt_mc_fscreen_154}
"d_HelpPlay"Frame 5Symbol 300 Button
"__id5_"Frame 5Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"wocao"Frame 5Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"__id6_"Frame 5Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"d_MainLogo"Frame 6Symbol 340 Button
"d_RePlay"Frame 7Symbol 451 Button
"d_Submit"Frame 7Symbol 453 Button
"d_Score"Frame 7Symbol 455 EditableText
"__id19_"Frame 7Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"__id20_"Frame 7Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"awardname"Frame 7Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"awarddesc"Frame 7Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"d_OverLogo"Frame 7Symbol 340 Button
"__id21_"Frame 7Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"__id22_"Frame 7Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"d_Back"Frame 8Symbol 462 Button
"flag"Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207} Frame 1Symbol 35 MovieClip {RebuildtheTemple_fla.flag_icon_205}
"text"Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207} Frame 1Symbol 37 EditableText
"l_de"Symbol 41 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207}
"l_en_us"Symbol 41 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207}
"l_fr"Symbol 41 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207}
"l_it"Symbol 41 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207}
"l_nl"Symbol 41 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207}
"l_pl"Symbol 41 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207}
"l_es_mx"Symbol 41 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207}
"l_br"Symbol 41 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207}
"l_cn"Symbol 41 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207}
"l_en_uk"Symbol 41 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207}
"l_es"Symbol 41 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207}
"l_id"Symbol 41 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207}
"l_jp"Symbol 41 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207}
"l_pt"Symbol 41 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207}
"l_ar"Symbol 41 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207}
"l_in"Symbol 41 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207}
"l_es_ar"Symbol 41 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207}
"l_se"Symbol 41 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207}
"l_ru"Symbol 41 MovieClip {spill.localisation.LanguageSelectPopup_mc} Frame 1Symbol 38 MovieClip {RebuildtheTemple_fla.l_br_207}
"languageName_text"Symbol 45 MovieClip {spill.localisation.LanguageSelectBox_mc} Frame 1Symbol 44 EditableText
"flag"Symbol 45 MovieClip {spill.localisation.LanguageSelectBox_mc} Frame 1Symbol 35 MovieClip {RebuildtheTemple_fla.flag_icon_205}
"Rect"Symbol 54 MovieClip {Triangle2_1} Frame 1Symbol 53 MovieClip
"OO00OO1l1l"Symbol 195 MovieClip {Spill.Components.Submitter} Frame 1Symbol 194 MovieClip {OOO000lll}
"Rect"Symbol 207 MovieClip {Box3_1} Frame 1Symbol 53 MovieClip
"Rect"Symbol 210 MovieClip {Box4_1} Frame 1Symbol 53 MovieClip
"Rect"Symbol 213 MovieClip {Box5_1} Frame 1Symbol 53 MovieClip
"Rect"Symbol 216 MovieClip {Box8_1} Frame 1Symbol 53 MovieClip
"Rect"Symbol 222 MovieClip {Box1} Frame 1Symbol 53 MovieClip
"Rect"Symbol 223 MovieClip {Box1_2} Frame 1Symbol 53 MovieClip
"Rect"Symbol 226 MovieClip {Box2_1} Frame 1Symbol 53 MovieClip
"Rect"Symbol 227 MovieClip {Box2_2} Frame 1Symbol 53 MovieClip
"Rect"Symbol 228 MovieClip {Box3_2} Frame 1Symbol 53 MovieClip
"Rect"Symbol 229 MovieClip {Box4_2} Frame 1Symbol 53 MovieClip
"Rect"Symbol 230 MovieClip {Box5_2} Frame 1Symbol 53 MovieClip
"Rect"Symbol 233 MovieClip {Box6_1} Frame 1Symbol 53 MovieClip
"Rect"Symbol 234 MovieClip {Box6_2} Frame 1Symbol 53 MovieClip
"Rect"Symbol 237 MovieClip {Box7_1} Frame 1Symbol 53 MovieClip
"Rect"Symbol 238 MovieClip {Box7_2} Frame 1Symbol 53 MovieClip
"Rect"Symbol 239 MovieClip {Box8_2} Frame 1Symbol 53 MovieClip
"Rect"Symbol 242 MovieClip {Box9_1} Frame 1Symbol 53 MovieClip
"Rect"Symbol 243 MovieClip {Box9_2} Frame 1Symbol 53 MovieClip
"Rect"Symbol 244 MovieClip {Triangle1_1} Frame 1Symbol 53 MovieClip
"Rect"Symbol 245 MovieClip {Triangle1_2} Frame 1Symbol 53 MovieClip
"Rect"Symbol 246 MovieClip {Triangle2_2} Frame 1Symbol 53 MovieClip
"Rect"Symbol 249 MovieClip {Circle1_1} Frame 1Symbol 53 MovieClip
"Rect"Symbol 250 MovieClip {Circle1_2} Frame 1Symbol 53 MovieClip
"Rect"Symbol 255 MovieClip {Box10_2} Frame 1Symbol 53 MovieClip
"Rect"Symbol 257 MovieClip {Box10_1} Frame 1Symbol 53 MovieClip
"d_S1"Symbol 338 MovieClip {RebuildtheTemple_fla.SelectLevel_146} Frame 1Symbol 322 Button
"d_S2"Symbol 338 MovieClip {RebuildtheTemple_fla.SelectLevel_146} Frame 1Symbol 322 Button
"d_S3"Symbol 338 MovieClip {RebuildtheTemple_fla.SelectLevel_146} Frame 1Symbol 322 Button
"d_S4"Symbol 338 MovieClip {RebuildtheTemple_fla.SelectLevel_146} Frame 1Symbol 322 Button
"d_S5"Symbol 338 MovieClip {RebuildtheTemple_fla.SelectLevel_146} Frame 1Symbol 322 Button
"d_S6"Symbol 338 MovieClip {RebuildtheTemple_fla.SelectLevel_146} Frame 1Symbol 322 Button
"d_S7"Symbol 338 MovieClip {RebuildtheTemple_fla.SelectLevel_146} Frame 1Symbol 322 Button
"d_S8"Symbol 338 MovieClip {RebuildtheTemple_fla.SelectLevel_146} Frame 1Symbol 322 Button
"d_S9"Symbol 338 MovieClip {RebuildtheTemple_fla.SelectLevel_146} Frame 1Symbol 322 Button
"d_S10"Symbol 338 MovieClip {RebuildtheTemple_fla.SelectLevel_146} Frame 1Symbol 322 Button
"d_S11"Symbol 338 MovieClip {RebuildtheTemple_fla.SelectLevel_146} Frame 1Symbol 322 Button
"d_S12"Symbol 338 MovieClip {RebuildtheTemple_fla.SelectLevel_146} Frame 1Symbol 322 Button
"d_S13"Symbol 338 MovieClip {RebuildtheTemple_fla.SelectLevel_146} Frame 1Symbol 322 Button
"d_S14"Symbol 338 MovieClip {RebuildtheTemple_fla.SelectLevel_146} Frame 1Symbol 322 Button
"d_S15"Symbol 338 MovieClip {RebuildtheTemple_fla.SelectLevel_146} Frame 1Symbol 322 Button
"d_Play"Symbol 411 MovieClip {RebuildtheTemple_fla.LevelupWindow_180} Frame 1Symbol 410 Button
"__id13_"Symbol 411 MovieClip {RebuildtheTemple_fla.LevelupWindow_180} Frame 1Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"__id14_"Symbol 411 MovieClip {RebuildtheTemple_fla.LevelupWindow_180} Frame 1Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"Rect"Symbol 440 MovieClip {RebuildtheTemple_fla.Destory1_189} Frame 1Symbol 439 MovieClip
"Rect"Symbol 440 MovieClip {RebuildtheTemple_fla.Destory1_189} Frame 1Symbol 439 MovieClip
"Ani"Symbol 445 MovieClip {RebuildtheTemple_fla.LevelFailed_183} Frame 1Symbol 441 MovieClip {RebuildtheTemple_fla.Destory4_184}
"d_Restart"Symbol 445 MovieClip {RebuildtheTemple_fla.LevelFailed_183} Frame 1Symbol 442 Button
"d_End"Symbol 445 MovieClip {RebuildtheTemple_fla.LevelFailed_183} Frame 1Symbol 443 Button
"d_Score"Symbol 445 MovieClip {RebuildtheTemple_fla.LevelFailed_183} Frame 1Symbol 444 EditableText
"__id15_"Symbol 445 MovieClip {RebuildtheTemple_fla.LevelFailed_183} Frame 1Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"__id16_"Symbol 445 MovieClip {RebuildtheTemple_fla.LevelFailed_183} Frame 1Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"__id17_"Symbol 445 MovieClip {RebuildtheTemple_fla.LevelFailed_183} Frame 1Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"__id18_"Symbol 445 MovieClip {RebuildtheTemple_fla.LevelFailed_183} Frame 1Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"d_Sound"Symbol 446 MovieClip {Game} Frame 1Symbol 370 MovieClip {RebuildtheTemple_fla.Timeline_167}
"d_Music"Symbol 446 MovieClip {Game} Frame 1Symbol 373 MovieClip {RebuildtheTemple_fla.Timeline_168}
"d_Item4"Symbol 446 MovieClip {Game} Frame 1Symbol 378 Button
"d_Item3"Symbol 446 MovieClip {Game} Frame 1Symbol 380 Button
"d_Item2"Symbol 446 MovieClip {Game} Frame 1Symbol 382 Button
"d_Item1"Symbol 446 MovieClip {Game} Frame 1Symbol 384 Button
"d_Debug"Symbol 446 MovieClip {Game} Frame 1Symbol 394 Button
"d_Menu"Symbol 446 MovieClip {Game} Frame 1Symbol 395 Button
"d_Points"Symbol 446 MovieClip {Game} Frame 1Symbol 396 EditableText
"d_Level"Symbol 446 MovieClip {Game} Frame 1Symbol 397 EditableText
"d_Score"Symbol 446 MovieClip {Game} Frame 1Symbol 398 EditableText
"__id7_"Symbol 446 MovieClip {Game} Frame 1Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"__id8_"Symbol 446 MovieClip {Game} Frame 1Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"__id9_"Symbol 446 MovieClip {Game} Frame 1Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"__id10_"Symbol 446 MovieClip {Game} Frame 1Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"__id11_"Symbol 446 MovieClip {Game} Frame 1Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"__id12_"Symbol 446 MovieClip {Game} Frame 1Symbol 49 MovieClip {spill.localisation.LocalizedTextField}
"d_Container"Symbol 446 MovieClip {Game} Frame 1Symbol 404 MovieClip
"d_Memeoy"Symbol 446 MovieClip {Game} Frame 1Symbol 405 EditableText
"d_DebugMC"Symbol 446 MovieClip {Game} Frame 1Symbol 404 MovieClip
"d_LevelUp"Symbol 446 MovieClip {Game} Frame 1Symbol 411 MovieClip {RebuildtheTemple_fla.LevelupWindow_180}
"d_LevelFailed"Symbol 446 MovieClip {Game} Frame 1Symbol 445 MovieClip {RebuildtheTemple_fla.LevelFailed_183}

Special Tags

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

Labels

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




http://swfchan.com/22/109058/info.shtml
Created: 14/3 -2019 20:25:58 Last modified: 14/3 -2019 20:25:58 Server time: 30/04 -2024 13:52:37