STORY LOOP FURRY PORN GAMES C SERVICES [?] [R] RND POPULAR | Archived flashes: 229595 |
/disc/ · /res/ — /show/ · /fap/ · /gg/ · /swf/ | P0001 · P2595 · P5190 |
This is the info page for Flash #44538 |
Loading... |
www.kongregate.com |
88 |
+1 |
<p align="left"><font face="Franklin Gothic Medium" size="14" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>x2</b></font></p> |
0% |
Level 1 |
[M]ute |
[M]ute |
[M]ute |
[S]uicide |
[S]uicide |
[S]uicide |
Click and drag on the fireball to set throwing strength and throw it. Press 'Escape' to cancel throw. Press 'I' to hide these instructions. |
Crates begin to burn when fire hits them. |
Press 'S' to sacrafice your current throw if you are sure it will not hit any more torches. Press 'M' to mute the sound effects. |
Extra fireballs can come in handy. Some of them also give you a powerup. |
This one extends your guide line. |
Damijin Presents: |
Loaded Die Games |
Skip Intro |
Skip Intro |
Skip Intro |
Play Game |
Instructions |
Credits |
More Games! |
<p align="center"><font face="Franklin Gothic Medium" size="14" color="#ffffff" letterSpacing="0.000000" kerning="1">Want this game on your site?</font></p><p align="center"><font face="Franklin Gothic Medium" size="14" color="#ffffff" letterSpacing="0.000000" kerning="1">You can download it <font color="#0066ff"><a href="http://cdn.mochiads.com/c/g/pyro.zip" target = "_blank">here</a></font>.</font></p> |
<p align="center"><font face="Franklin Gothic Medium" size="14" color="#ffffff" letterSpacing="0.000000" kerning="1">Want this game on your site?</font></p><p align="center"><font face="Franklin Gothic Medium" size="14" color="#ffffff" letterSpacing="0.000000" kerning="1">You can download it <font color="#0066ff"><a href="http://cdn.mochiads.com/c/g/pyro.zip" target = "_blank">here</a></font>.</font></p> |
PLAY! |
PLAY! |
PLAY! |
<p align="left"><font face="Tiny Box BlackBitA8" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">Best Time:</font></p> |
Main Menu |
Main Menu |
Main Menu |
(check 'em out, so I can eat) |
Sponsored by my friends at |
88 |
ACED! |
YOU MISSED! |
Retry |
Retry |
Retry |
Level Select |
Level Select |
Level Select |
Play more games! |
Play more games! |
Play more games! |
<p align="left"><font face="Tiny Box BlackBitA8" size="12" color="#ffffff" letterSpacing="5.000000" kerning="0">Secret level A! - Secret level A! - Secret level A! - Secret level A! -</font></p> |
ACED! |
Congratulations! You've saved the castle from darkness... |
...and burned a lot of shit. |
If you still crave more fireball flinging goodness, try to unlock all of the secret levels. |
Thank you to everyone who supported us with donations and testing. You made it possible. |
Until next time... Cheers, Mike and Greg |
Design: Michael "Damijin" Gribbin Code, Effects, and Production: Greg "Arkatufus" Soedharmo We would like to thank our supporters and beta testers: AlisonClaire arcaneCoder GwenWilliams ItBeNickYo Joshhh JT the Ghost Juliette Kyle lightsun moomoomoomoo Nabb oceanix Redvizzle Schild spartakips Spes Steph TheGhostGamer Ventero Sponsored by: |
Pyro |
Back |
Back |
Back |
How to Play PYRO |
Each level has unlit torches that you need to ignite with your fireball. Grab the ball with your mouse, and drag it to set power and trajectory, and light as many as you can. Some levels may not require you to light all of the torches. You can see how many you need to hit in the top right corner of each level. You also may encounter powerups on a few levels. If you see a fireball on the level, touching it will collect it and give you an extra shot. Colored fireballs have different properties like an extra long guide line, extra bouce, or smaller size. Lighting all of the required torches with one shot is called an ace, and may unlock bonus levels. |
<p align="center"><font face="Franklin Gothic Medium" size="16" color="#ffffff" letterSpacing="0.000000" kerning="1">If you encounter any bugs, let me know with a whisper <font color="#0000ff"><a href="http://www.kongregate.com/accounts/damijin?gamereferral=pyro" target = "_blank">on my Kongregate profile</a></font>, or submit a bug report there. Good luck!</font></p> |
ActionScript [AS3]
Section 1//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2CircleDef extends b2ShapeDef { public var radius:Number; public var localPosition:b2Vec2; public function b2CircleDef(){ localPosition = new b2Vec2(0, 0); super(); type = b2Shape.e_circleShape; radius = 1; } } }//package Box2D.Collision.ShapesSection 2//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_localPosition:b2Vec2; public var m_radius:Number; public function b2CircleShape(_arg1:b2ShapeDef){ m_localPosition = new b2Vec2(); super(_arg1); var _local2:b2CircleDef = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local10:Number; var _local6:b2Mat22 = _arg1.R; var _local7:Number = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); var _local8:Number = (_arg1.position.x + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); var _local9:Number = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); var _local11:Number = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; var _local12:Number = (_arg4.p2.x - _arg4.p1.x); var _local13:Number = (_arg4.p2.y - _arg4.p1.y); var _local14:Number = ((_local9 * _local12) + (_local10 * _local13)); var _local15:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local16:Number = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; var _local17:Number = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } public function GetRadius():Number{ return (m_radius); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; _local4 = _arg2.R; var _local5:Number = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local6:Number = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; var _local7:Number = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local8:Number = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number = (m_localPosition.x - _arg1.x); var _local3:Number = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22 = _arg2.R; var _local4:Number = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22 = _arg1.R; var _local4:Number = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } } }//package Box2D.Collision.ShapesSection 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 Copy():b2FilterData{ var _local1:b2FilterData = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.ShapesSection 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(){ center = new b2Vec2(0, 0); super(); } } }//package Box2D.Collision.ShapesSection 5//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertices:Array; public var vertexCount:int; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; var _local1:int; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function 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.ShapesSection 6//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { public var m_coreVertices:Array; public var m_vertices:Array; private var s_supportVec:b2Vec2; public var m_centroid:b2Vec2; public var m_normals:Array; public var m_obb:b2OBB; public var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local3:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; var _local2:b2PolygonDef = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; var _local4:int = _local3; var _local5:int = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB = s_sweptAABB1; var _local5:b2AABB = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y); _arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y); } public function GetVertices():Array{ return (m_vertices); } public function GetCoreVertices():Array{ return (m_coreVertices); } public function GetCentroid():b2Vec2{ return (m_centroid); } 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 TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local20:Number; var _local21:Number; var _local6:Number = 0; var _local7:Number = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; var _local12:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local13:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; var _local14:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local15:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); var _local18 = -1; var _local19:int; while (_local19 < m_vertexCount) { _local11 = m_vertices[_local19]; _local8 = (_local11.x - _local12); _local9 = (_local11.y - _local13); _local11 = m_normals[_local19]; _local20 = ((_local11.x * _local8) + (_local11.y * _local9)); _local21 = ((_local11.x * _local16) + (_local11.y * _local17)); if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){ _local6 = (_local20 / _local21); _local18 = _local19; } else { if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){ _local7 = (_local20 / _local21); }; }; if (_local7 < _local6){ return (false); }; _local19++; }; if (_local18 >= 0){ _arg2[0] = _local6; _local10 = _arg1.R; _local11 = m_normals[_local18]; _arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); return (true); }; return (false); } override public function ComputeMass(_arg1:b2MassData):void{ var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local2:Number = 0; var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; var _local7:Number = 0; var _local8:Number = (1 / 3); var _local9:int; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0]; _local12 = (_local10.x - _local6); _local13 = (_local10.y - _local7); _local14 = (_local11.x - _local6); _local15 = (_local11.y - _local7); _local16 = ((_local12 * _local15) - (_local13 * _local14)); _local17 = (0.5 * _local16); _local4 = (_local4 + _local17); _local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x))); _local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y))); _local18 = _local6; _local19 = _local7; _local20 = _local12; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18)); _local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local5 = (_local5 + (_local16 * (_local24 + _local25))); _local9++; }; _arg1.mass = (m_density * _local4); _local2 = (_local2 * (1 / _local4)); _local3 = (_local3 * (1 / _local4)); _arg1.center.Set(_local2, _local3); _arg1.I = (m_density * _local5); } public function GetNormals():Array{ return (m_normals); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local11:Number; _local5 = _arg1.R; var _local6:Number = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); var _local7:Number = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); var _local8:int; _local4 = m_coreVertices[0]; var _local9:Number = ((_local4.x * _local6) + (_local4.y * _local7)); var _local10 = 1; while (_local10 < m_vertexCount) { _local4 = m_coreVertices[_local10]; _local11 = ((_local4.x * _local6) + (_local4.y * _local7)); if (_local11 > _local9){ _local8 = _local10; _local9 = _local11; }; _local10++; }; _local5 = _arg1.R; _local4 = m_coreVertices[_local8]; s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y))); s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); var _local6:b2Mat22 = _local5; _local4 = m_obb.extents; var _local7:Number = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); var _local8:Number = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; var _local9:Number = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); var _local10:Number = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local4:Number; var _local5:Number; m_sweepRadius = 0; var _local3:int; while (_local3 < m_vertexCount) { _local2 = m_coreVertices[_local3]; _local4 = (_local2.x - _arg1.x); _local5 = (_local2.y - _arg1.y); _local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local4 > m_sweepRadius){ m_sweepRadius = _local4; }; _local3++; }; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local10:Number; var _local4:b2Mat22 = _arg1.R; var _local5:Number = (_arg2.x - _arg1.position.x); var _local6:Number = (_arg2.y - _arg1.position.y); var _local7:Number = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); var _local8:Number = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); var _local9:int; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local7:Number; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; _local7 = (1 / 3); var _local8:int; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; var _local5:Array = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; var _local6:Number = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.ShapesSection 7//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2Shape { public var m_next: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_isSensor:Boolean; public var m_restitution:Number; public var m_userData; 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 SetUserData(_arg1):void{ m_userData = _arg1; } 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{ if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); var _local3:b2AABB = s_resetAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; var _local4:b2AABB = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function 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 = s_proxyAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } 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.ShapesSection 8//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var friction:Number;// = 0.2 public var isSensor:Boolean;// = false public var density:Number;// = 0 public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var type:int;// = -1 public function b2ShapeDef(){ filter = new b2FilterData(); super(); } } }//package Box2D.Collision.ShapesSection 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 = (upperBound.x - lowerBound.x); var _local2:Number = (upperBound.y - lowerBound.y); var _local3:Boolean = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.CollisionSection 10//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var value:uint; public var proxyId:uint; public var stabbingCount:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint = value; var _local3:uint = proxyId; var _local4:uint = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//package Box2D.CollisionSection 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.CollisionSection 12//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_bounds:Array; public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; 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 _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; var _local4:Number = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); _local3 = 0; while (_local3 < (b2Settings.b2_maxProxies - 1)) { _local6 = new b2Proxy(); m_proxyPool[_local3] = _local6; _local6.SetNext((_local3 + 1)); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; _local3++; }; _local6 = new b2Proxy(); m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local6:uint; var _local7:uint; var _local12:b2Proxy; var _local4:Array = new Array(); var _local5:Array = new Array(); ComputeBounds(_local4, _local5, _arg1); var _local8:Array = [_local6]; var _local9:Array = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); var _local10:int; var _local11:int; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Commit():void{ m_pairManager.Commit(); } public function GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy = 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 _local10:b2Bound; var _local12:int; var _local13:int; var _local14:b2Proxy; var _local8:uint = BinarySearch(_arg5, _arg6, _arg3); var _local9:uint = BinarySearch(_arg5, _arg6, _arg4); var _local11:uint = _local8; while (_local11 < _local9) { _local10 = _arg5[_local11]; if (_local10.IsLower()){ IncrementOverlapCount(_local10.proxyId); }; _local11++; }; if (_local8 > 0){ _local12 = (_local8 - 1); _local10 = _arg5[_local12]; _local13 = _local10.stabbingCount; while (_local13) { _local10 = _arg5[_local12]; if (_local10.IsLower()){ _local14 = m_proxyPool[_local10.proxyId]; if (_local8 <= _local14.upperBounds[_arg7]){ IncrementOverlapCount(_local10.proxyId); _local13--; }; }; _local12--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number = _arg3.lowerBound.x; var _local5:Number = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); var _local6:Number = _arg3.upperBound.x; var _local7:Number = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:b2Bound; var _local22:int; var _local23:b2Proxy; var _local5:uint = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; var _local6:uint = (2 * m_proxyCount); var _local7:Array = new Array(); var _local8:Array = new Array(); ComputeBounds(_local7, _local8, _arg1); var _local9:int; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local13 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local16 = new Array(); _local18 = (_local13 - _local12); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local12 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local19 = _local11[_local12]; _local20 = _local11[_local13]; _local19.value = _local7[_local9]; _local19.proxyId = _local5; _local20.value = _local8[_local9]; _local20.proxyId = _local5; _local21 = _local11[int((_local12 - 1))]; _local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount; _local21 = _local11[int((_local13 - 1))]; _local20.stabbingCount = _local21.stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local21 = _local11[_local3]; _local21.stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local19 = _local11[_local3]; _local23 = m_proxyPool[_local19.proxyId]; if (_local19.IsLower()){ _local23.lowerBounds[_local9] = _local3; } else { _local23.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; var _local10:int; while (_local10 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]); _local10++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local5); } public function DestroyProxy(_arg1:uint):void{ var _local2:b2Bound; var _local3:b2Bound; var _local8:Array; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:int; var _local15:int; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; var _local4:b2Proxy = m_proxyPool[_arg1]; var _local5:int = (2 * m_proxyCount); var _local6:int; while (_local6 < 2) { _local8 = m_bounds[_local6]; _local9 = _local4.lowerBounds[_local6]; _local10 = _local4.upperBounds[_local6]; _local2 = _local8[_local9]; _local11 = _local2.value; _local3 = _local8[_local10]; _local12 = _local3.value; _local13 = new Array(); _local15 = ((_local10 - _local9) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local9 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = _local9; _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local13 = new Array(); _local15 = ((_local5 - _local10) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local10 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = (_local10 - 1); _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = (_local5 - 2); _local17 = _local9; while (_local17 < _local15) { _local2 = _local8[_local17]; _local19 = m_proxyPool[_local2.proxyId]; if (_local2.IsLower()){ _local19.lowerBounds[_local6] = _local17; } else { _local19.upperBounds[_local6] = _local17; }; _local17++; }; _local15 = (_local10 - 1); _local18 = _local9; while (_local18 < _local15) { _local2 = _local8[_local18]; _local2.stabbingCount--; _local18++; }; Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6); _local6++; }; var _local7:int; while (_local7 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]); _local7++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local4.userData = null; _local4.overlapCount = b2_invalid; _local4.lowerBounds[0] = b2_invalid; _local4.lowerBounds[1] = b2_invalid; _local4.upperBounds[0] = b2_invalid; _local4.upperBounds[1] = b2_invalid; _local4.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg2.upperBounds[_local3]]; if (_arg1.lowerValues[_local3] > _local5.value){ return (false); }; _local5 = _local4[_arg2.lowerBounds[_local3]]; if (_arg1.upperValues[_local3] < _local5.value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local5:int; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } 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 _local16:Array; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:uint; var _local21:int; var _local22:int; var _local23:uint; var _local24:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; var _local12:uint = (2 * m_proxyCount); var _local13:b2Proxy = m_proxyPool[_arg1]; var _local14:b2BoundValues = new b2BoundValues(); ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2); var _local15:b2BoundValues = new b2BoundValues(); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5][_local13.lowerBounds[_local5]]; _local15.lowerValues[_local5] = _local7.value; _local7 = m_bounds[_local5][_local13.upperBounds[_local5]]; _local15.upperValues[_local5] = _local7.value; _local5++; }; _local5 = 0; while (_local5 < 2) { _local16 = m_bounds[_local5]; _local17 = _local13.lowerBounds[_local5]; _local18 = _local13.upperBounds[_local5]; _local19 = _local14.lowerValues[_local5]; _local20 = _local14.upperValues[_local5]; _local7 = _local16[_local17]; _local21 = (_local19 - _local7.value); _local7.value = _local19; _local7 = _local16[_local18]; _local22 = (_local20 - _local7.value); _local7.value = _local20; if (_local21 < 0){ _local6 = _local17; while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local8.proxyId]; _local8.stabbingCount++; if (_local8.IsUpper() == true){ if (TestOverlap(_local14, _local24)){ m_pairManager.AddBufferedPair(_arg1, _local23); }; _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; if (_local22 > 0){ _local6 = _local18; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount++; if (_local9.IsLower() == true){ if (TestOverlap(_local14, _local11)){ m_pairManager.AddBufferedPair(_arg1, _local10); }; _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local21 > 0){ _local6 = _local17; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount--; if (_local9.IsUpper()){ if (TestOverlap(_local15, _local11)){ m_pairManager.RemoveBufferedPair(_arg1, _local10); }; _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local22 < 0){ _local6 = _local18; while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local23]; _local8.stabbingCount--; if (_local8.IsLower() == true){ if (TestOverlap(_local15, _local24)){ m_pairManager.RemoveBufferedPair(_arg1, _local23); }; _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; _local5++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local6:int; var _local7:b2Bound; var _local4:int; var _local5:int = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); _local7 = _arg1[_local6]; if (_local7.value > _arg3){ _local5 = (_local6 - 1); } else { if (_local7.value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.CollisionSection 13//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.CollisionSection 14//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local11:b2Mat22; var _local12:b2Vec2; var _local25:Number; var _local6:int = _arg1.m_vertexCount; var _local7:Array = _arg1.m_vertices; var _local8:Array = _arg1.m_normals; var _local9:int = _arg4.m_vertexCount; var _local10:Array = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; var _local13:Number = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); var _local14:Number = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; var _local15:Number = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); var _local16:Number = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; var _local20:Number = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local21:Number = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; var _local22:Number = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local23:Number = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); var _local24:Number = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2 = _arg2.lowerBound; var _local4:b2Vec2 = _arg1.upperBound; var _local5:Number = (_local3.x - _local4.x); var _local6:Number = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; var _local7:Number = (_local3.x - _local4.x); var _local8:Number = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local12:b2Mat22; var _local13:b2Vec2; var _local20:ClipVertex; var _local23:Number; var _local7:int = _arg2.m_vertexCount; var _local8:Array = _arg2.m_normals; var _local9:int = _arg5.m_vertexCount; var _local10:Array = _arg5.m_vertices; var _local11:Array = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; var _local14:Number = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); var _local15:Number = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; var _local16:Number = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; var _local21:int = _local17; var _local22:int = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local17:int; var _local18:uint; var _local34:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; var _local7:int; var _local8:Array = [_local7]; var _local9:Number = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; var _local10:int; var _local11:Array = [_local10]; var _local12:Number = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; var _local15:b2XForm = new b2XForm(); var _local16:b2XForm = new b2XForm(); var _local19:Number = 0.98; var _local20:Number = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; var _local21:Array = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); var _local22:int = _local13.m_vertexCount; var _local23:Array = _local13.m_vertices; var _local24:b2Vec2 = _local23[_local17]; var _local25:b2Vec2 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; var _local26:b2Vec2 = b2Math.SubtractVV(_local37, _local25); var _local27:b2Vec2 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); var _local28:b2Vec2 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); var _local29:Number = b2Math.b2Dot(_local28, _local25); var _local30:Number = -(b2Math.b2Dot(_local27, _local25)); var _local31:Number = b2Math.b2Dot(_local27, _local37); var _local32:Array = [new ClipVertex(), new ClipVertex()]; var _local33:Array = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); var _local35:int; var _local36:int; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local8:b2Vec2; var _local9:b2Mat22; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; var _local6:int = _arg2.m_vertexCount; var _local7:Array = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; var _local10:Number = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); var _local11:Number = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); var _local12:Number = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); var _local13:Number = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); var _local14:int; var _local15:Number = -(Number.MAX_VALUE); var _local16:int; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; var _local17:Number = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; var _local18:int = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); var _local19:Number = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; var _local20:int = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; var _local21:Number = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); var _local10:Number = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local18:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; var _local8:Number = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local9:Number = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; var _local10:Number = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local11:Number = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); var _local12:Number = (_local10 - _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local15:Number = _arg2.m_radius; var _local16:Number = _arg4.m_radius; var _local17:Number = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; var _local19:b2ManifoldPoint = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); var _local20:Number = (0.5 * (_local8 + _local10)); var _local21:Number = (0.5 * (_local9 + _local11)); var _local22:Number = (_local20 - _arg3.position.x); var _local23:Number = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local17:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; var _local13:Number = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); var _local14:Number = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; var _local15:Number = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); var _local16:Number = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); var _local18:int; var _local19:Number = -(Number.MAX_VALUE); var _local20:Number = _arg4.m_radius; var _local21:int = _arg2.m_vertexCount; var _local22:Array = _arg2.m_vertices; var _local23:Array = _arg2.m_normals; var _local24:int; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; var _local25:int = _local18; var _local26:int = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; var _local27:b2Vec2 = _local22[_local26]; var _local28:Number = (_local27.x - _local11.x); var _local29:Number = (_local27.y - _local11.y); var _local30:Number = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); var _local31:Number = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = 0; }; }; _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.CollisionSection 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 = new b2ContactID(); _local1.key = key; return (_local1); } 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); } public function get key():uint{ return (_key); } } }//package Box2D.CollisionSection 16//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2ContactPoint { public var friction:Number; 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 velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.CollisionSection 17//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local4:Number = (100 * Number.MIN_VALUE); var _local5:int; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; var _local8:Array = s_p1s; var _local9:Array = s_p2s; var _local10:Array = s_points; var _local11:int; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); var _local12:Number = 0; var _local13 = 20; var _local14:int; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - ((_local15 * _local19) + (_local16 * _local20))) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; var _local9:Number = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local10:Number = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; var _local11:Number = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local12:Number = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:Number = ((_local13 * _local13) + (_local14 * _local14)); var _local16:Number = (_arg3.m_radius - b2Settings.b2_toiSlop); var _local17:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); var _local18:Number = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _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(((_local13 * _local13) + (_local14 * _local14))); _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 _local35:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; var _local14:b2Vec2 = _arg4[2]; var _local15:Number = _local6.x; var _local16:Number = _local6.y; var _local17:Number = _local7.x; var _local18:Number = _local7.y; var _local19:Number = _local8.x; var _local20:Number = _local8.y; var _local21:Number = (_local17 - _local15); var _local22:Number = (_local18 - _local16); var _local23:Number = (_local19 - _local15); var _local24:Number = (_local20 - _local16); var _local25:Number = (_local19 - _local17); var _local26:Number = (_local20 - _local18); var _local27:Number = -(((_local15 * _local21) + (_local16 * _local22))); var _local28:Number = ((_local17 * _local21) + (_local18 * _local22)); var _local29:Number = -(((_local15 * _local23) + (_local16 * _local24))); var _local30:Number = ((_local19 * _local23) + (_local20 * _local24)); var _local31:Number = -(((_local17 * _local25) + (_local18 * _local26))); var _local32:Number = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; var _local33:Number = ((_local21 * _local24) - (_local22 * _local23)); var _local34:Number = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); var _local36:Number = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; var _local37:Number = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; var _local38:Number = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); var _local39:Number = (_local36 * _local38); var _local40:Number = (_local37 * _local38); var _local41:Number = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local9:b2Point = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local10:Number = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); var _local11:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int = _arg3.m_type; var _local8:int = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local17:Number; var _local6:b2Vec2 = _arg5[0]; var _local7:b2Vec2 = _arg5[1]; var _local8:b2Vec2 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; var _local12:Number = -(_local7.x); var _local13:Number = -(_local7.y); var _local14:Number = (_local6.x - _local7.x); var _local15:Number = (_local6.y - _local7.y); var _local16:Number = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } }//package Box2D.CollisionSection 18//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var pointCount:int;// = 0 public var normal:b2Vec2; public var points:Array; public function b2Manifold(){ points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ pointCount = _arg1.pointCount; var _local2:int; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } public function Reset():void{ var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.CollisionSection 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.CollisionSection 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.CollisionSection 21//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var proxyId1:uint; public var userData;// = null 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 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.CollisionSection 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.CollisionSection 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_hashTable:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; 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 = 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 _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; var _local3:int; var _local4:Array = m_broadPhase.m_proxyPool; _local2 = 0; while (_local2 < m_pairBufferCount) { _local1 = m_pairBuffer[_local2]; _local5 = Find(_local1.proxyId1, _local1.proxyId2); _local5.ClearBuffered(); _local6 = _local4[_local5.proxyId1]; _local7 = _local4[_local5.proxyId2]; if (_local5.IsRemoved()){ if (_local5.IsFinal() == true){ m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData); }; _local1 = m_pairBuffer[_local3]; _local1.proxyId1 = _local5.proxyId1; _local1.proxyId2 = _local5.proxyId2; _local3++; } else { if (_local5.IsFinal() == false){ _local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData); _local5.SetFinal(); }; }; _local2++; }; _local2 = 0; while (_local2 < _local3) { _local1 = m_pairBuffer[_local2]; RemovePair(_local1.proxyId1, _local1.proxyId2); _local2++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = Find(_arg1, _arg2); if (_local4 == null){ return; }; if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; var _local4:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local5:uint = m_hashTable[_local4]; var _local6:b2Pair; while (_local5 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local5], _arg1, _arg2)){ _local8 = _local5; _local3 = m_pairs[_local5]; if (_local6){ _local6.next = _local3.next; } else { m_hashTable[_local4] = _local3.next; }; _local3 = m_pairs[_local8]; _local9 = _local3.userData; _local3.next = m_freePair; _local3.proxyId1 = b2Pair.b2_nullProxy; _local3.proxyId2 = b2Pair.b2_nullProxy; _local3.userData = null; _local3.status = 0; m_freePair = _local8; m_pairCount--; return (_local9); } else { _local6 = m_pairs[_local5]; _local5 = _local6.next; }; }; return (null); } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = AddPair(_arg1, _arg2); if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; var _local5:uint = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function 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 = (((_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.CollisionSection 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.CollisionSection 25//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var userData;// = null public var lowerBounds:Array; public var upperBounds:Array; public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; 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.CollisionSection 26//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local5:b2Vec2 = _arg3.p1; var _local6:Number = (_arg3.p2.x - _local5.x); var _local7:Number = (_arg3.p2.y - _local5.y); var _local8:Number = (p2.x - p1.x); var _local9:Number = (p2.y - p1.y); var _local10:Number = _local9; var _local11:Number = -(_local8); var _local12:Number = (100 * Number.MIN_VALUE); var _local13:Number = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local7) * _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.CollisionSection 27//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local7:Number = _arg1.m_sweepRadius; var _local8:Number = _arg3.m_sweepRadius; var _local9:Number = _arg2.t0; var _local10:Number = (_arg2.c.x - _arg2.c0.x); var _local11:Number = (_arg2.c.y - _arg2.c0.y); var _local12:Number = (_arg4.c.x - _arg4.c0.x); var _local13:Number = (_arg4.c.y - _arg4.c0.y); var _local14:Number = (_arg2.a - _arg2.a0); var _local15:Number = (_arg4.a - _arg4.a0); var _local16:Number = 0; var _local17:b2Vec2 = s_p1; var _local18:b2Vec2 = s_p2; var _local19 = 20; var _local20:int; var _local21:Number = 0; var _local22:Number = 0; var _local23:Number = 0; var _local24:Number = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } }//package Box2D.CollisionSection 28//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var id:b2ContactID; public var v:b2Vec2; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.CollisionSection 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 get incidentVertex():int{ return (_incidentVertex); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.CollisionSection 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 SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function Set(_arg1:Number):void{ var _local2:Number; _local2 = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function 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 _local4:Number; var _local6:Number; _local2 = col1.x; var _local3:Number = col2.x; _local4 = col1.y; var _local5:Number = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number = col1.x; var _local5:Number = col2.x; var _local6:Number = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.MathSection 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 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function 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 = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:* = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function 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 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function 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 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); var _local4:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); var _local5:b2Mat22 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean = (((_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 = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function 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 = 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 = 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.MathSection 32//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var a:Number; public var c:b2Vec2; public var a0:Number; public var c0:b2Vec2; 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 _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; var _local3:b2Mat22 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } }//package Box2D.Common.MathSection 33//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var y:Number; public var x:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } 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 MulM(_arg1:b2Mat22):void{ var _local2:Number = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function SetZero():void{ x = 0; y = 0; } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function Normalize():Number{ var _local1:Number = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; var _local2:Number = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function CrossVF(_arg1:Number):void{ var _local2:Number = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } 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 CrossFV(_arg1:Number):void{ var _local2:Number = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.MathSection 34//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var position:b2Vec2; public var R:b2Mat22; public var scale:Number; 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); }; scale = 1; } 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.MathSection 35//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _r:uint;// = 0 private var _g:uint;// = 0 private var _b:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 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 g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } } }//package Box2D.CommonSection 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.CommonSection 37//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local8:b2ManifoldPoint; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); var _local7:b2ContactPoint = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.ContactsSection 38//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Contact { public var m_shape1:b2Shape; public var m_shape2:b2Shape; public var m_prev:b2Contact; public var m_toi:Number; public var m_next:b2Contact; public var m_friction:Number; public var m_manifoldCount:int; public var m_node1:b2ContactEdge; public var m_node2:b2ContactEdge; public var m_restitution:Number; public var m_flags:uint; public static var e_toiFlag:uint = 8; public static var e_nonSolidFlag:uint = 1; public static var e_slowFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var s_registers:Array; public static var s_initialized:Boolean = false; public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){ m_node1 = new b2ContactEdge(); m_node2 = new b2ContactEdge(); super(); m_flags = 0; if (((!(_arg1)) || (!(_arg2)))){ m_shape1 = null; m_shape2 = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_nonSolidFlag); }; m_shape1 = _arg1; m_shape2 = _arg2; m_manifoldCount = 0; m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction)); m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution); m_prev = null; m_next = null; m_node1.contact = null; m_node1.prev = null; m_node1.next = null; m_node1.other = null; m_node2.contact = null; m_node2.prev = null; m_node2.next = null; m_node2.other = null; } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetShape1():b2Shape{ return (m_shape1); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetNext():b2Contact{ return (m_next); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function GetManifolds():Array{ return (null); } public function Update(_arg1:b2ContactListener):void{ var _local2:int = m_manifoldCount; Evaluate(_arg1); var _local3:int = m_manifoldCount; var _local4:b2Body = m_shape1.m_body; var _local5:b2Body = m_shape2.m_body; if ((((_local3 == 0)) && ((_local2 > 0)))){ _local4.WakeUp(); _local5.WakeUp(); }; if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } public function Evaluate(_arg1:b2ContactListener):void{ } public static function InitializeRegisters():void{ var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); var _local1:int; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); } public static function Destroy(_arg1:b2Contact, _arg2):void{ if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; var _local3:int = _arg1.m_shape1.m_type; var _local4:int = _arg1.m_shape2.m_type; var _local5:b2ContactRegister = s_registers[_local3][_local4]; var _local6:Function = _local5.destroyFcn; _local6(_arg1, _arg2); } 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 _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; var _local4:int = _arg1.m_type; var _local5:int = _arg2.m_type; var _local6:b2ContactRegister = s_registers[_local4][_local5]; var _local7:Function = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.ContactsSection 39//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var normal:b2Vec2; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.ContactsSection 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 tangentMass:Number; public var equalizedMass: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.ContactsSection 41//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var other:b2Body; public var prev:b2ContactEdge; public var contact:b2Contact; public var next:b2ContactEdge; } }//package Box2D.Dynamics.ContactsSection 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.ContactsSection 43//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; public class b2ContactResult { public var position:b2Vec2; public var shape1:b2Shape; public var shape2:b2Shape; public var normalImpulse:Number; public var normal:b2Vec2; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ContactResult(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Dynamics.ContactsSection 44//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactSolver { public var m_constraintCount:int; public var m_constraints:Array; public var m_allocator; public var m_step:b2TimeStep; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local10:b2Body; var _local11:b2Body; var _local12:int; var _local13:Array; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; var _local23:b2Manifold; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraint; var _local27:uint; var _local28:b2ManifoldPoint; var _local29:b2ContactConstraintPoint; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; m_step = new b2TimeStep(); m_constraints = new Array(); super(); m_step.dt = _arg1.dt; m_step.inv_dt = _arg1.inv_dt; m_step.maxIterations = _arg1.maxIterations; m_allocator = _arg4; m_constraintCount = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; m_constraintCount = (m_constraintCount + _local5.m_manifoldCount); _local6++; }; _local6 = 0; while (_local6 < m_constraintCount) { m_constraints[_local6] = new b2ContactConstraint(); _local6++; }; var _local9:int; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1.m_body; _local11 = _local5.m_shape2.m_body; _local12 = _local5.m_manifoldCount; _local13 = _local5.GetManifolds(); _local14 = _local5.m_friction; _local15 = _local5.m_restitution; _local16 = _local10.m_linearVelocity.x; _local17 = _local10.m_linearVelocity.y; _local18 = _local11.m_linearVelocity.x; _local19 = _local11.m_linearVelocity.y; _local20 = _local10.m_angularVelocity; _local21 = _local11.m_angularVelocity; _local22 = 0; while (_local22 < _local12) { _local23 = _local13[_local22]; _local24 = _local23.normal.x; _local25 = _local23.normal.y; _local26 = m_constraints[_local9]; _local26.body1 = _local10; _local26.body2 = _local11; _local26.manifold = _local23; _local26.normal.x = _local24; _local26.normal.y = _local25; _local26.pointCount = _local23.pointCount; _local26.friction = _local14; _local26.restitution = _local15; _local27 = 0; while (_local27 < _local26.pointCount) { _local28 = _local23.points[_local27]; _local29 = _local26.points[_local27]; _local29.normalImpulse = _local28.normalImpulse; _local29.tangentImpulse = _local28.tangentImpulse; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local8 = _local10.m_xf.R; _local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x); _local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33)); _local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33)); _local32 = _local30; _local29.r1.Set(_local32, _local33); _local8 = _local11.m_xf.R; _local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x); _local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local30; _local29.r2.Set(_local34, _local35); _local36 = ((_local32 * _local32) + (_local33 * _local33)); _local37 = ((_local34 * _local34) + (_local35 * _local35)); _local38 = ((_local32 * _local24) + (_local33 * _local25)); _local39 = ((_local34 * _local24) + (_local35 * _local25)); _local40 = (_local10.m_invMass + _local11.m_invMass); _local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39))))); _local29.normalMass = (1 / _local40); _local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass)); _local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39))))); _local29.equalizedMass = (1 / _local41); _local42 = _local25; _local43 = -(_local24); _local44 = ((_local32 * _local42) + (_local33 * _local43)); _local45 = ((_local34 * _local42) + (_local35 * _local43)); _local46 = (_local10.m_invMass + _local11.m_invMass); _local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45))))); _local29.tangentMass = (1 / _local46); _local29.velocityBias = 0; if (_local29.separation > 0){ _local29.velocityBias = (-60 * _local29.separation); }; _local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33)); _local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32)); _local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47)); }; _local27++; }; _local9++; _local22++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local3:b2Mat22; var _local4:b2Vec2; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local2:Number = 0; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Mat22; var _local18:b2Vec2; var _local20:b2ContactConstraint; var _local21:b2Body; var _local22:b2Body; var _local23:Number; var _local24:Number; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:int; var _local38:Number; var _local19:int; while (_local19 < m_constraintCount) { _local20 = m_constraints[_local19]; _local21 = _local20.body1; _local22 = _local20.body2; _local23 = _local21.m_angularVelocity; _local24 = _local22.m_angularVelocity; _local25 = _local21.m_linearVelocity; _local26 = _local22.m_linearVelocity; _local27 = _local21.m_invMass; _local28 = _local21.m_invI; _local29 = _local22.m_invMass; _local30 = _local22.m_invI; _local31 = _local20.normal.x; _local32 = _local20.normal.y; _local33 = _local32; _local34 = -(_local31); _local35 = _local20.friction; _local37 = _local20.pointCount; _local1 = 0; while (_local1 < _local37) { _local2 = _local20.points[_local1]; _local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y)); _local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x)); _local9 = ((_local7 * _local31) + (_local8 * _local32)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local10 = ((_local7 * _local33) + (_local8 * _local34)); _local12 = (_local2.tangentMass * -(_local10)); _local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0); _local11 = (_local13 - _local2.normalImpulse); _local38 = (_local35 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38); _local12 = (_local14 - _local2.tangentImpulse); _local15 = ((_local11 * _local31) + (_local12 * _local33)); _local16 = ((_local11 * _local32) + (_local12 * _local34)); _local25.x = (_local25.x - (_local27 * _local15)); _local25.y = (_local25.y - (_local27 * _local16)); _local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local26.x = (_local26.x + (_local29 * _local15)); _local26.y = (_local26.y + (_local29 * _local16)); _local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.normalImpulse = _local13; _local2.tangentImpulse = _local14; _local1++; }; _local21.m_angularVelocity = _local23; _local22.m_angularVelocity = _local24; _local19++; }; } public function FinalizeVelocityConstraints():void{ var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; var _local1:int; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.ContactsSection 45//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function Evaluate(_arg1:b2ContactListener):void{ } override public function GetManifolds():Array{ return (null); } } }//package Box2D.Dynamics.ContactsSection 46//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local6:b2Body = m_shape1.m_body; var _local7:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); var _local8:Array = [false, false]; var _local9:b2ContactPoint = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.ContactsSection 47//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local7:b2ContactPoint; var _local8:int; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); var _local9:Array = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local9[_local13] == true){ } else { _local4 = m0.points[_local13]; if (_local4.id._key == _local12){ _local9[_local13] = true; _local10.normalImpulse = _local4.normalImpulse; _local10.tangentImpulse = _local4.tangentImpulse; _local11 = true; if (_arg1 != null){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Persist(_local7); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Add(_local7); }; _local8++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local8 = 0; while (_local8 < m0.pointCount) { if (_local9[_local8]){ } else { _local4 = m0.points[_local8]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; _local8++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.ContactsSection 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_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_bias:Number; public var m_gamma:Number; public var m_u:b2Vec2; public var m_mass:Number; public var m_impulse:Number; public var m_dampingRatio:Number; public var m_frequencyHz: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 InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local8:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; m_inv_dt = _arg1.inv_dt; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); var _local10:Number = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; var _local11:Number = ((_local6 * m_u.y) - (_local7 * m_u.x)); var _local12:Number = ((_local8 * m_u.y) - (_local9 * m_u.x)); var _local13:Number = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; if (m_frequencyHz > 0){ return (true); }; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local1 = _local2.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; var _local9:Number = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); var _local10:Number = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); var _local11:Number = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); var _local12:Number = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local13:Number = (-(m_mass) * _local12); m_u.Set(_local9, _local10); var _local14:Number = (_local13 * m_u.x); var _local15:Number = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; _local2 = _local3.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local7:Number = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); var _local11:Number = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); var _local12:Number = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); var _local13:Number = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); var _local14:Number = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); var _local15:Number = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); var _local16:Number = (_local15 * m_u.x); var _local17:Number = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } } }//package Box2D.Dynamics.JointsSection 49//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2DistanceJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var length:Number; public var dampingRatio:Number; public var localAnchor2:b2Vec2; public var frequencyHz:Number; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); var _local5:Number = (_arg4.x - _arg3.x); var _local6:Number = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.JointsSection 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_ground2:b2Body; 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_revolute2:b2RevoluteJoint; public var m_force:Number; public var m_mass:Number; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_revolute1:b2RevoluteJoint; public var m_prismatic1:b2PrismaticJoint; public var m_constant:Number; public var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); var _local2:int = _arg1.joint1.m_type; var _local3:int = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.m_body1; m_body1 = _arg1.joint1.m_body2; if (_local2 == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local4 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local4 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_local3 == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local5 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local5 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local4 + (m_ratio * _local5)); m_force = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local15:Number; var _local2:b2Body = m_ground1; var _local3:b2Body = m_ground2; var _local4:b2Body = m_body1; var _local5:b2Body = m_body2; var _local14:Number = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ var _local1:b2Mat22 = m_body2.m_xf.R; var _local2:Number = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); var _local3:Number = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); var _local4:Number = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local4:Number; var _local5:Number; var _local1:Number = 0; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; var _local6:Number = (m_constant - (_local4 + (m_ratio * _local5))); var _local7:Number = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local5:Number = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); var _local6:Number = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } } }//package Box2D.Dynamics.JointsSection 51//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint1:b2Joint; public var joint2:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.JointsSection 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 angular1:Number; public var angular2: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.JointsSection 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 GetBody2():b2Body{ return (m_body2); } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function GetNext():b2Joint{ return (m_next); } public function GetType():int{ return (m_type); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } 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; 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.JointsSection 54//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var body2:b2Body; public var type:int; public var userData; public var collideConnected:Boolean; public var body1:b2Body; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.JointsSection 55//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; public var joint:b2Joint; } }//package Box2D.Dynamics.JointsSection 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 { private var K1:b2Mat22; private var K:b2Mat22; public var m_beta:Number; public var m_mass:b2Mat22; private var K2:b2Mat22; public var m_target:b2Vec2; public var m_gamma:Number; public var m_impulse:b2Vec2; public var m_C:b2Vec2; public var m_localAnchor:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local3:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); var _local2:Number = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); var _local4:b2Mat22 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); var _local5:Number = m_body2.m_mass; var _local6:Number = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); var _local7:Number = (((2 * _local5) * _arg1.dampingRatio) * _local6); var _local8:Number = ((_arg1.timeStep * _local5) * (_local6 * _local6)); m_gamma = (1 / (_local7 + _local8)); m_beta = (_local8 / (_local7 + _local8)); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local7:Number; var _local8:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); var _local9:Number = (_arg1.dt * m_impulse.x); var _local10:Number = (_arg1.dt * m_impulse.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ return (m_impulse); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local2:b2Body = m_body2; _local3 = _local2.m_xf.R; var _local6:Number = (m_localAnchor.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; var _local8:Number = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); var _local9:Number = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y)); var _local10:Number = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); var _local11:Number = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); var _local12:Number = m_impulse.x; var _local13:Number = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); var _local14:Number = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); var _local15:Number = (_arg1.dt * _local10); var _local16:Number = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } } }//package Box2D.Dynamics.JointsSection 57//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var timeStep:Number; public var target:b2Vec2; public var maxForce:Number; public var dampingRatio:Number; public var frequencyHz: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.JointsSection 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_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_refAngle:Number; public var m_torque:Number; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_angularMass:Number; public var m_maxMotorForce:Number; public var m_localYAxis1:b2Vec2; public var m_force:Number; public var m_motorMass:Number; public var m_upperTranslation:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitState:int; public var m_linearMass:Number; public var m_motorJacobian:b2Jacobian; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_enableMotor:Boolean; public var m_linearJacobian:b2Jacobian; 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 SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local8:Number; var _local11:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = _local2.m_invMass; var _local5:Number = _local3.m_invMass; var _local6:Number = _local2.m_invI; var _local7:Number = _local3.m_invI; var _local9:Number = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local10:Number = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); _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)); var _local12:Number = (_local3.m_angularVelocity - _local2.m_angularVelocity); var _local13:Number = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); var _local14:Number = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22 = m_body1.m_xf.R; var _local2:Number = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); var _local3:Number = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); var _local4:Number = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); var _local5:Number = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local9:b2Mat22; var _local10:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = _local3.m_invMass; var _local6:Number = _local4.m_invMass; var _local7:Number = _local3.m_invI; var _local8:Number = _local4.m_invI; _local9 = _local3.m_xf.R; var _local11:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local12:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; var _local13:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local14:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; var _local15:Number = (_local3.m_sweep.c.x + _local11); var _local16:Number = (_local3.m_sweep.c.y + _local12); var _local17:Number = (_local4.m_sweep.c.x + _local13); var _local18:Number = (_local4.m_sweep.c.y + _local14); var _local19:Number = (_local17 - _local15); var _local20:Number = (_local18 - _local16); _local9 = _local3.m_xf.R; var _local21:Number = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); var _local22:Number = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); var _local23:Number = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local24:Number = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); var _local25:Number = b2Math.b2Abs(_local23); var _local26:Number = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); var _local27:Number = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local28:Number = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; _local4 = _local2.m_xf.R; var _local14:Number = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); var _local15:Number = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); var _local16:Number = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); var _local17:Number = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorForce():Number{ return (m_motorForce); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } } }//package Box2D.Dynamics.JointsSection 59//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PrismaticJointDef extends b2JointDef { public var motorSpeed:Number; public var localAxis1:b2Vec2; public var referenceAngle:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var maxMotorForce:Number; 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.JointsSection 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_limitState1:int; public var m_limitState2:int; public var m_ground:b2Body; public var m_maxLength2:Number; public var m_maxLength1:Number; public var m_limitPositionImpulse1:Number; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_constant:Number; public var m_positionImpulse: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_limitMass1:Number; public var m_limitMass2:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_limitForce1:Number; public var m_limitForce2:Number; public var m_u2:b2Vec2; 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 = 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 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local3:b2Mat22; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local5:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local6:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local7:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local23:Number = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u1.Set((_local12 - _local4), (_local13 - _local5)); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local16 = m_u1.Length(); _local17 = m_u2.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local16)); } else { m_u1.SetZero(); }; if (_local17 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local17)); } else { m_u2.SetZero(); }; _local18 = ((m_constant - _local16) - (m_ratio * _local17)); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_pulleyMass) * _local18); _local20 = m_positionImpulse; m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19)); _local19 = (m_positionImpulse - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local14 = ((-(m_ratio) * _local19) * m_u2.x); _local15 = ((-(m_ratio) * _local19) * m_u2.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.SynchronizeTransform(); _local2.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); m_u1.Set((_local12 - _local4), (_local13 - _local5)); _local16 = m_u1.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local16)); m_u1.y = (m_u1.y * (1 / _local16)); } else { m_u1.SetZero(); }; _local18 = (m_maxLength1 - _local16); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local21 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local21); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local2.m_sweep.c.x + _local5); var _local11:Number = (_local2.m_sweep.c.y + _local6); var _local12:Number = (_local3.m_sweep.c.x + _local8); var _local13:Number = (_local3.m_sweep.c.y + _local9); var _local14:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local15:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local16:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local17:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); var _local18:Number = m_u1.Length(); var _local19:Number = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; var _local20:Number = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; var _local21:Number = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); var _local22:Number = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function GetReactionTorque():Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } public function GetLength1():Number{ var _local1:b2Vec2 = m_body1.GetWorldPoint(m_localAnchor1); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetLength2():Number{ var _local1:b2Vec2 = m_body2.GetWorldPoint(m_localAnchor2); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.JointsSection 61//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength1:Number; public var maxLength2:Number; public var length1:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var ratio:Number; public var length2:Number; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); var _local8:Number = (_arg5.x - _arg3.x); var _local9:Number = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); var _local10:Number = (_arg6.x - _arg4.x); var _local11:Number = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; var _local12:Number = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.JointsSection 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_pivotMass:b2Mat22; public var m_motorForce:Number; 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_enableMotor:Boolean; public var m_referenceAngle:Number; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_upperAngle:Number; public var m_lowerAngle:Number; public var m_maxMotorTorque: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 SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local10:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local11:Number = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); var _local12:Number = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); var _local13:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); var _local14:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); var _local15:Number = (_arg1.dt * _local13); _local16 = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function 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 _local6:b2Mat22; var _local25:Number; var _local26:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = 0; _local6 = _local3.m_xf.R; var _local7:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local9:Number = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; var _local10:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local11:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; var _local12:Number = (_local3.m_sweep.c.x + _local7); var _local13:Number = (_local3.m_sweep.c.y + _local8); var _local14:Number = (_local4.m_sweep.c.x + _local10); var _local15:Number = (_local4.m_sweep.c.y + _local11); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); var _local18:Number = _local3.m_invMass; var _local19:Number = _local4.m_invMass; var _local20:Number = _local3.m_invI; var _local21:Number = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); var _local22:Number = tImpulse.x; var _local23:Number = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local24:Number = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } 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)); } public function GetMotorTorque():Number{ return (m_motorForce); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local7:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_limitForce); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } } }//package Box2D.Dynamics.JointsSection 63//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2RevoluteJointDef extends b2JointDef { public var upperAngle:Number; public var enableMotor:Boolean; public var referenceAngle:Number; public var motorSpeed:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var lowerAngle:Number; public var maxMotorTorque:Number; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.JointsSection 64//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import flash.geom.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; public class b2Body { public var m_next:b2Body; public var m_xf:b2XForm; 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_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_shapeCount:int; public var m_angularDamping:Number; public var m_invI:Number; public var m_linearVelocity:b2Vec2; public var m_sleepTime:Number; 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){ 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_xf.scale = _arg1.scale; m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.x - (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{ m_xf.R.Set(m_sweep.a); var _local1:b2Mat22 = m_xf.R; var _local2:b2Vec2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function GetInertia():Number{ return (m_I); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; var _local2:Number = 0; var _local3:Number = 0; var _local4:b2MassData = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); var _local5:b2Mat22 = m_xf.R; var _local6:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; var _local7:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function 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 _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); var _local4:b2Mat22 = m_xf.R; var _local5:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); var _local6:Boolean; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function 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 _local4:b2Shape; var _local1:b2XForm = s_xf1; _local1.R.Set(m_sweep.a0); var _local2:b2Mat22 = _local1.R; var _local3:b2Vec2 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); var _local5:Boolean; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function 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 GetAngularVelocity():Number{ return (m_angularVelocity); } public function GetMass():Number{ return (m_mass); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetShapeList():b2Shape{ return (m_shapeList); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; var _local5:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function GetTransform():Matrix{ var _local1:Number = m_xf.scale; return (new Matrix(1, 0, 0, 1, (m_xf.position.x * _local1), (m_xf.position.y * _local1))); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetNext():b2Body{ return (m_next); } 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 = 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{ if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); var _local2:b2Shape = m_shapeList; var _local3:b2Shape; var _local4:Boolean; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_shapeList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function 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 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorld():b2World{ return (m_world); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//package Box2D.DynamicsSection 65//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2BodyDef { public var angularDamping:Number; public var isSleeping:Boolean; public var position:b2Vec2; public var scale:Number; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var angle:Number; public var linearDamping:Number; public var massData:b2MassData; public var fixedRotation:Boolean; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; scale = 1; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.DynamicsSection 66//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.DynamicsSection 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 = _arg1.GetFilterData(); var _local4:b2FilterData = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; var _local5:Boolean = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.DynamicsSection 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.DynamicsSection 69//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; 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 PairRemoved(_arg1, _arg2, _arg3):void{ if (_arg3 == null){ return; }; var _local4:b2Contact = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local7:b2Body; var _local8:b2Body; var _local9:Array; var _local10:b2ContactPoint; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2Vec2; var _local16:b2Vec2; var _local2:b2Shape = _arg1.m_shape1; var _local3:b2Shape = _arg1.m_shape2; var _local4:int = _arg1.m_manifoldCount; if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = _local2.m_body; _local8 = _local3.m_body; _local9 = _arg1.GetManifolds(); _local10 = s_evalCP; _local10.shape1 = _arg1.m_shape1; _local10.shape2 = _arg1.m_shape1; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; var _local5:b2Body = _local2.m_body; var _local6:b2Body = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape = (_arg1 as b2Shape); var _local4:b2Shape = (_arg2 as b2Shape); var _local5:b2Body = _local3.m_body; var _local6:b2Body = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; var _local7:b2Contact = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } public function Collide():void{ var _local2:b2Body; var _local3:b2Body; var _local1:b2Contact = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.DynamicsSection 70//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_drawFlags:uint; public var m_lineThickness:Number;// = 1 public var m_drawScale:Number;// = 1 public var m_sprite:Sprite; 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_drawFlags = 0; } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } 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 DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } public function 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 GetFlags():uint{ return (m_drawFlags); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } } }//package Box2D.DynamicsSection 71//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeShape(_arg1:b2Shape):void{ } public function SayGoodbyeJoint(_arg1:b2Joint):void{ } } }//package Box2D.DynamicsSection 72//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Island { public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies:Array; public var m_joints: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 _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; var _local4:int; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local9:int; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Number; var _local14:Number; var _local15:Number; _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; var _local8:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local8.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local8.SolveVelocityConstraints(); _local9 = 0; while (_local9 < m_jointCount) { _local7 = m_joints[_local9]; _local7.SolveVelocityConstraints(_arg1); _local9++; }; _local5++; }; _local8.FinalizeVelocityConstraints(); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_sweep.c0.SetV(_local6.m_sweep.c); _local6.m_sweep.a0 = _local6.m_sweep.a; _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y)); _local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity)); _local6.SynchronizeTransform(); }; _local5++; }; if (_arg3){ _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local10 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local12 = _local7.SolvePositionConstraints(); _local11 = ((_local11) && (_local12)); _local5++; }; if (((_local10) && (_local11))){ break; }; m_positionIterationCount++; }; }; Report(_local8.m_constraints); if (_arg4){ _local13 = Number.MAX_VALUE; _local14 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local15 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.m_invMass == 0){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local13 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local15)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local14)))){ _local6.m_sleepTime = 0; _local13 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local13 = b2Math.b2Min(_local13, _local6.m_sleepTime); }; }; _local5++; }; if (_local13 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local5:b2Body; var _local6:Boolean; var _local3:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; var _local4:Number = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } }//package Box2D.DynamicsSection 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.DynamicsSection 74//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2World { public var m_inv_dt0:Number; public var m_boundaryListener:b2BoundaryListener; public var m_contactList:b2Contact; public var m_blockAllocator; public var m_contactListener:b2ContactListener; public var m_allowSleep:Boolean; public var m_broadPhase:b2BroadPhase; public var m_destructionListener:b2DestructionListener; public var m_jointCount:int; public var m_bodyCount:int; public var m_lock:Boolean; public var m_positionIterationCount:int; public var m_groundBody:b2Body; public var m_contactCount:int; public var m_debugDraw:b2DebugDraw; public var m_contactFilter:b2ContactFilter; public var m_bodyList:b2Body; public var m_stackAllocator; public var m_jointList:b2Joint; public var m_gravity:b2Vec2; public var m_contactManager:b2ContactManager; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); public static var m_continuousPhysics:Boolean; public static var m_warmStarting:Boolean; private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); public static var m_positionCorrection:Boolean; private static var s_xf:b2XForm = new b2XForm(); public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_positionCorrection = true; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_inv_dt0 = 0; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); var _local4:b2BodyDef = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; var _local2:b2Body = _arg1.m_body1; var _local3:b2Body = _arg1.m_body2; var _local4:b2XForm = _local2.m_xf; var _local5:b2XForm = _local3.m_xf; var _local6:b2Vec2 = _local4.position; var _local7:b2Vec2 = _local5.position; var _local8:b2Vec2 = _arg1.GetAnchor1(); var _local9:b2Vec2 = _arg1.GetAnchor2(); var _local10:b2Color = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function 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 _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local11:b2XForm; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); var _local1:uint = m_debugDraw.GetFlags(); var _local7:b2Vec2 = new b2Vec2(); var _local8:b2Vec2 = new b2Vec2(); var _local9:b2Vec2 = new b2Vec2(); var _local10:b2Color = new b2Color(0, 0, 0); var _local12:b2AABB = new b2AABB(); var _local13:b2AABB = new b2AABB(); var _local14:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; var _local2:b2JointEdge = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; var _local3:b2Shape = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function 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 _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; var _local5:b2Color = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; }; } public function GetContactCount():int{ return (m_contactCount); } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; var _local3:b2Island = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; var _local4:b2Contact = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; var _local5:b2Joint = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; var _local6:int = m_bodyCount; var _local7:Array = new Array(_local6); var _local8:b2Body = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.m_manifoldCount == 0){ } else { _local3.AddContact(_local12.contact); _local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag); _local11 = _local12.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local9; _local9 = (_local9 + 1); var _local16 = _temp2; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; }; _local12 = _local12.next; }; _local13 = _local2.m_jointList; while (_local13) { if (_local13.joint.m_islandFlag == true){ } else { _local3.AddJoint(_local13.joint); _local13.joint.m_islandFlag = true; _local11 = _local13.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local9; _local9 = (_local9 + 1); _local16 = _temp3; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; _local13 = _local13.next; }; }; }; _local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep); if (_local3.m_positionIterationCount > m_positionIterationCount){ m_positionIterationCount = _local3.m_positionIterationCount; }; _local10 = 0; while (_local10 < _local3.m_bodyCount) { _local2 = _local3.m_bodies[_local10]; if (_local2.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local10++; }; }; }; _local8 = _local8.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local14 = _local2.SynchronizeShapes(); if ((((_local14 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array = new Array(_arg3); var _local5:int = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); var _local6:int; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function 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 _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; var _local8:b2Island = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); var _local9:int = m_bodyCount; var _local10:Array = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.m_shape1; _local4 = _local11.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local19 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local19 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local19); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local19 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local19); }; }; _local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep); if ((((_local18 > 0)) && ((_local18 < 1)))){ _local18 = (((1 - _local18) * _local19) + _local18); if (_local18 > 1){ _local18 = 1; }; }; _local11.m_toi = _local18; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){ _local12 = _local11; _local13 = _local18; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.m_manifoldCount == 0){ } else { _local14 = _local5; if (_local14.IsStatic()){ _local14 = _local6; }; _local8.Clear(); _local15 = 0; var _temp1 = _local15; _local15 = (_local15 + 1); var _local22 = _temp1; _local10[_local22] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local15 > 0) { --_local15; _local2 = _local10[_local15]; _local8.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local8.m_contactCount == _local8.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function GetBodyList():b2Body{ return (m_bodyList); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function Validate():void{ m_broadPhase.Validate(); } 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 _local3:b2Body; var _local4:b2Shape; var _local2:b2Joint = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local5:b2Body; var _local6:b2Shape; var _local2:Boolean = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; var _local3:b2Body = _arg1.m_body1; var _local4:b2Body = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function CreateBody(_arg1:b2BodyDef):b2Body{ if (m_lock == true){ return (null); }; var _local2:b2Body = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function Step(_arg1:Number, _arg2:int):void{ m_lock = true; var _local3:b2TimeStep = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; _local3.dtRatio = (m_inv_dt0 * _arg1); _local3.positionCorrection = m_positionCorrection; _local3.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((m_continuousPhysics) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_inv_dt0 = _local3.inv_dt; m_lock = false; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } } }//package Box2D.DynamicsSection 75//IHash (com.hurlant.crypto.hash.IHash) package com.hurlant.crypto.hash { import flash.utils.*; public interface IHash { function toString():String; function getHashSize():uint; function getInputSize():uint; function hash(_arg1:ByteArray):ByteArray; } }//package com.hurlant.crypto.hashSection 76//MD5 (com.hurlant.crypto.hash.MD5) package com.hurlant.crypto.hash { import flash.utils.*; public class MD5 implements IHash { public static const HASH_SIZE:int = 16; private function ff(_arg1:uint, _arg2:uint, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:uint, _arg7:uint):uint{ return (cmn(((_arg2 & _arg3) | (~(_arg2) & _arg4)), _arg1, _arg2, _arg5, _arg6, _arg7)); } private function cmn(_arg1:uint, _arg2:uint, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:uint):uint{ return ((rol((((_arg2 + _arg1) + _arg4) + _arg6), _arg5) + _arg3)); } private function hh(_arg1:uint, _arg2:uint, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:uint, _arg7:uint):uint{ return (cmn(((_arg2 ^ _arg3) ^ _arg4), _arg1, _arg2, _arg5, _arg6, _arg7)); } public function getHashSize():uint{ return (HASH_SIZE); } public function hash(_arg1:ByteArray):ByteArray{ var _local2:uint = (_arg1.length * 8); var _local3:String = _arg1.endian; while ((_arg1.length % 4) != 0) { _arg1[_arg1.length] = 0; }; _arg1.position = 0; var _local4:Array = []; _arg1.endian = Endian.LITTLE_ENDIAN; var _local5:uint; while (_local5 < _arg1.length) { _local4.push(_arg1.readUnsignedInt()); _local5 = (_local5 + 4); }; var _local6:Array = core_md5(_local4, _local2); var _local7:ByteArray = new ByteArray(); _local7.endian = Endian.LITTLE_ENDIAN; _local5 = 0; while (_local5 < 4) { _local7.writeUnsignedInt(_local6[_local5]); _local5++; }; _arg1.length = (_local2 / 8); _arg1.endian = _local3; return (_local7); } private function gg(_arg1:uint, _arg2:uint, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:uint, _arg7:uint):uint{ return (cmn(((_arg2 & _arg4) | (_arg3 & ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } public function toString():String{ return ("md5"); } public function getInputSize():uint{ return (64); } private function rol(_arg1:uint, _arg2:uint):uint{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } private function ii(_arg1:uint, _arg2:uint, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:uint, _arg7:uint):uint{ return (cmn((_arg3 ^ (_arg2 | ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } private function core_md5(_arg1:Array, _arg2:uint):Array{ var _local8:uint; var _local9:uint; var _local10:uint; var _local11:uint; _arg1[(_arg2 >> 5)] = (_arg1[(_arg2 >> 5)] | (128 << (_arg2 % 32))); _arg1[((((_arg2 + 64) >>> 9) << 4) + 14)] = _arg2; var _local3:uint = 1732584193; var _local4:uint = 4023233417; var _local5:uint = 2562383102; var _local6:uint = 271733878; var _local7:uint; while (_local7 < _arg1.length) { _arg1[_local7] = ((_arg1[_local7]) || (0)); _arg1[(_local7 + 1)] = ((_arg1[(_local7 + 1)]) || (0)); _arg1[(_local7 + 2)] = ((_arg1[(_local7 + 2)]) || (0)); _arg1[(_local7 + 3)] = ((_arg1[(_local7 + 3)]) || (0)); _arg1[(_local7 + 4)] = ((_arg1[(_local7 + 4)]) || (0)); _arg1[(_local7 + 5)] = ((_arg1[(_local7 + 5)]) || (0)); _arg1[(_local7 + 6)] = ((_arg1[(_local7 + 6)]) || (0)); _arg1[(_local7 + 7)] = ((_arg1[(_local7 + 7)]) || (0)); _arg1[(_local7 + 8)] = ((_arg1[(_local7 + 8)]) || (0)); _arg1[(_local7 + 9)] = ((_arg1[(_local7 + 9)]) || (0)); _arg1[(_local7 + 10)] = ((_arg1[(_local7 + 10)]) || (0)); _arg1[(_local7 + 11)] = ((_arg1[(_local7 + 11)]) || (0)); _arg1[(_local7 + 12)] = ((_arg1[(_local7 + 12)]) || (0)); _arg1[(_local7 + 13)] = ((_arg1[(_local7 + 13)]) || (0)); _arg1[(_local7 + 14)] = ((_arg1[(_local7 + 14)]) || (0)); _arg1[(_local7 + 15)] = ((_arg1[(_local7 + 15)]) || (0)); _local8 = _local3; _local9 = _local4; _local10 = _local5; _local11 = _local6; _local3 = ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 7, 3614090360); _local6 = ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 1)], 12, 3905402710); _local5 = ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 17, 606105819); _local4 = ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 3)], 22, 3250441966); _local3 = ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 7, 4118548399); _local6 = ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 5)], 12, 1200080426); _local5 = ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 17, 2821735955); _local4 = ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 7)], 22, 4249261313); _local3 = ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 7, 1770035416); _local6 = ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 9)], 12, 2336552879); _local5 = ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 17, 4294925233); _local4 = ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 11)], 22, 2304563134); _local3 = ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 7, 1804603682); _local6 = ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 13)], 12, 4254626195); _local5 = ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 17, 2792965006); _local4 = ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 15)], 22, 1236535329); _local3 = gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 5, 4129170786); _local6 = gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 6)], 9, 3225465664); _local5 = gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 14, 643717713); _local4 = gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 0)], 20, 3921069994); _local3 = gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 5, 3593408605); _local6 = gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 10)], 9, 38016083); _local5 = gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 14, 3634488961); _local4 = gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 4)], 20, 3889429448); _local3 = gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 5, 568446438); _local6 = gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 14)], 9, 3275163606); _local5 = gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 14, 4107603335); _local4 = gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 8)], 20, 1163531501); _local3 = gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 5, 2850285829); _local6 = gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 2)], 9, 4243563512); _local5 = gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 14, 1735328473); _local4 = gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 12)], 20, 2368359562); _local3 = hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 4, 4294588738); _local6 = hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 8)], 11, 2272392833); _local5 = hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 16, 1839030562); _local4 = hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 14)], 23, 4259657740); _local3 = hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 4, 2763975236); _local6 = hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 4)], 11, 1272893353); _local5 = hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 16, 4139469664); _local4 = hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 10)], 23, 3200236656); _local3 = hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 4, 681279174); _local6 = hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 0)], 11, 3936430074); _local5 = hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 16, 3572445317); _local4 = hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 6)], 23, 76029189); _local3 = hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 4, 3654602809); _local6 = hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 12)], 11, 3873151461); _local5 = hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 16, 530742520); _local4 = hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 2)], 23, 3299628645); _local3 = ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 6, 4096336452); _local6 = ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 7)], 10, 1126891415); _local5 = ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 15, 2878612391); _local4 = ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 5)], 21, 4237533241); _local3 = ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 6, 1700485571); _local6 = ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 3)], 10, 2399980690); _local5 = ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 15, 4293915773); _local4 = ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 1)], 21, 2240044497); _local3 = ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 6, 1873313359); _local6 = ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 15)], 10, 4264355552); _local5 = ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 15, 2734768916); _local4 = ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 13)], 21, 1309151649); _local3 = ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 6, 4149444226); _local6 = ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 11)], 10, 3174756917); _local5 = ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 15, 718787259); _local4 = ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 9)], 21, 3951481745); _local3 = (_local3 + _local8); _local4 = (_local4 + _local9); _local5 = (_local5 + _local10); _local6 = (_local6 + _local11); _local7 = (_local7 + 16); }; return ([_local3, _local4, _local5, _local6]); } } }//package com.hurlant.crypto.hashSection 77//ArrayUtil (com.hurlant.util.ArrayUtil) package com.hurlant.util { import flash.utils.*; public class ArrayUtil { public static function equals(_arg1:ByteArray, _arg2:ByteArray):Boolean{ if (_arg1.length != _arg2.length){ return (false); }; var _local3:int = _arg1.length; var _local4:int; while (_local4 < _local3) { if (_arg1[_local4] != _arg2[_local4]){ return (false); }; _local4++; }; return (true); } } }//package com.hurlant.utilSection 78//KongregateEvent (com.kongregate.as3.client.events.KongregateEvent) package com.kongregate.as3.client.events { import flash.events.*; public class KongregateEvent extends Event { public static const COMPLETE:String = "component_api_available"; public function KongregateEvent(_arg1:String){ super(_arg1); } } }//package com.kongregate.as3.client.eventsSection 79//AbstractShadowService (com.kongregate.as3.client.services.AbstractShadowService) package com.kongregate.as3.client.services { import flash.events.*; public class AbstractShadowService extends EventDispatcher { protected function alert(_arg1:String, _arg2:String, _arg3="", _arg4:String=""):void{ trace(((((((("Kongregate API: " + _arg1) + ".") + _arg2) + "(") + _arg3) + ") ") + _arg4)); } } }//package com.kongregate.as3.client.servicesSection 80//HighScoreServiceShadow (com.kongregate.as3.client.services.HighScoreServiceShadow) package com.kongregate.as3.client.services { public class HighScoreServiceShadow extends AbstractShadowService implements IHighScoreServices { private var mode:String; public function HighScoreServiceShadow(){ mode = ""; } public function submit(_arg1:Number, _arg2:String=null):void{ alert("IHighScoreServices", "submit", arguments); } public function connect():Boolean{ alert("IKongregateServices", "connect"); return (true); } public function requestList(_arg1:Function):void{ alert("IHighScoreServices", "requestList", "", (("[Mode: " + mode) + "]")); _arg1({success:false}); } public function setMode(_arg1:String):void{ alert("IHighScoreServices", "setMode", arguments); this.mode = _arg1; } } }//package com.kongregate.as3.client.servicesSection 81//IHighScoreServices (com.kongregate.as3.client.services.IHighScoreServices) package com.kongregate.as3.client.services { public interface IHighScoreServices { function setMode(_arg1:String):void; function submit(_arg1:Number, _arg2:String=null):void; function requestList(_arg1:Function):void; } }//package com.kongregate.as3.client.servicesSection 82//IKongregateServices (com.kongregate.as3.client.services.IKongregateServices) package com.kongregate.as3.client.services { import flash.events.*; public interface IKongregateServices extends IEventDispatcher { function getPlayerInfo(_arg1:Function):void; function connect(_arg1:Number=-1):Boolean; } }//package com.kongregate.as3.client.servicesSection 83//IStatServices (com.kongregate.as3.client.services.IStatServices) package com.kongregate.as3.client.services { public interface IStatServices { function submitArray(_arg1:Array):void; function submit(_arg1:String, _arg2:Number):void; } }//package com.kongregate.as3.client.servicesSection 84//IUserServices (com.kongregate.as3.client.services.IUserServices) package com.kongregate.as3.client.services { public interface IUserServices { function getName():String; function getPlayerInfo(_arg1:Function):void; } }//package com.kongregate.as3.client.servicesSection 85//KongregateServiceShadow (com.kongregate.as3.client.services.KongregateServiceShadow) package com.kongregate.as3.client.services { public class KongregateServiceShadow extends AbstractShadowService implements IKongregateServices { public function getName():String{ alert("IKongregateServices", "getName"); return ("Guest"); } public function connect(_arg1:Number=-1):Boolean{ alert("IKongregateServices", "connect", arguments); return (true); } public function getPlayerInfo(_arg1:Function):void{ alert("IKongregateServices", "getPlayerInfo"); _arg1(new Object()); } } }//package com.kongregate.as3.client.servicesSection 86//StatServiceShadow (com.kongregate.as3.client.services.StatServiceShadow) package com.kongregate.as3.client.services { public class StatServiceShadow extends AbstractShadowService implements IStatServices { public function submitArray(_arg1:Array):void{ alert("IStatServices", "submitArray", arguments); } public function submit(_arg1:String, _arg2:Number):void{ alert("IStatServices", "submitStat", arguments); } } }//package com.kongregate.as3.client.servicesSection 87//UserServiceShadow (com.kongregate.as3.client.services.UserServiceShadow) package com.kongregate.as3.client.services { public class UserServiceShadow extends AbstractShadowService implements IUserServices { public function getName():String{ alert("UserService", "getName"); return ("Guest"); } public function getPlayerInfo(_arg1:Function):void{ alert("UserService", "getPlayerInfo"); _arg1({isGuest:true, name:"Guest", points:0, level:0, isMode:false, isAdmin:false, isDeveloper:false, avatarPath:"", chatAvatarPath:""}); } } }//package com.kongregate.as3.client.servicesSection 88//IAPIBootstrap (com.kongregate.as3.client.IAPIBootstrap) package com.kongregate.as3.client { import flash.events.*; import flash.display.*; public interface IAPIBootstrap { function init(_arg1:Event=null, _arg2:Stage=null):void; function hideLog():void; function showLog(_arg1:int=0):void; } }//package com.kongregate.as3.clientSection 89//KongregateAPI (com.kongregate.as3.client.KongregateAPI) package com.kongregate.as3.client { import flash.events.*; import flash.display.*; import flash.utils.*; import com.kongregate.as3.client.services.*; import flash.net.*; import com.kongregate.as3.client.events.*; import flash.system.*; import flash.errors.*; public class KongregateAPI extends Sprite { private const VERSION:Number = 1; private var loader:Loader; private var loadedDomain:ApplicationDomain; private static const CLASS_USER:String = "com.kongregate.as3.client.services.UserServices"; private static const CLASS_STATS:String = "com.kongregate.as3.client.services.StatServices"; private static const CLASS_SERVICES:String = "com.kongregate.as3.client.services.KongregateServices"; private static const CLASS_SCORES:String = "com.kongregate.as3.client.services.HighScoreServices"; private static const DEBUG_API_URL:String = "//Linuxpc/kongregate/public/flash/API_AS3.swf"; private static var _connected:Boolean; private static var kUser:IUserServices; private static var _loaded:Boolean; private static var kServices:IKongregateServices; private static var kScores:IHighScoreServices; private static var mInstance:KongregateAPI; private static var kStats:IStatServices; private static var kAPI:IAPIBootstrap; public function KongregateAPI(){ if (mInstance != null){ throw (new Error("Warning: KongregateAPI has been added to stage more than once or accessed improperly. Use getInstance() or a stage reference to access.")); }; mInstance = this; this.addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true); } public function get loaded():Boolean{ return (_loaded); } public function get connected():Boolean{ return (_connected); } private function alertConnected(_arg1:TimerEvent=null):void{ var _local2:KongregateEvent; var _local3:Boolean; _local2 = new KongregateEvent(KongregateEvent.COMPLETE); _local3 = this.dispatchEvent(_local2); } private function init(_arg1:Event):void{ var _local2:Object; var _local3:String; var _local4:URLRequest; var _local5:LoaderContext; this.removeEventListener(Event.ADDED_TO_STAGE, init); _loaded = false; _connected = false; _local2 = LoaderInfo(root.loaderInfo).parameters; _local3 = _local2.api_path; if (_local3 == null){ trace("Alert: Kongregate API could not be loaded, due to local testing. API will load when the game is uploaded."); createShadowServices(); return; }; Security.allowDomain("*.kongregate.com"); Security.allowDomain("kongregatetrunk.com"); _local4 = new URLRequest(_local3); _local5 = new LoaderContext(false); _local5.applicationDomain = ApplicationDomain.currentDomain; _local5.securityDomain = SecurityDomain.currentDomain; loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); loader.load(_local4, _local5); } public function get api():IAPIBootstrap{ return (kAPI); } private function loadComplete(_arg1:Event):void{ getServices(); } public function get scores():IHighScoreServices{ return (kScores); } private function ioErrorHandler(_arg1:IOErrorEvent):void{ throw (new IOError(("API file not found. " + _arg1))); } public function get services():IKongregateServices{ return (kServices); } public function get stats():IStatServices{ return (kStats); } private function createShadowServices():void{ var _local1:Timer; trace(">>> Kongregate Shadow Services instantiated for local development.."); kServices = new KongregateServiceShadow(); kScores = new HighScoreServiceShadow(); kStats = new StatServiceShadow(); kUser = new UserServiceShadow(); _local1 = new Timer(200, 1); _local1.addEventListener(TimerEvent.TIMER_COMPLETE, alertConnected); _local1.start(); _connected = true; } public function get user():IUserServices{ return (kUser); } private function getServices():void{ var _local1:ApplicationDomain; var _local2:*; var _local3:*; var _local4:*; var _local5:*; _local1 = ApplicationDomain.currentDomain; kAPI = IAPIBootstrap(loader.getChildAt(0)); this.addChild(loader); _local2 = _local1.getDefinition(CLASS_SERVICES); trace(_local2); kServices = _local2.getInstance(); _local3 = _local1.getDefinition(CLASS_SCORES); kScores = _local3.getInstance(); _local4 = _local1.getDefinition(CLASS_STATS); kStats = _local4.getInstance(); _local5 = _local1.getDefinition(CLASS_USER); kUser = _local5.getInstance(); kServices.connect(VERSION); _loaded = true; _connected = true; alertConnected(); } public static function getInstance():KongregateAPI{ if (!mInstance){ throw (new IllegalOperationError("You must add the Kongregate API component to the stage before attempting to access it.")); }; return (mInstance); } } }//package com.kongregate.as3.clientSection 90//ButtonFlame (effects.ButtonFlame) package effects { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import flash.filters.*; public class ButtonFlame extends Bitmap { private const DEST:Point; private const MATRIX_3x5; private var snd_loop:Sound; private var cFilter:ConvolutionFilter; private var isTurningOff:Boolean; private var backBuffer:BitmapData; private var frontBuffer:BitmapData; private var W2:int; private var screenBuffer:BitmapData; private var fireSpread:int; private var FLAME_HEIGHT:int; private var offTimer:Timer; private var SOURCE:Rectangle; private var snd_tfm:SoundTransform; private var snd_stop:Sound; private var isOn:Boolean; private var snd_start:Sound; private var SPARKS_LEFT:int; private var currChannel:SoundChannel; private var SPARKS_RIGHT:int; private var FLAME_WIDTH:int; private var palette:Array; public function ButtonFlame(_arg1:int, _arg2:int){ DEST = new Point(0, 0); MATRIX_3x5 = new Array(0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0); cFilter = new ConvolutionFilter(3, 5, MATRIX_3x5, 4.3, -2, false, false, 4278190335, 0); palette = new Array(); offTimer = new Timer(1100, 1); snd_start = new MainButton_Start(); snd_loop = new MainButton_Loop(); snd_stop = new MainButton_Stop(); snd_tfm = new SoundTransform(0.5, 0); super(null, "auto", true); FLAME_WIDTH = _arg1; FLAME_HEIGHT = _arg2; W2 = (_arg1 / 2); SOURCE = new Rectangle(0, 0, FLAME_WIDTH, FLAME_HEIGHT); backBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, false, 0xFF); frontBuffer = backBuffer.clone(); screenBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, true, 0); bitmapData = screenBuffer; offTimer.addEventListener(TimerEvent.TIMER, turnOffFlame); this.addEventListener(Event.ENTER_FRAME, update); isOn = false; initpalette(); } private function handleOnComplete(_arg1:Event):void{ currChannel.removeEventListener(Event.SOUND_COMPLETE, handleOnComplete); currChannel = snd_loop.play(0, int.MAX_VALUE, snd_tfm); } private function initpalette(){ var _local1:Sprite = new TransparentFlamePalette(); var _local2:BitmapData = new BitmapData(0x0100, 10, true, 0); _local2.draw(_local1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = uint(_local2.getPixel32(_local3, 1)); _local3++; }; _local2.dispose(); } private function turnOffFlame(_arg1:TimerEvent):void{ isOn = false; } public function update(_arg1:Event):void{ var _local4:uint; var _local5:uint; if (!isOn){ return; }; var _local2:uint = (FLAME_HEIGHT - 8); if (isTurningOff){ } else { if (fireSpread < W2){ fireSpread = (fireSpread + 10); frontBuffer.lock(); _local4 = 0; while (_local4 < fireSpread) { _local5 = 0; while (_local5 < 6) { frontBuffer.setPixel(uint(((((Math.random() * fireSpread) * 2) + W2) - fireSpread)), (_local2 + _local5), (Math.random() * 15)); _local5++; }; _local4++; }; frontBuffer.unlock(); } else { frontBuffer.lock(); _local4 = 0; while (_local4 < W2) { _local5 = 0; while (_local5 < 7) { frontBuffer.setPixel(uint((Math.random() * FLAME_WIDTH)), (_local2 + _local5), (Math.random() * 25)); _local5++; }; _local4++; }; frontBuffer.unlock(); }; }; backBuffer.applyFilter(frontBuffer, SOURCE, DEST, cFilter); screenBuffer.paletteMap(backBuffer, SOURCE, DEST, null, null, palette, null); screenBuffer.threshold(screenBuffer, SOURCE, DEST, "==", 4278190080, 0, 4278190080, true); var _local3:BitmapData = frontBuffer; frontBuffer = backBuffer.clone(); _local3.dispose(); } public function flameOn():void{ fireSpread = 0; isOn = true; isTurningOff = false; currChannel = snd_start.play(0, 0, snd_tfm); currChannel.addEventListener(Event.SOUND_COMPLETE, handleOnComplete); if (offTimer.running){ offTimer.reset(); }; } public function flameOff():void{ isTurningOff = true; currChannel.removeEventListener(Event.SOUND_COMPLETE, handleOnComplete); currChannel.stop(); currChannel = snd_stop.play(0, 0, snd_tfm); offTimer.start(); } } }//package effectsSection 91//CreditFlame (effects.CreditFlame) package effects { import flash.display.*; import flash.geom.*; import flash.filters.*; public class CreditFlame extends Bitmap { private const DEST:Point; private const MATRIX_3x5; private var cFilter:ConvolutionFilter; private var SPARKS:int; private var backBuffer:BitmapData; private var frontBuffer:BitmapData; private var screenBuffer:BitmapData; private var FLAME_HEIGHT:int; private var SOURCE:Rectangle; private var FLAME_WIDTH:int; private var palette:Array; public var running:Boolean; public function CreditFlame(_arg1:int, _arg2:int):void{ DEST = new Point(0, 0); MATRIX_3x5 = new Array(0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0); cFilter = new ConvolutionFilter(3, 5, MATRIX_3x5, 4.6, -1, false, false, 4278190335, 0); palette = new Array(); super(null, "auto", true); FLAME_WIDTH = _arg1; FLAME_HEIGHT = _arg2; SPARKS = (FLAME_WIDTH / 2); SOURCE = new Rectangle(0, 0, FLAME_WIDTH, FLAME_HEIGHT); frontBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, false, 0xFF); screenBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, true, 0); bitmapData = screenBuffer; initpalette(); running = true; } public function update():void{ var _local1:uint; var _local2:uint; var _local3:uint; if (running){ _local1 = (FLAME_HEIGHT - 7); frontBuffer.lock(); _local2 = 0; while (_local2 < SPARKS) { _local3 = 0; while (_local3 < 6) { frontBuffer.setPixel(uint((Math.random() * FLAME_WIDTH)), (_local1 + _local3), (Math.random() * 25)); _local3++; }; _local2++; }; frontBuffer.unlock(); }; frontBuffer.applyFilter(frontBuffer, SOURCE, DEST, cFilter); screenBuffer.paletteMap(frontBuffer, SOURCE, DEST, null, null, palette, null); screenBuffer.threshold(screenBuffer, SOURCE, DEST, "==", 4278190080, 0, 4278190080, true); } public function dispose():void{ bitmapData = null; frontBuffer.dispose(); screenBuffer.dispose(); palette.length = 0; frontBuffer = null; screenBuffer = null; palette = null; cFilter = null; } private function initpalette():void{ var _local1:Sprite = new TransparentCreditFlamePalette(); var _local2:BitmapData = new BitmapData(0x0100, 10, true, 0); _local2.draw(_local1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = uint(_local2.getPixel32(_local3, 1)); _local3++; }; _local2.dispose(); } } }//package effectsSection 92//Fireball (effects.Fireball) package effects { import flash.display.*; import flash.geom.*; import flash.media.*; import flash.filters.*; public class Fireball extends Bitmap { private const FLAME_WIDTH:int = 400; private const PT_ZERO:Point; private const FLAME_HEIGHT:int = 500; private const SCREEN_RECT:Rectangle; private const MATRIX_3x5; private var cFilter:ConvolutionFilter; private var backBuffer:BitmapData; private var frontBuffer:BitmapData; private var screenBuffer:BitmapData; private var flareTfm:SoundTransform; private var targetVol:Number; private var flare:Sound; private var masker:BitmapData; private var offset:Number; private var SOURCE:Rectangle; private var spark:BitmapData; private var DEST:Point; private var torches:Array; private var noiseSeed:uint;// = 0 private var soundOn:Boolean; private var flareChannel:SoundChannel; private var palette:Array; public function Fireball():void{ MATRIX_3x5 = new Array(0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0); SCREEN_RECT = new Rectangle(0, 0, FLAME_WIDTH, FLAME_HEIGHT); PT_ZERO = new Point(0, 0); cFilter = new ConvolutionFilter(3, 5, MATRIX_3x5, 4.35, -2, true, false, 0xFF, 1); backBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, false, 0xFF); frontBuffer = backBuffer.clone(); screenBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, false, 0); palette = new Array(); super(); initPalette(); var _local1:Sprite = new NoiseGenerator(); spark = new BitmapData(_local1.width, _local1.height, false, 0xFF); masker = new BitmapData(_local1.width, _local1.height, false); masker.draw(_local1); bitmapData = screenBuffer; SOURCE = new Rectangle(0, 0, FLAME_WIDTH, FLAME_HEIGHT); DEST = new Point(0, 0); offset = (spark.width / 2); torches = new Array(); flare = new Flare(); flareTfm = new SoundTransform(0, 0); flareChannel = flare.play(0, int.MAX_VALUE, flareTfm); targetVol = 0; soundOn = true; } public function scale(_arg1:Number){ var _local2:Matrix = new Matrix(_arg1, 0, 0, _arg1, 0, 0); var _local3:Sprite = new NoiseGenerator(); spark = new BitmapData((_local3.width * _arg1), (_local3.height * _arg1), false, 0xFF); masker = new BitmapData((_local3.width * _arg1), (_local3.height * _arg1), false); masker.draw(_local3, _local2); offset = (spark.width / 2); } public function update(_arg1:Matrix, _arg2:Number):void{ var _local6:Number; var _local7:Number; var _local8:Number; noiseSeed++; var _local3:Number = (_arg2 * 0.1); _local3 = (155 - (_local3 * 155)); if (_local3 < 0){ _local3 = 0; }; spark.noise(noiseSeed, _local3, 0x0100, BitmapDataChannel.BLUE, true); spark.draw(masker, null, null, BlendMode.ADD); _arg1.tx = (_arg1.tx - offset); _arg1.ty = (_arg1.ty - offset); frontBuffer.draw(spark, _arg1, null, BlendMode.MULTIPLY); SOURCE = frontBuffer.getColorBoundsRect(4294967295, 4278190335, false); SOURCE = frontBuffer.generateFilterRect(SOURCE, cFilter); DEST.x = SOURCE.x; DEST.y = SOURCE.y; frontBuffer.applyFilter(frontBuffer, SOURCE, DEST, cFilter); SOURCE.inflate(6, 6); DEST.offset(-6, -6); var _local4:BitmapData = new BitmapData(SOURCE.width, SOURCE.height, false, 0); var _local5:Rectangle = SOURCE.clone(); _local5.x = 0; _local5.y = 0; _local4.paletteMap(frontBuffer, SOURCE, PT_ZERO, null, null, palette); screenBuffer.copyPixels(_local4, _local5, DEST); _local4.dispose(); if (soundOn){ _local6 = (_arg2 - 7.5); _local7 = flareTfm.volume; _local8 = ((_arg1.tx - 200) * 0.0025); targetVol = (((_local6 * _local6) * 0.1) * ((_local6 < 0)) ? -1 : 1); if (targetVol > 1){ targetVol = 1; } else { if (targetVol < 0.05){ targetVol = 0.05; }; }; _local7 = (_local7 + ((targetVol - _local7) * 0.2)); flareTfm.volume = _local7; flareTfm.pan = _local8; flareChannel.soundTransform = flareTfm; }; } public function dispose():void{ flareChannel.stop(); flareChannel = null; flare = null; flareTfm = null; spark.dispose(); masker.dispose(); screenBuffer.dispose(); palette.length = 0; spark = null; masker = null; screenBuffer = null; palette = null; } public function switchPalette(_arg1:Sprite):void{ var _local2:BitmapData = new BitmapData(0x0100, 10, false); _local2.draw(_arg1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = _local2.getPixel(_local3, 2); _local3++; }; _local2.dispose(); } private function initPalette():void{ var _local1:Sprite = new FlamePalette(); var _local2:BitmapData = new BitmapData(0x0100, 10, false); _local2.draw(_local1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = _local2.getPixel(_local3, 2); _local3++; }; _local2.dispose(); } public function stopSound():void{ soundOn = false; if (flareChannel){ flareChannel.stop(); }; } } }//package effectsSection 93//Flame (effects.Flame) package effects { import flash.display.*; import flash.geom.*; import flash.filters.*; public class Flame extends Bitmap { private const DEST:Point; private const MATRIX_3x5; private var screenBuffer:BitmapData; private var backBuffer:BitmapData; private var palette:Array; private var frontBuffer:BitmapData; private var cFilter:ConvolutionFilter; private var FLAME_HEIGHT:int; private var SPARKS:int; private var FLAME_WIDTH:int; private var SOURCE:Rectangle; public function Flame(_arg1:int, _arg2:int){ DEST = new Point(0, 0); MATRIX_3x5 = new Array(0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0); cFilter = new ConvolutionFilter(3, 5, MATRIX_3x5, 4.56, -1, false, false, 4278190335, 0); palette = new Array(); super(null, "auto", true); FLAME_WIDTH = _arg1; FLAME_HEIGHT = _arg2; SOURCE = new Rectangle(0, 0, FLAME_WIDTH, FLAME_HEIGHT); backBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, false, 0xFF); frontBuffer = backBuffer.clone(); screenBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, true, 0); bitmapData = screenBuffer; initpalette(); } private function initpalette(){ var _local1:Sprite = new TransparentFlamePalette(); var _local2:BitmapData = new BitmapData(0x0100, 10, true, 0); _local2.draw(_local1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = uint(_local2.getPixel32(_local3, 1)); _local3++; }; _local2.dispose(); } public function update(_arg1:int){ var _local5:uint; var _local2:uint = (FLAME_HEIGHT - 10); SPARKS = (_arg1 / 2); FLAME_WIDTH = _arg1; frontBuffer.lock(); var _local3:uint; while (_local3 < SPARKS) { _local5 = 0; while (_local5 < 7) { frontBuffer.setPixel(uint((Math.random() * FLAME_WIDTH)), (_local2 + _local5), (Math.random() * 25)); _local5++; }; _local3++; }; frontBuffer.unlock(); backBuffer.applyFilter(frontBuffer, SOURCE, DEST, cFilter); screenBuffer.paletteMap(backBuffer, SOURCE, DEST, null, null, palette, null); screenBuffer.threshold(screenBuffer, SOURCE, DEST, "==", 4278190080, 0, 4278190080, true); var _local4:BitmapData = frontBuffer; frontBuffer = backBuffer.clone(); _local4.dispose(); } } }//package effectsSection 94//MaskedFlame (effects.MaskedFlame) package effects { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.filters.*; public class MaskedFlame extends Bitmap { const DEST:Point; const MATRIX_3x5; private var tfm:ColorTransform; private var noiseSeed:uint; private var frontBuffer:BitmapData; private var palette:Array; var noiseBmp:Bitmap; private var screenBuffer:BitmapData; private var dir:Array; private var offset:Array; private var perlin:BitmapData; private var noiseGenerator:BitmapData; private var SOURCE:Rectangle; private var masker:BitmapData; var noise:Sprite; private var perlinSeed:uint; private var FLAME_HEIGHT:int; private var mtx:Matrix; private var FLAME_WIDTH:int; private var cFilter:ConvolutionFilter; private var skipper:int;// = 0 public function MaskedFlame(_arg1:MovieClip, _arg2:int, _arg3:int){ DEST = new Point(0, 0); MATRIX_3x5 = new Array(0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0); offset = new Array(new Point(0, 0), new Point(0, 0), new Point(0, 0), new Point(0, 0), new Point(0, 0)); dir = new Array(new Point(rnd(), rnd()), new Point(rnd(), rnd()), new Point(rnd(), rnd()), new Point(rnd(), rnd()), new Point(rnd(), rnd())); cFilter = new ConvolutionFilter(3, 5, MATRIX_3x5, 4, -2, false, false, 0xFF, 0); palette = new Array(); noiseSeed = (Math.random() * uint.MAX_VALUE); perlinSeed = (Math.random() * uint.MAX_VALUE); super(null, "always", true); FLAME_WIDTH = _arg2; FLAME_HEIGHT = _arg3; noiseGenerator = new BitmapData(_arg1.flameMask.width, _arg1.flameMask.height, false); masker = new BitmapData(_arg1.flameMask.width, _arg1.flameMask.height, false); perlin = new BitmapData(_arg1.flameMask.width, _arg1.flameMask.height, false); masker.draw(_arg1.flameMask); _arg1.flameMask.visible = false; mtx = new Matrix(1, 0, 0, 1, _arg1.flameMask.x, _arg1.flameMask.y); tfm = new ColorTransform(0.2, 0.2, 0.2); perlin.perlinNoise(5, 30, offset.length, perlinSeed, false, false, 7, true, offset); SOURCE = new Rectangle(0, 0, FLAME_WIDTH, FLAME_HEIGHT); frontBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, false, 0xFF); screenBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, true, 0); bitmapData = perlin; bitmapData = screenBuffer; initPalette(); this.addEventListener(Event.ADDED_TO_STAGE, startFlame); this.addEventListener(Event.REMOVED_FROM_STAGE, stopFlame); _arg1.addChild(this); } private function update(_arg1:Event):void{ noiseSeed++; var _local2:int = offset.length; var _local3:int; while (_local3 < _local2) { offset[_local3] = offset[_local3].add(dir[_local3]); _local3++; }; perlin.perlinNoise(5, 30, offset.length, perlinSeed, false, false, 7, true, offset); noiseGenerator.noise(noiseSeed, 80, 0xFF, 7, true); noiseGenerator.draw(masker, null, null, BlendMode.ADD); noiseGenerator.draw(perlin, null, tfm, BlendMode.ADD); frontBuffer.draw(noiseGenerator, mtx, null, BlendMode.MULTIPLY); frontBuffer.applyFilter(frontBuffer, SOURCE, DEST, cFilter); screenBuffer.paletteMap(frontBuffer, SOURCE, DEST, null, null, palette); screenBuffer.threshold(screenBuffer, SOURCE, DEST, "==", 4278190080, 0, 4278190080, true); } private function stopFlame(_arg1:Event){ dispose(); } private function dispose():void{ this.removeEventListener(Event.ENTER_FRAME, update); perlin.dispose(); noiseGenerator.dispose(); frontBuffer.dispose(); screenBuffer.dispose(); palette.length = 0; perlin = null; noiseGenerator = null; frontBuffer = null; screenBuffer = null; } private function initPalette(){ var _local1:Sprite = new TransparentFlamePalette(); var _local2:BitmapData = new BitmapData(0x0100, 10, true, 0); _local2.draw(_local1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = uint(_local2.getPixel32(_local3, 1)); _local3++; }; _local2.dispose(); } private function rnd():Number{ return ((Math.random() - 0.5)); } private function startFlame(_arg1:Event){ this.addEventListener(Event.ENTER_FRAME, update); } } }//package effectsSection 95//BounceUpPowerUp (game.BounceUpPowerUp) package game { import flash.display.*; public class BounceUpPowerUp extends PowerUpBase { public var powerUpHitArea:MovieClip; public function BounceUpPowerUp():void{ } override protected function applyEffect():void{ owner.bounceBonus(); } override protected function initPalette():void{ var _local1:Sprite = new TransparentGreenFlamePalette(); var _local2:BitmapData = new BitmapData(0x0100, 10, true, 0); _local2.draw(_local1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = uint(_local2.getPixel32(_local3, 2)); _local3++; }; _local2.dispose(); } override protected function hideHitArea():void{ powerUpHitArea.visible = false; } } }//package gameSection 96//Burnable (game.Burnable) package game { import flash.events.*; import flash.display.*; import flash.geom.*; import Box2D.Dynamics.*; import flash.utils.*; import flash.media.*; import flash.filters.*; public class Burnable extends Sprite implements IFireEmitter { protected const PT_ZERO:Point; protected const MATRIX_3x5; protected const FLAME_HEIGHT:int = 35; protected const SCREEN_RECT:Rectangle; protected const FLAME_WIDTH:int = 20; protected var dissolveRandom:int; protected var disintegrateCounter:int; protected var SOURCE:Rectangle; protected var neighbour:Array; protected var DEST:Point; protected var targetBitmap:BitmapData; public var dummy:MovieClip; protected var DISSOLVE_SOURCE:Rectangle; protected var noiseSeed:uint;// = 0 protected var mtx:Matrix; protected var burning:Boolean; protected var cFilter:ConvolutionFilter; public var burnTime:int; protected var fire:Bitmap; protected var display:Bitmap; protected var timer:Timer; protected var frontBuffer:BitmapData; protected var dissolveCounter:int; protected var screenBuffer:BitmapData; protected var alive:Boolean; public var blockBody:b2Body; protected var owner:GameLevel; protected var origBitmap:BitmapData; protected var noiseMin:int; protected var spark:BitmapData; public var spreadTime:int; protected var lastListener:Function; protected var dissolving:Boolean; protected var palette:Array; protected static var burnCount:int; protected static var crackleTfm:SoundTransform; protected static var targetVol:Number; protected static var isPlaying:Boolean; protected static var crackleChannel:SoundChannel; protected static var crackle:Sound; public function Burnable():void{ MATRIX_3x5 = new Array(0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0); SCREEN_RECT = new Rectangle(0, 0, FLAME_WIDTH, FLAME_HEIGHT); PT_ZERO = new Point(0, 0); cFilter = new ConvolutionFilter(3, 5, MATRIX_3x5, 4.35, -2, true, false, 0xFF, 1); frontBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, false, 0xFF); screenBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, true, 0); palette = new Array(); DISSOLVE_SOURCE = new Rectangle(0, 0, 20, 20); super(); neighbour = new Array(); burning = false; alive = true; disintegrateCounter = -1; } public function drawSpark():void{ if (!burning){ return; }; if (alive){ noiseSeed++; spark.noise(noiseSeed, noiseMin, 0xFF, BitmapDataChannel.BLUE, true); frontBuffer.draw(spark, mtx, null, BlendMode.MULTIPLY); }; frontBuffer.applyFilter(frontBuffer, SOURCE, DEST, cFilter); screenBuffer.paletteMap(frontBuffer, SOURCE, PT_ZERO, null, null, palette); screenBuffer.threshold(screenBuffer, SOURCE, DEST, "==", 4278190080, 0, 4278190080, true); if (dissolveCounter > 0){ dissolveCounter--; dissolveRandom = origBitmap.pixelDissolve(targetBitmap, DISSOLVE_SOURCE, DEST, dissolveRandom, 30); } else { if (disintegrateCounter > 0){ disintegrateCounter--; dissolveRandom = origBitmap.pixelDissolve(origBitmap, DISSOLVE_SOURCE, DEST, dissolveRandom, 30, 0); } else { if (disintegrateCounter == 0){ removeChild(display); }; }; }; updateSound(); } public function init(_arg1:BitmapData, _arg2:BitmapData):void{ var _local4:Array; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:DisplayObjectContainer; var _local12:DisplayObjectContainer; var _local3:DisplayObjectContainer = DisplayObjectContainer(owner); var _local5:Point = new Point(x, y); var _local6:Point = new Point(); _local5 = this.localToGlobal(_local5); _local7 = 0; while (_local7 < 3) { _local6.y = ((y - 20) + (_local7 * 20)); _local8 = 0; while (_local8 < 3) { _local6.x = ((x - 20) + (_local8 * 20)); _local4 = _local3.getObjectsUnderPoint(_local6); _local9 = _local4.length; if (_local9 > 0){ _local10 = 0; while (_local10 < _local9) { _local11 = _local4[_local10].parent; _local12 = _local4[_local10].parent.parent; if ((((_local11 is Burnable)) && (!((_local11 == this))))){ neighbour.push(_local11); }; if ((((_local12 is Burnable)) && (!((_local12 == this))))){ neighbour.push(_local12); }; _local10++; }; }; _local8++; }; _local7++; }; origBitmap = new BitmapData(20, 20); origBitmap.copyPixels(_arg1, DISSOLVE_SOURCE, DEST, null, null, true); targetBitmap = _arg2; display = new Bitmap(origBitmap); display.x = dummy.x; display.y = dummy.y; addChild(display); removeChild(dummy); dummy = null; _local3.addChild(fire); } protected function updateFireDeath(_arg1:Event):void{ frontBuffer.applyFilter(frontBuffer, SOURCE, DEST, cFilter); screenBuffer.paletteMap(frontBuffer, SOURCE, PT_ZERO, null, null, palette); screenBuffer.threshold(screenBuffer, SOURCE, DEST, "==", 4278190080, 0, 4278190080, true); if (disintegrateCounter > 0){ disintegrateCounter--; dissolveRandom = origBitmap.pixelDissolve(origBitmap, DISSOLVE_SOURCE, DEST, dissolveRandom, 30, 0); } else { removeChild(display); }; updateSound(); } public function dispose(_arg1:Event=null):void{ var e = _arg1; try { owner.removeFire(this); } catch(e:Error) { }; this.visible = false; if (lastListener != null){ timer.removeEventListener(TimerEvent.TIMER, lastListener); }; if (timer){ timer.stop(); timer = null; }; burnCount--; if (burnCount < 0){ burnCount = 0; }; if (burnCount < 12){ targetVol = (burnCount / 12); }; if (crackleChannel){ updateSound(); }; try { fire.parent.removeChild(fire); } catch(e:Error) { }; try { removeChild(display); } catch(e:Error) { }; display = null; frontBuffer.dispose(); screenBuffer.dispose(); spark.dispose(); origBitmap.dispose(); targetBitmap.dispose(); frontBuffer = null; screenBuffer = null; spark = null; origBitmap = null; targetBitmap = null; cFilter = null; palette.length = 0; try { parent.removeChild(this); } catch(e:Error) { }; owner.reportBurnStop(); } public function initSpark(_arg1:GameLevel):void{ owner = _arg1; noiseSeed = (Math.random() * 50000); noiseMin = ((Math.random() * 10) + 160); dissolveRandom = (Math.random() * int.MAX_VALUE); dissolveCounter = 50; spark = new BitmapData(20, 20, false, 0); mtx = new Matrix(1, 0, 0, 1, 0, (FLAME_HEIGHT - 20)); fire = new Bitmap(screenBuffer); fire.x = (x - (width / 2)); fire.y = ((y - FLAME_HEIGHT) + (height / 2)); SOURCE = new Rectangle(0, 0, FLAME_WIDTH, FLAME_HEIGHT); DEST = new Point(); initPalette(); if (!crackle){ crackle = new Crackle(); crackleTfm = new SoundTransform(0, 0); isPlaying = false; targetVol = 0; burnCount = 0; }; } protected function updateSound():void{ var _local1:Number = crackleTfm.volume; _local1 = (_local1 + ((targetVol - _local1) * 0.05)); if (_local1 < 0.0001){ _local1 = 0; }; crackleTfm.volume = _local1; if (((_local1) && (!(isPlaying)))){ isPlaying = true; crackleChannel = crackle.play(0, int.MAX_VALUE, crackleTfm); } else { if (_local1){ crackleChannel.soundTransform = crackleTfm; } else { crackleChannel.stop(); isPlaying = false; }; }; } protected function stopBurning(_arg1:TimerEvent):void{ timer.removeEventListener(TimerEvent.TIMER, stopBurning); blockBody.m_world.DestroyBody(blockBody); alive = false; dissolveRandom = (Math.random() * int.MAX_VALUE); disintegrateCounter = 50; timer.delay = 1200; timer.reset(); timer.addEventListener(TimerEvent.TIMER, dispose); lastListener = dispose; timer.start(); } protected function initPalette():void{ var _local1:Sprite = new TransparentFlamePalette(); var _local2:BitmapData = new BitmapData(0x0100, 10, true, 0); _local2.draw(_local1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = uint(_local2.getPixel32(_local3, 2)); _local3++; }; _local2.dispose(); } protected function spreadFire(_arg1:TimerEvent):void{ var _local2:int; timer.removeEventListener(TimerEvent.TIMER, spreadFire); var _local3:int = neighbour.length; _local2 = 0; while (_local2 < _local3) { neighbour[_local2].burn(); _local2++; }; timer.delay = (burnTime - spreadTime); timer.reset(); timer.addEventListener(TimerEvent.TIMER, stopBurning); lastListener = stopBurning; timer.start(); } public function burn():void{ if (!burning){ burning = true; burnCount++; if (burnCount < 12){ targetVol = (burnCount / 12); }; timer = new Timer((Math.random() * 500), 1); timer.addEventListener(TimerEvent.TIMER, startBurning); lastListener = startBurning; timer.start(); owner.reportBurnStart(); }; } protected function startBurning(_arg1:TimerEvent):void{ timer.removeEventListener(TimerEvent.TIMER, startBurning); timer.delay = spreadTime; timer.reset(); timer.addEventListener(TimerEvent.TIMER, spreadFire); lastListener = spreadFire; timer.start(); } public function addNeighbour(_arg1:DisplayObjectContainer):void{ neighbour.push(_arg1); } public static function stopSound():void{ if (crackleChannel){ crackleChannel.stop(); isPlaying = false; }; } } }//package gameSection 97//ButtonContainer (game.ButtonContainer) package game { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.media.*; import flash.text.*; public class ButtonContainer extends MovieClip { public var btn_Sponsor:SimpleButton; public var button_02:LevelButton; public var button_03:LevelButton; public var button_04:LevelButton; public var button_05:LevelButton; public var button_06:LevelButton; public var button_07:LevelButton; public var button_08:LevelButton; public var button_09:LevelButton; protected var snd_click:Sound; public var btn_mainMenu:SimpleButton; public var button_01:LevelButton; protected var snd_playOver:Sound; public var aced:MovieClip; protected var buttonArray:Array; public var button_10:LevelButton; public var button_11:LevelButton; public var button_12:LevelButton; public var button_13:LevelButton; public var button_14:LevelButton; public var button_15:LevelButton; public var button_16:LevelButton; public var button_17:LevelButton; public var button_18:LevelButton; public var button_19:LevelButton; public var btn_Play:SimpleButton; protected var lastSelected:LevelButton; protected var previewPane:Bitmap; protected var snd_playClick:Sound; public var button_20:LevelButton; public var button_21:LevelButton; public var button_22:LevelButton; public var button_23:LevelButton; public var button_24:LevelButton; public var button_25:LevelButton; public var button_26:LevelButton; public var button_27:LevelButton; public var button_28:LevelButton; public var button_A:BonusLevelButton; public var button_B:BonusLevelButton; public var button_C:BonusLevelButton; public var button_D:BonusLevelButton; public var button_E:BonusLevelButton; public var button_F:BonusLevelButton; public var button_G:BonusLevelButton; public var button_29:LevelButton; public var button_30:LevelButton; public var button_31:LevelButton; public var button_32:LevelButton; public var button_33:LevelButton; public var button_34:LevelButton; public var button_35:LevelButton; public var button_36:LevelButton; public var button_37:LevelButton; public var button_38:LevelButton; public var button_39:LevelButton; public var button_H:BonusLevelButton; public var button_40:LevelButton; protected var snd_playOut:Sound; protected var gameData:SaveFile; public var time:TextField; protected var snd_over:Sound; public function ButtonContainer():void{ snd_over = new Thunk_0(); snd_click = new Thunk_2(); snd_playOver = new Play_Over(); snd_playOut = new Play_Out(); snd_playClick = new Play_Click(); super(); buttonArray = new Array(); previewPane = new Bitmap(); previewPane.x = 190; previewPane.y = 15; var _local1:int = numChildren; addChildAt(previewPane, (_local1 - 2)); aced.visible = false; } protected function handleMainMenu(_arg1:MouseEvent):void{ snd_playClick.play(); dispose(); MovieClip(parent).screenDestination = "menuFrame"; MovieClip(parent).play(); } protected function showPreview(_arg1:LevelButton):void{ var _local2:Class = (getDefinitionByName(("LevelPreview" + _arg1.index)) as Class); var _local3:BitmapData = new _local2(180, 230); var _local4:BitmapData = previewPane.bitmapData; previewPane.bitmapData = _local3; if (_local4){ _local4.dispose(); _local4 = null; }; time.text = ("Best Time: " + convertTime(gameData.levelData[_arg1.arrIndex].time)); var _local5:Boolean = gameData.levelData[_arg1.arrIndex].aced; aced.visible = _local5; if (_local5){ time.appendText("\nA C E D !"); }; } public function init():void{ var _local2:int; var _local3:DisplayObject; var _local4:String; var _local5:int; var _local6:int; var _local7:LevelButton; var _local1:int = numChildren; _local2 = 0; while (_local2 < _local1) { _local3 = getChildAt(_local2); if ((_local3 is BonusLevelButton)){ _local4 = _local3.name.substr(-1); _local5 = (_local4.charCodeAt(0) - 24); _local6 = (_local4.charCodeAt(0) - 65); if (gameData.bonusArray[_local6].unlock){ buttonArray[_local5] = _local3; _local7 = LevelButton(_local3); _local7.arrIndex = _local5; _local7.index = _local4; _local7.text = _local4; _local7.enable(); _local7.addEventListener(MouseEvent.CLICK, handleLevelButton); } else { _local3.visible = false; }; } else { if ((_local3 is LevelButton)){ _local4 = _local3.name.substr(-2); _local5 = int(_local4); buttonArray[_local5] = _local3; _local7 = LevelButton(_local3); _local7.arrIndex = _local5; _local7.index = _local4; _local7.text = _local4; _local7.addEventListener(MouseEvent.CLICK, handleLevelButton); }; }; _local2++; }; btn_Play.addEventListener(MouseEvent.CLICK, handlePlay); btn_Play.addEventListener(MouseEvent.ROLL_OVER, handlePlayOver); btn_Play.addEventListener(MouseEvent.ROLL_OUT, handlePlayOut); btn_mainMenu.addEventListener(MouseEvent.CLICK, handleMainMenu); btn_mainMenu.addEventListener(MouseEvent.ROLL_OVER, handlePlayOver); btn_mainMenu.addEventListener(MouseEvent.ROLL_OUT, handlePlayOut); btn_Sponsor.addEventListener(MouseEvent.CLICK, handleSponsor); btn_Sponsor.addEventListener(MouseEvent.ROLL_OVER, handlePlayOver); btn_Sponsor.addEventListener(MouseEvent.ROLL_OUT, handlePlayOut); } protected function dispose():void{ var _local1:int; var _local3:LevelButton; var _local2:int = buttonArray.length; _local1 = 0; while (_local1 < _local2) { if (buttonArray[_local1]){ _local3 = LevelButton(buttonArray[_local1]); _local3.removeEventListener(MouseEvent.CLICK, handleLevelButton); }; _local1++; }; btn_Play.removeEventListener(MouseEvent.CLICK, handlePlay); buttonArray.length = 0; } protected function convertTime(_arg1:int):String{ var _local2:int = (_arg1 / 1000); var _local3:int = (_local2 / 60); var _local4:int = (_arg1 - (_local2 * 1000)); _local2 = (_local2 - (_local3 * 60)); var _local5:String = ((_local4 < 100)) ? ((_local4 < 10)) ? ("00" + _local4) : ("0" + _local4) : _local4.toString(); var _local6:String = ((_local2 < 10)) ? ("0" + _local2) : _local2.toString(); var _local7:String = ((_local3 < 10)) ? ("0" + _local3) : _local3.toString(); return (((((_local7 + ":") + _local6) + ":") + _local5)); } public function setLevel(_arg1:int):void{ var _local2:LevelButton; var _local3:int; var _local4:int; var _local5:int; if (_arg1 < 40){ _arg1++; } else { _arg1 = 40; }; _local3 = buttonArray.length; if (_local3 > 41){ _local3 = 41; }; _local4 = 1; while (_local4 < _local3) { _local2 = buttonArray[_local4]; if (_local2.arrIndex <= _arg1){ _local2.enable(); _local5 = _local4; } else { _local2.disable(); }; _local4++; }; lastSelected = buttonArray[_local5]; buttonArray[_local5].toggle(); showPreview(buttonArray[_local5]); } protected function handlePlayOut(_arg1:MouseEvent):void{ snd_playOut.play(); } protected function handlePlayOver(_arg1:MouseEvent):void{ snd_playOver.play(); } protected function handlePlay(_arg1:MouseEvent):void{ snd_playClick.play(); dispose(); MovieClip(parent).playLevel(lastSelected.index); } public function set saveData(_arg1:SaveFile):void{ gameData = _arg1; } protected function handleLevelButton(_arg1:MouseEvent):void{ var _local2:LevelButton = LevelButton(_arg1.target); if (_local2.disabled){ return; }; if (lastSelected){ if (lastSelected == _local2){ return; }; lastSelected.toggle(); }; snd_click.play(); lastSelected = _local2; lastSelected.toggle(); showPreview(_local2); } protected function handleSponsor(_arg1:MouseEvent):void{ snd_playClick.play(); Protection.toKong(); } } }//package gameSection 98//ContactListener (game.ContactListener) package game { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; import flash.media.*; public class ContactListener extends b2ContactListener { private const NEG:uint; private var thunks:Array; private var mParent:MovieClip; private var thocks:Array; public function ContactListener(_arg1:MovieClip):void{ NEG = (1 << 31); super(); mParent = _arg1; thocks = new Array(2); thocks[0] = new Thock_0(); thocks[1] = new Thock_1(); thunks = new Array(4); thunks[0] = new Thunk_0(); thunks[1] = new Thunk_1(); thunks[2] = new Thunk_2(); thunks[3] = new Thunk_3(); } override public function Add(_arg1:b2ContactPoint):void{ var _local4:DisplayObject; var _local5:DisplayObject; var _local6:b2Body; var _local7:b2Vec2; var _local8:Number; var _local2:b2Shape = _arg1.shape1; var _local3:b2Shape = _arg1.shape2; if (_local2.m_isSensor){ _local4 = _local3.GetBody().m_userData; if ((_local4 is DummyBody)){ return; }; _local5 = _local2.GetBody().m_userData; if ((_local5 is TorchBase)){ TorchBase(_local5).touch(); } else { if ((_local5 is PowerUpBase)){ PowerUpBase(_local5).touch(); }; }; } else { _local6 = _local3.GetBody(); _local7 = _local6.GetLinearVelocity(); _local8 = _local7.x; if ((((_local8 > -0.3)) && ((_local8 < 0.3)))){ if (_local8 > 0){ _local7.x = 0.3; _local6.SetLinearVelocity(_local7); } else { if (_local8 <= 0){ _local7.x = -0.3; _local6.SetLinearVelocity(_local7); }; }; }; }; } override public function Result(_arg1:b2ContactResult):void{ var _local4:Number; var _local5:int; var _local2:DisplayObject = _arg1.shape2.GetBody().m_userData; if ((_local2 is DummyBody)){ return; }; var _local3:DisplayObject = _arg1.shape1.GetBody().m_userData; if ((_local3 is Burnable)){ _local4 = _arg1.normalImpulse; Burnable(_local3).burn(); if (_local4 > 0.1){ _local5 = (((_local4 - 0.1) * 0.5) * 4); if (_local5 > 3){ _local5 = 3; }; thunks[_local5].play(); }; } else { if ((_local3 is Block)){ _local4 = _arg1.normalImpulse; if (_local4 > 0.1){ _local5 = (_local4 - 0.1); if (_local5 > 1){ _local5 = 1; }; thocks[_local5].play(); }; }; }; } } }//package gameSection 99//GameLevel (game.GameLevel) package game { import flash.events.*; import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import flash.utils.*; import flash.media.*; import effects.*; import flash.text.*; import flash.system.*; public class GameLevel extends MovieClip { protected const SCALE:int = 60; protected var isPulling:Boolean; protected var crateSpreadTime:Number;// = 0.75 protected var fireballBouncinessBonus:Number;// = 0.8 protected var contactListener:ContactListener; protected var bonuses:Array; protected var lifes:int; protected var crates:Array; protected var maxPrevLineLength:int; protected var instructionOn:Boolean; protected var fireballRadius:uint;// = 9 protected var winReport:Boolean; protected var fireballBounciness:Number;// = 0.7 protected var fireball:b2Body; protected var fireballRadiusBonus:Number;// = 6 protected var m_world:b2World; protected var m_iterations:int;// = 10 protected var fireballStopDeathTime:int;// = 500 protected var soundOn:Boolean; protected var previewLineLengthBonus:uint;// = 25 protected var waitingForCrates:Boolean; protected var currLevel:String; protected var winTimeStarted:Boolean; protected var fireballView:Fireball; protected var dragHandle:DragHandle; public var _bonusTrigger:String; protected var previewBody:b2Body; public var instruction:MovieClip; protected var isDragging:Boolean; protected var burningCrates:int; protected var won:Boolean; protected var previewContainer:Sprite; protected var crateBurnOutTime:Number;// = 7.5 protected var torches:Array; protected var oY:Number;// = 0 public var fSprite:FireballInit; protected var alive:Boolean; protected var oX:Number;// = 0 protected var torchNeeded:int; protected var m_timeStep:Number;// = 0.025 public var winTime:int; protected var previewLineLength:uint;// = 15 protected var dragArea:Rectangle; protected var torchNum:int; protected var winTimer:Timer; protected var stopTime:int; protected var fireballDensity:Number;// = 1 protected var hud:HUD; protected var simulating:Boolean; protected var torchLit:int; public var shotTaken:int; protected var fires:Array; protected var gameOver:Boolean; public static const WIN:String = "win"; public static const LOOSE:String = "gameOver"; public function GameLevel():void{ previewContainer = new Sprite(); burningCrates = 0; soundOn = true; instructionOn = true; alive = true; waitingForCrates = false; winReport = false; winTimeStarted = false; gameOver = false; maxPrevLineLength = previewLineLength; bonuses = new Array(); currLevel = ""; _bonusTrigger = ""; } protected function handleSuicide(_arg1:MouseEvent):void{ if (waitingForCrates){ waitingForCrates = false; burningCrates = 0; }; if (lifes == 1){ waitingForCrates = false; burningCrates = 0; }; handleReset(); } public function handleReset(_arg1:String="death"):void{ var _local2:b2CircleShape; var _local4:int; simulating = false; if ((((_arg1 == "death")) && (!(won)))){ lifes--; if (lifes < 1){ lifes = 0; hud.lifeText.text = ("x" + lifes); alive = false; fireball.PutToSleep(); previewBody.PutToSleep(); if (burningCrates < 1){ fireballView.stopSound(); Burnable.stopSound(); dispatchEvent(new Event(LOOSE, true, false)); } else { waitingForCrates = true; }; return; }; hud.lifeText.text = ("x" + lifes); } else { if ((((_arg1 == "death")) && (won))){ fireball.PutToSleep(); previewBody.PutToSleep(); alive = false; simulating = false; return; }; if (_arg1 == "win"){ if (fireball){ fireball.PutToSleep(); }; if (previewBody){ previewBody.PutToSleep(); }; simulating = false; if (fireballView){ fireballView.stopSound(); }; Burnable.stopSound(); if (!winReport){ winReport = true; dispatchEvent(new Event(WIN, true, false)); }; alive = false; return; }; }; maxPrevLineLength = previewLineLength; _local2 = b2CircleShape(fireball.m_shapeList); _local2.m_radius = (fireballRadius / SCALE); _local2.m_restitution = fireballBounciness; _local2 = b2CircleShape(previewBody.m_shapeList); _local2.m_radius = (fireballRadius / SCALE); _local2.m_restitution = fireballBounciness; fireballView.scale(1); fireballView.switchPalette(new FlamePalette()); var _local3:int = bonuses.length; _local4 = 0; while (_local4 < _local3) { bonuses[_local4].call(this); _local4++; }; bonuses.length = 0; if (instructionOn){ instruction.visible = true; }; oX = fSprite.x; oY = fSprite.y; fireball.SetXForm(new b2Vec2((fSprite.x / SCALE), (fSprite.y / SCALE)), 0); fireball.SetLinearVelocity(new b2Vec2(0, 0)); fireball.SetAngularVelocity(0); fireball.PutToSleep(); previewBody.PutToSleep(); } public function set level(_arg1:String):void{ if (hud){ hud.level.text = ("Level " + _arg1); } else { currLevel = _arg1; }; } public function dispose(_arg1:Event=null):void{ stage.removeEventListener(KeyboardEvent.KEY_UP, handleKeyboard); stage.removeEventListener(MouseEvent.MOUSE_UP, handleStopDrag); fSprite.removeEventListener(MouseEvent.MOUSE_DOWN, handleStartDrag); hud.btn_Suicide.removeEventListener(MouseEvent.MOUSE_UP, handleSuicide); hud.btn_Mute.removeEventListener(MouseEvent.MOUSE_UP, handleMute); removeEventListener(Event.ENTER_FRAME, Update); removeEventListener(Event.REMOVED_FROM_STAGE, dispose); while (fires.length) { fires[0].dispose(); }; var _local2:b2Body = m_world.GetBodyList(); m_world.DestroyBody(_local2); m_world = null; removeChild(fireballView); fireballView.dispose(); fireballView = null; previewContainer = null; fires = null; fireball = null; previewBody = null; contactListener = null; Burnable.stopSound(); System.gc(); } public function init(_arg1:int, _arg2:int):void{ var _local7:Crate; var _local8:TorchBase; var _local9:int; var _local10:int; var _local13:Rectangle; var _local14:Rectangle; lifes = _arg1; torchNeeded = _arg2; hud = new HUD(); hud.percentText.text = ("0/" + torchNeeded); hud.lifeText.text = ("x" + lifes); if (currLevel != ""){ hud.level.text = ("Level " + currLevel); }; hud.btn_Suicide.addEventListener(MouseEvent.MOUSE_UP, handleSuicide); hud.btn_Mute.addEventListener(MouseEvent.MOUSE_UP, handleMute); fireballView = new Fireball(); stage.addEventListener(KeyboardEvent.KEY_UP, handleKeyboard); stage.addEventListener(MouseEvent.MOUSE_UP, handleStopDrag); fSprite.addEventListener(MouseEvent.MOUSE_DOWN, handleStartDrag); fSprite.hitArea = fSprite.buttonHitArea; fSprite.buttonHitArea.visible = false; fSprite.display.visible = false; fSprite.useHandCursor = false; isDragging = false; dragHandle = hud.dragHandle; dragHandle.visible = false; simulating = false; torchNum = 0; torchLit = 0; var _local3:b2AABB = new b2AABB(); _local3.lowerBound.Set(-100, -100); _local3.upperBound.Set(100, 100); var _local4:b2Vec2 = new b2Vec2(0, 10); var _local5:Boolean; m_world = new b2World(_local3, _local4, _local5); var _local6:* = new ContactListener(MovieClip(this)); m_world.SetContactListener(_local6); torches = new Array(); crates = new Array(); fires = new Array(); createObjects(this); var _local11:int = torches.length; var _local12:int = crates.length; _local9 = 0; while (_local9 < _local12) { _local7 = crates[_local9]; _local13 = _local7.getBounds(this); _local10 = 0; while (_local10 < _local11) { _local8 = torches[_local10]; _local14 = _local8.torchHitArea.getBounds(this); if (_local13.intersects(_local14)){ _local7.addNeighbour(_local8); }; _local10++; }; _local9++; }; crates.length = 0; torches.length = 0; crates = null; torches = null; addChild(instruction); addChildAt(fireballView, 0); addChild(hud); this.visible = true; winTime = 0; addEventListener(Event.ENTER_FRAME, Update, false, 0, true); addEventListener(Event.REMOVED_FROM_STAGE, dispose); } public function applyBounceBonus():void{ var _local1:b2Shape; _local1 = fireball.m_shapeList; _local1.m_restitution = fireballBouncinessBonus; _local1 = previewBody.m_shapeList; _local1.m_restitution = fireballBouncinessBonus; fireballView.switchPalette(new GreenFlamePalette()); } protected function handleKeyboard(_arg1:KeyboardEvent){ if ((((_arg1.keyCode == 27)) && (isPulling))){ stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleDrag); isPulling = false; dragHandle.visible = false; instruction.visible = true; removeChild(previewContainer); } else { if (_arg1.keyCode == 73){ if (instructionOn){ instructionOn = false; if (!simulating){ instruction.visible = false; }; } else { instructionOn = true; if (!simulating){ instruction.visible = true; }; }; } else { if (_arg1.keyCode == 83){ handleSuicide(null); }; }; }; } public function previewBonus():void{ lifes++; hud.lifeText.text = ("x" + lifes); bonuses.push(applyPreviewBonus); } public function set bonusTrigger(_arg1:String):void{ _bonusTrigger = _arg1; } public function reportBurnStart():void{ burningCrates++; } protected function handleMute(_arg1:MouseEvent):void{ var _local2:SoundTransform = SoundMixer.soundTransform; if (_local2.volume == 1){ _local2.volume = 0; SoundMixer.soundTransform = _local2; } else { _local2.volume = 1; SoundMixer.soundTransform = _local2; }; } protected function handleStartDrag(_arg1:MouseEvent){ var _local2:Number; var _local3:Number; if (((simulating) || (!(alive)))){ return; }; if (_arg1.shiftKey){ if (dragArea){ isDragging = true; fSprite.display.visible = true; fSprite.startDrag(false, dragArea); }; } else { if (!winTimeStarted){ winTimeStarted = true; winTime = 0; }; isPulling = true; dragHandle.gauge.scaleX = 0.01; dragHandle.x = fSprite.x; dragHandle.y = fSprite.y; _local2 = (mouseX - dragHandle.x); _local3 = (mouseY - dragHandle.y); dragHandle.rotation = Math.atan2(_local3, _local2); dragHandle.visible = true; previewContainer.graphics.clear(); addChild(previewContainer); }; stage.addEventListener(MouseEvent.MOUSE_MOVE, handleDrag); } public function bounceBonus():void{ lifes++; hud.lifeText.text = ("x" + lifes); bonuses.push(applyBounceBonus); } protected function handleDrag(_arg1:MouseEvent){ var _local2:int; var _local3:int; var _local4:Number; var _local5:Number; var _local6:Point; var _local7:int; var _local8:b2Vec2; if (isPulling){ _local2 = (mouseX - dragHandle.x); _local3 = (mouseY - dragHandle.y); _local4 = Math.atan2(_local3, _local2); dragHandle.rotation = (_local4 * (180 / Math.PI)); _local5 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); _local5 = Math.min(69.6, _local5); _local5 = Math.max(0.1, _local5); _local5 = (_local5 / 69.6); dragHandle.gauge.scaleX = _local5; _local5 = (_local5 * 13); _local6 = Point.polar(_local5, _local4); previewBody.SetXForm(new b2Vec2((fSprite.x / SCALE), (fSprite.y / SCALE)), 0); previewBody.SetAngularVelocity(0); previewBody.SetLinearVelocity(new b2Vec2(_local6.x, _local6.y)); previewBody.WakeUp(); fireball.PutToSleep(); previewContainer.graphics.clear(); previewContainer.graphics.lineStyle(1, 0xFF0000); previewContainer.graphics.moveTo(fSprite.x, fSprite.y); _local7 = 0; while (_local7 < maxPrevLineLength) { m_world.Step(m_timeStep, m_iterations); _local8 = previewBody.GetPosition(); previewContainer.graphics.lineTo((_local8.x * SCALE), (_local8.y * SCALE)); if ((_local8.y * SCALE) > 600){ break; }; _local7++; }; previewBody.PutToSleep(); } else { if (isDragging){ fireball.SetXForm(new b2Vec2((fSprite.x / SCALE), (fSprite.y / SCALE)), 0); fireball.PutToSleep(); previewBody.PutToSleep(); }; }; } protected function createObjects(_arg1:DisplayObjectContainer):void{ var _local2:b2Body; var _local3:b2BodyDef; var _local4:b2PolygonDef; var _local5:b2CircleDef; var _local8:int; var _local9:DisplayObject; var _local10:Number; var _local11:Number; var _local12:TorchBase; var _local13:Rectangle; var _local14:Crate; var _local15:PowerUpBase; var _local6:Array = new Array(); var _local7:int = _arg1.numChildren; _local8 = 0; while (_local8 < _local7) { _local9 = _arg1.getChildAt(_local8); if ((_local9 is Block)){ _local3 = new b2BodyDef(); _local3.position.x = (_local9.x / SCALE); _local3.position.y = (_local9.y / SCALE); _local10 = (_local9.width / (SCALE * 2)); _local11 = (_local9.height / (SCALE * 2)); _local3.scale = SCALE; _local4 = new b2PolygonDef(); _local4.SetAsBox(_local10, _local11); _local4.friction = 0; _local4.restitution = 0.7; _local4.isSensor = false; _local3.userData = _local9; _local2 = m_world.CreateBody(_local3); _local4.filter.categoryBits = 1; _local4.filter.maskBits = 7; _local2.CreateShape(_local4); _local2.SetMassFromShapes(); _local6.push(_local9); _local9.visible = false; } else { if ((_local9 is FireballInit)){ _local3 = new b2BodyDef(); _local3.position.x = (_local9.x / SCALE); _local3.position.y = (_local9.y / SCALE); _local10 = (fireballRadius / SCALE); _local3.scale = SCALE; oX = _local9.x; oY = _local9.y; _local5 = new b2CircleDef(); _local5.radius = _local10; _local5.density = fireballDensity; _local5.friction = 0; _local5.restitution = fireballBounciness; _local3.userData = _local9; _local3.isBullet = true; _local2 = m_world.CreateBody(_local3); _local5.filter.categoryBits = 2; _local5.filter.maskBits = 3; _local2.CreateShape(_local5); fireball = _local2; _local2.SetMassFromShapes(); _local2.PutToSleep(); _local3.userData = new DummyBody(); _local3.isBullet = true; _local2 = m_world.CreateBody(_local3); _local5.filter.categoryBits = 4; _local5.filter.maskBits = 5; _local2.CreateShape(_local5); previewBody = _local2; _local2.SetMassFromShapes(); _local2.PutToSleep(); } else { if ((_local9 is TorchBase)){ _local12 = TorchBase(_local9); _local13 = _local12.torchHitArea.getBounds(this); fires.push(_local9); torches.push(_local12); _local12.torchHitArea.visible = false; _local12.initSpark(this); torchNum++; _local3 = new b2BodyDef(); _local3.position.x = (_local13.x / SCALE); _local3.position.y = (_local13.y / SCALE); _local10 = (_local13.width / (SCALE * 2)); _local11 = (_local13.height / (SCALE * 2)); _local3.scale = SCALE; _local4 = new b2PolygonDef(); _local4.SetAsBox(_local10, _local11); _local4.isSensor = true; _local3.userData = _local9; _local2 = m_world.CreateBody(_local3); _local2.CreateShape(_local4); _local2.SetMassFromShapes(); } else { if ((_local9 is Crate)){ fires.push(_local9); crates.push(_local9); _local3 = new b2BodyDef(); _local3.position.x = (_local9.x / SCALE); _local3.position.y = (_local9.y / SCALE); _local10 = (_local9.width / (SCALE * 2)); _local11 = (_local9.height / (SCALE * 2)); _local3.scale = SCALE; _local4 = new b2PolygonDef(); _local4.SetAsBox(_local10, _local11); _local4.friction = 0; _local4.restitution = 0.6; _local4.isSensor = false; _local3.userData = _local9; _local2 = m_world.CreateBody(_local3); _local14 = Crate(_local9); _local14.blockBody = _local2; _local14.spreadTime = (crateSpreadTime * 1000); _local14.burnTime = (crateBurnOutTime * 1000); _local14.initSpark(this); _local14.init(new CrateBitmap(20, 20), new CrateBurnBitmap(20, 20)); _local4.filter.categoryBits = 1; _local4.filter.maskBits = 7; _local2.CreateShape(_local4); _local2.SetMassFromShapes(); } else { if ((_local9 is PowerUpBase)){ fires.push(_local9); _local3 = new b2BodyDef(); _local3.position.x = (_local9.x / SCALE); _local3.position.y = (_local9.y / SCALE); _local10 = (_local9.width / (SCALE * 2)); _local3.scale = SCALE; _local5 = new b2CircleDef(); _local5.radius = _local10; _local5.isSensor = true; _local3.userData = _local9; _local2 = m_world.CreateBody(_local3); _local2.CreateShape(_local5); _local2.SetMassFromShapes(); _local15 = PowerUpBase(_local9); _local15.initSpark(this); } else { if ((_local9 is FireballDragArea)){ dragArea = _local9.getBounds(this); _local9.visible = false; _local6.push(_local9); } else { if ((_local9 is DisplayObjectContainer)){ if (DisplayObjectContainer(_local9).numChildren > 0){ createObjects(DisplayObjectContainer(_local9)); }; }; }; }; }; }; }; }; _local8++; }; if (dragArea){ if (!dragArea.contains(fSprite.x, fSprite.y)){ fSprite.x = (dragArea.x + (dragArea.width / 2)); fSprite.y = (dragArea.y + (dragArea.height / 2)); }; }; _local7 = _local6.length; _local8 = _local7; while (_local8--) { _local6[_local8].parent.removeChild(_local6[_local8]); }; _local6.length = 0; } protected function handleStopDrag(_arg1:MouseEvent){ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Point; if (isPulling){ stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleDrag); isPulling = false; shotTaken++; dragHandle.visible = false; _local2 = (mouseX - dragHandle.x); _local3 = (mouseY - dragHandle.y); _local4 = Math.atan2(_local3, _local2); _local5 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); _local5 = Math.min(69.6, _local5); _local5 = Math.max(0.1, _local5); _local5 = ((_local5 / 69.6) * 13); _local6 = Point.polar(_local5, _local4); removeChild(previewContainer); fireball.WakeUp(); fireball.SetLinearVelocity(new b2Vec2(_local6.x, _local6.y)); instruction.visible = false; simulating = true; } else { if (isDragging){ stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleDrag); isDragging = false; fSprite.stopDrag(); fSprite.display.visible = false; fireball.SetXForm(new b2Vec2((fSprite.x / SCALE), (fSprite.y / SCALE)), 0); fireball.PutToSleep(); previewBody.PutToSleep(); }; }; } public function halfSizeBonus():void{ lifes++; hud.lifeText.text = ("x" + lifes); bonuses.push(applyHalfSizeBonus); } protected function handleWin(_arg1:TimerEvent):void{ if (winTimer){ winTimer.removeEventListener(TimerEvent.TIMER, handleWin); winTimer.stop(); winTimer = null; }; handleReset("win"); } public function lifeBonus():void{ lifes++; hud.lifeText.text = ("x" + lifes); } public function score(){ torchLit++; hud.percentText.text = ((torchLit + "/") + torchNeeded); } public function reportBurnStop():void{ burningCrates--; } protected function applyPreviewBonus():void{ maxPrevLineLength = previewLineLengthBonus; fireballView.switchPalette(new RedFlamePalette()); } protected function Update(_arg1:Event):void{ var _local9:int; if (gameOver){ return; }; if (simulating){ previewBody.PutToSleep(); m_world.Step(m_timeStep, m_iterations); }; var _local2:Matrix = fireball.GetTransform(); var _local3:Number = _local2.tx; var _local4:Number = _local2.ty; var _local5:Number = (_local3 - oX); var _local6:Number = (_local4 - oY); oX = _local3; oY = _local4; var _local7:Number = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); fireballView.update(_local2, _local7); var _local8:int = fires.length; _local9 = 0; while (_local9 < _local8) { fires[_local9].drawSpark(); _local9++; }; if (((!(_local7)) && (simulating))){ stopTime++; if (stopTime > fireballStopDeathTime){ handleReset(); return; }; } else { stopTime = 0; }; if ((((((((((oY < -500)) || ((oY > 600)))) || ((oX < -100)))) || ((oX > 500)))) && (alive))){ handleReset(); return; }; if (((((!(alive)) && (waitingForCrates))) && ((burningCrates < 1)))){ handleReset(); return; }; if (torchLit >= torchNeeded){ won = true; if (!winTimer){ winTimer = new Timer(1000, 1); winTimer.addEventListener(TimerEvent.TIMER, handleWin); winTimer.start(); }; return; }; winTime++; } public function applyHalfSizeBonus():void{ var _local1:b2CircleShape; _local1 = b2CircleShape(fireball.m_shapeList); _local1.m_radius = (fireballRadiusBonus / SCALE); _local1 = b2CircleShape(previewBody.m_shapeList); _local1.m_radius = (fireballRadiusBonus / SCALE); fireballView.scale((fireballRadiusBonus / fireballRadius)); fireballView.switchPalette(new BlueFlamePalette()); } public function removeFire(_arg1:IFireEmitter):void{ var _local2:int; _local2 = fires.indexOf(_arg1); fires.splice(_local2, 1); } } }//package gameSection 100//HalfSizePowerUp (game.HalfSizePowerUp) package game { import flash.display.*; public class HalfSizePowerUp extends PowerUpBase { public var powerUpHitArea:MovieClip; public function HalfSizePowerUp():void{ } override protected function applyEffect():void{ owner.halfSizeBonus(); } override protected function initPalette():void{ var _local1:Sprite = new TransparentBlueFlamePalette(); var _local2:BitmapData = new BitmapData(0x0100, 10, true, 0); _local2.draw(_local1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = uint(_local2.getPixel32(_local3, 2)); _local3++; }; _local2.dispose(); } override protected function hideHitArea():void{ powerUpHitArea.visible = false; } } }//package gameSection 101//IFireEmitter (game.IFireEmitter) package game { public interface IFireEmitter { function drawSpark():void; function initSpark(_arg1:GameLevel):void; } }//package gameSection 102//LevelButton (game.LevelButton) package game { import flash.events.*; import flash.display.*; import flash.text.*; public class LevelButton extends Sprite { protected const enabledColor:uint = 0xFF3300; protected const disabledColor:uint = 10040115; public var numTxt:TextField; public var buttonUp:MovieClip; public var arrIndex:int; public var index:String; protected var selected:Boolean; public var buttonDown:MovieClip; public var cover:MovieClip; public function LevelButton():void{ selected = false; mouseChildren = false; useHandCursor = true; numTxt.textColor = disabledColor; } public function set text(_arg1:String):void{ numTxt.text = _arg1; } public function enable():void{ cover.visible = false; numTxt.textColor = enabledColor; } public function toggle(_arg1:MouseEvent=null):void{ selected = !(selected); if (selected){ buttonUp.visible = false; buttonDown.visible = true; } else { buttonUp.visible = true; buttonDown.visible = false; }; } public function disable():void{ cover.visible = true; numTxt.textColor = disabledColor; } public function get disabled():Boolean{ return (cover.visible); } } }//package gameSection 103//LongLinePowerUp (game.LongLinePowerUp) package game { import flash.display.*; public class LongLinePowerUp extends PowerUpBase { public var powerUpHitArea:MovieClip; public function LongLinePowerUp():void{ } override protected function applyEffect():void{ owner.previewBonus(); } override protected function initPalette():void{ var _local1:Sprite = new TransparentRedFlamePalette(); var _local2:BitmapData = new BitmapData(0x0100, 10, true, 0); _local2.draw(_local1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = uint(_local2.getPixel32(_local3, 2)); _local3++; }; _local2.dispose(); } override protected function hideHitArea():void{ powerUpHitArea.visible = false; } } }//package gameSection 104//PlusOnePowerUp (game.PlusOnePowerUp) package game { import flash.display.*; public class PlusOnePowerUp extends PowerUpBase { public var powerUpHitArea:MovieClip; public function PlusOnePowerUp():void{ } override protected function applyEffect():void{ owner.lifeBonus(); } override protected function hideHitArea():void{ powerUpHitArea.visible = false; } } }//package gameSection 105//PowerUpBase (game.PowerUpBase) package game { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; public class PowerUpBase extends Sprite implements IFireEmitter { protected const PT_ZERO:Point; protected const FLAME_HEIGHT:int = 35; protected const MATRIX_3x5; protected var cFilter:ConvolutionFilter; protected var frontBuffer:BitmapData; protected var screenBuffer:BitmapData; protected var alive:Boolean; protected var fire:Bitmap; protected var timer:Timer; protected var masker:BitmapData; protected var SOURCE:Rectangle; protected var spark:BitmapData; protected var DEST:Point; protected var noiseSeed:uint;// = 0 protected var mtx:Matrix; protected var owner:GameLevel; protected var palette:Array; protected static var sounds:Array; public function PowerUpBase():void{ MATRIX_3x5 = new Array(0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0); PT_ZERO = new Point(0, 0); cFilter = new ConvolutionFilter(3, 5, MATRIX_3x5, 4.35, -2, true, false, 0xFF, 1); palette = new Array(); super(); alive = true; if (!sounds){ sounds = new Array(4); sounds[0] = new Torch_0(); sounds[1] = new Torch_1(); sounds[2] = new Torch_2(); sounds[3] = new Torch_3(); }; } public function drawSpark():void{ if (alive){ noiseSeed++; spark.noise(noiseSeed, 163, 0xFF, BitmapDataChannel.BLUE, true); spark.draw(masker, null, null, BlendMode.ADD); frontBuffer.draw(spark, mtx, null, BlendMode.MULTIPLY); }; frontBuffer.applyFilter(frontBuffer, SOURCE, DEST, cFilter); screenBuffer.paletteMap(frontBuffer, SOURCE, PT_ZERO, null, null, palette); screenBuffer.threshold(screenBuffer, SOURCE, DEST, "==", 4278190080, 0, 4278190080, true); } protected function hideHitArea():void{ } public function dispose(_arg1:TimerEvent=null):void{ owner.removeChild(fire); this.parent.removeChild(this); owner.removeFire(this); if (timer){ timer.stop(); timer.removeEventListener(TimerEvent.TIMER, dispose); }; screenBuffer.dispose(); frontBuffer.dispose(); spark.dispose(); masker.dispose(); palette.length = 0; fire = null; screenBuffer = null; frontBuffer = null; spark = null; masker = null; palette = null; mtx = null; SOURCE = null; DEST = null; timer = null; } protected function initPalette():void{ var _local1:Sprite = new TransparentFlamePalette(); var _local2:BitmapData = new BitmapData(0x0100, 10, true, 0); _local2.draw(_local1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = uint(_local2.getPixel32(_local3, 2)); _local3++; }; _local2.dispose(); } protected function applyEffect():void{ } public function initSpark(_arg1:GameLevel):void{ var _local2:DisplayObjectContainer = DisplayObjectContainer(_arg1); owner = _arg1; hideHitArea(); noiseSeed = (Math.random() * uint.MAX_VALUE); var _local3:Sprite = new NoiseGenerator(); spark = new BitmapData(_local3.width, _local3.height, false, 0); masker = new BitmapData(_local3.width, _local3.height, false, 0); frontBuffer = new BitmapData(_local3.width, FLAME_HEIGHT, false, 0xFF); screenBuffer = new BitmapData(_local3.width, FLAME_HEIGHT, true, 0); masker.draw(_local3); mtx = new Matrix(1, 0, 0, 1, 0, (FLAME_HEIGHT - _local3.height)); fire = new Bitmap(screenBuffer); fire.x = (this.x - (_local3.width / 2)); fire.y = ((this.y - FLAME_HEIGHT) + (_local3.height / 2)); _local2.addChild(fire); SOURCE = new Rectangle(0, 0, frontBuffer.width, frontBuffer.height); DEST = new Point(0, 0); initPalette(); } public function touch():void{ if (!alive){ return; }; alive = false; applyEffect(); var _local1:int = (Math.random() * 4); sounds[_local1].play(); timer = new Timer(1500, 1); timer.addEventListener(TimerEvent.TIMER, dispose); timer.start(); } } }//package gameSection 106//Protection (game.Protection) package game { import flash.net.*; public class Protection { public static const MIKE_URL:String = "http://www.kongregate.com/accounts/damijin?gamereferral=pyro"; public static const KONG_URL:String = "http://www.kongregate.com/?gamereferral=pyro"; public function Protection():void{ } public static function isLOCAL():Boolean{ return ((new LocalConnection().domain.toLowerCase() == "localhost")); } public static function NavigateToURL(_arg1:String, _arg2:String="_blank"):void{ navigateToURL(new URLRequest(_arg1), "_BLANK"); } public static function isKONGREGATE():Boolean{ var _local1:String = new LocalConnection().domain.toLowerCase(); switch (_local1){ case "a.kongregate.com": case "chat.kongregate.com": case "www.kongregate.com": case "a.kongregatestage.com": case "chat.kongregatestage.com": case "www.kongregatestage.com": case "a.kongregatetrunk.com": case "chat.kongregatetrunk.com": case "www.kongregatetrunk.com": return (true); }; return (false); } public static function GetDomain():String{ return (new LocalConnection().domain.toLowerCase()); } public static function isCMG():Boolean{ var _local1:String = new LocalConnection().domain.toLowerCase(); return ((((_local1 == "www.crazymonkeygames.com")) || ((_local1 == "crazymonkeygames.com")))); } public static function isARMORGAMES():Boolean{ var _local1:String = new LocalConnection().domain.toLowerCase(); switch (_local1){ case "games.armorgames.com": case "armorgames.com": case "www.games.armorgames.com": case "www.armorgames.com": return (true); }; return (false); } public static function toMike():void{ navigateToURL(new URLRequest(MIKE_URL), "_BLANK"); } public static function get mSHOWAD():Boolean{ if (isKONGREGATE()){ return (false); }; if (isARMORGAMES()){ return (false); }; if (isCMG()){ return (false); }; if (isLOCAL()){ return (false); }; if (isMINE()){ return (false); }; return (true); } public static function toKong():void{ navigateToURL(new URLRequest(KONG_URL), "_BLANK"); } public static function isMINE():Boolean{ var _local1:String = new LocalConnection().domain.toLowerCase(); return ((((_local1 == "www.samplerinfo.com")) || ((_local1 == "samplerinfo.com")))); } } }//package gameSection 107//SaveFile (game.SaveFile) package game { import flash.utils.*; import flash.net.*; import com.hurlant.util.*; import com.hurlant.crypto.hash.*; public class SaveFile { public var bonusUnlocked:int; public var levelAced:int; public var gameWon:Boolean; public var levelData:Array; public var lastLevel:int; public var bonusArray:Array; private var so:SharedObject; public function SaveFile():void{ so = SharedObject.getLocal("Pyro"); if (!readSaveFile()){ createNewFile(); }; } private function createNewFile():void{ var _local1:int; var _local2:Object; lastLevel = 0; levelAced = 0; bonusUnlocked = -1; gameWon = false; levelData = new Array(50); bonusArray = new Array(8); _local1 = 1; while (_local1 < 49) { _local2 = {aced:false, time:600000}; levelData[_local1] = _local2; _local1++; }; _local1 = 0; while (_local1 < 8) { bonusArray[_local1] = {unlock:false, complete:false}; _local1++; }; writeSaveFile(); } public function flush():void{ writeSaveFile(); } public function get levelCompleted():int{ var _local2:int; var _local1:int = lastLevel; _local2 = 0; while (_local2 < 8) { if (bonusArray[_local2].complete){ _local1++; }; _local2++; }; return (_local1); } private function readSaveFile():Boolean{ var i:int; var aced:Boolean; var time:int; var unlock:Boolean; var complete:Boolean; if (((!(so.data.gameData)) || (!(so.data.signature)))){ return (false); }; if (!so.data.version){ if (readOldSaveFile()){ writeSaveFile(); return (true); }; } else { if (so.data.version != "009"){ return (false); }; }; var data:ByteArray = so.data.gameData; var hash:ByteArray = so.data.signature; var md5:MD5 = new MD5(); var rehash:ByteArray = md5.hash(data); if (!ArrayUtil.equals(hash, rehash)){ return (false); }; data.position = 0; lastLevel = data.readUnsignedShort(); levelAced = data.readUnsignedShort(); bonusUnlocked = data.readShort(); gameWon = data.readBoolean(); levelData = new Array(49); bonusArray = new Array(8); i = 1; while (i < 49) { try { aced = data.readBoolean(); time = data.readInt(); levelData[i] = {aced:aced, time:time}; } catch(e:Error) { return (false); }; i = (i + 1); }; i = 0; while (i < 8) { try { unlock = data.readBoolean(); complete = data.readBoolean(); bonusArray[i] = {unlock:unlock, complete:complete}; } catch(e:Error) { return (false); }; i = (i + 1); }; return (true); } public function get totalTime():int{ var _local2:int; var _local1:int; _local2 = 1; while (_local2 < 41) { _local1 = (_local1 + levelData[_local2].time); _local2++; }; return ((_local1 / 1000)); } private function readOldSaveFile():Boolean{ var i:int; var aced:Boolean; var time:int; var unlock:Boolean; var complete:Boolean; var data:ByteArray = so.data.gameData; var hash:ByteArray = so.data.signature; try { data.uncompress(); } catch(e:Error) { return (false); }; var md5:MD5 = new MD5(); var rehash:ByteArray = md5.hash(data); if (!ArrayUtil.equals(hash, rehash)){ return (false); }; data.position = 0; lastLevel = data.readUnsignedShort(); levelAced = data.readUnsignedShort(); bonusUnlocked = data.readShort(); gameWon = data.readBoolean(); if (!levelData){ levelData = new Array(49); }; if (!bonusArray){ bonusArray = new Array(8); }; i = 1; while (i < 49) { try { aced = data.readBoolean(); time = data.readInt(); levelData[i] = {aced:aced, time:time}; } catch(e:Error) { return (false); }; i = (i + 1); }; i = 0; while (i < 8) { try { unlock = data.readBoolean(); complete = data.readBoolean(); bonusArray[i] = {unlock:unlock, complete:complete}; } catch(e:Error) { return (false); }; i = (i + 1); }; return (true); } public function writeSaveFile():void{ var _local2:int; var _local1:ByteArray = new ByteArray(); _local1.writeShort(lastLevel); _local1.writeShort(levelAced); _local1.writeShort(bonusUnlocked); _local1.writeBoolean(gameWon); _local2 = 1; while (_local2 < 49) { _local1.writeBoolean(levelData[_local2].aced); _local1.writeInt(levelData[_local2].time); _local2++; }; _local2 = 0; while (_local2 < 8) { _local1.writeBoolean(bonusArray[_local2].unlock); _local1.writeBoolean(bonusArray[_local2].complete); _local2++; }; var _local3:MD5 = new MD5(); var _local4:ByteArray = _local3.hash(_local1); so.data.gameData = _local1; so.data.signature = _local4; so.data.version = "009"; so.flush(); } } }//package gameSection 108//TorchBase (game.TorchBase) package game { import flash.display.*; import flash.geom.*; import flash.filters.*; public class TorchBase extends Sprite implements IFireEmitter { private const FLAME_WIDTH:int = 16; private const PT_ZERO:Point; private const FLAME_HEIGHT:int = 35; private const SCREEN_RECT:Rectangle; private const MATRIX_3x5; private var cFilter:ConvolutionFilter; private var frontBuffer:BitmapData; private var burning:Boolean; private var screenBuffer:BitmapData; private var fire:Bitmap; private var SOURCE:Rectangle; private var spark:BitmapData; private var DEST:Point; public var torchHitArea:TorchHitArea; private var mtx:Matrix; private var noiseSeed:uint;// = 0 private var owner:GameLevel; private var palette:Array; protected static var sounds:Array; public function TorchBase(){ MATRIX_3x5 = new Array(0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0); SCREEN_RECT = new Rectangle(0, 0, FLAME_WIDTH, FLAME_HEIGHT); PT_ZERO = new Point(0, 0); cFilter = new ConvolutionFilter(3, 5, MATRIX_3x5, 4.35, -2, true, false, 0xFF, 1); frontBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, false, 0xFF); screenBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, true, 0); palette = new Array(); super(); burning = false; if (!sounds){ sounds = new Array(4); sounds[0] = new Torch_0(); sounds[1] = new Torch_1(); sounds[2] = new Torch_2(); sounds[3] = new Torch_3(); }; } public function drawSpark():void{ if (!burning){ return; }; noiseSeed++; spark.noise(noiseSeed, 90, 0xFF, BitmapDataChannel.BLUE, true); frontBuffer.draw(spark, mtx, null, BlendMode.MULTIPLY); frontBuffer.applyFilter(frontBuffer, SOURCE, DEST, cFilter); screenBuffer.paletteMap(frontBuffer, SOURCE, PT_ZERO, null, null, palette); screenBuffer.threshold(screenBuffer, SOURCE, DEST, "==", 4278190080, 0, 4278190080, true); } private function initPalette():void{ var _local1:Sprite = new TransparentFlamePalette(); var _local2:BitmapData = new BitmapData(0x0100, 10, true, 0); _local2.draw(_local1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = uint(_local2.getPixel32(_local3, 2)); _local3++; }; _local2.dispose(); } public function burn():void{ touch(); } public function dispose():void{ owner.removeFire(this); removeChild(fire); fire = null; spark.dispose(); frontBuffer.dispose(); screenBuffer.dispose(); palette.length = 0; spark = null; frontBuffer = null; screenBuffer = null; palette = null; } public function initSpark(_arg1:GameLevel):void{ owner = _arg1; noiseSeed = 0; spark = new BitmapData(FLAME_WIDTH, 8, false, 0); mtx = new Matrix(1, 0, 0, 1, 0, (FLAME_HEIGHT - 8)); fire = new Bitmap(screenBuffer); fire.x = (torchHitArea.x - (FLAME_WIDTH / 2)); fire.y = ((torchHitArea.y - FLAME_HEIGHT) + (torchHitArea.height / 2)); addChildAt(fire, 0); SOURCE = new Rectangle(0, 0, FLAME_WIDTH, FLAME_HEIGHT); DEST = new Point(); initPalette(); } public function touch():void{ if (burning){ return; }; burning = true; owner.score(); var _local1:int = (Math.random() * 4); sounds[_local1].play(); } } }//package gameSection 109//AcedScreen_141 (Pyro_fla.AcedScreen_141) package Pyro_fla { import flash.events.*; import flash.display.*; public dynamic class AcedScreen_141 extends MovieClip { public var unlockText:MovieClip; public var unlockBackground:MovieClip; public function AcedScreen_141(){ addFrameScript(0, frame1, 44, frame45); } function frame1(){ stop(); } function frame45(){ dispatchEvent(new Event(Event.COMPLETE)); } } }//package Pyro_flaSection 110//AssetsHolder_20 (Pyro_fla.AssetsHolder_20) package Pyro_fla { import flash.display.*; public dynamic class AssetsHolder_20 extends MovieClip { public function AssetsHolder_20(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Pyro_flaSection 111//Button_Credits_127 (Pyro_fla.Button_Credits_127) package Pyro_fla { import flash.events.*; import flash.display.*; import effects.*; public dynamic class Button_Credits_127 extends MovieClip { public var hitArea150:MovieClip; public var flame:ButtonFlame; public var flameContainer:MovieClip; public var btn_Over:MovieClip; public var btn_Up:MovieClip; public function Button_Credits_127(){ addFrameScript(0, frame1); } public function upAnim(_arg1:Event){ var _local2:Number = btn_Up.alpha; _local2 = (_local2 + 0.1); if (_local2 > 1){ _local2 = 1; removeEventListener(Event.ENTER_FRAME, upAnim); }; btn_Up.alpha = _local2; } public function overAnim(_arg1:Event){ var _local2:Number = btn_Up.alpha; _local2 = (_local2 - 0.1); if (_local2 < 0){ _local2 = 0; btn_Up.visible = false; removeEventListener(Event.ENTER_FRAME, overAnim); }; btn_Up.alpha = _local2; } function frame1(){ flame = new ButtonFlame(200, 38); this.hitArea = hitArea150; hitArea150.visible = false; flameContainer.addChild(flame); } public function over():void{ removeEventListener(Event.ENTER_FRAME, upAnim); addEventListener(Event.ENTER_FRAME, overAnim); } public function up():void{ btn_Up.visible = true; addEventListener(Event.ENTER_FRAME, upAnim); removeEventListener(Event.ENTER_FRAME, overAnim); } } }//package Pyro_flaSection 112//Button_Instruction_120 (Pyro_fla.Button_Instruction_120) package Pyro_fla { import flash.events.*; import flash.display.*; import effects.*; public dynamic class Button_Instruction_120 extends MovieClip { public var hitArea150:MovieClip; public var flame:ButtonFlame; public var flameContainer:MovieClip; public var btn_Over:MovieClip; public var btn_Up:MovieClip; public function Button_Instruction_120(){ addFrameScript(0, frame1); } public function upAnim(_arg1:Event){ var _local2:Number = btn_Up.alpha; _local2 = (_local2 + 0.1); if (_local2 > 1){ _local2 = 1; removeEventListener(Event.ENTER_FRAME, upAnim); }; btn_Up.alpha = _local2; } public function overAnim(_arg1:Event){ var _local2:Number = btn_Up.alpha; _local2 = (_local2 - 0.1); if (_local2 < 0){ _local2 = 0; btn_Up.visible = false; removeEventListener(Event.ENTER_FRAME, overAnim); }; btn_Up.alpha = _local2; } function frame1(){ flame = new ButtonFlame(200, 38); this.hitArea = hitArea150; hitArea150.visible = false; flameContainer.addChild(flame); } public function over():void{ removeEventListener(Event.ENTER_FRAME, upAnim); addEventListener(Event.ENTER_FRAME, overAnim); } public function up():void{ btn_Up.visible = true; addEventListener(Event.ENTER_FRAME, upAnim); removeEventListener(Event.ENTER_FRAME, overAnim); } } }//package Pyro_flaSection 113//Button_MoreGames_Main_129 (Pyro_fla.Button_MoreGames_Main_129) package Pyro_fla { import flash.events.*; import flash.display.*; import effects.*; public dynamic class Button_MoreGames_Main_129 extends MovieClip { public var hitArea150:MovieClip; public var flame:ButtonFlame; public var flameContainer:MovieClip; public var btn_Over:MovieClip; public var btn_Up:MovieClip; public function Button_MoreGames_Main_129(){ addFrameScript(0, frame1); } public function upAnim(_arg1:Event){ var _local2:Number = btn_Up.alpha; _local2 = (_local2 + 0.1); if (_local2 > 1){ _local2 = 1; removeEventListener(Event.ENTER_FRAME, upAnim); }; btn_Up.alpha = _local2; } public function overAnim(_arg1:Event){ var _local2:Number = btn_Up.alpha; _local2 = (_local2 - 0.1); if (_local2 < 0){ _local2 = 0; btn_Up.visible = false; removeEventListener(Event.ENTER_FRAME, overAnim); }; btn_Up.alpha = _local2; } function frame1(){ flame = new ButtonFlame(200, 38); this.hitArea = hitArea150; hitArea150.visible = false; flameContainer.addChild(flame); } public function over():void{ removeEventListener(Event.ENTER_FRAME, upAnim); addEventListener(Event.ENTER_FRAME, overAnim); } public function up():void{ btn_Up.visible = true; addEventListener(Event.ENTER_FRAME, upAnim); removeEventListener(Event.ENTER_FRAME, overAnim); } } }//package Pyro_flaSection 114//Button_NewGame_125 (Pyro_fla.Button_NewGame_125) package Pyro_fla { import flash.events.*; import flash.display.*; import effects.*; public dynamic class Button_NewGame_125 extends MovieClip { public var hitArea150:MovieClip; public var flame:ButtonFlame; public var flameContainer:MovieClip; public var btn_Over:MovieClip; public var btn_Up:MovieClip; public function Button_NewGame_125(){ addFrameScript(0, frame1); } public function upAnim(_arg1:Event){ var _local2:Number = btn_Up.alpha; _local2 = (_local2 + 0.1); if (_local2 > 1){ _local2 = 1; removeEventListener(Event.ENTER_FRAME, upAnim); }; btn_Up.alpha = _local2; } public function overAnim(_arg1:Event){ var _local2:Number = btn_Up.alpha; _local2 = (_local2 - 0.1); if (_local2 < 0){ _local2 = 0; btn_Up.visible = false; removeEventListener(Event.ENTER_FRAME, overAnim); }; btn_Up.alpha = _local2; } function frame1(){ flame = new ButtonFlame(200, 38); this.hitArea = hitArea150; hitArea150.visible = false; flameContainer.addChild(flame); } public function over():void{ removeEventListener(Event.ENTER_FRAME, upAnim); addEventListener(Event.ENTER_FRAME, overAnim); } public function up():void{ btn_Up.visible = true; addEventListener(Event.ENTER_FRAME, upAnim); removeEventListener(Event.ENTER_FRAME, overAnim); } } }//package Pyro_flaSection 115//GregLogo_Screen_115 (Pyro_fla.GregLogo_Screen_115) package Pyro_fla { import flash.display.*; public dynamic class GregLogo_Screen_115 extends MovieClip { public function GregLogo_Screen_115(){ addFrameScript(9, frame10, 10, frame11); } function frame10(){ stop(); } function frame11(){ stop(); MovieClip(this.parent).play(); } } }//package Pyro_flaSection 116//GregLogo_Texts_117 (Pyro_fla.GregLogo_Texts_117) package Pyro_fla { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.net.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.external.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.ui.*; import flash.xml.*; public dynamic class GregLogo_Texts_117 extends MovieClip { public var spaceSound:Array; public var minType:int; public var keyType:String; public var maxType:int; public var timer:Timer; public var typeSound:Array; public function GregLogo_Texts_117(){ addFrameScript(0, frame1, 11, frame12, 12, frame13, 13, frame14, 14, frame15, 15, frame16, 16, frame17, 17, frame18, 18, frame19, 19, frame20, 20, frame21, 21, frame22, 22, frame23, 23, frame24, 24, frame25, 25, frame26, 26, frame27, 27, frame28, 28, frame29, 29, frame30, 30, frame31, 31, frame32, 32, frame33, 40, frame41, 41, frame42, 42, frame43, 43, frame44, 52, frame53, 53, frame54, 54, frame55, 55, frame56, 56, frame57, 57, frame58, 58, frame59, 59, frame60, 60, frame61, 61, frame62, 62, frame63, 63, frame64, 64, frame65, 65, frame66, 81, frame82, 82, frame83, 83, frame84, 84, frame85, 85, frame86, 86, frame87, 87, frame88, 88, frame89, 89, frame90, 90, frame91, 91, frame92, 92, frame93, 93, frame94, 94, frame95, 95, frame96, 96, frame97, 97, frame98, 98, frame99, 99, frame100, 100, frame101, 101, frame102, 102, frame103, 103, frame104, 104, frame105, 168, frame169); } function frame63(){ playsound(); delay(); } public function delay():void{ timer.delay = randomTime(); timer.start(); } function frame66(){ play(); } function frame100(){ playsound(); delay(); } function frame31(){ playsound(); delay(); } function frame32(){ playsound(); delay(); } function frame33(){ playsound(); play(); } function frame30(){ playsound(); delay(); } function frame98(){ playsound(); delay(); } function frame82(){ stop(); keyType = "normal"; playsound(); delay(); } function frame83(){ playsound(); delay(); } function frame41(){ stop(); playsound(); delay(); } function frame42(){ playsound(); delay(); } function frame44(){ playsound(); play(); } function frame89(){ playsound(); delay(); } public function randomTime():int{ return (((Math.random() * (maxType - minType)) + minType)); } function frame85(){ playsound(); delay(); } function frame86(){ playsound(); delay(); } function frame43(){ playsound(); delay(); } function frame88(){ playsound(); delay(); } function frame169(){ stop(); MovieClip(this.parent).play(); } function frame84(){ playsound(); delay(); } function frame87(){ playsound(); delay(); } function frame90(){ playsound(); delay(); } function frame92(){ playsound(); delay(); } function frame93(){ playsound(); delay(); } function frame94(){ playsound(); delay(); } function frame95(){ playsound(); delay(); } function frame96(){ playsound(); delay(); } function frame53(){ stop(); playsound(); delay(); } function frame54(){ playsound(); delay(); } function frame55(){ playsound(); delay(); } function frame12(){ stop(); keyType = "normal"; playsound(); delay(); } function frame13(){ playsound(); delay(); } function frame14(){ playsound(); delay(); } function frame15(){ playsound(); delay(); } function frame17(){ keyType = "normal"; playsound(); delay(); } function frame18(){ playsound(); delay(); } function frame19(){ playsound(); delay(); } function frame57(){ playsound(); delay(); } function frame58(){ playsound(); delay(); } function frame16(){ keyType = "space"; playsound(); delay(); } function frame97(){ playsound(); delay(); } public function playsound():void{ var _local1:int = (Math.random() * 3); if (keyType == "normal"){ typeSound[_local1].play(0, 0); } else { if (keyType == "space"){ spaceSound[_local1].play(0, 0); }; }; } function frame99(){ playsound(); delay(); } function frame56(){ playsound(); delay(); } function frame59(){ playsound(); delay(); } function frame1(){ minType = 40; maxType = 80; typeSound = new Array(3); spaceSound = new Array(3); timer = new Timer(randomTime(), 1); typeSound[0] = new Keyboard_Click_0(); typeSound[1] = new Keyboard_Click_1(); typeSound[2] = new Keyboard_Click_2(); spaceSound[0] = new Keyboard_Spacebar_0(); spaceSound[1] = new Keyboard_Spacebar_1(); spaceSound[2] = new Keyboard_Spacebar_2(); timer.addEventListener(TimerEvent.TIMER, handleTimer); } function frame101(){ playsound(); delay(); } function frame102(){ playsound(); delay(); } function frame60(){ playsound(); delay(); } function frame61(){ playsound(); delay(); } function frame62(){ playsound(); delay(); } function frame20(){ keyType = "space"; playsound(); delay(); } function frame21(){ keyType = "normal"; playsound(); delay(); } function frame22(){ playsound(); delay(); } function frame23(){ playsound(); delay(); } function frame24(){ playsound(); delay(); } function frame25(){ playsound(); delay(); } function frame26(){ playsound(); delay(); } function frame27(){ playsound(); delay(); } function frame28(){ keyType = "space"; playsound(); delay(); } function frame29(){ keyType = "normal"; playsound(); delay(); } function frame103(){ playsound(); delay(); } function frame104(){ playsound(); delay(); } function frame105(){ play(); } function frame64(){ playsound(); delay(); } function frame65(){ playsound(); delay(); } public function handleTimer(_arg1:TimerEvent):void{ this.nextFrame(); } function frame91(){ playsound(); delay(); } } }//package Pyro_flaSection 117//MainTimeline (Pyro_fla.MainTimeline) package Pyro_fla { import game.*; import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import com.kongregate.as3.client.*; import flash.net.*; import flash.media.*; import effects.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.external.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.ui.*; import flash.xml.*; public dynamic class MainTimeline extends MovieClip { public const MAXLEVEL:int = 40; public var mainClickSound:Sound; public var screenDestination:String; public var isFading:Boolean; public var btn_Back:SimpleButton; public var btn_Instruction:MovieClip; public var acedScreen:MovieClip; public var loader:FlameLoader; public var initTimer:Timer; public var btn_Sponsor:MovieClip; public var isBonus:Boolean; public var creditScroll:MovieClip; public var dLogo:DamijinLogo; public var mochiClip:MovieClip; public var mapFadeOut:Bitmap; public var flame:CreditFlame; public var mapFadeIn:Bitmap; public var btn_Kong:SimpleButton; public var timer:Timer; public var debug:Boolean; public var _mochiads_game_id:String; public var scrollMax:int; public var levelClass:Class; public var maskedFlame:MovieClip; public var kongLogo:Kong_Logo_Pyro; public var mainAmbientChannel:SoundChannel; public var fadeContainer:MovieClip; public var deathScene:MovieClip; public var btn_skip:SimpleButton; public var levelSelector:ButtonContainer; public var level:MovieClip; public var targetLevel:String; public var instruction:MovieClip; public var winSound:Sound; public var btn_Credits:MovieClip; public var mainAmbientSoundTransform:SoundTransform; public var btn_NewGame:MovieClip; public var mainAmbientSound:Sound; public var gLogo:GregLogo; public var titleFlame:MaskedFlame; public var gameData:SaveFile; public var creditTimer:Timer; public var kongregate:KongregateAPI; public function MainTimeline(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 11, frame12, 12, frame13, 13, frame14, 16, frame17, 17, frame18, 20, frame21, 30, frame31, 39, frame40, 40, frame41, 50, frame51, 51, frame52, 59, frame60, 60, frame61, 70, frame71, 71, frame72, 80, frame81, 81, frame82, 90, frame91, 110, frame111, 130, frame131, 150, frame151, 160, frame161, 170, frame171, 179, frame180, 180, frame181, 190, frame191, 200, frame201); } function frame71(){ if (!winSound){ winSound = new Win(); }; level.addEventListener(GameLevel.WIN, handleWin); level.addEventListener(GameLevel.LOOSE, handleLoose); removeChild(deathScene); removeChild(acedScreen); acedScreen.addEventListener(Event.COMPLETE, handleAceComplete); level.visible = true; deathScene.btn_Retry.addEventListener(MouseEvent.CLICK, handleRetry); deathScene.btn_MainMenu.addEventListener(MouseEvent.CLICK, handleMenu); deathScene.btn_Kong.addEventListener(MouseEvent.CLICK, handleKong); stop(); } public function mochiProgress(_arg1:Number):void{ if (_arg1 >= 100){ play(); }; } function frame151(){ stop(); } public function calcFadeOut(){ var _local1:BitmapData = new BitmapData(400, 500, false); _local1.draw(level); removeChild(level); level = null; if (!mapFadeOut){ mapFadeOut = new Bitmap(_local1); } else { mapFadeOut.bitmapData = _local1; }; fadeContainer.addChild(mapFadeOut); } function frame161(){ if (Protection.isKONGREGATE()){ btn_Kong.visible = false; }; } function frame72(){ calcFadeOut(); } function frame82(){ timer = new Timer(6500, 5); timer.addEventListener(TimerEvent.TIMER, handleTimer); timer.start(); } public function onDelayedInit(_arg1:Event):void{ initTimer.stop(); initTimer.removeEventListener("timer", onDelayedInit); initTimer = null; initAPI(); } public function kongregateComplete(_arg1:Event):void{ kongregate = _arg1.target.content; kongregate.services.connect(); } public function handleInstruction(_arg1:MouseEvent):void{ mainClickSound.play(); mainAmbientChannel.stop(); screenDestination = "instructionScreen"; play(); } function frame81(){ gotoAndPlay(screenDestination); } public function topGameParams():Object{ var param:Object; var topLoader:Object; try { topLoader = LoaderInfo(MovieClip(root).loaderInfo).loader; param = LoaderInfo(topLoader.loaderInfo).parameters; } catch(e:Error) { }; return (param); } function frame12(){ loader.stopPreloader(); gotoAndPlay("damijinLogo"); } function frame13(){ btn_skip.addEventListener(MouseEvent.CLICK, handleSkip); if (debug){ gotoAndPlay("menuFrame"); } else { dLogo.addEventListener(Event.COMPLETE, handleDamijinComplete); }; } function frame14(){ stop(); dLogo.play(); } public function initButtons():void{ btn_Instruction.addEventListener(MouseEvent.CLICK, handleInstruction); btn_Instruction.addEventListener(MouseEvent.ROLL_OVER, handleButtonOver); btn_Instruction.addEventListener(MouseEvent.ROLL_OUT, handleButtonOut); btn_NewGame.addEventListener(MouseEvent.CLICK, handleNewGame); btn_NewGame.addEventListener(MouseEvent.ROLL_OVER, handleButtonOver); btn_NewGame.addEventListener(MouseEvent.ROLL_OUT, handleButtonOut); btn_Credits.addEventListener(MouseEvent.CLICK, handleCredits); btn_Credits.addEventListener(MouseEvent.ROLL_OVER, handleButtonOver); btn_Credits.addEventListener(MouseEvent.ROLL_OUT, handleButtonOut); btn_Sponsor.addEventListener(MouseEvent.CLICK, handleSponsor); btn_Sponsor.addEventListener(MouseEvent.ROLL_OVER, handleButtonOver); btn_Sponsor.addEventListener(MouseEvent.ROLL_OUT, handleButtonOut); } public function handleCredits(_arg1:MouseEvent):void{ mainClickSound.play(); mainAmbientChannel.stop(); screenDestination = "creditsScreen"; play(); } public function mochiFinished():void{ play(); } function frame17(){ gLogo.addEventListener(Event.COMPLETE, handleGregComplete); } public function handleBack(_arg1:MouseEvent):void{ btn_Back.removeEventListener(MouseEvent.CLICK, handleBack); flame.running = false; isFading = true; creditTimer.start(); } public function handleLoose(_arg1:Event):void{ if (deathScene){ addChild(deathScene); }; level.removeEventListener(GameLevel.WIN, handleWin); level.removeEventListener(GameLevel.LOOSE, handleLoose); } function frame201(){ gotoAndPlay("menuFrame"); } public function handleMute(_arg1:KeyboardEvent){ var _local2:SoundTransform; if (_arg1.keyCode == 77){ _local2 = SoundMixer.soundTransform; if (_local2.volume == 1){ _local2.volume = 0; SoundMixer.soundTransform = _local2; } else { _local2.volume = 1; SoundMixer.soundTransform = _local2; }; }; } function frame18(){ stop(); gLogo.play(); } public function handleRetry(_arg1:MouseEvent):void{ removeChild(deathScene); play(); } public function handleNewGame(_arg1:MouseEvent):void{ mainClickSound.play(); mainAmbientChannel.stop(); screenDestination = "levelSelect"; play(); } function frame3(){ } public function handleGregComplete(_arg1:Event):void{ gLogo.removeEventListener(Event.COMPLETE, handleGregComplete); gLogo = null; screenDestination = "menuFrame"; gotoAndPlay("menuFrame"); } function frame91(){ stop(); } public function handleButtonOver(_arg1:MouseEvent):void{ var _local2:MovieClip = (_arg1.target as MovieClip); _local2.flame.flameOn(); _local2.over(); } public function calcFadeIn(){ var _local1:BitmapData = new BitmapData(400, 500, true); _local1.draw(level); if (!mapFadeIn){ mapFadeIn = new Bitmap(_local1); } else { mapFadeIn.bitmapData = _local1; }; fadeContainer.addChild(mapFadeIn); } function frame171(){ screenDestination = "menuFrame"; if (!Protection.isKONGREGATE()){ timer.stop(); btn_Kong.addEventListener(MouseEvent.CLICK, handleKong); }; stop(); } public function handleButtonOut(_arg1:MouseEvent):void{ var _local2:MovieClip = (_arg1.target as MovieClip); _local2.flame.flameOff(); _local2.up(); } function frame1(){ debug = false; _mochiads_game_id = "db7801094352da5d"; if (((!(Protection.isKONGREGATE())) && (!(debug)))){ MochiAd.showPreGameAd({id:_mochiads_game_id, res:"400x500", clip:mochiClip, no_bg:true, ad_finished:mochiFinished}); stop(); }; } public function handleKong(_arg1:MouseEvent):void{ Protection.toKong(); } function frame180(){ timer.removeEventListener(TimerEvent.TIMER, handleTimer); timer.stop(); timer = null; System.gc(); gotoAndPlay(screenDestination); } function frame2(){ loader.debug = debug; kongLogo.addEventListener(MouseEvent.CLICK, handleKong); stop(); kongregate = new KongregateAPI(); this.addChild(kongregate); } function frame4(){ stop(); if (root.loaderInfo.bytesLoaded >= root.loaderInfo.bytesTotal){ play(); }; } public function delayedInit():void{ initTimer = new Timer(1000, 1); initTimer.addEventListener("timer", onDelayedInit); initTimer.start(); } public function handleWin(_arg1:Event):void{ var _local5:int; var _local6:int; var _local7:int; var _local8:Boolean; var _local9:String; var _local10:String; var _local11:int; var _local2:Array = new Array(); level.removeEventListener(GameLevel.WIN, handleWin); level.removeEventListener(GameLevel.LOOSE, handleLoose); acedScreen.unlockBackground.visible = false; acedScreen.unlockText.text.visible = false; var _local3:int = level.shotTaken; var _local4:Number = int((level.winTime / 40)); _local4 = (_local4 + ((level.winTime - (_local4 * 40)) / 40)); _local4 = int((_local4 * 1000)); if (isBonus){ _local5 = (targetLevel.charCodeAt(0) - 24); _local6 = (targetLevel.charCodeAt(0) - 65); gameData.bonusArray[_local6].complete = true; screenDestination = "levelSelect"; } else { _local5 = int(targetLevel); }; if (_local3 == 1){ if (!gameData.levelData[_local5].aced){ gameData.levelData[_local5].aced = true; _local7 = gameData.levelAced; _local8 = false; _local7++; gameData.levelAced = _local7; if (_local7 >= 27){ gameData.bonusUnlocked = 4; _local8 = true; } else { if (_local7 > 17){ gameData.bonusUnlocked = 3; } else { if (_local7 == 17){ gameData.bonusUnlocked = 3; _local8 = true; } else { if (_local7 > 10){ gameData.bonusUnlocked = 2; } else { if (_local7 == 10){ gameData.bonusUnlocked = 2; _local8 = true; } else { if (_local7 > 5){ gameData.bonusUnlocked = 1; } else { if (_local7 == 5){ gameData.bonusUnlocked = 1; _local8 = true; } else { if (_local7 < 5){ gameData.bonusUnlocked = 0; }; }; }; }; }; }; }; }; if (_local8){ gameData.bonusArray[(gameData.bonusUnlocked - 1)].unlock = true; _local9 = String.fromCharCode((gameData.bonusUnlocked + 64)); acedScreen.unlockBackground.visible = true; acedScreen.unlockText.text.visible = true; _local10 = (("- Secret level " + _local9) + "! "); acedScreen.unlockText.text.text = (((_local10 + _local10) + _local10) + _local10); }; }; }; if (_local4 < gameData.levelData[_local5].time){ gameData.levelData[_local5].time = _local4; }; if (!isBonus){ _local5++; targetLevel = ((_local5 < 10)) ? ("0" + _local5) : _local5.toString(); if ((_local5 - 1) > gameData.lastLevel){ gameData.lastLevel = (_local5 - 1); }; if (gameData.lastLevel > 40){ gameData.lastLevel = 40; }; }; if ((((_local5 > MAXLEVEL)) && (!(isBonus)))){ gameData.gameWon = true; screenDestination = "totallyWon"; }; gameData.flush(); if (isBonus){ _local2.push({name:(("BonusLevel" + targetLevel) + "Won"), value:1}); }; _local2.push({name:"AcedLevels", value:gameData.levelAced}); if (gameData.levelAced >= 34){ _local2.push({name:"PerfectAces", value:"1"}); }; if (gameData.gameWon){ _local2.push({name:"GameWon", value:"1"}); _local2.push({name:"TotalTime", value:gameData.totalTime}); }; _local2.push({name:"BonusLevelUnlocked", value:gameData.bonusUnlocked}); _local2.push({name:"LevelCompleted", value:gameData.levelCompleted}); if (debug){ _local11 = 0; while (_local11 < _local2.length) { _local11++; }; }; if (_local2.length){ if (kongregate){ kongregate.stats.submitArray(_local2); }; }; if (_local3 == 1){ addChild(acedScreen); winSound.play(0, 0); acedScreen.play(); } else { winSound.play(0, 0); play(); }; } public function updateScreen(_arg1:Event):void{ var _local2:Number; if (isFading){ _local2 = creditScroll.alpha; _local2 = (_local2 - 0.1); if (_local2 < 0){ _local2 = 0; }; creditScroll.alpha = _local2; }; if (creditScroll.y > scrollMax){ creditScroll.y = (creditScroll.y + -1); }; flame.update(); } function frame181(){ scrollMax = (-(creditScroll.height) + 250); creditTimer = new Timer(2000, 1); isFading = false; if (!flame){ flame = new CreditFlame(408, 50); }; stop(); flame.x = -4; flame.y = 458; flame.smoothing = false; addChild(flame); btn_Back.addEventListener(MouseEvent.CLICK, handleBack); creditTimer.addEventListener(TimerEvent.TIMER, handleEndCredit); stage.addEventListener(Event.ENTER_FRAME, updateScreen); creditScroll.btn_Kong.addEventListener(MouseEvent.CLICK, handleKong); } public function handleEndCredit(_arg1:TimerEvent):void{ creditTimer.removeEventListener(TimerEvent.TIMER, handleEndCredit); stage.removeEventListener(Event.ENTER_FRAME, updateScreen); flame.dispose(); creditTimer.stop(); creditTimer = null; flame = null; gotoAndPlay("menuFrame"); } function frame31(){ mainClickSound = new Torch_1(); mainAmbientSound = new Crackle(); mainAmbientSoundTransform = new SoundTransform(0.06, 0); stop(); if (!gameData){ gameData = new SaveFile(); }; mainAmbientChannel = mainAmbientSound.play(0, int.MAX_VALUE, mainAmbientSoundTransform); btn_Instruction.mouseChildren = false; btn_NewGame.mouseChildren = false; btn_Credits.mouseChildren = false; btn_Sponsor.mouseChildren = false; initButtons(); } public function handleAceComplete(_arg1:Event):void{ removeChild(acedScreen); play(); } function frame191(){ stop(); instruction.btn_Back.addEventListener(MouseEvent.CLICK, handleInstBack); } public function handleInstBack(_arg1:MouseEvent):void{ play(); } function frame21(){ if (titleFlame == null){ titleFlame = new MaskedFlame(maskedFlame, 250, 115); }; stage.addEventListener(KeyboardEvent.KEY_UP, handleMute); } public function handleDamijinComplete(_arg1:Event):void{ dLogo.removeEventListener(Event.COMPLETE, handleDamijinComplete); gotoAndPlay("gregLogo"); } function frame40(){ titleFlame = null; gotoAndPlay(screenDestination); } function frame41(){ levelSelector.saveData = gameData; levelSelector.init(); levelSelector.setLevel(gameData.lastLevel); } public function handleMenu(_arg1:MouseEvent):void{ screenDestination = "levelSelect"; removeChild(deathScene); play(); } function frame111(){ stop(); } public function playLevel(_arg1:String):void{ screenDestination = "startGame"; targetLevel = _arg1; play(); } function frame131(){ stop(); } public function handleSkip(_arg1:MouseEvent):void{ if (gLogo){ gLogo.stopSound(); }; gotoAndPlay("menuFrame"); } function frame51(){ targetLevel = "01"; stop(); } function frame52(){ } public function handleSponsor(_arg1:MouseEvent):void{ mainClickSound.play(); Protection.toKong(); } function frame60(){ gotoAndPlay(screenDestination); } function frame61(){ levelClass = (getDefinitionByName(("Level" + targetLevel)) as Class); level = new levelClass(); isBonus = isNaN(Number(targetLevel)); level.level = targetLevel; addChild(level); level.initialize(); calcFadeIn(); level.visible = false; } public function initAPI():void{ var _local1:Object = LoaderInfo(MovieClip(root).loaderInfo).parameters; if (_local1.api_url == null){ _local1 = topGameParams(); if ((((_local1 == null)) || ((_local1.api_url == null)))){ delayedInit(); return; }; }; var _local2:String = _local1.api_path; var _local3:Loader = new Loader(); _local3.contentLoaderInfo.addEventListener(Event.COMPLETE, kongregateComplete); _local3.load(new URLRequest(_local2)); (root as MovieClip).addChild(_local3); } public function handleTimer(_arg1:TimerEvent){ play(); } } }//package Pyro_flaSection 118//Block (Block) package { import flash.display.*; public dynamic class Block extends Sprite { } }//packageSection 119//BlueFlamePalette (BlueFlamePalette) package { import flash.display.*; public dynamic class BlueFlamePalette extends Sprite { } }//packageSection 120//BonusLevelButton (BonusLevelButton) package { import game.*; public dynamic class BonusLevelButton extends LevelButton { } }//packageSection 121//BounceUpZone (BounceUpZone) package { import game.*; public dynamic class BounceUpZone extends BounceUpPowerUp { } }//packageSection 122//ButtonHitArea (ButtonHitArea) package { import flash.display.*; public dynamic class ButtonHitArea extends Sprite { } }//packageSection 123//Crackle (Crackle) package { import flash.media.*; public dynamic class Crackle extends Sound { } }//packageSection 124//Crate (Crate) package { import game.*; public dynamic class Crate extends Burnable { } }//packageSection 125//CrateBitmap (CrateBitmap) package { import flash.display.*; public dynamic class CrateBitmap extends BitmapData { public function CrateBitmap(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 126//CrateBurnBitmap (CrateBurnBitmap) package { import flash.display.*; public dynamic class CrateBurnBitmap extends BitmapData { public function CrateBurnBitmap(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 127//DamijinLogo (DamijinLogo) package { import flash.events.*; import flash.display.*; public dynamic class DamijinLogo extends MovieClip { public function DamijinLogo(){ addFrameScript(0, frame1, 184, frame185); } function frame185(){ dispatchEvent(new Event(Event.COMPLETE)); } function frame1(){ stop(); } } }//packageSection 128//DragHandle (DragHandle) package { import flash.display.*; public dynamic class DragHandle extends Sprite { public var gauge:MovieClip; } }//packageSection 129//DummyBody (DummyBody) package { import flash.display.*; public dynamic class DummyBody extends Sprite { } }//packageSection 130//FireballDragArea (FireballDragArea) package { import flash.display.*; public dynamic class FireballDragArea extends Sprite { } }//packageSection 131//FireballInit (FireballInit) package { import flash.display.*; public dynamic class FireballInit extends Sprite { public var display:MovieClip; public var buttonHitArea:ButtonHitArea; } }//packageSection 132//FlameLoader (FlameLoader) package { import flash.events.*; import flash.display.*; import effects.*; public dynamic class FlameLoader extends MovieClip { public var debug:Boolean; public var delay:int; public var percent:Number; public var flameContainer:MovieClip; public var waiting:Boolean; public var flame:Flame; public var currWidth:Number; public var targetWidth:Number; public function FlameLoader(){ addFrameScript(0, frame1); } function frame1(){ flame = new Flame(305, 45); currWidth = 3; targetWidth = 3; waiting = true; flameContainer.addChild(flame); flame.x = -3; addEventListener(Event.ENTER_FRAME, update); } public function update(_arg1:Event):void{ var _local2:LoaderInfo = root.loaderInfo; percent = (_local2.bytesLoaded / _local2.bytesTotal); targetWidth = ((percent * 302) + 3); if (currWidth < targetWidth){ if (debug){ currWidth = targetWidth; } else { currWidth = (currWidth + 1); }; }; if ((((((currWidth > 302)) && ((percent == 1)))) && (waiting))){ delay++; if (delay > 120){ waiting = false; (parent as MovieClip).play(); }; }; flame.update(currWidth); } public function stopPreloader():void{ removeEventListener(Event.ENTER_FRAME, update); flame = null; } } }//packageSection 133//FlamePalette (FlamePalette) package { import flash.display.*; public dynamic class FlamePalette extends Sprite { } }//packageSection 134//Flare (Flare) package { import flash.media.*; public dynamic class Flare extends Sound { } }//packageSection 135//GreenFlamePalette (GreenFlamePalette) package { import flash.display.*; public dynamic class GreenFlamePalette extends Sprite { } }//packageSection 136//GregLogo (GregLogo) package { import flash.events.*; import flash.display.*; import flash.media.*; public dynamic class GregLogo extends MovieClip { public var hummTfm:SoundTransform; public var turnOff:Sound; public var humm:Sound; public var hummChan:SoundChannel; public function GregLogo(){ addFrameScript(0, frame1, 1, frame2, 10, frame11, 14, frame15, 34, frame35); } function frame2(){ humm = new Humm(); turnOff = new MonitorOff(); hummTfm = new SoundTransform(0); hummChan = humm.play(0, int.MAX_VALUE, hummTfm); addEventListener(Event.ENTER_FRAME, handleFadeIn); } public function handleFadeIn(_arg1:Event):void{ var _local2:Number = hummTfm.volume; _local2 = (_local2 + 0.1); if (_local2 >= 1){ _local2 = 1; removeEventListener(Event.ENTER_FRAME, handleFadeIn); }; hummTfm.volume = _local2; hummChan.soundTransform = hummTfm; } public function handleFadeOut(_arg1:Event):void{ var _local2:Number = hummTfm.volume; _local2 = (_local2 - 0.1); if (_local2 <= 0){ _local2 = 0; removeEventListener(Event.ENTER_FRAME, handleFadeOut); }; hummTfm.volume = _local2; hummChan.soundTransform = hummTfm; } function frame1(){ stop(); } public function stopSound():void{ hummChan.stop(); } function frame11(){ stop(); } function frame15(){ addEventListener(Event.ENTER_FRAME, handleFadeOut); } function frame35(){ stop(); dispatchEvent(new Event(Event.COMPLETE)); } } }//packageSection 137//HalfSizeZone (HalfSizeZone) package { import game.*; public dynamic class HalfSizeZone extends HalfSizePowerUp { } }//packageSection 138//HUD (HUD) package { import flash.display.*; import flash.text.*; public dynamic class HUD extends Sprite { public var btn_Mute:SimpleButton; public var lifeText:TextField; public var btn_Suicide:SimpleButton; public var percentText:TextField; public var level:TextField; public var dragHandle:DragHandle; } }//packageSection 139//Humm (Humm) package { import flash.media.*; public dynamic class Humm extends Sound { } }//packageSection 140//Keyboard_Click_0 (Keyboard_Click_0) package { import flash.media.*; public dynamic class Keyboard_Click_0 extends Sound { } }//packageSection 141//Keyboard_Click_1 (Keyboard_Click_1) package { import flash.media.*; public dynamic class Keyboard_Click_1 extends Sound { } }//packageSection 142//Keyboard_Click_2 (Keyboard_Click_2) package { import flash.media.*; public dynamic class Keyboard_Click_2 extends Sound { } }//packageSection 143//Keyboard_Spacebar_0 (Keyboard_Spacebar_0) package { import flash.media.*; public dynamic class Keyboard_Spacebar_0 extends Sound { } }//packageSection 144//Keyboard_Spacebar_1 (Keyboard_Spacebar_1) package { import flash.media.*; public dynamic class Keyboard_Spacebar_1 extends Sound { } }//packageSection 145//Keyboard_Spacebar_2 (Keyboard_Spacebar_2) package { import flash.media.*; public dynamic class Keyboard_Spacebar_2 extends Sound { } }//packageSection 146//Kong_Logo (Kong_Logo) package { import flash.display.*; public dynamic class Kong_Logo extends MovieClip { public function Kong_Logo(){ addFrameScript(128, frame129); } function frame129(){ stop(); } } }//packageSection 147//Kong_Logo_Pyro (Kong_Logo_Pyro) package { import flash.display.*; public dynamic class Kong_Logo_Pyro extends MovieClip { public function Kong_Logo_Pyro(){ addFrameScript(6, frame7); } function frame7(){ stop(); } } }//packageSection 148//Level01 (Level01) package { import game.*; public dynamic class Level01 extends GameLevel { public function Level01(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(2, 5); } function frame1(){ } } }//packageSection 149//Level02 (Level02) package { import game.*; public dynamic class Level02 extends GameLevel { public function Level02(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(1, 2); } function frame1(){ } } }//packageSection 150//Level03 (Level03) package { import game.*; public dynamic class Level03 extends GameLevel { public function Level03(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(1, 6); } function frame1(){ } } }//packageSection 151//Level04 (Level04) package { import game.*; public dynamic class Level04 extends GameLevel { public function Level04(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(2, 2); } function frame1(){ } } }//packageSection 152//Level05 (Level05) package { import game.*; public dynamic class Level05 extends GameLevel { public function Level05(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(2, 6); super.bonusTrigger = "A"; } function frame1(){ } } }//packageSection 153//Level06 (Level06) package { import game.*; public dynamic class Level06 extends GameLevel { public function Level06(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(3, 2); } function frame1(){ } } }//packageSection 154//Level07 (Level07) package { import game.*; public dynamic class Level07 extends GameLevel { public function Level07(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(1, 2); } function frame1(){ } } }//packageSection 155//Level08 (Level08) package { import game.*; public dynamic class Level08 extends GameLevel { public function Level08(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(2, 3); } function frame1(){ } } }//packageSection 156//Level09 (Level09) package { import game.*; public dynamic class Level09 extends GameLevel { public function Level09(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(1, 1); } function frame1(){ } } }//packageSection 157//Level10 (Level10) package { import game.*; public dynamic class Level10 extends GameLevel { public function Level10(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(2, 4); } function frame1(){ } } }//packageSection 158//Level11 (Level11) package { import game.*; public dynamic class Level11 extends GameLevel { public function Level11(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(2, 3); } function frame1(){ } } }//packageSection 159//Level12 (Level12) package { import game.*; public dynamic class Level12 extends GameLevel { public function Level12(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(2, 5); } function frame1(){ } } }//packageSection 160//Level13 (Level13) package { import game.*; public dynamic class Level13 extends GameLevel { public function Level13(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(1, 1); } function frame1(){ } } }//packageSection 161//Level14 (Level14) package { import game.*; public dynamic class Level14 extends GameLevel { public function Level14(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(1, 2); } function frame1(){ } } }//packageSection 162//Level15 (Level15) package { import game.*; public dynamic class Level15 extends GameLevel { public function Level15(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(2, 8); } function frame1(){ } } }//packageSection 163//Level16 (Level16) package { import game.*; public dynamic class Level16 extends GameLevel { public function Level16(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(3, 14); } function frame1(){ } } }//packageSection 164//Level17 (Level17) package { import game.*; public dynamic class Level17 extends GameLevel { public function Level17(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(2, 3); } function frame1(){ } } }//packageSection 165//Level18 (Level18) package { import game.*; public dynamic class Level18 extends GameLevel { public function Level18(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(3, 9); } function frame1(){ } } }//packageSection 166//Level19 (Level19) package { import game.*; public dynamic class Level19 extends GameLevel { public function Level19(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(3, 3); } function frame1(){ } } }//packageSection 167//Level20 (Level20) package { import game.*; public dynamic class Level20 extends GameLevel { public function Level20(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(2, 2); } function frame1(){ } } }//packageSection 168//Level21 (Level21) package { import game.*; public dynamic class Level21 extends GameLevel { public function Level21(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(2, 10); } function frame1(){ } } }//packageSection 169//Level22 (Level22) package { import game.*; public dynamic class Level22 extends GameLevel { public function Level22(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(2, 3); super.bonusTrigger = "C"; } function frame1(){ } } }//packageSection 170//Level23 (Level23) package { import game.*; public dynamic class Level23 extends GameLevel { public function Level23(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(3, 5); } function frame1(){ } } }//packageSection 171//Level24 (Level24) package { import game.*; public dynamic class Level24 extends GameLevel { public function Level24(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(1, 3); } function frame1(){ } } }//packageSection 172//Level25 (Level25) package { import game.*; public dynamic class Level25 extends GameLevel { public function Level25(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(1, 3); } function frame1(){ } } }//packageSection 173//Level26 (Level26) package { import game.*; public dynamic class Level26 extends GameLevel { public function Level26(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(2, 4); } function frame1(){ } } }//packageSection 174//Level27 (Level27) package { import game.*; public dynamic class Level27 extends GameLevel { public function Level27(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(2, 1); } function frame1(){ } } }//packageSection 175//Level28 (Level28) package { import game.*; public dynamic class Level28 extends GameLevel { public function Level28(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(3, 10); } function frame1(){ } } }//packageSection 176//Level29 (Level29) package { import game.*; public dynamic class Level29 extends GameLevel { public function Level29(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(2, 3); super.bonusTrigger = "D"; } function frame1(){ } } }//packageSection 177//Level30 (Level30) package { import game.*; public dynamic class Level30 extends GameLevel { public function Level30(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(2, 3); } function frame1(){ } } }//packageSection 178//Level31 (Level31) package { import game.*; public dynamic class Level31 extends GameLevel { public function Level31(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(1, 5); } function frame1(){ } } }//packageSection 179//Level32 (Level32) package { import game.*; public dynamic class Level32 extends GameLevel { public function Level32(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(1, 2); } function frame1(){ } } }//packageSection 180//Level33 (Level33) package { import game.*; public dynamic class Level33 extends GameLevel { public function Level33(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(1, 2); } function frame1(){ } } }//packageSection 181//Level34 (Level34) package { import game.*; public dynamic class Level34 extends GameLevel { public function Level34(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(1, 3); } function frame1(){ } } }//packageSection 182//Level35 (Level35) package { import game.*; public dynamic class Level35 extends GameLevel { public function Level35(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(2, 2); } function frame1(){ } } }//packageSection 183//Level36 (Level36) package { import game.*; public dynamic class Level36 extends GameLevel { public function Level36(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(1, 3); } function frame1(){ } } }//packageSection 184//Level37 (Level37) package { import game.*; public dynamic class Level37 extends GameLevel { public function Level37(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(1, 3); } function frame1(){ } } }//packageSection 185//Level38 (Level38) package { import game.*; public dynamic class Level38 extends GameLevel { public function Level38(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(1, 4); } function frame1(){ } } }//packageSection 186//Level39 (Level39) package { import game.*; public dynamic class Level39 extends GameLevel { public function Level39(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(2, 2); super.bonusTrigger = "B"; } function frame1(){ } } }//packageSection 187//Level40 (Level40) package { import game.*; public dynamic class Level40 extends GameLevel { public function Level40(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(1, 11); } function frame1(){ } } }//packageSection 188//LevelA (LevelA) package { import game.*; public dynamic class LevelA extends GameLevel { public function LevelA(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(1, 2); } function frame1(){ } } }//packageSection 189//LevelB (LevelB) package { import game.*; public dynamic class LevelB extends GameLevel { public function LevelB(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(1, 3); } function frame1(){ } } }//packageSection 190//LevelC (LevelC) package { import game.*; public dynamic class LevelC extends GameLevel { public function LevelC(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(1, 2); } function frame1(){ } } }//packageSection 191//LevelD (LevelD) package { import game.*; public dynamic class LevelD extends GameLevel { public function LevelD(){ addFrameScript(0, frame1); } public function initialize():void{ super.init(1, 4); } function frame1(){ } } }//packageSection 192//LevelPreview01 (LevelPreview01) package { import flash.display.*; public dynamic class LevelPreview01 extends BitmapData { public function LevelPreview01(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 193//LevelPreview02 (LevelPreview02) package { import flash.display.*; public dynamic class LevelPreview02 extends BitmapData { public function LevelPreview02(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 194//LevelPreview03 (LevelPreview03) package { import flash.display.*; public dynamic class LevelPreview03 extends BitmapData { public function LevelPreview03(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 195//LevelPreview04 (LevelPreview04) package { import flash.display.*; public dynamic class LevelPreview04 extends BitmapData { public function LevelPreview04(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 196//LevelPreview05 (LevelPreview05) package { import flash.display.*; public dynamic class LevelPreview05 extends BitmapData { public function LevelPreview05(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 197//LevelPreview06 (LevelPreview06) package { import flash.display.*; public dynamic class LevelPreview06 extends BitmapData { public function LevelPreview06(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 198//LevelPreview07 (LevelPreview07) package { import flash.display.*; public dynamic class LevelPreview07 extends BitmapData { public function LevelPreview07(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 199//LevelPreview08 (LevelPreview08) package { import flash.display.*; public dynamic class LevelPreview08 extends BitmapData { public function LevelPreview08(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 200//LevelPreview09 (LevelPreview09) package { import flash.display.*; public dynamic class LevelPreview09 extends BitmapData { public function LevelPreview09(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 201//LevelPreview10 (LevelPreview10) package { import flash.display.*; public dynamic class LevelPreview10 extends BitmapData { public function LevelPreview10(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 202//LevelPreview11 (LevelPreview11) package { import flash.display.*; public dynamic class LevelPreview11 extends BitmapData { public function LevelPreview11(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 203//LevelPreview12 (LevelPreview12) package { import flash.display.*; public dynamic class LevelPreview12 extends BitmapData { public function LevelPreview12(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 204//LevelPreview13 (LevelPreview13) package { import flash.display.*; public dynamic class LevelPreview13 extends BitmapData { public function LevelPreview13(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 205//LevelPreview14 (LevelPreview14) package { import flash.display.*; public dynamic class LevelPreview14 extends BitmapData { public function LevelPreview14(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 206//LevelPreview15 (LevelPreview15) package { import flash.display.*; public dynamic class LevelPreview15 extends BitmapData { public function LevelPreview15(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 207//LevelPreview16 (LevelPreview16) package { import flash.display.*; public dynamic class LevelPreview16 extends BitmapData { public function LevelPreview16(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 208//LevelPreview17 (LevelPreview17) package { import flash.display.*; public dynamic class LevelPreview17 extends BitmapData { public function LevelPreview17(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 209//LevelPreview18 (LevelPreview18) package { import flash.display.*; public dynamic class LevelPreview18 extends BitmapData { public function LevelPreview18(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 210//LevelPreview19 (LevelPreview19) package { import flash.display.*; public dynamic class LevelPreview19 extends BitmapData { public function LevelPreview19(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 211//LevelPreview20 (LevelPreview20) package { import flash.display.*; public dynamic class LevelPreview20 extends BitmapData { public function LevelPreview20(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 212//LevelPreview21 (LevelPreview21) package { import flash.display.*; public dynamic class LevelPreview21 extends BitmapData { public function LevelPreview21(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 213//LevelPreview22 (LevelPreview22) package { import flash.display.*; public dynamic class LevelPreview22 extends BitmapData { public function LevelPreview22(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 214//LevelPreview23 (LevelPreview23) package { import flash.display.*; public dynamic class LevelPreview23 extends BitmapData { public function LevelPreview23(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 215//LevelPreview24 (LevelPreview24) package { import flash.display.*; public dynamic class LevelPreview24 extends BitmapData { public function LevelPreview24(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 216//LevelPreview25 (LevelPreview25) package { import flash.display.*; public dynamic class LevelPreview25 extends BitmapData { public function LevelPreview25(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 217//LevelPreview26 (LevelPreview26) package { import flash.display.*; public dynamic class LevelPreview26 extends BitmapData { public function LevelPreview26(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 218//LevelPreview27 (LevelPreview27) package { import flash.display.*; public dynamic class LevelPreview27 extends BitmapData { public function LevelPreview27(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 219//LevelPreview28 (LevelPreview28) package { import flash.display.*; public dynamic class LevelPreview28 extends BitmapData { public function LevelPreview28(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 220//LevelPreview29 (LevelPreview29) package { import flash.display.*; public dynamic class LevelPreview29 extends BitmapData { public function LevelPreview29(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 221//LevelPreview30 (LevelPreview30) package { import flash.display.*; public dynamic class LevelPreview30 extends BitmapData { public function LevelPreview30(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 222//LevelPreview31 (LevelPreview31) package { import flash.display.*; public dynamic class LevelPreview31 extends BitmapData { public function LevelPreview31(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 223//LevelPreview32 (LevelPreview32) package { import flash.display.*; public dynamic class LevelPreview32 extends BitmapData { public function LevelPreview32(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 224//LevelPreview33 (LevelPreview33) package { import flash.display.*; public dynamic class LevelPreview33 extends BitmapData { public function LevelPreview33(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 225//LevelPreview34 (LevelPreview34) package { import flash.display.*; public dynamic class LevelPreview34 extends BitmapData { public function LevelPreview34(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 226//LevelPreview35 (LevelPreview35) package { import flash.display.*; public dynamic class LevelPreview35 extends BitmapData { public function LevelPreview35(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 227//LevelPreview36 (LevelPreview36) package { import flash.display.*; public dynamic class LevelPreview36 extends BitmapData { public function LevelPreview36(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 228//LevelPreview37 (LevelPreview37) package { import flash.display.*; public dynamic class LevelPreview37 extends BitmapData { public function LevelPreview37(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 229//LevelPreview38 (LevelPreview38) package { import flash.display.*; public dynamic class LevelPreview38 extends BitmapData { public function LevelPreview38(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 230//LevelPreview39 (LevelPreview39) package { import flash.display.*; public dynamic class LevelPreview39 extends BitmapData { public function LevelPreview39(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 231//LevelPreview40 (LevelPreview40) package { import flash.display.*; public dynamic class LevelPreview40 extends BitmapData { public function LevelPreview40(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 232//LevelPreviewA (LevelPreviewA) package { import flash.display.*; public dynamic class LevelPreviewA extends BitmapData { public function LevelPreviewA(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 233//LevelPreviewB (LevelPreviewB) package { import flash.display.*; public dynamic class LevelPreviewB extends BitmapData { public function LevelPreviewB(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 234//LevelPreviewC (LevelPreviewC) package { import flash.display.*; public dynamic class LevelPreviewC extends BitmapData { public function LevelPreviewC(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 235//LevelPreviewD (LevelPreviewD) package { import flash.display.*; public dynamic class LevelPreviewD extends BitmapData { public function LevelPreviewD(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 236//LongLineZone (LongLineZone) package { import game.*; public dynamic class LongLineZone extends LongLinePowerUp { } }//packageSection 237//LTorch (LTorch) package { import game.*; public dynamic class LTorch extends TorchBase { } }//packageSection 238//MainButton_Loop (MainButton_Loop) package { import flash.media.*; public dynamic class MainButton_Loop extends Sound { } }//packageSection 239//MainButton_Start (MainButton_Start) package { import flash.media.*; public dynamic class MainButton_Start extends Sound { } }//packageSection 240//MainButton_Stop (MainButton_Stop) package { import flash.media.*; public dynamic class MainButton_Stop extends Sound { } }//packageSection 241//MochiAd (MochiAd) package { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class MochiAd { public static function getVersion():String{ return ("2.7"); } public static function showClickAwayAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{ }, ad_finished:function ():void{ }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; var sendHostProgress:Boolean; mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; chk["onEnterFrame"] = function ():void{ var _local4:Number; if (!this.parent){ delete this.onEnterFrame; return; }; var _local1:Object = this.parent._mochiad_ctr; var _local2:Number = (getTimer() - this.started); var _local3:Boolean; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; _local3 = true; chk.started = getTimer(); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (this.root == null){ _local3 = true; }; if (_local3){ delete this.onEnterFrame; }; }; doOnEnterFrame(chk); } public static function _isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function _allowDomains(_arg1:String):String{ var _local2:String = _arg1.split("/")[2].split(":")[0]; Security.allowDomain("*"); Security.allowDomain(_local2); Security.allowInsecureDomain("*"); Security.allowInsecureDomain(_local2); return (_local2); } public static function unload(_arg1:Object):Boolean{ if (((_arg1.clip) && (_arg1.clip._mochiad))){ _arg1 = _arg1.clip; }; if (_arg1.origFrameRate != undefined){ _arg1.stage.frameRate = _arg1.origFrameRate; }; if (!_arg1._mochiad){ return (false); }; if (_arg1._mochiad._containerLCName != undefined){ _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"}); }; if (_arg1._mochiad.onUnload){ _arg1._mochiad.onUnload(); }; delete _arg1._mochiad_loaded; delete _arg1._mochiad; return (true); } public static function showInterLevelAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; var fadeout_time:Number = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = (_arg1 - 250); }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; chk["onEnterFrame"] = function ():void{ var _local4:Number; if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var _local1:Object = this.parent._mochiad_ctr; var _local2:Number = (getTimer() - this.started); var _local3:Boolean; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (_local2 > chk.ad_msec){ _local3 = true; }; if (_local3){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = this.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function _parseOptions(_arg1:Object, _arg2:Object):Object{ var _local4:String; var _local5:Array; var _local6:Number; var _local7:Array; var _local3:Object = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; if (_arg1){ for (_local4 in _arg1) { _local3[_local4] = _arg1[_local4]; }; }; if (_local3.clip == undefined){ throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite.")); }; _arg1 = _local3.clip.loaderInfo.parameters.mochiad_options; if (_arg1){ _local5 = _arg1.split("&"); _local6 = 0; while (_local6 < _local5.length) { _local7 = _local5[_local6].split("="); _local3[unescape(_local7[0])] = unescape(_local7[1]); _local6++; }; }; if (_local3.id == "test"){ }; return (_local3); } public static function _cleanup(_arg1:Object):void{ var k:String; var lc:LocalConnection; var f:Function; var mc = _arg1; if (("lc" in mc)){ lc = mc.lc; f = function ():void{ try { lc.client = null; lc.close(); } catch(e:Error) { }; }; setTimeout(f, 0); }; var idx:Number = DisplayObjectContainer(mc).numChildren; while (idx > 0) { idx = (idx - 1); DisplayObjectContainer(mc).removeChildAt(idx); }; for (k in mc) { delete mc[k]; }; } public static function load(_arg1:Object):MovieClip{ var clip:Object; var k:String; var server:String; var hostname:String; var lc:LocalConnection; var name:String; var loader:Loader; var g:Function; var req:URLRequest; var v:Object; var options = _arg1; var DEFAULTS:Object = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"}; options = MochiAd._parseOptions(options, DEFAULTS); options.swfv = 9; options.mav = MochiAd.getVersion(); clip = options.clip; if (!MochiAd._isNetworkAvailable()){ return (null); }; try { if (clip._mochiad_loaded){ return (null); }; } catch(e:Error) { throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; var depth:Number = options.depth; delete options.depth; var mc:MovieClip = createEmptyMovieClip(clip, "_mochiad", depth); var wh:Array = MochiAd._getRes(options, clip); options.res = ((wh[0] + "x") + wh[1]); options.server = (options.server + options.id); delete options.id; clip._mochiad_loaded = true; if (clip.loaderInfo.loaderURL.indexOf("http") == 0){ options.as3_swf = clip.loaderInfo.loaderURL; }; var lv:URLVariables = new URLVariables(); for (k in options) { v = options[k]; if (!(v is Function)){ lv[k] = v; }; }; server = lv.server; delete lv.server; hostname = _allowDomains(server); lc = new LocalConnection(); lc.client = mc; name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_"); lc.allowDomain("*", "localhost"); lc.allowInsecureDomain("*", "localhost"); lc.connect(name); mc.lc = lc; mc.lcName = name; lv.lc = name; lv.st = getTimer(); loader = new Loader(); g = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); MochiAd.unload(clip); }; loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g); req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime())); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader.load(req); mc.addChild(loader); mc._mochiad_ctr = loader; return (mc); } public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{ var _local4:Array = _arg2.split("."); var _local5:Number = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return (undefined); }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; if (typeof(_arg1[_local4[_local5]]) == "function"){ return (_arg1[_local4[_local5]].apply(_arg1, _arg3)); }; return (undefined); } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{ var _local4:MovieClip = new MovieClip(); if (((false) && (_arg3))){ _arg1.addChildAt(_local4, _arg3); } else { _arg1.addChild(_local4); }; _arg1[_arg2] = _local4; _local4["_name"] = _arg2; return (_local4); } public static function _getRes(_arg1:Object, _arg2:Object):Array{ var _local6:Array; var _local3:Object = _arg2.getBounds(_arg2.root); var _local4:Number = 0; var _local5:Number = 0; if (typeof(_arg1.res) != "undefined"){ _local6 = _arg1.res.split("x"); _local4 = parseFloat(_local6[0]); _local5 = parseFloat(_local6[1]); } else { _local4 = (_local3.xMax - _local3.xMin); _local5 = (_local3.yMax - _local3.yMin); }; if ((((_local4 == 0)) || ((_local5 == 0)))){ _local4 = _arg2.stage.stageWidth; _local5 = _arg2.stage.stageHeight; }; return ([_local4, _local5]); } public static function adShowing(_arg1:Object):void{ _arg1.origFrameRate = _arg1.stage.frameRate; _arg1.stage.frameRate = 30; } public static function getValue(_arg1:Object, _arg2:String):Object{ var _local3:Array = _arg2.split("."); var _local4:Number = 0; while (_local4 < (_local3.length - 1)) { if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){ return (undefined); }; _arg1 = _arg1[_local3[_local4]]; _local4++; }; return (_arg1[_local3[_local4]]); } public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{ var _local4:Object; var _local5:Object; switch (_arg3.id){ case "setValue": MochiAd.setValue(_arg1, _arg3.objectName, _arg3.value); break; case "getValue": _local4 = MochiAd.getValue(_arg1, _arg3.objectName); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4); break; case "runMethod": _local5 = MochiAd.runMethod(_arg1, _arg3.method, _arg3.args); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5); break; }; } public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Array = _arg2.split("."); var _local5:Number = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return; }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; _arg1[_local4[_local5]] = _arg3; } public static function showPreGameAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var complete:Boolean; var unloaded:Boolean; var sendHostProgress:Boolean; var fn:Function; var r:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ }, ad_skipped:function ():void{ }, ad_progress:function (_arg1:Number):void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){ options.ad_started(); fn = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); return; }; clip = options.clip; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; var fadeout_time:Number = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); var fn:Function = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.x = (w * -0.5); chk.y = (h * -0.5); var bar:MovieClip = createEmptyMovieClip(chk, "_mochiad_bar", 4); if (options.no_progress_bar){ bar.visible = false; delete options.no_progress_bar; } else { bar.x = 10; bar.y = (h - 20); }; var bar_color:Number = options.color; delete options.color; var bar_background:Number = options.background; delete options.background; var bar_outline:Number = options.outline; delete options.outline; var backing_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 1); var backing:Object = backing_mc.graphics; backing.beginFill(bar_background); backing.moveTo(0, 0); backing.lineTo((w - 20), 0); backing.lineTo((w - 20), 10); backing.lineTo(0, 10); backing.lineTo(0, 0); backing.endFill(); var inside_mc:MovieClip = createEmptyMovieClip(bar, "_inside", 2); var inside:Object = inside_mc.graphics; inside.beginFill(bar_color); inside.moveTo(0, 0); inside.lineTo((w - 20), 0); inside.lineTo((w - 20), 10); inside.lineTo(0, 10); inside.lineTo(0, 0); inside.endFill(); inside_mc.scaleX = 0; var outline_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 3); var outline:Object = outline_mc.graphics; outline.lineStyle(0, bar_outline, 100); outline.moveTo(0, 0); outline.lineTo((w - 20), 0); outline.lineTo((w - 20), 10); outline.lineTo(0, 10); outline.lineTo(0, 0); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.last_pcnt = 0; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; complete = false; unloaded = false; var f:Function = function (_arg1:Event):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); complete = true; if (unloaded){ MochiAd.unload(clip); }; }; clip.loaderInfo.addEventListener(Event.COMPLETE, f); if ((clip.root is MovieClip)){ r = (clip.root as MovieClip); if (r.framesLoaded >= r.totalFrames){ complete = true; }; }; mc.unloadAd = function ():void{ unloaded = true; if (complete){ MochiAd.unload(clip); }; }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = _arg1; }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; mc.rpcTestFn = function (_arg1:String):Object{ return (_arg1); }; mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; sendHostProgress = false; mc.sendHostLoadProgress = function (_arg1:String):void{ sendHostProgress = true; }; chk["onEnterFrame"] = function ():void{ var _local11:Number; if (((!(this.parent)) || (!(this.parent.parent)))){ delete this["onEnterFrame"]; return; }; var _local1:Object = this.parent.parent.root; var _local2:Object = this.parent._mochiad_ctr; var _local3:Number = (getTimer() - this.started); var _local4:Boolean; var _local5:Number = _local1.loaderInfo.bytesTotal; var _local6:Number = _local1.loaderInfo.bytesLoaded; if (complete){ _local6 = Math.max(1, _local6); _local5 = _local6; }; var _local7:Number = ((100 * _local6) / _local5); var _local8:Number = ((100 * _local3) / chk.ad_msec); var _local9:Object = this._mochiad_bar._inside; var _local10:Number = Math.min(100, Math.min(((_local7) || (0)), _local8)); _local10 = Math.max(this.last_pcnt, _local10); this.last_pcnt = _local10; _local9.scaleX = (_local10 * 0.01); options.ad_progress(_local10); if (sendHostProgress){ clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local7}); if (_local7 == 100){ sendHostProgress = false; }; }; if (!chk.showing){ _local11 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local11 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if ((((_local3 > chk.ad_timeout)) && ((_local7 == 100)))){ options.ad_failed(); _local4 = true; }; }; }; if (_local3 > chk.ad_msec){ _local4 = true; }; if (((complete) && (_local4))){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = chk.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function showPreloaderAd(_arg1:Object):void{ MochiAd.showPreGameAd(_arg1); } public static function showTimedAd(_arg1:Object):void{ MochiAd.showInterLevelAd(_arg1); } public static function doOnEnterFrame(_arg1:MovieClip):void{ var mc = _arg1; var f:Function = function (_arg1:Object):void{ if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){ mc.onEnterFrame(); } else { _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; }; mc.addEventListener(Event.ENTER_FRAME, f); } } }//packageSection 242//MonitorOff (MonitorOff) package { import flash.media.*; public dynamic class MonitorOff extends Sound { } }//packageSection 243//NoiseGenerator (NoiseGenerator) package { import flash.display.*; public dynamic class NoiseGenerator extends Sprite { } }//packageSection 244//Play_Click (Play_Click) package { import flash.media.*; public dynamic class Play_Click extends Sound { } }//packageSection 245//Play_Out (Play_Out) package { import flash.media.*; public dynamic class Play_Out extends Sound { } }//packageSection 246//Play_Over (Play_Over) package { import flash.media.*; public dynamic class Play_Over extends Sound { } }//packageSection 247//PlusOneZone (PlusOneZone) package { import game.*; public dynamic class PlusOneZone extends PlusOnePowerUp { } }//packageSection 248//RedFlamePalette (RedFlamePalette) package { import flash.display.*; public dynamic class RedFlamePalette extends Sprite { } }//packageSection 249//RTorch (RTorch) package { import game.*; public dynamic class RTorch extends TorchBase { } }//packageSection 250//TextMask (TextMask) package { import flash.display.*; public dynamic class TextMask extends Sprite { } }//packageSection 251//Thock_0 (Thock_0) package { import flash.media.*; public dynamic class Thock_0 extends Sound { } }//packageSection 252//Thock_1 (Thock_1) package { import flash.media.*; public dynamic class Thock_1 extends Sound { } }//packageSection 253//Thunk_0 (Thunk_0) package { import flash.media.*; public dynamic class Thunk_0 extends Sound { } }//packageSection 254//Thunk_1 (Thunk_1) package { import flash.media.*; public dynamic class Thunk_1 extends Sound { } }//packageSection 255//Thunk_2 (Thunk_2) package { import flash.media.*; public dynamic class Thunk_2 extends Sound { } }//packageSection 256//Thunk_3 (Thunk_3) package { import flash.media.*; public dynamic class Thunk_3 extends Sound { } }//packageSection 257//TitleFlamePalette (TitleFlamePalette) package { import flash.display.*; public dynamic class TitleFlamePalette extends Sprite { } }//packageSection 258//Torch (Torch) package { import game.*; public dynamic class Torch extends TorchBase { } }//packageSection 259//Torch_0 (Torch_0) package { import flash.media.*; public dynamic class Torch_0 extends Sound { } }//packageSection 260//Torch_1 (Torch_1) package { import flash.media.*; public dynamic class Torch_1 extends Sound { } }//packageSection 261//Torch_2 (Torch_2) package { import flash.media.*; public dynamic class Torch_2 extends Sound { } }//packageSection 262//Torch_3 (Torch_3) package { import flash.media.*; public dynamic class Torch_3 extends Sound { } }//packageSection 263//TorchHitArea (TorchHitArea) package { import flash.display.*; public dynamic class TorchHitArea extends Sprite { } }//packageSection 264//TransparentBlueFlamePalette (TransparentBlueFlamePalette) package { import flash.display.*; public dynamic class TransparentBlueFlamePalette extends Sprite { } }//packageSection 265//TransparentCreditFlamePalette (TransparentCreditFlamePalette) package { import flash.display.*; public dynamic class TransparentCreditFlamePalette extends Sprite { } }//packageSection 266//TransparentFlamePalette (TransparentFlamePalette) package { import flash.display.*; public dynamic class TransparentFlamePalette extends Sprite { } }//packageSection 267//TransparentGreenFlamePalette (TransparentGreenFlamePalette) package { import flash.display.*; public dynamic class TransparentGreenFlamePalette extends Sprite { } }//packageSection 268//TransparentRedFlamePalette (TransparentRedFlamePalette) package { import flash.display.*; public dynamic class TransparentRedFlamePalette extends Sprite { } }//packageSection 269//Win (Win) package { import flash.media.*; public dynamic class Win extends Sound { } }//package
Library Items
Symbol 1 Graphic | Used by:2 | |
Symbol 2 MovieClip {TransparentCreditFlamePalette} | Uses:1 | Used by:303 |
Symbol 3 MovieClip {com.kongregate.as3.client.KongregateAPI} | ||
Symbol 4 Graphic | Used by:5 | |
Symbol 5 MovieClip | Uses:4 | Used by:Timeline |
Symbol 6 MovieClip | Used by:Timeline | |
Symbol 7 Graphic | Used by:8 | |
Symbol 8 MovieClip {TransparentFlamePalette} | Uses:7 | Used by:Timeline |
Symbol 9 Graphic | Used by:14 | |
Symbol 10 Font | Used by:11 51 471 472 473 474 489 490 491 493 494 495 496 504 513 514 515 516 518 519 520 522 523 524 529 536 537 538 539 540 | |
Symbol 11 Text | Uses:10 | Used by:14 |
Symbol 12 Graphic | Used by:14 | |
Symbol 13 MovieClip | Used by:14 | |
Symbol 14 MovieClip {FlameLoader} | Uses:9 11 12 13 | Used by:Timeline |
Symbol 15 Graphic | Used by:41 | |
Symbol 16 Graphic | Used by:17 | |
Symbol 17 MovieClip | Uses:16 | Used by:34 41 |
Symbol 18 Graphic | Used by:19 | |
Symbol 19 MovieClip | Uses:18 | Used by:33 41 |
Symbol 20 Graphic | Used by:21 | |
Symbol 21 MovieClip | Uses:20 | Used by:28 33 34 41 |
Symbol 22 Graphic | Used by:23 | |
Symbol 23 MovieClip | Uses:22 | Used by:28 33 34 41 |
Symbol 24 Graphic | Used by:25 | |
Symbol 25 MovieClip | Uses:24 | Used by:28 33 34 41 |
Symbol 26 Graphic | Used by:27 | |
Symbol 27 MovieClip | Uses:26 | Used by:28 33 34 41 |
Symbol 28 MovieClip | Uses:21 23 25 27 | Used by:41 |
Symbol 29 Graphic | Used by:30 | |
Symbol 30 MovieClip | Uses:29 | Used by:41 |
Symbol 31 Graphic | Used by:34 | |
Symbol 32 Graphic | Used by:34 | |
Symbol 33 MovieClip | Uses:19 21 23 25 27 | Used by:34 |
Symbol 34 MovieClip | Uses:31 17 32 33 21 23 25 27 | Used by:41 |
Symbol 35 Graphic | Used by:36 | |
Symbol 36 MovieClip | Uses:35 | Used by:41 |
Symbol 37 Font | Used by:39 | |
Symbol 38 Font | Used by:39 | |
Symbol 39 Text | Uses:37 38 | Used by:40 |
Symbol 40 MovieClip | Uses:39 | Used by:41 |
Symbol 41 MovieClip {Kong_Logo} | Uses:15 17 19 28 30 21 23 25 27 34 36 40 | Used by:42 |
Symbol 42 MovieClip {Kong_Logo_Pyro} | Uses:41 | Used by:Timeline |
Symbol 43 Graphic | Used by:68 100 303 435 476 481 483 485 486 492 497 517 521 525 | |
Symbol 44 Bitmap {CrateBurnBitmap} | Used by:45 303 | |
Symbol 45 MovieClip | Uses:44 | Used by:52 505 |
Symbol 46 Bitmap {CrateBitmap} | Used by:47 74 303 | |
Symbol 47 MovieClip | Uses:46 | Used by:52 505 |
Symbol 48 Bitmap | Used by:49 109 | |
Symbol 49 Graphic | Uses:48 | Used by:50 |
Symbol 50 MovieClip | Uses:49 | Used by:52 505 |
Symbol 51 EditableText | Uses:10 | Used by:52 |
Symbol 52 MovieClip {game.LevelButton} | Uses:45 47 50 51 | Used by:303 510 |
Symbol 53 Graphic | Used by:54 | |
Symbol 54 MovieClip | Uses:53 | Used by:55 |
Symbol 55 MovieClip {BounceUpZone} | Uses:54 | Used by:284 290 303 |
Symbol 56 Graphic | Used by:57 | |
Symbol 57 MovieClip | Uses:56 | Used by:58 |
Symbol 58 MovieClip {HalfSizeZone} | Uses:57 | Used by:283 296 303 |
Symbol 59 Graphic | Used by:60 | |
Symbol 60 MovieClip | Uses:59 | Used by:61 |
Symbol 61 MovieClip {LongLineZone} | Uses:60 | Used by:256 261 278 280 303 |
Symbol 62 Graphic | Used by:65 92 | |
Symbol 63 Font | Used by:64 112 115 116 118 120 122 125 127 129 203 208 244 253 254 432 433 434 475 487 498 554 555 556 | |
Symbol 64 Text | Uses:63 | Used by:65 |
Symbol 65 MovieClip | Uses:62 64 | Used by:66 |
Symbol 66 MovieClip {PlusOneZone} | Uses:65 | Used by:268 278 303 |
Symbol 67 Graphic | Used by:69 | |
Symbol 68 MovieClip {TorchHitArea} | Uses:43 | Used by:69 71 73 303 |
Symbol 69 MovieClip {LTorch} | Uses:67 68 | Used by:205 210 218 222 224 226 228 230 232 249 251 261 263 265 273 274 276 280 284 286 289 290 302 303 |
Symbol 70 Graphic | Used by:71 | |
Symbol 71 MovieClip {RTorch} | Uses:70 68 | Used by:205 216 218 224 226 228 230 232 249 251 256 263 265 274 276 280 283 284 286 289 290 294 302 303 |
Symbol 72 Graphic | Used by:73 | |
Symbol 73 MovieClip {Torch} | Uses:72 68 | Used by:205 210 213 216 220 222 224 228 232 234 236 238 240 242 246 247 249 261 266 268 276 278 283 284 286 288 289 290 292 294 296 298 300 303 |
Symbol 74 MovieClip | Uses:46 | Used by:75 303 |
Symbol 75 MovieClip {Crate} | Uses:74 | Used by:210 216 218 220 222 224 228 232 234 236 240 246 247 249 251 266 274 280 284 288 289 290 292 294 300 302 303 |
Symbol 76 Graphic | Used by:77 | |
Symbol 77 MovieClip {NoiseGenerator} | Uses:76 | Used by:303 |
Symbol 78 Graphic | Used by:79 | |
Symbol 79 MovieClip {BlueFlamePalette} | Uses:78 | Used by:303 |
Symbol 80 Graphic | Used by:81 | |
Symbol 81 MovieClip {FlamePalette} | Uses:80 | Used by:303 |
Symbol 82 Graphic | Used by:83 | |
Symbol 83 MovieClip {GreenFlamePalette} | Uses:82 | Used by:303 |
Symbol 84 Graphic | Used by:85 | |
Symbol 85 MovieClip {RedFlamePalette} | Uses:84 | Used by:303 |
Symbol 86 Graphic | Used by:87 | |
Symbol 87 MovieClip {TransparentBlueFlamePalette} | Uses:86 | Used by:303 |
Symbol 88 Graphic | Used by:89 | |
Symbol 89 MovieClip {TransparentGreenFlamePalette} | Uses:88 | Used by:303 |
Symbol 90 Graphic | Used by:91 | |
Symbol 91 MovieClip {TransparentRedFlamePalette} | Uses:90 | Used by:303 |
Symbol 92 MovieClip {ButtonHitArea} | Uses:62 | Used by:95 303 |
Symbol 93 Graphic | Used by:94 | |
Symbol 94 MovieClip | Uses:93 | Used by:95 |
Symbol 95 MovieClip {FireballInit} | Uses:92 94 | Used by:205 210 213 216 218 220 222 224 226 228 230 232 234 236 238 240 242 246 247 249 251 256 261 263 265 266 268 273 274 276 278 280 283 284 286 288 289 290 292 294 296 298 300 302 303 |
Symbol 96 Graphic | Used by:97 | |
Symbol 97 MovieClip {Block} | Uses:96 | Used by:205 210 213 216 218 220 222 224 226 228 230 232 234 236 238 240 242 246 247 249 251 256 261 263 265 266 268 273 274 276 278 280 283 284 286 288 289 290 292 294 296 298 300 302 303 |
Symbol 98 Graphic | Used by:99 | |
Symbol 99 MovieClip {FireballDragArea} | Uses:98 | Used by:303 |
Symbol 100 MovieClip | Uses:43 | Used by:103 |
Symbol 101 Graphic | Used by:103 | |
Symbol 102 Graphic | Used by:103 | |
Symbol 103 MovieClip {DragHandle} | Uses:100 101 102 | Used by:131 303 |
Symbol 104 MovieClip {DummyBody} | Used by:303 | |
Symbol 105 Graphic | Used by:106 | |
Symbol 106 MovieClip {TitleFlamePalette} | Uses:105 | Used by:303 |
Symbol 107 Bitmap | Used by:109 201 207 212 215 217 219 221 223 225 227 229 231 233 235 237 239 241 243 248 250 252 262 264 267 269 270 272 275 277 279 281 282 285 287 291 293 295 297 299 301 | |
Symbol 108 Bitmap | Used by:109 217 248 257 258 259 260 | |
Symbol 109 Graphic | Uses:48 107 108 | Used by:303 |
Symbol 110 Graphic | Used by:131 | |
Symbol 111 Font | Used by:112 556 | |
Symbol 112 EditableText | Uses:63 111 | Used by:131 |
Symbol 113 Graphic | Used by:114 | |
Symbol 114 MovieClip | Uses:113 | Used by:131 |
Symbol 115 EditableText | Uses:63 | Used by:131 |
Symbol 116 EditableText | Uses:63 | Used by:131 |
Symbol 117 Graphic | Used by:123 | |
Symbol 118 Text | Uses:63 | Used by:123 |
Symbol 119 Graphic | Used by:123 | |
Symbol 120 Text | Uses:63 | Used by:123 |
Symbol 121 Graphic | Used by:123 | |
Symbol 122 Text | Uses:63 | Used by:123 |
Symbol 123 Button | Uses:117 118 119 120 121 122 | Used by:131 |
Symbol 124 Graphic | Used by:130 | |
Symbol 125 Text | Uses:63 | Used by:130 |
Symbol 126 Graphic | Used by:130 | |
Symbol 127 Text | Uses:63 | Used by:130 |
Symbol 128 Graphic | Used by:130 | |
Symbol 129 Text | Uses:63 | Used by:130 |
Symbol 130 Button | Uses:124 125 126 127 128 129 | Used by:131 |
Symbol 131 MovieClip {HUD} | Uses:110 112 114 115 116 103 123 130 | Used by:303 |
Symbol 132 Graphic | Used by:133 | |
Symbol 133 MovieClip {TextMask} | Uses:132 | Used by:303 470 |
Symbol 134 Sound {Crackle} | Used by:303 | |
Symbol 135 Sound {Flare} | Used by:303 | |
Symbol 136 Sound {Thock_0} | Used by:303 | |
Symbol 137 Sound {Thock_1} | Used by:303 | |
Symbol 138 Sound {Thunk_0} | Used by:303 | |
Symbol 139 Sound {Thunk_1} | Used by:303 | |
Symbol 140 Sound {Thunk_2} | Used by:303 | |
Symbol 141 Sound {Thunk_3} | Used by:303 | |
Symbol 142 Sound {Torch_0} | Used by:303 | |
Symbol 143 Sound {Torch_1} | Used by:303 | |
Symbol 144 Sound {Torch_2} | Used by:303 | |
Symbol 145 Sound {Torch_3} | Used by:303 | |
Symbol 146 Sound {Win} | Used by:303 | |
Symbol 147 Sound {MainButton_Start} | Used by:303 | |
Symbol 148 Sound {MainButton_Loop} | Used by:303 | |
Symbol 149 Sound {MainButton_Stop} | Used by:303 | |
Symbol 150 Sound {Keyboard_Click_0} | Used by:303 | |
Symbol 151 Sound {Keyboard_Click_1} | Used by:303 | |
Symbol 152 Sound {Keyboard_Click_2} | Used by:303 | |
Symbol 153 Sound {Keyboard_Spacebar_0} | Used by:303 | |
Symbol 154 Sound {Keyboard_Spacebar_1} | Used by:303 | |
Symbol 155 Sound {Keyboard_Spacebar_2} | Used by:303 | |
Symbol 156 Sound {Humm} | Used by:303 | |
Symbol 157 Sound {Play_Click} | Used by:303 | |
Symbol 158 Sound {Play_Out} | Used by:303 | |
Symbol 159 Sound {Play_Over} | Used by:303 | |
Symbol 160 Bitmap {LevelPreview01} | Used by:303 | |
Symbol 161 Bitmap {LevelPreview02} | Used by:303 | |
Symbol 162 Bitmap {LevelPreview03} | Used by:303 | |
Symbol 163 Bitmap {LevelPreview04} | Used by:303 | |
Symbol 164 Bitmap {LevelPreview05} | Used by:303 | |
Symbol 165 Bitmap {LevelPreview06} | Used by:303 | |
Symbol 166 Bitmap {LevelPreview07} | Used by:303 | |
Symbol 167 Bitmap {LevelPreview08} | Used by:303 | |
Symbol 168 Bitmap {LevelPreview09} | Used by:303 | |
Symbol 169 Bitmap {LevelPreview10} | Used by:303 | |
Symbol 170 Bitmap {LevelPreview11} | Used by:303 | |
Symbol 171 Bitmap {LevelPreview12} | Used by:303 | |
Symbol 172 Bitmap {LevelPreview13} | Used by:303 | |
Symbol 173 Bitmap {LevelPreview14} | Used by:303 | |
Symbol 174 Bitmap {LevelPreview15} | Used by:303 | |
Symbol 175 Bitmap {LevelPreview16} | Used by:303 | |
Symbol 176 Bitmap {LevelPreview17} | Used by:303 | |
Symbol 177 Bitmap {LevelPreview18} | Used by:303 | |
Symbol 178 Bitmap {LevelPreview27} | Used by:303 | |
Symbol 179 Bitmap {LevelPreview19} | Used by:303 | |
Symbol 180 Bitmap {LevelPreview20} | Used by:303 | |
Symbol 181 Bitmap {LevelPreview21} | Used by:303 | |
Symbol 182 Bitmap {LevelPreview22} | Used by:303 | |
Symbol 183 Bitmap {LevelPreview23} | Used by:303 | |
Symbol 184 Bitmap {LevelPreview24} | Used by:303 | |
Symbol 185 Bitmap {LevelPreview25} | Used by:303 | |
Symbol 186 Bitmap {LevelPreview26} | Used by:303 | |
Symbol 187 Bitmap {LevelPreview28} | Used by:303 | |
Symbol 188 Bitmap {LevelPreview29} | Used by:303 | |
Symbol 189 Bitmap {LevelPreview30} | Used by:303 | |
Symbol 190 Bitmap {LevelPreview31} | Used by:303 | |
Symbol 191 Bitmap {LevelPreview32} | Used by:303 | |
Symbol 192 Bitmap {LevelPreview33} | Used by:303 | |
Symbol 193 Bitmap {LevelPreview34} | Used by:303 | |
Symbol 194 Bitmap {LevelPreview35} | Used by:303 | |
Symbol 195 Bitmap {LevelPreview36} | Used by:303 | |
Symbol 196 Bitmap {LevelPreview37} | Used by:303 | |
Symbol 197 Bitmap {LevelPreview38} | Used by:303 | |
Symbol 198 Bitmap {LevelPreview39} | Used by:303 | |
Symbol 199 Bitmap {LevelPreview40} | Used by:303 | |
Symbol 200 Bitmap {LevelPreviewA} | Used by:303 | |
Symbol 201 Graphic | Uses:107 | Used by:205 |
Symbol 202 MovieClip | Used by:205 213 216 218 220 222 224 226 228 230 232 234 236 238 240 242 247 249 251 261 263 265 266 268 273 274 276 278 280 283 284 286 288 289 290 292 294 296 298 300 302 | |
Symbol 203 Text | Uses:63 | Used by:204 |
Symbol 204 MovieClip | Uses:203 | Used by:205 |
Symbol 205 MovieClip {Level01} | Uses:201 69 71 73 202 204 95 97 | Used by:303 |
Symbol 206 Bitmap {LevelPreviewB} | Used by:303 | |
Symbol 207 Graphic | Uses:107 | Used by:210 |
Symbol 208 Text | Uses:63 | Used by:209 |
Symbol 209 MovieClip | Uses:208 | Used by:210 |
Symbol 210 MovieClip {Level02} | Uses:207 75 73 69 209 95 97 | Used by:303 |
Symbol 211 Bitmap {LevelPreviewC} | Used by:303 | |
Symbol 212 Graphic | Uses:107 | Used by:213 |
Symbol 213 MovieClip {Level12} | Uses:212 73 202 95 97 | Used by:303 |
Symbol 214 Bitmap {LevelPreviewD} | Used by:303 | |
Symbol 215 Graphic | Uses:107 | Used by:216 |
Symbol 216 MovieClip {Level25} | Uses:215 75 71 73 202 95 97 | Used by:303 |
Symbol 217 Graphic | Uses:107 108 | Used by:218 |
Symbol 218 MovieClip {Level04} | Uses:217 75 69 71 202 95 97 | Used by:303 |
Symbol 219 Graphic | Uses:107 | Used by:220 |
Symbol 220 MovieClip {Level27} | Uses:219 75 73 202 95 97 | Used by:303 |
Symbol 221 Graphic | Uses:107 | Used by:222 |
Symbol 222 MovieClip {Level39} | Uses:221 75 69 73 202 95 97 | Used by:303 |
Symbol 223 Graphic | Uses:107 | Used by:224 |
Symbol 224 MovieClip {Level17} | Uses:223 75 69 71 73 202 95 97 | Used by:303 |
Symbol 225 Graphic | Uses:107 | Used by:226 |
Symbol 226 MovieClip {Level14} | Uses:225 69 71 202 95 97 | Used by:303 |
Symbol 227 Graphic | Uses:107 | Used by:228 |
Symbol 228 MovieClip {Level38} | Uses:227 75 73 71 69 202 95 97 | Used by:303 |
Symbol 229 Graphic | Uses:107 | Used by:230 |
Symbol 230 MovieClip {Level36} | Uses:229 69 71 202 95 97 | Used by:303 |
Symbol 231 Graphic | Uses:107 | Used by:232 |
Symbol 232 MovieClip {Level26} | Uses:231 75 73 71 69 202 95 97 | Used by:303 |
Symbol 233 Graphic | Uses:107 | Used by:234 |
Symbol 234 MovieClip {Level13} | Uses:233 75 73 202 95 97 | Used by:303 |
Symbol 235 Graphic | Uses:107 | Used by:236 |
Symbol 236 MovieClip {Level08} | Uses:235 75 73 202 95 97 | Used by:303 |
Symbol 237 Graphic | Uses:107 | Used by:238 |
Symbol 238 MovieClip {Level32} | Uses:237 73 202 95 97 | Used by:303 |
Symbol 239 Graphic | Uses:107 | Used by:240 247 261 266 274 284 289 290 |
Symbol 240 MovieClip {Level28} | Uses:239 75 73 202 95 97 | Used by:303 |
Symbol 241 Graphic | Uses:107 | Used by:242 |
Symbol 242 MovieClip {Level16} | Uses:241 73 202 95 97 | Used by:303 |
Symbol 243 Graphic | Uses:107 | Used by:246 |
Symbol 244 Text | Uses:63 | Used by:245 |
Symbol 245 MovieClip | Uses:244 | Used by:246 |
Symbol 246 MovieClip {Level03} | Uses:243 75 73 245 95 97 | Used by:303 |
Symbol 247 MovieClip {Level10} | Uses:239 75 73 202 95 97 | Used by:303 |
Symbol 248 Graphic | Uses:108 107 | Used by:249 |
Symbol 249 MovieClip {Level19} | Uses:248 75 71 69 73 202 95 97 | Used by:303 |
Symbol 250 Graphic | Uses:107 | Used by:251 |
Symbol 251 MovieClip {Level35} | Uses:250 75 71 69 202 95 97 | Used by:303 |
Symbol 252 Graphic | Uses:107 | Used by:256 |
Symbol 253 Text | Uses:63 | Used by:255 |
Symbol 254 Text | Uses:63 | Used by:255 |
Symbol 255 MovieClip | Uses:253 254 | Used by:256 |
Symbol 256 MovieClip {Level09} | Uses:252 71 61 255 95 97 | Used by:303 |
Symbol 257 Graphic | Uses:108 | Used by:261 |
Symbol 258 Graphic | Uses:108 | Used by:261 |
Symbol 259 Graphic | Uses:108 | Used by:261 |
Symbol 260 Graphic | Uses:108 | Used by:261 |
Symbol 261 MovieClip {Level34} | Uses:239 202 257 73 258 259 61 69 260 95 97 | Used by:303 |
Symbol 262 Graphic | Uses:107 | Used by:263 |
Symbol 263 MovieClip {Level22} | Uses:262 71 69 202 95 97 | Used by:303 |
Symbol 264 Graphic | Uses:107 | Used by:265 |
Symbol 265 MovieClip {Level06} | Uses:264 71 69 202 95 97 | Used by:303 |
Symbol 266 MovieClip {Level18} | Uses:239 75 73 202 95 97 | Used by:303 |
Symbol 267 Graphic | Uses:107 | Used by:268 |
Symbol 268 MovieClip {Level07} | Uses:267 73 66 202 95 97 | Used by:303 |
Symbol 269 Graphic | Uses:107 | Used by:273 |
Symbol 270 Graphic | Uses:107 | Used by:271 |
Symbol 271 MovieClip | Uses:270 | Used by:273 283 |
Symbol 272 Graphic | Uses:107 | Used by:273 |
Symbol 273 MovieClip {Level05} | Uses:269 271 272 69 202 95 97 | Used by:303 |
Symbol 274 MovieClip {Level24} | Uses:239 75 71 69 202 95 97 | Used by:303 |
Symbol 275 Graphic | Uses:107 | Used by:276 |
Symbol 276 MovieClip {Level23} | Uses:275 69 71 73 202 95 97 | Used by:303 |
Symbol 277 Graphic | Uses:107 | Used by:278 |
Symbol 278 MovieClip {Level21} | Uses:277 73 66 61 202 95 97 | Used by:303 |
Symbol 279 Graphic | Uses:107 | Used by:280 |
Symbol 280 MovieClip {Level20} | Uses:279 75 69 71 61 202 95 97 | Used by:303 |
Symbol 281 Graphic | Uses:107 | Used by:283 |
Symbol 282 Graphic | Uses:107 | Used by:283 |
Symbol 283 MovieClip {Level33} | Uses:281 271 282 73 71 58 202 95 97 | Used by:303 |
Symbol 284 MovieClip {Level15} | Uses:239 75 73 71 69 55 202 95 97 | Used by:303 |
Symbol 285 Graphic | Uses:107 | Used by:286 |
Symbol 286 MovieClip {Level29} | Uses:285 69 71 73 202 95 97 | Used by:303 |
Symbol 287 Graphic | Uses:107 | Used by:288 |
Symbol 288 MovieClip {Level11} | Uses:287 75 73 202 95 97 | Used by:303 |
Symbol 289 MovieClip {Level30} | Uses:239 75 69 71 73 202 95 97 | Used by:303 |
Symbol 290 MovieClip {Level37} | Uses:239 75 71 69 73 55 202 95 97 | Used by:303 |
Symbol 291 Graphic | Uses:107 | Used by:292 |
Symbol 292 MovieClip {Level31} | Uses:291 202 75 73 95 97 | Used by:303 |
Symbol 293 Graphic | Uses:107 | Used by:294 |
Symbol 294 MovieClip {Level40} | Uses:293 75 71 73 202 95 97 | Used by:303 |
Symbol 295 Graphic | Uses:107 | Used by:296 |
Symbol 296 MovieClip {LevelA} | Uses:295 73 58 202 95 97 | Used by:303 |
Symbol 297 Graphic | Uses:107 | Used by:298 |
Symbol 298 MovieClip {LevelB} | Uses:297 73 202 95 97 | Used by:303 |
Symbol 299 Graphic | Uses:107 | Used by:300 |
Symbol 300 MovieClip {LevelC} | Uses:299 75 73 202 95 97 | Used by:303 |
Symbol 301 Graphic | Uses:107 | Used by:302 |
Symbol 302 MovieClip {LevelD} | Uses:301 75 71 69 202 95 97 | Used by:303 |
Symbol 303 MovieClip {Pyro_fla.AssetsHolder_20} | Uses:43 52 55 58 61 66 69 71 73 75 44 77 46 74 79 81 83 85 87 89 91 92 95 68 97 99 103 104 106 109 2 131 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 205 206 210 211 213 214 216 218 220 222 224 226 228 230 232 234 236 238 240 242 246 247 249 251 256 261 263 265 266 268 273 274 276 278 280 283 284 286 288 289 290 292 294 296 298 300 302 | Used by:Timeline |
Symbol 304 Graphic | Used by:431 480 | |
Symbol 305 Font | Used by:306 307 | |
Symbol 306 Text | Uses:305 | Used by:431 |
Symbol 307 Text | Uses:305 | Used by:431 |
Symbol 308 Sound | Used by:431 | |
Symbol 309 Bitmap | Used by:310 | |
Symbol 310 Graphic | Uses:309 | Used by:431 |
Symbol 311 Bitmap | Used by:312 | |
Symbol 312 Graphic | Uses:311 | Used by:431 |
Symbol 313 Bitmap | Used by:314 | |
Symbol 314 Graphic | Uses:313 | Used by:431 |
Symbol 315 Bitmap | Used by:316 | |
Symbol 316 Graphic | Uses:315 | Used by:431 |
Symbol 317 Bitmap | Used by:318 | |
Symbol 318 Graphic | Uses:317 | Used by:431 |
Symbol 319 Bitmap | Used by:320 | |
Symbol 320 Graphic | Uses:319 | Used by:431 |
Symbol 321 Bitmap | Used by:322 | |
Symbol 322 Graphic | Uses:321 | Used by:431 |
Symbol 323 Bitmap | Used by:324 | |
Symbol 324 Graphic | Uses:323 | Used by:431 |
Symbol 325 Bitmap | Used by:326 | |
Symbol 326 Graphic | Uses:325 | Used by:431 |
Symbol 327 Bitmap | Used by:328 | |
Symbol 328 Graphic | Uses:327 | Used by:431 |
Symbol 329 Bitmap | Used by:330 | |
Symbol 330 Graphic | Uses:329 | Used by:431 |
Symbol 331 Bitmap | Used by:332 | |
Symbol 332 Graphic | Uses:331 | Used by:431 |
Symbol 333 Bitmap | Used by:334 | |
Symbol 334 Graphic | Uses:333 | Used by:431 |
Symbol 335 Bitmap | Used by:336 | |
Symbol 336 Graphic | Uses:335 | Used by:431 |
Symbol 337 Bitmap | Used by:338 | |
Symbol 338 Graphic | Uses:337 | Used by:431 |
Symbol 339 Bitmap | Used by:340 | |
Symbol 340 Graphic | Uses:339 | Used by:431 |
Symbol 341 Bitmap | Used by:342 | |
Symbol 342 Graphic | Uses:341 | Used by:431 |
Symbol 343 Bitmap | Used by:344 | |
Symbol 344 Graphic | Uses:343 | Used by:431 |
Symbol 345 Bitmap | Used by:346 | |
Symbol 346 Graphic | Uses:345 | Used by:431 |
Symbol 347 Bitmap | Used by:348 | |
Symbol 348 Graphic | Uses:347 | Used by:431 |
Symbol 349 Bitmap | Used by:350 | |
Symbol 350 Graphic | Uses:349 | Used by:431 |
Symbol 351 Bitmap | Used by:352 | |
Symbol 352 Graphic | Uses:351 | Used by:431 |
Symbol 353 Bitmap | Used by:354 | |
Symbol 354 Graphic | Uses:353 | Used by:431 |
Symbol 355 Bitmap | Used by:356 | |
Symbol 356 Graphic | Uses:355 | Used by:431 |
Symbol 357 Bitmap | Used by:358 | |
Symbol 358 Graphic | Uses:357 | Used by:431 |
Symbol 359 Bitmap | Used by:360 | |
Symbol 360 Graphic | Uses:359 | Used by:431 |
Symbol 361 Bitmap | Used by:362 | |
Symbol 362 Graphic | Uses:361 | Used by:431 |
Symbol 363 Bitmap | Used by:364 | |
Symbol 364 Graphic | Uses:363 | Used by:431 |
Symbol 365 Bitmap | Used by:366 | |
Symbol 366 Graphic | Uses:365 | Used by:431 |
Symbol 367 Bitmap | Used by:368 | |
Symbol 368 Graphic | Uses:367 | Used by:431 |
Symbol 369 Bitmap | Used by:370 | |
Symbol 370 Graphic | Uses:369 | Used by:431 |
Symbol 371 Bitmap | Used by:372 | |
Symbol 372 Graphic | Uses:371 | Used by:431 |
Symbol 373 Bitmap | Used by:374 | |
Symbol 374 Graphic | Uses:373 | Used by:431 |
Symbol 375 Bitmap | Used by:376 | |
Symbol 376 Graphic | Uses:375 | Used by:431 |
Symbol 377 Bitmap | Used by:378 | |
Symbol 378 Graphic | Uses:377 | Used by:431 |
Symbol 379 Bitmap | Used by:380 | |
Symbol 380 Graphic | Uses:379 | Used by:431 |
Symbol 381 Bitmap | Used by:382 | |
Symbol 382 Graphic | Uses:381 | Used by:431 |
Symbol 383 Bitmap | Used by:384 | |
Symbol 384 Graphic | Uses:383 | Used by:431 |
Symbol 385 Bitmap | Used by:386 | |
Symbol 386 Graphic | Uses:385 | Used by:431 |
Symbol 387 Bitmap | Used by:388 | |
Symbol 388 Graphic | Uses:387 | Used by:431 |
Symbol 389 Bitmap | Used by:390 | |
Symbol 390 Graphic | Uses:389 | Used by:431 |
Symbol 391 Bitmap | Used by:392 | |
Symbol 392 Graphic | Uses:391 | Used by:431 |
Symbol 393 Bitmap | Used by:394 | |
Symbol 394 Graphic | Uses:393 | Used by:431 |
Symbol 395 Bitmap | Used by:396 | |
Symbol 396 Graphic | Uses:395 | Used by:431 |
Symbol 397 Bitmap | Used by:398 | |
Symbol 398 Graphic | Uses:397 | Used by:431 |
Symbol 399 Bitmap | Used by:400 | |
Symbol 400 Graphic | Uses:399 | Used by:431 |
Symbol 401 Bitmap | Used by:402 | |
Symbol 402 Graphic | Uses:401 | Used by:431 |
Symbol 403 Bitmap | Used by:404 | |
Symbol 404 Graphic | Uses:403 | Used by:431 |
Symbol 405 Bitmap | Used by:406 | |
Symbol 406 Graphic | Uses:405 | Used by:431 |
Symbol 407 Bitmap | Used by:408 | |
Symbol 408 Graphic | Uses:407 | Used by:431 |
Symbol 409 Bitmap | Used by:410 | |
Symbol 410 Graphic | Uses:409 | Used by:431 |
Symbol 411 Bitmap | Used by:412 | |
Symbol 412 Graphic | Uses:411 | Used by:431 |
Symbol 413 Bitmap | Used by:414 | |
Symbol 414 Graphic | Uses:413 | Used by:431 |
Symbol 415 Bitmap | Used by:416 | |
Symbol 416 Graphic | Uses:415 | Used by:431 |
Symbol 417 Bitmap | Used by:418 | |
Symbol 418 Graphic | Uses:417 | Used by:431 |
Symbol 419 Bitmap | Used by:420 | |
Symbol 420 Graphic | Uses:419 | Used by:431 |
Symbol 421 Bitmap | Used by:422 | |
Symbol 422 Graphic | Uses:421 | Used by:431 |
Symbol 423 Bitmap | Used by:424 | |
Symbol 424 Graphic | Uses:423 | Used by:431 |
Symbol 425 Bitmap | Used by:426 | |
Symbol 426 Graphic | Uses:425 | Used by:431 |
Symbol 427 Bitmap | Used by:428 | |
Symbol 428 Graphic | Uses:427 | Used by:431 |
Symbol 429 Bitmap | Used by:430 | |
Symbol 430 Graphic | Uses:429 | Used by:431 |
Symbol 431 MovieClip {DamijinLogo} | Uses:304 306 307 308 310 312 314 316 318 320 322 324 326 328 330 332 334 336 338 340 342 344 346 348 350 352 354 356 358 360 362 364 366 368 370 372 374 376 378 380 382 384 386 388 390 392 394 396 398 400 402 404 406 408 410 412 414 416 418 420 422 424 426 428 430 | Used by:Timeline |
Symbol 432 Text | Uses:63 | Used by:435 |
Symbol 433 Text | Uses:63 | Used by:435 |
Symbol 434 Text | Uses:63 | Used by:435 |
Symbol 435 Button | Uses:432 433 434 43 | Used by:Timeline |
Symbol 436 Graphic | Used by:464 | |
Symbol 437 Graphic | Used by:438 | |
Symbol 438 MovieClip | Uses:437 | Used by:464 |
Symbol 439 Graphic | Used by:463 | |
Symbol 440 Graphic | Used by:463 | |
Symbol 441 Graphic | Used by:463 | |
Symbol 442 Graphic | Used by:463 | |
Symbol 443 Graphic | Used by:463 | |
Symbol 444 Graphic | Used by:463 | |
Symbol 445 Graphic | Used by:463 | |
Symbol 446 Graphic | Used by:463 | |
Symbol 447 Graphic | Used by:463 | |
Symbol 448 Graphic | Used by:463 | |
Symbol 449 Graphic | Used by:463 | |
Symbol 450 Graphic | Used by:463 | |
Symbol 451 Graphic | Used by:463 | |
Symbol 452 Graphic | Used by:463 | |
Symbol 453 Graphic | Used by:463 | |
Symbol 454 Graphic | Used by:463 | |
Symbol 455 Graphic | Used by:463 | |
Symbol 456 Graphic | Used by:463 | |
Symbol 457 Graphic | Used by:463 | |
Symbol 458 Graphic | Used by:463 | |
Symbol 459 Graphic | Used by:463 | |
Symbol 460 Graphic | Used by:463 | |
Symbol 461 Graphic | Used by:463 | |
Symbol 462 Graphic | Used by:463 | |
Symbol 463 MovieClip {Pyro_fla.GregLogo_Texts_117} | Uses:439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 | Used by:464 |
Symbol 464 MovieClip {Pyro_fla.GregLogo_Screen_115} | Uses:436 438 463 | Used by:468 |
Symbol 465 Graphic | Used by:466 | |
Symbol 466 MovieClip | Uses:465 | Used by:468 |
Symbol 467 Sound {MonitorOff} | Used by:468 | |
Symbol 468 MovieClip {GregLogo} | Uses:464 466 467 | Used by:Timeline |
Symbol 469 Graphic | Used by:470 | |
Symbol 470 MovieClip | Uses:133 469 | Used by:Timeline |
Symbol 471 Text | Uses:10 | Used by:483 Timeline |
Symbol 472 Text | Uses:10 | Used by:481 Timeline |
Symbol 473 Text | Uses:10 | Used by:485 Timeline |
Symbol 474 Text | Uses:10 | Used by:486 Timeline |
Symbol 475 EditableText | Uses:63 | Used by:Timeline |
Symbol 476 MovieClip | Uses:43 | Used by:481 483 485 486 |
Symbol 477 MovieClip | Used by:481 486 | |
Symbol 478 Graphic | Used by:479 | |
Symbol 479 MovieClip | Uses:478 | Used by:481 483 485 486 |
Symbol 480 MovieClip | Uses:304 | Used by:481 483 485 486 |
Symbol 481 MovieClip {Pyro_fla.Button_Instruction_120} | Uses:476 43 477 472 479 480 | Used by:Timeline |
Symbol 482 MovieClip | Used by:483 | |
Symbol 483 MovieClip {Pyro_fla.Button_NewGame_125} | Uses:476 43 482 471 479 480 | Used by:Timeline |
Symbol 484 MovieClip | Used by:485 | |
Symbol 485 MovieClip {Pyro_fla.Button_Credits_127} | Uses:43 484 476 473 479 480 | Used by:Timeline |
Symbol 486 MovieClip {Pyro_fla.Button_MoreGames_Main_129} | Uses:476 43 477 474 479 480 | Used by:Timeline |
Symbol 487 EditableText | Uses:63 | Used by:Timeline |
Symbol 488 Graphic | Used by:510 | |
Symbol 489 Text | Uses:10 | Used by:492 |
Symbol 490 Text | Uses:10 | Used by:492 |
Symbol 491 Text | Uses:10 | Used by:492 |
Symbol 492 Button | Uses:489 490 491 43 | Used by:510 |
Symbol 493 EditableText | Uses:10 | Used by:510 |
Symbol 494 Text | Uses:10 | Used by:497 |
Symbol 495 Text | Uses:10 | Used by:497 |
Symbol 496 Text | Uses:10 | Used by:497 |
Symbol 497 Button | Uses:494 495 496 43 | Used by:510 |
Symbol 498 Text | Uses:63 | Used by:510 |
Symbol 499 Font | Used by:500 507 533 544 554 | |
Symbol 500 Text | Uses:499 | Used by:510 |
Symbol 501 Bitmap | Used by:502 | |
Symbol 502 Graphic | Uses:501 | Used by:503 |
Symbol 503 Button | Uses:502 | Used by:510 545 |
Symbol 504 EditableText | Uses:10 | Used by:505 |
Symbol 505 MovieClip {BonusLevelButton} | Uses:45 47 50 504 | Used by:510 |
Symbol 506 Graphic | Used by:509 | |
Symbol 507 Text | Uses:499 | Used by:509 |
Symbol 508 Graphic | Used by:509 | |
Symbol 509 MovieClip | Uses:506 507 508 | Used by:510 |
Symbol 510 MovieClip {game.ButtonContainer} | Uses:488 492 493 497 498 500 503 52 505 509 | Used by:Timeline |
Symbol 511 MovieClip | Used by:Timeline | |
Symbol 512 Graphic | Used by:526 | |
Symbol 513 Text | Uses:10 | Used by:526 |
Symbol 514 Text | Uses:10 | Used by:517 |
Symbol 515 Text | Uses:10 | Used by:517 |
Symbol 516 Text | Uses:10 | Used by:517 |
Symbol 517 Button | Uses:514 515 516 43 | Used by:526 |
Symbol 518 Text | Uses:10 | Used by:521 |
Symbol 519 Text | Uses:10 | Used by:521 |
Symbol 520 Text | Uses:10 | Used by:521 |
Symbol 521 Button | Uses:518 519 520 43 | Used by:526 |
Symbol 522 Text | Uses:10 | Used by:525 |
Symbol 523 Text | Uses:10 | Used by:525 |
Symbol 524 Text | Uses:10 | Used by:525 |
Symbol 525 Button | Uses:522 523 524 43 | Used by:526 Timeline |
Symbol 526 MovieClip | Uses:512 513 517 521 525 | Used by:Timeline |
Symbol 527 Graphic | Used by:528 | |
Symbol 528 MovieClip | Uses:527 | Used by:535 |
Symbol 529 EditableText | Uses:10 | Used by:530 |
Symbol 530 MovieClip | Uses:529 | Used by:535 |
Symbol 531 Graphic | Used by:532 | |
Symbol 532 MovieClip | Uses:531 | Used by:535 |
Symbol 533 Text | Uses:499 | Used by:535 |
Symbol 534 Sound | Used by:535 | |
Symbol 535 MovieClip {Pyro_fla.AcedScreen_141} | Uses:528 530 532 533 534 | Used by:Timeline |
Symbol 536 Text | Uses:10 | Used by:Timeline |
Symbol 537 Text | Uses:10 | Used by:Timeline |
Symbol 538 Text | Uses:10 | Used by:Timeline |
Symbol 539 Text | Uses:10 | Used by:Timeline |
Symbol 540 Text | Uses:10 | Used by:Timeline |
Symbol 541 Font | Used by:543 546 548 550 | |
Symbol 542 Font | Used by:543 | |
Symbol 543 Text | Uses:541 542 | Used by:545 |
Symbol 544 Text | Uses:499 | Used by:545 |
Symbol 545 MovieClip | Uses:543 544 503 | Used by:Timeline |
Symbol 546 Text | Uses:541 | Used by:553 |
Symbol 547 Graphic | Used by:553 | |
Symbol 548 Text | Uses:541 | Used by:553 |
Symbol 549 Graphic | Used by:553 | |
Symbol 550 Text | Uses:541 | Used by:553 |
Symbol 551 Graphic | Used by:553 | |
Symbol 552 Graphic | Used by:553 | |
Symbol 553 Button | Uses:546 547 548 549 550 551 552 | Used by:557 Timeline |
Symbol 554 Text | Uses:63 499 | Used by:557 |
Symbol 555 Text | Uses:63 | Used by:557 |
Symbol 556 EditableText | Uses:63 111 | Used by:557 |
Symbol 557 MovieClip | Uses:554 555 556 553 | Used by:Timeline |
Instance Names
"mochiClip" | Frame 1 | Symbol 6 MovieClip |
"loader" | Frame 2 | Symbol 14 MovieClip {FlameLoader} |
"kongLogo" | Frame 2 | Symbol 42 MovieClip {Kong_Logo_Pyro} |
"dLogo" | Frame 13 | Symbol 431 MovieClip {DamijinLogo} |
"btn_skip" | Frame 13 | Symbol 435 Button |
"gLogo" | Frame 17 | Symbol 468 MovieClip {GregLogo} |
"maskedFlame" | Frame 21 | Symbol 470 MovieClip |
"btn_Instruction" | Frame 31 | Symbol 481 MovieClip {Pyro_fla.Button_Instruction_120} |
"btn_NewGame" | Frame 31 | Symbol 483 MovieClip {Pyro_fla.Button_NewGame_125} |
"btn_Credits" | Frame 31 | Symbol 485 MovieClip {Pyro_fla.Button_Credits_127} |
"btn_Sponsor" | Frame 31 | Symbol 486 MovieClip {Pyro_fla.Button_MoreGames_Main_129} |
"levelSelector" | Frame 41 | Symbol 510 MovieClip {game.ButtonContainer} |
"fadeContainer" | Frame 61 | Symbol 511 MovieClip |
"deathScene" | Frame 71 | Symbol 526 MovieClip |
"acedScreen" | Frame 71 | Symbol 535 MovieClip {Pyro_fla.AcedScreen_141} |
"fadeContainer" | Frame 72 | Symbol 511 MovieClip |
"btn_Kong" | Frame 161 | Symbol 525 Button |
"creditScroll" | Frame 181 | Symbol 545 MovieClip |
"btn_Back" | Frame 181 | Symbol 553 Button |
"instruction" | Frame 182 | Symbol 557 MovieClip |
"flameContainer" | Symbol 14 MovieClip {FlameLoader} Frame 1 | Symbol 13 MovieClip |
"buttonDown" | Symbol 52 MovieClip {game.LevelButton} Frame 1 | Symbol 45 MovieClip |
"buttonUp" | Symbol 52 MovieClip {game.LevelButton} Frame 1 | Symbol 47 MovieClip |
"cover" | Symbol 52 MovieClip {game.LevelButton} Frame 1 | Symbol 50 MovieClip |
"numTxt" | Symbol 52 MovieClip {game.LevelButton} Frame 1 | Symbol 51 EditableText |
"powerUpHitArea" | Symbol 55 MovieClip {BounceUpZone} Frame 1 | Symbol 54 MovieClip |
"powerUpHitArea" | Symbol 58 MovieClip {HalfSizeZone} Frame 1 | Symbol 57 MovieClip |
"powerUpHitArea" | Symbol 61 MovieClip {LongLineZone} Frame 1 | Symbol 60 MovieClip |
"powerUpHitArea" | Symbol 66 MovieClip {PlusOneZone} Frame 1 | Symbol 65 MovieClip |
"torchHitArea" | Symbol 69 MovieClip {LTorch} Frame 1 | Symbol 68 MovieClip {TorchHitArea} |
"torchHitArea" | Symbol 71 MovieClip {RTorch} Frame 1 | Symbol 68 MovieClip {TorchHitArea} |
"torchHitArea" | Symbol 73 MovieClip {Torch} Frame 1 | Symbol 68 MovieClip {TorchHitArea} |
"dummy" | Symbol 75 MovieClip {Crate} Frame 1 | Symbol 74 MovieClip |
"buttonHitArea" | Symbol 95 MovieClip {FireballInit} Frame 1 | Symbol 92 MovieClip {ButtonHitArea} |
"display" | Symbol 95 MovieClip {FireballInit} Frame 1 | Symbol 94 MovieClip |
"gauge" | Symbol 103 MovieClip {DragHandle} Frame 1 | Symbol 100 MovieClip |
"lifeText" | Symbol 131 MovieClip {HUD} Frame 1 | Symbol 112 EditableText |
"percentText" | Symbol 131 MovieClip {HUD} Frame 1 | Symbol 115 EditableText |
"level" | Symbol 131 MovieClip {HUD} Frame 1 | Symbol 116 EditableText |
"dragHandle" | Symbol 131 MovieClip {HUD} Frame 1 | Symbol 103 MovieClip {DragHandle} |
"btn_Mute" | Symbol 131 MovieClip {HUD} Frame 1 | Symbol 123 Button |
"btn_Suicide" | Symbol 131 MovieClip {HUD} Frame 1 | Symbol 130 Button |
"instruction" | Symbol 205 MovieClip {Level01} Frame 1 | Symbol 202 MovieClip |
"instruction" | Symbol 205 MovieClip {Level01} Frame 1 | Symbol 204 MovieClip |
"fSprite" | Symbol 205 MovieClip {Level01} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 210 MovieClip {Level02} Frame 1 | Symbol 209 MovieClip |
"fSprite" | Symbol 210 MovieClip {Level02} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 213 MovieClip {Level12} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 213 MovieClip {Level12} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 216 MovieClip {Level25} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 216 MovieClip {Level25} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 218 MovieClip {Level04} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 218 MovieClip {Level04} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 220 MovieClip {Level27} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 220 MovieClip {Level27} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 222 MovieClip {Level39} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 222 MovieClip {Level39} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 224 MovieClip {Level17} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 224 MovieClip {Level17} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 226 MovieClip {Level14} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 226 MovieClip {Level14} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 228 MovieClip {Level38} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 228 MovieClip {Level38} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 230 MovieClip {Level36} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 230 MovieClip {Level36} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 232 MovieClip {Level26} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 232 MovieClip {Level26} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 234 MovieClip {Level13} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 234 MovieClip {Level13} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 236 MovieClip {Level08} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 236 MovieClip {Level08} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 238 MovieClip {Level32} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 238 MovieClip {Level32} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 240 MovieClip {Level28} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 240 MovieClip {Level28} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 242 MovieClip {Level16} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 242 MovieClip {Level16} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 246 MovieClip {Level03} Frame 1 | Symbol 245 MovieClip |
"fSprite" | Symbol 246 MovieClip {Level03} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 247 MovieClip {Level10} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 247 MovieClip {Level10} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 249 MovieClip {Level19} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 249 MovieClip {Level19} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 251 MovieClip {Level35} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 251 MovieClip {Level35} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 256 MovieClip {Level09} Frame 1 | Symbol 255 MovieClip |
"fSprite" | Symbol 256 MovieClip {Level09} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 261 MovieClip {Level34} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 261 MovieClip {Level34} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 263 MovieClip {Level22} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 263 MovieClip {Level22} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 265 MovieClip {Level06} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 265 MovieClip {Level06} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 266 MovieClip {Level18} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 266 MovieClip {Level18} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 268 MovieClip {Level07} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 268 MovieClip {Level07} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 273 MovieClip {Level05} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 273 MovieClip {Level05} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 274 MovieClip {Level24} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 274 MovieClip {Level24} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 276 MovieClip {Level23} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 276 MovieClip {Level23} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 278 MovieClip {Level21} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 278 MovieClip {Level21} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 280 MovieClip {Level20} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 280 MovieClip {Level20} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 283 MovieClip {Level33} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 283 MovieClip {Level33} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 284 MovieClip {Level15} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 284 MovieClip {Level15} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 286 MovieClip {Level29} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 286 MovieClip {Level29} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 288 MovieClip {Level11} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 288 MovieClip {Level11} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 289 MovieClip {Level30} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 289 MovieClip {Level30} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 290 MovieClip {Level37} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 290 MovieClip {Level37} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 292 MovieClip {Level31} Frame 1 | Symbol 202 MovieClip |
"instruction" | Symbol 292 MovieClip {Level31} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 292 MovieClip {Level31} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 294 MovieClip {Level40} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 294 MovieClip {Level40} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 296 MovieClip {LevelA} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 296 MovieClip {LevelA} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 298 MovieClip {LevelB} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 298 MovieClip {LevelB} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 300 MovieClip {LevelC} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 300 MovieClip {LevelC} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"instruction" | Symbol 302 MovieClip {LevelD} Frame 1 | Symbol 202 MovieClip |
"fSprite" | Symbol 302 MovieClip {LevelD} Frame 1 | Symbol 95 MovieClip {FireballInit} |
"flameMask" | Symbol 470 MovieClip Frame 1 | Symbol 133 MovieClip {TextMask} |
"hitArea150" | Symbol 481 MovieClip {Pyro_fla.Button_Instruction_120} Frame 1 | Symbol 476 MovieClip |
"flameContainer" | Symbol 481 MovieClip {Pyro_fla.Button_Instruction_120} Frame 1 | Symbol 477 MovieClip |
"btn_Over" | Symbol 481 MovieClip {Pyro_fla.Button_Instruction_120} Frame 1 | Symbol 479 MovieClip |
"btn_Up" | Symbol 481 MovieClip {Pyro_fla.Button_Instruction_120} Frame 1 | Symbol 480 MovieClip |
"hitArea150" | Symbol 483 MovieClip {Pyro_fla.Button_NewGame_125} Frame 1 | Symbol 476 MovieClip |
"flameContainer" | Symbol 483 MovieClip {Pyro_fla.Button_NewGame_125} Frame 1 | Symbol 482 MovieClip |
"btn_Over" | Symbol 483 MovieClip {Pyro_fla.Button_NewGame_125} Frame 1 | Symbol 479 MovieClip |
"btn_Up" | Symbol 483 MovieClip {Pyro_fla.Button_NewGame_125} Frame 1 | Symbol 480 MovieClip |
"flameContainer" | Symbol 485 MovieClip {Pyro_fla.Button_Credits_127} Frame 1 | Symbol 484 MovieClip |
"hitArea150" | Symbol 485 MovieClip {Pyro_fla.Button_Credits_127} Frame 1 | Symbol 476 MovieClip |
"btn_Over" | Symbol 485 MovieClip {Pyro_fla.Button_Credits_127} Frame 1 | Symbol 479 MovieClip |
"btn_Up" | Symbol 485 MovieClip {Pyro_fla.Button_Credits_127} Frame 1 | Symbol 480 MovieClip |
"hitArea150" | Symbol 486 MovieClip {Pyro_fla.Button_MoreGames_Main_129} Frame 1 | Symbol 476 MovieClip |
"flameContainer" | Symbol 486 MovieClip {Pyro_fla.Button_MoreGames_Main_129} Frame 1 | Symbol 477 MovieClip |
"btn_Over" | Symbol 486 MovieClip {Pyro_fla.Button_MoreGames_Main_129} Frame 1 | Symbol 479 MovieClip |
"btn_Up" | Symbol 486 MovieClip {Pyro_fla.Button_MoreGames_Main_129} Frame 1 | Symbol 480 MovieClip |
"buttonDown" | Symbol 505 MovieClip {BonusLevelButton} Frame 1 | Symbol 45 MovieClip |
"buttonUp" | Symbol 505 MovieClip {BonusLevelButton} Frame 1 | Symbol 47 MovieClip |
"cover" | Symbol 505 MovieClip {BonusLevelButton} Frame 1 | Symbol 50 MovieClip |
"numTxt" | Symbol 505 MovieClip {BonusLevelButton} Frame 1 | Symbol 504 EditableText |
"btn_Play" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 492 Button |
"time" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 493 EditableText |
"btn_mainMenu" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 497 Button |
"btn_Sponsor" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 503 Button |
"button_01" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_02" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_03" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_04" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_05" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_06" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_07" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_08" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_09" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_10" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_11" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_12" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_13" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_14" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_15" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_16" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_17" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_18" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_19" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_20" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_21" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_22" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_23" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_24" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_25" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_26" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_27" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_28" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_29" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_30" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_31" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_32" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_33" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_34" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_35" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_36" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_37" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_38" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_39" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_40" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 52 MovieClip {game.LevelButton} |
"button_A" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 505 MovieClip {BonusLevelButton} |
"button_B" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 505 MovieClip {BonusLevelButton} |
"button_C" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 505 MovieClip {BonusLevelButton} |
"button_D" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 505 MovieClip {BonusLevelButton} |
"button_E" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 505 MovieClip {BonusLevelButton} |
"button_F" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 505 MovieClip {BonusLevelButton} |
"button_G" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 505 MovieClip {BonusLevelButton} |
"button_H" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 505 MovieClip {BonusLevelButton} |
"aced" | Symbol 510 MovieClip {game.ButtonContainer} Frame 1 | Symbol 509 MovieClip |
"btn_Retry" | Symbol 526 MovieClip Frame 1 | Symbol 517 Button |
"btn_MainMenu" | Symbol 526 MovieClip Frame 1 | Symbol 521 Button |
"btn_Kong" | Symbol 526 MovieClip Frame 1 | Symbol 525 Button |
"text" | Symbol 530 MovieClip Frame 1 | Symbol 529 EditableText |
"unlockBackground" | Symbol 535 MovieClip {Pyro_fla.AcedScreen_141} Frame 1 | Symbol 528 MovieClip |
"unlockText" | Symbol 535 MovieClip {Pyro_fla.AcedScreen_141} Frame 1 | Symbol 530 MovieClip |
"btn_Kong" | Symbol 545 MovieClip Frame 1 | Symbol 503 Button |
"btn_Back" | Symbol 557 MovieClip Frame 1 | Symbol 553 Button |
Special Tags
FileAttributes (69) | Timeline Frame 1 | Access network only, Metadata not present, AS3. |
Labels
"damijinLogo" | Frame 13 |
"gregLogo" | Frame 17 |
"menuFrame" | Frame 21 |
"levelSelect" | Frame 41 |
"startGame" | Frame 61 |
"totallyWon" | Frame 82 |
"creditsScreen" | Frame 181 |
"instructionScreen" | Frame 182 |
|