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

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

magic-pen-2.swf

This is the info page for
Flash #125396

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


Text
BORRAR ESTO LUEGO
DE IMPORTAR

Brought to you by

If you feel the ball needs
a little push, hold down ' W '
and click for a small
boost.

press 'n hold your
left mouse button on the
'X'

you can add "hinges", with 'D',
to hollow blocks and then add
your own shapes to them.

Click and hold your
mouse button to draw
lines and shapes

You can place pins, with 's',
in hollow blocks, and then
fix your shapes to them

LEVEL SELECT

Close

Free Play!

MagicPen I

Push

Press 'W'

Eraser

Press 'A'

Hinge

Press 'D'

Pin

Press 'S'

Restart Level

Press 'Space Bar'

Main
Menu

Press 'Esc'

Help

level select

Music On

Music OFF

More Games

next level

submit score

View scores

Shapes Used:

A

Time:

A

Level Score:

A

Total Score:

A

LEVEL SELECT

You have completed all 30 levels!

Congratulations!

Hopefully, we helped you fight
boredom. At least for a little while.

And if you want to improve your
overall score, you can replay all the
levels individually and each
improvement will update your
highscore.

Thank you for
playing!

Thank you for
playing!

Programming:
Alejandro Guillen
Graphics and Level
Design:
Luis Brenes
Music:
Darren Peers
Testers:
Migue, Fullva
Special Thanks to:
Erin Catto and
Mathew Bush for an
excellent physics
engine
Petri Purho for
making the original
Crayon Physics
And once again,
thankS you for
playing!

if you liked this game,
consider buying the original,
it has tons of cool features
and much better physics:

<p align="center"><font face="pointy" size="20" color="#ffffff" letterSpacing="0.000000" kerning="0"><a href="http://www.crayonphysics.com/">(http://www.crayonphysics.com/)</a></font></p>

<p align="center"><font face="pointy" size="32" color="#ffffff" letterSpacing="0.000000" kerning="0"><a href="http://www.crayonphysics.com/"><b>Crayon Physics Deluxe</b></a></font></p>

Level:

UI Switch

On / Off

Previous

Next

Your goal

Collect the
flags with the
little red ball
to complete a
level.

Playing the game

Move the red
ball by drawing
objects and
pushing it
around.

Drawing shapes

Hold down the
left mouse
button to
draw.

Drawing shapes

You cannot
draw inside
other
objects.

Drawing circles

To draw a circle,
hold the left mouse
button where you
want the center to
be.

Pins and hinges

Pins and hinges connect
objects. A pin fixes the
two objects, and a hinge
allows rotation.
You can put them on the
ball too.

Drawing pins

Hold "S", left
click to place the
pin. Then draw a
figure on top.

Drawing hinges

Hold "D", left
click to place the
hinge. Then draw a
figure on top.

Erasing

Hold "A", and
click inside a
shape, pin or
hinge to erase it.

Wind Tool

Hold "W", and
click near the
ball to give it a
little push.

<p align="left"><font face="ChalkDust" size="20" color="#ffffff" letterSpacing="0.000000" kerning="0"><a href="http://www.crayonphysics.com/"><b>Crayon Physics </b></a><font size="16"><a href="http://www.crayonphysics.com/"><b>Deluxe</b></a></font></font></p>

<p align="left"><font face="ChalkDust" size="18" color="#ffffff" letterSpacing="0.000000" kerning="0"><a href="http://www.crayonphysics.com/"><b>Try it for free!</b></a></font></p>

<p align="left"><font face="ChalkDust" size="20" color="#ffffff" letterSpacing="0.000000" kerning="0"><a href="http://www.crayonphysics.com/"><b>Crayon Physics </b></a><font size="16"><a href="http://www.crayonphysics.com/"><b>Deluxe</b></a></font></font></p>

<p align="left"><font face="ChalkDust" size="18" color="#ffffff" letterSpacing="0.000000" kerning="0"><a href="http://www.crayonphysics.com/"><b>Try it for free!</b></a></font></p>

GET THE
SOUNDTRACK!

GET THE
SOUNDTRACK!

What is your name?

<p align="center"><font face="ChalkDust" size="40" color="#666666" letterSpacing="-1.000000" kerning="0"><b>ME</b></font></p>

OK, lets go!

Level

Select

Back

Programming
Alejandro Guillen
Graphics and Level Design
Luis Brenes
Music
Darren Peers
Testers
Migue, Fullva

This version is sitelocked to:
www.BUBBLEBOX.com

Music

View Tutorial

Quality

Options

ActionScript [AS3]

Section 1
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2CircleDef extends b2ShapeDef { public var localPosition:b2Vec2; public var radius:Number; public function b2CircleDef(){ localPosition = new b2Vec2(0, 0); super(); type = b2Shape.e_circleShape; radius = 1; } } }//package Box2D.Collision.Shapes
Section 2
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_radius:Number; public var m_localPosition:b2Vec2; public function b2CircleShape(_arg1:b2ShapeDef){ var _local2:b2CircleDef; m_localPosition = new b2Vec2(); super(_arg1); _local2 = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; _local3 = _arg1.R; _local4 = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local6 = _arg1.R; _local7 = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); _local8 = (_arg1.position.x + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); _local9 = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); _local11 = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; _local12 = (_arg4.p2.x - _arg4.p1.x); _local13 = (_arg4.p2.y - _arg4.p1.y); _local14 = ((_local9 * _local12) + (_local10 * _local13)); _local15 = ((_local12 * _local12) + (_local13 * _local13)); _local16 = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; _local17 = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = _arg2.R; _local5 = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local6 = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; _local7 = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local8 = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } public function GetRadius():Number{ return (m_radius); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number; var _local3:Number; _local2 = (m_localPosition.x - _arg1.x); _local3 = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; _local3 = _arg2.R; _local4 = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } } }//package Box2D.Collision.Shapes
Section 3
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { public class b2FilterData { public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public var categoryBits:uint;// = 1 public function b2FilterData(){ categoryBits = 1; maskBits = 0xFFFF; groupIndex = 0; super(); } public function Copy():b2FilterData{ var _local1:b2FilterData; _local1 = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 4
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ mass = 0; center = new b2Vec2(0, 0); I = 0; super(); } } }//package Box2D.Collision.Shapes
Section 5
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertexCount:int; public var vertices:Array; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ var _local1:int; vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; _local1 = 0; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); if (_arg3){ _local5 = _arg3; _local6 = s_mat; _local6.Set(_arg4); _local7 = 0; while (_local7 < vertexCount) { _arg3 = vertices[_local7]; _arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y))); _arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y))); _arg3.x = _arg1; _local7++; }; }; } public function SetAsBox(_arg1:Number, _arg2:Number):void{ vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); } } }//package Box2D.Collision.Shapes
Section 6
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { public var m_vertices:Array; public var m_normals:Array; private var s_supportVec:b2Vec2; public var m_obb:b2OBB; public var m_coreVertices:Array; public var m_centroid:b2Vec2; public var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local2:b2PolygonDef; var _local3:int; var _local4:int; var _local5:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; _local2 = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; _local4 = _local3; _local5 = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; var _local10:Number; _local4 = _arg1.R; _local5 = (_arg2.x - _arg1.position.x); _local6 = (_arg2.y - _arg1.position.y); _local7 = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); _local8 = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); _local9 = 0; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } public function GetCoreVertices():Array{ return (m_coreVertices); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:Number; var _local21:Number; _local6 = 0; _local7 = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; _local12 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local13 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; _local14 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local15 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local16 = (_local14 - _local12); _local17 = (_local15 - _local13); _local18 = -1; _local19 = 0; while (_local19 < m_vertexCount) { _local11 = m_vertices[_local19]; _local8 = (_local11.x - _local12); _local9 = (_local11.y - _local13); _local11 = m_normals[_local19]; _local20 = ((_local11.x * _local8) + (_local11.y * _local9)); _local21 = ((_local11.x * _local16) + (_local11.y * _local17)); if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){ _local6 = (_local20 / _local21); _local18 = _local19; } else { if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){ _local7 = (_local20 / _local21); }; }; if (_local7 < _local6){ return (false); }; _local19++; }; if (_local18 >= 0){ _arg2[0] = _local6; _local10 = _arg1.R; _local11 = m_normals[_local18]; _arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); return (true); }; return (false); } public function GetCentroid():b2Vec2{ return (m_centroid); } override public function ComputeMass(_arg1:b2MassData):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _local2 = 0; _local3 = 0; _local4 = 0; _local5 = 0; _local6 = 0; _local7 = 0; _local8 = (1 / 3); _local9 = 0; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0]; _local12 = (_local10.x - _local6); _local13 = (_local10.y - _local7); _local14 = (_local11.x - _local6); _local15 = (_local11.y - _local7); _local16 = ((_local12 * _local15) - (_local13 * _local14)); _local17 = (0.5 * _local16); _local4 = (_local4 + _local17); _local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x))); _local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y))); _local18 = _local6; _local19 = _local7; _local20 = _local12; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18)); _local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local5 = (_local5 + (_local16 * (_local24 + _local25))); _local9++; }; _arg1.mass = (m_density * _local4); _local2 = (_local2 * (1 / _local4)); _local3 = (_local3 * (1 / _local4)); _arg1.center.Set(_local2, _local3); _arg1.I = (m_density * _local5); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local6:Number; var _local7:Number; var _local8:int; var _local9:Number; var _local10:int; var _local11:Number; _local5 = _arg1.R; _local6 = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); _local7 = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); _local8 = 0; _local4 = m_coreVertices[0]; _local9 = ((_local4.x * _local6) + (_local4.y * _local7)); _local10 = 1; while (_local10 < m_vertexCount) { _local4 = m_coreVertices[_local10]; _local11 = ((_local4.x * _local6) + (_local4.y * _local7)); if (_local11 > _local9){ _local8 = _local10; _local9 = _local11; }; _local10++; }; _local5 = _arg1.R; _local4 = m_coreVertices[_local8]; s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y))); s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB; var _local5:b2AABB; _local4 = s_sweptAABB1; _local5 = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y); _arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y); } public function GetVertices():Array{ return (m_vertices); } public function GetNormals():Array{ return (m_normals); } public function GetOBB():b2OBB{ return (m_obb); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_coreVertices[0])); } public function Centroid(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_centroid)); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local3:int; var _local4:Number; var _local5:Number; m_sweepRadius = 0; _local3 = 0; while (_local3 < m_vertexCount) { _local2 = m_coreVertices[_local3]; _local4 = (_local2.x - _arg1.x); _local5 = (_local2.y - _arg1.y); _local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local4 > m_sweepRadius){ m_sweepRadius = _local4; }; _local3++; }; } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22; var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local5 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); _local6 = _local5; _local4 = m_obb.extents; _local7 = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); _local8 = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; _local9 = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); _local10 = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:int; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); _local4 = 0; _local5 = 0; _local6 = 0; _local7 = (1 / 3); _local8 = 0; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local5:Array; var _local6:Number; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; _local5 = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; _local6 = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 7
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2Shape { public var m_type:int; public var m_sweepRadius:Number; public var m_density:Number; public var m_filter:b2FilterData; public var m_friction:Number; public var m_next:b2Shape; public var m_restitution:Number; public var m_userData; public var m_isSensor:Boolean; public var m_proxyId:uint; public var m_body:b2Body; public static const e_polygonShape:int = 1; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_shapeTypeCount:int = 2; private static var s_resetAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_proxyAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxyId = b2Pair.b2_nullProxy; m_filter = _arg1.filter.Copy(); m_isSensor = _arg1.isSensor; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetNext():b2Shape{ return (m_next); } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function GetType():int{ return (m_type); } public function GetRestitution():Number{ return (m_restitution); } public function GetFriction():Number{ return (m_friction); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB; var _local4:Boolean; if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); _local3 = s_resetAABB; ComputeAABB(_local3, _arg2); _local4 = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ var _local4:b2AABB; if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; _local4 = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function ComputeMass(_arg1:b2MassData):void{ } public function IsSensor():Boolean{ return (m_isSensor); } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function GetBody():b2Body{ return (m_body); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB; var _local4:Boolean; _local3 = s_proxyAABB; ComputeAABB(_local3, _arg2); _local4 = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public static function Destroy(_arg1:b2Shape, _arg2):void{ } public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } } }//package Box2D.Collision.Shapes
Section 8
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var isSensor:Boolean;// = false public var density:Number;// = 0 public var type:int;// = -1 public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var friction:Number;// = 0.2 public function b2ShapeDef(){ type = b2Shape.e_unknownShape; userData = null; friction = 0.2; restitution = 0; density = 0; isSensor = false; filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 9
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var upperBound:b2Vec2; public var lowerBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number; var _local2:Number; var _local3:Boolean; _local1 = (upperBound.x - lowerBound.x); _local2 = (upperBound.y - lowerBound.y); _local3 = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 10
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var proxyId:uint; public var stabbingCount:uint; public var value:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint; var _local3:uint; var _local4:uint; _local2 = value; _local3 = proxyId; _local4 = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//package Box2D.Collision
Section 11
//b2BoundValues (Box2D.Collision.b2BoundValues) package Box2D.Collision { public class b2BoundValues { public var lowerValues:Array; public var upperValues:Array; public function b2BoundValues(){ lowerValues = [0, 0]; upperValues = [0, 0]; super(); } } }//package Box2D.Collision
Section 12
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; public var m_bounds:Array; public var m_freeProxy:uint; public var m_proxyCount:int; public var m_proxyPool:Array; public var m_queryResultCount:int; public var m_pairManager:b2PairManager; public var m_timeStamp:uint; public var m_queryResults:Array; public static const b2_nullEdge:uint = b2Settings.USHRT_MAX; public static const b2_invalid:uint = b2Settings.USHRT_MAX; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local4:Number; var _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; _local4 = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); _local3 = 0; while (_local3 < (b2Settings.b2_maxProxies - 1)) { _local6 = new b2Proxy(); m_proxyPool[_local3] = _local6; _local6.SetNext((_local3 + 1)); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; _local3++; }; _local6 = new b2Proxy(); m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local4:Array; var _local5:Array; var _local6:uint; var _local7:uint; var _local8:Array; var _local9:Array; var _local10:int; var _local11:int; var _local12:b2Proxy; _local4 = new Array(); _local5 = new Array(); ComputeBounds(_local4, _local5, _arg1); _local8 = [_local6]; _local9 = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); _local10 = 0; _local11 = 0; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Commit():void{ m_pairManager.Commit(); } public function GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy; _local2 = m_proxyPool[_arg1]; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){ return (null); }; return (_local2); } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { (m_proxyPool[_local1] as b2Proxy).timeStamp = 0; _local1++; }; m_timeStamp = 1; } else { m_timeStamp++; }; } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local11:uint; var _local12:int; var _local13:int; var _local14:b2Proxy; _local8 = BinarySearch(_arg5, _arg6, _arg3); _local9 = BinarySearch(_arg5, _arg6, _arg4); _local11 = _local8; while (_local11 < _local9) { _local10 = _arg5[_local11]; if (_local10.IsLower()){ IncrementOverlapCount(_local10.proxyId); }; _local11++; }; if (_local8 > 0){ _local12 = (_local8 - 1); _local10 = _arg5[_local12]; _local13 = _local10.stabbingCount; while (_local13) { _local10 = _arg5[_local12]; if (_local10.IsLower()){ _local14 = m_proxyPool[_local10.proxyId]; if (_local8 <= _local14.upperBounds[_arg7]){ IncrementOverlapCount(_local10.proxyId); _local13--; }; }; _local12--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local4 = _arg3.lowerBound.x; _local5 = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); _local6 = _arg3.upperBound.x; _local7 = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local5:uint; var _local6:uint; var _local7:Array; var _local8:Array; var _local9:int; var _local10:int; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:b2Bound; var _local22:int; var _local23:b2Proxy; _local5 = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; _local6 = (2 * m_proxyCount); _local7 = new Array(); _local8 = new Array(); ComputeBounds(_local7, _local8, _arg1); _local9 = 0; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local13 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local16 = new Array(); _local18 = (_local13 - _local12); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local12 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local19 = _local11[_local12]; _local20 = _local11[_local13]; _local19.value = _local7[_local9]; _local19.proxyId = _local5; _local20.value = _local8[_local9]; _local20.proxyId = _local5; _local21 = _local11[int((_local12 - 1))]; _local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount; _local21 = _local11[int((_local13 - 1))]; _local20.stabbingCount = _local21.stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local21 = _local11[_local3]; _local21.stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local19 = _local11[_local3]; _local23 = m_proxyPool[_local19.proxyId]; if (_local19.IsLower()){ _local23.lowerBounds[_local9] = _local3; } else { _local23.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; _local10 = 0; while (_local10 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]); _local10++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local5); } public function DestroyProxy(_arg1:uint):void{ var _local2:b2Bound; var _local3:b2Bound; var _local4:b2Proxy; var _local5:int; var _local6:int; var _local7:int; var _local8:Array; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:int; var _local15:int; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; _local4 = m_proxyPool[_arg1]; _local5 = (2 * m_proxyCount); _local6 = 0; while (_local6 < 2) { _local8 = m_bounds[_local6]; _local9 = _local4.lowerBounds[_local6]; _local10 = _local4.upperBounds[_local6]; _local2 = _local8[_local9]; _local11 = _local2.value; _local3 = _local8[_local10]; _local12 = _local3.value; _local13 = new Array(); _local15 = ((_local10 - _local9) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local9 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = _local9; _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local13 = new Array(); _local15 = ((_local5 - _local10) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local10 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = (_local10 - 1); _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = (_local5 - 2); _local17 = _local9; while (_local17 < _local15) { _local2 = _local8[_local17]; _local19 = m_proxyPool[_local2.proxyId]; if (_local2.IsLower()){ _local19.lowerBounds[_local6] = _local17; } else { _local19.upperBounds[_local6] = _local17; }; _local17++; }; _local15 = (_local10 - 1); _local18 = _local9; while (_local18 < _local15) { _local2 = _local8[_local18]; _local2.stabbingCount--; _local18++; }; Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6); _local6++; }; _local7 = 0; while (_local7 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]); _local7++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local4.userData = null; _local4.overlapCount = b2_invalid; _local4.lowerBounds[0] = b2_invalid; _local4.lowerBounds[1] = b2_invalid; _local4.upperBounds[0] = b2_invalid; _local4.upperBounds[1] = b2_invalid; _local4.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; var _local5:b2Bound; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg2.upperBounds[_local3]]; if (_arg1.lowerValues[_local3] > _local5.value){ return (false); }; _local5 = _local4[_arg2.lowerBounds[_local3]]; if (_arg1.upperValues[_local3] < _local5.value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local5:int; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; _local5 = 0; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy; _local2 = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } public function InRange(_arg1:b2AABB):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = _arg1.lowerBound.x; _local3 = _arg1.lowerBound.y; _local2 = (_local2 - m_worldAABB.upperBound.x); _local3 = (_local3 - m_worldAABB.upperBound.y); _local4 = m_worldAABB.lowerBound.x; _local5 = m_worldAABB.lowerBound.y; _local4 = (_local4 - _arg1.upperBound.x); _local5 = (_local5 - _arg1.upperBound.y); _local2 = b2Math.b2Max(_local2, _local4); _local3 = b2Math.b2Max(_local3, _local5); return ((b2Math.b2Max(_local2, _local3) < 0)); } public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{ var _local3:Array; var _local4:int; var _local5:uint; var _local6:uint; var _local7:b2Bound; var _local8:b2Bound; var _local9:b2Bound; var _local10:uint; var _local11:b2Proxy; var _local12:uint; var _local13:b2Proxy; var _local14:b2BoundValues; var _local15:b2BoundValues; var _local16:Array; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:uint; var _local21:int; var _local22:int; var _local23:uint; var _local24:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; _local12 = (2 * m_proxyCount); _local13 = m_proxyPool[_arg1]; _local14 = new b2BoundValues(); ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2); _local15 = new b2BoundValues(); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5][_local13.lowerBounds[_local5]]; _local15.lowerValues[_local5] = _local7.value; _local7 = m_bounds[_local5][_local13.upperBounds[_local5]]; _local15.upperValues[_local5] = _local7.value; _local5++; }; _local5 = 0; while (_local5 < 2) { _local16 = m_bounds[_local5]; _local17 = _local13.lowerBounds[_local5]; _local18 = _local13.upperBounds[_local5]; _local19 = _local14.lowerValues[_local5]; _local20 = _local14.upperValues[_local5]; _local7 = _local16[_local17]; _local21 = (_local19 - _local7.value); _local7.value = _local19; _local7 = _local16[_local18]; _local22 = (_local20 - _local7.value); _local7.value = _local20; if (_local21 < 0){ _local6 = _local17; while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local8.proxyId]; _local8.stabbingCount++; if (_local8.IsUpper() == true){ if (TestOverlap(_local14, _local24)){ m_pairManager.AddBufferedPair(_arg1, _local23); }; _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; if (_local22 > 0){ _local6 = _local18; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount++; if (_local9.IsLower() == true){ if (TestOverlap(_local14, _local11)){ m_pairManager.AddBufferedPair(_arg1, _local10); }; _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local21 > 0){ _local6 = _local17; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount--; if (_local9.IsUpper()){ if (TestOverlap(_local15, _local11)){ m_pairManager.RemoveBufferedPair(_arg1, _local10); }; _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local22 < 0){ _local6 = _local18; while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local23]; _local8.stabbingCount--; if (_local8.IsLower() == true){ if (TestOverlap(_local15, _local24)){ m_pairManager.RemoveBufferedPair(_arg1, _local23); }; _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; _local5++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local4:int; var _local5:int; var _local6:int; var _local7:b2Bound; _local4 = 0; _local5 = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); _local7 = _arg1[_local6]; if (_local7.value > _arg3){ _local5 = (_local6 - 1); } else { if (_local7.value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.Collision
Section 13
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 14
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:int; var _local7:Array; var _local8:Array; var _local9:int; var _local10:Array; var _local11:b2Mat22; var _local12:b2Vec2; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:int; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _local6 = _arg1.m_vertexCount; _local7 = _arg1.m_vertices; _local8 = _arg1.m_normals; _local9 = _arg4.m_vertexCount; _local10 = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; _local13 = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); _local14 = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; _local15 = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); _local16 = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); _local17 = 0; _local18 = Number.MAX_VALUE; _local19 = 0; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; _local20 = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); _local21 = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; _local22 = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); _local23 = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); _local24 = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local3 = _arg2.lowerBound; _local4 = _arg1.upperBound; _local5 = (_local3.x - _local4.x); _local6 = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; _local7 = (_local3.x - _local4.x); _local8 = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local7:int; var _local8:Array; var _local9:int; var _local10:Array; var _local11:Array; var _local12:b2Mat22; var _local13:b2Vec2; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:int; var _local20:ClipVertex; var _local21:int; var _local22:int; var _local23:Number; _local7 = _arg2.m_vertexCount; _local8 = _arg2.m_normals; _local9 = _arg5.m_vertexCount; _local10 = _arg5.m_vertices; _local11 = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; _local14 = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); _local15 = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; _local16 = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; _local17 = 0; _local18 = Number.MAX_VALUE; _local19 = 0; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; _local21 = _local17; _local22 = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local7:int; var _local8:Array; var _local9:Number; var _local10:int; var _local11:Array; var _local12:Number; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local15:b2XForm; var _local16:b2XForm; var _local17:int; var _local18:uint; var _local19:Number; var _local20:Number; var _local21:Array; var _local22:int; var _local23:Array; var _local24:b2Vec2; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:b2Vec2; var _local28:b2Vec2; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Array; var _local33:Array; var _local34:int; var _local35:int; var _local36:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; _local7 = 0; _local8 = [_local7]; _local9 = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; _local10 = 0; _local11 = [_local10]; _local12 = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; _local15 = new b2XForm(); _local16 = new b2XForm(); _local19 = 0.98; _local20 = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; _local21 = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); _local22 = _local13.m_vertexCount; _local23 = _local13.m_vertices; _local24 = _local23[_local17]; _local25 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; _local26 = b2Math.SubtractVV(_local37, _local25); _local27 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); _local28 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); _local29 = b2Math.b2Dot(_local28, _local25); _local30 = -(b2Math.b2Dot(_local27, _local25)); _local31 = b2Math.b2Dot(_local27, _local37); _local32 = [new ClipVertex(), new ClipVertex()]; _local33 = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); _local35 = 0; _local36 = 0; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:int; var _local7:Array; var _local8:b2Vec2; var _local9:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:int; var _local15:Number; var _local16:int; var _local17:Number; var _local18:int; var _local19:Number; var _local20:int; var _local21:Number; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; _local6 = _arg2.m_vertexCount; _local7 = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; _local10 = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); _local11 = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); _local12 = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); _local13 = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); _local14 = 0; _local15 = -(Number.MAX_VALUE); _local16 = 0; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; _local18 = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); _local19 = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; _local20 = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; _local21 = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); _local10 = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:b2ManifoldPoint; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; _local8 = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local9 = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; _local10 = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local11 = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local12 = (_local10 - _local8); _local13 = (_local11 - _local9); _local14 = ((_local12 * _local12) + (_local13 * _local13)); _local15 = _arg2.m_radius; _local16 = _arg4.m_radius; _local17 = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; _local19 = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); _local20 = (0.5 * (_local8 + _local10)); _local21 = (0.5 * (_local9 + _local11)); _local22 = (_local20 - _arg3.position.x); _local23 = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:Number; var _local20:Number; var _local21:int; var _local22:Array; var _local23:Array; var _local24:int; var _local25:int; var _local26:int; var _local27:b2Vec2; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; _local13 = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); _local14 = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; _local15 = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local16 = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local18 = 0; _local19 = -(Number.MAX_VALUE); _local20 = _arg4.m_radius; _local21 = _arg2.m_vertexCount; _local22 = _arg2.m_vertices; _local23 = _arg2.m_normals; _local24 = 0; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; _local25 = _local18; _local26 = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; _local27 = _local22[_local26]; _local28 = (_local27.x - _local11.x); _local29 = (_local27.y - _local11.y); _local30 = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local31 = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = 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.Collision
Section 15
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var _key:uint; public var features:Features; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID; _local1 = new b2ContactID(); _local1.key = key; return (_local1); } public function get key():uint{ return (_key); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } } }//package Box2D.Collision
Section 16
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2ContactPoint { public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var restitution:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public var friction:Number; public var velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 17
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local4:Number; var _local5:int; var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local4 = (100 * Number.MIN_VALUE); _local5 = 0; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local8:Array; var _local9:Array; var _local10:Array; var _local11:int; var _local12:Number; var _local13:int; var _local14:int; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; _local8 = s_p1s; _local9 = s_p2s; _local10 = s_points; _local11 = 0; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); _local12 = 0; _local13 = 20; _local14 = 0; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - ((_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 _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; _local9 = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local10 = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; _local11 = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local12 = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = ((_local13 * _local13) + (_local14 * _local14)); _local16 = (_arg3.m_radius - b2Settings.b2_toiSlop); _local17 = (_arg5.m_radius - b2Settings.b2_toiSlop); _local18 = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(((_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 _local14:b2Vec2; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; _local14 = _arg4[2]; _local15 = _local6.x; _local16 = _local6.y; _local17 = _local7.x; _local18 = _local7.y; _local19 = _local8.x; _local20 = _local8.y; _local21 = (_local17 - _local15); _local22 = (_local18 - _local16); _local23 = (_local19 - _local15); _local24 = (_local20 - _local16); _local25 = (_local19 - _local17); _local26 = (_local20 - _local18); _local27 = -(((_local15 * _local21) + (_local16 * _local22))); _local28 = ((_local17 * _local21) + (_local18 * _local22)); _local29 = -(((_local15 * _local23) + (_local16 * _local24))); _local30 = ((_local19 * _local23) + (_local20 * _local24)); _local31 = -(((_local17 * _local25) + (_local18 * _local26))); _local32 = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; _local33 = ((_local21 * _local24) - (_local22 * _local23)); _local34 = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); _local36 = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; _local37 = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; _local38 = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); _local39 = (_local36 * _local38); _local40 = (_local37 * _local38); _local41 = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local9:b2Point; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local9 = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local10 = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); _local11 = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int; var _local8:int; _local7 = _arg3.m_type; _local8 = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; _local12 = -(_local7.x); _local13 = -(_local7.y); _local14 = (_local6.x - _local7.x); _local15 = (_local6.y - _local7.y); _local16 = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } }//package Box2D.Collision
Section 18
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var points:Array; public var pointCount:int;// = 0 public var normal:b2Vec2; public function b2Manifold(){ var _local1:int; pointCount = 0; super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ var _local2:int; pointCount = _arg1.pointCount; _local2 = 0; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } public function Reset():void{ var _local1:int; _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 19
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var separation:Number; public var localPoint2:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var localPoint1:b2Vec2; public var id:b2ContactID; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } public function Set(_arg1:b2ManifoldPoint):void{ localPoint1.SetV(_arg1.localPoint1); localPoint2.SetV(_arg1.localPoint2); separation = _arg1.separation; normalImpulse = _arg1.normalImpulse; tangentImpulse = _arg1.tangentImpulse; id.key = _arg1.id.key; } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalImpulse = 0; tangentImpulse = 0; id.key = 0; } } }//package Box2D.Collision
Section 20
//b2OBB (Box2D.Collision.b2OBB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2OBB { public var R:b2Mat22; public var center:b2Vec2; public var extents:b2Vec2; public function b2OBB(){ R = new b2Mat22(); center = new b2Vec2(); extents = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 21
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var userData;// = null public var proxyId1:uint; public var proxyId2:uint; public var status:uint; public var next:uint; public static var e_pairFinal:uint = 4; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairRemoved:uint = 2; public static var b2_nullPair:uint = b2Settings.USHRT_MAX; public static var e_pairBuffered:uint = 1; public static var b2_nullProxy:uint = b2Settings.USHRT_MAX; public static var b2_tableCapacity:int = b2Settings.b2_maxPairs; public function b2Pair(){ userData = null; super(); } public function SetBuffered():void{ status = (status | e_pairBuffered); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } } }//package Box2D.Collision
Section 22
//b2PairCallback (Box2D.Collision.b2PairCallback) package Box2D.Collision { public class b2PairCallback { public function PairRemoved(_arg1, _arg2, _arg3):void{ } public function PairAdded(_arg1, _arg2){ return (null); } } }//package Box2D.Collision
Section 23
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PairManager { public var m_pairCount:int; public var m_pairBuffer:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_hashTable:Array; public var m_broadPhase:b2BroadPhase; public var m_freePair:uint; public function b2PairManager(){ var _local1:uint; super(); m_hashTable = new Array(b2Pair.b2_tableCapacity); _local1 = 0; while (_local1 < b2Pair.b2_tableCapacity) { m_hashTable[_local1] = b2Pair.b2_nullPair; _local1++; }; m_pairs = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1] = new b2Pair(); _local1++; }; m_pairBuffer = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairBuffer[_local1] = new b2BufferedPair(); _local1++; }; _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy; m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy; m_pairs[_local1].userData = null; m_pairs[_local1].status = 0; m_pairs[_local1].next = (_local1 + 1); _local1++; }; m_pairs[int((b2Settings.b2_maxPairs - 1))].next = b2Pair.b2_nullPair; m_pairCount = 0; m_pairBufferCount = 0; } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:b2Pair; var _local5:uint; _local5 = m_hashTable[_arg3]; _local4 = m_pairs[_local5]; while (((!((_local5 == b2Pair.b2_nullPair))) && ((Equals(_local4, _arg1, _arg2) == false)))) { _local5 = _local4.next; _local4 = m_pairs[_local5]; }; if (_local5 == b2Pair.b2_nullPair){ return (null); }; return (_local4); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local3:int; var _local4:Array; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; _local3 = 0; _local4 = m_broadPhase.m_proxyPool; _local2 = 0; while (_local2 < m_pairBufferCount) { _local1 = m_pairBuffer[_local2]; _local5 = Find(_local1.proxyId1, _local1.proxyId2); _local5.ClearBuffered(); _local6 = _local4[_local5.proxyId1]; _local7 = _local4[_local5.proxyId2]; if (_local5.IsRemoved()){ if (_local5.IsFinal() == true){ m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData); }; _local1 = m_pairBuffer[_local3]; _local1.proxyId1 = _local5.proxyId1; _local1.proxyId2 = _local5.proxyId2; _local3++; } else { if (_local5.IsFinal() == false){ _local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData); _local5.SetFinal(); }; }; _local2++; }; _local2 = 0; while (_local2 < _local3) { _local1 = m_pairBuffer[_local2]; RemovePair(_local1.proxyId1, _local1.proxyId2); _local2++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair; _local4 = Find(_arg1, _arg2); if (_local4 == null){ return; }; if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local4:uint; var _local5:uint; var _local6:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; _local4 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local5 = m_hashTable[_local4]; _local6 = null; while (_local5 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local5], _arg1, _arg2)){ _local8 = _local5; _local3 = m_pairs[_local5]; if (_local6){ _local6.next = _local3.next; } else { m_hashTable[_local4] = _local3.next; }; _local3 = m_pairs[_local8]; _local9 = _local3.userData; _local3.next = m_freePair; _local3.proxyId1 = b2Pair.b2_nullProxy; _local3.proxyId2 = b2Pair.b2_nullProxy; _local3.userData = null; _local3.status = 0; m_freePair = _local8; m_pairCount--; return (_local9); } else { _local6 = m_pairs[_local5]; _local5 = _local6.next; }; }; return (null); } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair; _local4 = AddPair(_arg1, _arg2); if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:b2Pair; var _local5:uint; var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; _local5 = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function ValidateTable():void{ } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } public static function Hash(_arg1:uint, _arg2:uint):uint{ var _local3:uint; _local3 = (((_arg2 << 16) & 4294901760) | _arg1); _local3 = (~(_local3) + ((_local3 << 15) & 4294934528)); _local3 = (_local3 ^ ((_local3 >> 12) & 1048575)); _local3 = (_local3 + ((_local3 << 2) & 4294967292)); _local3 = (_local3 ^ ((_local3 >> 4) & 268435455)); _local3 = (_local3 * 2057); _local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF)); return (_local3); } public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{ return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3)))); } } }//package Box2D.Collision
Section 24
//b2Point (Box2D.Collision.b2Point) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Point { public var p:b2Vec2; public function b2Point(){ p = new b2Vec2(); super(); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 25
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var lowerBounds:Array; public var upperBounds:Array; public var userData;// = null public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; userData = null; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } } }//package Box2D.Collision
Section 26
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; _local5 = _arg3.p1; _local6 = (_arg3.p2.x - _local5.x); _local7 = (_arg3.p2.y - _local5.y); _local8 = (p2.x - p1.x); _local9 = (p2.y - p1.y); _local10 = _local9; _local11 = -(_local8); _local12 = (100 * Number.MIN_VALUE); _local13 = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_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.Collision
Section 27
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:int; var _local20:int; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; _local7 = _arg1.m_sweepRadius; _local8 = _arg3.m_sweepRadius; _local9 = _arg2.t0; _local10 = (_arg2.c.x - _arg2.c0.x); _local11 = (_arg2.c.y - _arg2.c0.y); _local12 = (_arg4.c.x - _arg4.c0.x); _local13 = (_arg4.c.y - _arg4.c0.y); _local14 = (_arg2.a - _arg2.a0); _local15 = (_arg4.a - _arg4.a0); _local16 = 0; _local17 = s_p1; _local18 = s_p2; _local19 = 20; _local20 = 0; _local21 = 0; _local22 = 0; _local23 = 0; _local24 = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } }//package Box2D.Collision
Section 28
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var v:b2Vec2; public var id:b2ContactID; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 29
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceEdge:int; public var _incidentEdge:int; public var _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get flip():int{ return (_flip); } public function get incidentEdge():int{ return (_incidentEdge); } public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.Collision
Section 30
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function Set(_arg1:Number):void{ var _local2:Number; var _local3:Number; _local2 = Math.cos(_arg1); _local3 = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = col1.x; _local3 = col2.x; _local4 = col1.y; _local5 = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = col1.x; _local5 = col2.x; _local6 = col1.y; _local7 = col2.y; _local8 = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 31
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = b2MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:*; _local3 = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22; _local2 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2; _local2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2Mat22; _local3 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); _local4 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); _local5 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean; _local2 = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number; _local3 = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } }//package Box2D.Common.Math
Section 32
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var c:b2Vec2; public var a:Number; public var c0:b2Vec2; public var a0:Number; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; _local3 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } }//package Box2D.Common.Math
Section 33
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var x:Number; public var y:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function SetZero():void{ x = 0; y = 0; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function CrossVF(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function MulM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function Normalize():Number{ var _local1:Number; var _local2:Number; _local1 = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; _local2 = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function CrossFV(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 34
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var R:b2Mat22; public var position:b2Vec2; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } } }//package Box2D.Common.Math
Section 35
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _g:uint;// = 0 private var _b:uint;// = 0 private var _r:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = 0; _g = 0; _b = 0; super(); _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function get color():uint{ return (((_r | (_g << 8)) | (_b << 16))); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } } }//package Box2D.Common
Section 36
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const b2_angularSleepTolerance:Number = 0.0111111111111111; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_angularSlop:Number = ((2 / 180) * b2_pi); public static const b2_linearSlop:Number = 0.005; public static const b2_pi:Number = Math.PI; public static const b2_maxProxies:int = 0x0400; public static const b2_maxAngularVelocitySquared:Number = 62500; public static const b2_maxPolygonVertices:int = 64; public static const b2_velocityThreshold:Number = 1; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_maxPairs:int = 8192; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_timeToSleep:Number = 1; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxAngularVelocity:Number = 250; public static const b2_maxAngularCorrection:Number = ((8 / 180) * b2_pi); public static const USHRT_MAX:int = 0xFFFF; public static const b2_maxLinearVelocity:Number = 200; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_toiSlop:Number = 0.04; public static const b2_maxLinearVelocitySquared:Number = 40000; public static function b2Assert(_arg1:Boolean):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 37
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ var _local3:b2ManifoldPoint; m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; _local3 = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactPoint; var _local8:b2ManifoldPoint; _local5 = m_shape1.m_body; _local6 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 38
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Contact { public var m_shape1:b2Shape; public var m_shape2:b2Shape; public var m_prev:b2Contact; public var m_toi:Number; public var m_next:b2Contact; public var m_friction:Number; public var m_manifoldCount:int; public var m_node1:b2ContactEdge; public var m_node2:b2ContactEdge; public var m_restitution:Number; public var m_flags:uint; public static var e_toiFlag:uint = 8; public static var e_nonSolidFlag:uint = 1; public static var e_slowFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var s_registers:Array; public static var s_initialized:Boolean = false; public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){ m_node1 = new b2ContactEdge(); m_node2 = new b2ContactEdge(); super(); m_flags = 0; if (((!(_arg1)) || (!(_arg2)))){ m_shape1 = null; m_shape2 = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_nonSolidFlag); }; m_shape1 = _arg1; m_shape2 = _arg2; m_manifoldCount = 0; m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction)); m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution); m_prev = null; m_next = null; m_node1.contact = null; m_node1.prev = null; m_node1.next = null; m_node1.other = null; m_node2.contact = null; m_node2.prev = null; m_node2.next = null; m_node2.other = null; } public function GetShape1():b2Shape{ return (m_shape1); } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetNext():b2Contact{ return (m_next); } public function GetManifolds():Array{ return (null); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function Update(_arg1:b2ContactListener):void{ var _local2:int; var _local3:int; var _local4:b2Body; var _local5:b2Body; _local2 = m_manifoldCount; Evaluate(_arg1); _local3 = m_manifoldCount; _local4 = m_shape1.m_body; _local5 = m_shape2.m_body; if ((((_local3 == 0)) && ((_local2 > 0)))){ _local4.WakeUp(); _local5.WakeUp(); }; if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } public function Evaluate(_arg1:b2ContactListener):void{ } public static function InitializeRegisters():void{ var _local1:int; var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); _local1 = 0; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); } public static function Destroy(_arg1:b2Contact, _arg2):void{ var _local3:int; var _local4:int; var _local5:b2ContactRegister; var _local6:Function; if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; _local3 = _arg1.m_shape1.m_type; _local4 = _arg1.m_shape2.m_type; _local5 = s_registers[_local3][_local4]; _local6 = _local5.destroyFcn; _local6(_arg1, _arg2); } public static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local4:int; var _local5:int; var _local6:b2ContactRegister; var _local7:Function; var _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; _local4 = _arg1.m_type; _local5 = _arg2.m_type; _local6 = s_registers[_local4][_local5]; _local7 = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 39
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var normal:b2Vec2; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ var _local1:int; normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 40
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var r2:b2Vec2; public var separation:Number; public var positionImpulse:Number; public var normalImpulse:Number; public var equalizedMass:Number; public var tangentMass:Number; public var tangentImpulse:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var normalMass:Number; public var velocityBias:Number; public var r1:b2Vec2; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 41
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var next:b2ContactEdge; public var other:b2Body; public var contact:b2Contact; public var prev:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 42
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn:Function; public var destroyFcn:Function; } }//package Box2D.Dynamics.Contacts
Section 43
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; public class b2ContactResult { public var normal:b2Vec2; public var position:b2Vec2; public var shape1:b2Shape; public var shape2:b2Shape; public var normalImpulse:Number; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ContactResult(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Dynamics.Contacts
Section 44
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactSolver { public var m_constraintCount:int; public var m_constraints:Array; public var m_allocator; public var m_step:b2TimeStep; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local9:int; var _local10:b2Body; var _local11:b2Body; var _local12:int; var _local13:Array; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; var _local23:b2Manifold; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraint; var _local27:uint; var _local28:b2ManifoldPoint; var _local29:b2ContactConstraintPoint; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; m_step = new b2TimeStep(); m_constraints = new Array(); super(); m_step.dt = _arg1.dt; m_step.inv_dt = _arg1.inv_dt; m_step.maxIterations = _arg1.maxIterations; m_allocator = _arg4; m_constraintCount = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; m_constraintCount = (m_constraintCount + _local5.m_manifoldCount); _local6++; }; _local6 = 0; while (_local6 < m_constraintCount) { m_constraints[_local6] = new b2ContactConstraint(); _local6++; }; _local9 = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1.m_body; _local11 = _local5.m_shape2.m_body; _local12 = _local5.m_manifoldCount; _local13 = _local5.GetManifolds(); _local14 = _local5.m_friction; _local15 = _local5.m_restitution; _local16 = _local10.m_linearVelocity.x; _local17 = _local10.m_linearVelocity.y; _local18 = _local11.m_linearVelocity.x; _local19 = _local11.m_linearVelocity.y; _local20 = _local10.m_angularVelocity; _local21 = _local11.m_angularVelocity; _local22 = 0; while (_local22 < _local12) { _local23 = _local13[_local22]; _local24 = _local23.normal.x; _local25 = _local23.normal.y; _local26 = m_constraints[_local9]; _local26.body1 = _local10; _local26.body2 = _local11; _local26.manifold = _local23; _local26.normal.x = _local24; _local26.normal.y = _local25; _local26.pointCount = _local23.pointCount; _local26.friction = _local14; _local26.restitution = _local15; _local27 = 0; while (_local27 < _local26.pointCount) { _local28 = _local23.points[_local27]; _local29 = _local26.points[_local27]; _local29.normalImpulse = _local28.normalImpulse; _local29.tangentImpulse = _local28.tangentImpulse; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local8 = _local10.m_xf.R; _local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x); _local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33)); _local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33)); _local32 = _local30; _local29.r1.Set(_local32, _local33); _local8 = _local11.m_xf.R; _local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x); _local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local30; _local29.r2.Set(_local34, _local35); _local36 = ((_local32 * _local32) + (_local33 * _local33)); _local37 = ((_local34 * _local34) + (_local35 * _local35)); _local38 = ((_local32 * _local24) + (_local33 * _local25)); _local39 = ((_local34 * _local24) + (_local35 * _local25)); _local40 = (_local10.m_invMass + _local11.m_invMass); _local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39))))); _local29.normalMass = (1 / _local40); _local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass)); _local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39))))); _local29.equalizedMass = (1 / _local41); _local42 = _local25; _local43 = -(_local24); _local44 = ((_local32 * _local42) + (_local33 * _local43)); _local45 = ((_local34 * _local42) + (_local35 * _local43)); _local46 = (_local10.m_invMass + _local11.m_invMass); _local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45))))); _local29.tangentMass = (1 / _local46); _local29.velocityBias = 0; if (_local29.separation > 0){ _local29.velocityBias = (-60 * _local29.separation); }; _local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33)); _local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32)); _local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47)); }; _local27++; }; _local9++; _local22++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local5:int; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; _local5 = 0; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:int; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; _local2 = 0; _local5 = 0; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Mat22; var _local18:b2Vec2; var _local19:int; var _local20:b2ContactConstraint; var _local21:b2Body; var _local22:b2Body; var _local23:Number; var _local24:Number; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:int; var _local38:Number; _local19 = 0; while (_local19 < m_constraintCount) { _local20 = m_constraints[_local19]; _local21 = _local20.body1; _local22 = _local20.body2; _local23 = _local21.m_angularVelocity; _local24 = _local22.m_angularVelocity; _local25 = _local21.m_linearVelocity; _local26 = _local22.m_linearVelocity; _local27 = _local21.m_invMass; _local28 = _local21.m_invI; _local29 = _local22.m_invMass; _local30 = _local22.m_invI; _local31 = _local20.normal.x; _local32 = _local20.normal.y; _local33 = _local32; _local34 = -(_local31); _local35 = _local20.friction; _local37 = _local20.pointCount; _local1 = 0; while (_local1 < _local37) { _local2 = _local20.points[_local1]; _local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y)); _local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x)); _local9 = ((_local7 * _local31) + (_local8 * _local32)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local10 = ((_local7 * _local33) + (_local8 * _local34)); _local12 = (_local2.tangentMass * -(_local10)); _local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0); _local11 = (_local13 - _local2.normalImpulse); _local38 = (_local35 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38); _local12 = (_local14 - _local2.tangentImpulse); _local15 = ((_local11 * _local31) + (_local12 * _local33)); _local16 = ((_local11 * _local32) + (_local12 * _local34)); _local25.x = (_local25.x - (_local27 * _local15)); _local25.y = (_local25.y - (_local27 * _local16)); _local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local26.x = (_local26.x + (_local29 * _local15)); _local26.y = (_local26.y + (_local29 * _local16)); _local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.normalImpulse = _local13; _local2.tangentImpulse = _local14; _local1++; }; _local21.m_angularVelocity = _local23; _local22.m_angularVelocity = _local24; _local19++; }; } public function FinalizeVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; _local1 = 0; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 45
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function GetManifolds():Array{ return (null); } override public function Evaluate(_arg1:b2ContactListener):void{ } } }//package Box2D.Dynamics.Contacts
Section 46
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ var _local3:b2ManifoldPoint; m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; _local3 = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local6:b2Body; var _local7:b2Body; var _local8:Array; var _local9:b2ContactPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; _local6 = m_shape1.m_body; _local7 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); _local8 = [false, false]; _local9 = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 47
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactPoint; var _local8:int; var _local9:Array; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; _local5 = m_shape1.m_body; _local6 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); _local9 = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local9[_local13] == true){ } else { _local4 = m0.points[_local13]; if (_local4.id._key == _local12){ _local9[_local13] = true; _local10.normalImpulse = _local4.normalImpulse; _local10.tangentImpulse = _local4.tangentImpulse; _local11 = true; if (_arg1 != null){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Persist(_local7); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Add(_local7); }; _local8++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local8 = 0; while (_local8 < m0.pointCount) { if (_local9[_local8]){ } else { _local4 = m0.points[_local8]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; _local8++; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 48
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_mass:Number; public var m_u:b2Vec2; public var m_impulse:Number; public var m_dampingRatio:Number; public var m_frequencyHz:Number; public var m_localAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_bias:Number; public var m_gamma:Number; public var m_length:Number; public function b2DistanceJoint(_arg1:b2DistanceJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; m_inv_dt = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; if (m_frequencyHz > 0){ return (true); }; _local2 = m_body1; _local3 = m_body2; _local1 = _local2.m_xf.R; _local4 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; _local7 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local8 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; _local9 = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); _local10 = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); _local11 = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); _local12 = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local13 = (-(m_mass) * _local12); m_u.Set(_local9, _local10); _local14 = (_local13 * m_u.x); _local15 = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; m_inv_dt = _arg1.inv_dt; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); _local10 = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; _local11 = ((_local6 * m_u.y) - (_local7 * m_u.x)); _local12 = ((_local8 * m_u.y) - (_local9 * m_u.x)); _local13 = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local3 = m_body1; _local4 = m_body2; _local2 = _local3.m_xf.R; _local5 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; _local8 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; _local10 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); _local11 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); _local12 = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); _local13 = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); _local14 = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); _local15 = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); _local16 = (_local15 * m_u.x); _local17 = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } } }//package Box2D.Dynamics.Joints
Section 49
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2DistanceJointDef extends b2JointDef { public var length:Number; public var dampingRatio:Number; public var frequencyHz:Number; public var localAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ var _local5:Number; var _local6:Number; body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); _local5 = (_arg4.x - _arg3.x); _local6 = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.Joints
Section 50
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_force:Number; public var m_mass:Number; public var m_prismatic1:b2PrismaticJoint; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_ground2:b2Body; public var m_constant:Number; public var m_revolute1:b2RevoluteJoint; public var m_revolute2:b2RevoluteJoint; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_ratio:Number; public var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local2:int; var _local3:int; var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); _local2 = _arg1.joint1.m_type; _local3 = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.m_body1; m_body1 = _arg1.joint1.m_body2; if (_local2 == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local4 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local4 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_local3 == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local5 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local5 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local4 + (m_ratio * _local5)); m_force = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local1 = 0; _local2 = m_body1; _local3 = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; _local6 = (m_constant - (_local4 + (m_ratio * _local5))); _local7 = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; _local2 = m_ground1; _local3 = m_ground2; _local4 = m_body1; _local5 = m_body2; _local14 = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ var _local1:b2Mat22; var _local2:Number; var _local3:Number; var _local4:Number; _local1 = m_body2.m_xf.R; _local2 = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); _local3 = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); _local4 = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = m_body1; _local3 = m_body2; _local4 = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local5 = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); _local6 = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } } }//package Box2D.Dynamics.Joints
Section 51
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint2:b2Joint; public var joint1:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 52
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var linear2:b2Vec2; public var angular2:Number; public var angular1:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 53
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2Joint { public var m_islandFlag:Boolean; public var m_body1:b2Body; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_type:int; public var m_collideConnected:Boolean; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_inv_dt:Number; public var m_userData; public var m_body2:b2Body; public static const e_unknownJoint:int = 0; public static const e_inactiveLimit:int = 0; public static const e_atUpperLimit:int = 2; public static const e_atLowerLimit:int = 1; public static const e_gearJoint:int = 6; public static const e_revoluteJoint:int = 1; public static const e_equalLimits:int = 3; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_prismaticJoint:int = 2; public static const e_mouseJoint:int = 5; public function b2Joint(_arg1:b2JointDef){ m_node1 = new b2JointEdge(); m_node2 = new b2JointEdge(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetType():int{ return (m_type); } public function GetBody2():b2Body{ return (m_body2); } public function GetNext():b2Joint{ return (m_next); } public function GetReactionTorque():Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce():b2Vec2{ return (null); } public function SolvePositionConstraints():Boolean{ return (false); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetBody1():b2Body{ return (m_body1); } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public static function Destroy(_arg1:b2Joint, _arg2):void{ } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; _local3 = null; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } } }//package Box2D.Dynamics.Joints
Section 54
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var collideConnected:Boolean; public var body1:b2Body; public var body2:b2Body; public var userData; public var type:int; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 55
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var joint:b2Joint; public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; } }//package Box2D.Dynamics.Joints
Section 56
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { public var m_beta:Number; public var m_mass:b2Mat22; public var m_target:b2Vec2; public var m_impulse:b2Vec2; public var m_localAnchor:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K:b2Mat22; public var m_gamma:Number; public var m_C:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local2:Number; var _local3:Number; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); _local2 = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); _local4 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); _local5 = m_body2.m_mass; _local6 = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); _local7 = (((2 * _local5) * _arg1.dampingRatio) * _local6); _local8 = ((_arg1.timeStep * _local5) * (_local6 * _local6)); m_gamma = (1 / (_local7 + _local8)); m_beta = (_local8 / (_local7 + _local8)); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function GetReactionForce():b2Vec2{ return (m_impulse); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); _local9 = (_arg1.dt * m_impulse.x); _local10 = (_arg1.dt * m_impulse.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function GetReactionTorque():Number{ return (0); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local6 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; _local8 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); _local9 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y)); _local10 = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); _local11 = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); _local12 = m_impulse.x; _local13 = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); _local14 = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); _local15 = (_arg1.dt * _local10); _local16 = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } } }//package Box2D.Dynamics.Joints
Section 57
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var frequencyHz:Number; public var dampingRatio:Number; public var maxForce:Number; public var target:b2Vec2; public var timeStep:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; timeStep = (1 / 60); } } }//package Box2D.Dynamics.Joints
Section 58
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { public var m_limitForce:Number; public var m_refAngle:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_torque:Number; public var m_enableLimit:Boolean; public var m_motorForce:Number; public var m_force:Number; public var m_localYAxis1:b2Vec2; public var m_motorMass:Number; public var m_maxMotorForce:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_angularMass:Number; public var m_limitState:int; public var m_linearMass:Number; public var m_upperTranslation:Number; public var m_motorJacobian:b2Jacobian; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_linearJacobian:b2Jacobian; public var m_enableMotor:Boolean; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_linearJacobian = new b2Jacobian(); m_motorJacobian = new b2Jacobian(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_linearJacobian.SetZero(); m_linearMass = 0; m_force = 0; m_angularMass = 0; m_torque = 0; m_motorJacobian.SetZero(); m_motorMass = 0; m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerTranslation = _arg1.lowerTranslation; m_upperTranslation = _arg1.upperTranslation; m_maxMotorForce = _arg1.maxMotorForce; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function GetJointTranslation():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:b2Vec2; var _local9:Number; _local1 = m_body1; _local2 = m_body2; _local4 = _local1.GetWorldPoint(m_localAnchor1); _local5 = _local2.GetWorldPoint(m_localAnchor2); _local6 = (_local5.x - _local4.x); _local7 = (_local5.y - _local4.y); _local8 = _local1.GetWorldVector(m_localXAxis1); _local9 = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.m_xf.R; _local2 = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); _local3 = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); _local4 = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); _local5 = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; _local3 = m_body1; _local4 = m_body2; _local5 = _local3.m_invMass; _local6 = _local4.m_invMass; _local7 = _local3.m_invI; _local8 = _local4.m_invI; _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local21 = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); _local22 = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); _local23 = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local24 = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); _local25 = b2Math.b2Abs(_local23); _local26 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local27 = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); _local28 = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } public function GetJointSpeed():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:b2Vec2; var _local16:b2Vec2; var _local17:b2Vec2; var _local18:Number; var _local19:Number; var _local20:Number; _local1 = m_body1; _local2 = m_body2; _local3 = _local1.m_xf.R; _local4 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local5 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; _local7 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local8 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; _local9 = (_local1.m_sweep.c.x + _local4); _local10 = (_local1.m_sweep.c.y + _local5); _local11 = (_local2.m_sweep.c.x + _local7); _local12 = (_local2.m_sweep.c.y + _local8); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = _local1.GetWorldVector(m_localXAxis1); _local16 = _local1.m_linearVelocity; _local17 = _local2.m_linearVelocity; _local18 = _local1.m_angularVelocity; _local19 = _local2.m_angularVelocity; _local20 = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local10 = _local2.m_invMass; _local11 = _local3.m_invMass; _local12 = _local2.m_invI; _local13 = _local3.m_invI; _local4 = _local2.m_xf.R; _local14 = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); _local15 = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); _local16 = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); _local17 = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorForce():Number{ return (m_motorForce); } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_invMass; _local5 = _local3.m_invMass; _local6 = _local2.m_invI; _local7 = _local3.m_invI; _local9 = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local10 = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); _local11 = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); _local12 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local13 = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); _local14 = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } } }//package Box2D.Dynamics.Joints
Section 59
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PrismaticJointDef extends b2JointDef { public var localAxis1:b2Vec2; public var referenceAngle:Number; public var maxMotorForce:Number; public var motorSpeed:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var lowerTranslation:Number; public function b2PrismaticJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxis1.Set(1, 0); referenceAngle = 0; enableLimit = false; lowerTranslation = 0; upperTranslation = 0; enableMotor = false; maxMotorForce = 0; motorSpeed = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 60
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_ground:b2Body; public var m_maxLength2:Number; public var m_limitForce1:Number; public var m_maxLength1:Number; public var m_limitState1:int; public var m_limitState2:int; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_limitPositionImpulse1:Number; public var m_constant:Number; public var m_state:int; public var m_ratio:Number; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_positionImpulse:Number; public var m_limitMass2:Number; public var m_limitMass1:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_u2:b2Vec2; public var m_limitForce2:Number; public static const b2_minPulleyLength:Number = 2; public function b2PulleyJoint(_arg1:b2PulleyJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u1 = new b2Vec2(); m_u2 = new b2Vec2(); super(_arg1); m_ground = m_body1.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_ratio = _arg1.ratio; m_constant = (_arg1.length1 + (m_ratio * _arg1.length2)); m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio)); m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2; _local1 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; _local1 = m_body1; _local2 = m_body2; _local4 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local5 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local6 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local7 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local23 = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u1.Set((_local12 - _local4), (_local13 - _local5)); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local16 = m_u1.Length(); _local17 = m_u2.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local16)); } else { m_u1.SetZero(); }; if (_local17 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local17)); } else { m_u2.SetZero(); }; _local18 = ((m_constant - _local16) - (m_ratio * _local17)); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_pulleyMass) * _local18); _local20 = m_positionImpulse; m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19)); _local19 = (m_positionImpulse - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local14 = ((-(m_ratio) * _local19) * m_u2.x); _local15 = ((-(m_ratio) * _local19) * m_u2.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.SynchronizeTransform(); _local2.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); m_u1.Set((_local12 - _local4), (_local13 - _local5)); _local16 = m_u1.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local16)); m_u1.y = (m_u1.y * (1 / _local16)); } else { m_u1.SetZero(); }; _local18 = (m_maxLength1 - _local16); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local21 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local21); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; _local10 = (_local2.m_sweep.c.x + _local5); _local11 = (_local2.m_sweep.c.y + _local6); _local12 = (_local3.m_sweep.c.x + _local8); _local13 = (_local3.m_sweep.c.y + _local9); _local14 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local15 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local16 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local17 = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); _local18 = m_u1.Length(); _local19 = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; _local20 = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; _local21 = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); _local22 = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function GetReactionTorque():Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } public function GetLength2():Number{ var _local1:b2Vec2; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body2.GetWorldPoint(m_localAnchor2); _local2 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } public function GetLength1():Number{ var _local1:b2Vec2; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.GetWorldPoint(m_localAnchor1); _local2 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2; _local1 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.Joints
Section 61
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength2:Number; public var length1:Number; public var length2:Number; public var maxLength1:Number; public var ratio:Number; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); _local8 = (_arg5.x - _arg3.x); _local9 = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local10 = (_arg6.x - _arg4.x); _local11 = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; _local12 = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 62
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { public var m_limitForce:Number; public var m_motorForce:Number; public var m_pivotMass:b2Mat22; public var m_enableLimit:Boolean; public var m_limitState:int; public var m_motorMass:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var K:b2Mat22; public var m_pivotForce:b2Vec2; public var m_motorSpeed:Number; public var m_enableMotor:Boolean; public var m_limitPositionImpulse:Number; public var m_maxMotorTorque:Number; public var m_referenceAngle:Number; public var m_lowerAngle:Number; public var m_upperAngle:Number; public static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_pivotForce = new b2Vec2(); m_pivotMass = new b2Mat22(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_referenceAngle = _arg1.referenceAngle; m_pivotForce.Set(0, 0); m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerAngle = _arg1.lowerAngle; m_upperAngle = _arg1.upperAngle; m_maxMotorTorque = _arg1.maxMotorTorque; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ return (m_pivotForce); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local3 = m_body1; _local4 = m_body2; _local5 = 0; _local6 = _local3.m_xf.R; _local7 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local8 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; _local10 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; _local12 = (_local3.m_sweep.c.x + _local7); _local13 = (_local3.m_sweep.c.y + _local8); _local14 = (_local4.m_sweep.c.x + _local10); _local15 = (_local4.m_sweep.c.y + _local11); _local16 = (_local14 - _local12); _local17 = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); _local18 = _local3.m_invMass; _local19 = _local4.m_invMass; _local20 = _local3.m_invI; _local21 = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); _local22 = tImpulse.x; _local23 = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); _local24 = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local10 = _local2.m_invMass; _local11 = _local3.m_invMass; _local12 = _local2.m_invI; _local13 = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function GetMotorTorque():Number{ return (m_motorForce); } override public function GetReactionTorque():Number{ return (m_limitForce); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local11 = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); _local12 = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); _local13 = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); _local14 = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); _local15 = (_arg1.dt * _local13); _local16 = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } } }//package Box2D.Dynamics.Joints
Section 63
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2RevoluteJointDef extends b2JointDef { public var referenceAngle:Number; public var upperAngle:Number; public var lowerAngle:Number; public var motorSpeed:Number; public var maxMotorTorque:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 64
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; public class b2Body { public var m_next:b2Body; public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var m_shapeList:b2Shape; public var m_force:b2Vec2; public var m_mass:Number; public var m_sweep:b2Sweep; public var m_xf:b2XForm; public var m_torque:Number; public var m_userData; public var m_flags:uint; public var m_world:b2World; public var m_prev:b2Body; public var m_invMass:Number; public var m_type:int; public var m_linearDamping:Number; public var m_angularDamping:Number; public var m_invI:Number; public var m_linearVelocity:b2Vec2; public var m_sleepTime:Number; public var m_shapeCount:int; public var m_jointList:b2JointEdge; public var m_I:Number; public static var e_fixedRotationFlag:uint = 64; public static var e_frozenFlag:uint = 2; public static var e_maxTypes:uint = 3; public static var e_sleepFlag:uint = 8; private static var s_massData:b2MassData = new b2MassData(); public static var e_bulletFlag:uint = 32; public static var e_staticType:uint = 1; public static var e_islandFlag:uint = 4; public static var e_allowSleepFlag:uint = 16; private static var s_xf1:b2XForm = new b2XForm(); public static var e_dynamicType:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ var _local3:b2Mat22; var _local4:b2Vec2; m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); _local3 = m_xf.R; _local4 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.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{ var _local1:b2Mat22; var _local2:b2Vec2; m_xf.R.Set(m_sweep.a); _local1 = m_xf.R; _local2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function GetInertia():Number{ return (m_I); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; var _local2:Number; var _local3:Number; var _local4:b2MassData; var _local5:b2Mat22; var _local6:b2Vec2; var _local7:int; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; _local2 = 0; _local3 = 0; _local4 = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); _local5 = m_xf.R; _local6 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; _local7 = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function PutToSleep():void{ m_flags = (m_flags | e_sleepFlag); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; } public function GetJointList():b2JointEdge{ return (m_jointList); } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local4:b2Mat22; var _local5:b2Vec2; var _local6:Boolean; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); _local4 = m_xf.R; _local5 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); _local6 = false; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function SynchronizeShapes():Boolean{ var _local1:b2XForm; var _local2:b2Mat22; var _local3:b2Vec2; var _local4:b2Shape; var _local5:Boolean; _local1 = s_xf1; _local1.R.Set(m_sweep.a0); _local2 = _local1.R; _local3 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); _local5 = true; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x)); m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y)); m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)))); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22; var _local3:b2Vec2; _local2 = m_xf.R; _local3 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:int; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); _local3 = m_xf.R; _local4 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; _local5 = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetShapeList():b2Shape{ return (m_shapeList); } public function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function CreateShape(_arg1:b2ShapeDef):b2Shape{ var _local2:b2Shape; if (m_world.m_lock == true){ return (null); }; _local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); return (_local2); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge; _local2 = m_jointList; while (_local2) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function DestroyShape(_arg1:b2Shape):void{ var _local2:b2Shape; var _local3:b2Shape; var _local4:Boolean; if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); _local2 = m_shapeList; _local3 = null; _local4 = false; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_shapeList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22; var _local3:b2Vec2; _local2 = m_xf.R; _local3 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorld():b2World{ return (m_world); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//package Box2D.Dynamics
Section 65
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2BodyDef { public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var angularDamping:Number; public var fixedRotation:Boolean; public var angle:Number; public var linearDamping:Number; public var massData:b2MassData; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.Dynamics
Section 66
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 67
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; public class b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:b2FilterData; var _local4:b2FilterData; var _local5:Boolean; _local3 = _arg1.GetFilterData(); _local4 = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; _local5 = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.Dynamics
Section 68
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactListener { public function Add(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Persist(_arg1:b2ContactPoint):void{ } public function Result(_arg1:b2ContactResult):void{ } } }//package Box2D.Dynamics
Section 69
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2Contact; _local3 = (_arg1 as b2Shape); _local4 = (_arg2 as b2Shape); _local5 = _local3.m_body; _local6 = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; _local7 = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } override public function PairRemoved(_arg1, _arg2, _arg3):void{ var _local4:b2Contact; if (_arg3 == null){ return; }; _local4 = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local2:b2Shape; var _local3:b2Shape; var _local4:int; var _local5:b2Body; var _local6:b2Body; var _local7:b2Body; var _local8:b2Body; var _local9:Array; var _local10:b2ContactPoint; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2Vec2; var _local16:b2Vec2; _local2 = _arg1.m_shape1; _local3 = _arg1.m_shape2; _local4 = _arg1.m_manifoldCount; if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = _local2.m_body; _local8 = _local3.m_body; _local9 = _arg1.GetManifolds(); _local10 = s_evalCP; _local10.shape1 = _arg1.m_shape1; _local10.shape2 = _arg1.m_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; }; _local5 = _local2.m_body; _local6 = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } public function Collide():void{ var _local1:b2Contact; var _local2:b2Body; var _local3:b2Body; _local1 = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.Dynamics
Section 70
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; import flash.display.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_lineThickness:Number;// = 1 public var m_drawFlags:uint; public var m_sprite:Sprite; public var m_drawScale:Number;// = 1 public static var e_coreShapeBit:uint = 4; public static var e_shapeBit:uint = 1; public static var e_centerOfMassBit:uint = 64; public static var e_aabbBit:uint = 8; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_jointBit:uint = 2; public function b2DebugDraw(){ m_drawScale = 1; m_lineThickness = 1; m_alpha = 1; m_fillAlpha = 1; m_xformScale = 1; super(); m_drawFlags = 0; } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function GetFlags():uint{ return (m_drawFlags); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } } }//package Box2D.Dynamics
Section 71
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeJoint(_arg1:b2Joint):void{ } public function SayGoodbyeShape(_arg1:b2Shape):void{ } } }//package Box2D.Dynamics
Section 72
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Island { public var m_joints:Array; public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies:Array; public var m_jointCapacity:int; public var m_contactCount:int; public var m_contacts:Array; public var m_contactCapacity:int; public var m_jointCount:int; public var m_allocator; public var m_bodyCount:int; private static var s_reportCR:b2ContactResult = new b2ContactResult(); public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){ var _local6:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; m_bodies = new Array(_arg1); _local6 = 0; while (_local6 < _arg1) { m_bodies[_local6] = null; _local6++; }; m_contacts = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { m_contacts[_local6] = null; _local6++; }; m_joints = new Array(_arg3); _local6 = 0; while (_local6 < _arg3) { m_joints[_local6] = null; _local6++; }; m_positionIterationCount = 0; } public function AddBody(_arg1:b2Body):void{ var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } public function Report(_arg1:Array):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local4:int; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; _local4 = 0; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local8:b2ContactSolver; var _local9:int; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Number; var _local14:Number; var _local15:Number; _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; _local8 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local8.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local8.SolveVelocityConstraints(); _local9 = 0; while (_local9 < m_jointCount) { _local7 = m_joints[_local9]; _local7.SolveVelocityConstraints(_arg1); _local9++; }; _local5++; }; _local8.FinalizeVelocityConstraints(); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_sweep.c0.SetV(_local6.m_sweep.c); _local6.m_sweep.a0 = _local6.m_sweep.a; _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y)); _local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity)); _local6.SynchronizeTransform(); }; _local5++; }; if (_arg3){ _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local10 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local12 = _local7.SolvePositionConstraints(); _local11 = ((_local11) && (_local12)); _local5++; }; if (((_local10) && (_local11))){ break; }; m_positionIterationCount++; }; }; Report(_local8.m_constraints); if (_arg4){ _local13 = Number.MAX_VALUE; _local14 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local15 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.m_invMass == 0){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local13 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local15)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local14)))){ _local6.m_sleepTime = 0; _local13 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local13 = b2Math.b2Min(_local13, _local6.m_sleepTime); }; }; _local5++; }; if (_local13 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local3:b2ContactSolver; var _local4:Number; var _local5:b2Body; var _local6:Boolean; _local3 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; _local4 = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } }//package Box2D.Dynamics
Section 73
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var warmStarting:Boolean; public var positionCorrection:Boolean; public var dt:Number; public var maxIterations:int; public var dtRatio:Number; public var inv_dt:Number; } }//package Box2D.Dynamics
Section 74
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2World { public var m_inv_dt0:Number; public var m_boundaryListener:b2BoundaryListener; public var m_contactList:b2Contact; public var m_blockAllocator; public var m_contactListener:b2ContactListener; public var m_allowSleep:Boolean; public var m_broadPhase:b2BroadPhase; public var m_destructionListener:b2DestructionListener; public var m_jointCount:int; public var m_bodyCount:int; public var m_lock:Boolean; public var m_positionIterationCount:int; public var m_groundBody:b2Body; public var m_contactCount:int; public var m_debugDraw:b2DebugDraw; public var m_contactFilter:b2ContactFilter; public var m_bodyList:b2Body; public var m_stackAllocator; public var m_jointList:b2Joint; public var m_gravity:b2Vec2; public var m_contactManager:b2ContactManager; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); public static var m_continuousPhysics:Boolean; public static var m_warmStarting:Boolean; private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); public static var m_positionCorrection:Boolean; private static var s_xf:b2XForm = new b2XForm(); public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ var _local4:b2BodyDef; m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_positionCorrection = true; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_inv_dt0 = 0; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); _local4 = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2XForm; var _local5:b2XForm; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; _local2 = _arg1.m_body1; _local3 = _arg1.m_body2; _local4 = _local2.m_xf; _local5 = _local3.m_xf; _local6 = _local4.position; _local7 = _local5.position; _local8 = _arg1.GetAnchor1(); _local9 = _arg1.GetAnchor2(); _local10 = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } public function DrawDebugData():void{ var _local1:uint; var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2XForm; var _local12:b2AABB; var _local13:b2AABB; var _local14:Array; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); _local1 = m_debugDraw.GetFlags(); _local7 = new b2Vec2(); _local8 = new b2Vec2(); _local9 = new b2Vec2(); _local10 = new b2Color(0, 0, 0); _local12 = new b2AABB(); _local13 = new b2AABB(); _local14 = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local2:b2JointEdge; var _local3:b2Shape; var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; _local2 = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; _local3 = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local5:b2Color; var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; _local5 = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; }; } public function GetContactCount():int{ return (m_contactCount); } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Island; var _local4:b2Contact; var _local5:b2Joint; var _local6:int; var _local7:Array; var _local8:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; _local3 = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; _local4 = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; _local5 = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; _local6 = m_bodyCount; _local7 = new Array(_local6); _local8 = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.m_manifoldCount == 0){ } else { _local3.AddContact(_local12.contact); _local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag); _local11 = _local12.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local9; _local9 = (_local9 + 1); var _local16 = _temp2; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; }; _local12 = _local12.next; }; _local13 = _local2.m_jointList; while (_local13) { if (_local13.joint.m_islandFlag == true){ } else { _local3.AddJoint(_local13.joint); _local13.joint.m_islandFlag = true; _local11 = _local13.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local9; _local9 = (_local9 + 1); _local16 = _temp3; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; _local13 = _local13.next; }; }; }; _local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep); if (_local3.m_positionIterationCount > m_positionIterationCount){ m_positionIterationCount = _local3.m_positionIterationCount; }; _local10 = 0; while (_local10 < _local3.m_bodyCount) { _local2 = _local3.m_bodies[_local10]; if (_local2.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local10++; }; }; }; _local8 = _local8.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local14 = _local2.SynchronizeShapes(); if ((((_local14 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array; var _local5:int; var _local6:int; _local4 = new Array(_arg3); _local5 = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); _local6 = 0; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local8:b2Island; var _local9:int; var _local10:Array; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; _local8 = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); _local9 = m_bodyCount; _local10 = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.m_shape1; _local4 = _local11.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local19 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local19 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local19); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local19 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local19); }; }; _local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep); if ((((_local18 > 0)) && ((_local18 < 1)))){ _local18 = (((1 - _local18) * _local19) + _local18); if (_local18 > 1){ _local18 = 1; }; }; _local11.m_toi = _local18; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){ _local12 = _local11; _local13 = _local18; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.m_manifoldCount == 0){ } else { _local14 = _local5; if (_local14.IsStatic()){ _local14 = _local6; }; _local8.Clear(); _local15 = 0; var _temp1 = _local15; _local15 = (_local15 + 1); var _local22 = _temp1; _local10[_local22] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local15 > 0) { --_local15; _local2 = _local10[_local15]; _local8.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local8.m_contactCount == _local8.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function Validate():void{ m_broadPhase.Validate(); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function GetBodyList():b2Body{ return (m_bodyList); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetPositionCorrection(_arg1:Boolean):void{ m_positionCorrection = _arg1; } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local2:b2Joint; var _local3:b2Body; var _local4:b2Shape; _local2 = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local2:Boolean; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:b2Shape; _local2 = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; _local3 = _arg1.m_body1; _local4 = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function CreateBody(_arg1:b2BodyDef):b2Body{ var _local2:b2Body; if (m_lock == true){ return (null); }; _local2 = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function Step(_arg1:Number, _arg2:int):void{ var _local3:b2TimeStep; m_lock = true; _local3 = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; _local3.dtRatio = (m_inv_dt0 * _arg1); _local3.positionCorrection = m_positionCorrection; _local3.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((m_continuousPhysics) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_inv_dt0 = _local3.inv_dt; m_lock = false; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } } }//package Box2D.Dynamics
Section 75
//b2iBody (Box2DIntegration.b2iBody) package Box2DIntegration { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2iBody extends b2iGameObject { public var bodyDef:b2BodyDef; public var m_body:b2Body; public function b2iBody(){ bodyDef = new b2BodyDef(); } public function createBody2(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:b2iLevel; var _local5:b2ShapeDef; var _local6:b2iShape; var _local7:int; _local4 = b2iLevel(parent); bodyDef.position.Set(_local4.physCoord(this.x), _local4.physCoord(this.y)); bodyDef.angle = (this.rotation * 0.017453293); if (static){ m_body = _local4.m_world.CreateBody(bodyDef); } else { m_body = _local4.m_world.CreateBody(bodyDef); }; m_body.m_userData = this; _local7 = 0; while (_local7 < this.numChildren) { if ((this.getChildAt(_local7) is b2iShape)){ _local6 = b2iShape(this.getChildAt(_local7)); _local5 = _local6.createShape(_local4, this); _local5.density = _arg1; _local5.friction = _arg2; _local5.restitution = _arg3; m_body.CreateShape(_local5); }; _local7++; }; m_body.SetMassFromShapes(); } public function createBody():void{ var _local1:b2iLevel; var _local2:b2ShapeDef; var _local3:b2iShape; var _local4:int; _local1 = b2iLevel(parent); bodyDef.position.Set(_local1.physCoord(this.x), _local1.physCoord(this.y)); bodyDef.angle = (this.rotation * 0.017453293); m_body = _local1.m_world.CreateBody(bodyDef); m_body.m_userData = this; _local4 = 0; while (_local4 < this.numChildren) { if ((this.getChildAt(_local4) is b2iShape)){ _local3 = b2iShape(this.getChildAt(_local4)); _local2 = _local3.createShape(_local1, this); m_body.CreateShape(_local2); }; _local4++; }; m_body.SetMassFromShapes(); } override public function Update():void{ var _local1:b2iLevel; var _local2:b2Vec2; _local1 = b2iLevel(parent); _local2 = this.m_body.GetPosition(); this.x = (_local2.x * _local1.m_physScale); this.y = (_local2.y * _local1.m_physScale); this.rotation = (this.m_body.GetAngle() * 57.29577951); } } }//package Box2DIntegration
Section 76
//b2iBoxShape (Box2DIntegration.b2iBoxShape) package Box2DIntegration { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import flash.geom.*; public class b2iBoxShape extends b2iShape { public function b2iBoxShape(){ shapeDef = new b2PolygonDef(); } override public function createShape(_arg1:b2iLevel, _arg2:b2iGameObject):b2ShapeDef{ var _local3:b2PolygonDef; var _local4:Rectangle; var _local5:b2Vec2; _local3 = b2PolygonDef(shapeDef); _local4 = this.getRect(this); _local5 = new b2Vec2(_arg1.physCoord((this.x * _arg2.scaleX)), _arg1.physCoord((this.y * _arg2.scaleY))); _local3.SetAsOrientedBox(((_arg1.physCoord((_local4.width / 2)) * this.scaleX) * _arg2.scaleX), ((_arg1.physCoord((_local4.height / 2)) * this.scaleY) * _arg2.scaleY), _local5, (this.rotation * 0.017453293)); _local3.density = density; _local3.friction = friction; _local3.restitution = restitution; _local3.isSensor = sensor; _local3.filter.groupIndex = colgroup; _local3.filter.categoryBits = categoryBits; _local3.filter.maskBits = maskBits; return (_local3); } } }//package Box2DIntegration
Section 77
//b2iCircleShape (Box2DIntegration.b2iCircleShape) package Box2DIntegration { import Box2D.Collision.Shapes.*; public class b2iCircleShape extends b2iShape { public function b2iCircleShape(){ shapeDef = new b2CircleDef(); } override public function createShape(_arg1:b2iLevel, _arg2:b2iGameObject):b2ShapeDef{ var _local3:b2CircleDef; _local3 = b2CircleDef(shapeDef); _local3.radius = (_arg1.physCoord((this.width / 2)) * _arg2.scaleX); _local3.localPosition.Set(_arg1.physCoord((this.x * _arg2.scaleX)), _arg1.physCoord((this.y * _arg2.scaleY))); _local3.restitution = restitution; _local3.density = density; _local3.friction = friction; _local3.isSensor = sensor; _local3.filter.groupIndex = colgroup; _local3.filter.categoryBits = categoryBits; _local3.filter.maskBits = maskBits; return (_local3); } } }//package Box2DIntegration
Section 78
//b2iGameObject (Box2DIntegration.b2iGameObject) package Box2DIntegration { import flash.display.*; public class b2iGameObject extends MovieClip { public function Update():void{ } } }//package Box2DIntegration
Section 79
//b2iJoint (Box2DIntegration.b2iJoint) package Box2DIntegration { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; public class b2iJoint extends b2iGameObject { protected var torqueResistance_:Number; public var m_joint:b2Joint; protected var forceResistance_:Number; public var jd:b2JointDef; public function get torqueResistance():Number{ return (this.torqueResistance_); } public function set forceResistance(_arg1:Number):void{ forceResistance_ = _arg1; } public function get forceResistance():Number{ return (this.forceResistance_); } public function set torqueResistance(_arg1:Number):void{ torqueResistance_ = _arg1; } protected function checkDestroy(_arg1:b2iLevel):void{ var _local2:Number; var _local3:b2Vec2; if (forceResistance_ != 0){ _local3 = this.m_joint.GetReactionForce(); if (_local3.Length() > forceResistance_){ _arg1.m_world.DestroyJoint(this.m_joint); _arg1.removeChild(this); }; }; _local2 = this.m_joint.GetReactionTorque(); } override public function Update():void{ var _local1:b2iLevel; var _local2:b2Vec2; _local1 = b2iLevel(parent); _local2 = this.m_joint.GetAnchor1(); this.x = (_local2.x * _local1.m_physScale); this.y = (_local2.y * _local1.m_physScale); checkDestroy(_local1); } public function createJoint():void{ } } }//package Box2DIntegration
Section 80
//b2iLevel (Box2DIntegration.b2iLevel) package Box2DIntegration { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; import flash.display.*; public class b2iLevel extends b2iObjectGroup { public var m_physScale:Number; public var draw_geometry:Boolean; public var m_iterations:int; protected var mousePVec:b2Vec2; public var m_world:b2World; public var mouseYWorld:Number; public var mouseXWorldPhys:Number; public var mouseYWorldPhys:Number; public var m_timeStep:Number; public var mouseXWorld:Number; public function b2iLevel(){ mousePVec = new b2Vec2(); super(); draw_geometry = false; } public function destroy():void{ this.parent.removeChild(this); m_world = null; } public function physCoord(_arg1:Number):Number{ return ((_arg1 / m_physScale)); } public function restart():void{ } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local2:b2AABB; var _local3:int; var _local4:Array; var _local5:int; var _local6:b2Body; var _local7:int; var _local8:b2Shape; var _local9:Boolean; mousePVec.Set(mouseXWorldPhys, mouseYWorldPhys); _local2 = new b2AABB(); _local2.lowerBound.Set((mouseXWorldPhys - 0.001), (mouseYWorldPhys - 0.001)); _local2.upperBound.Set((mouseXWorldPhys + 0.001), (mouseYWorldPhys + 0.001)); _local3 = 10; _local4 = new Array(); _local5 = m_world.Query(_local2, _local4, _local3); _local6 = null; _local7 = 0; while (_local7 < _local5) { if ((((_local4[_local7].m_body.IsStatic() == false)) || (_arg1))){ _local8 = (_local4[_local7] as b2Shape); _local9 = (_local4[_local7] as b2Shape).TestPoint(_local8.m_body.GetXForm(), mousePVec); if (_local9){ _local6 = _local8.m_body; break; }; }; _local7++; }; return (_local6); } public function start():void{ } public function UpdateMouseWorld():void{ mouseXWorldPhys = (mouseX / m_physScale); mouseYWorldPhys = (mouseY / m_physScale); mouseXWorld = mouseX; mouseYWorld = mouseY; } override public function adoptChildren(_arg1:DisplayObject):void{ this.addChild(_arg1); } public function drawGeometry():void{ var _local1:b2DebugDraw; var _local2:Sprite; draw_geometry = true; _local1 = new b2DebugDraw(); _local2 = new Sprite(); _local2.graphics.beginFill(0xFFFFFF); _local2.graphics.drawRect(0, 0, 2000, 2000); addChild(_local2); _local1.m_sprite = _local2; _local1.m_drawScale = m_physScale; _local1.m_fillAlpha = 0.3; _local1.m_lineThickness = 1; _local1.m_drawFlags = (b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit); m_world.SetDebugDraw(_local1); } public function createLevel(_arg1:int=1000, _arg2:int=-1000, _arg3:int=1000, _arg4:int=-1000, _arg5:b2Vec2=null, _arg6:Boolean=true, _arg7:int=1, _arg8:int=10, _arg9:Number=0.0166666666666667):void{ var _local10:b2AABB; var _local11:b2Vec2; _local10 = new b2AABB(); _local10.lowerBound.Set(_arg2, _arg4); _local10.upperBound.Set(_arg1, _arg3); m_physScale = _arg7; m_iterations = _arg8; m_timeStep = _arg9; if (_arg5){ _local11 = new b2Vec2(_arg5.x, _arg5.y); } else { _local11 = new b2Vec2(0, 0); }; m_world = new b2World(_local10, _local11, _arg6); } override public function Update():void{ m_world.Step(m_timeStep, m_iterations); UpdateChildren(); UpdateMouseWorld(); } } }//package Box2DIntegration
Section 81
//b2iObjectGroup (Box2DIntegration.b2iObjectGroup) package Box2DIntegration { import Box2D.Common.Math.*; import flash.display.*; public class b2iObjectGroup extends MovieClip { public function UpdateChildren():void{ var _local1:*; var _local2:b2iGameObject; var _local3:b2Vec2; var _local4:int; _local3 = new b2Vec2(); _local4 = 0; while (_local4 < this.numChildren) { _local1 = this.getChildAt(_local4); if ((_local1 is b2iGameObject)){ _local2 = b2iGameObject(_local1); _local2.Update(); }; _local4++; }; } public function adoptChildren(_arg1:DisplayObject):void{ } public function Update():void{ } } }//package Box2DIntegration
Section 82
//b2iRevoluteJoint (Box2DIntegration.b2iRevoluteJoint) package Box2DIntegration { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; import flash.geom.*; import flash.display.*; public class b2iRevoluteJoint extends b2iJoint { protected var torque_:Number; public var useStatic:Boolean;// = true public var useGround:Boolean;// = true protected var speed_:Number; public function b2iRevoluteJoint(){ useGround = true; useStatic = true; super(); jd = new b2RevoluteJointDef(); } private function createJoint2(_arg1:b2RevoluteJointDef, _arg2:b2World):b2Joint{ if (torque_ > 0){ _arg1.enableMotor = true; _arg1.motorSpeed = speed_; _arg1.maxMotorTorque = torque_; }; return (b2RevoluteJoint(_arg2.CreateJoint(_arg1))); } public function set torque(_arg1:Number):void{ torque_ = _arg1; } public function get torque():Number{ return (this.torque_); } public function get speed():Number{ return (this.speed_); } public function set speed(_arg1:Number):void{ speed_ = _arg1; } override public function createJoint():void{ var _local1:b2iLevel; var _local2:b2World; var _local3:b2RevoluteJointDef; var _local4:b2AABB; var _local5:Array; var _local6:int; var _local7:Array; var _local8:int; var _local9:b2Body; var _local10:int; var _local11:Boolean; _local1 = b2iLevel(parent); _local2 = _local1.m_world; _local3 = b2RevoluteJointDef(jd); _local4 = new b2AABB(); _local4.lowerBound.Set((_local1.physCoord(this.x) - 0.001), (_local1.physCoord(this.y) - 0.001)); _local4.upperBound.Set((_local1.physCoord(this.x) + 0.001), (_local1.physCoord(this.y) + 0.001)); _local5 = new Array(); _local6 = 10; _local7 = new Array(); _local8 = _local2.Query(_local4, _local7, _local6); _local9 = null; _local10 = 0; while (_local10 < _local8) { if ((((_local7[_local10].m_body.IsStatic() == false)) || (useStatic))){ _local11 = _local7[_local10].TestPoint(_local7[_local10].GetBody().GetXForm(), new b2Vec2(_local1.physCoord(this.x), _local1.physCoord(this.y))); if (_local11){ _local5.push(_local7[_local10].m_body); }; }; _local10++; }; if (_local5.length > 0){ if (_local5.length >= 2){ _local3.Initialize(_local5[0], _local5[1], new b2Vec2(_local1.physCoord(this.x), _local1.physCoord(this.y))); m_joint = createJoint2(_local3, _local2); } else { if (useGround){ _local3.Initialize((_local3.body1 = _local2.m_groundBody), _local5[0], new b2Vec2(_local1.physCoord(this.x), _local1.physCoord(this.y))); m_joint = createJoint2(_local3, _local2); } else { m_joint = null; }; }; } else { m_joint = null; }; if (!m_joint){ throw (Error("Unable to create revolute joint: No bodies to attach to")); }; } } }//package Box2DIntegration
Section 83
//b2iShape (Box2DIntegration.b2iShape) package Box2DIntegration { import Box2D.Collision.Shapes.*; import flash.display.*; public class b2iShape extends MovieClip { protected var restitution_:Number; protected var colgroup_:int; protected var density_:Number; protected var friction_:Number; protected var maskbits_:int; public var shapeDef:b2ShapeDef; protected var categorybits_:int; protected var sensor_:Boolean; public function get friction():Number{ return (this.friction_); } public function set colgroup(_arg1:int):void{ colgroup_ = _arg1; } public function get maskBits():int{ return (this.maskbits_); } public function get categoryBits():int{ return (this.categorybits_); } public function set friction(_arg1:Number):void{ friction_ = _arg1; } public function createShape(_arg1:b2iLevel, _arg2:b2iGameObject):b2ShapeDef{ return (null); } public function set maskBits(_arg1:int):void{ maskbits_ = _arg1; } public function set categoryBits(_arg1:int):void{ categorybits_ = _arg1; } public function get restitution():Number{ return (this.restitution_); } public function set sensor(_arg1:Boolean):void{ sensor_ = _arg1; } public function get sensor():Boolean{ return (this.sensor_); } public function set density(_arg1:Number):void{ density_ = _arg1; } public function set restitution(_arg1:Number):void{ restitution_ = _arg1; } public function get density():Number{ return (this.density_); } public function get colgroup():int{ return (this.colgroup_); } } }//package Box2DIntegration
Section 84
//MD5 (com.adobe.crypto.MD5) package com.adobe.crypto { import flash.utils.*; import com.adobe.utils.*; public class MD5 { public static var digest:ByteArray; private static function ff(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(f, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } private static function f(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 & _arg2) | (~(_arg1) & _arg3))); } private static function g(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 & _arg3) | (_arg2 & ~(_arg3)))); } private static function h(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 ^ _arg2) ^ _arg3)); } private static function i(_arg1:int, _arg2:int, _arg3:int):int{ return ((_arg2 ^ (_arg1 | ~(_arg3)))); } private static function transform(_arg1:Function, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):int{ var _local9:int; _local9 = (((_arg2 + int(_arg1(_arg3, _arg4, _arg5))) + _arg6) + _arg8); return ((IntUtil.rol(_local9, _arg7) + _arg3)); } private static function hh(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(h, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } public static function hash(_arg1:String):String{ var _local2:ByteArray; _local2 = new ByteArray(); _local2.writeUTFBytes(_arg1); return (hashBinary(_local2)); } private static function createBlocks(_arg1:ByteArray):Array{ var _local2:Array; var _local3:int; var _local4:int; var _local5:int; _local2 = new Array(); _local3 = (_arg1.length * 8); _local4 = 0xFF; _local5 = 0; while (_local5 < _local3) { _local2[int((_local5 >> 5))] = (_local2[int((_local5 >> 5))] | ((_arg1[(_local5 / 8)] & _local4) << (_local5 % 32))); _local5 = (_local5 + 8); }; _local2[int((_local3 >> 5))] = (_local2[int((_local3 >> 5))] | (128 << (_local3 % 32))); _local2[int(((((_local3 + 64) >>> 9) << 4) + 14))] = _local3; return (_local2); } public static function hashBinary(_arg1:ByteArray):String{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:Array; var _local11:int; var _local12:int; _local2 = 1732584193; _local3 = -271733879; _local4 = -1732584194; _local5 = 271733878; _local10 = createBlocks(_arg1); _local11 = _local10.length; _local12 = 0; while (_local12 < _local11) { _local6 = _local2; _local7 = _local3; _local8 = _local4; _local9 = _local5; _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 0))], 7, -680876936); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 1))], 12, -389564586); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 2))], 17, 606105819); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 3))], 22, -1044525330); _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 4))], 7, -176418897); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 5))], 12, 1200080426); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 6))], 17, -1473231341); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 7))], 22, -45705983); _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 8))], 7, 1770035416); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 9))], 12, -1958414417); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 10))], 17, -42063); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 11))], 22, -1990404162); _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 12))], 7, 1804603682); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 13))], 12, -40341101); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 14))], 17, -1502002290); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 15))], 22, 1236535329); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 1))], 5, -165796510); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 6))], 9, -1069501632); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 11))], 14, 643717713); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 0))], 20, -373897302); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 5))], 5, -701558691); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 10))], 9, 38016083); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 15))], 14, -660478335); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 4))], 20, -405537848); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 9))], 5, 568446438); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 14))], 9, -1019803690); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 3))], 14, -187363961); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 8))], 20, 1163531501); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 13))], 5, -1444681467); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 2))], 9, -51403784); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 7))], 14, 1735328473); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 12))], 20, -1926607734); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 5))], 4, -378558); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 8))], 11, -2022574463); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 11))], 16, 1839030562); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 14))], 23, -35309556); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 1))], 4, -1530992060); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 4))], 11, 1272893353); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 7))], 16, -155497632); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 10))], 23, -1094730640); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 13))], 4, 681279174); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 0))], 11, -358537222); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 3))], 16, -722521979); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 6))], 23, 76029189); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 9))], 4, -640364487); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 12))], 11, -421815835); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 15))], 16, 530742520); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 2))], 23, -995338651); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 0))], 6, -198630844); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 7))], 10, 1126891415); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 14))], 15, -1416354905); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 5))], 21, -57434055); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 12))], 6, 1700485571); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 3))], 10, -1894986606); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 10))], 15, -1051523); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 1))], 21, -2054922799); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 8))], 6, 1873313359); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 15))], 10, -30611744); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 6))], 15, -1560198380); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 13))], 21, 1309151649); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 4))], 6, -145523070); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 11))], 10, -1120210379); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 2))], 15, 718787259); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 9))], 21, -343485551); _local2 = (_local2 + _local6); _local3 = (_local3 + _local7); _local4 = (_local4 + _local8); _local5 = (_local5 + _local9); _local12 = (_local12 + 16); }; digest = new ByteArray(); digest.writeInt(_local2); digest.writeInt(_local3); digest.writeInt(_local4); digest.writeInt(_local5); digest.position = 0; return ((((IntUtil.toHex(_local2) + IntUtil.toHex(_local3)) + IntUtil.toHex(_local4)) + IntUtil.toHex(_local5))); } private static function gg(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(g, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } private static function ii(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(i, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } public static function hashBytes(_arg1:ByteArray):String{ return (hashBinary(_arg1)); } } }//package com.adobe.crypto
Section 85
//IntUtil (com.adobe.utils.IntUtil) package com.adobe.utils { public class IntUtil { private static var hexChars:String = "0123456789abcdef"; public static function toHex(_arg1:int, _arg2:Boolean=false):String{ var _local3:String; var _local4:int; var _local5:int; _local3 = ""; if (_arg2){ _local4 = 0; while (_local4 < 4) { _local3 = (_local3 + (hexChars.charAt(((_arg1 >> (((3 - _local4) * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> ((3 - _local4) * 8)) & 15)))); _local4++; }; } else { _local5 = 0; while (_local5 < 4) { _local3 = (_local3 + (hexChars.charAt(((_arg1 >> ((_local5 * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> (_local5 * 8)) & 15)))); _local5++; }; }; return (_local3); } public static function ror(_arg1:int, _arg2:int):uint{ var _local3:int; _local3 = (32 - _arg2); return (((_arg1 << _local3) | (_arg1 >>> (32 - _local3)))); } public static function rol(_arg1:int, _arg2:int):int{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } } }//package com.adobe.utils
Section 86
//ConvexHull (com.FlashDynamix.geom.ConvexHull) package com.FlashDynamix.geom { import flash.geom.*; import com.FlashDynamix.types.*; public class ConvexHull { public static function bottomRight(_arg1:Array):int{ var _local2:int; var _local3:int; var _local4:*; _local2 = 0; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _arg1[_local3]; if ((((_local4.y > _arg1[_local2].y)) || ((((_local4.y >= _arg1[_local2].y)) && ((_local4.x > _arg1[_local2].x)))))){ _local2 = _local3; }; _local3++; }; return (_local2); } public static function sortC(_arg1:Function, _arg2:Array):Array{ sortCC(_arg1, _arg2).reverse(); _arg2.unshift(_arg2.pop()); return (_arg2); } public static function isLeft(_arg1, _arg2, _arg3):int{ return ((((_arg2.x - _arg1.x) * (_arg3.y - _arg1.y)) - ((_arg3.x - _arg1.x) * (_arg2.y - _arg1.y)))); } public static function bottomLeft(_arg1:Array):int{ var _local2:int; var _local3:int; var _local4:Point; _local2 = 0; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _arg1[_local3]; if ((((_local4.y > _arg1[_local2].y)) || ((((_local4.y >= _arg1[_local2].y)) && ((_local4.x < _arg1[_local2].x)))))){ _local2 = _local3; }; _local3++; }; return (_local2); } public static function findAngle(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ var _local5:Number; var _local6:Number; var _local7:Number; _local5 = (_arg3 - _arg1); _local6 = (_arg4 - _arg2); if ((((_local5 == 0)) && ((_local6 == 0)))){ return (0); }; _local7 = (Math.atan((_local6 / _local5)) * (180 / Math.PI)); if ((((_local5 >= 0)) && ((_local6 >= 0)))){ _local7 = (90 + _local7); } else { if ((((_local5 >= 0)) && ((_local6 < 0)))){ _local7 = (90 + _local7); } else { if ((((_local5 < 0)) && ((_local6 > 0)))){ _local7 = (270 + _local7); } else { if ((((_local5 < 0)) && ((_local6 <= 0)))){ _local7 = (270 + _local7); }; }; }; }; return (_local7); } public static function bfpHullD(_arg1:Array, _arg2:int):Array{ var _local3:Array; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:Point; var _local12:int; var _local13:int; var _local14:int; var _local15:Array; var _local16:int; _local3 = new Array(); _local4 = _arg1.length; _local5 = 0; _local6 = 0; _local7 = 0; _local8 = 0; _local9 = _arg1[0].x; _local10 = _arg1[0].x; _local12 = 0; _local13 = -1; _local14 = 0; _local14 = 1; while (_local14 < _local4) { _local11 = _arg1[_local14]; if (_local11.x <= _local9){ if (_local11.x < _local9){ _local9 = _local11.x; _local6 = _local14; _local5 = _local6; } else { if (_local11.y < _arg1[_local5].y){ _local5 = _local14; } else { if (_local11.y > _arg1[_local6].y){ _local6 = _local14; }; }; }; }; if (_local11.x >= _local10){ if (_local11.x > _local10){ _local10 = _local11.x; _local8 = _local14; _local7 = _local8; } else { if (_local11.y < _arg1[_local7].y){ _local7 = _local14; } else { if (_local11.y > _arg1[_local8].y){ _local8 = _local14; }; }; }; }; _local14++; }; if (_local9 == _local10){ ++_local13; var _local17 = _local13; _local3[_local17] = _arg1[_local5]; if (_local6 != _local5){ ++_local13; var _local18 = _local13; _local3[_local18] = _arg1[_local6]; }; return (_local3); }; _local15 = new Array((_arg2 + 2)); _local15[0] = new Object(); _local15[0].min = _local5; _local15[0].max = _local6; _local15[(_arg2 + 1)] = new Object(); _local15[(_arg2 + 1)].min = _local7; _local15[(_arg2 + 1)].max = _local8; _local16 = 0; _local16 = 1; while (_local16 <= _arg2) { _local15[_local16] = new Object(); _local15[_local16].min = (_local15[_local16].max = -1); _local16++; }; _local16 = 0; _local14 = 0; for (;_local14 < _local4;_local14++) { _local11 = _arg1[_local14]; if ((((_local11.x == _local9)) || ((_local11.x == _local10)))){ } else { if (ConvexHull.isLeft(_arg1[_local5], _arg1[_local7], _local11) < 0){ _local16 = int((((_arg2 * (_local11.x - _local9)) / (_local10 - _local9)) + 1)); if (_local15[_local16].min == -1){ _local15[_local16].min = _local14; } else { if (_local11.y < _arg1[_local15[_local16].min].y){ _local15[_local16].min = _local14; }; }; } else { if (ConvexHull.isLeft(_arg1[_local6], _arg1[_local8], _local11) > 0){ _local16 = int((((_arg2 * (_local11.x - _local9)) / (_local10 - _local9)) + 1)); if (_local15[_local16].max == -1){ _local15[_local16].max = _local14; } else { if (_local11.y > _arg1[_local15[_local16].max].y){ _local15[_local16].max = _local14; }; }; continue; }; }; }; }; _local14 = 0; while (_local14 <= (_arg2 + 1)) { if (_local15[_local14].min == -1){ } else { _local11 = _arg1[_local15[_local14].min]; while (_local13 > 0) { if (ConvexHull.isLeft(_local3[(_local13 - 1)], _local3[_local13], _local11) > 0){ break; } else { _local13--; }; }; ++_local13; _local17 = _local13; _local3[_local17] = _local11; }; _local14++; }; if (_local8 != _local7){ ++_local13; _local17 = _local13; _local3[_local17] = _arg1[_local8]; }; _local12 = _local13; _local14 = _arg2; while (_local14 >= 0) { if (_local15[_local14].max == -1){ } else { _local11 = _arg1[_local15[_local14].max]; while (_local13 > _local12) { if (ConvexHull.isLeft(_local3[(_local13 - 1)], _local3[_local13], _local11) > 0){ break; } else { _local13--; }; }; ++_local13; _local17 = _local13; _local3[_local17] = _local11; }; _local14--; }; if (_local6 != _local5){ ++_local13; _local17 = _local13; _local3[_local17] = _arg1[_local5]; }; _local3.pop(); return (_local3); } public static function grahamScan2D(_arg1:Array):Array{ var _local2:Array; var _local3:int; ConvexHull.sortC(ConvexHull.bottomRight, _arg1); _local2 = new Array(_arg1[1], _arg1[0]); _local3 = 2; while (_local3 < _arg1.length) { if (_local2.length > 1){ if (ConvexHull.isLeft(_local2[0], _local2[1], _arg1[_local3]) < 0){ _local2.unshift(_arg1[_local3]); _local3++; } else { _local2.splice(0, 1); }; } else { _local2.unshift(_arg1[_local3]); _local3++; }; }; return (_local2); } public static function sortCC(_arg1:Function, _arg2:Array):Array{ var idx:Number; var pt:Point; var same:Array; var start = _arg1; var p = _arg2; idx = start(p); pt = p[idx]; same = new Array(); p.sort(function (_arg1, _arg2){ var _local3:Number; var _local4:Number; _local3 = Line.angle(pt, _arg1); _local4 = Line.angle(pt, _arg2); if (_local3 > _local4){ return (-1); }; if (_local3 < _local4){ return (1); }; same.push(_arg1); return (0); }); Array2.removeItems(p, same); return (p); } public static function startBottomRight(_arg1:Array):Array{ var _local2:Number; var _local3:Array; _local2 = ConvexHull.bottomRight(_arg1); _local3 = _arg1.slice(_local2, _arg1.length); _local3 = _local3.concat(_arg1.slice(0, _local2)); return (_local3); } } }//package com.FlashDynamix.geom
Section 87
//Line (com.FlashDynamix.geom.Line) package com.FlashDynamix.geom { public class Line { public static function isParallel(_arg1, _arg2, _arg3, _arg4):Boolean{ return ((Line.angle(_arg1, _arg2) == Line.angle(_arg3, _arg4))); } public static function angle(_arg1, _arg2):Number{ return (Math.atan2((_arg2.y - _arg1.y), (_arg2.x - _arg1.x))); } public static function projectOnLine(_arg1, _arg2, _arg3){ var _local4:*; _local4 = Line.angle(_arg1, _arg2); return ({x:(_arg1.x + (Math.cos(_local4) * _arg3)), y:(_arg1.y + (Math.sin(_local4) * _arg3))}); } public static function length(_arg1, _arg2):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function isPointOnLine(_arg1, _arg2, _arg3):Boolean{ return ((((Math.abs((Line.degree(_arg1, _arg2) - Line.degree(_arg1, _arg3))) < 0.25)) && ((Line.length(_arg1, _arg3) <= Line.length(_arg1, _arg2))))); } public static function scalar(_arg1, _arg2, _arg3):Number{ var _local4:Number; var _local5:Number; _local4 = Line.length(_arg1, _arg2); _local5 = Line.length(_arg1, _arg3); return ((_local5 / _local4)); } public static function degree(_arg1, _arg2):Number{ return (((angle(_arg1, _arg2) * 180) / Math.PI)); } } }//package com.FlashDynamix.geom
Section 88
//Array2 (com.FlashDynamix.types.Array2) package com.FlashDynamix.types { public class Array2 { public static function insertAt(_arg1:Number, _arg2:Array, _arg3:Array):Array{ var _local4:Array; _local4 = _arg2.splice(_arg1); _arg2 = _arg2.concat(_arg3); return (_arg2.concat(_local4)); } public static function remove(_arg1:Array, _arg2):Array{ var _local3:*; _local3 = 0; while (_local3 < _arg1.length) { if (_arg1[_local3] == _arg2){ _arg1.splice(_local3, 1); _local3--; }; _local3++; }; return (_arg1); } public static function addBetween(_arg1:Array, _arg2){ var _local3:*; _local3 = 1; while (_local3 < _arg1.length) { _arg1.splice(_local3, 0, _arg2); _local3++; _local3++; }; return (_arg1); } public static function removeEmpty(_arg1:Array, _arg2):Array{ var _local3:*; _local3 = 0; while (_local3 < _arg1.length) { if (_arg1[_local3] == _arg2){ _arg1.splice(_local3, 1); _local3--; }; _local3++; }; return (_arg1); } public static function setEmpty(_arg1:Array, _arg2, _arg3):Array{ var _local4:*; _local4 = 0; while (_local4 < _arg1.length) { if (_arg1[_local4] == _arg2){ _arg1[_local4] = _arg3; }; _local4++; }; return (_arg1); } public static function removeItems(_arg1:Array, _arg2:Array):Array{ var _local3:*; _local3 = 0; while (_local3 < _arg2.length) { remove(_arg1, _arg2[_local3]); _local3++; }; return (_arg1); } public static function contains(_arg1:Array, _arg2):Boolean{ var _local3:*; _local3 = 0; while (_local3 < _arg1.length) { if (_arg1[_local3].valueOf() == _arg2.valueOf()){ return (true); }; _local3++; }; return (false); } } }//package com.FlashDynamix.types
Section 89
//AdLoader (CPMStar.AdLoader) package CPMStar { import flash.display.*; import flash.events.*; import flash.net.*; import flash.system.*; public class AdLoader extends Sprite { private var contentspotid:String; private var cpmstarLoader:Loader; public function AdLoader(_arg1:String){ this.contentspotid = _arg1; addEventListener(Event.ADDED, addedHandler); } private function addedHandler(_arg1:Event):void{ var _local2:String; var _local3:DisplayObjectContainer; removeEventListener(Event.ADDED, addedHandler); Security.allowDomain("server.cpmstar.com"); _local2 = "http://server.cpmstar.com/adviewas3.swf"; _local3 = parent; cpmstarLoader = new Loader(); cpmstarLoader.contentLoaderInfo.addEventListener(Event.INIT, dispatchHandler); cpmstarLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, dispatchHandler); cpmstarLoader.load(new URLRequest(((_local2 + "?contentspotid=") + contentspotid))); addChild(cpmstarLoader); } private function dispatchHandler(_arg1:Event):void{ dispatchEvent(_arg1); } } }//package CPMStar
Section 90
//Color (fl.motion.Color) package fl.motion { import flash.geom.*; import flash.display.*; public class Color extends ColorTransform { private var _tintMultiplier:Number;// = 0 private var _tintColor:Number;// = 0 public function Color(_arg1:Number=1, _arg2:Number=1, _arg3:Number=1, _arg4:Number=1, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0){ _tintColor = 0; _tintMultiplier = 0; super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); } public function setTint(_arg1:uint, _arg2:Number):void{ var _local3:uint; var _local4:uint; var _local5:uint; this._tintColor = _arg1; this._tintMultiplier = _arg2; this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = (1 - _arg2))); _local3 = ((_arg1 >> 16) & 0xFF); _local4 = ((_arg1 >> 8) & 0xFF); _local5 = (_arg1 & 0xFF); this.redOffset = Math.round((_local3 * _arg2)); this.greenOffset = Math.round((_local4 * _arg2)); this.blueOffset = Math.round((_local5 * _arg2)); } public function set tintColor(_arg1:uint):void{ this.setTint(_arg1, this.tintMultiplier); } public function get brightness():Number{ return ((this.redOffset) ? (1 - this.redMultiplier) : (this.redMultiplier - 1)); } private function deriveTintColor():uint{ var _local1:Number; var _local2:uint; var _local3:uint; var _local4:uint; var _local5:uint; _local1 = (1 / this.tintMultiplier); _local2 = Math.round((this.redOffset * _local1)); _local3 = Math.round((this.greenOffset * _local1)); _local4 = Math.round((this.blueOffset * _local1)); _local5 = (((_local2 << 16) | (_local3 << 8)) | _local4); return (_local5); } public function get tintMultiplier():Number{ return (this._tintMultiplier); } public function get tintColor():uint{ return (this._tintColor); } public function set brightness(_arg1:Number):void{ var _local2:Number; var _local3:Number; if (_arg1 > 1){ _arg1 = 1; } else { if (_arg1 < -1){ _arg1 = -1; }; }; _local2 = (1 - Math.abs(_arg1)); _local3 = 0; if (_arg1 > 0){ _local3 = (_arg1 * 0xFF); }; this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = _local2)); this.redOffset = (this.greenOffset = (this.blueOffset = _local3)); } public function set tintMultiplier(_arg1:Number):void{ this.setTint(this.tintColor, _arg1); } private function parseXML(_arg1:XML=null):Color{ var _local2:XML; var _local3:XML; var _local4:String; var _local5:uint; if (!_arg1){ return (this); }; _local2 = _arg1.elements()[0]; if (!_local2){ return (this); }; for each (_local3 in _local2.attributes()) { _local4 = _local3.localName(); if (_local4 == "tintColor"){ _local5 = (Number(_local3.toString()) as uint); this.tintColor = _local5; } else { this[_local4] = Number(_local3.toString()); }; }; return (this); } public static function interpolateColor(_arg1:uint, _arg2:uint, _arg3:Number):uint{ var _local4:Number; var _local5:uint; var _local6:uint; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:uint; var _local14:uint; var _local15:uint; var _local16:uint; var _local17:uint; _local4 = (1 - _arg3); _local5 = ((_arg1 >> 24) & 0xFF); _local6 = ((_arg1 >> 16) & 0xFF); _local7 = ((_arg1 >> 8) & 0xFF); _local8 = (_arg1 & 0xFF); _local9 = ((_arg2 >> 24) & 0xFF); _local10 = ((_arg2 >> 16) & 0xFF); _local11 = ((_arg2 >> 8) & 0xFF); _local12 = (_arg2 & 0xFF); _local13 = ((_local5 * _local4) + (_local9 * _arg3)); _local14 = ((_local6 * _local4) + (_local10 * _arg3)); _local15 = ((_local7 * _local4) + (_local11 * _arg3)); _local16 = ((_local8 * _local4) + (_local12 * _arg3)); _local17 = ((((_local13 << 24) | (_local14 << 16)) | (_local15 << 8)) | _local16); return (_local17); } public static function interpolateTransform(_arg1:ColorTransform, _arg2:ColorTransform, _arg3:Number):ColorTransform{ var _local4:Number; var _local5:ColorTransform; _local4 = (1 - _arg3); _local5 = new ColorTransform(((_arg1.redMultiplier * _local4) + (_arg2.redMultiplier * _arg3)), ((_arg1.greenMultiplier * _local4) + (_arg2.greenMultiplier * _arg3)), ((_arg1.blueMultiplier * _local4) + (_arg2.blueMultiplier * _arg3)), ((_arg1.alphaMultiplier * _local4) + (_arg2.alphaMultiplier * _arg3)), ((_arg1.redOffset * _local4) + (_arg2.redOffset * _arg3)), ((_arg1.greenOffset * _local4) + (_arg2.greenOffset * _arg3)), ((_arg1.blueOffset * _local4) + (_arg2.blueOffset * _arg3)), ((_arg1.alphaOffset * _local4) + (_arg2.alphaOffset * _arg3))); return (_local5); } public static function fromXML(_arg1:XML):Color{ return (Color(new (Color).parseXML(_arg1))); } } }//package fl.motion
Section 91
//Fade (fl.transitions.Fade) package fl.transitions { import flash.display.*; public class Fade extends Transition { protected var _alphaFinal:Number; public function Fade(_arg1:MovieClip, _arg2:Object, _arg3:TransitionManager){ super(_arg1, _arg2, _arg3); this._alphaFinal = this.manager.contentAppearance.alpha; } override protected function _render(_arg1:Number):void{ this._content.alpha = (this._alphaFinal * _arg1); } override public function get type():Class{ return (Fade); } } }//package fl.transitions
Section 92
//Transition (fl.transitions.Transition) package fl.transitions { import flash.geom.*; import flash.display.*; import flash.events.*; public class Transition extends EventDispatcher { protected var _direction:uint;// = 0 protected var _progress:Number; public var ID:int; protected var _twn:Tween; protected var _content:MovieClip; protected var _height:Number;// = NAN protected var _width:Number;// = NAN protected var _outerBounds:Rectangle; protected var _easing:Function; protected var _innerBounds:Rectangle; protected var _manager:TransitionManager; protected var _duration:Number;// = 2 public static const IN:uint = 0; public static const OUT:uint = 1; public function Transition(_arg1:MovieClip, _arg2:Object, _arg3:TransitionManager){ _direction = 0; _duration = 2; _width = NaN; _height = NaN; super(); this.content = _arg1; this.direction = _arg2.direction; this.duration = _arg2.duration; this.easing = _arg2.easing; this.manager = _arg3; this._innerBounds = this.manager._innerBounds; this._outerBounds = this.manager._outerBounds; this._width = this.manager._width; this._height = this.manager._height; this._resetTween(); } public function stop():void{ this._twn.fforward(); this._twn.stop(); } private function _resetTween():void{ if (this._twn){ this._twn.stop(); this._twn.removeEventListener(TweenEvent.MOTION_FINISH, this.onMotionFinished); }; this._twn = new Tween(this, "", this.easing, 0, 1, this.duration, true); this._twn.stop(); this._twn.prop = "progress"; this._twn.addEventListener(TweenEvent.MOTION_FINISH, this.onMotionFinished, false, 0, true); } public function onMotionFinished(_arg1:Object):void{ if (this.direction == Transition.OUT){ this.dispatchEvent(new Event("transitionOutDone")); } else { this.dispatchEvent(new Event("transitionInDone")); }; } public function get duration():Number{ return (this._duration); } public function set duration(_arg1:Number):void{ if (_arg1){ this._duration = _arg1; if (this._twn){ this._twn.duration = _arg1; }; }; } public function get easing():Function{ return (this._easing); } public function get manager():TransitionManager{ return (this._manager); } public function get progress():Number{ return (this._progress); } protected function _render(_arg1:Number):void{ } public function get type():Class{ return (Transition); } public function drawCircle(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Number):void{ _arg1.graphics.moveTo((_arg2 + _arg4), _arg3); _arg1.graphics.curveTo((_arg4 + _arg2), ((Math.tan((Math.PI / 8)) * _arg4) + _arg3), ((Math.sin((Math.PI / 4)) * _arg4) + _arg2), ((Math.sin((Math.PI / 4)) * _arg4) + _arg3)); _arg1.graphics.curveTo(((Math.tan((Math.PI / 8)) * _arg4) + _arg2), (_arg4 + _arg3), _arg2, (_arg4 + _arg3)); _arg1.graphics.curveTo(((-(Math.tan((Math.PI / 8))) * _arg4) + _arg2), (_arg4 + _arg3), ((-(Math.sin((Math.PI / 4))) * _arg4) + _arg2), ((Math.sin((Math.PI / 4)) * _arg4) + _arg3)); _arg1.graphics.curveTo((-(_arg4) + _arg2), ((Math.tan((Math.PI / 8)) * _arg4) + _arg3), (-(_arg4) + _arg2), _arg3); _arg1.graphics.curveTo((-(_arg4) + _arg2), ((-(Math.tan((Math.PI / 8))) * _arg4) + _arg3), ((-(Math.sin((Math.PI / 4))) * _arg4) + _arg2), ((-(Math.sin((Math.PI / 4))) * _arg4) + _arg3)); _arg1.graphics.curveTo(((-(Math.tan((Math.PI / 8))) * _arg4) + _arg2), (-(_arg4) + _arg3), _arg2, (-(_arg4) + _arg3)); _arg1.graphics.curveTo(((Math.tan((Math.PI / 8)) * _arg4) + _arg2), (-(_arg4) + _arg3), ((Math.sin((Math.PI / 4)) * _arg4) + _arg2), ((-(Math.sin((Math.PI / 4))) * _arg4) + _arg3)); _arg1.graphics.curveTo((_arg4 + _arg2), ((-(Math.tan((Math.PI / 8))) * _arg4) + _arg3), (_arg4 + _arg2), _arg3); } public function cleanUp():void{ this.removeEventListener("transitionInDone", this._manager.transitionInDone); this.removeEventListener("transitionOutDone", this._manager.transitionOutDone); this.stop(); } public function set easing(_arg1:Function):void{ this._easing = _arg1; if (this._twn){ this._twn.func = _arg1; }; } public function set manager(_arg1:TransitionManager):void{ if (this._manager){ this.removeEventListener("transitionInDone", this._manager.transitionInDone); this.removeEventListener("transitionOutDone", this._manager.transitionOutDone); }; this._manager = _arg1; this.addEventListener("transitionInDone", this._manager.transitionInDone); this.addEventListener("transitionOutDone", this._manager.transitionOutDone); } public function set progress(_arg1:Number):void{ if (this._progress == _arg1){ return; }; this._progress = _arg1; if (this._direction){ this._render((1 - _arg1)); } else { this._render(_arg1); }; this.dispatchEvent(new Event("transitionProgress")); } public function start():void{ this.content.visible = true; this._twn.start(); } public function drawBox(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):void{ _arg1.graphics.moveTo(_arg2, _arg3); _arg1.graphics.lineTo((_arg2 + _arg4), _arg3); _arg1.graphics.lineTo((_arg2 + _arg4), (_arg3 + _arg5)); _arg1.graphics.lineTo(_arg2, (_arg3 + _arg5)); _arg1.graphics.lineTo(_arg2, _arg3); } public function set content(_arg1:MovieClip):void{ if (_arg1){ this._content = _arg1; if (this._twn){ this._twn.obj = _arg1; }; }; } private function _noEase(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public function get content():MovieClip{ return (this._content); } public function set direction(_arg1:Number):void{ this._direction = (_arg1) ? 1 : 0; } public function get direction():Number{ return (this._direction); } } }//package fl.transitions
Section 93
//TransitionManager (fl.transitions.TransitionManager) package fl.transitions { import flash.geom.*; import flash.display.*; import flash.events.*; public class TransitionManager extends EventDispatcher { public var _innerBounds:Rectangle; private var _visualPropList:Object; private var _triggerEvent:String; public var className:String;// = "TransitionManager" public var type:Object; private var _contentAppearance:Object; private var _content:MovieClip; public var _width:Number;// = NAN public var _height:Number;// = NAN public var _outerBounds:Rectangle; private var _transitions:Object; private static var IDCount:int = 0; public function TransitionManager(_arg1:MovieClip){ type = TransitionManager; className = "TransitionManager"; _width = NaN; _height = NaN; _visualPropList = {x:null, y:null, scaleX:null, scaleY:null, alpha:null, rotation:null}; super(); this.content = _arg1; this._transitions = {}; } public function get content():MovieClip{ return (this._content); } public function removeAllTransitions():void{ var _local1:Transition; for each (_local1 in this._transitions) { _local1.cleanUp(); this.removeTransition(_local1); }; } function transitionInDone(_arg1:Object):void{ var _local2:Boolean; this.removeTransition(_arg1.target); if (this.numInTransitions == 0){ _local2 = this._content.visible; if ((((this._triggerEvent == "hide")) || ((this._triggerEvent == "hideChild")))){ this._content.visible = false; }; if (_local2){ this.dispatchEvent(new Event("allTransitionsInDone")); }; }; } public function get numOutTransitions():Number{ var _local1:Number; var _local2:Object; var _local3:Transition; _local1 = 0; _local2 = this._transitions; for each (_local3 in _local2) { if (_local3.direction){ _local1++; }; }; return (_local1); } public function get contentAppearance():Object{ return (this._contentAppearance); } public function saveContentAppearance():void{ var _local1:MovieClip; var _local2:Object; var _local3:String; _local1 = this._content; if (!this._contentAppearance){ _local2 = (this._contentAppearance = {}); for (_local3 in this._visualPropList) { _local2[_local3] = _local1[_local3]; }; _local2.colorTransform = _local1.transform.colorTransform; }; this._innerBounds = _local1.getBounds(_local1); this._outerBounds = _local1.getBounds(_local1.parent); this._width = _local1.width; this._height = _local1.height; } public function addTransition(_arg1:Transition):Transition{ _arg1.ID = ++TransitionManager.IDCount; this._transitions[_arg1.ID] = _arg1; return (_arg1); } public function startTransition(_arg1:Object):Transition{ var _local2:Class; var _local3:Transition; this.removeTransition(this.findTransition(_arg1)); _local2 = _arg1.type; _local3 = new _local2(this._content, _arg1, this); this.addTransition(_local3); _local3.start(); return (_local3); } function transitionOutDone(_arg1:Object):void{ var _local2:Boolean; this.removeTransition(_arg1.target); if (this.numOutTransitions == 0){ this.restoreContentAppearance(); _local2 = this._content.visible; if (((_local2) && ((((_triggerEvent == "hide")) || ((_triggerEvent == "hideChild")))))){ this._content.visible = false; }; if (_local2){ this.dispatchEvent(new Event("allTransitionsOutDone")); }; }; } public function restoreContentAppearance():void{ var _local1:MovieClip; var _local2:Object; var _local3:String; _local1 = this._content; _local2 = this._contentAppearance; for (_local3 in this._visualPropList) { _local1[_local3] = _local2[_local3]; }; _local1.transform.colorTransform = _local2.colorTransform; } public function get numTransitions():Number{ var _local1:Number; var _local2:Transition; _local1 = 0; for each (_local2 in this._transitions) { _local1++; }; return (_local1); } public function findTransition(_arg1:Object):Transition{ var _local2:Transition; for each (_local2 in this._transitions) { if (_local2.type == _arg1.type){ return (_local2); }; }; return (null); } public function set content(_arg1:MovieClip):void{ this._content = _arg1; this.saveContentAppearance(); } public function get numInTransitions():Number{ var _local1:Number; var _local2:Object; var _local3:Transition; _local1 = 0; _local2 = this._transitions; for each (_local3 in _local2) { if (!_local3.direction){ _local1++; }; }; return (_local1); } public function removeTransition(_arg1:Transition):Boolean{ if (((((!(_arg1)) || (!(this._transitions)))) || (!(this._transitions[_arg1.ID])))){ return (false); }; _arg1.cleanUp(); return (delete this._transitions[_arg1.ID]); } public function get transitionsList():Object{ return (this._transitions); } public static function start(_arg1:MovieClip, _arg2:Object):Transition{ if (!_arg1.__transitionManager){ _arg1.__transitionManager = new TransitionManager(_arg1); }; if (_arg2.direction == 1){ _arg1.__transitionManager._triggerEvent = "hide"; } else { _arg1.__transitionManager._triggerEvent = "reveal"; }; return (_arg1.__transitionManager.startTransition(_arg2)); } } }//package fl.transitions
Section 94
//Tween (fl.transitions.Tween) package fl.transitions { import flash.display.*; import flash.utils.*; import flash.events.*; public class Tween extends EventDispatcher { private var _position:Number;// = NAN public var prevTime:Number;// = NAN public var prevPos:Number;// = NAN public var isPlaying:Boolean;// = false public var begin:Number;// = NAN private var _fps:Number;// = NAN private var _time:Number;// = NAN public var change:Number;// = NAN private var _finish:Number;// = NAN public var looping:Boolean;// = false private var _intervalID:uint;// = 0 public var func:Function; private var _timer:Timer;// = null private var _startTime:Number;// = NAN public var prop:String;// = "" private var _duration:Number;// = NAN public var obj:Object;// = null public var useSeconds:Boolean;// = false protected static var _mc:MovieClip = new MovieClip(); public function Tween(_arg1:Object, _arg2:String, _arg3:Function, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean=false){ isPlaying = false; obj = null; prop = ""; func = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); }; begin = NaN; change = NaN; useSeconds = false; prevTime = NaN; prevPos = NaN; looping = false; _duration = NaN; _time = NaN; _fps = NaN; _position = NaN; _startTime = NaN; _intervalID = 0; _finish = NaN; _timer = null; super(); if (!arguments.length){ return; }; this.obj = _arg1; this.prop = _arg2; this.begin = _arg4; this.position = _arg4; this.duration = _arg6; this.useSeconds = _arg7; if ((_arg3 is Function)){ this.func = _arg3; }; this.finish = _arg5; this._timer = new Timer(100); this.start(); } public function continueTo(_arg1:Number, _arg2:Number):void{ this.begin = this.position; this.finish = _arg1; if (!isNaN(_arg2)){ this.duration = _arg2; }; this.start(); } public function stop():void{ this.stopEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_STOP, this._time, this._position)); } private function fixTime():void{ if (this.useSeconds){ this._startTime = (getTimer() - (this._time * 1000)); }; } public function set FPS(_arg1:Number):void{ var _local2:Boolean; _local2 = this.isPlaying; this.stopEnterFrame(); this._fps = _arg1; if (_local2){ this.startEnterFrame(); }; } public function get finish():Number{ return ((this.begin + this.change)); } public function get duration():Number{ return (this._duration); } protected function startEnterFrame():void{ var _local1:Number; if (isNaN(this._fps)){ _mc.addEventListener(Event.ENTER_FRAME, this.onEnterFrame, false, 0, true); } else { _local1 = (1000 / this._fps); this._timer.delay = _local1; this._timer.addEventListener(TimerEvent.TIMER, this.timerHandler, false, 0, true); this._timer.start(); }; this.isPlaying = true; } public function set time(_arg1:Number):void{ this.prevTime = this._time; if (_arg1 > this.duration){ if (this.looping){ this.rewind((_arg1 - this._duration)); this.update(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_LOOP, this._time, this._position)); } else { if (this.useSeconds){ this._time = this._duration; this.update(); }; this.stop(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_FINISH, this._time, this._position)); }; } else { if (_arg1 < 0){ this.rewind(); this.update(); } else { this._time = _arg1; this.update(); }; }; } protected function stopEnterFrame():void{ if (isNaN(this._fps)){ _mc.removeEventListener(Event.ENTER_FRAME, this.onEnterFrame); } else { this._timer.stop(); }; this.isPlaying = false; } public function getPosition(_arg1:Number=NaN):Number{ if (isNaN(_arg1)){ _arg1 = this._time; }; return (this.func(_arg1, this.begin, this.change, this._duration)); } public function set finish(_arg1:Number):void{ this.change = (_arg1 - this.begin); } public function set duration(_arg1:Number):void{ this._duration = ((_arg1)<=0) ? Infinity : _arg1; } public function setPosition(_arg1:Number):void{ this.prevPos = this._position; if (this.prop.length){ this.obj[this.prop] = (this._position = _arg1); }; this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_CHANGE, this._time, this._position)); } public function resume():void{ this.fixTime(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_RESUME, this._time, this._position)); } public function fforward():void{ this.time = this._duration; this.fixTime(); } protected function onEnterFrame(_arg1:Event):void{ this.nextFrame(); } public function get position():Number{ return (this.getPosition(this._time)); } public function yoyo():void{ this.continueTo(this.begin, this.time); } public function nextFrame():void{ if (this.useSeconds){ this.time = ((getTimer() - this._startTime) / 1000); } else { this.time = (this._time + 1); }; } protected function timerHandler(_arg1:TimerEvent):void{ this.nextFrame(); _arg1.updateAfterEvent(); } public function get FPS():Number{ return (this._fps); } public function rewind(_arg1:Number=0):void{ this._time = _arg1; this.fixTime(); this.update(); } public function set position(_arg1:Number):void{ this.setPosition(_arg1); } public function get time():Number{ return (this._time); } private function update():void{ this.setPosition(this.getPosition(this._time)); } public function start():void{ this.rewind(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_START, this._time, this._position)); } public function prevFrame():void{ if (!this.useSeconds){ this.time = (this._time - 1); }; } } }//package fl.transitions
Section 95
//TweenEvent (fl.transitions.TweenEvent) package fl.transitions { import flash.events.*; public class TweenEvent extends Event { public var time:Number;// = NAN public var position:Number;// = NAN public static const MOTION_START:String = "motionStart"; public static const MOTION_STOP:String = "motionStop"; public static const MOTION_LOOP:String = "motionLoop"; public static const MOTION_CHANGE:String = "motionChange"; public static const MOTION_FINISH:String = "motionFinish"; public static const MOTION_RESUME:String = "motionResume"; public function TweenEvent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Boolean=false){ time = NaN; position = NaN; super(_arg1, _arg4, _arg5); this.time = _arg2; this.position = _arg3; } override public function clone():Event{ return (new TweenEvent(this.type, this.time, this.position, this.bubbles, this.cancelable)); } } }//package fl.transitions
Section 96
//BoundaryListener (Game.BoundaryListener) package Game { import Box2D.Dynamics.*; public class BoundaryListener extends b2BoundaryListener { override public function Violation(_arg1:b2Body):void{ Globals.destroyList.push(_arg1.m_userData); } } }//package Game
Section 97
//Globals (Game.Globals) package Game { import flash.media.*; import flash.net.*; public class Globals { public static const GAME_LEVELCOMPLETE:int = 3; public static const GAME_RESUME:int = 4; public static const GAME_PAUSED:int = 1; public static const PUSH_MODE:int = 4; public static const SCALE:int = 20; public static const GAME_RESTART:int = 2; public static const PIN_MODE:int = 2; public static const CRAYON_MODE:int = 0; public static const HINGE_MODE:int = 3; public static const GAME_PLAY:int = 0; public static const ERASER_MODE:int = 1; public static const GAME_BACK_TO_MENU:int = 5; public static var pointerMode:int; public static var currentLevel:int; public static var gameID:String = "1285"; public static var numLevels:int = (levels.length / 2); public static var music1:Sound; public static var music2:Sound; public static var destroyList:Array; public static var gameState:int; public static var gamePaused:Boolean; public static var lastGameState:int; public static var savedData:SharedObject; public static var useFilter:Boolean = true; public static var levels:Array = [NivelFreePlay, "azul", Nivel1, "amarillo", NuevoNivel2, "amarillo", NuevoNivel3, "blanco", Nivel27, "blanco", Nivel3, "azul", Nivel5, "amarillo", Nivel2, "amarillo", Nivel4, "azul", Nivel6, "negro", Nivel7, "negro", Nivel8, "azul", Nivel9, "blanco", Nivel10, "negro", Nivel12, "azul", Nivel13, "amarillo", Nivel14, "azul", Nivel15, "negro", Nivel16, "negro", Nivel18, "blanco", Nivel17, "blanco", Nivel19, "azul", Nivel21, "amarillo", Nivel20, "azul", Nivel22, "negro", Nivel23, "azul", Nivel24, "negro", Nivel25, "blanco", Nivel38, "amarillo", Nivel37, "azul", Nivel26, "negro", Nivel39, "blanco", Nivel40, "azul"]; public static var soundChannel:SoundChannel; public static function stopMusic(){ if (soundChannel){ soundChannel.stop(); }; soundChannel = null; } public static function startMusic(){ if (soundChannel){ soundChannel.stop(); }; soundChannel = Globals.music2.play(0, int.MAX_VALUE); } } }//package Game
Section 98
//MPContactListener (Game.MPContactListener) package Game { import Box2D.Dynamics.*; import Box2D.Collision.*; import flash.utils.*; public class MPContactListener extends b2ContactListener { public const MAX_SEPARATION:int = -5; public var estrellitaContact:MWBody;// = null public var overlappingBodies:Dictionary; public function MPContactListener(){ estrellitaContact = null; super(); } override public function Add(_arg1:b2ContactPoint):void{ var _local2:MWBody; var _local3:MWBody; _local2 = _arg1.shape1.GetBody().GetUserData(); _local3 = _arg1.shape2.GetBody().GetUserData(); if ((((_local2 is Estrellita)) || ((_local2 is EstrellitaObj)))){ if ((((_local3 is Bolita)) || ((_local3 is Cajita)))){ estrellitaContact = _local2; }; } else { if ((((_local3 is Estrellita)) || ((_local3 is EstrellitaObj)))){ if ((((_local2 is Bolita)) || ((_local2 is Cajita)))){ estrellitaContact = _local3; }; }; }; } override public function Persist(_arg1:b2ContactPoint):void{ var _local2:b2Body; var _local3:b2Body; if (_arg1.separation < MAX_SEPARATION){ _local2 = _arg1.shape1.GetBody(); _local3 = _arg1.shape2.GetBody(); if (((((!(_local2.IsStatic())) && (_local3.IsStatic()))) && (!((_local2.GetJointList() == null))))){ overlappingBodies[_local2] = 1; }; if (((((!(_local3.IsStatic())) && (_local2.IsStatic()))) && (!((_local3.GetJointList() == null))))){ overlappingBodies[_local3] = 1; }; return; }; } public function cleanOverlapping(){ overlappingBodies = new Dictionary(); } } }//package Game
Section 99
//MWBody (Game.MWBody) package Game { import flash.display.*; import Box2DIntegration.*; public class MWBody extends b2iBody { public var canDestroy:Boolean;// = true public var id:uint;// = 0 public var connectedToPinned:Boolean; public var pin:Pin;// = null public var canPin:Boolean;// = true public var drawable:Boolean;// = false public var figura:Bitmap; private static var idCount = 0; public function MWBody(){ canPin = true; canDestroy = true; pin = null; id = 0; drawable = false; super(); idCount++; connectedToPinned = false; drawable = false; id = idCount; figura = null; } } }//package Game
Section 100
//MWLevel (Game.MWLevel) package Game { import Box2DIntegration.*; public dynamic class MWLevel extends b2iLevel { public var fondo:String; public var i_bolita:Bolita; public var numPins:int;// = 0 public var bolita:b2iGameObject; public var i_cajita:Cajita; public function MWLevel(){ numPins = 0; super(); } public function getFondo():String{ return (fondo); } public function setFondo(_arg1:String):void{ fondo = _arg1; } } }//package Game
Section 101
//Contenedor_23 (MP2_fla.Contenedor_23) package MP2_fla { import flash.display.*; public dynamic class Contenedor_23 extends MovieClip { public function Contenedor_23(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package MP2_fla
Section 102
//CrayonAd_169 (MP2_fla.CrayonAd_169) package MP2_fla { import flash.display.*; public dynamic class CrayonAd_169 extends MovieClip { public var crayonLink1:SimpleButton; } }//package MP2_fla
Section 103
//Figura5_194 (MP2_fla.Figura5_194) package MP2_fla { import flash.display.*; public dynamic class Figura5_194 extends MovieClip { public function Figura5_194(){ addFrameScript(133, frame134); } function frame134(){ } } }//package MP2_fla
Section 104
//Fondos_204 (MP2_fla.Fondos_204) package MP2_fla { import flash.display.*; public dynamic class Fondos_204 extends MovieClip { public function Fondos_204(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4); } function frame3(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame2(){ stop(); } } }//package MP2_fla
Section 105
//LevelNum_178 (MP2_fla.LevelNum_178) package MP2_fla { import flash.display.*; import flash.text.*; public dynamic class LevelNum_178 extends MovieClip { public var textfield:TextField; public function LevelNum_178(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ textfield.mouseEnabled = false; stop(); } function frame2(){ textfield.mouseEnabled = false; stop(); } } }//package MP2_fla
Section 106
//LoadingBar_17 (MP2_fla.LoadingBar_17) package MP2_fla { import flash.display.*; public dynamic class LoadingBar_17 extends MovieClip { public var loadingbarmask:MovieClip; } }//package MP2_fla
Section 107
//main_155 (MP2_fla.main_155) package MP2_fla { import flash.display.*; public dynamic class main_155 extends MovieClip { public var selectLevel_button:SimpleButton; public var music_button:MovieClip; public var help_button:SimpleButton; } }//package MP2_fla
Section 108
//MainTimeline (MP2_fla.MainTimeline) package MP2_fla { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import flash.geom.*; import flash.display.*; import flash.utils.*; import flash.events.*; import fl.motion.*; import fl.transitions.*; import Game.*; import Box2DIntegration.*; import com.FlashDynamix.geom.*; import MyUtils.*; import flash.media.*; import CPMStar.*; import flash.text.*; import flash.net.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.ui.*; import flash.xml.*; import fl.transitions.easing.*; public dynamic class MainTimeline extends MovieClip { public const SCREEN_WIDTH:int = 640; public const SCROLL_SPEED:int = 10; public const FIRST_PUSH_STR:Number = 100; public const SCREEN_HEIGHT:int = 480; public const MIN_ANGLE:Number = 7; public const UI_MAIN:int = 2; public const UI_ALL:int = 1; public const DRAWING_DENSITY:Number = 2.5; public const DRAWING_RESTITUTION:Number = 0; public const BOX_THICKNESS:Number = 3; public const LINEAR_DAMPING:Number = 0.1; public const PIN_RANGE:Number = 0.25; public const MIN_PUSH_DIST:Number = 100; public const PUSH_TIMER:int = 90; public const CIRCLE_AUGMENT:Number = 0.05; public const UI_NONE:int = 3; public const DRAWING_FRICTION:Number = 0.5; public const MIN_PERIMETER:Number = 2; public const CLOSE_DISTANCE:Number = 1.05; public const MIN_DIST_TO_LINE:Number = 0.5; public const LIFE_SPAN:int = 3600; public const MAX_PERIMETER:Number = 75; public const MAX_CIRCLE_RADIUS:Number = 5; public const MIN_DISTANCE:Number = 0.25; public const ANGULAR_DAMPING:Number = 0.05; public const PUSH_STR:Number = 2; public const MIN_CIRCLE_RADIUS:Number = 0.5; public const TORQUE_BOLA:Number = 60000000; public const CIRCLE_PRECISION:int = 8; public const HINGE_RESISTANCE:Number = 300000; public var b_back_options:SimpleButton; public var bu_OQuality:MovieClip; public var perimeter:Number; public var drawing:Boolean; public var ad:DisplayObject; public var bu_FP:SimpleButton; public var connectedPinned:Array; public var circleTimer:Timer; public var logoTimer:Timer; public var noTint:Color; public var i:int; public var CRAYON_SPACE:Number; public var bu_OMusic:MovieClip; public var inGameSuperUI:InGameSuperUI; public var contenedor:MovieClip; public var lastPoint:Point; public var CPMStarContentSpotID:String; public var i_fondo:MovieClip; public var movieBytesTotal:int; public var letsplay:SimpleButton; public var colorProperties:Array; public var quality:int; public var contactListener:MPContactListener; public var loadingbar:MovieClip; public var currentColorProperty:int; public var puntosFigura:Array; public var bubble_logo:MovieClip; public var circleRadius:Number; public var lastGroup:int; public var crayonBrushes:Array; public var linksXRow:int; public var posicionEstrellas:Array; public var sinTable:Array; public var input_name:TextField; public var firstPush:int; public var b_White:SimpleButton; public var estrellasOrigen:Array; public var b_back_credits:SimpleButton; public var pinnedObjects:Array; public var crayonLink:SimpleButton; public var b_Blue:SimpleButton; public var startTime:int; public var cosTable:Array; public var pushing:Boolean; public var uiSwitchState:int; public var bola:b2iBody; public var drawingCircle:Boolean; public var adBox:MovieClip; public var mp1_link:SimpleButton; public var bar_init_x:int; public var whiteTint:Color; public var i_tuto:MovieClip; public var secondsUsed:Number; public var bolaStart:Point; public var b_Red:SimpleButton; public var endTimer:Timer; public var cursor:Point; public var timerBackToMenu:Timer; public var estrellas:Array; public var newBody:MovieClip; public var level:MWLevel; public var inGameUI:InGameUI; public var cursorMC:MovieClip; public var newBodyPos:Point; public var links:MovieClip; public var musicLink:SimpleButton; public var linkList:Array; public var shapesUsed:int; public var bu_OTutorial:MovieClip; public var minimumTime:int; public function MainTimeline(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 9, frame10, 10, frame11, 11, frame12, 12, frame13); } public function adjustPoly(_arg1:Point, _arg2:Array):Point{ var _local3:Point; var _local4:Point; _local3 = new Point(); for each (_local4 in _arg2) { _local4.x = ((_local4.x * Globals.SCALE) - _arg1.x); _local4.y = ((_local4.y * Globals.SCALE) - _arg1.y); _local3.x = Math.max(_local3.x, _local4.x); _local3.y = Math.max(_local3.y, _local4.y); }; return (_local3); } public function handleKeyUp(_arg1:KeyboardEvent){ var _local2:String; _local2 = String.fromCharCode(_arg1.charCode); if (_arg1.keyCode == Keyboard.SPACE){ if (Globals.gameState == Globals.GAME_PLAY){ if (Globals.currentLevel != (Globals.numLevels + 1)){ Globals.gameState = Globals.GAME_RESTART; }; }; } else { if ((((_local2 == "a")) || ((_local2 == "A")))){ if (Globals.pointerMode == Globals.ERASER_MODE){ Globals.pointerMode = Globals.CRAYON_MODE; }; } else { if ((((_local2 == "d")) || ((_local2 == "D")))){ if (Globals.pointerMode == Globals.HINGE_MODE){ Globals.pointerMode = Globals.CRAYON_MODE; }; } else { if ((((_local2 == "s")) || ((_local2 == "S")))){ if (Globals.pointerMode == Globals.PIN_MODE){ Globals.pointerMode = Globals.CRAYON_MODE; }; } else { if ((((_local2 == "w")) || ((_local2 == "W")))){ if (Globals.pointerMode == Globals.PUSH_MODE){ Globals.pointerMode = Globals.CRAYON_MODE; }; } else { if (_arg1.keyCode == Keyboard.ESCAPE){ if (Globals.gameState == Globals.GAME_PLAY){ inGameGoBackToMenu(); }; }; }; }; }; }; }; } public function mergeGroups(_arg1:b2Body, _arg2:b2Body):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:Array; _local3 = _arg1.GetShapeList().GetFilterData().groupIndex; _local4 = _arg2.GetShapeList().GetFilterData().groupIndex; if ((((_local3 == 0)) && ((_local4 == 0)))){ _local5 = getNextGroup(); } else { _local5 = Math.min(_local3, _local4); }; _local6 = []; propagateGroup(_arg1, _local5, _local6); } public function pushBall(){ var _local1:b2Vec2; var _local2:Number; _local1 = new b2Vec2((bola.x - cursorMC.x), (bola.y - cursorMC.y)); _local2 = (Math.min((MIN_PUSH_DIST / _local1.Length()), 1) * PUSH_STR); _local1.Normalize(); _local1.Multiply(_local2); bola.m_body.ApplyForce(_local1, bola.m_body.GetWorldCenter()); if (firstPush == 0){ firstPush = PUSH_TIMER; _local1.Normalize(); _local1.Multiply(FIRST_PUSH_STR); bola.m_body.ApplyForce(_local1, bola.m_body.GetWorldCenter()); }; } function frame10(){ b_back_credits.addEventListener(MouseEvent.CLICK, backToMenu, false, 0, true); stop(); } function frame11(){ secondsUsed = 0; colorProperties = new Array(16416705, 16094470, 8701998, 7943053); initSinCosTables(); shapesUsed = 0; whiteTint = new Color(); whiteTint.setTint(0xFFFFFF, 1); noTint = new Color(); cursor = new Point(); cursorMC = new Cursor(); cursorMC.mouseEnabled = false; newBodyPos = new Point(); inGameUI = new InGameUI(); inGameSuperUI = new InGameSuperUI(); initInGameUI(); initializeLevel(pickLevel(Globals.currentLevel)); stop(); CRAYON_SPACE = 3; crayonBrushes = [new Brush1(1, 1), new Brush2(1, 1), new Brush3(1, 1), new Brush4(1, 1)]; } public function handleKeyDown(_arg1:KeyboardEvent){ var _local2:String; _local2 = String.fromCharCode(_arg1.charCode); if ((((((_local2 == "a")) || ((_local2 == "A")))) && (!(drawing)))){ Globals.pointerMode = Globals.ERASER_MODE; } else { if ((((((_local2 == "d")) || ((_local2 == "D")))) && (!(drawing)))){ Globals.pointerMode = Globals.HINGE_MODE; } else { if ((((((_local2 == "s")) || ((_local2 == "S")))) && (!(drawing)))){ Globals.pointerMode = Globals.PIN_MODE; } else { if ((((((_local2 == "w")) || ((_local2 == "W")))) && (!(drawing)))){ Globals.pointerMode = Globals.PUSH_MODE; }; }; }; }; } function frame12(){ stop(); } public function connectedToPinned(_arg1:b2Body):Boolean{ var _local2:Array; var _local3:b2JointEdge; _local2 = new Array(); _local2.push(_arg1); if (_arg1.m_userData.pin){ return (true); }; if (_arg1.m_userData.canPin){ _local3 = _arg1.GetJointList(); while (_local3 != null) { if (_local3.other.m_userData.pin){ return (true); }; if (connectedToPinned2(_local3.other, _local2)){ return (true); }; _local3 = _local3.next; }; }; return (false); } function frame1(){ stop(); logoTimer = new Timer(3000, 1); logoTimer.start(); logoTimer.addEventListener(TimerEvent.TIMER_COMPLETE, fgotopreloader, false, 0, true); } function frame2(){ stop(); CPMStarContentSpotID = "451QFBED252F"; ad = new AdLoader(CPMStarContentSpotID); adBox.addChild(ad); bubble_logo.addEventListener(MouseEvent.CLICK, bubbleboxLogoLink, false, 0, true); TransitionManager.start(this, {type:Fade, direction:Transition.IN}); addEventListener(Event.ENTER_FRAME, loadProgress, false, 0, true); minimumTime = (10 * 1000); startTime = getTimer(); bar_init_x = loadingbar.loadingbarmask.x; movieBytesTotal = this.root.loaderInfo.bytesTotal; } function frame4(){ stop(); gotoAndStop("premenu"); } function frame5(){ stop(); Globals.music2 = new Chapter1(); Globals.startMusic(); stage.frameRate = 30; Globals.savedData = SharedObject.getLocal("magicPen2"); if (!Globals.savedData.data.levelScores){ Globals.savedData.data.levelScores = new Array((Globals.numLevels - 1)); Globals.savedData.data.hasWon = false; Globals.savedData.data.bestScore = 0; i = 0; while (i < (Globals.numLevels - 1)) { Globals.savedData.data.levelScores[i] = -1; i++; }; }; gotoAndStop("menu"); } function frame8(){ letsplay.addEventListener(MouseEvent.CLICK, startGame, false, 0, true); stop(); } function frame6(){ stop(); b_Red.addEventListener(MouseEvent.CLICK, fplay, false, 0, true); b_White.addEventListener(MouseEvent.CLICK, foptions, false, 0, true); b_Blue.addEventListener(MouseEvent.CLICK, fcredits, false, 0, true); crayonLink.addEventListener(MouseEvent.CLICK, listenCrayonLink, false, 0, true); musicLink.addEventListener(MouseEvent.CLICK, listenMusicLink, false, 0, true); } public function resetBola(){ var _local1:int; if (Globals.gameState == Globals.GAME_PLAY){ destroyJoints(bola.m_body); level.m_world.DestroyBody(bola.m_body); bola.m_body = null; level.removeChild(bola); if ((bola is Bolita)){ bola = new Bolita(); } else { bola = new Cajita(); }; level.addChild(bola); bola.createBody(); bola.m_body.SetXForm(new b2Vec2(bolaStart.x, bolaStart.y), 0); bola.m_body.m_angularVelocity = 0; bola.m_body.m_linearVelocity.Set(0, 0); bola.m_body.m_torque = 0; bola.m_body.m_force.Set(0, 0); _local1 = 0; _local1 = 0; while (_local1 < estrellasOrigen.length) { if (estrellas.indexOf(estrellasOrigen[_local1]) == -1){ level.addChild(estrellasOrigen[_local1]); estrellasOrigen[_local1].m_body.SetXForm(posicionEstrellas[_local1][0], posicionEstrellas[_local1][1]); estrellasOrigen[_local1].createBody(); }; _local1++; }; estrellas = new Array(); _local1 = 0; while (_local1 < estrellasOrigen.length) { estrellas.push(estrellasOrigen[_local1]); _local1++; }; }; } function frame9(){ linksXRow = 7; linkList = []; refreshLinks(); stop(); mp1_link.addEventListener(MouseEvent.CLICK, bubbleboxMP1, false, 0, true); } function frame3(){ removeChild(this.contenedor); gotoAndStop("sponsor_logo"); stop(); } function frame13(){ if (Globals.soundChannel){ bu_OMusic.gotoAndStop("on"); } else { bu_OMusic.gotoAndStop("off"); }; quality = 1; b_back_options.addEventListener(MouseEvent.CLICK, backToMenu, false, 0, true); bu_OMusic.addEventListener(MouseEvent.MOUSE_OVER, f2MouseOverMusicButton, false, 0, true); bu_OMusic.addEventListener(MouseEvent.MOUSE_OUT, f2MouseOffMusicButton, false, 0, true); bu_OMusic.addEventListener(MouseEvent.CLICK, f2toggleMusic, false, 0, true); bu_OTutorial.addEventListener(MouseEvent.MOUSE_OVER, f2MouseOverTutorialButton, false, 0, true); bu_OTutorial.addEventListener(MouseEvent.MOUSE_OUT, f2MouseOffTutorialButton, false, 0, true); bu_OTutorial.addEventListener(MouseEvent.CLICK, f2toggleTutorial, false, 0, true); bu_OQuality.addEventListener(MouseEvent.MOUSE_OVER, f2MouseOverQualityButton, false, 0, true); bu_OQuality.addEventListener(MouseEvent.MOUSE_OUT, f2MouseOffQualityButton, false, 0, true); bu_OQuality.addEventListener(MouseEvent.CLICK, f2toggleQuality, false, 0, true); stop(); } public function removeFigura(_arg1:MovieClip){ if (_arg1.figura != null){ _arg1.removeChild(_arg1.figura); _arg1.figura = null; }; } function frame7(){ stop(); input_name.restrict = "A-Za-z0-9"; input_name.addEventListener(TextEvent.TEXT_INPUT, name_listener, false, 0, true); } public function clearLS(){ var _local1:LevelLink; for each (_local1 in linkList) { _local1.removeEventListener(MouseEvent.CLICK, selectLevel); }; linkList = []; removeChild(links); bu_FP.removeEventListener(MouseEvent.CLICK, selectFreePlay); mp1_link.removeEventListener(MouseEvent.CLICK, bubbleboxMP1); links = null; } public function getNextGroup():int{ lastGroup = (lastGroup - 1); return (lastGroup); } public function fplay(_arg1:Event){ Globals.currentLevel = 1; if (!Globals.savedData.data.playedBefore){ Globals.savedData.data.playedBefore = true; gotoAndStop("getName"); } else { gotoAndStop("selectLevel"); }; } public function f2MouseOffMusicButton(_arg1:Event){ if (Globals.soundChannel){ bu_OMusic.gotoAndStop("on"); } else { bu_OMusic.gotoAndStop("off"); }; } public function scrollLevel(){ if (mouseX > 590){ level.x = (level.x - SCROLL_SPEED); } else { if (mouseX < 50){ level.x = (level.x + SCROLL_SPEED); }; }; if (level.x > 0){ level.x = 0; } else { if (level.x < ((-(level.getRect(level).right) + 640) + 80)){ level.x = ((-(level.getRect(level).right) + 640) + 80); }; }; } public function initInGameUI(){ uiSwitchState = UI_ALL; inGameUI.main.help_button.addEventListener(MouseEvent.CLICK, fhelp_button, false, 0, true); inGameUI.main.music_button.addEventListener(MouseEvent.CLICK, ftoggleMusic, false, 0, true); inGameUI.main.music_button.addEventListener(MouseEvent.MOUSE_OVER, fMouseOverMusicButton, false, 0, true); inGameUI.main.music_button.addEventListener(MouseEvent.MOUSE_OUT, fMouseOffMusicButton, false, 0, true); inGameUI.main.selectLevel_button.addEventListener(MouseEvent.CLICK, fingame_levelSelect, false, 0, true); inGameSuperUI.uiSwitch_button.addEventListener(MouseEvent.CLICK, fuiSwitch, false, 0, true); } public function update(_arg1:Event){ switch (Globals.gameState){ case Globals.GAME_PLAY: contactListener.cleanOverlapping(); updatePhysics(); destroyOverlapping(); if (pushing){ updatePush(); pushBall(); } else { if (drawing){ updatePush2(); drawLine(); } else { updatePush2(); if (newBody){ level.removeChild(newBody); newBody = null; }; }; }; updateCursor(); checkEstrellas(); deleteFiguras(); secondsUsed = (secondsUsed + (1 / 30)); break; case Globals.GAME_PAUSED: break; case Globals.GAME_RESUME: customCursorOn(); Globals.gameState = Globals.lastGameState; stage.focus = level; break; case Globals.GAME_RESTART: initializeLevel(pickLevel(Globals.currentLevel)); break; case Globals.GAME_LEVELCOMPLETE: updatePhysics(); if (drawing){ drawLine(); } else { if (newBody){ level.removeChild(newBody); newBody = null; }; }; updateCursor(); deleteFiguras(); break; case Globals.GAME_BACK_TO_MENU: inGameGoBackToMenu(); break; }; } public function checkCircleBounds(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ var _local4:b2AABB; var _local5:int; var _local6:Array; var _local7:int; var _local8:b2Vec2; var _local9:int; var _local10:int; _local4 = new b2AABB(); _local4.lowerBound.Set((_arg1 - _arg3), (_arg2 - _arg3)); _local4.upperBound.Set((_arg1 + _arg3), (_arg2 + _arg3)); _local5 = 10; _local6 = new Array(); _local7 = level.m_world.Query(_local4, _local6, _local5); _local8 = new b2Vec2(); _local9 = 0; while (_local9 < _local7) { if (!((connectedToPinned(_local6[_local9].m_body)) || (_local6[_local9].m_body.m_userData.drawable))){ _local10 = 0; while (_local10 < CIRCLE_PRECISION) { _local8.x = (_arg1 + (_arg3 * sinTable[_local10])); _local8.y = (_arg2 - (_arg3 * cosTable[_local10])); if (_local6[_local9].TestPoint(_local6[_local9].GetBody().GetXForm(), _local8)){ return (true); }; _local10++; }; }; _local9++; }; return (false); } public function bubbleboxMP1(_arg1:Event){ var _local2:URLRequest; _local2 = new URLRequest("http://www.bubblebox.com/clickreg.php?type=gamestats&id=1285&subid=magicpen1link&action=magicpen1"); navigateToURL(_local2); } public function propagateGroup(_arg1, _arg2, _arg3):void{ var _local4:b2FilterData; var _local5:b2JointEdge; _arg3.push(_arg1); _local4 = _arg1.GetShapeList().m_filter; _local4.groupIndex = _arg2; level.m_world.Refilter(_arg1.GetShapeList()); _local5 = _arg1.GetJointList(); while (_local5 != null) { if (_arg3.indexOf(_local5.other) == -1){ propagateGroup(_local5.other, _arg2, _arg3); }; _local5 = _local5.next; }; } public function selectFreePlay(_arg1:MouseEvent){ Globals.currentLevel = 0; clearLS(); gotoAndStop("startGame"); } public function f2MouseOffTutorialButton(_arg1:Event){ bu_OTutorial.gotoAndStop("on"); } public function updatePush2(){ if (firstPush > 0){ firstPush--; }; } public function siteLock(_arg1:Array):Boolean{ var _local2:Boolean; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; _local2 = true; _local3 = this.root.loaderInfo.url; _local4 = (_local3.indexOf("://") + 3); _local5 = _local3.indexOf("/", _local4); _local6 = _local3.substring(_local4, _local5); for each (_local7 in _arg1) { if (_local6.indexOf(_local7) != -1){ return (false); }; }; return (true); } public function loadProgress(_arg1:Event){ var _local2:int; var _local3:int; var _local4:int; _local2 = this.root.loaderInfo.bytesLoaded; _local3 = int(((_local2 * loadingbar.loadingbarmask.width) / movieBytesTotal)); _local4 = (getTimer() - startTime); _local3 = Math.min(_local3, ((Number(_local4) / minimumTime) * loadingbar.loadingbarmask.width)); loadingbar.loadingbarmask.x = (bar_init_x + _local3); if ((((_local2 >= movieBytesTotal)) && ((_local4 >= minimumTime)))){ bubble_logo.removeEventListener(MouseEvent.CLICK, bubbleboxLogoLink); removeEventListener(Event.ENTER_FRAME, loadProgress); removeChild(adBox); gotoAndStop("contenedor"); }; } public function updatePhysics(){ level.Update(); } public function colisionEstrella(){ var _local1:MWBody; var _local2:int; var _local3:MovieClip; _local1 = contactListener.estrellitaContact; if (_local1){ contactListener.estrellitaContact = null; _local2 = estrellas.indexOf(_local1); if (_local2 >= 0){ level.m_world.DestroyBody(_local1.m_body); estrellas.splice(_local2, 1); _local3 = new Puff(); _local3.x = _local1.x; _local3.y = _local1.y; level.addChild(_local3); level.removeChild(_local1); }; }; } public function fuiSwitch(_arg1:Event){ switch (uiSwitchState){ case UI_ALL: uiSwitchState = UI_MAIN; break; case UI_MAIN: uiSwitchState = UI_NONE; break; case UI_NONE: uiSwitchState = UI_ALL; break; }; setUIVisibility(); } public function pointInsideBody(_arg1:Point, _arg2:b2Body){ var _local3:b2Vec2; var _local4:b2Shape; _local3 = new b2Vec2(_arg1.x, _arg1.y); _local4 = _arg2.GetShapeList(); while (_local4 != null) { if (_local4.TestPoint(_arg2.GetXForm(), _local3)){ return (true); }; _local4 = _local4.m_next; }; return (false); } public function makeLine2(_arg1:Point, _arg2:Point):Array{ var _local3:Array; var _local4:Point; _local3 = new Array(); _local3.push(_arg1); _local3.push(_arg2); _local4 = new Point(-((_arg2.y - _arg1.y)), (_arg2.x - _arg1.x)); _local4.normalize((10 / Globals.SCALE)); _local3.push(new Point((_arg2.x + _local4.x), (_arg2.y + _local4.y))); _local3.push(new Point((_arg1.x + _local4.x), (_arg1.y + _local4.y))); return (_local3); } public function deleteFiguras(){ var _local1:MWBody; var _local2:int; _local2 = 0; while (_local2 < Globals.destroyList.length) { _local1 = MWBody(Globals.destroyList[_local2]); if (_local1 == bola){ resetBola(); } else { destroyJoints(_local1.m_body); level.m_world.DestroyBody(_local1.m_body); _local1.m_body = null; level.removeChild(_local1); }; _local2++; }; Globals.destroyList = new Array(); } public function fcredits(_arg1:Event){ gotoAndStop("credits"); } public function f2MouseOverTutorialButton(_arg1:Event){ bu_OTutorial.gotoAndStop("on_over"); } public function updateCursor(){ var _local1:Number; var _local2:Number; _local1 = mouseX; _local2 = mouseY; if (_local1 < 0){ _local1 = 0; } else { if (_local1 > 790){ _local1 = 790; }; }; if (_local2 < 0){ _local2 = 0; } else { if (_local2 > 520){ _local2 = 520; }; }; cursor.x = (_local1 / Number(Globals.SCALE)); cursor.y = (_local2 / Number(Globals.SCALE)); cursorMC.x = _local1; cursorMC.y = _local2; if (pushing){ cursorMC.viento.visible = true; } else { cursorMC.viento.visible = false; }; switch (Globals.pointerMode){ case Globals.CRAYON_MODE: setCursorLabel("crayon"); cursorMC.rotation = -((((1320 - _local1) - (520 - _local2)) / 12)); break; case Globals.ERASER_MODE: setCursorLabel("borrador"); cursorMC.rotation = -((((1320 - _local1) - (520 - _local2)) / 12)); break; case Globals.HINGE_MODE: setCursorLabel("hinge"); cursorMC.rotation = 0; break; case Globals.PIN_MODE: setCursorLabel("pin"); cursorMC.rotation = 0; break; case Globals.PUSH_MODE: setCursorLabel("push"); cursorMC.rotation = (Math.atan2((bola.y - cursorMC.y), (bola.x - cursorMC.x)) * Utils.TO_DEG); break; }; } public function eraseBody(_arg1:Number, _arg2:Number):Boolean{ var _local3:b2Body; var _local4:*; _local4 = new Point(_arg1, _arg2); _local3 = getLastBodyAtPoint(_local4); if (_local3){ if (_local3.m_userData.canDestroy){ destroyJoints(_local3); level.m_world.DestroyBody(_local3); _local3.m_userData.m_body = null; level.removeChild(_local3.m_userData); return (true); }; }; return (false); } public function f2MouseOffQualityButton(_arg1:Event){ switch (quality){ case 1: bu_OQuality.gotoAndStop("high"); break; case 2: bu_OQuality.gotoAndStop("medium"); break; case 3: bu_OQuality.gotoAndStop("low"); break; }; } public function refreshLinks(){ var _local1:LevelLink; var _local2:int; if (links){ removeChild(links); }; links = new MovieClip(); _local2 = 1; while (_local2 < Globals.numLevels) { _local1 = new LevelLink(); _local1.levelname.text = ("" + _local2); _local1.y = (Math.floor(((_local2 - 1) / linksXRow)) * 60); _local1.x = (((_local2 - 1) % linksXRow) * 80); _local1.addEventListener(MouseEvent.CLICK, selectLevel, false, 0, true); links.addChild(_local1); linkList.push(_local1); if (Globals.savedData.data.levelScores[(_local2 - 1)] >= 0){ _local1.gotoAndStop("check"); }; _local2++; }; bu_FP.addEventListener(MouseEvent.CLICK, selectFreePlay, false, 0, true); links.y = 122; links.x = 160; addChild(links); } public function handleMouseDown(_arg1:MouseEvent){ var _local2:Point; var _local3:Boolean; var _local4:Array; var _local5:b2Body; var _local6:MWBody; var _local7:b2Body; var _local8:int; var _local9:Pin; var _local10:b2Body; var _local11:b2Body; var _local12:b2Body; var _local13:Boolean; var _local14:Bitmap; var _local15:Pin; if (drawing){ endDrawing(); if (newBody){ level.removeChild(newBody); newBody = null; }; }; switch (Globals.pointerMode){ case Globals.ERASER_MODE: _local2 = new Point((Number(cursor.x) * Globals.SCALE), (Number(cursor.y) * Globals.SCALE)); _local3 = false; _local4 = level.getObjectsUnderPoint(_local2); _local8 = 0; while (_local8 < _local4.length) { if ((_local4[_local8].parent is Pin)){ _local9 = Pin(_local4[_local8].parent); if (_local9.m_joint){ _local10 = _local9.m_joint.GetBody1(); _local11 = _local9.m_joint.GetBody2(); level.m_world.DestroyJoint(_local9.m_joint); divideGroups(_local10, _local11); level.removeChild(_local9); } else { MWBody(_local9.parent).pin = null; _local9.parent.removeChild(_local9); }; _local3 = true; break; }; _local8++; }; if (!_local3){ _local13 = false; if (!eraseBody(cursor.x, cursor.y)){ }; }; break; case Globals.CRAYON_MODE: _local5 = getBodyAtPoint(new Point(cursor.x, cursor.y)); if ((((((_local5 == null)) || (connectedToPinned(_local5)))) || (_local5.m_userData.drawable))){ drawing = true; drawingCircle = false; circleRadius = MIN_CIRCLE_RADIUS; newBody = new MovieClip(); _local14 = new Bitmap(new BitmapData(800, 520, true, 0), "never"); newBody.figura = _local14; _local14.x = (-(cursor.x) * Globals.SCALE); _local14.y = (-(cursor.y) * Globals.SCALE); newBody.addChild(_local14); puntosFigura = new Array(); connectedPinned = new Array(); perimeter = 0; level.addChild(newBody); newBody.graphics.moveTo(0, 0); lastPoint.x = 0; lastPoint.y = 0; newBodyPos.x = cursor.x; newBodyPos.y = cursor.y; newBody.x = (cursor.x * Globals.SCALE); newBody.y = (cursor.y * Globals.SCALE); puntosFigura.push(lastPoint.clone()); currentColorProperty++; if (currentColorProperty == colorProperties.length){ currentColorProperty = 0; }; inGameSuperUI.ui_barra.visible = true; inGameSuperUI.ui_maskbarra.scaleX = 1; circleTimer = new Timer(500, 1); circleTimer.addEventListener(TimerEvent.TIMER_COMPLETE, startCircle, false, 0, true); circleTimer.start(); }; break; case Globals.HINGE_MODE: case Globals.PIN_MODE: _local7 = getLastBodyAtPoint(new Point(cursor.x, cursor.y)); if (_local7){ if (_local7.m_userData.canPin){ if (!_local7.m_userData.pin){ _local6 = _local7.m_userData; _local15 = new Pin(); _local15.useStatic = true; _local15.useGround = false; if (Globals.pointerMode == Globals.PIN_MODE){ b2RevoluteJointDef(_local15.jd).enableLimit = true; b2RevoluteJointDef(_local15.jd).lowerAngle = 0; b2RevoluteJointDef(_local15.jd).upperAngle = 0; _local15.gotoAndStop("pin"); } else { _local15.gotoAndStop("hinge"); }; _local6.addChild(_local15); _local15.x = _local6.mouseX; _local15.y = _local6.mouseY; _local6.pin = _local15; pinnedObjects.push(_local6); } else { _local6 = _local7.m_userData; _local15 = _local6.pin; _local15.useStatic = true; _local15.useGround = false; if (Globals.pointerMode == Globals.PIN_MODE){ b2RevoluteJointDef(_local15.jd).enableLimit = true; b2RevoluteJointDef(_local15.jd).lowerAngle = 0; b2RevoluteJointDef(_local15.jd).upperAngle = 0; _local15.gotoAndStop("pin"); } else { _local15.gotoAndStop("hinge"); }; _local15.x = _local6.mouseX; _local15.y = _local6.mouseY; }; }; }; break; case Globals.PUSH_MODE: pushing = true; break; }; } public function inGameGoBackToMenu(){ if (stage.contains(inGameUI)){ customCursorOff(); }; if (level){ removeListeners(); stage.removeChild(level); level = null; }; removeUIListeners(); gotoAndStop("menu"); } public function checkNearToPin(_arg1:b2Body){ if ((((((puntosFigura.length > 1)) && (_arg1.m_userData.pin))) && ((connectedPinned.indexOf(_arg1) == -1)))){ connectedPinned.push(_arg1); }; } public function destroyJoints(_arg1:b2Body){ var _local2:b2Joint; var _local3:b2JointEdge; var _local4:b2Body; var _local5:b2Body; _local3 = _arg1.GetJointList(); while (_local3) { _local2 = _local3.joint; _local3 = _local3.next; _local4 = _local2.GetBody1(); _local5 = _local2.GetBody2(); level.m_world.DestroyJoint(_local2); divideGroups(_local4, _local5); level.removeChild(_local2.GetUserData()); }; } public function listenMusicLink(_arg1:Event):void{ var _local2:URLRequest; _local2 = new URLRequest("http://www.tunecore.com/music/magicpen"); navigateToURL(_local2, "_blank"); } public function fhelp_button(_arg1:Event){ var _local2:MovieClip; if (Globals.gameState == Globals.GAME_PLAY){ Globals.lastGameState = Globals.gameState; Globals.gameState = Globals.GAME_PAUSED; _local2 = new inGameHelp(); stage.addChild(_local2); customCursorOff(); }; } public function customCursorOff(){ stage.removeChild(inGameUI); stage.removeChild(inGameSuperUI); stage.removeChild(cursorMC); Mouse.show(); } public function initializeLevel(_arg1:MWLevel){ var _local2:*; var _local3:b2Vec2; var _local4:int; var _local5:MovieClip; var _local6:int; lastGroup = 0; if (level){ removeListeners(); stage.removeChild(level); level = null; }; Globals.gamePaused = false; Globals.pointerMode = Globals.CRAYON_MODE; currentColorProperty = 0; newBody = null; newBodyPos = new Point(); level = _arg1; if (level.i_bolita){ bola = level.i_bolita; } else { if (level.i_cajita){ bola = level.i_cajita; }; }; bola.bodyDef.linearDamping = 0.05; bola.bodyDef.angularDamping = 0.1; bolaStart = new Point((bola.x / Globals.SCALE), (bola.y / Globals.SCALE)); drawing = false; pushing = false; firstPush = 0; drawingCircle = false; pinnedObjects = new Array(); stage.addChild(level); _local2 = level.getRect(level); _local3 = new b2Vec2(0, 8); _local4 = 100; level.createLevel(((1200 / Globals.SCALE) + _local4), ((-400 / Globals.SCALE) - _local4), ((920 / Globals.SCALE) + _local4), (-400 - _local4), _local3, true, Globals.SCALE, 10, (1 / 30)); if (Globals.currentLevel == 0){ inGameSuperUI.levelnum.visible = false; } else { inGameSuperUI.levelnum.visible = true; }; inGameSuperUI.levelnum.textfield.textColor = 0; inGameUI.main.help_button.transform.colorTransform = noTint; inGameUI.main.music_button.transform.colorTransform = noTint; inGameUI.main.selectLevel_button.transform.colorTransform = noTint; inGameSuperUI.levelnum.textfield.text = (" " + Globals.currentLevel); setUIVisibility(); _local6 = 0; while (_local6 < level.numChildren) { if ((level.getChildAt(_local6) is b2iBody)){ _local5 = MovieClip(level.getChildAt(_local6)); _local5.createBody(); }; _local6++; }; _local6 = 0; while (_local6 < level.numChildren) { if ((level.getChildAt(_local6) is b2iJoint)){ _local5 = MovieClip(level.getChildAt(_local6)); _local5.createJoint(); }; _local6++; }; bola.m_body.AllowSleeping(false); estrellas = new Array(); estrellasOrigen = new Array(); posicionEstrellas = new Array(); puntosFigura = new Array(); perimeter = 0; shapesUsed = 0; secondsUsed = 0; lastPoint = new Point(0, 0); findStars(); stage.addEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, handleMouseUp, false, 0, true); stage.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown, false, 0, true); stage.addEventListener(KeyboardEvent.KEY_UP, handleKeyUp, false, 0, true); addEventListener(Event.ENTER_FRAME, update, false, 0, true); customCursorOn(); Globals.gameState = Globals.GAME_PLAY; level.focusRect = false; stage.focus = level; i_fondo.gotoAndStop(level.getFondo()); level.m_world.SetBoundaryListener(new BoundaryListener()); Globals.destroyList = new Array(); contactListener = new MPContactListener(); contactListener.estrellitaContact = null; level.m_world.SetContactListener(contactListener); } public function destroyOverlapping(){ var _local1:b2Body; var _local2:Object; for (_local2 in contactListener.overlappingBodies) { _local1 = b2Body(_local2); if (MWBody(_local1.m_userData).canDestroy){ destroyJoints(_local1); }; }; } public function drawLn(_arg1:Point, _arg2:Point, _arg3:BitmapData){ var _local4:BitmapData; var _local5:Matrix; var _local6:Number; var _local7:Point; var _local8:int; var _local9:ColorTransform; var _local10:Number; var _local11:Number; _local5 = new Matrix(); _local6 = Math.atan2((_arg2.y - _arg1.y), (_arg2.x - _arg1.x)); _local8 = 0; _local9 = new ColorTransform(); _local9.color = colorProperties[currentColorProperty]; _local10 = (CRAYON_SPACE / Point.distance(_arg1, _arg2)); _local11 = 0; while (_local11 <= 1) { _local5.identity(); _local4 = crayonBrushes[_local8]; _local7 = Point.interpolate(_arg1, _arg2, _local11); _local5.tx = _local7.x; _local5.ty = _local7.y; _arg3.draw(_local4, _local5, _local9); _local11 = (_local11 + _local10); _local8++; _local8 = (_local8 % 4); }; } public function checkPinnedObjects(_arg1:MWBody){ var _local2:Array; var _local3:Array; var _local4:int; _local3 = new Array(); _local4 = 0; while (_local4 < pinnedObjects.length) { if (((pinnedObjects[_local4].m_body) && (pinnedObjects[_local4].pin))){ if (checkPin(pinnedObjects[_local4], _arg1)){ pinnedObjects[_local4].pin = null; } else { _local3.push(pinnedObjects[_local4]); }; }; _local4++; }; pinnedObjects = _local3; } public function initSinCosTables(){ var _local1:int; sinTable = new Array(CIRCLE_PRECISION); cosTable = new Array(CIRCLE_PRECISION); _local1 = 1; while (_local1 <= CIRCLE_PRECISION) { sinTable[(_local1 - 1)] = Math.sin(((_local1 * 360) / CIRCLE_PRECISION)); cosTable[(_local1 - 1)] = Math.cos(((_local1 * 360) / CIRCLE_PRECISION)); _local1++; }; } public function f2toggleQuality(_arg1:Event){ quality++; if (quality > 3){ quality = 1; }; switch (quality){ case 1: stage.quality = StageQuality.HIGH; bu_OQuality.gotoAndStop("high_over"); break; case 2: stage.quality = StageQuality.MEDIUM; bu_OQuality.gotoAndStop("medium_over"); break; case 3: stage.quality = StageQuality.LOW; bu_OQuality.gotoAndStop("low_over"); break; }; } public function handleWheel(_arg1:MouseEvent){ if (_arg1.delta > 0){ currentColorProperty--; if (currentColorProperty < 0){ currentColorProperty = (colorProperties.length - 1); }; } else { if (_arg1.delta < 0){ currentColorProperty++; if (currentColorProperty >= colorProperties.length){ currentColorProperty = 0; }; }; }; } public function removeListeners(){ stage.removeEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown); stage.removeEventListener(MouseEvent.MOUSE_UP, handleMouseUp); stage.removeEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown); stage.removeEventListener(KeyboardEvent.KEY_UP, handleKeyUp); removeEventListener(Event.ENTER_FRAME, update); } public function f2MouseOverQualityButton(_arg1:Event){ switch (quality){ case 1: bu_OQuality.gotoAndStop("high_over"); break; case 2: bu_OQuality.gotoAndStop("medium_over"); break; case 3: bu_OQuality.gotoAndStop("low_over"); break; }; } public function fTimerBackToMenu(_arg1:Event){ timerBackToMenu = null; if (level){ customCursorOff(); removeListeners(); stage.removeChild(level); level = null; }; gotoAndStop("menu"); } public function lastValidPoint(_arg1:Point, _arg2:Point):Point{ var _local3:Point; var _local4:Point; var _local5:Point; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Point; var _local10:b2Body; _local3 = new Point((_arg1.x + newBodyPos.x), (_arg1.y + newBodyPos.y)); _local4 = new Point((_arg2.x + newBodyPos.x), (_arg2.y + newBodyPos.y)); _local5 = null; _local6 = (5 / Globals.SCALE); _local7 = Math.min((1 / (Point.distance(_arg1, _arg2) / _local6)), 1); _local8 = _local7; while (_local8 <= 1) { _local9 = Point.interpolate(_local4, _local3, _local8); _local10 = getBodyAtPoint(_local9); if (((((!((_local10 == null))) && (!(connectedToPinned(_local10))))) && (!(_local10.m_userData.drawable)))){ return (_local5); }; if (_local10){ checkNearToPin(_local10); }; _local5 = _local9; _local8 = (_local8 + _local7); }; return (_local4); } public function setUIVisibility(){ switch (uiSwitchState){ case UI_MAIN: inGameUI.tips.visible = false; inGameUI.main.visible = true; break; case UI_NONE: inGameUI.tips.visible = false; inGameUI.main.visible = false; break; case UI_ALL: inGameUI.tips.visible = true; inGameUI.main.visible = true; break; }; } public function backToMenu(_arg1:Event){ gotoAndStop("menu"); } public function findStars(){ var _local1:MovieClip; var _local2:int; _local2 = 0; while (_local2 < level.numChildren) { if ((((level.getChildAt(_local2) is Estrellita)) || ((level.getChildAt(_local2) is EstrellitaObj)))){ _local1 = MovieClip(level.getChildAt(_local2)); estrellas.push(_local1); estrellasOrigen.push(_local1); posicionEstrellas.push([new b2Vec2((_local1.x / Globals.SCALE), (_local1.y / Globals.SCALE)), (_local1.rotation * 0.017453293)]); }; _local2++; }; } public function f2toggleTutorial(_arg1:Event){ var _local2:MovieClip; _local2 = new inGameHelp(); stage.addChild(_local2); } public function customCursorOn(){ stage.addChild(inGameUI); stage.addChild(inGameSuperUI); stage.addChild(cursorMC); Mouse.hide(); } public function fMouseOverMusicButton(_arg1:Event){ if (Globals.soundChannel){ inGameUI.main.music_button.gotoAndStop("on_over"); } else { inGameUI.main.music_button.gotoAndStop("off_over"); }; } public function getLastBodyAtPoint(_arg1:Point):b2Body{ var _local2:b2AABB; var _local3:b2Vec2; var _local4:int; var _local5:Array; var _local6:int; var _local7:b2Body; var _local8:uint; var _local9:int; var _local10:Boolean; _local2 = new b2AABB(); _local2.lowerBound.Set((_arg1.x - 0.0005), (_arg1.y - 0.0005)); _local2.upperBound.Set((_arg1.x + 0.0005), (_arg1.y + 0.0005)); _local3 = new b2Vec2(_arg1.x, _arg1.y); _local4 = 10; _local5 = new Array(); _local6 = level.m_world.Query(_local2, _local5, _local4); _local7 = null; _local8 = 0; _local9 = 0; while (_local9 < _local6) { _local10 = _local5[_local9].TestPoint(_local5[_local9].GetBody().GetXForm(), _local3); if (_local10){ if (_local5[_local9].m_body.m_userData.id > _local8){ _local8 = _local5[_local9].m_body.m_userData.id; _local7 = _local5[_local9].m_body; }; }; _local9++; }; return (_local7); } public function fMouseOffMusicButton(_arg1:Event){ if (Globals.soundChannel){ inGameUI.main.music_button.gotoAndStop("on"); } else { inGameUI.main.music_button.gotoAndStop("off"); }; } public function endDrawing(_arg1:Boolean=true){ var _local2:b2BodyDef; var _local3:MWBody; var _local4:b2CircleDef; var _local5:Array; var _local6:Array; var _local7:b2PolygonDef; var _local8:int; var _local9:b2BodyDef; var _local10:MWBody; drawing = false; inGameSuperUI.ui_barra.visible = false; circleTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, startCircle); circleTimer = null; if (level.m_world.m_bodyCount < 200){ if (drawingCircle){ _local2 = new b2BodyDef(); _local2.position = new b2Vec2(newBodyPos.x, newBodyPos.y); _local2.linearDamping = LINEAR_DAMPING; _local2.angularDamping = ANGULAR_DAMPING; _local3 = new MWBody(); _local3.m_body = level.m_world.CreateBody(_local2); _local3.m_body.m_userData = _local3; _local4 = new b2CircleDef(); _local4.radius = circleRadius; _local4.density = DRAWING_DENSITY; _local4.friction = DRAWING_FRICTION; _local4.restitution = DRAWING_RESTITUTION; _local4.isSensor = false; _local4.filter.groupIndex = 0; _local4.filter.categoryBits = 1; _local4.filter.maskBits = 0xFFFF; _local3.m_body.CreateShape(_local4); _local3.m_body.SetMassFromShapes(); _local3.x = newBody.x; _local3.y = newBody.y; drawCircle(_local3, (circleRadius * Globals.SCALE)); level.addChild(_local3); level.m_world.Step(0, 1); checkPinnedObjects(_local3); shapesUsed++; } else { if ((((puntosFigura.length > 1)) && (_arg1))){ agregarHingesAFigura(); if (puntosFigura.length == 2){ _local5 = makeLine(puntosFigura[0], puntosFigura[1]); } else { _local5 = convexHull(puntosFigura); _local6 = revisarLinea(_local5); if (_local6){ _local5 = _local6; }; }; if (_local5){ _local7 = new b2PolygonDef(); _local7.vertexCount = _local5.length; _local8 = 0; while (_local8 < _local5.length) { _local7.vertices[_local8].Set(_local5[_local8].x, _local5[_local8].y); _local8++; }; _local7.density = DRAWING_DENSITY; _local7.friction = DRAWING_FRICTION; _local7.restitution = DRAWING_RESTITUTION; _local7.isSensor = false; _local7.filter.groupIndex = 0; _local7.filter.categoryBits = 1; _local7.filter.maskBits = 0xFFFF; _local9 = new b2BodyDef(); _local9.linearDamping = LINEAR_DAMPING; _local9.angularDamping = ANGULAR_DAMPING; _local9.position = new b2Vec2(newBodyPos.x, newBodyPos.y); _local10 = new MWBody(); _local10.m_body = level.m_world.CreateBody(_local9); _local10.m_body.m_userData = _local10; _local10.x = newBody.x; _local10.y = newBody.y; _local10.m_body.CreateShape(_local7); _local10.m_body.SetMassFromShapes(); drawPolygon(_local10, _local5); level.addChild(_local10); level.m_world.Step(0, 1); checkPinnedObjects(_local10); shapesUsed++; }; }; }; }; } public function convexHull(_arg1:Array){ var _local2:Array; var _local3:Point; for each (_local3 in _arg1) { _local3.x = (_local3.x * Globals.SCALE); _local3.y = (_local3.y * Globals.SCALE); }; _local2 = ConvexHull.grahamScan2D(_arg1).reverse(); for each (_local3 in _local2) { _local3.x = (_local3.x / Globals.SCALE); _local3.y = (_local3.y / Globals.SCALE); }; while (_local2.length > 64) { _local2.pop(); }; return (_local2); } public function fingame_levelSelect(_arg1:Event){ var _local2:InGameLevelSelect; if (Globals.gameState == Globals.GAME_PLAY){ Globals.lastGameState = Globals.gameState; Globals.gameState = Globals.GAME_PAUSED; _local2 = new InGameLevelSelect(); stage.addChild(_local2); customCursorOff(); }; } public function polyMin(_arg1:Array):Point{ var _local2:Number; var _local3:Number; var _local4:Point; _local2 = 0; _local3 = 0; for each (_local4 in _arg1) { _local2 = Math.min(_local2, _local4.x); _local3 = Math.min(_local3, _local4.y); }; return (new Point((_local2 * Globals.SCALE), (_local3 * Globals.SCALE))); } public function makeLine(_arg1:Point, _arg2:Point):Array{ var _local3:Array; if ((((_arg1.x < _arg2.x)) || ((((_arg1.x == _arg2.x)) && ((_arg1.y < _arg2.y)))))){ _local3 = makeLine2(_arg1, _arg2); } else { _local3 = makeLine2(_arg2, _arg1); }; return (_local3); } public function handleMouseUp(_arg1:MouseEvent){ if (pushing){ pushing = false; }; if (drawing){ endDrawing(); }; } public function ftoggleMusic(_arg1:Event){ if (Globals.soundChannel){ Globals.stopMusic(); inGameUI.main.music_button.gotoAndStop("off"); } else { Globals.startMusic(); inGameUI.main.music_button.gotoAndStop("on"); }; } public function bubbleboxLogoLink(_arg1:Event){ var _local2:URLRequest; _local2 = new URLRequest("http://www.bubblebox.com/clickreg.php?type=gamestats&id=1285&subid=logo"); navigateToURL(_local2); } public function f2toggleMusic(_arg1:Event){ if (Globals.soundChannel){ Globals.stopMusic(); bu_OMusic.gotoAndStop("off"); } else { Globals.startMusic(); bu_OMusic.gotoAndStop("on"); }; } public function removeUIListeners(){ inGameUI.main.help_button.removeEventListener(MouseEvent.CLICK, fhelp_button); inGameUI.main.music_button.removeEventListener(MouseEvent.CLICK, ftoggleMusic); inGameUI.main.music_button.removeEventListener(MouseEvent.MOUSE_OVER, fMouseOverMusicButton); inGameUI.main.music_button.removeEventListener(MouseEvent.MOUSE_OUT, fMouseOffMusicButton); inGameUI.main.selectLevel_button.removeEventListener(MouseEvent.CLICK, fingame_levelSelect); inGameSuperUI.uiSwitch_button.removeEventListener(MouseEvent.CLICK, fuiSwitch); } public function drawCircle(_arg1:MovieClip, _arg2:Number){ var _local3:BitmapData; var _local4:BitmapData; var _local5:int; var _local6:Number; var _local7:Matrix; var _local8:Number; var _local9:ColorTransform; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Bitmap; removeFigura(_arg1); _local3 = new BitmapData(((_arg2 * 2) + 10), ((_arg2 * 2) + 10), true, 0); _local5 = 0; _local6 = 0; _local7 = new Matrix(); _local8 = ((2 * CRAYON_SPACE) / (Math.PI * _arg2)); _local9 = new ColorTransform(); _local9.color = colorProperties[currentColorProperty]; _local12 = (Math.PI / 2); while (_local6 < _local12) { _local4 = crayonBrushes[_local5]; _local10 = (Math.cos(_local6) * _arg2); _local11 = (Math.sin(_local6) * _arg2); _local7.tx = (_local10 + _arg2); _local7.ty = (_local11 + _arg2); _local3.draw(_local4, _local7, _local9); _local7.tx = (-(_local10) + _arg2); _local3.draw(_local4, _local7, _local9); _local7.ty = (-(_local11) + _arg2); _local3.draw(_local4, _local7, _local9); _local7.tx = (_local10 + _arg2); _local3.draw(_local4, _local7, _local9); _local5++; _local5 = (_local5 % 4); _local6 = (_local6 + _local8); }; _local13 = new Bitmap(_local3, "never", true); _local13.x = (-(_arg2) - 3); _local13.y = (-(_arg2) - 3); _arg1.figura = _local13; _arg1.addChild(_local13); } public function checkEstrellas(){ colisionEstrella(); if (estrellas.length == 0){ Globals.gameState = Globals.GAME_LEVELCOMPLETE; endTimer = new Timer(1000, 1); endTimer.addEventListener(TimerEvent.TIMER_COMPLETE, endLevel, false, 0, true); endTimer.start(); }; } public function listenCrayonLink(_arg1:MouseEvent):void{ var _local2:URLRequest; _local2 = new URLRequest("http://www.crayonphysics.com/"); navigateToURL(_local2, "_blank"); } public function drawLine(){ var _local1:Point; var _local2:Number; var _local3:Number; var _local4:Point; var _local5:Point; if (drawingCircle){ if (circleRadius < MAX_CIRCLE_RADIUS){ circleRadius = (circleRadius + CIRCLE_AUGMENT); drawCircle(newBody, (circleRadius * Globals.SCALE)); inGameSuperUI.ui_maskbarra.scaleX = (1 - (circleRadius / MAX_CIRCLE_RADIUS)); if (checkCircleBounds(newBodyPos.x, newBodyPos.y, circleRadius)){ endDrawing(); }; } else { endDrawing(); }; } else { _local1 = new Point((cursor.x - newBodyPos.x), (cursor.y - newBodyPos.y)); _local1 = lastValidPoint(lastPoint, _local1); if (_local1 != null){ _local1.x = (_local1.x - newBodyPos.x); _local1.y = (_local1.y - newBodyPos.y); _local2 = Point.distance(lastPoint, _local1); _local3 = Point.distance(_local1, new Point(0, 0)); if ((((_local3 < CLOSE_DISTANCE)) && ((perimeter > MIN_PERIMETER)))){ _local4 = new Point(((lastPoint.x * Globals.SCALE) + newBody.x), ((lastPoint.y * Globals.SCALE) + newBody.y)); _local5 = new Point(newBody.x, newBody.y); drawLn(_local4, _local5, newBody.figura.bitmapData); endDrawing(); } else { if (_local2 > MIN_DISTANCE){ _local4 = new Point(((lastPoint.x * Globals.SCALE) + newBody.x), ((lastPoint.y * Globals.SCALE) + newBody.y)); _local5 = new Point(((_local1.x * Globals.SCALE) + newBody.x), ((_local1.y * Globals.SCALE) + newBody.y)); drawLn(_local4, _local5, newBody.figura.bitmapData); perimeter = (perimeter + _local2); puntosFigura.push(_local1); lastPoint.x = _local1.x; lastPoint.y = _local1.y; }; }; inGameSuperUI.ui_maskbarra.scaleX = (1 - (perimeter / MAX_PERIMETER)); if (perimeter > MAX_PERIMETER){ endDrawing(false); }; }; }; } public function connectedToPinned2(_arg1:b2Body, _arg2:Array):Boolean{ var _local3:b2JointEdge; _arg2.push(_arg1); if (_arg1.m_userData.canPin){ _local3 = _arg1.GetJointList(); while (_local3 != null) { if (_arg2.indexOf(_local3.other) == -1){ if (_local3.other.GetUserData().pin){ return (true); }; if (connectedToPinned2(_local3.other, _arg2)){ return (true); }; }; _local3 = _local3.next; }; }; return (false); } public function checkPin(_arg1:MWBody, _arg2:MWBody):Boolean{ var _local3:Pin; var _local4:Point; var _local5:Point; _local3 = _arg1.pin; _local4 = _local3.localToGlobal(new Point(0, 0)); _local5 = new Point(); _local5.x = (_local4.x / Globals.SCALE); _local5.y = (_local4.y / Globals.SCALE); if (pointInsideBody(_local5, _arg2.m_body)){ level.addChild(_local3); _local3.x = _local4.x; _local3.y = _local4.y; b2RevoluteJointDef(_local3.jd).Initialize(_arg1.m_body, _arg2.m_body, new b2Vec2(_local5.x, _local5.y)); _local3.m_joint = b2RevoluteJoint(level.m_world.CreateJoint(_local3.jd)); mergeGroups(_local3.m_joint.GetBody1(), _local3.m_joint.GetBody2()); if (!_local3.m_joint){ level.removeChild(_local3); } else { _local3.m_joint.m_userData = _local3; _local3.nextFrame(); }; return (true); }; return (false); } public function drawPolygon(_arg1:MovieClip, _arg2:Array){ var _local3:Point; var _local4:Point; var _local5:Point; var _local6:Point; var _local7:BitmapData; var _local8:int; var _local9:int; var _local10:Bitmap; removeFigura(_arg1); _local3 = polyMin(_arg2); _local4 = adjustPoly(_local3, _arg2); _local5 = new Point(); _local6 = new Point(); _local7 = new BitmapData((_local4.x + 10), (_local4.y + 10), true, 0); _local8 = _arg2.length; _local9 = 0; while (_local9 < (_local8 - 1)) { _local5.x = _arg2[_local9].x; _local5.y = _arg2[_local9].y; _local6.x = _arg2[(_local9 + 1)].x; _local6.y = _arg2[(_local9 + 1)].y; drawLn(_local5, _local6, _local7); _local9++; }; _local5.x = _arg2[(_local8 - 1)].x; _local5.y = _arg2[(_local8 - 1)].y; _local6.x = _arg2[0].x; _local6.y = _arg2[0].y; drawLn(_local5, _local6, _local7); _local10 = new Bitmap(_local7, "never", true); new Bitmap(_local7, "never", true).x = (_local10.x + (_local3.x - 3)); _local10.y = (_local10.y + (_local3.y - 3)); _arg1.figura = _local10; _arg1.addChild(_local10); } public function foptions(_arg1:Event){ gotoAndStop("options"); } public function startGame(_arg1:Event){ gotoAndStop("startGame"); } public function setCursorLabel(_arg1:String){ if (cursorMC.currentLabel != _arg1){ cursorMC.gotoAndStop(_arg1); }; } public function angleDiff(_arg1:Number, _arg2:Number){ var _local3:Number; _local3 = (_arg1 - _arg2); if (_local3 > 180){ _local3 = (_local3 - 360); } else { if (_local3 < -180){ _local3 = (_local3 + 360); }; }; return (_local3); } public function endLevel(_arg1:Event){ var _local2:int; var _local3:Array; var _local4:ScoreScreen; var _local5:int; var _local6:int; endTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, endLevel); _local2 = (Math.max((4900 - ((shapesUsed * 50) + Math.floor(secondsUsed))), 0) + 100); _local3 = Globals.savedData.data.levelScores; if ((((_local3[(Globals.currentLevel - 1)] == -1)) || ((_local2 > _local3[(Globals.currentLevel - 1)])))){ _local3[(Globals.currentLevel - 1)] = _local2; }; _local4 = new ScoreScreen(); Globals.lastGameState = Globals.gameState; Globals.gameState = Globals.GAME_PAUSED; _local5 = 0; for each (_local6 in _local3) { if (_local6 > 0){ _local5 = (_local5 + _local6); }; }; stage.addChild(_local4); if (_local5 > Globals.savedData.data.bestScore){ Globals.savedData.data.bestScore = _local5; _local4.bsendScore.visible = true; } else { _local4.bsendScore.visible = false; }; _local4.numshapes.text = ("" + shapesUsed); _local4.time.text = (("" + Math.floor(secondsUsed)) + " secs"); _local4.levelScore.text = ("" + _local2); _local4.totalScore.text = ("" + _local5); customCursorOff(); } public function updatePush(){ if (firstPush > 1){ firstPush--; }; } public function f2MouseOverMusicButton(_arg1:Event){ if (Globals.soundChannel){ bu_OMusic.gotoAndStop("on_over"); } else { bu_OMusic.gotoAndStop("off_over"); }; } public function revisarLinea(_arg1:Array):Array{ var _local2:Boolean; var _local3:int; var _local4:Point; var _local5:Point; var _local6:Point; var _local7:Point; var _local8:Point; var _local9:Point; var _local10:Point; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Array; if (connectedPinned.length > 0){ return (null); }; _local2 = true; _local3 = 0; _local4 = new Point(0, 0); _local5 = _local4; _local6 = _local4; _local7 = _local4; _local8 = _local4; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _arg1[_local3]; if (_local4.x < _local5.x){ _local5 = _local4; } else { if (_local4.x > _local6.x){ _local6 = _local4; }; }; if (_local4.y < _local7.y){ _local7 = _local4; } else { if (_local4.y > _local8.y){ _local8 = _local4; }; }; _local3++; }; if (Point.distance(_local5, _local6) > Point.distance(_local7, _local8)){ _local9 = _local5; _local10 = _local6; } else { if (_local7.x <= _local8.x){ _local9 = _local7; _local10 = _local8; } else { _local9 = _local8; _local10 = _local7; }; }; _local11 = calcularAngulo(_local9, _local10); _local3 = 0; while (_local3 < _arg1.length) { _local4 = _arg1[_local3]; _local12 = angleDiff(_local11, calcularAngulo(_local9, _local4)); _local13 = Point.distance(_local9, _local4); _local14 = Math.abs((Math.sin(_local12) * _local13)); if (_local14 > MIN_DIST_TO_LINE){ _local2 = false; break; }; _local3++; }; _local15 = null; if (_local2){ _local15 = makeLine2(_local9, _local10); }; return (_local15); } public function divideGroups(_arg1:b2Body, _arg2:b2Body):void{ var _local3:int; var _local4:Array; _local3 = getNextGroup(); _local4 = []; propagateGroup(_arg2, _local3, _local4); } public function agregarHingesAFigura():void{ var _local1:b2Body; var _local2:Point; var _local3:Point; var _local4:Point; var _local5:Point; var _local6:Point; for each (_local1 in connectedPinned) { _local2 = _local1.m_userData.pin.localToGlobal(new Point(0, 0)); _local2.x = ((_local2.x / Globals.SCALE) - newBodyPos.x); _local2.y = ((_local2.y / Globals.SCALE) - newBodyPos.y); _local3 = new Point((_local2.x + PIN_RANGE), (_local2.y + PIN_RANGE)); _local4 = new Point((_local2.x + PIN_RANGE), (_local2.y - PIN_RANGE)); _local5 = new Point((_local2.x - PIN_RANGE), (_local2.y - PIN_RANGE)); _local6 = new Point((_local2.x - PIN_RANGE), (_local2.y + PIN_RANGE)); puntosFigura.push(_local3); puntosFigura.push(_local4); puntosFigura.push(_local5); puntosFigura.push(_local6); }; } public function fgotopreloader(_arg1:Event){ logoTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, fgotopreloader); play(); } public function startCircle(_arg1:Event){ if (((drawing) && ((puntosFigura.length == 1)))){ if (!checkCircleBounds(newBodyPos.x, newBodyPos.y, circleRadius)){ drawingCircle = true; }; }; } public function calcularAngulo(_arg1:Point, _arg2:Point):Number{ return (Math.atan2((_arg2.y - _arg1.y), (_arg2.x - _arg1.x))); } public function pickLevel(_arg1:int):MWLevel{ var _local2:int; var _local3:MWLevel; _local2 = (_arg1 * 2); _local3 = new (Globals.levels[_local2]); _local3.setFondo(Globals.levels[(_local2 + 1)]); return (_local3); } public function getBodyAtPoint(_arg1:Point):b2Body{ var _local2:b2AABB; var _local3:b2Vec2; var _local4:int; var _local5:Array; var _local6:int; var _local7:b2Body; var _local8:int; var _local9:Boolean; _local2 = new b2AABB(); _local2.lowerBound.Set((_arg1.x - 0.001), (_arg1.y - 0.001)); _local2.upperBound.Set((_arg1.x + 0.001), (_arg1.y + 0.001)); _local3 = new b2Vec2(_arg1.x, _arg1.y); _local4 = 10; _local5 = new Array(); _local6 = level.m_world.Query(_local2, _local5, _local4); _local7 = null; _local8 = 0; while (_local8 < _local6) { _local9 = _local5[_local8].TestPoint(_local5[_local8].GetBody().GetXForm(), _local3); if (_local9){ _local7 = _local5[_local8].m_body; break; }; _local8++; }; return (_local7); } public function name_listener(_arg1:TextEvent){ var _local2:String; if (_arg1.text == "\n"){ _local2 = input_name.text.substring(0, (input_name.text.length - 1)); if (_local2 != ""){ Globals.savedData.data.player_name = _local2; input_name.removeEventListener(TextEvent.TEXT_INPUT, name_listener); gotoAndStop("instructions"); }; }; } public function selectLevel(_arg1:MouseEvent){ var _local2:int; _local2 = int(_arg1.target.levelname.text); Globals.currentLevel = _local2; clearLS(); gotoAndStop("startGame"); } } }//package MP2_fla
Section 109
//MusicButton_158 (MP2_fla.MusicButton_158) package MP2_fla { import flash.display.*; public dynamic class MusicButton_158 extends MovieClip { public function MusicButton_158(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4); } function frame3(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame2(){ stop(); } } }//package MP2_fla
Section 110
//OptionsMusic_205 (MP2_fla.OptionsMusic_205) package MP2_fla { import flash.display.*; public dynamic class OptionsMusic_205 extends MovieClip { public function OptionsMusic_205(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4); } function frame3(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame2(){ stop(); } } }//package MP2_fla
Section 111
//OptionsQuality_207 (MP2_fla.OptionsQuality_207) package MP2_fla { import flash.display.*; public dynamic class OptionsQuality_207 extends MovieClip { public function OptionsQuality_207(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6); } function frame3(){ stop(); } function frame6(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame2(){ stop(); } } }//package MP2_fla
Section 112
//OptionsTutorial_206 (MP2_fla.OptionsTutorial_206) package MP2_fla { import flash.display.*; public dynamic class OptionsTutorial_206 extends MovieClip { public function OptionsTutorial_206(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package MP2_fla
Section 113
//ORLogo_1 (MP2_fla.ORLogo_1) package MP2_fla { import flash.display.*; import flash.media.*; public dynamic class ORLogo_1 extends MovieClip { public var glass:Sound; public function ORLogo_1(){ addFrameScript(0, frame1, 59, frame60); } function frame1(){ glass = new GlassSound(); glass.play(); } function frame60(){ stop(); } } }//package MP2_fla
Section 114
//Puffy_199 (MP2_fla.Puffy_199) package MP2_fla { import flash.display.*; public dynamic class Puffy_199 extends MovieClip { public function Puffy_199(){ addFrameScript(17, frame18); } function frame18(){ stop(); } } }//package MP2_fla
Section 115
//PushCursor_139 (MP2_fla.PushCursor_139) package MP2_fla { import flash.display.*; public dynamic class PushCursor_139 extends MovieClip { public function PushCursor_139(){ addFrameScript(19, frame20); } function frame20(){ gotoAndPlay(0); } } }//package MP2_fla
Section 116
//SendScore_163 (MP2_fla.SendScore_163) package MP2_fla { import flash.display.*; public dynamic class SendScore_163 extends MovieClip { public function SendScore_163(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package MP2_fla
Section 117
//Shard1_12 (MP2_fla.Shard1_12) package MP2_fla { import flash.display.*; public dynamic class Shard1_12 extends MovieClip { public function Shard1_12(){ addFrameScript(29, frame30); } function frame30(){ stop(); } } }//package MP2_fla
Section 118
//Shard2_13 (MP2_fla.Shard2_13) package MP2_fla { import flash.display.*; public dynamic class Shard2_13 extends MovieClip { public function Shard2_13(){ addFrameScript(29, frame30); } function frame30(){ stop(); } } }//package MP2_fla
Section 119
//Shard3_14 (MP2_fla.Shard3_14) package MP2_fla { import flash.display.*; public dynamic class Shard3_14 extends MovieClip { public function Shard3_14(){ addFrameScript(29, frame30); } function frame30(){ stop(); } } }//package MP2_fla
Section 120
//Shard4_15 (MP2_fla.Shard4_15) package MP2_fla { import flash.display.*; public dynamic class Shard4_15 extends MovieClip { public function Shard4_15(){ addFrameScript(29, frame30); } function frame30(){ stop(); } } }//package MP2_fla
Section 121
//Shard5_16 (MP2_fla.Shard5_16) package MP2_fla { import flash.display.*; public dynamic class Shard5_16 extends MovieClip { public function Shard5_16(){ addFrameScript(29, frame30); } function frame30(){ stop(); } } }//package MP2_fla
Section 122
//StarPuffy_142 (MP2_fla.StarPuffy_142) package MP2_fla { import flash.display.*; public dynamic class StarPuffy_142 extends MovieClip { public function StarPuffy_142(){ addFrameScript(15, frame16); } function frame16(){ stop(); } } }//package MP2_fla
Section 123
//Subrayar_145 (MP2_fla.Subrayar_145) package MP2_fla { import flash.display.*; public dynamic class Subrayar_145 extends MovieClip { public function Subrayar_145(){ addFrameScript(6, frame7); } function frame7(){ stop(); } } }//package MP2_fla
Section 124
//tips_148 (MP2_fla.tips_148) package MP2_fla { import flash.display.*; public dynamic class tips_148 extends MovieClip { public var b_d:SimpleButton; public var b_a:SimpleButton; public var b_s:SimpleButton; public var b_space:SimpleButton; } }//package MP2_fla
Section 125
//Tutorial_182 (MP2_fla.Tutorial_182) package MP2_fla { import flash.display.*; import flash.events.*; public dynamic class Tutorial_182 extends MovieClip { public var frame:int; public var flechaNoNext:MovieClip; public var tutnext:SimpleButton; public var flechaNoBack:MovieClip; public var tutback:SimpleButton; public function Tutorial_182(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 9, frame10, 10, frame11); } function frame10(){ stop(); } function frame3(){ stop(); } function frame6(){ stop(); } function frame7(){ stop(); } function frame1(){ frame = 2; tutnext.addEventListener(MouseEvent.CLICK, gonext, false, 0, true); tutback.addEventListener(MouseEvent.CLICK, goback, false, 0, true); checkNextBack(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame9(){ stop(); } function frame8(){ stop(); } function frame2(){ stop(); } function frame11(){ stop(); } public function checkNextBack(){ tutnext.visible = true; tutback.visible = true; flechaNoNext.visible = false; flechaNoBack.visible = false; if (frame == 2){ tutback.visible = false; flechaNoBack.visible = true; } else { if (frame == totalFrames){ tutnext.visible = false; flechaNoNext.visible = true; }; }; } public function goback(_arg1:Event){ if (frame > 2){ prevFrame(); }; frame--; checkNextBack(); } public function gonext(_arg1:Event){ if (frame < totalFrames){ nextFrame(); }; frame++; checkNextBack(); } } }//package MP2_fla
Section 126
//Vientote_138 (MP2_fla.Vientote_138) package MP2_fla { import flash.display.*; public dynamic class Vientote_138 extends MovieClip { public function Vientote_138(){ addFrameScript(17, frame18); } function frame18(){ gotoAndPlay(0); } } }//package MP2_fla
Section 127
//WindowBreak_11 (MP2_fla.WindowBreak_11) package MP2_fla { import flash.display.*; public dynamic class WindowBreak_11 extends MovieClip { public function WindowBreak_11(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package MP2_fla
Section 128
//Utils (MyUtils.Utils) package MyUtils { import flash.geom.*; import flash.display.*; public class Utils { public static const TO_RAD = 0.0174532925199433; public static const TO_DEG = 57.2957795130823; static var p1:Point = new Point(); static var p2:Point = new Point(); public static function interval(_arg1:Number, _arg2:Number, _arg3:Number):Number{ if (_arg2 < _arg1){ return (_arg1); }; if (_arg2 > _arg3){ return (_arg3); }; return (_arg2); } public static function distance2D(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ p1.x = _arg1; p1.y = _arg2; p2.x = _arg3; p2.y = _arg4; return (Point.distance(p1, p2)); } public static function distance1D(_arg1:Number, _arg2:Number):Number{ return (Math.abs((_arg1 - _arg2))); } public static function fillLeft(_arg1:String, _arg2:int, _arg3:String):String{ var _local4:int; var _local5:int; var _local6:String; var _local7:*; _local4 = _arg1.length; _local5 = _arg3.length; _local6 = new String(_arg1); _local7 = _local4; while (_local7 < _arg2) { _local6 = (_arg3 + _local6); _local7 = (_local7 + _local5); }; return (_local6); } public static function matrixForEach(_arg1:Array, _arg2:Function):void{ var _local3:*; var _local4:*; var _local5:*; var _local6:int; _local5 = _arg1.length; _local6 = _arg1[0].length; _local3 = 0; while (_local3 < _local5) { _local4 = 0; while (_local4 < _local6) { _arg2(_arg1[_local3][_local4], _local3, _local4); _local4++; }; _local3++; }; } public static function angleBPoints(_arg1, _arg2, _arg3, _arg4):Number{ return (Math.atan2((_arg4 - _arg2), (_arg3 - _arg1))); } public static function formatTime(_arg1:int, _arg2:int):String{ var _local3:Number; var _local4:Number; var _local5:Number; _local3 = Math.floor((Number(_arg1) / _arg2)); _local4 = Math.floor((_local3 / 60)); _local5 = Math.floor((_local4 / 60)); _local4 = (_local4 - (_local5 * 60)); _local3 = (_local3 - (((_local5 * 60) * 60) + (_local4 * 60))); return (((((("" + fillLeft(String(_local5), 2, "0")) + ":") + fillLeft(String(_local4), 2, "0")) + ":") + fillLeft(String(_local3), 2, "0"))); } public static function isInInterval(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ return ((((_arg1 > _arg2)) && ((_arg1 < _arg3)))); } public static function create2DMatrix(_arg1:int, _arg2:int, _arg3):Array{ var _local4:Array; var _local5:*; var _local6:int; _local4 = new Array(_arg1); _local5 = 0; while (_local5 < _arg1) { _local4[_local5] = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { _local4[_local5][_local6] = _arg3; _local6++; }; _local5++; }; return (_local4); } public static function shortAngle(_arg1:Number, _arg2:Number):Number{ if (((((_arg1 * _arg2) > 0)) || ((Math.abs((_arg1 - _arg2)) < Math.PI)))){ return ((_arg2 - _arg1)); }; if (_arg1 > _arg2){ return ((((Math.PI * 2) + _arg2) - _arg1)); }; return ((((-(Math.PI) * 2) + _arg2) - _arg1)); } public static function fillWithTexture(_arg1:BitmapData, _arg2:BitmapData):void{ var _local3:int; var _local4:int; var _local5:Point; var _local6:int; var _local7:int; _local3 = Math.ceil((Number(_arg1.width) / _arg2.width)); _local4 = Math.ceil((Number(_arg1.height) / _arg2.height)); _local5 = new Point(); _local6 = 0; while (_local6 < _local4) { _local7 = 0; while (_local7 < _local3) { _local5.x = (_local7 * _arg2.width); _local5.y = (_local6 * _arg2.height); _arg1.copyPixels(_arg2, _arg2.rect, _local5, null, null, false); _local7++; }; _local6++; }; } public static function randomRange(_arg1:Number, _arg2:Number):Number{ return (((Math.random() * (_arg2 - _arg1)) + _arg1)); } public static function polar(_arg1:Number, _arg2:Number, _arg3:Point){ _arg3.x = (Math.cos(_arg2) * _arg1); _arg3.y = (-(Math.sin(_arg2)) * _arg1); } public static function smallest(_arg1:Number, _arg2:Number):Number{ if (Math.abs(_arg1) >= Math.abs(_arg2)){ return (_arg1); }; return (_arg2); } } }//package MyUtils
Section 129
//Ancla (Ancla) package { import Game.*; public dynamic class Ancla extends MWBody { public var __id192_:RectShape; public var __id193_:RectShape; public var __id194_:RectShape; public var __id195_:RectShape; public var __id196_:RectShape; public var __id190_:RectShape; public var __id191_:RectShape; public function Ancla(){ addFrameScript(0, frame1); __setProp___id190__Ancla_Physics_1(); __setProp___id194__Ancla_Physics_1(); __setProp___id195__Ancla_Physics_1(); __setProp___id192__Ancla_Physics_1(); __setProp___id193__Ancla_Physics_1(); __setProp___id196__Ancla_Physics_1(); __setProp___id191__Ancla_Physics_1(); } function __setProp___id190__Ancla_Physics_1(){ try { __id190_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id190_.categoryBits = 1; __id190_.colgroup = 0; __id190_.density = 1; __id190_.friction = 0.1; __id190_.maskBits = 0xFFFF; __id190_.restitution = 0.2; __id190_.sensor = false; try { __id190_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id191__Ancla_Physics_1(){ try { __id191_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id191_.categoryBits = 1; __id191_.colgroup = 0; __id191_.density = 2; __id191_.friction = 0.1; __id191_.maskBits = 0xFFFF; __id191_.restitution = 0.2; __id191_.sensor = false; try { __id191_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id192__Ancla_Physics_1(){ try { __id192_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id192_.categoryBits = 1; __id192_.colgroup = 0; __id192_.density = 2; __id192_.friction = 0.1; __id192_.maskBits = 0xFFFF; __id192_.restitution = 0.2; __id192_.sensor = false; try { __id192_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canDestroy = false; this.canPin = false; } function __setProp___id193__Ancla_Physics_1(){ try { __id193_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id193_.categoryBits = 1; __id193_.colgroup = 0; __id193_.density = 2; __id193_.friction = 0.1; __id193_.maskBits = 0xFFFF; __id193_.restitution = 0.2; __id193_.sensor = false; try { __id193_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id194__Ancla_Physics_1(){ try { __id194_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id194_.categoryBits = 1; __id194_.colgroup = 0; __id194_.density = 2; __id194_.friction = 0.1; __id194_.maskBits = 0xFFFF; __id194_.restitution = 0.2; __id194_.sensor = false; try { __id194_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id195__Ancla_Physics_1(){ try { __id195_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id195_.categoryBits = 1; __id195_.colgroup = 0; __id195_.density = 1; __id195_.friction = 0.1; __id195_.maskBits = 0xFFFF; __id195_.restitution = 0.2; __id195_.sensor = false; try { __id195_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id196__Ancla_Physics_1(){ try { __id196_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id196_.categoryBits = 1; __id196_.colgroup = 0; __id196_.density = 1; __id196_.friction = 0.1; __id196_.maskBits = 0xFFFF; __id196_.restitution = 0.2; __id196_.sensor = false; try { __id196_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 130
//Basura (Basura) package { import Game.*; public dynamic class Basura extends MWBody { public var __id76_:RectShape; public function Basura(){ addFrameScript(0, frame1); __setProp___id76__Basura_Layer1_1(); } function frame1(){ this.canPin = false; this.canDestroy = false; } function __setProp___id76__Basura_Layer1_1(){ try { __id76_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id76_.categoryBits = 1; __id76_.colgroup = 0; __id76_.density = 3; __id76_.friction = 0.3; __id76_.maskBits = 0xFFFF; __id76_.restitution = 0.2; __id76_.sensor = false; try { __id76_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 131
//BigWall (BigWall) package { import Game.*; public dynamic class BigWall extends MWBody { public var __id62_:RectShape; public var __id63_:RectShape; public var __id64_:RectShape; public var __id65_:RectShape; public var __id66_:RectShape; public function BigWall(){ addFrameScript(0, frame1); __setProp___id62__BigWall_Physics_1(); __setProp___id63__BigWall_Physics_1(); __setProp___id64__BigWall_Physics_1(); __setProp___id65__BigWall_Physics_1(); __setProp___id66__BigWall_Physics_1(); } function __setProp___id62__BigWall_Physics_1(){ try { __id62_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id62_.categoryBits = 1; __id62_.colgroup = 0; __id62_.density = 0; __id62_.friction = 1; __id62_.maskBits = 0xFFFF; __id62_.restitution = 0.1; __id62_.sensor = false; try { __id62_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id65__BigWall_Physics_1(){ try { __id65_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id65_.categoryBits = 1; __id65_.colgroup = 0; __id65_.density = 0; __id65_.friction = 1; __id65_.maskBits = 0xFFFF; __id65_.restitution = 0.1; __id65_.sensor = false; try { __id65_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id63__BigWall_Physics_1(){ try { __id63_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id63_.categoryBits = 1; __id63_.colgroup = 0; __id63_.density = 0; __id63_.friction = 1; __id63_.maskBits = 0xFFFF; __id63_.restitution = 0.1; __id63_.sensor = false; try { __id63_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canPin = false; this.canDestroy = false; } function __setProp___id66__BigWall_Physics_1(){ try { __id66_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id66_.categoryBits = 1; __id66_.colgroup = 0; __id66_.density = 0; __id66_.friction = 1; __id66_.maskBits = 0xFFFF; __id66_.restitution = 0.1; __id66_.sensor = false; try { __id66_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id64__BigWall_Physics_1(){ try { __id64_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id64_.categoryBits = 1; __id64_.colgroup = 0; __id64_.density = 0; __id64_.friction = 1; __id64_.maskBits = 0xFFFF; __id64_.restitution = 0.1; __id64_.sensor = false; try { __id64_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 132
//BloqueEgipcio (BloqueEgipcio) package { import Game.*; public dynamic class BloqueEgipcio extends MWBody { public var __id2_:RectShape; public function BloqueEgipcio(){ addFrameScript(0, frame1); __setProp___id2__BloqueEgipcio_Box_1(); } function frame1(){ this.canPin = true; this.canDestroy = false; } function __setProp___id2__BloqueEgipcio_Box_1(){ try { __id2_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id2_.categoryBits = 1; __id2_.colgroup = 0; __id2_.density = 0; __id2_.friction = 0.1; __id2_.maskBits = 0xFFFF; __id2_.restitution = 0; __id2_.sensor = false; try { __id2_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 133
//BloqueGriego (BloqueGriego) package { import Game.*; public dynamic class BloqueGriego extends MWBody { public var __id48_:RectShape; public function BloqueGriego(){ addFrameScript(0, frame1); __setProp___id48__BloqueGriego_Graphic_1(); } function __setProp___id48__BloqueGriego_Graphic_1(){ try { __id48_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id48_.categoryBits = 1; __id48_.colgroup = 0; __id48_.density = 0; __id48_.friction = 0.1; __id48_.maskBits = 0xFFFF; __id48_.restitution = 0; __id48_.sensor = false; try { __id48_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canPin = true; this.canDestroy = false; } } }//package
Section 134
//BloqueMedieval (BloqueMedieval) package { import Game.*; public dynamic class BloqueMedieval extends MWBody { public var __id75_:RectShape; public function BloqueMedieval(){ addFrameScript(0, frame1); __setProp___id75__BloqueMedieval_Graphic_1(); } function __setProp___id75__BloqueMedieval_Graphic_1(){ try { __id75_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id75_.categoryBits = 1; __id75_.colgroup = 0; __id75_.density = 0; __id75_.friction = 0.1; __id75_.maskBits = 0xFFFF; __id75_.restitution = 0; __id75_.sensor = false; try { __id75_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canPin = true; this.canDestroy = false; } } }//package
Section 135
//BloqueNivel18 (BloqueNivel18) package { import Game.*; public dynamic class BloqueNivel18 extends MWBody { public var __id77_:RectShape; public function BloqueNivel18(){ addFrameScript(0, frame1); __setProp___id77__BloqueNivel18_Physics_1(); } function __setProp___id77__BloqueNivel18_Physics_1(){ try { __id77_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id77_.categoryBits = 1; __id77_.colgroup = 0; __id77_.density = 3; __id77_.friction = 0.1; __id77_.maskBits = 0xFFFF; __id77_.restitution = 0.2; __id77_.sensor = false; try { __id77_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canDestroy = false; this.canPin = false; } } }//package
Section 136
//Bola38 (Bola38) package { import Game.*; public dynamic class Bola38 extends MWBody { public var __id181_:CircleShape; public function Bola38(){ addFrameScript(0, frame1); __setProp___id181__Bola38_Physics_1(); } function frame1(){ this.canDestroy = false; this.canPin = true; } function __setProp___id181__Bola38_Physics_1(){ try { __id181_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id181_.categoryBits = 1; __id181_.colgroup = 0; __id181_.density = 2; __id181_.friction = 0.1; __id181_.maskBits = 0xFFFF; __id181_.restitution = 0; __id181_.sensor = false; try { __id181_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 137
//Bolita (Bolita) package { import Game.*; public dynamic class Bolita extends MWBody { public var __id27_:CircleShape; public function Bolita(){ addFrameScript(0, frame1); __setProp___id27__Bolita_shape_1(); } function __setProp___id27__Bolita_shape_1(){ try { __id27_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id27_.categoryBits = 1; __id27_.colgroup = 0; __id27_.density = 0.7; __id27_.friction = 0.1; __id27_.maskBits = 0xFFFF; __id27_.restitution = 0.5; __id27_.sensor = false; try { __id27_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canPin = true; this.canDestroy = false; this.drawable = true; } } }//package
Section 138
//Boulder (Boulder) package { import Game.*; public dynamic class Boulder extends MWBody { public var __id91_:RectShape; public var __id88_:RectShape; public var __id87_:RectShape; public var __id92_:RectShape; public var __id90_:RectShape; public var __id93_:RectShape; public var __id86_:CircleShape; public var __id89_:RectShape; public function Boulder(){ addFrameScript(0, frame1); __setProp___id86__Boulder_Physics_1(); __setProp___id93__Boulder_Physics_1(); __setProp___id91__Boulder_Physics_1(); __setProp___id92__Boulder_Physics_1(); __setProp___id90__Boulder_Physics_1(); __setProp___id88__Boulder_Physics_1(); __setProp___id87__Boulder_Physics_1(); __setProp___id89__Boulder_Physics_1(); } function __setProp___id89__Boulder_Physics_1(){ try { __id89_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id89_.categoryBits = 1; __id89_.colgroup = 0; __id89_.density = 1; __id89_.friction = 1; __id89_.maskBits = 0xFFFF; __id89_.restitution = 0; __id89_.sensor = false; try { __id89_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id87__Boulder_Physics_1(){ try { __id87_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id87_.categoryBits = 1; __id87_.colgroup = 0; __id87_.density = 1; __id87_.friction = 1; __id87_.maskBits = 0xFFFF; __id87_.restitution = 0; __id87_.sensor = false; try { __id87_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id93__Boulder_Physics_1(){ try { __id93_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id93_.categoryBits = 1; __id93_.colgroup = 0; __id93_.density = 1; __id93_.friction = 1; __id93_.maskBits = 0xFFFF; __id93_.restitution = 0; __id93_.sensor = false; try { __id93_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id91__Boulder_Physics_1(){ try { __id91_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id91_.categoryBits = 1; __id91_.colgroup = 0; __id91_.density = 1; __id91_.friction = 1; __id91_.maskBits = 0xFFFF; __id91_.restitution = 0; __id91_.sensor = false; try { __id91_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canDestroy = false; this.canPin = false; } function __setProp___id88__Boulder_Physics_1(){ try { __id88_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id88_.categoryBits = 1; __id88_.colgroup = 0; __id88_.density = 1; __id88_.friction = 1; __id88_.maskBits = 0xFFFF; __id88_.restitution = 0; __id88_.sensor = false; try { __id88_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id90__Boulder_Physics_1(){ try { __id90_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id90_.categoryBits = 1; __id90_.colgroup = 0; __id90_.density = 1; __id90_.friction = 1; __id90_.maskBits = 0xFFFF; __id90_.restitution = 0; __id90_.sensor = false; try { __id90_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id86__Boulder_Physics_1(){ try { __id86_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id86_.categoryBits = 1; __id86_.colgroup = 0; __id86_.density = 3; __id86_.friction = 0.3; __id86_.maskBits = 0xFFFF; __id86_.restitution = 0; __id86_.sensor = false; try { __id86_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id92__Boulder_Physics_1(){ try { __id92_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id92_.categoryBits = 1; __id92_.colgroup = 0; __id92_.density = 1; __id92_.friction = 1; __id92_.maskBits = 0xFFFF; __id92_.restitution = 0; __id92_.sensor = false; try { __id92_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 139
//Brush1 (Brush1) package { import flash.display.*; public dynamic class Brush1 extends BitmapData { public function Brush1(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 140
//Brush2 (Brush2) package { import flash.display.*; public dynamic class Brush2 extends BitmapData { public function Brush2(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 141
//Brush3 (Brush3) package { import flash.display.*; public dynamic class Brush3 extends BitmapData { public function Brush3(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 142
//Brush4 (Brush4) package { import flash.display.*; public dynamic class Brush4 extends BitmapData { public function Brush4(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 143
//Cajita (Cajita) package { import Game.*; public dynamic class Cajita extends MWBody { public var __id3_:RectShape; public function Cajita(){ addFrameScript(0, frame1); __setProp___id3__Cajita_Physics_1(); } function frame1(){ this.canPin = true; this.canDestroy = false; this.drawable = true; } function __setProp___id3__Cajita_Physics_1(){ try { __id3_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id3_.categoryBits = 1; __id3_.colgroup = 0; __id3_.density = 1; __id3_.friction = 0.5; __id3_.maskBits = 0xFFFF; __id3_.restitution = 0.5; __id3_.sensor = false; try { __id3_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 144
//Cart26 (Cart26) package { import Game.*; public dynamic class Cart26 extends MWBody { public var __id163_:RectShape; public var __id157_:RectShape; public var __id160_:RectShape; public var __id161_:RectShape; public var __id158_:RectShape; public var __id162_:RectShape; public var __id159_:RectShape; public function Cart26(){ addFrameScript(0, frame1); __setProp___id157__Cart26_Physics_1(); __setProp___id163__Cart26_Physics_1(); __setProp___id158__Cart26_Physics_1(); __setProp___id162__Cart26_Physics_1(); __setProp___id159__Cart26_Physics_1(); __setProp___id160__Cart26_Physics_1(); __setProp___id161__Cart26_Physics_1(); } function __setProp___id157__Cart26_Physics_1(){ try { __id157_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id157_.categoryBits = 1; __id157_.colgroup = 0; __id157_.density = 2; __id157_.friction = 5; __id157_.maskBits = 0xFFFF; __id157_.restitution = 0.2; __id157_.sensor = false; try { __id157_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id160__Cart26_Physics_1(){ try { __id160_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id160_.categoryBits = 1; __id160_.colgroup = 0; __id160_.density = 2; __id160_.friction = 0; __id160_.maskBits = 0xFFFF; __id160_.restitution = 0.2; __id160_.sensor = false; try { __id160_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id163__Cart26_Physics_1(){ try { __id163_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id163_.categoryBits = 1; __id163_.colgroup = 0; __id163_.density = 3; __id163_.friction = 0; __id163_.maskBits = 0xFFFF; __id163_.restitution = 0.2; __id163_.sensor = false; try { __id163_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canDestroy = false; this.canPin = false; } function __setProp___id162__Cart26_Physics_1(){ try { __id162_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id162_.categoryBits = 1; __id162_.colgroup = 0; __id162_.density = 3; __id162_.friction = 0; __id162_.maskBits = 0xFFFF; __id162_.restitution = 0.2; __id162_.sensor = false; try { __id162_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id159__Cart26_Physics_1(){ try { __id159_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id159_.categoryBits = 1; __id159_.colgroup = 0; __id159_.density = 1; __id159_.friction = 0; __id159_.maskBits = 0xFFFF; __id159_.restitution = 0.2; __id159_.sensor = false; try { __id159_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id158__Cart26_Physics_1(){ try { __id158_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id158_.categoryBits = 1; __id158_.colgroup = 0; __id158_.density = 3; __id158_.friction = 0; __id158_.maskBits = 0xFFFF; __id158_.restitution = 0.2; __id158_.sensor = false; try { __id158_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id161__Cart26_Physics_1(){ try { __id161_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id161_.categoryBits = 1; __id161_.colgroup = 0; __id161_.density = 2; __id161_.friction = 0; __id161_.maskBits = 0xFFFF; __id161_.restitution = 0.2; __id161_.sensor = false; try { __id161_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 145
//ChainLink (ChainLink) package { import Game.*; public dynamic class ChainLink extends MWBody { public var __id110_:RectShape; public function ChainLink(){ addFrameScript(0, frame1); __setProp___id110__ChainLink_Physics_1(); } function __setProp___id110__ChainLink_Physics_1(){ try { __id110_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id110_.categoryBits = 1; __id110_.colgroup = 0; __id110_.density = 0.1; __id110_.friction = 0.1; __id110_.maskBits = 0xFFFF; __id110_.restitution = 0.2; __id110_.sensor = false; try { __id110_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canDestroy = false; this.canPin = false; } } }//package
Section 146
//ChainLinkAttach (ChainLinkAttach) package { import Game.*; public dynamic class ChainLinkAttach extends MWBody { public var __id147_:RectShape; public function ChainLinkAttach(){ addFrameScript(0, frame1); __setProp___id147__ChainLinkAttach_Physics_1(); } function __setProp___id147__ChainLinkAttach_Physics_1(){ try { __id147_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id147_.categoryBits = 1; __id147_.colgroup = 0; __id147_.density = 0.1; __id147_.friction = 0.1; __id147_.maskBits = 0xFFFF; __id147_.restitution = 0.2; __id147_.sensor = false; try { __id147_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canDestroy = false; this.canPin = true; } } }//package
Section 147
//Chapter1 (Chapter1) package { import flash.media.*; public dynamic class Chapter1 extends Sound { } }//package
Section 148
//CircleShape (CircleShape) package { import Box2DIntegration.*; public dynamic class CircleShape extends b2iCircleShape { public function CircleShape(){ addFrameScript(0, frame1); } function frame1(){ this.visible = false; stop(); } } }//package
Section 149
//ColumnaBase (ColumnaBase) package { import Game.*; public dynamic class ColumnaBase extends MWBody { public var __id41_:RectShape; public var __id42_:RectShape; public var __id43_:RectShape; public function ColumnaBase(){ addFrameScript(0, frame1); __setProp___id41__Columna_1(); __setProp___id42__Columna_1(); __setProp___id43__Columna_1(); } function __setProp___id43__Columna_1(){ try { __id43_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id43_.categoryBits = 1; __id43_.colgroup = 0; __id43_.density = 0; __id43_.friction = 1; __id43_.maskBits = 0xFFFF; __id43_.restitution = 0.1; __id43_.sensor = false; try { __id43_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canDestroy = false; this.canPin = false; this.canDestroy = false; this.canPin = false; } function __setProp___id41__Columna_1(){ try { __id41_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id41_.categoryBits = 1; __id41_.colgroup = 0; __id41_.density = 0; __id41_.friction = 1; __id41_.maskBits = 0xFFFF; __id41_.restitution = 0.1; __id41_.sensor = false; try { __id41_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id42__Columna_1(){ try { __id42_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id42_.categoryBits = 1; __id42_.colgroup = 0; __id42_.density = 0; __id42_.friction = 1; __id42_.maskBits = 0xFFFF; __id42_.restitution = 0.1; __id42_.sensor = false; try { __id42_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 150
//ColumnaSeat (ColumnaSeat) package { import Game.*; public dynamic class ColumnaSeat extends MWBody { public var __id44_:RectShape; public var __id45_:RectShape; public var __id47_:RectShape; public var __id46_:RectShape; public function ColumnaSeat(){ addFrameScript(0, frame1); __setProp___id44__Columna_1(); __setProp___id45__Columna_1(); __setProp___id46__Columna_1(); __setProp___id47__Columna_1(); } function __setProp___id46__Columna_1(){ try { __id46_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id46_.categoryBits = 1; __id46_.colgroup = 0; __id46_.density = 0; __id46_.friction = 1; __id46_.maskBits = 0xFFFF; __id46_.restitution = 0.1; __id46_.sensor = false; try { __id46_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canDestroy = false; this.canPin = false; } function __setProp___id44__Columna_1(){ try { __id44_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id44_.categoryBits = 1; __id44_.colgroup = 0; __id44_.density = 0; __id44_.friction = 1; __id44_.maskBits = 0xFFFF; __id44_.restitution = 0.1; __id44_.sensor = false; try { __id44_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id47__Columna_1(){ try { __id47_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id47_.categoryBits = 1; __id47_.colgroup = 0; __id47_.density = 0; __id47_.friction = 1; __id47_.maskBits = 0xFFFF; __id47_.restitution = 0.1; __id47_.sensor = false; try { __id47_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id45__Columna_1(){ try { __id45_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id45_.categoryBits = 1; __id45_.colgroup = 0; __id45_.density = 0; __id45_.friction = 1; __id45_.maskBits = 0xFFFF; __id45_.restitution = 0.1; __id45_.sensor = false; try { __id45_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 151
//ColumnaTop (ColumnaTop) package { import Game.*; public dynamic class ColumnaTop extends MWBody { public var __id52_:RectShape; public var __id51_:RectShape; public var __id53_:RectShape; public var __id54_:RectShape; public function ColumnaTop(){ addFrameScript(0, frame1); __setProp___id51__Columna_1(); __setProp___id53__Columna_1(); __setProp___id54__Columna_1(); __setProp___id52__Columna_1(); } function __setProp___id54__Columna_1(){ try { __id54_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id54_.categoryBits = 1; __id54_.colgroup = 0; __id54_.density = 0; __id54_.friction = 1; __id54_.maskBits = 0xFFFF; __id54_.restitution = 0.1; __id54_.sensor = false; try { __id54_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id52__Columna_1(){ try { __id52_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id52_.categoryBits = 1; __id52_.colgroup = 0; __id52_.density = 0; __id52_.friction = 1; __id52_.maskBits = 0xFFFF; __id52_.restitution = 0.1; __id52_.sensor = false; try { __id52_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canDestroy = false; this.canPin = false; } function __setProp___id53__Columna_1(){ try { __id53_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id53_.categoryBits = 1; __id53_.colgroup = 0; __id53_.density = 0; __id53_.friction = 1; __id53_.maskBits = 0xFFFF; __id53_.restitution = 0.1; __id53_.sensor = false; try { __id53_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id51__Columna_1(){ try { __id51_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id51_.categoryBits = 1; __id51_.colgroup = 0; __id51_.density = 0; __id51_.friction = 1; __id51_.maskBits = 0xFFFF; __id51_.restitution = 0.1; __id51_.sensor = false; try { __id51_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 152
//Cursor (Cursor) package { import flash.display.*; public dynamic class Cursor extends MovieClip { public var viento:MovieClip; public function Cursor(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5); } function frame3(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame2(){ stop(); } } }//package
Section 153
//Empacador (Empacador) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; import flash.display.*; import Box2DIntegration.*; class Empacador extends MovieClip { private var _b2iLevel:b2iLevel; private var _b2Bound:b2Bound; private var _b2PolygonContact:b2PolygonContact; private var _b2GearJointDef:b2GearJointDef; private var _b2PulleyJoint:b2PulleyJointDef; private var _b2World:b2World; private var _b2iShape:b2iShape; private var _b2BroadPhase:b2BroadPhase; private var _b2Pair:b2Pair; private var _b2Shape:b2Shape; private var _b2ContactRegister:b2ContactRegister; private var _b2Mat22:b2Mat22; private var _b2ContactListener:b2ContactListener; private var _b2DebugDraw:b2DebugDraw; private var _b2DestructionListener:b2DestructionListener; private var _b2iEevoluteJoint:b2iRevoluteJoint; private var _b2iBody:b2iBody; private var _b2Math:b2Math; private var _b2NullContact:b2NullContact; private var _b2Vec2:b2Vec2; private var _b2GearJoint:b2GearJoint; private var _b2Contact:b2Contact; private var _b2ShapeDef:b2ShapeDef; private var _b2MouseJointDef:b2MouseJointDef; private var _b2PrismaticJoint:b2PrismaticJoint; private var _b2CircleShape:b2CircleShape; private var _b2MassData:b2MassData; private var _b2iObjectGroup:b2iObjectGroup; private var _b2iBoxShape:b2iBoxShape; private var _b2Manifold:b2Manifold; private var _b2PolygonDef:b2PolygonDef; private var _b2BufferedPair:b2BufferedPair; private var _clipVertex:ClipVertex; private var _b2iCircleShape:b2iCircleShape; private var _b2CircleContact:b2CircleContact; private var _b2PolygonShape:b2PolygonShape; private var _b2JointDef:b2JointDef; private var _b2Jacobian:b2Jacobian; private var _b2Body:b2Body; private var _b2Proxy; private var _b2ContactConstraintPoint:b2ContactConstraintPoint; private var _b2DistanceJointDef:b2DistanceJointDef; private var _b2TimeStep:b2TimeStep; private var _b2iGameObject:b2iGameObject; private var _b2Joint:b2Joint; private var _b2CircleDef:b2CircleDef; private var _b2DistanceJoint:b2DistanceJoint; private var _b2ContactConstraint:b2ContactConstraint; private var _b2MouseJoint:b2MouseJoint; private var _b2Collision:b2Collision; private var _b2PairManager:b2PairManager; private var _b2ContactFilter:b2ContactFilter; private var _b2BodyDef:b2BodyDef; private var _b2ContactId:b2ContactID; private var _b2JointEdge:b2JointEdge; private var _b2Sweep:b2Sweep; private var _b2PairCallback:b2PairCallback; private var _b2AABB:b2AABB; private var _features:Features; private var _b2ContactPoint:b2ContactPoint; private var _b2PrismaticJointDef:b2PrismaticJointDef; private var _b2Island:b2Island; private var _b2OBB:b2OBB; private var _b2BoundaryListener:b2BoundaryListener; private var _b2ContactEdge:b2ContactEdge; private var _b2PolyAndCircleContact:b2PolyAndCircleContact; private var _b2RevoluteJoint:b2RevoluteJoint; private var _b2ContactSolver:b2ContactSolver; private var _b2XForm:b2XForm; private var _b2RevoluteJointDef:b2RevoluteJointDef; private var _b2Settings:b2Settings; private var _b2ContactManager:b2ContactManager; } }//package
Section 154
//EslabonNivel16 (EslabonNivel16) package { import Game.*; public dynamic class EslabonNivel16 extends MWBody { public var __id4_:RectShape; public function EslabonNivel16(){ addFrameScript(0, frame1); __setProp___id4__EslabonNivel16_Layer2_1(); } function frame1(){ this.canDestroy = false; this.canPin = true; stop(); } function __setProp___id4__EslabonNivel16_Layer2_1(){ try { __id4_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id4_.categoryBits = 1; __id4_.colgroup = 0; __id4_.density = 3; __id4_.friction = 0.1; __id4_.maskBits = 0xFFFF; __id4_.restitution = 0.2; __id4_.sensor = false; try { __id4_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 155
//Estrellita (Estrellita) package { import Game.*; public dynamic class Estrellita extends MWBody { public var __id1_:RectShape; public function Estrellita(){ addFrameScript(0, frame1, 14, frame15); __setProp___id1__Estrellita_shapes_1(); } function frame15(){ stop(); } function frame1(){ this.canDestroy = false; this.canPin = false; this.drawable = true; } function __setProp___id1__Estrellita_shapes_1(){ try { __id1_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id1_.categoryBits = 1; __id1_.colgroup = 0; __id1_.density = 0; __id1_.friction = 1; __id1_.maskBits = 0xFFFF; __id1_.restitution = 0; __id1_.sensor = true; try { __id1_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 156
//EstrellitaObj (EstrellitaObj) package { import Game.*; public dynamic class EstrellitaObj extends MWBody { public var __id74_:RectShape; public var __id73_:RectShape; public function EstrellitaObj(){ addFrameScript(0, frame1); __setProp___id73__EstrellitaObj_Physics_1(); __setProp___id74__EstrellitaObj_Physics_1(); } function __setProp___id73__EstrellitaObj_Physics_1(){ try { __id73_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id73_.categoryBits = 1; __id73_.colgroup = 0; __id73_.density = 0.5; __id73_.friction = 0.1; __id73_.maskBits = 0xFFFF; __id73_.restitution = 0.2; __id73_.sensor = false; try { __id73_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id74__EstrellitaObj_Physics_1(){ try { __id74_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id74_.categoryBits = 1; __id74_.colgroup = 0; __id74_.density = 0.5; __id74_.friction = 0.1; __id74_.maskBits = 0xFFFF; __id74_.restitution = 0.2; __id74_.sensor = false; try { __id74_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ stop(); this.canPin = false; this.canDestroy = false; this.drawable = true; } } }//package
Section 157
//Gate (Gate) package { import Game.*; public dynamic class Gate extends MWBody { public var __id94_:RectShape; public function Gate(){ addFrameScript(0, frame1); __setProp___id94__Gate_Physics_1(); } function frame1(){ this.canDestroy = false; this.canPin = false; } function __setProp___id94__Gate_Physics_1(){ try { __id94_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id94_.categoryBits = 1; __id94_.colgroup = 0; __id94_.density = 4; __id94_.friction = 0.1; __id94_.maskBits = 0xFFFF; __id94_.restitution = 0.2; __id94_.sensor = false; try { __id94_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 158
//GearNoPin (GearNoPin) package { import Game.*; public dynamic class GearNoPin extends MWBody { public var __id108_:RectShape; public var __id109_:RectShape; public var __id105_:CircleShape; public var __id106_:RectShape; public var __id107_:RectShape; public function GearNoPin(){ addFrameScript(0, frame1); __setProp___id107__Gear_1(); __setProp___id106__Gear_1(); __setProp___id108__Gear_1(); __setProp___id109__Gear_1(); __setProp___id105__Gear_1(); } function __setProp___id109__Gear_1(){ try { __id109_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id109_.categoryBits = 1; __id109_.colgroup = 0; __id109_.density = 1; __id109_.friction = 1; __id109_.maskBits = 0xFFFF; __id109_.restitution = 0.1; __id109_.sensor = false; try { __id109_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id105__Gear_1(){ try { __id105_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id105_.categoryBits = 1; __id105_.colgroup = 0; __id105_.density = 1; __id105_.friction = 0.3; __id105_.maskBits = 0xFFFF; __id105_.restitution = 0; __id105_.sensor = false; try { __id105_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id106__Gear_1(){ try { __id106_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id106_.categoryBits = 1; __id106_.colgroup = 0; __id106_.density = 1; __id106_.friction = 1; __id106_.maskBits = 0xFFFF; __id106_.restitution = 0.1; __id106_.sensor = false; try { __id106_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id107__Gear_1(){ try { __id107_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id107_.categoryBits = 1; __id107_.colgroup = 0; __id107_.density = 1; __id107_.friction = 1; __id107_.maskBits = 0xFFFF; __id107_.restitution = 0.1; __id107_.sensor = false; try { __id107_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canDestroy = false; this.canPin = false; } function __setProp___id108__Gear_1(){ try { __id108_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id108_.categoryBits = 1; __id108_.colgroup = 0; __id108_.density = 1; __id108_.friction = 1; __id108_.maskBits = 0xFFFF; __id108_.restitution = 0.1; __id108_.sensor = false; try { __id108_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 159
//GearPin (GearPin) package { import Game.*; public dynamic class GearPin extends MWBody { public var __id100_:RectShape; public var __id96_:CircleShape; public var __id97_:RectShape; public var __id98_:RectShape; public var __id99_:RectShape; public function GearPin(){ addFrameScript(0, frame1); __setProp___id96__Gear_1(); __setProp___id97__Gear_1(); __setProp___id98__Gear_1(); __setProp___id100__Gear_1(); __setProp___id99__Gear_1(); } function __setProp___id97__Gear_1(){ try { __id97_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id97_.categoryBits = 1; __id97_.colgroup = 0; __id97_.density = 1; __id97_.friction = 1; __id97_.maskBits = 0xFFFF; __id97_.restitution = 0.1; __id97_.sensor = false; try { __id97_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id100__Gear_1(){ try { __id100_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id100_.categoryBits = 1; __id100_.colgroup = 0; __id100_.density = 1; __id100_.friction = 1; __id100_.maskBits = 0xFFFF; __id100_.restitution = 0.1; __id100_.sensor = false; try { __id100_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id96__Gear_1(){ try { __id96_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id96_.categoryBits = 1; __id96_.colgroup = 0; __id96_.density = 1; __id96_.friction = 0.3; __id96_.maskBits = 0xFFFF; __id96_.restitution = 0; __id96_.sensor = false; try { __id96_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canDestroy = false; this.canPin = true; } function __setProp___id99__Gear_1(){ try { __id99_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id99_.categoryBits = 1; __id99_.colgroup = 0; __id99_.density = 1; __id99_.friction = 1; __id99_.maskBits = 0xFFFF; __id99_.restitution = 0.1; __id99_.sensor = false; try { __id99_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id98__Gear_1(){ try { __id98_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id98_.categoryBits = 1; __id98_.colgroup = 0; __id98_.density = 1; __id98_.friction = 1; __id98_.maskBits = 0xFFFF; __id98_.restitution = 0.1; __id98_.sensor = false; try { __id98_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 160
//GlassSound (GlassSound) package { import flash.media.*; public dynamic class GlassSound extends Sound { } }//package
Section 161
//inGameHelp (inGameHelp) package { import flash.display.*; import flash.events.*; import Game.*; public dynamic class inGameHelp extends MovieClip { public var resume_button:SimpleButton; public var i_tuto:MovieClip; public function inGameHelp(){ addFrameScript(1, frame2); } function frame2(){ resume_button.addEventListener(MouseEvent.CLICK, resumegame, false, 0, true); stop(); } public function resumegame(_arg1:Event){ Globals.gameState = Globals.GAME_RESUME; this.parent.removeChild(this); } } }//package
Section 162
//InGameLevelSelect (InGameLevelSelect) package { import flash.geom.*; import flash.display.*; import flash.utils.*; import flash.events.*; import Game.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.ui.*; import flash.xml.*; public dynamic class InGameLevelSelect extends MovieClip { public var bu_FP:SimpleButton; public var resume_button:SimpleButton; public var linksXRow:int; public var links:MovieClip; public var mp1_link:SimpleButton; public var linkList:Array; public function InGameLevelSelect(){ addFrameScript(0, frame1); } public function selectFreePlay(_arg1:MouseEvent){ Globals.currentLevel = 0; clearLS(); gotoAndStop("startGame"); } function frame1(){ stop(); resume_button.addEventListener(MouseEvent.CLICK, resumegame, false, 0, true); mp1_link.addEventListener(MouseEvent.CLICK, bubbleboxMP1, false, 0, true); linksXRow = 7; linkList = []; refreshLinks(); } public function resumegame(_arg1:Event){ Globals.gameState = Globals.GAME_RESUME; this.parent.removeChild(this); links = null; } public function clearLS(){ var _local1:LevelLink; for each (_local1 in linkList) { _local1.removeEventListener(MouseEvent.CLICK, selectLevel); }; linkList = []; removeChild(links); bu_FP.removeEventListener(MouseEvent.CLICK, selectFreePlay); resume_button.removeEventListener(MouseEvent.CLICK, resumegame); mp1_link.removeEventListener(MouseEvent.CLICK, bubbleboxMP1); links = null; Globals.gameState = Globals.GAME_RESTART; this.parent.removeChild(this); } public function refreshLinks(){ var _local1:LevelLink; var _local2:int; if (links){ removeChild(links); }; links = new MovieClip(); _local2 = 1; while (_local2 < Globals.numLevels) { _local1 = new LevelLink(); _local1.levelname.text = ("" + _local2); _local1.y = (Math.floor(((_local2 - 1) / linksXRow)) * 60); _local1.x = (((_local2 - 1) % linksXRow) * 50); if (Globals.savedData.data.levelScores[(_local2 - 1)] >= 0){ _local1.gotoAndStop("check"); }; _local1.addEventListener(MouseEvent.CLICK, selectLevel, false, 0, true); linkList.push(_local1); links.addChild(_local1); _local2++; }; links.y = 150; links.x = 200; addChild(links); bu_FP.addEventListener(MouseEvent.CLICK, selectFreePlay, false, 0, true); } public function bubbleboxMP1(_arg1:Event){ var _local2:URLRequest; _local2 = new URLRequest("http://www.bubblebox.com/clickreg.php?type=gamestats&id=1285&subid=magicpen1link&action=magicpen1"); navigateToURL(_local2); } public function selectLevel(_arg1:MouseEvent){ var _local2:int; _local2 = int(_arg1.target.levelname.text); Globals.currentLevel = _local2; clearLS(); gotoAndStop("startGame"); } } }//package
Section 163
//InGameSuperUI (InGameSuperUI) package { import flash.display.*; public dynamic class InGameSuperUI extends MovieClip { public var ui_barra:MovieClip; public var ui_maskbarra:MovieClip; public var uiSwitch_button:SimpleButton; public var levelnum:MovieClip; public function InGameSuperUI(){ addFrameScript(0, frame1); } function frame1(){ ui_barra.visible = false; levelnum.mouseEnabled = false; stop(); } } }//package
Section 164
//InGameUI (InGameUI) package { import flash.display.*; public dynamic class InGameUI extends MovieClip { public var tips:MovieClip; public var main:MovieClip; } }//package
Section 165
//LevelLink (LevelLink) package { import flash.display.*; import flash.events.*; import flash.text.*; public dynamic class LevelLink extends MovieClip { public var levelname:TextField; public function LevelLink(){ addFrameScript(0, frame1, 1, frame2, 2, frame3); } function frame3(){ levelname.mouseEnabled = false; this.buttonMode = true; this.addEventListener(MouseEvent.ROLL_OVER, agrandar, false, 0, true); this.addEventListener(MouseEvent.ROLL_OUT, normalizar, false, 0, true); stop(); } function frame1(){ } function frame2(){ levelname.mouseEnabled = false; this.buttonMode = true; this.addEventListener(MouseEvent.ROLL_OVER, agrandar, false, 0, true); this.addEventListener(MouseEvent.ROLL_OUT, normalizar, false, 0, true); stop(); } public function normalizar(_arg1:Event){ this.scaleX = 1; this.scaleY = 1; } public function agrandar(_arg1:Event){ this.scaleX = 1.1; this.scaleY = 1.1; } } }//package
Section 166
//Martillo40 (Martillo40) package { import Game.*; public dynamic class Martillo40 extends MWBody { public var __id232_:RectShape; public var __id233_:RectShape; public var __id234_:RectShape; public var __id235_:RectShape; public var __id236_:RectShape; public var __id231_:RectShape; public function Martillo40(){ addFrameScript(0, frame1); __setProp___id231__Martillo40_Physics_1(); __setProp___id235__Martillo40_Physics_1(); __setProp___id236__Martillo40_Physics_1(); __setProp___id234__Martillo40_Physics_1(); __setProp___id232__Martillo40_Physics_1(); __setProp___id233__Martillo40_Physics_1(); } function __setProp___id233__Martillo40_Physics_1(){ try { __id233_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id233_.categoryBits = 1; __id233_.colgroup = 0; __id233_.density = 3; __id233_.friction = 0.1; __id233_.maskBits = 0xFFFF; __id233_.restitution = 0.2; __id233_.sensor = false; try { __id233_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id234__Martillo40_Physics_1(){ try { __id234_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id234_.categoryBits = 1; __id234_.colgroup = 0; __id234_.density = 3; __id234_.friction = 0.1; __id234_.maskBits = 0xFFFF; __id234_.restitution = 0.2; __id234_.sensor = false; try { __id234_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canDestroy = false; this.canPin = true; } function __setProp___id235__Martillo40_Physics_1(){ try { __id235_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id235_.categoryBits = 1; __id235_.colgroup = 0; __id235_.density = 3; __id235_.friction = 0.1; __id235_.maskBits = 0xFFFF; __id235_.restitution = 0.2; __id235_.sensor = false; try { __id235_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id231__Martillo40_Physics_1(){ try { __id231_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id231_.categoryBits = 1; __id231_.colgroup = 0; __id231_.density = 2; __id231_.friction = 0.1; __id231_.maskBits = 0xFFFF; __id231_.restitution = 0.2; __id231_.sensor = false; try { __id231_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id232__Martillo40_Physics_1(){ try { __id232_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id232_.categoryBits = 1; __id232_.colgroup = 0; __id232_.density = 6; __id232_.friction = 0.1; __id232_.maskBits = 0xFFFF; __id232_.restitution = 0.2; __id232_.sensor = false; try { __id232_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id236__Martillo40_Physics_1(){ try { __id236_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id236_.categoryBits = 1; __id236_.colgroup = 0; __id236_.density = 3; __id236_.friction = 0.1; __id236_.maskBits = 0xFFFF; __id236_.restitution = 0.2; __id236_.sensor = false; try { __id236_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 167
//Muro (Muro) package { import Game.*; public dynamic class Muro extends MWBody { public var __id83_:RectShape; public var __id84_:RectShape; public var __id85_:RectShape; public var __id80_:RectShape; public var __id81_:RectShape; public var __id82_:RectShape; public function Muro(){ addFrameScript(0, frame1); __setProp___id85__Muro_Physics_1(); __setProp___id80__Muro_Physics_1(); __setProp___id81__Muro_Physics_1(); __setProp___id82__Muro_Physics_1(); __setProp___id83__Muro_Physics_1(); __setProp___id84__Muro_Physics_1(); } function __setProp___id80__Muro_Physics_1(){ try { __id80_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id80_.categoryBits = 1; __id80_.colgroup = 0; __id80_.density = 0; __id80_.friction = 1; __id80_.maskBits = 0xFFFF; __id80_.restitution = 0.1; __id80_.sensor = false; try { __id80_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canPin = false; this.canDestroy = false; } function __setProp___id81__Muro_Physics_1(){ try { __id81_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id81_.categoryBits = 1; __id81_.colgroup = 0; __id81_.density = 0; __id81_.friction = 1; __id81_.maskBits = 0xFFFF; __id81_.restitution = 0.1; __id81_.sensor = false; try { __id81_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id82__Muro_Physics_1(){ try { __id82_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id82_.categoryBits = 1; __id82_.colgroup = 0; __id82_.density = 0; __id82_.friction = 1; __id82_.maskBits = 0xFFFF; __id82_.restitution = 0.1; __id82_.sensor = false; try { __id82_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id83__Muro_Physics_1(){ try { __id83_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id83_.categoryBits = 1; __id83_.colgroup = 0; __id83_.density = 0; __id83_.friction = 1; __id83_.maskBits = 0xFFFF; __id83_.restitution = 0.1; __id83_.sensor = false; try { __id83_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id85__Muro_Physics_1(){ try { __id85_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id85_.categoryBits = 1; __id85_.colgroup = 0; __id85_.density = 0; __id85_.friction = 1; __id85_.maskBits = 0xFFFF; __id85_.restitution = 0.1; __id85_.sensor = false; try { __id85_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id84__Muro_Physics_1(){ try { __id84_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id84_.categoryBits = 1; __id84_.colgroup = 0; __id84_.density = 0; __id84_.friction = 1; __id84_.maskBits = 0xFFFF; __id84_.restitution = 0.1; __id84_.sensor = false; try { __id84_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 168
//Nivel1 (Nivel1) package { import Game.*; public dynamic class Nivel1 extends MWLevel { } }//package
Section 169
//Nivel10 (Nivel10) package { import Game.*; public dynamic class Nivel10 extends MWLevel { } }//package
Section 170
//Nivel12 (Nivel12) package { import Game.*; public dynamic class Nivel12 extends MWLevel { } }//package
Section 171
//Nivel13 (Nivel13) package { import Game.*; public dynamic class Nivel13 extends MWLevel { } }//package
Section 172
//Nivel14 (Nivel14) package { import Game.*; public dynamic class Nivel14 extends MWLevel { } }//package
Section 173
//Nivel15 (Nivel15) package { import Game.*; public dynamic class Nivel15 extends MWLevel { } }//package
Section 174
//Nivel16 (Nivel16) package { import Game.*; public dynamic class Nivel16 extends MWLevel { } }//package
Section 175
//Nivel17 (Nivel17) package { import Game.*; public dynamic class Nivel17 extends MWLevel { } }//package
Section 176
//Nivel18 (Nivel18) package { import Game.*; public dynamic class Nivel18 extends MWLevel { } }//package
Section 177
//Nivel19 (Nivel19) package { import Game.*; public dynamic class Nivel19 extends MWLevel { } }//package
Section 178
//Nivel2 (Nivel2) package { import Game.*; public dynamic class Nivel2 extends MWLevel { } }//package
Section 179
//Nivel20 (Nivel20) package { import Game.*; public dynamic class Nivel20 extends MWLevel { } }//package
Section 180
//Nivel21 (Nivel21) package { import Game.*; public dynamic class Nivel21 extends MWLevel { } }//package
Section 181
//Nivel22 (Nivel22) package { import Game.*; public dynamic class Nivel22 extends MWLevel { } }//package
Section 182
//Nivel23 (Nivel23) package { import Game.*; public dynamic class Nivel23 extends MWLevel { public var __id101_:RevJoint; public function Nivel23(){ __setProp___id101__Nivel23copy_pines_1(); } function __setProp___id101__Nivel23copy_pines_1(){ try { __id101_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id101_.forceResistance = 0; __id101_.speed = 2; __id101_.torque = 350000; __id101_.torqueResistance = 350000; try { __id101_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 183
//Nivel24 (Nivel24) package { import Game.*; public dynamic class Nivel24 extends MWLevel { public var __id238_:RevJoint; public function Nivel24(){ __setProp___id238__Nivel24_pizo_1(); } function __setProp___id238__Nivel24_pizo_1(){ try { __id238_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id238_.forceResistance = 350000; __id238_.speed = 0.25; __id238_.torque = 850000; __id238_.torqueResistance = 350000; try { __id238_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 184
//Nivel25 (Nivel25) package { import Game.*; public dynamic class Nivel25 extends MWLevel { public var __id124_:RevJoint; public var __id136_:RevJoint; public var __id112_:RevJoint; public var __id137_:RevJoint; public var __id125_:RevJoint; public var __id113_:RevJoint; public var __id138_:RevJoint; public var __id126_:RevJoint; public var __id114_:RevJoint; public var __id139_:RevJoint; public var __id103_:RevJoint; public var __id127_:RevJoint; public var __id115_:RevJoint; public var __id128_:RevJoint; public var __id116_:RevJoint; public var __id104_:RevJoint; public var __id117_:RevJoint; public var __id129_:RevJoint; public var __id118_:RevJoint; public var __id119_:RevJoint; public var __id140_:RevJoint; public var __id141_:RevJoint; public var __id130_:RevJoint; public var __id142_:RevJoint; public var __id131_:RevJoint; public var __id132_:RevJoint; public var __id120_:RevJoint; public var __id133_:RevJoint; public var __id121_:RevJoint; public var __id134_:RevJoint; public var __id122_:RevJoint; public var __id135_:RevJoint; public var __id111_:RevJoint; public var __id123_:RevJoint; public function Nivel25(){ __setProp___id139__Nivel25copy_objetos_1(); __setProp___id138__Nivel25copy_objetos_1(); __setProp___id137__Nivel25copy_objetos_1(); __setProp___id136__Nivel25copy_objetos_1(); __setProp___id133__Nivel25copy_objetos_1(); __setProp___id132__Nivel25copy_objetos_1(); __setProp___id128__Nivel25copy_objetos_1(); __setProp___id127__Nivel25copy_objetos_1(); __setProp___id123__Nivel25copy_objetos_1(); __setProp___id104__Nivel25copy_pizo_1(); __setProp___id142__Nivel25copy_objetos_1(); __setProp___id140__Nivel25copy_objetos_1(); __setProp___id124__Nivel25copy_objetos_1(); __setProp___id120__Nivel25copy_objetos_1(); __setProp___id103__Nivel25copy_pizo_1(); __setProp___id141__Nivel25copy_objetos_1(); __setProp___id135__Nivel25copy_objetos_1(); __setProp___id134__Nivel25copy_objetos_1(); __setProp___id131__Nivel25copy_objetos_1(); __setProp___id130__Nivel25copy_objetos_1(); __setProp___id125__Nivel25copy_objetos_1(); __setProp___id121__Nivel25copy_objetos_1(); __setProp___id119__Nivel25copy_objetos_1(); __setProp___id118__Nivel25copy_objetos_1(); __setProp___id117__Nivel25copy_objetos_1(); __setProp___id116__Nivel25copy_objetos_1(); __setProp___id115__Nivel25copy_objetos_1(); __setProp___id114__Nivel25copy_objetos_1(); __setProp___id113__Nivel25copy_objetos_1(); __setProp___id112__Nivel25copy_objetos_1(); __setProp___id111__Nivel25copy_objetos_1(); __setProp___id129__Nivel25copy_objetos_1(); __setProp___id126__Nivel25copy_objetos_1(); __setProp___id122__Nivel25copy_objetos_1(); } function __setProp___id126__Nivel25copy_objetos_1(){ try { __id126_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id126_.forceResistance = 350000; __id126_.speed = 0; __id126_.torque = 1000; __id126_.torqueResistance = 1000; try { __id126_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id104__Nivel25copy_pizo_1(){ try { __id104_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id104_.forceResistance = 350000; __id104_.speed = 0.5; __id104_.torque = 1850000; __id104_.torqueResistance = 350000; try { __id104_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id115__Nivel25copy_objetos_1(){ try { __id115_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id115_.forceResistance = 350000; __id115_.speed = 0; __id115_.torque = 1000; __id115_.torqueResistance = 1000; try { __id115_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id124__Nivel25copy_objetos_1(){ try { __id124_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id124_.forceResistance = 350000; __id124_.speed = 0; __id124_.torque = 1000; __id124_.torqueResistance = 1000; try { __id124_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id133__Nivel25copy_objetos_1(){ try { __id133_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id133_.forceResistance = 350000; __id133_.speed = 0; __id133_.torque = 1000; __id133_.torqueResistance = 1000; try { __id133_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id135__Nivel25copy_objetos_1(){ try { __id135_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id135_.forceResistance = 350000; __id135_.speed = 0; __id135_.torque = 1000; __id135_.torqueResistance = 1000; try { __id135_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id113__Nivel25copy_objetos_1(){ try { __id113_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id113_.forceResistance = 350000; __id113_.speed = 0; __id113_.torque = 1000; __id113_.torqueResistance = 1000; try { __id113_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id122__Nivel25copy_objetos_1(){ try { __id122_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id122_.forceResistance = 350000; __id122_.speed = 0; __id122_.torque = 1000; __id122_.torqueResistance = 1000; try { __id122_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id142__Nivel25copy_objetos_1(){ try { __id142_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id142_.forceResistance = 350000; __id142_.speed = 0; __id142_.torque = 1000; __id142_.torqueResistance = 1000; try { __id142_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id103__Nivel25copy_pizo_1(){ try { __id103_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id103_.forceResistance = 350000; __id103_.speed = 0.5; __id103_.torque = 1850000; __id103_.torqueResistance = 350000; try { __id103_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id111__Nivel25copy_objetos_1(){ try { __id111_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id111_.forceResistance = 350000; __id111_.speed = 0; __id111_.torque = 1000; __id111_.torqueResistance = 1000; try { __id111_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id131__Nivel25copy_objetos_1(){ try { __id131_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id131_.forceResistance = 350000; __id131_.speed = 0; __id131_.torque = 1000; __id131_.torqueResistance = 1000; try { __id131_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id129__Nivel25copy_objetos_1(){ try { __id129_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id129_.forceResistance = 350000; __id129_.speed = 0; __id129_.torque = 1000; __id129_.torqueResistance = 1000; try { __id129_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id118__Nivel25copy_objetos_1(){ try { __id118_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id118_.forceResistance = 350000; __id118_.speed = 0; __id118_.torque = 1000; __id118_.torqueResistance = 1000; try { __id118_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id138__Nivel25copy_objetos_1(){ try { __id138_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id138_.forceResistance = 350000; __id138_.speed = 0; __id138_.torque = 1000; __id138_.torqueResistance = 1000; try { __id138_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id140__Nivel25copy_objetos_1(){ try { __id140_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id140_.forceResistance = 350000; __id140_.speed = 0; __id140_.torque = 1000; __id140_.torqueResistance = 1000; try { __id140_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id120__Nivel25copy_objetos_1(){ try { __id120_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id120_.forceResistance = 350000; __id120_.speed = 0; __id120_.torque = 1000; __id120_.torqueResistance = 1000; try { __id120_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id127__Nivel25copy_objetos_1(){ try { __id127_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id127_.forceResistance = 350000; __id127_.speed = 0; __id127_.torque = 1000; __id127_.torqueResistance = 1000; try { __id127_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id136__Nivel25copy_objetos_1(){ try { __id136_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id136_.forceResistance = 350000; __id136_.speed = 0; __id136_.torque = 1000; __id136_.torqueResistance = 1000; try { __id136_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id125__Nivel25copy_objetos_1(){ try { __id125_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id125_.forceResistance = 350000; __id125_.speed = 0; __id125_.torque = 1000; __id125_.torqueResistance = 1000; try { __id125_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id116__Nivel25copy_objetos_1(){ try { __id116_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id116_.forceResistance = 350000; __id116_.speed = 0; __id116_.torque = 1000; __id116_.torqueResistance = 1000; try { __id116_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id114__Nivel25copy_objetos_1(){ try { __id114_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id114_.forceResistance = 350000; __id114_.speed = 0; __id114_.torque = 1000; __id114_.torqueResistance = 1000; try { __id114_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id134__Nivel25copy_objetos_1(){ try { __id134_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id134_.forceResistance = 350000; __id134_.speed = 0; __id134_.torque = 1000; __id134_.torqueResistance = 1000; try { __id134_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id123__Nivel25copy_objetos_1(){ try { __id123_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id123_.forceResistance = 350000; __id123_.speed = 0; __id123_.torque = 1000; __id123_.torqueResistance = 1000; try { __id123_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id112__Nivel25copy_objetos_1(){ try { __id112_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id112_.forceResistance = 350000; __id112_.speed = 0; __id112_.torque = 1000; __id112_.torqueResistance = 1000; try { __id112_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id132__Nivel25copy_objetos_1(){ try { __id132_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id132_.forceResistance = 350000; __id132_.speed = 0; __id132_.torque = 1000; __id132_.torqueResistance = 1000; try { __id132_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id119__Nivel25copy_objetos_1(){ try { __id119_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id119_.forceResistance = 350000; __id119_.speed = 0; __id119_.torque = 1000; __id119_.torqueResistance = 1000; try { __id119_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id139__Nivel25copy_objetos_1(){ try { __id139_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id139_.forceResistance = 350000; __id139_.speed = 0; __id139_.torque = 1000; __id139_.torqueResistance = 1000; try { __id139_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id121__Nivel25copy_objetos_1(){ try { __id121_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id121_.forceResistance = 350000; __id121_.speed = 0; __id121_.torque = 1000; __id121_.torqueResistance = 1000; try { __id121_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id141__Nivel25copy_objetos_1(){ try { __id141_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id141_.forceResistance = 350000; __id141_.speed = 0; __id141_.torque = 1000; __id141_.torqueResistance = 1000; try { __id141_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id128__Nivel25copy_objetos_1(){ try { __id128_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id128_.forceResistance = 350000; __id128_.speed = 0; __id128_.torque = 1000; __id128_.torqueResistance = 1000; try { __id128_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id130__Nivel25copy_objetos_1(){ try { __id130_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id130_.forceResistance = 350000; __id130_.speed = 0; __id130_.torque = 1000; __id130_.torqueResistance = 1000; try { __id130_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id137__Nivel25copy_objetos_1(){ try { __id137_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id137_.forceResistance = 350000; __id137_.speed = 0; __id137_.torque = 1000; __id137_.torqueResistance = 1000; try { __id137_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id117__Nivel25copy_objetos_1(){ try { __id117_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id117_.forceResistance = 350000; __id117_.speed = 0; __id117_.torque = 1000; __id117_.torqueResistance = 1000; try { __id117_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 185
//Nivel26 (Nivel26) package { import Game.*; public dynamic class Nivel26 extends MWLevel { public var __id146_:RevJoint; public var __id145_:RevJoint; public function Nivel26(){ __setProp___id146__Nivel26copy_pizo_1(); __setProp___id145__Nivel26copy_pizo_1(); } function __setProp___id146__Nivel26copy_pizo_1(){ try { __id146_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id146_.forceResistance = 2500000; __id146_.speed = 0.2; __id146_.torque = 2500000; __id146_.torqueResistance = 2500000; try { __id146_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id145__Nivel26copy_pizo_1(){ try { __id145_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id145_.forceResistance = 1850000; __id145_.speed = 0.8; __id145_.torque = 1850000; __id145_.torqueResistance = 1850000; try { __id145_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 186
//Nivel27 (Nivel27) package { import Game.*; public dynamic class Nivel27 extends MWLevel { } }//package
Section 187
//Nivel3 (Nivel3) package { import Game.*; public dynamic class Nivel3 extends MWLevel { public function Nivel3(){ addFrameScript(0, frame1); } function frame1(){ } } }//package
Section 188
//Nivel37 (Nivel37) package { import Game.*; public dynamic class Nivel37 extends MWLevel { public var __id170_:RevJoint; public var __id171_:RevJoint; public function Nivel37(){ __setProp___id171__Nivel37copy_pizo_1(); __setProp___id170__Nivel37copy_pizo_1(); } function __setProp___id171__Nivel37copy_pizo_1(){ try { __id171_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id171_.forceResistance = 350000; __id171_.speed = -0.6; __id171_.torque = 350000; __id171_.torqueResistance = 350000; try { __id171_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id170__Nivel37copy_pizo_1(){ try { __id170_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id170_.forceResistance = 350000; __id170_.speed = 0.6; __id170_.torque = 350000; __id170_.torqueResistance = 350000; try { __id170_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 189
//Nivel38 (Nivel38) package { import Game.*; public dynamic class Nivel38 extends MWLevel { public var __id180_:RevJoint; public function Nivel38(){ __setProp___id180__Nivel38copy_pizo_1(); } function __setProp___id180__Nivel38copy_pizo_1(){ try { __id180_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id180_.forceResistance = 2500000; __id180_.speed = -0.3; __id180_.torque = 2500000; __id180_.torqueResistance = 2500000; try { __id180_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 190
//Nivel39 (Nivel39) package { import Game.*; public dynamic class Nivel39 extends MWLevel { public var __id183_:RevJoint; public var __id184_:RevJoint; public var __id182_:RevJoint; public function Nivel39(){ __setProp___id182__Nivel39copy_pizo_1(); __setProp___id183__Nivel39copy_pizo_1(); __setProp___id184__Nivel39copy_pizo_1(); } function __setProp___id182__Nivel39copy_pizo_1(){ try { __id182_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id182_.forceResistance = 1850000; __id182_.speed = 1.5; __id182_.torque = 1850000; __id182_.torqueResistance = 1850000; try { __id182_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id183__Nivel39copy_pizo_1(){ try { __id183_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id183_.forceResistance = 35500000; __id183_.speed = 0.2; __id183_.torque = 35500000; __id183_.torqueResistance = 35500000; try { __id183_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id184__Nivel39copy_pizo_1(){ try { __id184_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id184_.forceResistance = 1850000; __id184_.speed = -1.5; __id184_.torque = 1850000; __id184_.torqueResistance = 1850000; try { __id184_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 191
//Nivel4 (Nivel4) package { import Game.*; public dynamic class Nivel4 extends MWLevel { } }//package
Section 192
//Nivel40 (Nivel40) package { import Game.*; public dynamic class Nivel40 extends MWLevel { public var __id209_:RevJoint; public var __id226_:RevJoint; public var __id227_:RevJoint; public var __id228_:RevJoint; public function Nivel40(){ __setProp___id228__Nivel40copy_objetos_1(); __setProp___id209__Nivel40copy_pizo_1(); __setProp___id227__Nivel40copy_objetos_1(); __setProp___id226__Nivel40copy_objetos_1(); } function __setProp___id209__Nivel40copy_pizo_1(){ try { __id209_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id209_.forceResistance = 99000000; __id209_.speed = 0.75; __id209_.torque = 99000000; __id209_.torqueResistance = 99000000; try { __id209_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id228__Nivel40copy_objetos_1(){ try { __id228_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id228_.forceResistance = 250000; __id228_.speed = -0.5; __id228_.torque = 25000; __id228_.torqueResistance = 25000; try { __id228_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id226__Nivel40copy_objetos_1(){ try { __id226_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id226_.forceResistance = 250000; __id226_.speed = -0.5; __id226_.torque = 25000; __id226_.torqueResistance = 25000; try { __id226_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id227__Nivel40copy_objetos_1(){ try { __id227_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id227_.forceResistance = 250000; __id227_.speed = -0.5; __id227_.torque = 25000; __id227_.torqueResistance = 25000; try { __id227_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 193
//Nivel5 (Nivel5) package { import Game.*; public dynamic class Nivel5 extends MWLevel { } }//package
Section 194
//Nivel6 (Nivel6) package { import Game.*; public dynamic class Nivel6 extends MWLevel { } }//package
Section 195
//Nivel7 (Nivel7) package { import Game.*; public dynamic class Nivel7 extends MWLevel { } }//package
Section 196
//Nivel8 (Nivel8) package { import Game.*; public dynamic class Nivel8 extends MWLevel { } }//package
Section 197
//Nivel9 (Nivel9) package { import Game.*; public dynamic class Nivel9 extends MWLevel { } }//package
Section 198
//NivelFreePlay (NivelFreePlay) package { import Game.*; public dynamic class NivelFreePlay extends MWLevel { } }//package
Section 199
//NuevoNivel2 (NuevoNivel2) package { import Game.*; public dynamic class NuevoNivel2 extends MWLevel { } }//package
Section 200
//NuevoNivel3 (NuevoNivel3) package { import Game.*; public dynamic class NuevoNivel3 extends MWLevel { } }//package
Section 201
//Obelisque (Obelisque) package { import Game.*; public dynamic class Obelisque extends MWBody { public var __id35_:RectShape; public var __id36_:RectShape; public var __id37_:RectShape; public var __id38_:RectShape; public var __id39_:RectShape; public function Obelisque(){ addFrameScript(0, frame1); __setProp___id35__Obelisque_Physics_1(); __setProp___id36__Obelisque_Physics_1(); __setProp___id37__Obelisque_Physics_1(); __setProp___id39__Obelisque_Physics_1(); __setProp___id38__Obelisque_Physics_1(); } function __setProp___id39__Obelisque_Physics_1(){ try { __id39_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id39_.categoryBits = 1; __id39_.colgroup = 0; __id39_.density = 0; __id39_.friction = 1; __id39_.maskBits = 0xFFFF; __id39_.restitution = 0.1; __id39_.sensor = false; try { __id39_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id36__Obelisque_Physics_1(){ try { __id36_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id36_.categoryBits = 1; __id36_.colgroup = 0; __id36_.density = 0; __id36_.friction = 1; __id36_.maskBits = 0xFFFF; __id36_.restitution = 0.1; __id36_.sensor = false; try { __id36_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id38__Obelisque_Physics_1(){ try { __id38_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id38_.categoryBits = 1; __id38_.colgroup = 0; __id38_.density = 0; __id38_.friction = 1; __id38_.maskBits = 0xFFFF; __id38_.restitution = 0.1; __id38_.sensor = false; try { __id38_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canDestroy = false; this.canPin = false; } function __setProp___id35__Obelisque_Physics_1(){ try { __id35_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id35_.categoryBits = 1; __id35_.colgroup = 0; __id35_.density = 0; __id35_.friction = 1; __id35_.maskBits = 0xFFFF; __id35_.restitution = 0.1; __id35_.sensor = false; try { __id35_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id37__Obelisque_Physics_1(){ try { __id37_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id37_.categoryBits = 1; __id37_.colgroup = 0; __id37_.density = 0; __id37_.friction = 1; __id37_.maskBits = 0xFFFF; __id37_.restitution = 0.1; __id37_.sensor = false; try { __id37_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 202
//Paquete (Paquete) package { public dynamic class Paquete extends Empacador { } }//package
Section 203
//Partenon (Partenon) package { import Game.*; public dynamic class Partenon extends MWBody { public var __id56_:RectShape; public var __id61_:RectShape; public var __id55_:RectShape; public var __id57_:RectShape; public var __id58_:RectShape; public var __id60_:RectShape; public var __id59_:RectShape; public function Partenon(){ addFrameScript(0, frame1); __setProp___id58__PartenonHeader_Physics_1(); __setProp___id60__PartenonHeader_Physics_1(); __setProp___id56__PartenonHeader_Physics_1(); __setProp___id61__PartenonHeader_Physics_1(); __setProp___id55__PartenonHeader_Physics_1(); __setProp___id57__PartenonHeader_Physics_1(); __setProp___id59__PartenonHeader_Physics_1(); } function __setProp___id58__PartenonHeader_Physics_1(){ try { __id58_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id58_.categoryBits = 1; __id58_.colgroup = 0; __id58_.density = 0; __id58_.friction = 1; __id58_.maskBits = 0xFFFF; __id58_.restitution = 0.1; __id58_.sensor = false; try { __id58_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id61__PartenonHeader_Physics_1(){ try { __id61_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id61_.categoryBits = 1; __id61_.colgroup = 0; __id61_.density = 0; __id61_.friction = 1; __id61_.maskBits = 0xFFFF; __id61_.restitution = 0.1; __id61_.sensor = false; try { __id61_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canDestroy = false; this.canPin = false; } function __setProp___id60__PartenonHeader_Physics_1(){ try { __id60_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id60_.categoryBits = 1; __id60_.colgroup = 0; __id60_.density = 0; __id60_.friction = 1; __id60_.maskBits = 0xFFFF; __id60_.restitution = 0.1; __id60_.sensor = false; try { __id60_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id57__PartenonHeader_Physics_1(){ try { __id57_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id57_.categoryBits = 1; __id57_.colgroup = 0; __id57_.density = 0; __id57_.friction = 1; __id57_.maskBits = 0xFFFF; __id57_.restitution = 0.1; __id57_.sensor = false; try { __id57_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id56__PartenonHeader_Physics_1(){ try { __id56_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id56_.categoryBits = 1; __id56_.colgroup = 0; __id56_.density = 0; __id56_.friction = 1; __id56_.maskBits = 0xFFFF; __id56_.restitution = 0.1; __id56_.sensor = false; try { __id56_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id59__PartenonHeader_Physics_1(){ try { __id59_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id59_.categoryBits = 1; __id59_.colgroup = 0; __id59_.density = 0; __id59_.friction = 1; __id59_.maskBits = 0xFFFF; __id59_.restitution = 0.1; __id59_.sensor = false; try { __id59_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id55__PartenonHeader_Physics_1(){ try { __id55_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id55_.categoryBits = 1; __id55_.colgroup = 0; __id55_.density = 0; __id55_.friction = 1; __id55_.maskBits = 0xFFFF; __id55_.restitution = 0.1; __id55_.sensor = false; try { __id55_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 204
//ParthenonBase (ParthenonBase) package { import Game.*; public dynamic class ParthenonBase extends MWBody { public var __id50_:RectShape; public var __id49_:RectShape; public function ParthenonBase(){ addFrameScript(0, frame1); __setProp___id50__ParthenonBase_Physics_1(); __setProp___id49__ParthenonBase_Physics_1(); } function __setProp___id50__ParthenonBase_Physics_1(){ try { __id50_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id50_.categoryBits = 1; __id50_.colgroup = 0; __id50_.density = 0; __id50_.friction = 1; __id50_.maskBits = 0xFFFF; __id50_.restitution = 0.1; __id50_.sensor = false; try { __id50_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id49__ParthenonBase_Physics_1(){ try { __id49_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id49_.categoryBits = 1; __id49_.colgroup = 0; __id49_.density = 0; __id49_.friction = 1; __id49_.maskBits = 0xFFFF; __id49_.restitution = 0.1; __id49_.sensor = false; try { __id49_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canDestroy = false; this.canPin = false; } } }//package
Section 205
//Pin (Pin) package { import Box2DIntegration.*; public dynamic class Pin extends b2iRevoluteJoint { public function Pin(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4); } function frame3(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame2(){ stop(); } } }//package
Section 206
//Piramide (Piramide) package { import Game.*; public dynamic class Piramide extends MWBody { public var __id28_:RectShape; public var __id29_:RectShape; public var __id33_:RectShape; public var __id32_:RectShape; public var __id34_:RectShape; public var __id30_:RectShape; public var __id31_:RectShape; public function Piramide(){ addFrameScript(0, frame1); __setProp___id31__Piramide_Physics_1(); __setProp___id34__Piramide_Physics_1(); __setProp___id32__Piramide_Physics_1(); __setProp___id33__Piramide_Physics_1(); __setProp___id28__Piramide_Physics_1(); __setProp___id29__Piramide_Physics_1(); __setProp___id30__Piramide_Physics_1(); } function __setProp___id33__Piramide_Physics_1(){ try { __id33_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id33_.categoryBits = 1; __id33_.colgroup = 0; __id33_.density = 0; __id33_.friction = 1; __id33_.maskBits = 0xFFFF; __id33_.restitution = 0.1; __id33_.sensor = false; try { __id33_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id29__Piramide_Physics_1(){ try { __id29_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id29_.categoryBits = 1; __id29_.colgroup = 0; __id29_.density = 0; __id29_.friction = 1; __id29_.maskBits = 0xFFFF; __id29_.restitution = 0.1; __id29_.sensor = false; try { __id29_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canDestroy = false; this.canPin = false; } function __setProp___id30__Piramide_Physics_1(){ try { __id30_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id30_.categoryBits = 1; __id30_.colgroup = 0; __id30_.density = 0; __id30_.friction = 1; __id30_.maskBits = 0xFFFF; __id30_.restitution = 0.1; __id30_.sensor = false; try { __id30_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id34__Piramide_Physics_1(){ try { __id34_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id34_.categoryBits = 1; __id34_.colgroup = 0; __id34_.density = 0; __id34_.friction = 1; __id34_.maskBits = 0xFFFF; __id34_.restitution = 0.1; __id34_.sensor = false; try { __id34_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id32__Piramide_Physics_1(){ try { __id32_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id32_.categoryBits = 1; __id32_.colgroup = 0; __id32_.density = 0; __id32_.friction = 1; __id32_.maskBits = 0xFFFF; __id32_.restitution = 0.1; __id32_.sensor = false; try { __id32_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id28__Piramide_Physics_1(){ try { __id28_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id28_.categoryBits = 1; __id28_.colgroup = 0; __id28_.density = 0; __id28_.friction = 1; __id28_.maskBits = 0xFFFF; __id28_.restitution = 0.1; __id28_.sensor = false; try { __id28_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id31__Piramide_Physics_1(){ try { __id31_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id31_.categoryBits = 1; __id31_.colgroup = 0; __id31_.density = 0; __id31_.friction = 1; __id31_.maskBits = 0xFFFF; __id31_.restitution = 0.1; __id31_.sensor = false; try { __id31_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 207
//Piston (Piston) package { import Game.*; public dynamic class Piston extends MWBody { public var __id240_:RectShape; public var __id241_:RectShape; public var __id239_:RectShape; public function Piston(){ addFrameScript(0, frame1); __setProp___id240__Piston_Physics_1(); __setProp___id241__Piston_Physics_1(); __setProp___id239__Piston_Physics_1(); } function __setProp___id239__Piston_Physics_1(){ try { __id239_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id239_.categoryBits = 1; __id239_.colgroup = 0; __id239_.density = 0.5; __id239_.friction = 0.2; __id239_.maskBits = 0xFFFF; __id239_.restitution = 0; __id239_.sensor = false; try { __id239_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canDestroy = false; this.canPin = true; } function __setProp___id241__Piston_Physics_1(){ try { __id241_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id241_.categoryBits = 1; __id241_.colgroup = 0; __id241_.density = 0.5; __id241_.friction = 0.2; __id241_.maskBits = 0xFFFF; __id241_.restitution = 0; __id241_.sensor = false; try { __id241_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id240__Piston_Physics_1(){ try { __id240_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id240_.categoryBits = 1; __id240_.colgroup = 0; __id240_.density = 0.5; __id240_.friction = 0.2; __id240_.maskBits = 0xFFFF; __id240_.restitution = 0; __id240_.sensor = false; try { __id240_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 208
//Pizo (Pizo) package { import Game.*; public dynamic class Pizo extends MWBody { public var __id0_:RectShape; public function Pizo(){ addFrameScript(0, frame1); __setProp___id0__Pizo_Layer1_1(); } function frame1(){ this.canPin = false; this.canDestroy = false; this.visible = false; } function __setProp___id0__Pizo_Layer1_1(){ try { __id0_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id0_.categoryBits = 1; __id0_.colgroup = 0; __id0_.density = 0; __id0_.friction = 0.5; __id0_.maskBits = 0xFFFF; __id0_.restitution = 0.2; __id0_.sensor = false; try { __id0_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 209
//PizoCirculo (PizoCirculo) package { import Game.*; public dynamic class PizoCirculo extends MWBody { public var __id40_:CircleShape; public function PizoCirculo(){ addFrameScript(0, frame1); __setProp___id40__PizoCirculo_Layer1_1(); } function frame1(){ this.canPin = false; this.canDestroy = false; this.visible = false; } function __setProp___id40__PizoCirculo_Layer1_1(){ try { __id40_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id40_.categoryBits = 1; __id40_.colgroup = 0; __id40_.density = 0; __id40_.friction = 0.5; __id40_.maskBits = 0xFFFF; __id40_.restitution = 0.2; __id40_.sensor = false; try { __id40_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 210
//Puff (Puff) package { import flash.display.*; public dynamic class Puff extends MovieClip { public function Puff(){ addFrameScript(20, frame21); } function frame21(){ stop(); if (this.parent){ this.parent.removeChild(this); }; } } }//package
Section 211
//Rails (Rails) package { import Game.*; public dynamic class Rails extends MWBody { public var __id201_:RectShape; public var __id200_:RectShape; public var __id202_:RectShape; public function Rails(){ addFrameScript(0, frame1); __setProp___id202__Rails_Physics_1(); __setProp___id200__Rails_Physics_1(); __setProp___id201__Rails_Physics_1(); } function frame1(){ this.canDestroy = false; this.canPin = false; } function __setProp___id201__Rails_Physics_1(){ try { __id201_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id201_.categoryBits = 1; __id201_.colgroup = 0; __id201_.density = 2; __id201_.friction = 0; __id201_.maskBits = 0xFFFF; __id201_.restitution = 0.2; __id201_.sensor = false; try { __id201_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id200__Rails_Physics_1(){ try { __id200_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id200_.categoryBits = 1; __id200_.colgroup = 0; __id200_.density = 2; __id200_.friction = 0; __id200_.maskBits = 0xFFFF; __id200_.restitution = 0.2; __id200_.sensor = false; try { __id200_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id202__Rails_Physics_1(){ try { __id202_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id202_.categoryBits = 1; __id202_.colgroup = 0; __id202_.density = 3; __id202_.friction = 0; __id202_.maskBits = 0xFFFF; __id202_.restitution = 0.2; __id202_.sensor = false; try { __id202_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 212
//RailSlip (RailSlip) package { import Game.*; public dynamic class RailSlip extends MWBody { public var __id210_:RectShape; public function RailSlip(){ addFrameScript(0, frame1); __setProp___id210__RailSlip_Physics_1(); } function frame1(){ this.canDestroy = false; this.canPin = false; } function __setProp___id210__RailSlip_Physics_1(){ try { __id210_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id210_.categoryBits = 1; __id210_.colgroup = 0; __id210_.density = 2; __id210_.friction = 0; __id210_.maskBits = 0xFFFF; __id210_.restitution = 0.2; __id210_.sensor = false; try { __id210_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 213
//RectShape (RectShape) package { import Box2DIntegration.*; public dynamic class RectShape extends b2iBoxShape { public function RectShape(){ addFrameScript(0, frame1); } function frame1(){ this.visible = false; stop(); } } }//package
Section 214
//RevJoint (RevJoint) package { import Box2DIntegration.*; public dynamic class RevJoint extends b2iRevoluteJoint { public function RevJoint(){ addFrameScript(0, frame1); } function frame1(){ this.visible = false; } } }//package
Section 215
//ScoreScreen (ScoreScreen) package { import flash.geom.*; import flash.display.*; import flash.utils.*; import flash.events.*; import Game.*; import com.adobe.crypto.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.ui.*; import flash.xml.*; public dynamic class ScoreScreen extends MovieClip { public var thanksTimer:Timer; public var more_games_button:SimpleButton; public var loader:URLLoader; public var backToMenuT:Timer; public var goToThankYouT:Timer; public var bnext:SimpleButton; public var levelScore:TextField; public var loadStatus:int; public var rollingCredits:MovieClip; public var SENT:int; public var SENDING:int; public var crayonad:MovieClip; public var NOT_SENT:int; public var totalScore:TextField; public var links:MovieClip; public var linksXRow:int; public var time:TextField; public var bsendScore:MovieClip; public var linkList:Array; public var blevelselect:SimpleButton; public var numshapes:TextField; public function ScoreScreen(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6); } public function showFailedMessage(){ } public function removeListeners():void{ loader.removeEventListener(Event.COMPLETE, completeHandler); loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); loader.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); } public function fsendScore(_arg1:Event){ switch (loadStatus){ case NOT_SENT: sendScore(); break; case SENT: navigateToURL(new URLRequest((("http://www.bubblebox.com/highscores/" + Globals.gameID) + ".htm")), "_blank"); break; case SENDING: break; }; } public function failed():void{ removeListeners(); showFailedMessage(); loadStatus = NOT_SENT; bsendScore.gotoAndStop("send"); } public function removeLinkListeners(){ var _local1:LevelLink; for each (_local1 in linkList) { _local1.removeEventListener(MouseEvent.CLICK, selectLevel); }; linkList = []; } public function onMouseClick2(_arg1:MouseEvent):void{ var _local2:URLRequest; _local2 = new URLRequest("http://www.crayonphysics.com/"); navigateToURL(_local2, "_blank"); } public function rollCredits(_arg1:Event){ rollingCredits.y = (rollingCredits.y - 2); if (rollingCredits.y < -899){ removeEventListener(Event.ENTER_FRAME, rollCredits); addEventListener(Event.ENTER_FRAME, fadeCredits, false, 0, true); }; } public function nextLevel(_arg1:Event){ Globals.currentLevel++; Globals.gameState = Globals.GAME_RESTART; this.parent.removeChild(this); } public function goBackToMenu(_arg1:Event){ backToMenuT.removeEventListener(TimerEvent.TIMER_COMPLETE, goBackToMenu); Globals.gameState = Globals.GAME_BACK_TO_MENU; this.parent.removeChild(this); } function frame4(){ } public function ioErrorHandler(_arg1:IOErrorEvent):void{ failed(); } function frame1(){ stop(); NOT_SENT = 1; SENDING = 2; SENT = 3; loader = new URLLoader(); loadStatus = NOT_SENT; more_games_button.addEventListener(MouseEvent.CLICK, moreGamesLink, false, 0, true); setup(); } public function setup(){ if (Globals.currentLevel == (Globals.numLevels - 1)){ bnext.visible = false; }; if (firstTimeCompletedAll()){ Globals.savedData.data.hasWon = true; bnext.visible = false; blevelselect.visible = false; bsendScore.visible = false; thanksTimer = new Timer(3000, 1); thanksTimer.addEventListener(TimerEvent.TIMER_COMPLETE, goThankYou, false, 0, true); thanksTimer.start(); } else { bnext.addEventListener(MouseEvent.CLICK, nextLevel, false, 0, true); blevelselect.addEventListener(MouseEvent.CLICK, flevelSelect, false, 0, true); bsendScore.addEventListener(MouseEvent.CLICK, fsendScore, false, 0, true); }; numshapes.mouseEnabled = false; } public function goToThankYou(_arg1:Event){ goToThankYouT.removeEventListener(TimerEvent.TIMER_COMPLETE, goToThankYou); gotoAndPlay("credits"); } public function securityErrorHandler(_arg1:SecurityErrorEvent):void{ failed(); } function frame3(){ stop(); goToThankYouT = new Timer(10000, 1); goToThankYouT.addEventListener(TimerEvent.TIMER_COMPLETE, goToThankYou, false, 0, true); goToThankYouT.start(); } function frame5(){ stop(); addEventListener(Event.ENTER_FRAME, rollCredits, false, 0, true); } public function flevelSelect(_arg1:Event){ this.gotoAndStop("levelSelect"); } public function moreGamesLink(_arg1:Event){ var _local2:URLRequest; _local2 = new URLRequest("http://www.bubblebox.com/clickreg.php?type=gamestats&id=1285&subid=scorescreen"); navigateToURL(_local2); } public function refreshLinks(){ var _local1:LevelLink; var _local2:int; if (links){ removeChild(links); }; links = new MovieClip(); _local2 = 1; while (_local2 < Globals.numLevels) { _local1 = new LevelLink(); _local1.levelname.text = ("" + _local2); _local1.y = (Math.floor(((_local2 - 1) / linksXRow)) * 60); _local1.x = (((_local2 - 1) % linksXRow) * 50); _local1.addEventListener(MouseEvent.CLICK, selectLevel, false, 0, true); linkList.push(_local1); links.addChild(_local1); if (Globals.savedData.data.levelScores[(_local2 - 1)] >= 0){ _local1.gotoAndStop("check"); }; _local2++; }; links.y = 150; links.x = 220; addChild(links); } function frame6(){ stop(); crayonad.alpha = 0; addEventListener(Event.ENTER_FRAME, fadeInAd, false, 0, true); crayonad.crayonLink1.addEventListener(MouseEvent.CLICK, onMouseClick2); } public function fadeCredits(_arg1:Event){ rollingCredits.alpha = (rollingCredits.alpha - 0.02); if (rollingCredits.alpha < 0.1){ removeEventListener(Event.ENTER_FRAME, fadeCredits); gotoAndStop("crayoncredit"); }; } public function firstTimeCompletedAll():Boolean{ var _local1:Array; var _local2:int; if (Globals.savedData.data.hasWon){ return (false); }; _local1 = Globals.savedData.data.levelScores; _local2 = 0; while (_local2 < (Globals.numLevels - 1)) { if (_local1[_local2] <= 0){ return (false); }; _local2++; }; return (true); } public function completeHandler(_arg1:Event):void{ loadStatus = SENT; removeListeners(); bsendScore.gotoAndStop("view"); } public function fadeInAd(_arg1:Event){ crayonad.alpha = (crayonad.alpha + 0.05); if (crayonad.alpha >= 0.95){ removeEventListener(Event.ENTER_FRAME, fadeInAd); backToMenuT = new Timer(18000, 1); backToMenuT.addEventListener(TimerEvent.TIMER_COMPLETE, goBackToMenu, false, 0, true); backToMenuT.start(); }; } public function goThankYou(_arg1:Event){ thanksTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, goThankYou); gotoAndStop("completed"); } public function selectLevel(_arg1:MouseEvent){ var _local2:int; _local2 = int(_arg1.target.levelname.text); removeLinkListeners(); this.parent.removeChild(this); Globals.currentLevel = _local2; Globals.gameState = Globals.GAME_RESTART; removeChild(links); links = null; } function frame2(){ stop(); linksXRow = 7; linkList = []; refreshLinks(); } public function sendScore(){ var _local1:int; var _local2:String; var _local3:String; var _local4:URLVariables; var _local5:String; var _local6:URLRequest; _local1 = Globals.savedData.data.bestScore; _local2 = Globals.savedData.data.player_name; _local3 = ((((((((((Globals.gameID + "_") + "4234232143214421") + "_") + _local1) + "_") + "2537625476251") + "_") + _local2) + "_") + "desleutelistessa"); _local4 = new URLVariables(); _local4.datastring = ((((Globals.gameID + "_") + _local1) + "_") + _local2); _local4.hashstring = MD5.hash(_local3); _local5 = "http://www.bubblebox.com/scripts/insertscore2008.php"; _local6 = new URLRequest(_local5); _local6.data = _local4; _local6.method = URLRequestMethod.POST; loader.dataFormat = URLLoaderDataFormat.TEXT; loader.addEventListener(Event.COMPLETE, completeHandler, false, 0, true); loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler, false, 0, true); loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler, false, 0, true); loader.load(_local6); loadStatus = SENDING; } } }//package
Section 216
//Sphinx (Sphinx) package { import flash.display.*; public dynamic class Sphinx extends MovieClip { } }//package
Section 217
//Torre (Torre) package { import Game.*; public dynamic class Torre extends MWBody { public var __id67_:RectShape; public var __id68_:RectShape; public var __id72_:RectShape; public var __id69_:RectShape; public var __id70_:RectShape; public var __id71_:RectShape; public function Torre(){ addFrameScript(0, frame1); __setProp___id69__Torre_object_1(); __setProp___id72__Torre_object_1(); __setProp___id70__Torre_object_1(); __setProp___id67__Torre_object_1(); __setProp___id71__Torre_object_1(); __setProp___id68__Torre_object_1(); } function frame1(){ this.canPin = false; this.canDestroy = false; } function __setProp___id67__Torre_object_1(){ try { __id67_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id67_.categoryBits = 1; __id67_.colgroup = 0; __id67_.density = 0; __id67_.friction = 1; __id67_.maskBits = 0xFFFF; __id67_.restitution = 0.1; __id67_.sensor = false; try { __id67_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id68__Torre_object_1(){ try { __id68_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id68_.categoryBits = 1; __id68_.colgroup = 0; __id68_.density = 0; __id68_.friction = 1; __id68_.maskBits = 0xFFFF; __id68_.restitution = 0.1; __id68_.sensor = false; try { __id68_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id69__Torre_object_1(){ try { __id69_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id69_.categoryBits = 1; __id69_.colgroup = 0; __id69_.density = 0; __id69_.friction = 1; __id69_.maskBits = 0xFFFF; __id69_.restitution = 0.1; __id69_.sensor = false; try { __id69_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id70__Torre_object_1(){ try { __id70_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id70_.categoryBits = 1; __id70_.colgroup = 0; __id70_.density = 0; __id70_.friction = 1; __id70_.maskBits = 0xFFFF; __id70_.restitution = 0.1; __id70_.sensor = false; try { __id70_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id71__Torre_object_1(){ try { __id71_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id71_.categoryBits = 1; __id71_.colgroup = 0; __id71_.density = 0; __id71_.friction = 1; __id71_.maskBits = 0xFFFF; __id71_.restitution = 0.1; __id71_.sensor = false; try { __id71_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id72__Torre_object_1(){ try { __id72_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id72_.categoryBits = 1; __id72_.colgroup = 0; __id72_.density = 0; __id72_.friction = 1; __id72_.maskBits = 0xFFFF; __id72_.restitution = 0.1; __id72_.sensor = false; try { __id72_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 218
//Trencito (Trencito) package { import Game.*; public dynamic class Trencito extends MWBody { public var __id221_:RectShape; public var __id223_:RectShape; public var __id224_:CircleShape; public var __id218_:RectShape; public var __id222_:RectShape; public var __id225_:RectShape; public var __id219_:RectShape; public var __id220_:RectShape; public function Trencito(){ addFrameScript(0, frame1); __setProp___id218__Trencito_Physics_1(); __setProp___id221__Trencito_Physics_1(); __setProp___id220__Trencito_Physics_1(); __setProp___id219__Trencito_Physics_1(); __setProp___id225__Trencito_Physics_1(); __setProp___id223__Trencito_Physics_1(); __setProp___id224__Trencito_Physics_1(); __setProp___id222__Trencito_Physics_1(); } function __setProp___id223__Trencito_Physics_1(){ try { __id223_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id223_.categoryBits = 1; __id223_.colgroup = 0; __id223_.density = 1; __id223_.friction = 0.3; __id223_.maskBits = 0xFFFF; __id223_.restitution = 0.2; __id223_.sensor = false; try { __id223_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id221__Trencito_Physics_1(){ try { __id221_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id221_.categoryBits = 1; __id221_.colgroup = 0; __id221_.density = 1; __id221_.friction = 0.3; __id221_.maskBits = 0xFFFF; __id221_.restitution = 0.2; __id221_.sensor = false; try { __id221_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id225__Trencito_Physics_1(){ try { __id225_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id225_.categoryBits = 1; __id225_.colgroup = 0; __id225_.density = 1; __id225_.friction = 0.3; __id225_.maskBits = 0xFFFF; __id225_.restitution = 0.2; __id225_.sensor = false; try { __id225_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ this.canPin = false; this.canDestroy = false; } function __setProp___id219__Trencito_Physics_1(){ try { __id219_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id219_.categoryBits = 1; __id219_.colgroup = 0; __id219_.density = 1; __id219_.friction = 0.3; __id219_.maskBits = 0xFFFF; __id219_.restitution = 0.2; __id219_.sensor = false; try { __id219_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id222__Trencito_Physics_1(){ try { __id222_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id222_.categoryBits = 1; __id222_.colgroup = 0; __id222_.density = 1; __id222_.friction = 0.3; __id222_.maskBits = 0xFFFF; __id222_.restitution = 0.2; __id222_.sensor = false; try { __id222_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id220__Trencito_Physics_1(){ try { __id220_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id220_.categoryBits = 1; __id220_.colgroup = 0; __id220_.density = 1; __id220_.friction = 0.3; __id220_.maskBits = 0xFFFF; __id220_.restitution = 0.2; __id220_.sensor = false; try { __id220_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id224__Trencito_Physics_1(){ try { __id224_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id224_.categoryBits = 1; __id224_.colgroup = 0; __id224_.density = 1; __id224_.friction = 0.1; __id224_.maskBits = 0xFFFF; __id224_.restitution = 0; __id224_.sensor = false; try { __id224_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id218__Trencito_Physics_1(){ try { __id218_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id218_.categoryBits = 1; __id218_.colgroup = 0; __id218_.density = 1; __id218_.friction = 0.3; __id218_.maskBits = 0xFFFF; __id218_.restitution = 0.2; __id218_.sensor = false; try { __id218_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package

Library Items

Symbol 1 Sound {GlassSound}
Symbol 2 FontUsed by:3
Symbol 3 TextUses:2Used by:4
Symbol 4 MovieClip {Paquete}Uses:3
Symbol 5 BitmapUsed by:6 208 319
Symbol 6 GraphicUses:5Used by:79
Symbol 7 ShapeTweeningUsed by:11
Symbol 8 ShapeTweeningUsed by:11
Symbol 9 ShapeTweeningUsed by:11
Symbol 10 GraphicUsed by:11
Symbol 11 MovieClipUses:7 8 9 10Used by:22
Symbol 12 ShapeTweeningUsed by:16
Symbol 13 ShapeTweeningUsed by:16
Symbol 14 ShapeTweeningUsed by:16
Symbol 15 GraphicUsed by:16
Symbol 16 MovieClipUses:12 13 14 15Used by:22
Symbol 17 ShapeTweeningUsed by:21
Symbol 18 ShapeTweeningUsed by:21
Symbol 19 ShapeTweeningUsed by:21
Symbol 20 GraphicUsed by:21
Symbol 21 MovieClipUses:17 18 19 20Used by:22
Symbol 22 MovieClipUses:11 16 21Used by:41
Symbol 23 BitmapUsed by:24
Symbol 24 GraphicUses:23Used by:41
Symbol 25 ShapeTweeningUsed by:29
Symbol 26 ShapeTweeningUsed by:29
Symbol 27 ShapeTweeningUsed by:29
Symbol 28 GraphicUsed by:29
Symbol 29 MovieClipUses:25 26 27 28Used by:40
Symbol 30 ShapeTweeningUsed by:34
Symbol 31 ShapeTweeningUsed by:34
Symbol 32 ShapeTweeningUsed by:34
Symbol 33 GraphicUsed by:34
Symbol 34 MovieClipUses:30 31 32 33Used by:40
Symbol 35 ShapeTweeningUsed by:39
Symbol 36 ShapeTweeningUsed by:39
Symbol 37 ShapeTweeningUsed by:39
Symbol 38 GraphicUsed by:39
Symbol 39 MovieClipUses:35 36 37 38Used by:40
Symbol 40 MovieClipUses:29 34 39Used by:41
Symbol 41 MovieClipUses:22 24 40Used by:79
Symbol 42 GraphicUsed by:48
Symbol 43 ShapeTweeningUsed by:48
Symbol 44 ShapeTweeningUsed by:48
Symbol 45 ShapeTweeningUsed by:48
Symbol 46 ShapeTweeningUsed by:48
Symbol 47 GraphicUsed by:48
Symbol 48 MovieClip {MP2_fla.Shard1_12}Uses:42 43 44 45 46 47Used by:76
Symbol 49 GraphicUsed by:55
Symbol 50 ShapeTweeningUsed by:55
Symbol 51 ShapeTweeningUsed by:55
Symbol 52 ShapeTweeningUsed by:55
Symbol 53 ShapeTweeningUsed by:55
Symbol 54 GraphicUsed by:55
Symbol 55 MovieClip {MP2_fla.Shard2_13}Uses:49 50 51 52 53 54Used by:76
Symbol 56 GraphicUsed by:62
Symbol 57 ShapeTweeningUsed by:62
Symbol 58 ShapeTweeningUsed by:62
Symbol 59 ShapeTweeningUsed by:62
Symbol 60 ShapeTweeningUsed by:62
Symbol 61 GraphicUsed by:62
Symbol 62 MovieClip {MP2_fla.Shard3_14}Uses:56 57 58 59 60 61Used by:76
Symbol 63 GraphicUsed by:68
Symbol 64 ShapeTweeningUsed by:68
Symbol 65 ShapeTweeningUsed by:68
Symbol 66 ShapeTweeningUsed by:68
Symbol 67 GraphicUsed by:68
Symbol 68 MovieClip {MP2_fla.Shard4_15}Uses:63 64 65 66 67Used by:76
Symbol 69 GraphicUsed by:75
Symbol 70 ShapeTweeningUsed by:75
Symbol 71 ShapeTweeningUsed by:75
Symbol 72 ShapeTweeningUsed by:75
Symbol 73 ShapeTweeningUsed by:75
Symbol 74 GraphicUsed by:75
Symbol 75 MovieClip {MP2_fla.Shard5_16}Uses:69 70 71 72 73 74Used by:76
Symbol 76 MovieClip {MP2_fla.WindowBreak_11}Uses:48 55 62 68 75Used by:79
Symbol 77 BitmapUsed by:78
Symbol 78 GraphicUses:77Used by:79
Symbol 79 MovieClip {MP2_fla.ORLogo_1}Uses:6 41 76 78Used by:Timeline
Symbol 80 BitmapUsed by:81
Symbol 81 GraphicUses:80Used by:1120  Timeline
Symbol 82 GraphicUsed by:87
Symbol 83 GraphicUsed by:84
Symbol 84 MovieClipUses:83Used by:87 598
Symbol 85 BitmapUsed by:86 596
Symbol 86 GraphicUses:85Used by:87
Symbol 87 MovieClip {MP2_fla.LoadingBar_17}Uses:82 84 86Used by:Timeline
Symbol 88 BitmapUsed by:92 167 197 201 208 219 256 268 286 319 338 347 370 546
Symbol 89 BitmapUsed by:92 201 208 216 338
Symbol 90 BitmapUsed by:92 158 167 338 347 365
Symbol 91 BitmapUsed by:92 212 216 279 284
Symbol 92 GraphicUses:88 89 90 91Used by:Timeline
Symbol 93 FontUsed by:94 147 348 354 366 371 446 447 451 452 456 457 461 462 466 467 471 472 483 498 508 514 519 524 529 531 533 535 548 552 554 584 592 594 1095 1096 1097 1098 1101 1102 1105 1113
Symbol 94 TextUses:93Used by:Timeline
Symbol 95 GraphicUsed by:96
Symbol 96 MovieClipUses:95Used by:Timeline
Symbol 97 BitmapUsed by:99
Symbol 98 BitmapUsed by:99
Symbol 99 GraphicUses:97 98Used by:100
Symbol 100 MovieClipUses:99Used by:102
Symbol 101 GraphicUsed by:102 1084
Symbol 102 ButtonUses:100 101Used by:103
Symbol 103 MovieClipUses:102Used by:Timeline
Symbol 104 GraphicUsed by:Timeline
Symbol 105 BitmapUsed by:106
Symbol 106 GraphicUses:105Used by:Timeline
Symbol 107 GraphicUsed by:138 156 166 172 184 196 199 203 210 214 218 221 235 249 255 263 267 273 278 283 291 301 310 313 318 324 337 340 346 352 360 369 373
Symbol 108 GraphicUsed by:109
Symbol 109 MovieClip {RectShape}Uses:108Used by:110 132 134 137 141 163 171 190 193 195 225 228 234 238 241 244 246 254 262 272 277 282 290 297 300 306 309 323 327 329 334 336 345
Symbol 110 MovieClip {Pizo}Uses:109Used by:138 156 166 172 184 203 210 214 218 249 255 263 267 273 278 283 291 301 310 313 318 324 337 340 346 352 360 369 373
Symbol 111 BitmapUsed by:115 158 546
Symbol 112 BitmapUsed by:115 146 158 176 353 365
Symbol 113 BitmapUsed by:115 164 167 179 314 330 341 365 370 421 422 1133
Symbol 114 BitmapUsed by:115 149 201 250 256 279 286 326 347 357
Symbol 115 GraphicUses:111 112 113 114Used by:116
Symbol 116 MovieClipUses:115Used by:138
Symbol 117 BitmapUsed by:118
Symbol 118 GraphicUses:117Used by:129
Symbol 119 BitmapUsed by:120
Symbol 120 GraphicUses:119Used by:129
Symbol 121 BitmapUsed by:122
Symbol 122 GraphicUses:121Used by:129
Symbol 123 BitmapUsed by:124
Symbol 124 GraphicUses:123Used by:129
Symbol 125 BitmapUsed by:126
Symbol 126 GraphicUses:125Used by:129
Symbol 127 BitmapUsed by:128
Symbol 128 GraphicUses:127Used by:129
Symbol 129 MovieClipUses:118 120 122 124 126 128Used by:132
Symbol 130 BitmapUsed by:131
Symbol 131 GraphicUses:130Used by:132
Symbol 132 MovieClip {Estrellita}Uses:109 129 131Used by:138 156 166 172 184 196 199 203 210 214 218 221 235 244 249 267 273 278 283 291 301 310 318 324 337 340 352 360 369 373 615 1081
Symbol 133 GraphicUsed by:134
Symbol 134 MovieClip {BloqueEgipcio}Uses:133 109Used by:138 172 360 373
Symbol 135 BitmapUsed by:136
Symbol 136 GraphicUses:135Used by:137
Symbol 137 MovieClip {Cajita}Uses:109 136Used by:138 221 255 291 310 1093
Symbol 138 MovieClip {Nivel2}Uses:107 110 116 132 134 137Used by:1093
Symbol 139 BitmapUsed by:140
Symbol 140 GraphicUses:139Used by:141
Symbol 141 MovieClip {EslabonNivel16}Uses:140 109Used by:156
Symbol 142 GraphicUsed by:143
Symbol 143 MovieClip {RevJoint}Uses:142Used by:156 263 283 291 301 310 313 318 324 337 346 1093
Symbol 144 BitmapUsed by:146 197 208 274 319 353 370
Symbol 145 BitmapUsed by:146 197 201 208 265 274 286 319 338 347 365 370 546
Symbol 146 GraphicUses:144 112 145Used by:148
Symbol 147 TextUses:93Used by:148
Symbol 148 MovieClipUses:146 147Used by:156
Symbol 149 GraphicUses:114Used by:150
Symbol 150 MovieClipUses:149Used by:156
Symbol 151 GraphicUsed by:152
Symbol 152 MovieClip {CircleShape}Uses:151Used by:155 178 277 290 297 317 334
Symbol 153 BitmapUsed by:154 613
Symbol 154 GraphicUses:153Used by:155
Symbol 155 MovieClip {Bolita}Uses:152 154Used by:156 166 172 184 196 199 203 210 214 218 235 249 263 267 273 278 283 301 313 318 324 337 340 346 352 360 369 373 1093
Symbol 156 MovieClip {Nivel3}Uses:107 141 143 148 150 110 132 155Used by:1093
Symbol 157 BitmapUsed by:158 353 365
Symbol 158 GraphicUses:111 90 157 112Used by:159
Symbol 159 MovieClipUses:158Used by:166
Symbol 160 BitmapUsed by:162
Symbol 161 BitmapUsed by:162
Symbol 162 GraphicUses:160 161Used by:163
Symbol 163 MovieClip {Piramide}Uses:109 162Used by:166 172 352 369
Symbol 164 GraphicUses:113Used by:165
Symbol 165 MovieClipUses:164Used by:166
Symbol 166 MovieClip {Nivel4}Uses:107 110 159 132 155 163 165Used by:1093
Symbol 167 GraphicUses:88 113 90Used by:168
Symbol 168 MovieClipUses:167Used by:172
Symbol 169 BitmapUsed by:170
Symbol 170 GraphicUses:169Used by:171
Symbol 171 MovieClip {Obelisque}Uses:109 170Used by:172 360 369
Symbol 172 MovieClip {Nivel5}Uses:107 168 110 132 155 171 134 163Used by:1093
Symbol 173 BitmapUsed by:176 247 279 302 341 421
Symbol 174 BitmapUsed by:176 247 279 302 341 421 546
Symbol 175 BitmapUsed by:176 247 279 302 341 421 546
Symbol 176 GraphicUses:112 173 174 175Used by:177
Symbol 177 MovieClipUses:176Used by:184
Symbol 178 MovieClip {PizoCirculo}Uses:152Used by:184
Symbol 179 GraphicUses:113Used by:180
Symbol 180 MovieClipUses:179Used by:184
Symbol 181 BitmapUsed by:182
Symbol 182 GraphicUses:181Used by:183
Symbol 183 MovieClip {Sphinx}Uses:182Used by:184
Symbol 184 MovieClip {Nivel6}Uses:107 177 110 178 155 132 180 183Used by:1093
Symbol 185 BitmapUsed by:186 216 219 256 265 286 311 330 338
Symbol 186 GraphicUses:185Used by:187
Symbol 187 MovieClipUses:186Used by:196
Symbol 188 BitmapUsed by:189
Symbol 189 GraphicUses:188Used by:190
Symbol 190 MovieClip {ColumnaBase}Uses:109 189Used by:196 199 203 218 221 235
Symbol 191 BitmapUsed by:192
Symbol 192 GraphicUses:191Used by:193
Symbol 193 MovieClip {ColumnaSeat}Uses:109 192Used by:196 199 203 218 221 235
Symbol 194 GraphicUsed by:195
Symbol 195 MovieClip {BloqueGriego}Uses:194 109Used by:196 199 203 218 221 324
Symbol 196 MovieClip {Nivel7}Uses:107 187 190 193 195 155 132Used by:1093
Symbol 197 GraphicUses:88 145 144Used by:198
Symbol 198 MovieClipUses:197Used by:199
Symbol 199 MovieClip {Nivel8}Uses:107 198 190 193 195 132 155Used by:1093
Symbol 200 BitmapUsed by:201 247 256 265 268 302 314 330 338 341 1122 1124 1130 1132
Symbol 201 GraphicUses:88 145 89 114 200Used by:202
Symbol 202 MovieClipUses:201Used by:203
Symbol 203 MovieClip {Nivel9}Uses:107 110 190 193 202 132 155 195Used by:1093
Symbol 204 BitmapUsed by:205
Symbol 205 GraphicUses:204Used by:206
Symbol 206 MovieClipUses:205Used by:210
Symbol 207 BitmapUsed by:208 216 276 279 286 293
Symbol 208 GraphicUses:89 88 145 144 207 5Used by:209
Symbol 209 MovieClipUses:208Used by:210
Symbol 210 MovieClip {Nivel10}Uses:107 110 206 209 132 155Used by:1093
Symbol 211 BitmapUsed by:212 274 311 341
Symbol 212 GraphicUses:91 211Used by:213
Symbol 213 MovieClipUses:212Used by:214
Symbol 214 MovieClip {Nivel12}Uses:107 110 213 132 155Used by:1093
Symbol 215 BitmapUsed by:216 338
Symbol 216 GraphicUses:91 185 89 215 207Used by:217
Symbol 217 MovieClipUses:216Used by:218
Symbol 218 MovieClip {Nivel13}Uses:107 110 217 132 155 195 190 193Used by:1093
Symbol 219 GraphicUses:185 88Used by:220
Symbol 220 MovieClipUses:219Used by:221
Symbol 221 MovieClip {Nivel14}Uses:107 220 195 190 193 132 137Used by:1093
Symbol 222 BitmapUsed by:224
Symbol 223 BitmapUsed by:224 233
Symbol 224 GraphicUses:222 223Used by:225
Symbol 225 MovieClip {ParthenonBase}Uses:109 224Used by:235
Symbol 226 BitmapUsed by:227
Symbol 227 GraphicUses:226Used by:228
Symbol 228 MovieClip {ColumnaTop}Uses:109 227Used by:235
Symbol 229 BitmapUsed by:233
Symbol 230 BitmapUsed by:233
Symbol 231 BitmapUsed by:233
Symbol 232 BitmapUsed by:233
Symbol 233 GraphicUses:229 230 223 231 232Used by:234
Symbol 234 MovieClip {Partenon}Uses:109 233Used by:235
Symbol 235 MovieClip {Nivel15}Uses:107 225 193 190 228 234 155 132Used by:1093
Symbol 236 BitmapUsed by:237
Symbol 237 GraphicUses:236Used by:238
Symbol 238 MovieClip {BigWall}Uses:109 237Used by:249 273 278
Symbol 239 BitmapUsed by:240
Symbol 240 GraphicUses:239Used by:241
Symbol 241 MovieClip {Torre}Uses:109 240Used by:249 263 267 273 283
Symbol 242 BitmapUsed by:243
Symbol 243 GraphicUses:242Used by:244
Symbol 244 MovieClip {EstrellitaObj}Uses:109 132 243Used by:249 255 263 273 301 313 324 337 346 1093
Symbol 245 GraphicUsed by:246
Symbol 246 MovieClip {BloqueMedieval}Uses:245 109Used by:249 255 267 278 283
Symbol 247 GraphicUses:175 173 174 200Used by:248
Symbol 248 MovieClipUses:247Used by:249
Symbol 249 MovieClip {Nivel16}Uses:107 110 155 238 241 132 244 246 248Used by:1093
Symbol 250 GraphicUses:114Used by:251
Symbol 251 MovieClipUses:250Used by:255
Symbol 252 BitmapUsed by:253
Symbol 253 GraphicUses:252Used by:254
Symbol 254 MovieClip {Basura}Uses:109 253Used by:255 273
Symbol 255 MovieClip {Nivel17}Uses:107 110 251 254 244 246 137Used by:1093
Symbol 256 GraphicUses:88 185 200 114Used by:257
Symbol 257 MovieClipUses:256Used by:263
Symbol 258 BitmapUsed by:259 261 281
Symbol 259 GraphicUses:258Used by:263
Symbol 260 BitmapUsed by:261 281
Symbol 261 GraphicUses:258 260Used by:262
Symbol 262 MovieClip {BloqueNivel18}Uses:109 261Used by:263 313
Symbol 263 MovieClip {Nivel18}Uses:107 110 257 259 155 241 262 143 244Used by:1093
Symbol 264 BitmapUsed by:265 338
Symbol 265 GraphicUses:264 145 185 200Used by:266
Symbol 266 MovieClipUses:265Used by:267
Symbol 267 MovieClip {Nivel19}Uses:107 110 266 132 155 241 246Used by:1093
Symbol 268 GraphicUses:88 200Used by:269
Symbol 269 MovieClipUses:268Used by:273
Symbol 270 BitmapUsed by:271
Symbol 271 GraphicUses:270Used by:272
Symbol 272 MovieClip {Muro}Uses:109 271Used by:273 278 283
Symbol 273 MovieClip {Nivel20}Uses:107 110 269 132 155 238 241 272 254 244Used by:1093
Symbol 274 GraphicUses:145 144 211Used by:275
Symbol 275 MovieClipUses:274Used by:278
Symbol 276 GraphicUses:207Used by:277
Symbol 277 MovieClip {Boulder}Uses:152 109 276Used by:278
Symbol 278 MovieClip {Nivel21}Uses:107 110 275 132 238 272 246 155 277Used by:1093
Symbol 279 GraphicUses:173 174 175 91 207 114Used by:280
Symbol 280 MovieClipUses:279Used by:283
Symbol 281 GraphicUses:260 258Used by:282
Symbol 282 MovieClip {Gate}Uses:109 281Used by:283
Symbol 283 MovieClip {Nivel22}Uses:107 110 280 132 155 241 282 143 246 272Used by:1093
Symbol 284 GraphicUses:91Used by:285
Symbol 285 MovieClipUses:284Used by:291
Symbol 286 GraphicUses:185 88 145 207 114Used by:287
Symbol 287 MovieClipUses:286Used by:291
Symbol 288 BitmapUsed by:289
Symbol 289 GraphicUses:288Used by:290
Symbol 290 MovieClip {GearPin}Uses:152 109 289Used by:291 310 313 318 324 337 346
Symbol 291 MovieClip {Nivel23}Uses:107 110 285 287 290 137 132 143Used by:1093
Symbol 292 BitmapUsed by:293 314 330 1126 1134 1135
Symbol 293 GraphicUses:207 292Used by:294
Symbol 294 MovieClipUses:293Used by:301
Symbol 295 BitmapUsed by:296
Symbol 296 GraphicUses:295Used by:297
Symbol 297 MovieClip {GearNoPin}Uses:152 109 296Used by:301 310 324 337
Symbol 298 BitmapUsed by:299
Symbol 299 GraphicUses:298Used by:300
Symbol 300 MovieClip {ChainLink}Uses:109 299Used by:301
Symbol 301 MovieClip {Nivel25}Uses:107 110 143 294 155 297 300 132 244Used by:1093
Symbol 302 GraphicUses:175 173 174 200Used by:303
Symbol 303 MovieClipUses:302Used by:310
Symbol 304 BitmapUsed by:305
Symbol 305 GraphicUses:304Used by:306
Symbol 306 MovieClip {ChainLinkAttach}Uses:109 305Used by:310 324
Symbol 307 BitmapUsed by:308
Symbol 308 GraphicUses:307Used by:309
Symbol 309 MovieClip {Cart26}Uses:109 308Used by:310 324
Symbol 310 MovieClip {Nivel26}Uses:107 110 143 303 306 132 137 297 290 309Used by:1093
Symbol 311 GraphicUses:185 211Used by:312
Symbol 312 MovieClipUses:311Used by:313
Symbol 313 MovieClip {Nivel37}Uses:107 110 143 312 290 155 262 244Used by:1093
Symbol 314 GraphicUses:113 200 292Used by:315
Symbol 315 MovieClipUses:314Used by:318
Symbol 316 GraphicUsed by:317
Symbol 317 MovieClip {Bola38}Uses:152 316Used by:318
Symbol 318 MovieClip {Nivel38}Uses:107 110 143 315 132 290 155 317Used by:1093
Symbol 319 GraphicUses:88 145 144 5Used by:320
Symbol 320 MovieClipUses:319Used by:324
Symbol 321 BitmapUsed by:322
Symbol 322 GraphicUses:321Used by:323
Symbol 323 MovieClip {Ancla}Uses:109 322Used by:324
Symbol 324 MovieClip {Nivel39}Uses:107 110 143 320 297 290 306 132 309 323 155 244 195Used by:1093
Symbol 325 BitmapUsed by:326 328 330 335 550
Symbol 326 GraphicUses:114 325Used by:327
Symbol 327 MovieClip {Rails}Uses:109 326Used by:337
Symbol 328 GraphicUses:325Used by:329
Symbol 329 MovieClip {RailSlip}Uses:109 328Used by:337
Symbol 330 GraphicUses:185 113 292 200 325Used by:331
Symbol 331 MovieClipUses:330Used by:337
Symbol 332 BitmapUsed by:333
Symbol 333 GraphicUses:332Used by:334
Symbol 334 MovieClip {Trencito}Uses:109 152 333Used by:337
Symbol 335 GraphicUses:325Used by:336
Symbol 336 MovieClip {Martillo40}Uses:109 335Used by:337
Symbol 337 MovieClip {Nivel40}Uses:107 110 327 143 329 331 132 334 297 244 155 290 336Used by:1093
Symbol 338 GraphicUses:89 90 264 145 88 185 215 200Used by:339
Symbol 339 MovieClipUses:338Used by:340
Symbol 340 MovieClip {NivelFreePlay}Uses:107 110 339 155 132Used by:1093
Symbol 341 GraphicUses:174 175 173 211 200 113Used by:342
Symbol 342 MovieClipUses:341Used by:346
Symbol 343 BitmapUsed by:344
Symbol 344 GraphicUses:343Used by:345
Symbol 345 MovieClip {Piston}Uses:109 344Used by:346
Symbol 346 MovieClip {Nivel24}Uses:107 110 143 342 345 244 155 290Used by:1093
Symbol 347 GraphicUses:114 88 145 90Used by:350
Symbol 348 TextUses:93Used by:350
Symbol 349 GraphicUsed by:350
Symbol 350 MovieClipUses:347 348 349Used by:352
Symbol 351 GraphicUsed by:352
Symbol 352 MovieClip {Nivel1}Uses:107 110 350 155 163 132 351Used by:1093
Symbol 353 GraphicUses:112 144 157Used by:356
Symbol 354 TextUses:93Used by:356
Symbol 355 GraphicUsed by:356
Symbol 356 MovieClipUses:353 354 355Used by:360
Symbol 357 GraphicUses:114Used by:358
Symbol 358 MovieClipUses:357Used by:360
Symbol 359 GraphicUsed by:360
Symbol 360 MovieClip {Nivel27}Uses:107 110 134 356 358 359 132 155 171Used by:1093
Symbol 361 Bitmap {Brush1}Used by:1093
Symbol 362 Bitmap {Brush2}Used by:1093
Symbol 363 Bitmap {Brush3}Used by:1093
Symbol 364 Bitmap {Brush4}Used by:1093
Symbol 365 GraphicUses:145 157 112 90 113Used by:368
Symbol 366 TextUses:93Used by:368
Symbol 367 GraphicUsed by:368
Symbol 368 MovieClipUses:365 366 367Used by:369
Symbol 369 MovieClip {NuevoNivel2}Uses:107 110 171 368 132 155 163Used by:1093
Symbol 370 GraphicUses:88 144 145 113Used by:372
Symbol 371 TextUses:93Used by:372
Symbol 372 MovieClipUses:370 371Used by:373
Symbol 373 MovieClip {NuevoNivel3}Uses:107 110 372 134 132 155Used by:1093
Symbol 374 GraphicUsed by:383
Symbol 375 BitmapUsed by:376 829 971
Symbol 376 GraphicUses:375Used by:383
Symbol 377 BitmapUsed by:378 864 1005
Symbol 378 GraphicUses:377Used by:383
Symbol 379 BitmapUsed by:380 688 800 827 909
Symbol 380 GraphicUses:379Used by:383
Symbol 381 BitmapUsed by:382 743 829 864 966
Symbol 382 GraphicUses:381Used by:383
Symbol 383 MovieClip {Pin}Uses:374 376 378 380 382Used by:1093
Symbol 384 BitmapUsed by:385
Symbol 385 GraphicUses:384Used by:420 684 744 772
Symbol 386 BitmapUsed by:387
Symbol 387 GraphicUses:386Used by:402 1080
Symbol 388 BitmapUsed by:389
Symbol 389 GraphicUses:388Used by:402 1080
Symbol 390 BitmapUsed by:391
Symbol 391 GraphicUses:390Used by:402 1080
Symbol 392 BitmapUsed by:393
Symbol 393 GraphicUses:392Used by:402 1080
Symbol 394 BitmapUsed by:395
Symbol 395 GraphicUses:394Used by:402 1080
Symbol 396 BitmapUsed by:397
Symbol 397 GraphicUses:396Used by:402 1080
Symbol 398 BitmapUsed by:399
Symbol 399 GraphicUses:398Used by:402 1080
Symbol 400 BitmapUsed by:401
Symbol 401 GraphicUses:400Used by:402 1080
Symbol 402 MovieClip {MP2_fla.Vientote_138}Uses:387 389 391 393 395 397 399 401Used by:420
Symbol 403 BitmapUsed by:404
Symbol 404 GraphicUses:403Used by:420 1077
Symbol 405 BitmapUsed by:406
Symbol 406 GraphicUses:405Used by:420 1064
Symbol 407 BitmapUsed by:408
Symbol 408 GraphicUses:407Used by:420 967
Symbol 409 BitmapUsed by:410
Symbol 410 GraphicUses:409Used by:419
Symbol 411 BitmapUsed by:412
Symbol 412 GraphicUses:411Used by:419
Symbol 413 BitmapUsed by:414
Symbol 414 GraphicUses:413Used by:419
Symbol 415 BitmapUsed by:416
Symbol 416 GraphicUses:415Used by:419
Symbol 417 BitmapUsed by:418
Symbol 418 GraphicUses:417Used by:419
Symbol 419 MovieClip {MP2_fla.PushCursor_139}Uses:410 412 414 416 418Used by:420 1081
Symbol 420 MovieClip {Cursor}Uses:385 402 404 406 408 419Used by:1093
Symbol 421 GraphicUses:173 174 175 113Used by:425 1085
Symbol 422 ShapeTweeningUses:113Used by:424
Symbol 423 GraphicUsed by:424
Symbol 424 MovieClip {MP2_fla.StarPuffy_142}Uses:422 423Used by:425 561 1085 1091
Symbol 425 MovieClipUses:421 424Used by:442 561  Timeline
Symbol 426 FontUsed by:427 431 433 440 478 490 492 528 530 532 534 537 538 539 540 541 547 583 603 609 616 617 639 640 685 686 745 746 773 774 906 907 968 969 1065 1066 1078 1079 1082 1083 1095 1096 1097 1098 1104 1105 1106 1109 1110 1111 1113 1121 1123 1128 1131 1137
Symbol 427 TextUses:426Used by:442
Symbol 428 BitmapUsed by:429 430
Symbol 429 GraphicUses:428Used by:432
Symbol 430 GraphicUses:428Used by:432
Symbol 431 TextUses:426Used by:432
Symbol 432 ButtonUses:429 430 431Used by:442 1085
Symbol 433 TextUses:426Used by:439
Symbol 434 ShapeTweeningUsed by:437
Symbol 435 GraphicUsed by:437
Symbol 436 GraphicUsed by:437
Symbol 437 MovieClip {MP2_fla.Subrayar_145}Uses:434 435 436Used by:439 441 1108 1112 1127 1129 1136
Symbol 438 GraphicUsed by:439 441
Symbol 439 ButtonUses:433 437 438Used by:442  Timeline
Symbol 440 TextUses:426Used by:441
Symbol 441 ButtonUses:440 437 438Used by:442  Timeline
Symbol 442 MovieClip {InGameLevelSelect}Uses:425 427 432 439 441Used by:1093
Symbol 443 GraphicUsed by:495 598
Symbol 444 BitmapUsed by:445
Symbol 445 GraphicUses:444Used by:448
Symbol 446 TextUses:93Used by:448
Symbol 447 TextUses:93Used by:448
Symbol 448 ButtonUses:445 446 447Used by:474
Symbol 449 BitmapUsed by:450
Symbol 450 GraphicUses:449Used by:453
Symbol 451 TextUses:93Used by:453
Symbol 452 TextUses:93Used by:453
Symbol 453 ButtonUses:450 451 452Used by:474
Symbol 454 BitmapUsed by:455
Symbol 455 GraphicUses:454Used by:458
Symbol 456 TextUses:93Used by:458
Symbol 457 TextUses:93Used by:458
Symbol 458 ButtonUses:455 456 457Used by:474
Symbol 459 BitmapUsed by:460
Symbol 460 GraphicUses:459Used by:463
Symbol 461 TextUses:93Used by:463
Symbol 462 TextUses:93Used by:463
Symbol 463 ButtonUses:460 461 462Used by:474
Symbol 464 BitmapUsed by:465
Symbol 465 GraphicUses:464Used by:468
Symbol 466 TextUses:93Used by:468
Symbol 467 TextUses:93Used by:468
Symbol 468 ButtonUses:465 466 467Used by:474
Symbol 469 BitmapUsed by:470
Symbol 470 GraphicUses:469Used by:473
Symbol 471 TextUses:93Used by:473
Symbol 472 TextUses:93Used by:473
Symbol 473 ButtonUses:470 471 472Used by:474
Symbol 474 MovieClip {MP2_fla.tips_148}Uses:448 453 458 463 468 473Used by:495
Symbol 475 BitmapUsed by:476 477
Symbol 476 GraphicUses:475Used by:479
Symbol 477 GraphicUses:475Used by:479
Symbol 478 TextUses:426Used by:479
Symbol 479 ButtonUses:476 477 478Used by:494
Symbol 480 BitmapUsed by:481 482
Symbol 481 GraphicUses:480Used by:484
Symbol 482 GraphicUses:480Used by:484
Symbol 483 TextUses:93Used by:484 510
Symbol 484 ButtonUses:481 482 483Used by:494 561
Symbol 485 BitmapUsed by:486 489
Symbol 486 GraphicUses:485Used by:493
Symbol 487 BitmapUsed by:488 491
Symbol 488 GraphicUses:487Used by:493
Symbol 489 GraphicUses:485Used by:493
Symbol 490 TextUses:426Used by:493
Symbol 491 GraphicUses:487Used by:493
Symbol 492 TextUses:426Used by:493
Symbol 493 MovieClip {MP2_fla.MusicButton_158}Uses:486 488 489 490 491 492Used by:494
Symbol 494 MovieClip {MP2_fla.main_155}Uses:479 484 493Used by:495
Symbol 495 MovieClip {InGameUI}Uses:443 474 494Used by:1093
Symbol 496 GraphicUsed by:505
Symbol 497 GraphicUsed by:505
Symbol 498 EditableTextUses:93Used by:505
Symbol 499 BitmapUsed by:500 1122 1125 1126 1130 1133 1134 1135
Symbol 500 GraphicUses:499Used by:505
Symbol 501 GraphicUsed by:505
Symbol 502 GraphicUsed by:505
Symbol 503 BitmapUsed by:504
Symbol 504 GraphicUses:503Used by:505
Symbol 505 MovieClip {LevelLink}Uses:496 497 498 500 501 502 504Used by:1093
Symbol 506 BitmapUsed by:507 509
Symbol 507 GraphicUses:506Used by:510
Symbol 508 TextUses:93Used by:510
Symbol 509 GraphicUses:506Used by:510
Symbol 510 ButtonUses:507 508 509 483Used by:561
Symbol 511 BitmapUsed by:512 513
Symbol 512 GraphicUses:511Used by:515
Symbol 513 GraphicUses:511Used by:515
Symbol 514 EditableTextUses:93Used by:515
Symbol 515 ButtonUses:512 513 514Used by:561
Symbol 516 MovieClipUsed by:521
Symbol 517 BitmapUsed by:518 520
Symbol 518 GraphicUses:517Used by:521
Symbol 519 TextUses:93Used by:521
Symbol 520 GraphicUses:517Used by:521
Symbol 521 ButtonUses:516 518 519 520Used by:527
Symbol 522 BitmapUsed by:523 525
Symbol 523 GraphicUses:522Used by:526
Symbol 524 TextUses:93Used by:526
Symbol 525 GraphicUses:522Used by:526
Symbol 526 ButtonUses:523 524 525Used by:527
Symbol 527 MovieClip {MP2_fla.SendScore_163}Uses:521 526Used by:561
Symbol 528 TextUses:426Used by:561
Symbol 529 EditableTextUses:93Used by:561
Symbol 530 TextUses:426Used by:561
Symbol 531 EditableTextUses:93Used by:561
Symbol 532 TextUses:426Used by:561
Symbol 533 EditableTextUses:93Used by:561
Symbol 534 TextUses:426Used by:561
Symbol 535 EditableTextUses:93Used by:561
Symbol 536 GraphicUsed by:561
Symbol 537 TextUses:426Used by:561
Symbol 538 TextUses:426Used by:561
Symbol 539 TextUses:426Used by:561
Symbol 540 TextUses:426Used by:561
Symbol 541 TextUses:426Used by:561
Symbol 542 BitmapUsed by:546 1094
Symbol 543 BitmapUsed by:546 576 580
Symbol 544 BitmapUsed by:546 568 572 573
Symbol 545 BitmapUsed by:546 562
Symbol 546 GraphicUses:175 174 542 111 145 88 543 544 545Used by:561
Symbol 547 TextUses:426Used by:561
Symbol 548 TextUses:93Used by:561
Symbol 549 GraphicUsed by:561
Symbol 550 GraphicUses:325Used by:551
Symbol 551 MovieClipUses:550Used by:561
Symbol 552 TextUses:93Used by:553
Symbol 553 MovieClipUses:552Used by:561
Symbol 554 TextUses:93Used by:560
Symbol 555 FontUsed by:556 558
Symbol 556 EditableTextUses:555 557Used by:559
Symbol 557 FontUsed by:556 558
Symbol 558 EditableTextUses:555 557Used by:559
Symbol 559 ButtonUses:556 558Used by:560
Symbol 560 MovieClip {MP2_fla.CrayonAd_169}Uses:554 559Used by:561
Symbol 561 MovieClip {ScoreScreen}Uses:425 510 515 484 527 528 529 530 531 532 533 534 535 536 537 538 539 424 540 541 546 547 548 549 551 553 560Used by:1093
Symbol 562 GraphicUses:545Used by:567
Symbol 563 BitmapUsed by:564
Symbol 564 GraphicUses:563Used by:565
Symbol 565 MovieClipUses:564Used by:567
Symbol 566 GraphicUsed by:567
Symbol 567 ButtonUses:562 565 566Used by:1093  Timeline
Symbol 568 GraphicUses:544Used by:575
Symbol 569 BitmapUsed by:570
Symbol 570 GraphicUses:569Used by:571
Symbol 571 MovieClipUses:570Used by:575
Symbol 572 GraphicUses:544Used by:575
Symbol 573 GraphicUses:544Used by:575
Symbol 574 GraphicUsed by:575
Symbol 575 ButtonUses:568 571 572 573 574Used by:1093  Timeline
Symbol 576 GraphicUses:543Used by:582
Symbol 577 BitmapUsed by:578
Symbol 578 GraphicUses:577Used by:579
Symbol 579 MovieClipUses:578Used by:582
Symbol 580 GraphicUses:543Used by:582
Symbol 581 GraphicUsed by:582
Symbol 582 ButtonUses:576 579 580 581Used by:1093  Timeline
Symbol 583 EditableTextUses:426Used by:587
Symbol 584 TextUses:93Used by:587
Symbol 585 FontUsed by:586
Symbol 586 EditableTextUses:585Used by:587
Symbol 587 MovieClip {MP2_fla.LevelNum_178}Uses:583 584 586Used by:598
Symbol 588 BitmapUsed by:589
Symbol 589 GraphicUses:588Used by:595
Symbol 590 BitmapUsed by:591 593
Symbol 591 GraphicUses:590Used by:595
Symbol 592 TextUses:93Used by:595
Symbol 593 GraphicUses:590Used by:595
Symbol 594 TextUses:93Used by:595
Symbol 595 ButtonUses:589 591 592 593 594Used by:598
Symbol 596 GraphicUses:85Used by:597
Symbol 597 MovieClipUses:596Used by:598
Symbol 598 MovieClip {InGameSuperUI}Uses:443 587 595 84 597Used by:1093
Symbol 599 GraphicUsed by:1084
Symbol 600 BitmapUsed by:601 602 607 608
Symbol 601 GraphicUses:600Used by:606
Symbol 602 GraphicUses:600Used by:606
Symbol 603 TextUses:426Used by:606
Symbol 604 BitmapUsed by:605 611
Symbol 605 GraphicUses:604Used by:606
Symbol 606 ButtonUses:601 602 603 605Used by:1084
Symbol 607 GraphicUses:600Used by:610
Symbol 608 GraphicUses:600Used by:610
Symbol 609 TextUses:426Used by:610
Symbol 610 ButtonUses:607 608 609Used by:1084
Symbol 611 GraphicUses:604Used by:612
Symbol 612 MovieClipUses:611Used by:1084
Symbol 613 GraphicUses:153Used by:614
Symbol 614 MovieClipUses:613Used by:615 1081
Symbol 615 MovieClipUses:614 132Used by:1084
Symbol 616 TextUses:426Used by:1084
Symbol 617 TextUses:426Used by:1084
Symbol 618 GraphicUsed by:638
Symbol 619 GraphicUsed by:638
Symbol 620 GraphicUsed by:638
Symbol 621 GraphicUsed by:638
Symbol 622 GraphicUsed by:638
Symbol 623 GraphicUsed by:638
Symbol 624 GraphicUsed by:638
Symbol 625 GraphicUsed by:638
Symbol 626 GraphicUsed by:638
Symbol 627 GraphicUsed by:638
Symbol 628 GraphicUsed by:638
Symbol 629 GraphicUsed by:638
Symbol 630 GraphicUsed by:638
Symbol 631 GraphicUsed by:638
Symbol 632 GraphicUsed by:638
Symbol 633 GraphicUsed by:638
Symbol 634 GraphicUsed by:638
Symbol 635 GraphicUsed by:638
Symbol 636 GraphicUsed by:638
Symbol 637 GraphicUsed by:638
Symbol 638 MovieClipUses:618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637Used by:1084
Symbol 639 TextUses:426Used by:1084
Symbol 640 TextUses:426Used by:1084
Symbol 641 GraphicUsed by:684
Symbol 642 GraphicUsed by:684
Symbol 643 GraphicUsed by:684
Symbol 644 GraphicUsed by:684
Symbol 645 GraphicUsed by:684
Symbol 646 GraphicUsed by:684
Symbol 647 GraphicUsed by:684
Symbol 648 GraphicUsed by:684
Symbol 649 GraphicUsed by:684
Symbol 650 GraphicUsed by:684
Symbol 651 GraphicUsed by:684
Symbol 652 GraphicUsed by:684
Symbol 653 GraphicUsed by:684
Symbol 654 GraphicUsed by:684
Symbol 655 GraphicUsed by:684
Symbol 656 GraphicUsed by:684
Symbol 657 GraphicUsed by:684
Symbol 658 GraphicUsed by:684
Symbol 659 GraphicUsed by:684
Symbol 660 GraphicUsed by:684
Symbol 661 GraphicUsed by:684
Symbol 662 GraphicUsed by:684
Symbol 663 GraphicUsed by:684
Symbol 664 GraphicUsed by:684
Symbol 665 GraphicUsed by:684
Symbol 666 GraphicUsed by:684
Symbol 667 GraphicUsed by:684
Symbol 668 GraphicUsed by:684
Symbol 669 GraphicUsed by:684
Symbol 670 GraphicUsed by:684
Symbol 671 GraphicUsed by:684
Symbol 672 GraphicUsed by:684
Symbol 673 GraphicUsed by:684
Symbol 674 GraphicUsed by:684
Symbol 675 GraphicUsed by:684
Symbol 676 GraphicUsed by:684
Symbol 677 GraphicUsed by:684
Symbol 678 GraphicUsed by:684
Symbol 679 GraphicUsed by:684
Symbol 680 GraphicUsed by:684
Symbol 681 GraphicUsed by:684
Symbol 682 GraphicUsed by:684
Symbol 683 GraphicUsed by:684
Symbol 684 MovieClipUses:385 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683Used by:1084
Symbol 685 TextUses:426Used by:1084
Symbol 686 TextUses:426Used by:1084
Symbol 687 GraphicUsed by:744
Symbol 688 GraphicUses:379Used by:744
Symbol 689 GraphicUsed by:744
Symbol 690 GraphicUsed by:744
Symbol 691 GraphicUsed by:744
Symbol 692 GraphicUsed by:744
Symbol 693 GraphicUsed by:744
Symbol 694 GraphicUsed by:744
Symbol 695 GraphicUsed by:744
Symbol 696 GraphicUsed by:744
Symbol 697 GraphicUsed by:744
Symbol 698 GraphicUsed by:744
Symbol 699 GraphicUsed by:744
Symbol 700 GraphicUsed by:744
Symbol 701 GraphicUsed by:744
Symbol 702 GraphicUsed by:744
Symbol 703 GraphicUsed by:744
Symbol 704 GraphicUsed by:744
Symbol 705 GraphicUsed by:744
Symbol 706 GraphicUsed by:744
Symbol 707 GraphicUsed by:744
Symbol 708 GraphicUsed by:744
Symbol 709 GraphicUsed by:744
Symbol 710 GraphicUsed by:744
Symbol 711 GraphicUsed by:744
Symbol 712 GraphicUsed by:744
Symbol 713 GraphicUsed by:744
Symbol 714 GraphicUsed by:744
Symbol 715 GraphicUsed by:744
Symbol 716 GraphicUsed by:744
Symbol 717 GraphicUsed by:744
Symbol 718 GraphicUsed by:744
Symbol 719 GraphicUsed by:744
Symbol 720 GraphicUsed by:744
Symbol 721 GraphicUsed by:744
Symbol 722 GraphicUsed by:744
Symbol 723 GraphicUsed by:744
Symbol 724 GraphicUsed by:744
Symbol 725 GraphicUsed by:744
Symbol 726 GraphicUsed by:744
Symbol 727 GraphicUsed by:744
Symbol 728 GraphicUsed by:744
Symbol 729 GraphicUsed by:744
Symbol 730 GraphicUsed by:744
Symbol 731 GraphicUsed by:744
Symbol 732 GraphicUsed by:744
Symbol 733 GraphicUsed by:744
Symbol 734 GraphicUsed by:744
Symbol 735 GraphicUsed by:744
Symbol 736 GraphicUsed by:744
Symbol 737 GraphicUsed by:744
Symbol 738 GraphicUsed by:744
Symbol 739 GraphicUsed by:744
Symbol 740 GraphicUsed by:744
Symbol 741 GraphicUsed by:744
Symbol 742 GraphicUsed by:744
Symbol 743 GraphicUses:381Used by:744
Symbol 744 MovieClipUses:687 688 385 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743Used by:1084
Symbol 745 TextUses:426Used by:1084
Symbol 746 TextUses:426Used by:1084
Symbol 747 GraphicUsed by:772
Symbol 748 GraphicUsed by:772
Symbol 749 GraphicUsed by:772
Symbol 750 GraphicUsed by:772
Symbol 751 GraphicUsed by:772
Symbol 752 GraphicUsed by:772
Symbol 753 GraphicUsed by:772
Symbol 754 GraphicUsed by:772
Symbol 755 GraphicUsed by:772
Symbol 756 GraphicUsed by:772
Symbol 757 GraphicUsed by:772
Symbol 758 GraphicUsed by:772
Symbol 759 GraphicUsed by:772
Symbol 760 GraphicUsed by:772
Symbol 761 GraphicUsed by:772
Symbol 762 GraphicUsed by:772
Symbol 763 GraphicUsed by:772
Symbol 764 GraphicUsed by:772
Symbol 765 GraphicUsed by:772
Symbol 766 GraphicUsed by:772
Symbol 767 GraphicUsed by:772
Symbol 768 GraphicUsed by:772
Symbol 769 GraphicUsed by:772
Symbol 770 GraphicUsed by:772
Symbol 771 GraphicUsed by:772
Symbol 772 MovieClipUses:385 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771Used by:1084
Symbol 773 TextUses:426Used by:1084
Symbol 774 TextUses:426Used by:1084
Symbol 775 GraphicUsed by:905
Symbol 776 GraphicUsed by:905
Symbol 777 GraphicUsed by:905
Symbol 778 GraphicUsed by:905
Symbol 779 GraphicUsed by:905
Symbol 780 GraphicUsed by:905
Symbol 781 GraphicUsed by:905
Symbol 782 GraphicUsed by:905
Symbol 783 GraphicUsed by:905
Symbol 784 GraphicUsed by:905
Symbol 785 GraphicUsed by:905
Symbol 786 GraphicUsed by:905
Symbol 787 GraphicUsed by:905
Symbol 788 GraphicUsed by:905
Symbol 789 GraphicUsed by:905
Symbol 790 GraphicUsed by:905
Symbol 791 GraphicUsed by:905
Symbol 792 GraphicUsed by:905
Symbol 793 GraphicUsed by:905
Symbol 794 GraphicUsed by:905
Symbol 795 GraphicUsed by:905
Symbol 796 GraphicUsed by:905
Symbol 797 GraphicUsed by:905
Symbol 798 GraphicUsed by:905
Symbol 799 GraphicUsed by:905
Symbol 800 GraphicUses:379Used by:905
Symbol 801 GraphicUsed by:905
Symbol 802 GraphicUsed by:905
Symbol 803 GraphicUsed by:905
Symbol 804 GraphicUsed by:905
Symbol 805 GraphicUsed by:905
Symbol 806 GraphicUsed by:905
Symbol 807 GraphicUsed by:905
Symbol 808 GraphicUsed by:905
Symbol 809 GraphicUsed by:905
Symbol 810 GraphicUsed by:905
Symbol 811 GraphicUsed by:905
Symbol 812 GraphicUsed by:905
Symbol 813 GraphicUsed by:905
Symbol 814 GraphicUsed by:905
Symbol 815 GraphicUsed by:905
Symbol 816 GraphicUsed by:905
Symbol 817 GraphicUsed by:905
Symbol 818 GraphicUsed by:905
Symbol 819 GraphicUsed by:905
Symbol 820 GraphicUsed by:905
Symbol 821 GraphicUsed by:905
Symbol 822 GraphicUsed by:905
Symbol 823 GraphicUsed by:905
Symbol 824 GraphicUsed by:905
Symbol 825 GraphicUsed by:905
Symbol 826 GraphicUsed by:905
Symbol 827 GraphicUses:379Used by:905
Symbol 828 GraphicUsed by:905
Symbol 829 GraphicUses:375 381Used by:905
Symbol 830 GraphicUsed by:905
Symbol 831 GraphicUsed by:905
Symbol 832 GraphicUsed by:905
Symbol 833 GraphicUsed by:905
Symbol 834 GraphicUsed by:905
Symbol 835 GraphicUsed by:905
Symbol 836 GraphicUsed by:905
Symbol 837 GraphicUsed by:905
Symbol 838 GraphicUsed by:905
Symbol 839 GraphicUsed by:905
Symbol 840 GraphicUsed by:905
Symbol 841 GraphicUsed by:905
Symbol 842 GraphicUsed by:905
Symbol 843 GraphicUsed by:905
Symbol 844 GraphicUsed by:905
Symbol 845 GraphicUsed by:905
Symbol 846 GraphicUsed by:905
Symbol 847 GraphicUsed by:905
Symbol 848 GraphicUsed by:905
Symbol 849 GraphicUsed by:905
Symbol 850 GraphicUsed by:905
Symbol 851 GraphicUsed by:905
Symbol 852 GraphicUsed by:905
Symbol 853 GraphicUsed by:905
Symbol 854 GraphicUsed by:905
Symbol 855 GraphicUsed by:905
Symbol 856 GraphicUsed by:905
Symbol 857 GraphicUsed by:905
Symbol 858 GraphicUsed by:905
Symbol 859 GraphicUsed by:905
Symbol 860 GraphicUsed by:905
Symbol 861 GraphicUsed by:905
Symbol 862 GraphicUsed by:905
Symbol 863 GraphicUsed by:905
Symbol 864 GraphicUses:377 381Used by:905
Symbol 865 GraphicUsed by:905
Symbol 866 GraphicUsed by:905
Symbol 867 GraphicUsed by:905
Symbol 868 GraphicUsed by:905
Symbol 869 GraphicUsed by:905
Symbol 870 GraphicUsed by:905
Symbol 871 GraphicUsed by:905
Symbol 872 GraphicUsed by:905
Symbol 873 GraphicUsed by:905
Symbol 874 GraphicUsed by:905
Symbol 875 GraphicUsed by:905
Symbol 876 GraphicUsed by:905
Symbol 877 GraphicUsed by:905
Symbol 878 GraphicUsed by:905
Symbol 879 GraphicUsed by:905
Symbol 880 GraphicUsed by:905
Symbol 881 GraphicUsed by:905
Symbol 882 GraphicUsed by:905
Symbol 883 GraphicUsed by:905
Symbol 884 GraphicUsed by:905
Symbol 885 GraphicUsed by:905
Symbol 886 GraphicUsed by:905
Symbol 887 GraphicUsed by:905
Symbol 888 GraphicUsed by:905
Symbol 889 GraphicUsed by:905
Symbol 890 GraphicUsed by:905
Symbol 891 GraphicUsed by:905
Symbol 892 GraphicUsed by:905
Symbol 893 GraphicUsed by:905
Symbol 894 GraphicUsed by:905
Symbol 895 GraphicUsed by:905
Symbol 896 GraphicUsed by:905
Symbol 897 GraphicUsed by:905
Symbol 898 GraphicUsed by:905
Symbol 899 GraphicUsed by:905
Symbol 900 GraphicUsed by:905
Symbol 901 GraphicUsed by:905
Symbol 902 GraphicUsed by:905
Symbol 903 GraphicUsed by:905
Symbol 904 GraphicUsed by:905
Symbol 905 MovieClipUses:775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904Used by:1084
Symbol 906 TextUses:426Used by:1084
Symbol 907 TextUses:426Used by:1084
Symbol 908 GraphicUsed by:967
Symbol 909 GraphicUses:379Used by:967
Symbol 910 GraphicUsed by:967
Symbol 911 GraphicUsed by:967
Symbol 912 GraphicUsed by:967
Symbol 913 GraphicUsed by:967
Symbol 914 GraphicUsed by:967
Symbol 915 GraphicUsed by:967
Symbol 916 GraphicUsed by:967
Symbol 917 GraphicUsed by:967
Symbol 918 GraphicUsed by:967
Symbol 919 GraphicUsed by:967
Symbol 920 GraphicUsed by:967
Symbol 921 GraphicUsed by:967
Symbol 922 GraphicUsed by:967
Symbol 923 GraphicUsed by:967
Symbol 924 GraphicUsed by:967
Symbol 925 GraphicUsed by:967
Symbol 926 GraphicUsed by:967
Symbol 927 GraphicUsed by:967
Symbol 928 GraphicUsed by:967
Symbol 929 GraphicUsed by:967
Symbol 930 GraphicUsed by:967
Symbol 931 GraphicUsed by:967
Symbol 932 GraphicUsed by:967
Symbol 933 GraphicUsed by:967
Symbol 934 GraphicUsed by:967
Symbol 935 GraphicUsed by:967
Symbol 936 GraphicUsed by:967
Symbol 937 GraphicUsed by:967
Symbol 938 GraphicUsed by:967
Symbol 939 GraphicUsed by:967
Symbol 940 GraphicUsed by:967
Symbol 941 GraphicUsed by:967
Symbol 942 GraphicUsed by:967
Symbol 943 GraphicUsed by:967
Symbol 944 GraphicUsed by:967
Symbol 945 GraphicUsed by:967
Symbol 946 GraphicUsed by:967
Symbol 947 GraphicUsed by:967
Symbol 948 GraphicUsed by:967
Symbol 949 GraphicUsed by:967
Symbol 950 GraphicUsed by:967
Symbol 951 GraphicUsed by:967
Symbol 952 GraphicUsed by:967
Symbol 953 GraphicUsed by:967
Symbol 954 GraphicUsed by:967
Symbol 955 GraphicUsed by:967
Symbol 956 GraphicUsed by:967
Symbol 957 GraphicUsed by:967
Symbol 958 GraphicUsed by:967
Symbol 959 GraphicUsed by:967
Symbol 960 GraphicUsed by:967
Symbol 961 GraphicUsed by:967
Symbol 962 GraphicUsed by:967
Symbol 963 GraphicUsed by:967
Symbol 964 GraphicUsed by:967
Symbol 965 GraphicUsed by:967
Symbol 966 GraphicUses:381Used by:967
Symbol 967 MovieClipUses:908 408 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966Used by:1084
Symbol 968 TextUses:426Used by:1084
Symbol 969 TextUses:426Used by:1084
Symbol 970 GraphicUsed by:1064
Symbol 971 GraphicUses:375Used by:1064
Symbol 972 GraphicUsed by:1064
Symbol 973 GraphicUsed by:1064
Symbol 974 GraphicUsed by:1064
Symbol 975 GraphicUsed by:1064
Symbol 976 GraphicUsed by:1064
Symbol 977 GraphicUsed by:1064
Symbol 978 GraphicUsed by:1064
Symbol 979 GraphicUsed by:1064
Symbol 980 GraphicUsed by:1064
Symbol 981 GraphicUsed by:1064
Symbol 982 GraphicUsed by:1064
Symbol 983 GraphicUsed by:1064
Symbol 984 GraphicUsed by:1064
Symbol 985 GraphicUsed by:1064
Symbol 986 GraphicUsed by:1064
Symbol 987 GraphicUsed by:1064
Symbol 988 GraphicUsed by:1064
Symbol 989 GraphicUsed by:1064
Symbol 990 GraphicUsed by:1064
Symbol 991 GraphicUsed by:1064
Symbol 992 GraphicUsed by:1064
Symbol 993 GraphicUsed by:1064
Symbol 994 GraphicUsed by:1064
Symbol 995 GraphicUsed by:1064
Symbol 996 GraphicUsed by:1064
Symbol 997 GraphicUsed by:1064
Symbol 998 GraphicUsed by:1064
Symbol 999 GraphicUsed by:1064
Symbol 1000 GraphicUsed by:1064
Symbol 1001 GraphicUsed by:1064
Symbol 1002 GraphicUsed by:1064
Symbol 1003 GraphicUsed by:1064
Symbol 1004 GraphicUsed by:1064
Symbol 1005 GraphicUses:377Used by:1064
Symbol 1006 GraphicUsed by:1064
Symbol 1007 GraphicUsed by:1064
Symbol 1008 GraphicUsed by:1064
Symbol 1009 GraphicUsed by:1064
Symbol 1010 GraphicUsed by:1064
Symbol 1011 GraphicUsed by:1064
Symbol 1012 GraphicUsed by:1064
Symbol 1013 GraphicUsed by:1064
Symbol 1014 GraphicUsed by:1064
Symbol 1015 GraphicUsed by:1064
Symbol 1016 GraphicUsed by:1064
Symbol 1017 GraphicUsed by:1064
Symbol 1018 GraphicUsed by:1064
Symbol 1019 GraphicUsed by:1064
Symbol 1020 GraphicUsed by:1064
Symbol 1021 GraphicUsed by:1064
Symbol 1022 GraphicUsed by:1064
Symbol 1023 GraphicUsed by:1064
Symbol 1024 GraphicUsed by:1064
Symbol 1025 GraphicUsed by:1064
Symbol 1026 GraphicUsed by:1064
Symbol 1027 GraphicUsed by:1064
Symbol 1028 GraphicUsed by:1064
Symbol 1029 GraphicUsed by:1064
Symbol 1030 GraphicUsed by:1064
Symbol 1031 GraphicUsed by:1064
Symbol 1032 GraphicUsed by:1064
Symbol 1033 GraphicUsed by:1064
Symbol 1034 GraphicUsed by:1064
Symbol 1035 GraphicUsed by:1064
Symbol 1036 GraphicUsed by:1064
Symbol 1037 GraphicUsed by:1064
Symbol 1038 GraphicUsed by:1064
Symbol 1039 GraphicUsed by:1064
Symbol 1040 GraphicUsed by:1064
Symbol 1041 GraphicUsed by:1064
Symbol 1042 GraphicUsed by:1064
Symbol 1043 GraphicUsed by:1064
Symbol 1044 GraphicUsed by:1064
Symbol 1045 GraphicUsed by:1064
Symbol 1046 GraphicUsed by:1064
Symbol 1047 GraphicUsed by:1064
Symbol 1048 GraphicUsed by:1064
Symbol 1049 GraphicUsed by:1064
Symbol 1050 GraphicUsed by:1064
Symbol 1051 GraphicUsed by:1064
Symbol 1052 GraphicUsed by:1064
Symbol 1053 GraphicUsed by:1064
Symbol 1054 GraphicUsed by:1064
Symbol 1055 GraphicUsed by:1064
Symbol 1056 GraphicUsed by:1064
Symbol 1057 GraphicUsed by:1064
Symbol 1058 GraphicUsed by:1064
Symbol 1059 GraphicUsed by:1064
Symbol 1060 GraphicUsed by:1064
Symbol 1061 GraphicUsed by:1064
Symbol 1062 GraphicUsed by:1064
Symbol 1063 GraphicUsed by:1064
Symbol 1064 MovieClip {MP2_fla.Figura5_194}Uses:970 406 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063Used by:1084
Symbol 1065 TextUses:426Used by:1084
Symbol 1066 TextUses:426Used by:1084
Symbol 1067 GraphicUsed by:1077
Symbol 1068 GraphicUsed by:1077
Symbol 1069 GraphicUsed by:1077
Symbol 1070 GraphicUsed by:1077
Symbol 1071 GraphicUsed by:1077
Symbol 1072 GraphicUsed by:1077
Symbol 1073 GraphicUsed by:1077
Symbol 1074 GraphicUsed by:1077
Symbol 1075 GraphicUsed by:1077
Symbol 1076 GraphicUsed by:1077
Symbol 1077 MovieClipUses:1067 404 1068 1069 1070 1071 1072 1073 1074 1075 1076Used by:1084
Symbol 1078 TextUses:426Used by:1084
Symbol 1079 TextUses:426Used by:1084
Symbol 1080 MovieClipUses:387 389 391 393 395 397 399 401Used by:1081
Symbol 1081 MovieClipUses:614 419 132 1080Used by:1084
Symbol 1082 TextUses:426Used by:1084
Symbol 1083 TextUses:426Used by:1084
Symbol 1084 MovieClip {MP2_fla.Tutorial_182}Uses:101 599 606 610 612 615 616 617 638 639 640 684 685 686 744 745 746 772 773 774 905 906 907 967 968 969 1064 1065 1066 1077 1078 1079 1081 1082 1083Used by:1085  Timeline
Symbol 1085 MovieClip {inGameHelp}Uses:421 424 1084 432Used by:1093
Symbol 1086 BitmapUsed by:1087 1088 1089
Symbol 1087 GraphicUses:1086Used by:1090
Symbol 1088 GraphicUses:1086Used by:1090
Symbol 1089 GraphicUses:1086Used by:1090
Symbol 1090 MovieClip {MP2_fla.Puffy_199}Uses:1087 1088 1089Used by:1091
Symbol 1091 MovieClip {Puff}Uses:424 1090Used by:1093
Symbol 1092 Sound {Chapter1}Used by:1093
Symbol 1093 MovieClip {MP2_fla.Contenedor_23}Uses:138 156 166 172 184 196 199 203 210 214 218 221 235 249 255 263 267 273 278 283 291 301 310 313 318 324 337 340 346 352 360 361 362 363 364 369 373 383 143 420 442 495 505 561 567 575 582 155 137 244 598 1085 1091 1092Used by:Timeline
Symbol 1094 GraphicUses:542Used by:Timeline
Symbol 1095 EditableTextUses:93 426Used by:1100
Symbol 1096 EditableTextUses:93 426Used by:1100
Symbol 1097 EditableTextUses:93 426Used by:1100
Symbol 1098 EditableTextUses:93 426Used by:1100
Symbol 1099 GraphicUsed by:1100 1103
Symbol 1100 ButtonUses:1095 1096 1097 1098 1099Used by:Timeline
Symbol 1101 TextUses:93Used by:1103
Symbol 1102 TextUses:93Used by:1103
Symbol 1103 ButtonUses:1101 1102 1099Used by:Timeline
Symbol 1104 TextUses:426Used by:Timeline
Symbol 1105 EditableTextUses:93 426Used by:Timeline
Symbol 1106 TextUses:426Used by:1108
Symbol 1107 GraphicUsed by:1108 1112
Symbol 1108 ButtonUses:1106 437 1107Used by:Timeline
Symbol 1109 TextUses:426Used by:Timeline
Symbol 1110 TextUses:426Used by:Timeline
Symbol 1111 TextUses:426Used by:1112
Symbol 1112 ButtonUses:1111 437 1107Used by:Timeline
Symbol 1113 TextUses:426 93Used by:Timeline
Symbol 1114 BitmapUsed by:1115
Symbol 1115 GraphicUses:1114Used by:1120
Symbol 1116 BitmapUsed by:1117
Symbol 1117 GraphicUses:1116Used by:1120
Symbol 1118 BitmapUsed by:1119
Symbol 1119 GraphicUses:1118Used by:1120
Symbol 1120 MovieClip {MP2_fla.Fondos_204}Uses:1115 81 1117 1119Used by:Timeline
Symbol 1121 TextUses:426Used by:Timeline
Symbol 1122 GraphicUses:499 200Used by:1127
Symbol 1123 TextUses:426Used by:1127
Symbol 1124 GraphicUses:200Used by:1127
Symbol 1125 GraphicUses:499Used by:1127 1136
Symbol 1126 GraphicUses:499 292Used by:1127
Symbol 1127 MovieClip {MP2_fla.OptionsMusic_205}Uses:1122 1123 1124 437 1125 1126Used by:Timeline
Symbol 1128 TextUses:426Used by:1129
Symbol 1129 MovieClip {MP2_fla.OptionsTutorial_206}Uses:1128 437Used by:Timeline
Symbol 1130 GraphicUses:499 200Used by:1136
Symbol 1131 TextUses:426Used by:1136
Symbol 1132 GraphicUses:200Used by:1136
Symbol 1133 GraphicUses:499 113Used by:1136
Symbol 1134 GraphicUses:499 292Used by:1136
Symbol 1135 GraphicUses:499 292Used by:1136
Symbol 1136 MovieClip {MP2_fla.OptionsQuality_207}Uses:1130 1131 1132 437 1125 1133 1134 1135Used by:Timeline
Symbol 1137 TextUses:426Used by:Timeline

Instance Names

"loadingbar"Frame 2Symbol 87 MovieClip {MP2_fla.LoadingBar_17}
"adBox"Frame 2Symbol 96 MovieClip
"bubble_logo"Frame 2Symbol 103 MovieClip
"contenedor"Frame 3Symbol 1093 MovieClip {MP2_fla.Contenedor_23}
"b_Blue"Frame 5Symbol 567 Button
"b_White"Frame 5Symbol 575 Button
"b_Red"Frame 5Symbol 582 Button
"crayonLink"Frame 6Symbol 1100 Button
"musicLink"Frame 6Symbol 1103 Button
"input_name"Frame 7Symbol 1105 EditableText
"i_tuto"Frame 8Symbol 1084 MovieClip {MP2_fla.Tutorial_182}
"letsplay"Frame 8Symbol 1108 Button
"bu_FP"Frame 9Symbol 439 Button
"mp1_link"Frame 9Symbol 441 Button
"b_back_credits"Frame 10Symbol 1112 Button
"i_fondo"Frame 11Symbol 1120 MovieClip {MP2_fla.Fondos_204}
"b_back_options"Frame 13Symbol 1112 Button
"bu_OMusic"Frame 13Symbol 1127 MovieClip {MP2_fla.OptionsMusic_205}
"bu_OTutorial"Frame 13Symbol 1129 MovieClip {MP2_fla.OptionsTutorial_206}
"bu_OQuality"Frame 13Symbol 1136 MovieClip {MP2_fla.OptionsQuality_207}
"loadingbarmask"Symbol 87 MovieClip {MP2_fla.LoadingBar_17} Frame 1Symbol 84 MovieClip
"__id0_"Symbol 110 MovieClip {Pizo} Frame 1Symbol 109 MovieClip {RectShape}
"__id1_"Symbol 132 MovieClip {Estrellita} Frame 1Symbol 109 MovieClip {RectShape}
"__id2_"Symbol 134 MovieClip {BloqueEgipcio} Frame 1Symbol 109 MovieClip {RectShape}
"__id3_"Symbol 137 MovieClip {Cajita} Frame 1Symbol 109 MovieClip {RectShape}
"i_cajita"Symbol 138 MovieClip {Nivel2} Frame 1Symbol 137 MovieClip {Cajita}
"__id4_"Symbol 141 MovieClip {EslabonNivel16} Frame 1Symbol 109 MovieClip {RectShape}
"__id27_"Symbol 155 MovieClip {Bolita} Frame 1Symbol 152 MovieClip {CircleShape}
"i_bolita"Symbol 156 MovieClip {Nivel3} Frame 1Symbol 155 MovieClip {Bolita}
"__id28_"Symbol 163 MovieClip {Piramide} Frame 1Symbol 109 MovieClip {RectShape}
"__id29_"Symbol 163 MovieClip {Piramide} Frame 1Symbol 109 MovieClip {RectShape}
"__id30_"Symbol 163 MovieClip {Piramide} Frame 1Symbol 109 MovieClip {RectShape}
"__id31_"Symbol 163 MovieClip {Piramide} Frame 1Symbol 109 MovieClip {RectShape}
"__id32_"Symbol 163 MovieClip {Piramide} Frame 1Symbol 109 MovieClip {RectShape}
"__id33_"Symbol 163 MovieClip {Piramide} Frame 1Symbol 109 MovieClip {RectShape}
"__id34_"Symbol 163 MovieClip {Piramide} Frame 1Symbol 109 MovieClip {RectShape}
"i_bolita"Symbol 166 MovieClip {Nivel4} Frame 1Symbol 155 MovieClip {Bolita}
"__id35_"Symbol 171 MovieClip {Obelisque} Frame 1Symbol 109 MovieClip {RectShape}
"__id36_"Symbol 171 MovieClip {Obelisque} Frame 1Symbol 109 MovieClip {RectShape}
"__id37_"Symbol 171 MovieClip {Obelisque} Frame 1Symbol 109 MovieClip {RectShape}
"__id38_"Symbol 171 MovieClip {Obelisque} Frame 1Symbol 109 MovieClip {RectShape}
"__id39_"Symbol 171 MovieClip {Obelisque} Frame 1Symbol 109 MovieClip {RectShape}
"i_bolita"Symbol 172 MovieClip {Nivel5} Frame 1Symbol 155 MovieClip {Bolita}
"__id40_"Symbol 178 MovieClip {PizoCirculo} Frame 1Symbol 152 MovieClip {CircleShape}
"i_bolita"Symbol 184 MovieClip {Nivel6} Frame 1Symbol 155 MovieClip {Bolita}
"__id41_"Symbol 190 MovieClip {ColumnaBase} Frame 1Symbol 109 MovieClip {RectShape}
"__id42_"Symbol 190 MovieClip {ColumnaBase} Frame 1Symbol 109 MovieClip {RectShape}
"__id43_"Symbol 190 MovieClip {ColumnaBase} Frame 1Symbol 109 MovieClip {RectShape}
"__id44_"Symbol 193 MovieClip {ColumnaSeat} Frame 1Symbol 109 MovieClip {RectShape}
"__id45_"Symbol 193 MovieClip {ColumnaSeat} Frame 1Symbol 109 MovieClip {RectShape}
"__id46_"Symbol 193 MovieClip {ColumnaSeat} Frame 1Symbol 109 MovieClip {RectShape}
"__id47_"Symbol 193 MovieClip {ColumnaSeat} Frame 1Symbol 109 MovieClip {RectShape}
"__id48_"Symbol 195 MovieClip {BloqueGriego} Frame 1Symbol 109 MovieClip {RectShape}
"i_bolita"Symbol 196 MovieClip {Nivel7} Frame 1Symbol 155 MovieClip {Bolita}
"i_bolita"Symbol 199 MovieClip {Nivel8} Frame 1Symbol 155 MovieClip {Bolita}
"i_bolita"Symbol 203 MovieClip {Nivel9} Frame 1Symbol 155 MovieClip {Bolita}
"i_bolita"Symbol 210 MovieClip {Nivel10} Frame 1Symbol 155 MovieClip {Bolita}
"i_bolita"Symbol 214 MovieClip {Nivel12} Frame 1Symbol 155 MovieClip {Bolita}
"i_bolita"Symbol 218 MovieClip {Nivel13} Frame 1Symbol 155 MovieClip {Bolita}
"i_cajita"Symbol 221 MovieClip {Nivel14} Frame 1Symbol 137 MovieClip {Cajita}
"__id49_"Symbol 225 MovieClip {ParthenonBase} Frame 1Symbol 109 MovieClip {RectShape}
"__id50_"Symbol 225 MovieClip {ParthenonBase} Frame 1Symbol 109 MovieClip {RectShape}
"__id51_"Symbol 228 MovieClip {ColumnaTop} Frame 1Symbol 109 MovieClip {RectShape}
"__id52_"Symbol 228 MovieClip {ColumnaTop} Frame 1Symbol 109 MovieClip {RectShape}
"__id53_"Symbol 228 MovieClip {ColumnaTop} Frame 1Symbol 109 MovieClip {RectShape}
"__id54_"Symbol 228 MovieClip {ColumnaTop} Frame 1Symbol 109 MovieClip {RectShape}
"__id55_"Symbol 234 MovieClip {Partenon} Frame 1Symbol 109 MovieClip {RectShape}
"__id56_"Symbol 234 MovieClip {Partenon} Frame 1Symbol 109 MovieClip {RectShape}
"__id57_"Symbol 234 MovieClip {Partenon} Frame 1Symbol 109 MovieClip {RectShape}
"__id58_"Symbol 234 MovieClip {Partenon} Frame 1Symbol 109 MovieClip {RectShape}
"__id59_"Symbol 234 MovieClip {Partenon} Frame 1Symbol 109 MovieClip {RectShape}
"__id60_"Symbol 234 MovieClip {Partenon} Frame 1Symbol 109 MovieClip {RectShape}
"__id61_"Symbol 234 MovieClip {Partenon} Frame 1Symbol 109 MovieClip {RectShape}
"i_bolita"Symbol 235 MovieClip {Nivel15} Frame 1Symbol 155 MovieClip {Bolita}
"__id62_"Symbol 238 MovieClip {BigWall} Frame 1Symbol 109 MovieClip {RectShape}
"__id63_"Symbol 238 MovieClip {BigWall} Frame 1Symbol 109 MovieClip {RectShape}
"__id64_"Symbol 238 MovieClip {BigWall} Frame 1Symbol 109 MovieClip {RectShape}
"__id65_"Symbol 238 MovieClip {BigWall} Frame 1Symbol 109 MovieClip {RectShape}
"__id66_"Symbol 238 MovieClip {BigWall} Frame 1Symbol 109 MovieClip {RectShape}
"__id67_"Symbol 241 MovieClip {Torre} Frame 1Symbol 109 MovieClip {RectShape}
"__id68_"Symbol 241 MovieClip {Torre} Frame 1Symbol 109 MovieClip {RectShape}
"__id69_"Symbol 241 MovieClip {Torre} Frame 1Symbol 109 MovieClip {RectShape}
"__id70_"Symbol 241 MovieClip {Torre} Frame 1Symbol 109 MovieClip {RectShape}
"__id71_"Symbol 241 MovieClip {Torre} Frame 1Symbol 109 MovieClip {RectShape}
"__id72_"Symbol 241 MovieClip {Torre} Frame 1Symbol 109 MovieClip {RectShape}
"__id73_"Symbol 244 MovieClip {EstrellitaObj} Frame 1Symbol 109 MovieClip {RectShape}
"__id74_"Symbol 244 MovieClip {EstrellitaObj} Frame 1Symbol 109 MovieClip {RectShape}
"__id75_"Symbol 246 MovieClip {BloqueMedieval} Frame 1Symbol 109 MovieClip {RectShape}
"i_bolita"Symbol 249 MovieClip {Nivel16} Frame 1Symbol 155 MovieClip {Bolita}
"__id76_"Symbol 254 MovieClip {Basura} Frame 1Symbol 109 MovieClip {RectShape}
"i_cajita"Symbol 255 MovieClip {Nivel17} Frame 1Symbol 137 MovieClip {Cajita}
"__id77_"Symbol 262 MovieClip {BloqueNivel18} Frame 1Symbol 109 MovieClip {RectShape}
"i_bolita"Symbol 263 MovieClip {Nivel18} Frame 1Symbol 155 MovieClip {Bolita}
"i_bolita"Symbol 267 MovieClip {Nivel19} Frame 1Symbol 155 MovieClip {Bolita}
"__id80_"Symbol 272 MovieClip {Muro} Frame 1Symbol 109 MovieClip {RectShape}
"__id81_"Symbol 272 MovieClip {Muro} Frame 1Symbol 109 MovieClip {RectShape}
"__id82_"Symbol 272 MovieClip {Muro} Frame 1Symbol 109 MovieClip {RectShape}
"__id83_"Symbol 272 MovieClip {Muro} Frame 1Symbol 109 MovieClip {RectShape}
"__id84_"Symbol 272 MovieClip {Muro} Frame 1Symbol 109 MovieClip {RectShape}
"__id85_"Symbol 272 MovieClip {Muro} Frame 1Symbol 109 MovieClip {RectShape}
"i_bolita"Symbol 273 MovieClip {Nivel20} Frame 1Symbol 155 MovieClip {Bolita}
"__id86_"Symbol 277 MovieClip {Boulder} Frame 1Symbol 152 MovieClip {CircleShape}
"__id87_"Symbol 277 MovieClip {Boulder} Frame 1Symbol 109 MovieClip {RectShape}
"__id88_"Symbol 277 MovieClip {Boulder} Frame 1Symbol 109 MovieClip {RectShape}
"__id89_"Symbol 277 MovieClip {Boulder} Frame 1Symbol 109 MovieClip {RectShape}
"__id90_"Symbol 277 MovieClip {Boulder} Frame 1Symbol 109 MovieClip {RectShape}
"__id91_"Symbol 277 MovieClip {Boulder} Frame 1Symbol 109 MovieClip {RectShape}
"__id92_"Symbol 277 MovieClip {Boulder} Frame 1Symbol 109 MovieClip {RectShape}
"__id93_"Symbol 277 MovieClip {Boulder} Frame 1Symbol 109 MovieClip {RectShape}
"i_bolita"Symbol 278 MovieClip {Nivel21} Frame 1Symbol 155 MovieClip {Bolita}
"__id94_"Symbol 282 MovieClip {Gate} Frame 1Symbol 109 MovieClip {RectShape}
"i_bolita"Symbol 283 MovieClip {Nivel22} Frame 1Symbol 155 MovieClip {Bolita}
"__id96_"Symbol 290 MovieClip {GearPin} Frame 1Symbol 152 MovieClip {CircleShape}
"__id97_"Symbol 290 MovieClip {GearPin} Frame 1Symbol 109 MovieClip {RectShape}
"__id98_"Symbol 290 MovieClip {GearPin} Frame 1Symbol 109 MovieClip {RectShape}
"__id99_"Symbol 290 MovieClip {GearPin} Frame 1Symbol 109 MovieClip {RectShape}
"__id100_"Symbol 290 MovieClip {GearPin} Frame 1Symbol 109 MovieClip {RectShape}
"i_cajita"Symbol 291 MovieClip {Nivel23} Frame 1Symbol 137 MovieClip {Cajita}
"__id101_"Symbol 291 MovieClip {Nivel23} Frame 1Symbol 143 MovieClip {RevJoint}
"__id105_"Symbol 297 MovieClip {GearNoPin} Frame 1Symbol 152 MovieClip {CircleShape}
"__id106_"Symbol 297 MovieClip {GearNoPin} Frame 1Symbol 109 MovieClip {RectShape}
"__id107_"Symbol 297 MovieClip {GearNoPin} Frame 1Symbol 109 MovieClip {RectShape}
"__id108_"Symbol 297 MovieClip {GearNoPin} Frame 1Symbol 109 MovieClip {RectShape}
"__id109_"Symbol 297 MovieClip {GearNoPin} Frame 1Symbol 109 MovieClip {RectShape}
"__id110_"Symbol 300 MovieClip {ChainLink} Frame 1Symbol 109 MovieClip {RectShape}
"__id103_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id104_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"i_bolita"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 155 MovieClip {Bolita}
"__id111_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id112_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id113_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id114_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id115_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id116_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id117_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id118_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id119_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id120_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id121_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id122_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id123_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id124_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id125_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id126_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id127_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id128_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id129_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id130_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id131_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id132_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id133_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id134_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id135_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id136_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id137_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id138_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id139_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id140_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id141_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id142_"Symbol 301 MovieClip {Nivel25} Frame 1Symbol 143 MovieClip {RevJoint}
"__id147_"Symbol 306 MovieClip {ChainLinkAttach} Frame 1Symbol 109 MovieClip {RectShape}
"__id157_"Symbol 309 MovieClip {Cart26} Frame 1Symbol 109 MovieClip {RectShape}
"__id158_"Symbol 309 MovieClip {Cart26} Frame 1Symbol 109 MovieClip {RectShape}
"__id159_"Symbol 309 MovieClip {Cart26} Frame 1Symbol 109 MovieClip {RectShape}
"__id160_"Symbol 309 MovieClip {Cart26} Frame 1Symbol 109 MovieClip {RectShape}
"__id161_"Symbol 309 MovieClip {Cart26} Frame 1Symbol 109 MovieClip {RectShape}
"__id162_"Symbol 309 MovieClip {Cart26} Frame 1Symbol 109 MovieClip {RectShape}
"__id163_"Symbol 309 MovieClip {Cart26} Frame 1Symbol 109 MovieClip {RectShape}
"__id145_"Symbol 310 MovieClip {Nivel26} Frame 1Symbol 143 MovieClip {RevJoint}
"__id146_"Symbol 310 MovieClip {Nivel26} Frame 1Symbol 143 MovieClip {RevJoint}
"i_cajita"Symbol 310 MovieClip {Nivel26} Frame 1Symbol 137 MovieClip {Cajita}
"__id170_"Symbol 313 MovieClip {Nivel37} Frame 1Symbol 143 MovieClip {RevJoint}
"__id171_"Symbol 313 MovieClip {Nivel37} Frame 1Symbol 143 MovieClip {RevJoint}
"i_bolita"Symbol 313 MovieClip {Nivel37} Frame 1Symbol 155 MovieClip {Bolita}
"__id181_"Symbol 317 MovieClip {Bola38} Frame 1Symbol 152 MovieClip {CircleShape}
"__id180_"Symbol 318 MovieClip {Nivel38} Frame 1Symbol 143 MovieClip {RevJoint}
"i_bolita"Symbol 318 MovieClip {Nivel38} Frame 1Symbol 155 MovieClip {Bolita}
"__id190_"Symbol 323 MovieClip {Ancla} Frame 1Symbol 109 MovieClip {RectShape}
"__id191_"Symbol 323 MovieClip {Ancla} Frame 1Symbol 109 MovieClip {RectShape}
"__id192_"Symbol 323 MovieClip {Ancla} Frame 1Symbol 109 MovieClip {RectShape}
"__id193_"Symbol 323 MovieClip {Ancla} Frame 1Symbol 109 MovieClip {RectShape}
"__id194_"Symbol 323 MovieClip {Ancla} Frame 1Symbol 109 MovieClip {RectShape}
"__id195_"Symbol 323 MovieClip {Ancla} Frame 1Symbol 109 MovieClip {RectShape}
"__id196_"Symbol 323 MovieClip {Ancla} Frame 1Symbol 109 MovieClip {RectShape}
"__id182_"Symbol 324 MovieClip {Nivel39} Frame 1Symbol 143 MovieClip {RevJoint}
"__id183_"Symbol 324 MovieClip {Nivel39} Frame 1Symbol 143 MovieClip {RevJoint}
"__id184_"Symbol 324 MovieClip {Nivel39} Frame 1Symbol 143 MovieClip {RevJoint}
"i_bolita"Symbol 324 MovieClip {Nivel39} Frame 1Symbol 155 MovieClip {Bolita}
"__id200_"Symbol 327 MovieClip {Rails} Frame 1Symbol 109 MovieClip {RectShape}
"__id201_"Symbol 327 MovieClip {Rails} Frame 1Symbol 109 MovieClip {RectShape}
"__id202_"Symbol 327 MovieClip {Rails} Frame 1Symbol 109 MovieClip {RectShape}
"__id210_"Symbol 329 MovieClip {RailSlip} Frame 1Symbol 109 MovieClip {RectShape}
"__id218_"Symbol 334 MovieClip {Trencito} Frame 1Symbol 109 MovieClip {RectShape}
"__id219_"Symbol 334 MovieClip {Trencito} Frame 1Symbol 109 MovieClip {RectShape}
"__id220_"Symbol 334 MovieClip {Trencito} Frame 1Symbol 109 MovieClip {RectShape}
"__id221_"Symbol 334 MovieClip {Trencito} Frame 1Symbol 109 MovieClip {RectShape}
"__id222_"Symbol 334 MovieClip {Trencito} Frame 1Symbol 109 MovieClip {RectShape}
"__id223_"Symbol 334 MovieClip {Trencito} Frame 1Symbol 109 MovieClip {RectShape}
"__id224_"Symbol 334 MovieClip {Trencito} Frame 1Symbol 152 MovieClip {CircleShape}
"__id225_"Symbol 334 MovieClip {Trencito} Frame 1Symbol 109 MovieClip {RectShape}
"__id231_"Symbol 336 MovieClip {Martillo40} Frame 1Symbol 109 MovieClip {RectShape}
"__id232_"Symbol 336 MovieClip {Martillo40} Frame 1Symbol 109 MovieClip {RectShape}
"__id233_"Symbol 336 MovieClip {Martillo40} Frame 1Symbol 109 MovieClip {RectShape}
"__id234_"Symbol 336 MovieClip {Martillo40} Frame 1Symbol 109 MovieClip {RectShape}
"__id235_"Symbol 336 MovieClip {Martillo40} Frame 1Symbol 109 MovieClip {RectShape}
"__id236_"Symbol 336 MovieClip {Martillo40} Frame 1Symbol 109 MovieClip {RectShape}
"__id209_"Symbol 337 MovieClip {Nivel40} Frame 1Symbol 143 MovieClip {RevJoint}
"__id226_"Symbol 337 MovieClip {Nivel40} Frame 1Symbol 143 MovieClip {RevJoint}
"__id227_"Symbol 337 MovieClip {Nivel40} Frame 1Symbol 143 MovieClip {RevJoint}
"__id228_"Symbol 337 MovieClip {Nivel40} Frame 1Symbol 143 MovieClip {RevJoint}
"i_bolita"Symbol 337 MovieClip {Nivel40} Frame 1Symbol 155 MovieClip {Bolita}
"i_bolita"Symbol 340 MovieClip {NivelFreePlay} Frame 1Symbol 155 MovieClip {Bolita}
"__id239_"Symbol 345 MovieClip {Piston} Frame 1Symbol 109 MovieClip {RectShape}
"__id240_"Symbol 345 MovieClip {Piston} Frame 1Symbol 109 MovieClip {RectShape}
"__id241_"Symbol 345 MovieClip {Piston} Frame 1Symbol 109 MovieClip {RectShape}
"__id238_"Symbol 346 MovieClip {Nivel24} Frame 1Symbol 143 MovieClip {RevJoint}
"i_bolita"Symbol 346 MovieClip {Nivel24} Frame 1Symbol 155 MovieClip {Bolita}
"i_bolita"Symbol 352 MovieClip {Nivel1} Frame 1Symbol 155 MovieClip {Bolita}
"i_bolita"Symbol 360 MovieClip {Nivel27} Frame 1Symbol 155 MovieClip {Bolita}
"i_bolita"Symbol 369 MovieClip {NuevoNivel2} Frame 1Symbol 155 MovieClip {Bolita}
"i_bolita"Symbol 373 MovieClip {NuevoNivel3} Frame 1Symbol 155 MovieClip {Bolita}
"viento"Symbol 420 MovieClip {Cursor} Frame 1Symbol 402 MovieClip {MP2_fla.Vientote_138}
"resume_button"Symbol 442 MovieClip {InGameLevelSelect} Frame 1Symbol 432 Button
"bu_FP"Symbol 442 MovieClip {InGameLevelSelect} Frame 1Symbol 439 Button
"mp1_link"Symbol 442 MovieClip {InGameLevelSelect} Frame 1Symbol 441 Button
"b_a"Symbol 474 MovieClip {MP2_fla.tips_148} Frame 1Symbol 453 Button
"b_d"Symbol 474 MovieClip {MP2_fla.tips_148} Frame 1Symbol 458 Button
"b_s"Symbol 474 MovieClip {MP2_fla.tips_148} Frame 1Symbol 463 Button
"b_space"Symbol 474 MovieClip {MP2_fla.tips_148} Frame 1Symbol 468 Button
"help_button"Symbol 494 MovieClip {MP2_fla.main_155} Frame 1Symbol 479 Button
"selectLevel_button"Symbol 494 MovieClip {MP2_fla.main_155} Frame 1Symbol 484 Button
"music_button"Symbol 494 MovieClip {MP2_fla.main_155} Frame 1Symbol 493 MovieClip {MP2_fla.MusicButton_158}
"tips"Symbol 495 MovieClip {InGameUI} Frame 1Symbol 474 MovieClip {MP2_fla.tips_148}
"main"Symbol 495 MovieClip {InGameUI} Frame 1Symbol 494 MovieClip {MP2_fla.main_155}
"levelname"Symbol 505 MovieClip {LevelLink} Frame 1Symbol 498 EditableText
"crayonLink1"Symbol 560 MovieClip {MP2_fla.CrayonAd_169} Frame 1Symbol 559 Button
"more_games_button"Symbol 561 MovieClip {ScoreScreen} Frame 1Symbol 510 Button
"bnext"Symbol 561 MovieClip {ScoreScreen} Frame 1Symbol 515 Button
"blevelselect"Symbol 561 MovieClip {ScoreScreen} Frame 1Symbol 484 Button
"bsendScore"Symbol 561 MovieClip {ScoreScreen} Frame 1Symbol 527 MovieClip {MP2_fla.SendScore_163}
"numshapes"Symbol 561 MovieClip {ScoreScreen} Frame 1Symbol 529 EditableText
"time"Symbol 561 MovieClip {ScoreScreen} Frame 1Symbol 531 EditableText
"levelScore"Symbol 561 MovieClip {ScoreScreen} Frame 1Symbol 533 EditableText
"totalScore"Symbol 561 MovieClip {ScoreScreen} Frame 1Symbol 535 EditableText
"rollingCredits"Symbol 561 MovieClip {ScoreScreen} Frame 5Symbol 553 MovieClip
"crayonad"Symbol 561 MovieClip {ScoreScreen} Frame 6Symbol 560 MovieClip {MP2_fla.CrayonAd_169}
"textfield"Symbol 587 MovieClip {MP2_fla.LevelNum_178} Frame 1Symbol 583 EditableText
"textfield"Symbol 587 MovieClip {MP2_fla.LevelNum_178} Frame 2Symbol 586 EditableText
"levelnum"Symbol 598 MovieClip {InGameSuperUI} Frame 1Symbol 587 MovieClip {MP2_fla.LevelNum_178}
"uiSwitch_button"Symbol 598 MovieClip {InGameSuperUI} Frame 1Symbol 595 Button
"ui_maskbarra"Symbol 598 MovieClip {InGameSuperUI} Frame 1Symbol 84 MovieClip
"ui_barra"Symbol 598 MovieClip {InGameSuperUI} Frame 1Symbol 597 MovieClip
"tutback"Symbol 1084 MovieClip {MP2_fla.Tutorial_182} Frame 1Symbol 606 Button
"tutnext"Symbol 1084 MovieClip {MP2_fla.Tutorial_182} Frame 1Symbol 610 Button
"flechaNoBack"Symbol 1084 MovieClip {MP2_fla.Tutorial_182} Frame 1Symbol 612 MovieClip
"flechaNoNext"Symbol 1084 MovieClip {MP2_fla.Tutorial_182} Frame 1Symbol 612 MovieClip
"i_tuto"Symbol 1085 MovieClip {inGameHelp} Frame 2Symbol 1084 MovieClip {MP2_fla.Tutorial_182}
"resume_button"Symbol 1085 MovieClip {inGameHelp} Frame 2Symbol 432 Button

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.
Protect (24)Timeline Frame 10 bytes ""
Tag 0x0FF (255)Timeline Frame 11 bytes " "

Labels

"logo"Frame 1
"preloader"Frame 2
"contenedor"Frame 3
"sponsor_logo"Frame 4
"premenu"Frame 5
"menu"Frame 6
"getName"Frame 7
"instructions"Frame 8
"selectLevel"Frame 9
"credits"Frame 10
"startGame"Frame 11
"locked"Frame 12
"options"Frame 13
"hinge"Symbol 383 MovieClip {Pin} Frame 1
"placedHinge"Symbol 383 MovieClip {Pin} Frame 2
"pin"Symbol 383 MovieClip {Pin} Frame 3
"placedPin"Symbol 383 MovieClip {Pin} Frame 4
"crayon"Symbol 420 MovieClip {Cursor} Frame 1
"borrador"Symbol 420 MovieClip {Cursor} Frame 2
"hinge"Symbol 420 MovieClip {Cursor} Frame 3
"pin"Symbol 420 MovieClip {Cursor} Frame 4
"push"Symbol 420 MovieClip {Cursor} Frame 5
"selectlevel"Symbol 442 MovieClip {InGameLevelSelect} Frame 1
"on"Symbol 493 MovieClip {MP2_fla.MusicButton_158} Frame 1
"off"Symbol 493 MovieClip {MP2_fla.MusicButton_158} Frame 2
"on_over"Symbol 493 MovieClip {MP2_fla.MusicButton_158} Frame 3
"off_over"Symbol 493 MovieClip {MP2_fla.MusicButton_158} Frame 4
"uncheck"Symbol 505 MovieClip {LevelLink} Frame 2
"check"Symbol 505 MovieClip {LevelLink} Frame 3
"send"Symbol 527 MovieClip {MP2_fla.SendScore_163} Frame 1
"view"Symbol 527 MovieClip {MP2_fla.SendScore_163} Frame 2
"score"Symbol 561 MovieClip {ScoreScreen} Frame 1
"levelSelect"Symbol 561 MovieClip {ScoreScreen} Frame 2
"completed"Symbol 561 MovieClip {ScoreScreen} Frame 3
"thanks"Symbol 561 MovieClip {ScoreScreen} Frame 4
"credits"Symbol 561 MovieClip {ScoreScreen} Frame 5
"crayoncredit"Symbol 561 MovieClip {ScoreScreen} Frame 6
"clean"Symbol 587 MovieClip {MP2_fla.LevelNum_178} Frame 2
"amarillo"Symbol 1120 MovieClip {MP2_fla.Fondos_204} Frame 1
"azul"Symbol 1120 MovieClip {MP2_fla.Fondos_204} Frame 2
"blanco"Symbol 1120 MovieClip {MP2_fla.Fondos_204} Frame 3
"negro"Symbol 1120 MovieClip {MP2_fla.Fondos_204} Frame 4
"on"Symbol 1127 MovieClip {MP2_fla.OptionsMusic_205} Frame 1
"on_over"Symbol 1127 MovieClip {MP2_fla.OptionsMusic_205} Frame 2
"off"Symbol 1127 MovieClip {MP2_fla.OptionsMusic_205} Frame 3
"off_over"Symbol 1127 MovieClip {MP2_fla.OptionsMusic_205} Frame 4
"on"Symbol 1129 MovieClip {MP2_fla.OptionsTutorial_206} Frame 1
"on_over"Symbol 1129 MovieClip {MP2_fla.OptionsTutorial_206} Frame 2
"high"Symbol 1136 MovieClip {MP2_fla.OptionsQuality_207} Frame 1
"high_over"Symbol 1136 MovieClip {MP2_fla.OptionsQuality_207} Frame 2
"medium"Symbol 1136 MovieClip {MP2_fla.OptionsQuality_207} Frame 3
"medium_over"Symbol 1136 MovieClip {MP2_fla.OptionsQuality_207} Frame 4
"low"Symbol 1136 MovieClip {MP2_fla.OptionsQuality_207} Frame 5
"low_over"Symbol 1136 MovieClip {MP2_fla.OptionsQuality_207} Frame 6




http://swfchan.com/26/125396/info.shtml
Created: 28/2 -2019 06:11:15 Last modified: 28/2 -2019 06:11:15 Server time: 25/04 -2024 05:21:48