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

<div style="position:absolute;top:-99px;left:-99px;"><img src="https://tools.swfchan.com/stathit.asp?noj=FRM89021230-29DC&rnd=89021230" width="1" height="1"></div>

armorgames volt-connect-12468.swf

This is the info page for
Flash #267883

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


Text
(c) VAdim pechersky

Your results won't be
saved on the site
if you are not logged in.

<p align="center"><font face="A.C.M.E. Explosive!" size="24" color="#ffffff" letterSpacing="0.000000" kerning="1">btn &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></p>

The box with yellow
point contains sunny
volts. Touch it.

This site does not support this game.
Please visit King.com to play.

2. COnnect to him.

Start here

YOU HAVE ENTERED TOP 20!

Type in your initials below:

Submiting score... please wait...

Close

Try again

Submit

High Scores

Highest Scores for All Times

Highest Scores for the Past Day

Highest Scores for the Past Week

Highest Scores for the Past Month

Highest Scores for the Past Year

Highest Scores for this Day

Highest Scores for this Week

Highest Scores for this Month

Highest Scores for this Year

Name

Score

Name

123456789

99

Loading high scores......

Failed loading high scores

Submitting score......

Failed submitting score

Sending emails......

Failed sending emails

8888888

Your Score :

Submit Score

Share in

Facebook

Twitter

MySpace

Email

name

Name

Email

email

name

username

Username

Password

password

Do not have an account?

or

Login

Register

Submit Score
as Guest

forget password?

name

Please try again

Your name was rejected

Login failed

name

email

username

password

username

password

username

password

Send

Name <email>

Your Name and Email:
(Name <email>)

Name and Email of the friends you
want to challenge:
(Name <email>, one record per line)

Name <email>
Name <email>

<p align="center"><font face="Arial" size="22" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Header</b></font></p>

<p align="right"><font face="A.C.M.E. Explosive!" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1"><a href="http://flashteam.ru/" target = "_blank">(c) ELENA ZYATEVA 2011</a></font></p>

music

<p align="center"><font face="a_AlbionicTitulInfl" size="13" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Вы утопилии начального вольта</b></font></p>

<p align="center"><font face="A.C.M.E. Explosive!" size="18" color="#ba01ba" letterSpacing="0.000000" kerning="1">Level done!</font></p>

<p align="center"><font face="A.C.M.E. Explosive!" size="24" color="#ffffff" letterSpacing="0.000000" kerning="1">btn &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></p>

Connect all volts.
Click here to put new volt.

select sunny volt
and connect there.

sunny volt can help!

Move mouse to the top
or bottom to scroll
the level.

<p align="center"></p>

<p align="center"></p>

CREDITS

DEVELOPMENT
ELENA ZYATEVA
VADIM PECHERSKIY

GRAPHICS
MAXIM YURCHENKO

MUSIC
FlashKit.com

TEAM
FlashTeam.ru

Original idea - world of goo

<p align="center"><font face="A.C.M.E. Explosive!" size="15" color="#ffffff" letterSpacing="0.000000" kerning="1">99</font></p>

<p align="center"><font face="A.C.M.E. Explosive!" size="15" color="#ffffff" letterSpacing="0.000000" kerning="1">13</font></p>

<p align="center"><font face="A.C.M.E. Explosive!" size="15" color="#ffffff" letterSpacing="0.000000" kerning="1">13</font></p>

<p align="center"><font face="A.C.M.E. Explosive!" size="15" color="#ffffff" letterSpacing="0.000000" kerning="1">13</font></p>

LEVEL 25

pause

pause

pause

quality

<p align="center"><font face="A.C.M.E. Explosive!" size="14" color="#ba01ba" letterSpacing="0.000000" kerning="1">300</font></p>

<p align="center"><font face="A.C.M.E. Explosive!" size="24" color="#ffffff" letterSpacing="0.000000" kerning="1">btn &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></p>

<p align="center"><font face="A.C.M.E. Explosive!" size="14" color="#ba01ba" letterSpacing="0.000000" kerning="1">25 &nbsp;&nbsp;</font></p>

<p align="center"><font face="A.C.M.E. Explosive!" size="10" color="#9e019e" letterSpacing="0.000000" kerning="1">TOTAL SCORE</font></p><p align="center"><font face="A.C.M.E. Explosive!" size="10" color="#9e019e" letterSpacing="0.000000" kerning="1">1234 &nbsp;</font></p>

select level

<p align="center"><font face="A.C.M.E. Explosive!" size="22" color="#b901ba" letterSpacing="0.000000" kerning="1"><b>1111</b></font></p>

Complete some levels better to improve
your total score.

<p align="center"><font face="A.C.M.E. Explosive!" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1"> 15 </font></p>

простой

<p align="left"></p>

летающий

<p align="left"></p>

липнущий

<p align="left"></p>

водный

<p align="left"></p>

<p align="left"></p>

rot=

<p align="left"></p>

xs=

<p align="left"></p>

ys=

<p align="left"></p>

плотность

глубина

удалить

удалить

удалить

фон

фон

фон

+

+

+

-

-

-

<p align="left"><font face="Arial" size="14" color="#ffffff" letterSpacing="0.000000" kerning="1">element name</font></p>

Hi! I'm Volt.
I like to roll
and connect
with my friends.

volt

Hello!
I like to fly and
can take a drive
with friends.

Sunny Volt

I like to swim
and jump on the
water!

Aqua Volt

Hi!
I'm very strong
and stick to
everyhing.

Sticky Volt

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.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_localPosition:b2Vec2; public var m_radius:Number; public function b2CircleShape(_arg1:b2ShapeDef){ m_localPosition = new b2Vec2(); super(_arg1); var _local2:b2CircleDef = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22 = _arg1.R; var _local4:Number = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local10:Number; var _local6:b2Mat22 = _arg1.R; var _local7:Number = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); var _local8:Number = (_arg1.position.y + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); var _local9:Number = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); var _local11:Number = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; var _local12:Number = (_arg4.p2.x - _arg4.p1.x); var _local13:Number = (_arg4.p2.y - _arg4.p1.y); var _local14:Number = ((_local9 * _local12) + (_local10 * _local13)); var _local15:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local16:Number = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; var _local17:Number = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22 = _arg2.R; var _local4:Number = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; _local4 = _arg2.R; var _local5:Number = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local6:Number = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; var _local7:Number = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local8:Number = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } public function GetRadius():Number{ return (m_radius); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number = (m_localPosition.x - _arg1.x); var _local3:Number = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } } }//package Box2D.Collision.Shapes
Section 3
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { public class b2FilterData { public var categoryBits:uint;// = 1 public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public function Copy():b2FilterData{ var _local1:b2FilterData = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 4
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ center = new b2Vec2(0, 0); super(); } } }//package Box2D.Collision.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 vertices:Array; public var vertexCount:int; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; var _local1:int; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function SetAsBox(_arg1:Number, _arg2:Number):void{ vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); if (_arg3){ _local5 = _arg3; _local6 = s_mat; _local6.Set(_arg4); _local7 = 0; while (_local7 < vertexCount) { _arg3 = vertices[_local7]; _arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y))); _arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y))); _arg3.x = _arg1; _local7++; }; }; } } }//package Box2D.Collision.Shapes
Section 6
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { private var s_supportVec:b2Vec2; public var m_centroid:b2Vec2; public var m_obb:b2OBB; public var m_vertices:Array; public var m_normals:Array; public var m_coreVertices:Array; public var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local3:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; var _local2:b2PolygonDef = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; var _local4:int = _local3; var _local5:int = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local10:Number; var _local4:b2Mat22 = _arg1.R; var _local5:Number = (_arg2.x - _arg1.position.x); var _local6:Number = (_arg2.y - _arg1.position.y); var _local7:Number = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); var _local8:Number = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); var _local9:int; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local20:Number; var _local21:Number; var _local6:Number = 0; var _local7:Number = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; var _local12:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local13:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; var _local14:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local15:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); var _local18 = -1; var _local19:int; while (_local19 < m_vertexCount) { _local11 = m_vertices[_local19]; _local8 = (_local11.x - _local12); _local9 = (_local11.y - _local13); _local11 = m_normals[_local19]; _local20 = ((_local11.x * _local8) + (_local11.y * _local9)); _local21 = ((_local11.x * _local16) + (_local11.y * _local17)); if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){ _local6 = (_local20 / _local21); _local18 = _local19; } else { if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){ _local7 = (_local20 / _local21); }; }; if (_local7 < _local6){ return (false); }; _local19++; }; if (_local18 >= 0){ _arg2[0] = _local6; _local10 = _arg1.R; _local11 = m_normals[_local18]; _arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); return (true); }; return (false); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); var _local6:b2Mat22 = _local5; _local4 = m_obb.extents; var _local7:Number = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); var _local8:Number = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; var _local9:Number = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); var _local10:Number = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB = s_sweptAABB1; var _local5:b2AABB = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y); _arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y); } override public function ComputeMass(_arg1:b2MassData):void{ var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local2:Number = 0; var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; var _local7:Number = 0; var _local8:Number = (1 / 3); var _local9:int; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0]; _local12 = (_local10.x - _local6); _local13 = (_local10.y - _local7); _local14 = (_local11.x - _local6); _local15 = (_local11.y - _local7); _local16 = ((_local12 * _local15) - (_local13 * _local14)); _local17 = (0.5 * _local16); _local4 = (_local4 + _local17); _local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x))); _local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y))); _local18 = _local6; _local19 = _local7; _local20 = _local12; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18)); _local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local5 = (_local5 + (_local16 * (_local24 + _local25))); _local9++; }; _arg1.mass = (m_density * _local4); _local2 = (_local2 * (1 / _local4)); _local3 = (_local3 * (1 / _local4)); _arg1.center.Set(_local2, _local3); _arg1.I = (m_density * _local5); } public function GetOBB():b2OBB{ return (m_obb); } public function GetCentroid():b2Vec2{ return (m_centroid); } public function GetVertexCount():int{ return (m_vertexCount); } public function GetVertices():Array{ return (m_vertices); } public function GetCoreVertices():Array{ return (m_coreVertices); } public function GetNormals():Array{ return (m_normals); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_coreVertices[0])); } public function Centroid(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_centroid)); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local11:Number; _local5 = _arg1.R; var _local6:Number = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); var _local7:Number = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); var _local8:int; _local4 = m_coreVertices[0]; var _local9:Number = ((_local4.x * _local6) + (_local4.y * _local7)); var _local10 = 1; while (_local10 < m_vertexCount) { _local4 = m_coreVertices[_local10]; _local11 = ((_local4.x * _local6) + (_local4.y * _local7)); if (_local11 > _local9){ _local8 = _local10; _local9 = _local11; }; _local10++; }; _local5 = _arg1.R; _local4 = m_coreVertices[_local8]; s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y))); s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y))); return (s_supportVec); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local4:Number; var _local5:Number; m_sweepRadius = 0; var _local3:int; while (_local3 < m_vertexCount) { _local2 = m_coreVertices[_local3]; _local4 = (_local2.x - _arg1.x); _local5 = (_local2.y - _arg1.y); _local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local4 > m_sweepRadius){ m_sweepRadius = _local4; }; _local3++; }; } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local7:Number; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; _local7 = (1 / 3); var _local8:int; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; var _local5:Array = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; var _local6:Number = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 7
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; public class b2Shape { public var m_type:int; public var m_next:b2Shape; public var m_body:b2Body; public var m_sweepRadius:Number; public var m_density:Number; public var m_friction:Number; public var m_restitution:Number; public var m_proxyId:uint; public var m_filter:b2FilterData; public var m_isSensor:Boolean; public var m_userData; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_polygonShape:int = 1; public static const e_shapeTypeCount:int = 2; private static var s_proxyAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_resetAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxyId = b2Pair.b2_nullProxy; m_filter = _arg1.filter.Copy(); m_isSensor = _arg1.isSensor; } public function GetType():int{ return (m_type); } public function IsSensor():Boolean{ return (m_isSensor); } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function GetBody():b2Body{ return (m_body); } public function GetNext():b2Shape{ return (m_next); } public function GetUserData(){ return (m_userData); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function ComputeMass(_arg1:b2MassData):void{ } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetFriction():Number{ return (m_friction); } public function GetRestitution():Number{ return (m_restitution); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB = s_proxyAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; var _local4:b2AABB = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); var _local3:b2AABB = s_resetAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } public static function Destroy(_arg1:b2Shape, _arg2):void{ } } }//package Box2D.Collision.Shapes
Section 8
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var type:int;// = -1 public var userData;// = null public var friction:Number;// = 0.2 public var restitution:Number;// = 0 public var density:Number;// = 0 public var isSensor:Boolean;// = false public var filter:b2FilterData; public function b2ShapeDef(){ 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 lowerBound:b2Vec2; public var upperBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number = (upperBound.x - lowerBound.x); var _local2:Number = (upperBound.y - lowerBound.y); var _local3:Boolean = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 10
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var value:uint; public var proxyId:uint; public var stabbingCount:uint; public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } public function Swap(_arg1:b2Bound):void{ var _local2:uint = value; var _local3:uint = proxyId; var _local4:uint = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } } }//package Box2D.Collision
Section 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_pairManager:b2PairManager; public var m_proxyPool:Array; public var m_freeProxy:uint; public var m_bounds:Array; public var m_queryResults:Array; public var m_queryResultCount:int; public var m_worldAABB:b2AABB; public var m_quantizationFactor:b2Vec2; public var m_proxyCount:int; public var m_timeStamp:uint; public static const b2_invalid:uint = b2Settings.USHRT_MAX; public static const b2_nullEdge:uint = b2Settings.USHRT_MAX; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; var _local4:Number = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); _local3 = 0; while (_local3 < (b2Settings.b2_maxProxies - 1)) { _local6 = new b2Proxy(); m_proxyPool[_local3] = _local6; _local6.SetNext((_local3 + 1)); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; _local3++; }; _local6 = new b2Proxy(); m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function InRange(_arg1:b2AABB):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = _arg1.lowerBound.x; _local3 = _arg1.lowerBound.y; _local2 = (_local2 - m_worldAABB.upperBound.x); _local3 = (_local3 - m_worldAABB.upperBound.y); _local4 = m_worldAABB.lowerBound.x; _local5 = m_worldAABB.lowerBound.y; _local4 = (_local4 - _arg1.upperBound.x); _local5 = (_local5 - _arg1.upperBound.y); _local2 = b2Math.b2Max(_local2, _local4); _local3 = b2Math.b2Max(_local3, _local5); return ((b2Math.b2Max(_local2, _local3) < 0)); } public function GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy = m_proxyPool[_arg1]; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){ return (null); }; return (_local2); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:b2Bound; var _local22:int; var _local23:b2Proxy; var _local5:uint = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; var _local6:uint = (2 * m_proxyCount); var _local7:Array = new Array(); var _local8:Array = new Array(); ComputeBounds(_local7, _local8, _arg1); var _local9:int; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local13 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local16 = new Array(); _local18 = (_local13 - _local12); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local12 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local19 = _local11[_local12]; _local20 = _local11[_local13]; _local19.value = _local7[_local9]; _local19.proxyId = _local5; _local20.value = _local8[_local9]; _local20.proxyId = _local5; _local21 = _local11[int((_local12 - 1))]; _local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount; _local21 = _local11[int((_local13 - 1))]; _local20.stabbingCount = _local21.stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local21 = _local11[_local3]; _local21.stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local19 = _local11[_local3]; _local23 = m_proxyPool[_local19.proxyId]; if (_local19.IsLower()){ _local23.lowerBounds[_local9] = _local3; } else { _local23.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; var _local10:int; while (_local10 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]); _local10++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local5); } public function DestroyProxy(_arg1:uint):void{ var _local2:b2Bound; var _local3:b2Bound; var _local8:Array; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:int; var _local15:int; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; var _local4:b2Proxy = m_proxyPool[_arg1]; var _local5:int = (2 * m_proxyCount); var _local6:int; while (_local6 < 2) { _local8 = m_bounds[_local6]; _local9 = _local4.lowerBounds[_local6]; _local10 = _local4.upperBounds[_local6]; _local2 = _local8[_local9]; _local11 = _local2.value; _local3 = _local8[_local10]; _local12 = _local3.value; _local13 = new Array(); _local15 = ((_local10 - _local9) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local9 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = _local9; _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local13 = new Array(); _local15 = ((_local5 - _local10) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local10 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = (_local10 - 1); _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = (_local5 - 2); _local17 = _local9; while (_local17 < _local15) { _local2 = _local8[_local17]; _local19 = m_proxyPool[_local2.proxyId]; if (_local2.IsLower()){ _local19.lowerBounds[_local6] = _local17; } else { _local19.upperBounds[_local6] = _local17; }; _local17++; }; _local15 = (_local10 - 1); _local18 = _local9; while (_local18 < _local15) { _local2 = _local8[_local18]; _local2.stabbingCount--; _local18++; }; Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6); _local6++; }; var _local7:int; while (_local7 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]); _local7++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local4.userData = null; _local4.overlapCount = b2_invalid; _local4.lowerBounds[0] = b2_invalid; _local4.lowerBounds[1] = b2_invalid; _local4.upperBounds[0] = b2_invalid; _local4.upperBounds[1] = b2_invalid; _local4.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{ var _local3:Array; var _local4:int; var _local5:uint; var _local6:uint; var _local7:b2Bound; var _local8:b2Bound; var _local9:b2Bound; var _local10:uint; var _local11:b2Proxy; var _local16:Array; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:uint; var _local21:int; var _local22:int; var _local23:uint; var _local24:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; var _local12:uint = (2 * m_proxyCount); var _local13:b2Proxy = m_proxyPool[_arg1]; var _local14:b2BoundValues = new b2BoundValues(); ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2); var _local15:b2BoundValues = new b2BoundValues(); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5][_local13.lowerBounds[_local5]]; _local15.lowerValues[_local5] = _local7.value; _local7 = m_bounds[_local5][_local13.upperBounds[_local5]]; _local15.upperValues[_local5] = _local7.value; _local5++; }; _local5 = 0; while (_local5 < 2) { _local16 = m_bounds[_local5]; _local17 = _local13.lowerBounds[_local5]; _local18 = _local13.upperBounds[_local5]; _local19 = _local14.lowerValues[_local5]; _local20 = _local14.upperValues[_local5]; _local7 = _local16[_local17]; _local21 = (_local19 - _local7.value); _local7.value = _local19; _local7 = _local16[_local18]; _local22 = (_local20 - _local7.value); _local7.value = _local20; if (_local21 < 0){ _local6 = _local17; while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local8.proxyId]; _local8.stabbingCount++; if (_local8.IsUpper() == true){ if (TestOverlap(_local14, _local24)){ m_pairManager.AddBufferedPair(_arg1, _local23); }; _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; if (_local22 > 0){ _local6 = _local18; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount++; if (_local9.IsLower() == true){ if (TestOverlap(_local14, _local11)){ m_pairManager.AddBufferedPair(_arg1, _local10); }; _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local21 > 0){ _local6 = _local17; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount--; if (_local9.IsUpper()){ if (TestOverlap(_local15, _local11)){ m_pairManager.RemoveBufferedPair(_arg1, _local10); }; _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local22 < 0){ _local6 = _local18; while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local23]; _local8.stabbingCount--; if (_local8.IsLower() == true){ if (TestOverlap(_local15, _local24)){ m_pairManager.RemoveBufferedPair(_arg1, _local23); }; _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; _local5++; }; } public function Commit():void{ m_pairManager.Commit(); } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local6:uint; var _local7:uint; var _local12:b2Proxy; var _local4:Array = new Array(); var _local5:Array = new Array(); ComputeBounds(_local4, _local5, _arg1); var _local8:Array = [_local6]; var _local9:Array = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); var _local10:int; var _local11:int; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local5:int; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number = _arg3.lowerBound.x; var _local5:Number = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); var _local6:Number = _arg3.upperBound.x; var _local7:Number = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg2.upperBounds[_local3]]; if (_arg1.lowerValues[_local3] > _local5.value){ return (false); }; _local5 = _local4[_arg2.lowerBounds[_local3]]; if (_arg1.upperValues[_local3] < _local5.value){ return (false); }; _local3++; }; return (true); } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local10:b2Bound; var _local12:int; var _local13:int; var _local14:b2Proxy; var _local8:uint = BinarySearch(_arg5, _arg6, _arg3); var _local9:uint = BinarySearch(_arg5, _arg6, _arg4); var _local11:uint = _local8; while (_local11 < _local9) { _local10 = _arg5[_local11]; if (_local10.IsLower()){ IncrementOverlapCount(_local10.proxyId); }; _local11++; }; if (_local8 > 0){ _local12 = (_local8 - 1); _local10 = _arg5[_local12]; _local13 = _local10.stabbingCount; while (_local13) { _local10 = _arg5[_local12]; if (_local10.IsLower()){ _local14 = m_proxyPool[_local10.proxyId]; if (_local8 <= _local14.upperBounds[_arg7]){ IncrementOverlapCount(_local10.proxyId); _local13--; }; }; _local12--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { (m_proxyPool[_local1] as b2Proxy).timeStamp = 0; _local1++; }; m_timeStamp = 1; } else { m_timeStamp++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local6:int; var _local7:b2Bound; var _local4:int; var _local5:int = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); _local7 = _arg1[_local6]; if (_local7.value > _arg3){ _local5 = (_local6 - 1); } else { if (_local7.value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.Collision
Section 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 ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); var _local10:Number = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local11:b2Mat22; var _local12:b2Vec2; var _local25:Number; var _local6:int = _arg1.m_vertexCount; var _local7:Array = _arg1.m_vertices; var _local8:Array = _arg1.m_normals; var _local9:int = _arg4.m_vertexCount; var _local10:Array = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; var _local13:Number = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); var _local14:Number = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; var _local15:Number = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); var _local16:Number = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; var _local20:Number = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local21:Number = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; var _local22:Number = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local23:Number = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); var _local24:Number = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local8:b2Vec2; var _local9:b2Mat22; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; var _local6:int = _arg2.m_vertexCount; var _local7:Array = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; var _local10:Number = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); var _local11:Number = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); var _local12:Number = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); var _local13:Number = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); var _local14:int; var _local15:Number = -(Number.MAX_VALUE); var _local16:int; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; var _local17:Number = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; var _local18:int = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); var _local19:Number = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; var _local20:int = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; var _local21:Number = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local12:b2Mat22; var _local13:b2Vec2; var _local20:ClipVertex; var _local23:Number; var _local7:int = _arg2.m_vertexCount; var _local8:Array = _arg2.m_normals; var _local9:int = _arg5.m_vertexCount; var _local10:Array = _arg5.m_vertices; var _local11:Array = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; var _local14:Number = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); var _local15:Number = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; var _local16:Number = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; var _local21:int = _local17; var _local22:int = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local17:int; var _local18:uint; var _local34:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; var _local7:int; var _local8:Array = [_local7]; var _local9:Number = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; var _local10:int; var _local11:Array = [_local10]; var _local12:Number = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; var _local15:b2XForm = new b2XForm(); var _local16:b2XForm = new b2XForm(); var _local19:Number = 0.98; var _local20:Number = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; var _local21:Array = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); var _local22:int = _local13.m_vertexCount; var _local23:Array = _local13.m_vertices; var _local24:b2Vec2 = _local23[_local17]; var _local25:b2Vec2 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; var _local26:b2Vec2 = b2Math.SubtractVV(_local37, _local25); var _local27:b2Vec2 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); var _local28:b2Vec2 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); var _local29:Number = b2Math.b2Dot(_local28, _local25); var _local30:Number = -(b2Math.b2Dot(_local27, _local25)); var _local31:Number = b2Math.b2Dot(_local27, _local37); var _local32:Array = [new ClipVertex(), new ClipVertex()]; var _local33:Array = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); var _local35:int; var _local36:int; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local18:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; var _local8:Number = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local9:Number = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; var _local10:Number = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local11:Number = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); var _local12:Number = (_local10 - _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local15:Number = _arg2.m_radius; var _local16:Number = _arg4.m_radius; var _local17:Number = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; var _local19:b2ManifoldPoint = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); var _local20:Number = (0.5 * (_local8 + _local10)); var _local21:Number = (0.5 * (_local9 + _local11)); var _local22:Number = (_local20 - _arg3.position.x); var _local23:Number = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local17:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; var _local13:Number = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); var _local14:Number = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; var _local15:Number = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); var _local16:Number = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); var _local18:int; var _local19:Number = -(Number.MAX_VALUE); var _local20:Number = _arg4.m_radius; var _local21:int = _arg2.m_vertexCount; var _local22:Array = _arg2.m_vertices; var _local23:Array = _arg2.m_normals; var _local24:int; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; var _local25:int = _local18; var _local26:int = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; var _local27:b2Vec2 = _local22[_local26]; var _local28:Number = (_local27.x - _local11.x); var _local29:Number = (_local27.y - _local11.y); var _local30:Number = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); var _local31:Number = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2 = _arg2.lowerBound; var _local4:b2Vec2 = _arg1.upperBound; var _local5:Number = (_local3.x - _local4.x); var _local6:Number = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; var _local7:Number = (_local3.x - _local4.x); var _local8:Number = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } } }//package Box2D.Collision
Section 15
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var features:Features; public var _key:uint; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID = new b2ContactID(); _local1.key = key; return (_local1); } public function get key():uint{ return (_key); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } } }//package Box2D.Collision
Section 16
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2ContactPoint { public var shape1:b2Shape; public var shape2:b2Shape; public var position:b2Vec2; public var velocity:b2Vec2; public var normal:b2Vec2; public var separation:Number; public var friction:Number; public var restitution:Number; public var id:b2ContactID; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 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_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local17:Number; var _local6:b2Vec2 = _arg5[0]; var _local7:b2Vec2 = _arg5[1]; var _local8:b2Vec2 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; var _local12:Number = -(_local7.x); var _local13:Number = -(_local7.y); var _local14:Number = (_local6.x - _local7.x); var _local15:Number = (_local6.y - _local7.y); var _local16:Number = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local35:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; var _local14:b2Vec2 = _arg4[2]; var _local15:Number = _local6.x; var _local16:Number = _local6.y; var _local17:Number = _local7.x; var _local18:Number = _local7.y; var _local19:Number = _local8.x; var _local20:Number = _local8.y; var _local21:Number = (_local17 - _local15); var _local22:Number = (_local18 - _local16); var _local23:Number = (_local19 - _local15); var _local24:Number = (_local20 - _local16); var _local25:Number = (_local19 - _local17); var _local26:Number = (_local20 - _local18); var _local27:Number = -(((_local15 * _local21) + (_local16 * _local22))); var _local28:Number = ((_local17 * _local21) + (_local18 * _local22)); var _local29:Number = -(((_local15 * _local23) + (_local16 * _local24))); var _local30:Number = ((_local19 * _local23) + (_local20 * _local24)); var _local31:Number = -(((_local17 * _local25) + (_local18 * _local26))); var _local32:Number = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; var _local33:Number = ((_local21 * _local24) - (_local22 * _local23)); var _local34:Number = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); var _local36:Number = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; var _local37:Number = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; var _local38:Number = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); var _local39:Number = (_local36 * _local38); var _local40:Number = (_local37 * _local38); var _local41:Number = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local4:Number = (100 * Number.MIN_VALUE); var _local5:int; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; var _local8:Array = s_p1s; var _local9:Array = s_p2s; var _local10:Array = s_points; var _local11:int; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); var _local12:Number = 0; var _local13 = 20; var _local14:int; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - _local21) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; var _local9:Number = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local10:Number = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; var _local11:Number = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local12:Number = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:Number = ((_local13 * _local13) + (_local14 * _local14)); var _local16:Number = (_arg3.m_radius - b2Settings.b2_toiSlop); var _local17:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); var _local18:Number = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local9:b2Point = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local10:Number = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); var _local11:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int = _arg3.m_type; var _local8:int = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } } }//package Box2D.Collision
Section 18
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var points:Array; public var normal:b2Vec2; public var pointCount:int;// = 0 public function b2Manifold(){ points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Reset():void{ var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } public function Set(_arg1:b2Manifold):void{ pointCount = _arg1.pointCount; var _local2:int; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } } }//package Box2D.Collision
Section 19
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var localPoint1:b2Vec2; public var localPoint2:b2Vec2; public var separation:Number; public var normalImpulse:Number; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalImpulse = 0; tangentImpulse = 0; id.key = 0; } public function Set(_arg1:b2ManifoldPoint):void{ localPoint1.SetV(_arg1.localPoint1); localPoint2.SetV(_arg1.localPoint2); separation = _arg1.separation; normalImpulse = _arg1.normalImpulse; tangentImpulse = _arg1.tangentImpulse; id.key = _arg1.id.key; } } }//package Box2D.Collision
Section 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 next:uint; public var status:uint; public static var b2_nullPair:uint = b2Settings.USHRT_MAX; public static var b2_nullProxy:uint = b2Settings.USHRT_MAX; public static var b2_tableCapacity:int = b2Settings.b2_maxPairs; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairBuffered:uint = 1; public static var e_pairRemoved:uint = 2; public static var e_pairFinal:uint = 4; public function SetBuffered():void{ status = (status | e_pairBuffered); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } } }//package Box2D.Collision
Section 22
//b2PairCallback (Box2D.Collision.b2PairCallback) package Box2D.Collision { public class b2PairCallback { public function PairAdded(_arg1, _arg2){ return (null); } public function PairRemoved(_arg1, _arg2, _arg3):void{ } } }//package Box2D.Collision
Section 23
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PairManager { public var m_broadPhase:b2BroadPhase; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_freePair:uint; public var m_pairCount:int; public var m_pairBuffer:Array; public var m_pairBufferCount:int; public var m_hashTable:Array; public function b2PairManager(){ var _local1:uint; super(); m_hashTable = new Array(b2Pair.b2_tableCapacity); _local1 = 0; while (_local1 < b2Pair.b2_tableCapacity) { m_hashTable[_local1] = b2Pair.b2_nullPair; _local1++; }; m_pairs = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1] = new b2Pair(); _local1++; }; m_pairBuffer = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairBuffer[_local1] = new b2BufferedPair(); _local1++; }; _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy; m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy; m_pairs[_local1].userData = null; m_pairs[_local1].status = 0; m_pairs[_local1].next = (_local1 + 1); _local1++; }; m_pairs[int((b2Settings.b2_maxPairs - 1))].next = b2Pair.b2_nullPair; m_pairCount = 0; m_pairBufferCount = 0; } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = AddPair(_arg1, _arg2); if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = Find(_arg1, _arg2); if (_local4 == null){ return; }; if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; var _local3:int; var _local4:Array = m_broadPhase.m_proxyPool; _local2 = 0; while (_local2 < m_pairBufferCount) { _local1 = m_pairBuffer[_local2]; _local5 = Find(_local1.proxyId1, _local1.proxyId2); _local5.ClearBuffered(); _local6 = _local4[_local5.proxyId1]; _local7 = _local4[_local5.proxyId2]; if (_local5.IsRemoved()){ if (_local5.IsFinal() == true){ m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData); }; _local1 = m_pairBuffer[_local3]; _local1.proxyId1 = _local5.proxyId1; _local1.proxyId2 = _local5.proxyId2; _local3++; } else { if (_local5.IsFinal() == false){ _local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData); _local5.SetFinal(); }; }; _local2++; }; _local2 = 0; while (_local2 < _local3) { _local1 = m_pairBuffer[_local2]; RemovePair(_local1.proxyId1, _local1.proxyId2); _local2++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; var _local5:uint = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; var _local4:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local5:uint = m_hashTable[_local4]; var _local6:b2Pair; while (_local5 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local5], _arg1, _arg2)){ _local8 = _local5; _local3 = m_pairs[_local5]; if (_local6){ _local6.next = _local3.next; } else { m_hashTable[_local4] = _local3.next; }; _local3 = m_pairs[_local8]; _local9 = _local3.userData; _local3.next = m_freePair; _local3.proxyId1 = b2Pair.b2_nullProxy; _local3.proxyId2 = b2Pair.b2_nullProxy; _local3.userData = null; _local3.status = 0; m_freePair = _local8; m_pairCount--; return (_local9); } else { _local6 = m_pairs[_local5]; _local5 = _local6.next; }; }; return (null); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:b2Pair; var _local5:uint = m_hashTable[_arg3]; _local4 = m_pairs[_local5]; while (((!((_local5 == b2Pair.b2_nullPair))) && ((Equals(_local4, _arg1, _arg2) == false)))) { _local5 = _local4.next; _local4 = m_pairs[_local5]; }; if (_local5 == b2Pair.b2_nullPair){ return (null); }; return (_local4); } private function ValidateBuffer():void{ } private function ValidateTable():void{ } public static function Hash(_arg1:uint, _arg2:uint):uint{ var _local3:uint = (((_arg2 << 16) & 4294901760) | _arg1); _local3 = (~(_local3) + ((_local3 << 15) & 4294934528)); _local3 = (_local3 ^ ((_local3 >> 12) & 1048575)); _local3 = (_local3 + ((_local3 << 2) & 4294967292)); _local3 = (_local3 ^ ((_local3 >> 4) & 268435455)); _local3 = (_local3 * 2057); _local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF)); return (_local3); } public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{ return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3)))); } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } } }//package Box2D.Collision
Section 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 Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 25
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var lowerBounds:Array; public var upperBounds:Array; public var overlapCount:uint; public var timeStamp:uint; public var userData;// = null public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } } }//package Box2D.Collision
Section 26
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local5:b2Vec2 = _arg3.p1; var _local6:Number = (_arg3.p2.x - _local5.x); var _local7:Number = (_arg3.p2.y - _local5.y); var _local8:Number = (p2.x - p1.x); var _local9:Number = (p2.y - p1.y); var _local10:Number = _local9; var _local11:Number = -(_local8); var _local12:Number = (100 * Number.MIN_VALUE); var _local13:Number = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local6) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.Collision
Section 27
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local7:Number = _arg1.m_sweepRadius; var _local8:Number = _arg3.m_sweepRadius; var _local9:Number = _arg2.t0; var _local10:Number = (_arg2.c.x - _arg2.c0.x); var _local11:Number = (_arg2.c.y - _arg2.c0.y); var _local12:Number = (_arg4.c.x - _arg4.c0.x); var _local13:Number = (_arg4.c.y - _arg4.c0.y); var _local14:Number = (_arg2.a - _arg2.a0); var _local15:Number = (_arg4.a - _arg4.a0); var _local16:Number = 0; var _local17:b2Vec2 = s_p1; var _local18:b2Vec2 = s_p2; var _local19 = 20; var _local20:int; var _local21:Number = 0; var _local22:Number = 0; var _local23:Number = 0; var _local24:Number = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } }//package Box2D.Collision
Section 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 _incidentVertex:int; public var _flip:int; public var _m_id:b2ContactID; public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } public function get incidentEdge():int{ return (_incidentEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function get flip():int{ return (_flip); } } }//package Box2D.Collision
Section 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 Set(_arg1:Number):void{ var _local2:Number; _local2 = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local4:Number; var _local6:Number; _local2 = col1.x; var _local3:Number = col2.x; _local4 = col1.y; var _local5:Number = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number = col1.x; var _local5:Number = col2.x; var _local6:Number = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } public function Abs():void{ col1.Abs(); col2.Abs(); } } }//package Box2D.Common.Math
Section 31
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = b2MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); var _local4:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); var _local5:b2Mat22 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:* = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } } }//package Box2D.Common.Math
Section 32
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var c0:b2Vec2; public var c:b2Vec2; public var a0:Number; public var a:Number; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ var _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; var _local3:b2Mat22 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } } }//package Box2D.Common.Math
Section 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 SetZero():void{ x = 0; y = 0; } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function MulM(_arg1:b2Mat22):void{ var _local2:Number = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function CrossVF(_arg1:Number):void{ var _local2:Number = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function CrossFV(_arg1:Number):void{ var _local2:Number = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function Normalize():Number{ var _local1:Number = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; var _local2:Number = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 34
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var position:b2Vec2; public var R:b2Mat22; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } } }//package Box2D.Common.Math
Section 35
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _r:uint;// = 0 private var _g:uint;// = 0 private var _b:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function get color():uint{ return (((_r | (_g << 8)) | (_b << 16))); } } }//package Box2D.Common
Section 36
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const USHRT_MAX:int = 0xFFFF; public static const b2_pi:Number = 3.14159265358979; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxPolygonVertices:int = 8; public static const b2_maxProxies:int = 0x0200; public static const b2_maxPairs:int = 4096; public static const b2_linearSlop:Number = 0.005; public static const b2_angularSlop:Number = 0.0349065850398866; public static const b2_toiSlop:Number = 0.04; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_velocityThreshold:Number = 1; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const b2_maxLinearVelocity:Number = 200; public static const b2_maxLinearVelocitySquared:Number = 40000; public static const b2_maxAngularVelocity:Number = 250; public static const b2_maxAngularVelocitySquared:Number = 62500; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_timeToSleep:Number = 0.5; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_angularSleepTolerance:Number = 0.0111111111111111; public static function b2Assert(_arg1:Boolean):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 37
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local8:b2ManifoldPoint; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); var _local7:b2ContactPoint = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } } }//package Box2D.Dynamics.Contacts
Section 38
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Contact { public var m_flags:uint; public var m_prev:b2Contact; public var m_next:b2Contact; public var m_node1:b2ContactEdge; public var m_node2:b2ContactEdge; public var m_shape1:b2Shape; public var m_shape2:b2Shape; public var m_manifoldCount:int; public var m_friction:Number; public var m_restitution:Number; public var m_toi:Number; public static var e_nonSolidFlag:uint = 1; public static var e_slowFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var e_toiFlag:uint = 8; public static var s_registers:Array; public static var s_initialized:Boolean = false; public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){ m_node1 = new b2ContactEdge(); m_node2 = new b2ContactEdge(); super(); m_flags = 0; if (((!(_arg1)) || (!(_arg2)))){ m_shape1 = null; m_shape2 = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_nonSolidFlag); }; m_shape1 = _arg1; m_shape2 = _arg2; m_manifoldCount = 0; m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction)); m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution); m_prev = null; m_next = null; m_node1.contact = null; m_node1.prev = null; m_node1.next = null; m_node1.other = null; m_node2.contact = null; m_node2.prev = null; m_node2.next = null; m_node2.other = null; } public function GetManifolds():Array{ return (null); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetNext():b2Contact{ return (m_next); } public function GetShape1():b2Shape{ return (m_shape1); } public function GetShape2():b2Shape{ return (m_shape2); } public function Update(_arg1:b2ContactListener):void{ var _local2:int = m_manifoldCount; Evaluate(_arg1); var _local3:int = m_manifoldCount; var _local4:b2Body = m_shape1.m_body; var _local5:b2Body = m_shape2.m_body; if ((((_local3 == 0)) && ((_local2 > 0)))){ _local4.WakeUp(); _local5.WakeUp(); }; if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } public function Evaluate(_arg1:b2ContactListener):void{ } public static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } public static function InitializeRegisters():void{ var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); var _local1:int; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; var _local4:int = _arg1.m_type; var _local5:int = _arg2.m_type; var _local6:b2ContactRegister = s_registers[_local4][_local5]; var _local7:Function = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); //unresolved jump }; return (null); } public static function Destroy(_arg1:b2Contact, _arg2):void{ if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; var _local3:int = _arg1.m_shape1.m_type; var _local4:int = _arg1.m_shape2.m_type; var _local5:b2ContactRegister = s_registers[_local3][_local4]; var _local6:Function = _local5.destroyFcn; _local6(_arg1, _arg2); } } }//package Box2D.Dynamics.Contacts
Section 39
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var normal:b2Vec2; public var manifold:b2Manifold; public var body1:b2Body; public var body2:b2Body; public var friction:Number; public var restitution:Number; public var pointCount:int; public function b2ContactConstraint(){ normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 40
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var r1:b2Vec2; public var r2:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var positionImpulse:Number; public var normalMass:Number; public var tangentMass:Number; public var equalizedMass:Number; public var separation:Number; public var velocityBias:Number; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 41
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var other:b2Body; public var contact:b2Contact; public var prev:b2ContactEdge; public var next:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 42
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var createFcn:Function; public var destroyFcn:Function; public var primary:Boolean; } }//package Box2D.Dynamics.Contacts
Section 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 shape1:b2Shape; public var shape2:b2Shape; public var position:b2Vec2; public var normal:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ContactResult(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Dynamics.Contacts
Section 44
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactSolver { public var m_step:b2TimeStep; public var m_allocator; public var m_constraints:Array; public var m_constraintCount:int; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local10:b2Body; var _local11:b2Body; var _local12:int; var _local13:Array; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; var _local23:b2Manifold; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraint; var _local27:uint; var _local28:b2ManifoldPoint; var _local29:b2ContactConstraintPoint; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; m_step = new b2TimeStep(); m_constraints = new Array(); super(); m_step.dt = _arg1.dt; m_step.inv_dt = _arg1.inv_dt; m_step.maxIterations = _arg1.maxIterations; m_allocator = _arg4; m_constraintCount = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; m_constraintCount = (m_constraintCount + _local5.m_manifoldCount); _local6++; }; _local6 = 0; while (_local6 < m_constraintCount) { m_constraints[_local6] = new b2ContactConstraint(); _local6++; }; var _local9:int; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1.m_body; _local11 = _local5.m_shape2.m_body; _local12 = _local5.m_manifoldCount; _local13 = _local5.GetManifolds(); _local14 = _local5.m_friction; _local15 = _local5.m_restitution; _local16 = _local10.m_linearVelocity.x; _local17 = _local10.m_linearVelocity.y; _local18 = _local11.m_linearVelocity.x; _local19 = _local11.m_linearVelocity.y; _local20 = _local10.m_angularVelocity; _local21 = _local11.m_angularVelocity; _local22 = 0; while (_local22 < _local12) { _local23 = _local13[_local22]; _local24 = _local23.normal.x; _local25 = _local23.normal.y; _local26 = m_constraints[_local9]; _local26.body1 = _local10; _local26.body2 = _local11; _local26.manifold = _local23; _local26.normal.x = _local24; _local26.normal.y = _local25; _local26.pointCount = _local23.pointCount; _local26.friction = _local14; _local26.restitution = _local15; _local27 = 0; while (_local27 < _local26.pointCount) { _local28 = _local23.points[_local27]; _local29 = _local26.points[_local27]; _local29.normalImpulse = _local28.normalImpulse; _local29.tangentImpulse = _local28.tangentImpulse; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local8 = _local10.m_xf.R; _local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x); _local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33)); _local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33)); _local32 = _local30; _local29.r1.Set(_local32, _local33); _local8 = _local11.m_xf.R; _local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x); _local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local30; _local29.r2.Set(_local34, _local35); _local36 = ((_local32 * _local32) + (_local33 * _local33)); _local37 = ((_local34 * _local34) + (_local35 * _local35)); _local38 = ((_local32 * _local24) + (_local33 * _local25)); _local39 = ((_local34 * _local24) + (_local35 * _local25)); _local40 = (_local10.m_invMass + _local11.m_invMass); _local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39))))); _local29.normalMass = (1 / _local40); _local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass)); _local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39))))); _local29.equalizedMass = (1 / _local41); _local42 = _local25; _local43 = -(_local24); _local44 = ((_local32 * _local42) + (_local33 * _local43)); _local45 = ((_local34 * _local42) + (_local35 * _local43)); _local46 = (_local10.m_invMass + _local11.m_invMass); _local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45))))); _local29.tangentMass = (1 / _local46); _local29.velocityBias = 0; if (_local29.separation > 0){ _local29.velocityBias = (-60 * _local29.separation); }; _local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33)); _local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32)); _local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47)); }; _local27++; }; _local9++; _local22++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Mat22; var _local18:b2Vec2; var _local20:b2ContactConstraint; var _local21:b2Body; var _local22:b2Body; var _local23:Number; var _local24:Number; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:int; var _local38:Number; var _local19:int; while (_local19 < m_constraintCount) { _local20 = m_constraints[_local19]; _local21 = _local20.body1; _local22 = _local20.body2; _local23 = _local21.m_angularVelocity; _local24 = _local22.m_angularVelocity; _local25 = _local21.m_linearVelocity; _local26 = _local22.m_linearVelocity; _local27 = _local21.m_invMass; _local28 = _local21.m_invI; _local29 = _local22.m_invMass; _local30 = _local22.m_invI; _local31 = _local20.normal.x; _local32 = _local20.normal.y; _local33 = _local32; _local34 = -(_local31); _local35 = _local20.friction; _local37 = _local20.pointCount; _local1 = 0; while (_local1 < _local37) { _local2 = _local20.points[_local1]; _local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y)); _local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x)); _local9 = ((_local7 * _local31) + (_local8 * _local32)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local10 = ((_local7 * _local33) + (_local8 * _local34)); _local12 = (_local2.tangentMass * -(_local10)); _local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0); _local11 = (_local13 - _local2.normalImpulse); _local38 = (_local35 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38); _local12 = (_local14 - _local2.tangentImpulse); _local15 = ((_local11 * _local31) + (_local12 * _local33)); _local16 = ((_local11 * _local32) + (_local12 * _local34)); _local25.x = (_local25.x - (_local27 * _local15)); _local25.y = (_local25.y - (_local27 * _local16)); _local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local26.x = (_local26.x + (_local29 * _local15)); _local26.y = (_local26.y + (_local29 * _local16)); _local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.normalImpulse = _local13; _local2.tangentImpulse = _local14; _local1++; }; _local21.m_angularVelocity = _local23; _local22.m_angularVelocity = _local24; _local19++; }; } public function FinalizeVelocityConstraints():void{ var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; var _local1:int; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local3:b2Mat22; var _local4:b2Vec2; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local2:Number = 0; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } } }//package Box2D.Dynamics.Contacts
Section 45
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function Evaluate(_arg1:b2ContactListener):void{ } override public function GetManifolds():Array{ return (null); } } }//package Box2D.Dynamics.Contacts
Section 46
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local6:b2Body = m_shape1.m_body; var _local7:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); var _local8:Array = [false, false]; var _local9:b2ContactPoint = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } } }//package Box2D.Dynamics.Contacts
Section 47
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonContact extends b2Contact { private var m0:b2Manifold; private var m_manifolds:Array; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local7:b2ContactPoint; var _local8:int; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); var _local9:Array = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local9[_local13] == true){ } else { _local4 = m0.points[_local13]; if (_local4.id._key == _local12){ _local9[_local13] = true; _local10.normalImpulse = _local4.normalImpulse; _local10.tangentImpulse = _local4.tangentImpulse; _local11 = true; if (_arg1 != null){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Persist(_local7); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Add(_local7); }; _local8++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local8 = 0; while (_local8 < m0.pointCount) { if (_local9[_local8]){ } else { _local4 = m0.points[_local8]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; _local8++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } } }//package Box2D.Dynamics.Contacts
Section 48
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_u:b2Vec2; public var m_frequencyHz:Number; public var m_dampingRatio:Number; public var m_gamma:Number; public var m_bias:Number; public var m_impulse:Number; public var m_mass:Number; public var m_length:Number; public function b2DistanceJoint(_arg1:b2DistanceJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; m_inv_dt = 0; } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local8:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; m_inv_dt = _arg1.inv_dt; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); var _local10:Number = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; var _local11:Number = ((_local6 * m_u.y) - (_local7 * m_u.x)); var _local12:Number = ((_local8 * m_u.y) - (_local9 * m_u.x)); var _local13:Number = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; _local2 = _local3.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local7:Number = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); var _local11:Number = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); var _local12:Number = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); var _local13:Number = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); var _local14:Number = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); var _local15:Number = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); var _local16:Number = (_local15 * m_u.x); var _local17:Number = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; if (m_frequencyHz > 0){ return (true); }; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local1 = _local2.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; var _local9:Number = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); var _local10:Number = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); var _local11:Number = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); var _local12:Number = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local13:Number = (-(m_mass) * _local12); m_u.Set(_local9, _local10); var _local14:Number = (_local13 * m_u.x); var _local15:Number = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function GetReactionTorque():Number{ return (0); } } }//package Box2D.Dynamics.Joints
Section 49
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2DistanceJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var length:Number; public var frequencyHz:Number; public var dampingRatio:Number; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); var _local5:Number = (_arg4.x - _arg3.x); var _local6:Number = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.Joints
Section 50
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_ground1:b2Body; public var m_ground2:b2Body; public var m_revolute1:b2RevoluteJoint; public var m_prismatic1:b2PrismaticJoint; public var m_revolute2:b2RevoluteJoint; public var m_prismatic2:b2PrismaticJoint; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_J:b2Jacobian; public var m_constant:Number; public var m_ratio:Number; public var m_mass:Number; public var m_force:Number; public function b2GearJoint(_arg1:b2GearJointDef){ var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); var _local2:int = _arg1.joint1.m_type; var _local3:int = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.m_body1; m_body1 = _arg1.joint1.m_body2; if (_local2 == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local4 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local4 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_local3 == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local5 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local5 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local4 + (m_ratio * _local5)); m_force = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function GetReactionTorque():Number{ var _local1:b2Mat22 = m_body2.m_xf.R; var _local2:Number = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); var _local3:Number = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); var _local4:Number = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } public function GetRatio():Number{ return (m_ratio); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local15:Number; var _local2:b2Body = m_ground1; var _local3:b2Body = m_ground2; var _local4:b2Body = m_body1; var _local5:b2Body = m_body2; var _local14:Number = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local5:Number = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); var _local6:Number = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } override public function SolvePositionConstraints():Boolean{ var _local4:Number; var _local5:Number; var _local1:Number = 0; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; var _local6:Number = (m_constant - (_local4 + (m_ratio * _local5))); var _local7:Number = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } } }//package Box2D.Dynamics.Joints
Section 51
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint1:b2Joint; public var joint2:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.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 angular1:Number; public var linear2:b2Vec2; public var angular2:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 53
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2Joint { public var m_type:int; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_body1:b2Body; public var m_body2:b2Body; public var m_inv_dt:Number; public var m_islandFlag:Boolean; public var m_collideConnected:Boolean; public var m_userData; public static const e_unknownJoint:int = 0; public static const e_revoluteJoint:int = 1; public static const e_prismaticJoint:int = 2; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_mouseJoint:int = 5; public static const e_gearJoint:int = 6; public static const e_inactiveLimit:int = 0; public static const e_atLowerLimit:int = 1; public static const e_atUpperLimit:int = 2; public static const e_equalLimits:int = 3; public function b2Joint(_arg1:b2JointDef){ m_node1 = new b2JointEdge(); m_node2 = new b2JointEdge(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetType():int{ return (m_type); } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function GetReactionForce():b2Vec2{ return (null); } public function GetReactionTorque():Number{ return (0); } public function GetBody1():b2Body{ return (m_body1); } public function GetBody2():b2Body{ return (m_body2); } public function GetNext():b2Joint{ return (m_next); } public function GetUserData(){ return (m_userData); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public function SolvePositionConstraints():Boolean{ return (false); } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } public static function Destroy(_arg1:b2Joint, _arg2):void{ } } }//package Box2D.Dynamics.Joints
Section 54
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var type:int; public var userData; public var body1:b2Body; public var body2:b2Body; public var collideConnected:Boolean; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 55
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var other:b2Body; public var joint:b2Joint; public var prev:b2JointEdge; public var next:b2JointEdge; } }//package Box2D.Dynamics.Joints
Section 56
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { private var K:b2Mat22; private var K1:b2Mat22; private var K2:b2Mat22; public var m_localAnchor:b2Vec2; public var m_target:b2Vec2; public var m_impulse:b2Vec2; public var m_mass:b2Mat22; public var m_C:b2Vec2; public var m_maxForce:Number; public var m_beta:Number; public var m_gamma:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local3:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); var _local2:Number = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); var _local4:b2Mat22 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); var _local5:Number = m_body2.m_mass; var _local6:Number = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); var _local7:Number = (((2 * _local5) * _arg1.dampingRatio) * _local6); var _local8:Number = ((_arg1.timeStep * _local5) * (_local6 * _local6)); m_gamma = (1 / (_local7 + _local8)); m_beta = (_local8 / (_local7 + _local8)); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function GetReactionForce():b2Vec2{ return (m_impulse); } override public function GetReactionTorque():Number{ return (0); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local7:Number; var _local8:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); var _local9:Number = (_arg1.dt * m_impulse.x); var _local10:Number = (_arg1.dt * m_impulse.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local2:b2Body = m_body2; _local3 = _local2.m_xf.R; var _local6:Number = (m_localAnchor.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; var _local8:Number = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); var _local9:Number = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y)); var _local10:Number = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); var _local11:Number = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); var _local12:Number = m_impulse.x; var _local13:Number = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); var _local14:Number = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); var _local15:Number = (_arg1.dt * _local10); var _local16:Number = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } override public function SolvePositionConstraints():Boolean{ return (true); } } }//package Box2D.Dynamics.Joints
Section 57
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var target:b2Vec2; public var maxForce:Number; public var frequencyHz:Number; public var dampingRatio:Number; public var timeStep:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; timeStep = (1 / 60); } } }//package Box2D.Dynamics.Joints
Section 58
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_localXAxis1:b2Vec2; public var m_localYAxis1:b2Vec2; public var m_refAngle:Number; public var m_linearJacobian:b2Jacobian; public var m_linearMass:Number; public var m_force:Number; public var m_angularMass:Number; public var m_torque:Number; public var m_motorJacobian:b2Jacobian; public var m_motorMass:Number; public var m_motorForce:Number; public var m_limitForce:Number; public var m_limitPositionImpulse:Number; public var m_lowerTranslation:Number; public var m_upperTranslation:Number; public var m_maxMotorForce:Number; public var m_motorSpeed:Number; public var m_enableLimit:Boolean; public var m_enableMotor:Boolean; public var m_limitState:int; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_linearJacobian = new b2Jacobian(); m_motorJacobian = new b2Jacobian(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_linearJacobian.SetZero(); m_linearMass = 0; m_force = 0; m_angularMass = 0; m_torque = 0; m_motorJacobian.SetZero(); m_motorMass = 0; m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerTranslation = _arg1.lowerTranslation; m_upperTranslation = _arg1.upperTranslation; m_maxMotorForce = _arg1.maxMotorForce; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22 = m_body1.m_xf.R; var _local2:Number = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); var _local3:Number = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); var _local4:Number = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); var _local5:Number = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function GetReactionTorque():Number{ return (m_torque); } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } public function GetMotorForce():Number{ return (m_motorForce); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; _local4 = _local2.m_xf.R; var _local14:Number = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); var _local15:Number = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); var _local16:Number = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); var _local17:Number = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local8:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = _local2.m_invMass; var _local5:Number = _local3.m_invMass; var _local6:Number = _local2.m_invI; var _local7:Number = _local3.m_invI; var _local9:Number = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local10:Number = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); var _local11:Number = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); var _local12:Number = (_local3.m_angularVelocity - _local2.m_angularVelocity); var _local13:Number = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); var _local14:Number = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local9:b2Mat22; var _local10:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = _local3.m_invMass; var _local6:Number = _local4.m_invMass; var _local7:Number = _local3.m_invI; var _local8:Number = _local4.m_invI; _local9 = _local3.m_xf.R; var _local11:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local12:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; var _local13:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local14:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; var _local15:Number = (_local3.m_sweep.c.x + _local11); var _local16:Number = (_local3.m_sweep.c.y + _local12); var _local17:Number = (_local4.m_sweep.c.x + _local13); var _local18:Number = (_local4.m_sweep.c.y + _local14); var _local19:Number = (_local17 - _local15); var _local20:Number = (_local18 - _local16); _local9 = _local3.m_xf.R; var _local21:Number = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); var _local22:Number = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); var _local23:Number = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local24:Number = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); var _local25:Number = b2Math.b2Abs(_local23); var _local26:Number = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); var _local27:Number = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local28:Number = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } } }//package Box2D.Dynamics.Joints
Section 59
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2PrismaticJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var localAxis1:b2Vec2; public var referenceAngle:Number; public var enableLimit:Boolean; public var lowerTranslation:Number; public var upperTranslation:Number; public var enableMotor:Boolean; public var maxMotorForce:Number; public var motorSpeed:Number; public function b2PrismaticJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxis1.Set(1, 0); referenceAngle = 0; enableLimit = false; lowerTranslation = 0; upperTranslation = 0; enableMotor = false; maxMotorForce = 0; motorSpeed = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 60
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_ground:b2Body; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_u1:b2Vec2; public var m_u2:b2Vec2; public var m_constant:Number; public var m_ratio:Number; public var m_maxLength1:Number; public var m_maxLength2:Number; public var m_pulleyMass:Number; public var m_limitMass1:Number; public var m_limitMass2:Number; public var m_force:Number; public var m_limitForce1:Number; public var m_limitForce2:Number; public var m_positionImpulse:Number; public var m_limitPositionImpulse1:Number; public var m_limitPositionImpulse2:Number; public var m_state:int; public var m_limitState1:int; public var m_limitState2:int; public static const b2_minPulleyLength:Number = 2; public function b2PulleyJoint(_arg1:b2PulleyJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u1 = new b2Vec2(); m_u2 = new b2Vec2(); super(_arg1); m_ground = m_body1.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_ratio = _arg1.ratio; m_constant = (_arg1.length1 + (m_ratio * _arg1.length2)); m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio)); m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function GetReactionTorque():Number{ return (0); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } public function GetLength1():Number{ var _local1:b2Vec2 = m_body1.GetWorldPoint(m_localAnchor1); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetLength2():Number{ var _local1:b2Vec2 = m_body2.GetWorldPoint(m_localAnchor2); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetRatio():Number{ return (m_ratio); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local2.m_sweep.c.x + _local5); var _local11:Number = (_local2.m_sweep.c.y + _local6); var _local12:Number = (_local3.m_sweep.c.x + _local8); var _local13:Number = (_local3.m_sweep.c.y + _local9); var _local14:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local15:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local16:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local17:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); var _local18:Number = m_u1.Length(); var _local19:Number = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; var _local20:Number = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; var _local21:Number = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); var _local22:Number = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } override public function SolvePositionConstraints():Boolean{ var _local3:b2Mat22; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local5:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local6:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local7:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local23:Number = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u1.Set((_local12 - _local4), (_local13 - _local5)); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local16 = m_u1.Length(); _local17 = m_u2.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local16)); } else { m_u1.SetZero(); }; if (_local17 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local17)); } else { m_u2.SetZero(); }; _local18 = ((m_constant - _local16) - (m_ratio * _local17)); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_pulleyMass) * _local18); _local20 = m_positionImpulse; m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19)); _local19 = (m_positionImpulse - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local14 = ((-(m_ratio) * _local19) * m_u2.x); _local15 = ((-(m_ratio) * _local19) * m_u2.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.SynchronizeTransform(); _local2.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); m_u1.Set((_local12 - _local4), (_local13 - _local5)); _local16 = m_u1.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local16)); m_u1.y = (m_u1.y * (1 / _local16)); } else { m_u1.SetZero(); }; _local18 = (m_maxLength1 - _local16); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local21 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local21); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } } }//package Box2D.Dynamics.Joints
Section 61
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2PulleyJointDef extends b2JointDef { public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var length1:Number; public var maxLength1:Number; public var length2:Number; public var maxLength2:Number; public var ratio:Number; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); var _local8:Number = (_arg5.x - _arg3.x); var _local9:Number = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); var _local10:Number = (_arg6.x - _arg4.x); var _local11:Number = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; var _local12:Number = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 62
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { private var K:b2Mat22; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_pivotForce:b2Vec2; public var m_motorForce:Number; public var m_limitForce:Number; public var m_limitPositionImpulse:Number; public var m_pivotMass:b2Mat22; public var m_motorMass:Number; public var m_enableMotor:Boolean; public var m_maxMotorTorque:Number; public var m_motorSpeed:Number; public var m_enableLimit:Boolean; public var m_referenceAngle:Number; public var m_lowerAngle:Number; public var m_upperAngle:Number; public var m_limitState:int; public static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_pivotForce = new b2Vec2(); m_pivotMass = new b2Mat22(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_referenceAngle = _arg1.referenceAngle; m_pivotForce.Set(0, 0); m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerAngle = _arg1.lowerAngle; m_upperAngle = _arg1.upperAngle; m_maxMotorTorque = _arg1.maxMotorTorque; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ return (m_pivotForce); } override public function GetReactionTorque():Number{ return (m_limitForce); } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function GetUpperLimit():Number{ return (m_upperAngle); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetMotorTorque():Number{ return (m_motorForce); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local7:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local10:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local11:Number = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); var _local12:Number = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); var _local13:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); var _local14:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); var _local15:Number = (_arg1.dt * _local13); _local16 = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local6:b2Mat22; var _local25:Number; var _local26:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = 0; _local6 = _local3.m_xf.R; var _local7:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local9:Number = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; var _local10:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local11:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; var _local12:Number = (_local3.m_sweep.c.x + _local7); var _local13:Number = (_local3.m_sweep.c.y + _local8); var _local14:Number = (_local4.m_sweep.c.x + _local10); var _local15:Number = (_local4.m_sweep.c.y + _local11); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); var _local18:Number = _local3.m_invMass; var _local19:Number = _local4.m_invMass; var _local20:Number = _local3.m_invI; var _local21:Number = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); var _local22:Number = tImpulse.x; var _local23:Number = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local24:Number = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } } }//package Box2D.Dynamics.Joints
Section 63
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2RevoluteJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var referenceAngle:Number; public var enableLimit:Boolean; public var lowerAngle:Number; public var upperAngle:Number; public var enableMotor:Boolean; public var motorSpeed:Number; public var maxMotorTorque:Number; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 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_flags:uint; public var m_type:int; public var m_xf:b2XForm; public var m_sweep:b2Sweep; public var m_linearVelocity:b2Vec2; public var m_angularVelocity:Number; public var m_force:b2Vec2; public var m_torque:Number; public var m_world:b2World; public var m_prev:b2Body; public var m_next:b2Body; public var m_shapeList:b2Shape; public var m_shapeCount:int; public var m_jointList:b2JointEdge; public var m_contactList:b2ContactEdge; public var m_mass:Number; public var m_invMass:Number; public var m_I:Number; public var m_invI:Number; public var m_linearDamping:Number; public var m_angularDamping:Number; public var m_sleepTime:Number; public var m_userData; private static var s_massData:b2MassData = new b2MassData(); private static var s_xf1:b2XForm = new b2XForm(); public static var e_frozenFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var e_sleepFlag:uint = 8; public static var e_allowSleepFlag:uint = 16; public static var e_bulletFlag:uint = 32; public static var e_fixedRotationFlag:uint = 64; public static var e_staticType:uint = 1; public static var e_dynamicType:uint = 2; public static var e_maxTypes:uint = 3; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function CreateShape(_arg1:b2ShapeDef):b2Shape{ var _local2:b2Shape; if (m_world.m_lock == true){ return (null); }; _local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); return (_local2); } public function DestroyShape(_arg1:b2Shape):void{ if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); var _local2:b2Shape = m_shapeList; var _local3:b2Shape; var _local4:Boolean; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_shapeList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; var _local5:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function SetMassFromShapes():void{ var _local1:b2Shape; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; var _local2:Number = 0; var _local3:Number = 0; var _local4:b2MassData = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); var _local5:b2Mat22 = m_xf.R; var _local6:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; var _local7:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); var _local4:b2Mat22 = m_xf.R; var _local5:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); var _local6:Boolean; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function GetXForm():b2XForm{ return (m_xf); } public function GetPosition():b2Vec2{ return (m_xf.position); } public function GetAngle():Number{ return (m_sweep.a); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x)); m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y)); m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)))); } public function GetMass():Number{ return (m_mass); } public function GetInertia():Number{ return (m_I); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x - (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.y + (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } public function PutToSleep():void{ m_flags = (m_flags | e_sleepFlag); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; } public function GetShapeList():b2Shape{ return (m_shapeList); } public function GetJointList():b2JointEdge{ return (m_jointList); } public function GetNext():b2Body{ return (m_next); } public function GetUserData(){ return (m_userData); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetWorld():b2World{ return (m_world); } public function SynchronizeShapes():Boolean{ var _local4:b2Shape; var _local1:b2XForm = s_xf1; _local1.R.Set(m_sweep.a0); var _local2:b2Mat22 = _local1.R; var _local3:b2Vec2 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); var _local5:Boolean; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function SynchronizeTransform():void{ m_xf.R.Set(m_sweep.a); var _local1:b2Mat22 = m_xf.R; var _local2:b2Vec2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge = m_jointList; while (_local2) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } } }//package Box2D.Dynamics
Section 65
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2BodyDef { public var massData:b2MassData; public var userData; public var position:b2Vec2; public var angle:Number; public var linearDamping:Number; public var angularDamping:Number; public var allowSleep:Boolean; public var isSleeping:Boolean; public var fixedRotation:Boolean; public var isBullet:Boolean; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.Dynamics
Section 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 = _arg1.GetFilterData(); var _local4:b2FilterData = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; var _local5:Boolean = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.Dynamics
Section 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 Persist(_arg1:b2ContactPoint):void{ } public function Remove(_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.Common.*; import Box2D.Dynamics.Contacts.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_nullContact:b2NullContact; public var m_destroyImmediate:Boolean; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape = (_arg1 as b2Shape); var _local4:b2Shape = (_arg2 as b2Shape); var _local5:b2Body = _local3.m_body; var _local6:b2Body = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; var _local7:b2Contact = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } override public function PairRemoved(_arg1, _arg2, _arg3):void{ if (_arg3 == null){ return; }; var _local4:b2Contact = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local7:b2Body; var _local8:b2Body; var _local9:Array; var _local10:b2ContactPoint; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2Vec2; var _local16:b2Vec2; var _local2:b2Shape = _arg1.m_shape1; var _local3:b2Shape = _arg1.m_shape2; var _local4:int = _arg1.m_manifoldCount; if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = _local2.m_body; _local8 = _local3.m_body; _local9 = _arg1.GetManifolds(); _local10 = s_evalCP; _local10.shape1 = _arg1.m_shape1; _local10.shape2 = _arg1.m_shape2; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; var _local5:b2Body = _local2.m_body; var _local6:b2Body = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } public function Collide():void{ var _local2:b2Body; var _local3:b2Body; var _local1:b2Contact = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.Dynamics
Section 70
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2DebugDraw { public var m_drawFlags:uint; public var m_sprite:Sprite; public var m_drawScale:Number;// = 1 public var m_lineThickness:Number;// = 1 public var m_alpha:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_xformScale:Number;// = 1 public static var e_shapeBit:uint = 1; public static var e_jointBit:uint = 2; public static var e_coreShapeBit:uint = 4; public static var e_aabbBit:uint = 8; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_centerOfMassBit:uint = 64; public function b2DebugDraw(){ m_drawFlags = 0; } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function GetFlags():uint{ return (m_drawFlags); } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } } }//package Box2D.Dynamics
Section 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.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Island { public var m_allocator; public var m_listener:b2ContactListener; public var m_bodies:Array; public var m_contacts:Array; public var m_joints:Array; public var m_bodyCount:int; public var m_jointCount:int; public var m_contactCount:int; public var m_bodyCapacity:int; public var m_contactCapacity:int; public var m_jointCapacity:int; public var m_positionIterationCount:int; private static var s_reportCR:b2ContactResult = new b2ContactResult(); public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){ var _local6:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; m_bodies = new Array(_arg1); _local6 = 0; while (_local6 < _arg1) { m_bodies[_local6] = null; _local6++; }; m_contacts = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { m_contacts[_local6] = null; _local6++; }; m_joints = new Array(_arg3); _local6 = 0; while (_local6 < _arg3) { m_joints[_local6] = null; _local6++; }; m_positionIterationCount = 0; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local9:int; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Number; var _local14:Number; var _local15:Number; _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; var _local8:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local8.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local8.SolveVelocityConstraints(); _local9 = 0; while (_local9 < m_jointCount) { _local7 = m_joints[_local9]; _local7.SolveVelocityConstraints(_arg1); _local9++; }; _local5++; }; _local8.FinalizeVelocityConstraints(); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_sweep.c0.SetV(_local6.m_sweep.c); _local6.m_sweep.a0 = _local6.m_sweep.a; _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y)); _local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity)); _local6.SynchronizeTransform(); }; _local5++; }; if (_arg3){ _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local10 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local12 = _local7.SolvePositionConstraints(); _local11 = ((_local11) && (_local12)); _local5++; }; if (((_local10) && (_local11))){ break; }; m_positionIterationCount++; }; }; Report(_local8.m_constraints); if (_arg4){ _local13 = Number.MAX_VALUE; _local14 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local15 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.m_invMass == 0){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local13 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local15)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local14)))){ _local6.m_sleepTime = 0; _local13 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local13 = b2Math.b2Min(_local13, _local6.m_sleepTime); }; }; _local5++; }; if (_local13 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local5:b2Body; var _local6:Boolean; var _local3:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; var _local4:Number = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } public function Report(_arg1:Array):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; var _local4:int; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function AddBody(_arg1:b2Body):void{ var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } } }//package Box2D.Dynamics
Section 73
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var dt:Number; public var inv_dt:Number; public var dtRatio:Number; public var maxIterations:int; public var warmStarting:Boolean; public var positionCorrection:Boolean; } }//package Box2D.Dynamics
Section 74
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2World { public var m_blockAllocator; public var m_stackAllocator; public var m_lock:Boolean; public var m_broadPhase:b2BroadPhase; public var m_contactManager:b2ContactManager; public var m_bodyList:b2Body; public var m_jointList:b2Joint; public var m_contactList:b2Contact; public var m_bodyCount:int; public var m_contactCount:int; public var m_jointCount:int; public var m_gravity:b2Vec2; public var m_allowSleep:Boolean; public var m_groundBody:b2Body; public var m_destructionListener:b2DestructionListener; public var m_boundaryListener:b2BoundaryListener; public var m_contactFilter:b2ContactFilter; public var m_contactListener:b2ContactListener; public var m_debugDraw:b2DebugDraw; public var m_inv_dt0:Number; public var m_positionIterationCount:int; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); private static var s_xf:b2XForm = new b2XForm(); public static var m_positionCorrection:Boolean; public static var m_warmStarting:Boolean; public static var m_continuousPhysics:Boolean; public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_positionCorrection = true; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_inv_dt0 = 0; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); var _local4:b2BodyDef = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function Validate():void{ m_broadPhase.Validate(); } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function CreateBody(_arg1:b2BodyDef):b2Body{ if (m_lock == true){ return (null); }; var _local2:b2Body = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function DestroyBody(_arg1:b2Body):void{ var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; var _local2:b2JointEdge = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; var _local3:b2Shape = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local3:b2Body; var _local4:b2Shape; var _local2:b2Joint = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local5:b2Body; var _local6:b2Shape; var _local2:Boolean = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; var _local3:b2Body = _arg1.m_body1; var _local4:b2Body = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetPositionCorrection(_arg1:Boolean):void{ m_positionCorrection = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } public function GetContactCount():int{ return (m_contactCount); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function Step(_arg1:Number, _arg2:int):void{ m_lock = true; var _local3:b2TimeStep = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; _local3.dtRatio = (m_inv_dt0 * _arg1); _local3.positionCorrection = m_positionCorrection; _local3.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((m_continuousPhysics) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_inv_dt0 = _local3.inv_dt; m_lock = false; } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array = new Array(_arg3); var _local5:int = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); var _local6:int; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function GetBodyList():b2Body{ return (m_bodyList); } public function GetJointList():b2Joint{ return (m_jointList); } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; var _local3:b2Island = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; var _local4:b2Contact = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; var _local5:b2Joint = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; var _local6:int = m_bodyCount; var _local7:Array = new Array(_local6); var _local8:b2Body = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.m_manifoldCount == 0){ } else { _local3.AddContact(_local12.contact); _local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag); _local11 = _local12.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local9; _local9 = (_local9 + 1); var _local16 = _temp2; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; }; _local12 = _local12.next; }; _local13 = _local2.m_jointList; while (_local13) { if (_local13.joint.m_islandFlag == true){ } else { _local3.AddJoint(_local13.joint); _local13.joint.m_islandFlag = true; _local11 = _local13.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local9; _local9 = (_local9 + 1); _local16 = _temp3; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; _local13 = _local13.next; }; }; }; _local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep); if (_local3.m_positionIterationCount > m_positionIterationCount){ m_positionIterationCount = _local3.m_positionIterationCount; }; _local10 = 0; while (_local10 < _local3.m_bodyCount) { _local2 = _local3.m_bodies[_local10]; if (_local2.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local10++; }; }; }; _local8 = _local8.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local14 = _local2.SynchronizeShapes(); if ((((_local14 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; var _local8:b2Island = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); var _local9:int = m_bodyCount; var _local10:Array = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.m_shape1; _local4 = _local11.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local19 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local19 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local19); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local19 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local19); }; }; _local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep); if ((((_local18 > 0)) && ((_local18 < 1)))){ _local18 = (((1 - _local18) * _local19) + _local18); if (_local18 > 1){ _local18 = 1; }; }; _local11.m_toi = _local18; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){ _local12 = _local11; _local13 = _local18; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.m_manifoldCount == 0){ } else { _local14 = _local5; if (_local14.IsStatic()){ _local14 = _local6; }; _local8.Clear(); _local15 = 0; var _temp1 = _local15; _local15 = (_local15 + 1); var _local22 = _temp1; _local10[_local22] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local15 > 0) { --_local15; _local2 = _local10[_local15]; _local8.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local8.m_contactCount == _local8.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function DrawJoint(_arg1:b2Joint):void{ var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; var _local2:b2Body = _arg1.m_body1; var _local3:b2Body = _arg1.m_body2; var _local4:b2XForm = _local2.m_xf; var _local5:b2XForm = _local3.m_xf; var _local6:b2Vec2 = _local4.position; var _local7:b2Vec2 = _local5.position; var _local8:b2Vec2 = _arg1.GetAnchor1(); var _local9:b2Vec2 = _arg1.GetAnchor2(); var _local10:b2Color = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; var _local5:b2Color = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; }; } public function DrawDebugData():void{ var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local11:b2XForm; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); var _local1:uint = m_debugDraw.GetFlags(); var _local7:b2Vec2 = new b2Vec2(); var _local8:b2Vec2 = new b2Vec2(); var _local9:b2Vec2 = new b2Vec2(); var _local10:b2Color = new b2Color(0, 0, 0); var _local12:b2AABB = new b2AABB(); var _local13:b2AABB = new b2AABB(); var _local14:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } } }//package Box2D.Dynamics
Section 75
//AuxFunctions (caurina.transitions.AuxFunctions) package caurina.transitions { public class AuxFunctions { public static function numberToR(_arg1:Number):Number{ return (((_arg1 & 0xFF0000) >> 16)); } public static function numberToG(_arg1:Number):Number{ return (((_arg1 & 0xFF00) >> 8)); } public static function numberToB(_arg1:Number):Number{ return ((_arg1 & 0xFF)); } public static function getObjectLength(_arg1:Object):uint{ var _local3:String; var _local2:uint; for (_local3 in _arg1) { _local2++; }; return (_local2); } public static function concatObjects(... _args):Object{ var _local3:Object; var _local5:String; var _local2:Object = {}; var _local4:int; while (_local4 < _args.length) { _local3 = _args[_local4]; for (_local5 in _local3) { if (_local3[_local5] == null){ delete _local2[_local5]; } else { _local2[_local5] = _local3[_local5]; }; }; _local4++; }; return (_local2); } } }//package caurina.transitions
Section 76
//Equations (caurina.transitions.Equations) package caurina.transitions { public class Equations { public function Equations(){ trace("Equations is a static class and should not be instantiated."); } public static function init():void{ Tweener.registerTransition("easenone", easeNone); Tweener.registerTransition("linear", easeNone); Tweener.registerTransition("easeinquad", easeInQuad); Tweener.registerTransition("easeoutquad", easeOutQuad); Tweener.registerTransition("easeinoutquad", easeInOutQuad); Tweener.registerTransition("easeoutinquad", easeOutInQuad); Tweener.registerTransition("easeincubic", easeInCubic); Tweener.registerTransition("easeoutcubic", easeOutCubic); Tweener.registerTransition("easeinoutcubic", easeInOutCubic); Tweener.registerTransition("easeoutincubic", easeOutInCubic); Tweener.registerTransition("easeinquart", easeInQuart); Tweener.registerTransition("easeoutquart", easeOutQuart); Tweener.registerTransition("easeinoutquart", easeInOutQuart); Tweener.registerTransition("easeoutinquart", easeOutInQuart); Tweener.registerTransition("easeinquint", easeInQuint); Tweener.registerTransition("easeoutquint", easeOutQuint); Tweener.registerTransition("easeinoutquint", easeInOutQuint); Tweener.registerTransition("easeoutinquint", easeOutInQuint); Tweener.registerTransition("easeinsine", easeInSine); Tweener.registerTransition("easeoutsine", easeOutSine); Tweener.registerTransition("easeinoutsine", easeInOutSine); Tweener.registerTransition("easeoutinsine", easeOutInSine); Tweener.registerTransition("easeincirc", easeInCirc); Tweener.registerTransition("easeoutcirc", easeOutCirc); Tweener.registerTransition("easeinoutcirc", easeInOutCirc); Tweener.registerTransition("easeoutincirc", easeOutInCirc); Tweener.registerTransition("easeinexpo", easeInExpo); Tweener.registerTransition("easeoutexpo", easeOutExpo); Tweener.registerTransition("easeinoutexpo", easeInOutExpo); Tweener.registerTransition("easeoutinexpo", easeOutInExpo); Tweener.registerTransition("easeinelastic", easeInElastic); Tweener.registerTransition("easeoutelastic", easeOutElastic); Tweener.registerTransition("easeinoutelastic", easeInOutElastic); Tweener.registerTransition("easeoutinelastic", easeOutInElastic); Tweener.registerTransition("easeinback", easeInBack); Tweener.registerTransition("easeoutback", easeOutBack); Tweener.registerTransition("easeinoutback", easeInOutBack); Tweener.registerTransition("easeoutinback", easeOutInBack); Tweener.registerTransition("easeinbounce", easeInBounce); Tweener.registerTransition("easeoutbounce", easeOutBounce); Tweener.registerTransition("easeinoutbounce", easeInOutBounce); Tweener.registerTransition("easeoutinbounce", easeOutInBounce); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((_arg3 * _arg1) * _arg1) + _arg2)); } public static function easeOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function easeInOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2)); }; --_arg1; return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2)); } public static function easeOutInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuad((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuad(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeInOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 2)) + _arg2)); } public static function easeOutInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutCubic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInCubic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((-(_arg3) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2)); } public static function easeInOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((-(_arg3) / 2) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 2)) + _arg2)); } public static function easeOutInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuart((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuart(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeInOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2)); } public static function easeOutInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuint((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuint(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg3) + _arg2)); } public static function easeOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2)); } public static function easeInOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2)); } public static function easeOutInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutSine((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInSine(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg1)==0) ? _arg2 : (((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2) - (_arg3 * 0.001))); } public static function easeOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg1)==_arg4) ? (_arg2 + _arg3) : (((_arg3 * 1.001) * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2)); } public static function easeInOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 == 0){ return (_arg2); }; if (_arg1 == _arg4){ return ((_arg2 + _arg3)); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * Math.pow(2, (10 * (_arg1 - 1)))) + _arg2) - (_arg3 * 0.0005))); }; --_arg1; return (((((_arg3 / 2) * 1.0005) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2)); } public static function easeOutInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutExpo((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInExpo(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); } public static function easeOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2)); } public static function easeInOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((-(_arg3) / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) + 1)) + _arg2)); } public static function easeOutInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutCirc((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInCirc(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period; var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; --_arg1; return ((-(((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2)); } public static function easeOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period; var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; return (((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) + _arg3) + _arg2)); } public static function easeInOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 == 2){ return ((_arg2 + _arg3)); }; var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * (0.3 * 1.5)) : _arg5.period; var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; if (_arg1 < 1){ --_arg1; return (((-0.5 * ((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2)); }; --_arg1; return ((((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) * 0.5) + _arg3) + _arg2)); } public static function easeOutInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutElastic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInElastic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * (((_local6 + 1) * _arg1) - _local6)) + _arg2)); } public static function easeOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 1)) + _arg2)); } public static function easeInOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ _local6 = (_local6 * 1.525); return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_local6 + 1) * _arg1) - _local6))) + _arg2)); }; _arg1 = (_arg1 - 2); _local6 = (_local6 * 1.525); return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 2)) + _arg2)); } public static function easeOutInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutBack((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInBack(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg3 - easeOutBounce((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2)); } public static function easeOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); if (_arg1 < (1 / 2.75)){ return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2)); }; if (_arg1 < (2 / 2.75)){ _arg1 = (_arg1 - (1.5 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2)); }; if (_arg1 < (2.5 / 2.75)){ _arg1 = (_arg1 - (2.25 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2)); }; _arg1 = (_arg1 - (2.625 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2)); } public static function easeInOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (((easeInBounce((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2)); }; return ((((easeOutBounce(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2)); } public static function easeOutInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutBounce((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInBounce(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } } }//package caurina.transitions
Section 77
//PropertyInfoObj (caurina.transitions.PropertyInfoObj) package caurina.transitions { public class PropertyInfoObj { public var valueStart:Number; public var valueComplete:Number; public var originalValueComplete:Object; public var arrayIndex:Number; public var extra:Object; public var isSpecialProperty:Boolean; public var hasModifier:Boolean; public var modifierFunction:Function; public var modifierParameters:Array; public function PropertyInfoObj(_arg1:Number, _arg2:Number, _arg3:Object, _arg4:Number, _arg5:Object, _arg6:Boolean, _arg7:Function, _arg8:Array){ valueStart = _arg1; valueComplete = _arg2; originalValueComplete = _arg3; arrayIndex = _arg4; extra = _arg5; isSpecialProperty = _arg6; hasModifier = Boolean(_arg7); modifierFunction = _arg7; modifierParameters = _arg8; } public function clone():PropertyInfoObj{ var _local1:PropertyInfoObj = new PropertyInfoObj(valueStart, valueComplete, originalValueComplete, arrayIndex, extra, isSpecialProperty, modifierFunction, modifierParameters); return (_local1); } public function toString():String{ var _local1 = "\n[PropertyInfoObj "; _local1 = (_local1 + ("valueStart:" + String(valueStart))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("valueComplete:" + String(valueComplete))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("originalValueComplete:" + String(originalValueComplete))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("arrayIndex:" + String(arrayIndex))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("extra:" + String(extra))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("isSpecialProperty:" + String(isSpecialProperty))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("hasModifier:" + String(hasModifier))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("modifierFunction:" + String(modifierFunction))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("modifierParameters:" + String(modifierParameters))); _local1 = (_local1 + "]\n"); return (_local1); } } }//package caurina.transitions
Section 78
//SpecialProperty (caurina.transitions.SpecialProperty) package caurina.transitions { public class SpecialProperty { public var getValue:Function; public var setValue:Function; public var parameters:Array; public var preProcess:Function; public function SpecialProperty(_arg1:Function, _arg2:Function, _arg3:Array=null, _arg4:Function=null){ getValue = _arg1; setValue = _arg2; parameters = _arg3; preProcess = _arg4; } public function toString():String{ var _local1 = ""; _local1 = (_local1 + "[SpecialProperty "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("setValue:" + String(setValue))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("parameters:" + String(parameters))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("preProcess:" + String(preProcess))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 79
//SpecialPropertyModifier (caurina.transitions.SpecialPropertyModifier) package caurina.transitions { public class SpecialPropertyModifier { public var modifyValues:Function; public var getValue:Function; public function SpecialPropertyModifier(_arg1:Function, _arg2:Function){ modifyValues = _arg1; getValue = _arg2; } public function toString():String{ var _local1 = ""; _local1 = (_local1 + "[SpecialPropertyModifier "); _local1 = (_local1 + ("modifyValues:" + String(modifyValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 80
//SpecialPropertySplitter (caurina.transitions.SpecialPropertySplitter) package caurina.transitions { public class SpecialPropertySplitter { public var parameters:Array; public var splitValues:Function; public function SpecialPropertySplitter(_arg1:Function, _arg2:Array){ splitValues = _arg1; parameters = _arg2; } public function toString():String{ var _local1 = ""; _local1 = (_local1 + "[SpecialPropertySplitter "); _local1 = (_local1 + ("splitValues:" + String(splitValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("parameters:" + String(parameters))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 81
//Tweener (caurina.transitions.Tweener) package caurina.transitions { import flash.display.*; import flash.utils.*; import flash.events.*; public class Tweener { private static var __tweener_controller__:MovieClip; private static var _engineExists:Boolean = false; private static var _inited:Boolean = false; private static var _currentTime:Number; private static var _currentTimeFrame:Number; private static var _tweenList:Array; private static var _timeScale:Number = 1; private static var _transitionList:Object; private static var _specialPropertyList:Object; private static var _specialPropertyModifierList:Object; private static var _specialPropertySplitterList:Object; public function Tweener(){ trace("Tweener is a static class and should not be instantiated."); } public static function addTween(_arg1:Object=null, _arg2:Object=null):Boolean{ var _local3:Number; var _local4:Number; var _local5:String; var _local6:Array; var _local13:Function; var _local14:Object; var _local15:TweenListObj; var _local16:Number; var _local17:Array; var _local18:Array; var _local19:Array; var _local20:String; if (!Boolean(_arg1)){ return (false); }; if ((_arg1 is Array)){ _local6 = _arg1.concat(); } else { _local6 = [_arg1]; }; var _local7:Object = TweenListObj.makePropertiesChain(_arg2); if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; var _local8:Number = (isNaN(_local7.time)) ? 0 : _local7.time; var _local9:Number = (isNaN(_local7.delay)) ? 0 : _local7.delay; var _local10:Array = new Array(); var _local11:Object = {time:true, delay:true, useFrames:true, skipUpdates:true, transition:true, transitionParams:true, onStart:true, onUpdate:true, onComplete:true, onOverwrite:true, onError:true, rounded:true, onStartParams:true, onUpdateParams:true, onCompleteParams:true, onOverwriteParams:true, onStartScope:true, onUpdateScope:true, onCompleteScope:true, onOverwriteScope:true, onErrorScope:true}; var _local12:Object = new Object(); for (_local5 in _local7) { if (!_local11[_local5]){ if (_specialPropertySplitterList[_local5]){ _local17 = _specialPropertySplitterList[_local5].splitValues(_local7[_local5], _specialPropertySplitterList[_local5].parameters); _local3 = 0; while (_local3 < _local17.length) { if (_specialPropertySplitterList[_local17[_local3].name]){ _local18 = _specialPropertySplitterList[_local17[_local3].name].splitValues(_local17[_local3].value, _specialPropertySplitterList[_local17[_local3].name].parameters); _local4 = 0; while (_local4 < _local18.length) { _local10[_local18[_local4].name] = {valueStart:undefined, valueComplete:_local18[_local4].value, arrayIndex:_local18[_local4].arrayIndex, isSpecialProperty:false}; _local4++; }; } else { _local10[_local17[_local3].name] = {valueStart:undefined, valueComplete:_local17[_local3].value, arrayIndex:_local17[_local3].arrayIndex, isSpecialProperty:false}; }; _local3++; }; } else { if (_specialPropertyModifierList[_local5] != undefined){ _local19 = _specialPropertyModifierList[_local5].modifyValues(_local7[_local5]); _local3 = 0; while (_local3 < _local19.length) { _local12[_local19[_local3].name] = {modifierParameters:_local19[_local3].parameters, modifierFunction:_specialPropertyModifierList[_local5].getValue}; _local3++; }; } else { _local10[_local5] = {valueStart:undefined, valueComplete:_local7[_local5]}; }; }; }; }; for (_local5 in _local10) { if (_specialPropertyList[_local5] != undefined){ _local10[_local5].isSpecialProperty = true; } else { if (_local6[0][_local5] == undefined){ printError((((("The property '" + _local5) + "' doesn't seem to be a normal object property of ") + String(_local6[0])) + " or a registered special property.")); }; }; }; for (_local5 in _local12) { if (_local10[_local5] != undefined){ _local10[_local5].modifierParameters = _local12[_local5].modifierParameters; _local10[_local5].modifierFunction = _local12[_local5].modifierFunction; }; }; if (typeof(_local7.transition) == "string"){ _local20 = _local7.transition.toLowerCase(); _local13 = _transitionList[_local20]; } else { _local13 = _local7.transition; }; if (!Boolean(_local13)){ _local13 = _transitionList["easeoutexpo"]; }; _local3 = 0; while (_local3 < _local6.length) { _local14 = new Object(); for (_local5 in _local10) { _local14[_local5] = new PropertyInfoObj(_local10[_local5].valueStart, _local10[_local5].valueComplete, _local10[_local5].valueComplete, _local10[_local5].arrayIndex, {}, _local10[_local5].isSpecialProperty, _local10[_local5].modifierFunction, _local10[_local5].modifierParameters); }; if (_local7.useFrames == true){ _local15 = new TweenListObj(_local6[_local3], (_currentTimeFrame + (_local9 / _timeScale)), (_currentTimeFrame + ((_local9 + _local8) / _timeScale)), true, _local13, _local7.transitionParams); } else { _local15 = new TweenListObj(_local6[_local3], (_currentTime + ((_local9 * 1000) / _timeScale)), (_currentTime + (((_local9 * 1000) + (_local8 * 1000)) / _timeScale)), false, _local13, _local7.transitionParams); }; _local15.properties = _local14; _local15.onStart = _local7.onStart; _local15.onUpdate = _local7.onUpdate; _local15.onComplete = _local7.onComplete; _local15.onOverwrite = _local7.onOverwrite; _local15.onError = _local7.onError; _local15.onStartParams = _local7.onStartParams; _local15.onUpdateParams = _local7.onUpdateParams; _local15.onCompleteParams = _local7.onCompleteParams; _local15.onOverwriteParams = _local7.onOverwriteParams; _local15.onStartScope = _local7.onStartScope; _local15.onUpdateScope = _local7.onUpdateScope; _local15.onCompleteScope = _local7.onCompleteScope; _local15.onOverwriteScope = _local7.onOverwriteScope; _local15.onErrorScope = _local7.onErrorScope; _local15.rounded = _local7.rounded; _local15.skipUpdates = _local7.skipUpdates; removeTweensByTime(_local15.scope, _local15.properties, _local15.timeStart, _local15.timeComplete); _tweenList.push(_local15); if ((((_local8 == 0)) && ((_local9 == 0)))){ _local16 = (_tweenList.length - 1); updateTweenByIndex(_local16); removeTweenByIndex(_local16); }; _local3++; }; return (true); } public static function addCaller(_arg1:Object=null, _arg2:Object=null):Boolean{ var _local3:Number; var _local4:Array; var _local8:Function; var _local9:TweenListObj; var _local10:Number; var _local11:String; if (!Boolean(_arg1)){ return (false); }; if ((_arg1 is Array)){ _local4 = _arg1.concat(); } else { _local4 = [_arg1]; }; var _local5:Object = _arg2; if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; var _local6:Number = (isNaN(_local5.time)) ? 0 : _local5.time; var _local7:Number = (isNaN(_local5.delay)) ? 0 : _local5.delay; if (typeof(_local5.transition) == "string"){ _local11 = _local5.transition.toLowerCase(); _local8 = _transitionList[_local11]; } else { _local8 = _local5.transition; }; if (!Boolean(_local8)){ _local8 = _transitionList["easeoutexpo"]; }; _local3 = 0; while (_local3 < _local4.length) { if (_local5.useFrames == true){ _local9 = new TweenListObj(_local4[_local3], (_currentTimeFrame + (_local7 / _timeScale)), (_currentTimeFrame + ((_local7 + _local6) / _timeScale)), true, _local8, _local5.transitionParams); } else { _local9 = new TweenListObj(_local4[_local3], (_currentTime + ((_local7 * 1000) / _timeScale)), (_currentTime + (((_local7 * 1000) + (_local6 * 1000)) / _timeScale)), false, _local8, _local5.transitionParams); }; _local9.properties = null; _local9.onStart = _local5.onStart; _local9.onUpdate = _local5.onUpdate; _local9.onComplete = _local5.onComplete; _local9.onOverwrite = _local5.onOverwrite; _local9.onStartParams = _local5.onStartParams; _local9.onUpdateParams = _local5.onUpdateParams; _local9.onCompleteParams = _local5.onCompleteParams; _local9.onOverwriteParams = _local5.onOverwriteParams; _local9.onStartScope = _local5.onStartScope; _local9.onUpdateScope = _local5.onUpdateScope; _local9.onCompleteScope = _local5.onCompleteScope; _local9.onOverwriteScope = _local5.onOverwriteScope; _local9.onErrorScope = _local5.onErrorScope; _local9.isCaller = true; _local9.count = _local5.count; _local9.waitFrames = _local5.waitFrames; _tweenList.push(_local9); if ((((_local6 == 0)) && ((_local7 == 0)))){ _local10 = (_tweenList.length - 1); updateTweenByIndex(_local10); removeTweenByIndex(_local10); }; _local3++; }; return (true); } public static function removeTweensByTime(_arg1:Object, _arg2:Object, _arg3:Number, _arg4:Number):Boolean{ var removedLocally:Boolean; var i:uint; var pName:String; var eventScope:Object; var p_scope = _arg1; var p_properties = _arg2; var p_timeStart = _arg3; var p_timeComplete = _arg4; var removed:Boolean; var tl:uint = _tweenList.length; i = 0; while (i < tl) { if (((Boolean(_tweenList[i])) && ((p_scope == _tweenList[i].scope)))){ if ((((p_timeComplete > _tweenList[i].timeStart)) && ((p_timeStart < _tweenList[i].timeComplete)))){ removedLocally = false; for (pName in _tweenList[i].properties) { if (Boolean(p_properties[pName])){ if (Boolean(_tweenList[i].onOverwrite)){ eventScope = (Boolean(_tweenList[i].onOverwriteScope)) ? _tweenList[i].onOverwriteScope : _tweenList[i].scope; try { _tweenList[i].onOverwrite.apply(eventScope, _tweenList[i].onOverwriteParams); } catch(e:Error) { handleError(_tweenList[i], e, "onOverwrite"); }; }; _tweenList[i].properties[pName] = undefined; delete _tweenList[i].properties[pName]; removedLocally = true; removed = true; }; }; if (removedLocally){ if (AuxFunctions.getObjectLength(_tweenList[i].properties) == 0){ removeTweenByIndex(i); }; }; }; }; i = (i + 1); }; return (removed); } public static function removeTweens(_arg1:Object, ... _args):Boolean{ var _local4:uint; var _local5:SpecialPropertySplitter; var _local6:Array; var _local7:uint; var _local3:Array = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){ if (_specialPropertySplitterList[_args[_local4]]){ _local5 = _specialPropertySplitterList[_args[_local4]]; _local6 = _local5.splitValues(_arg1, null); _local7 = 0; while (_local7 < _local6.length) { _local3.push(_local6[_local7].name); _local7++; }; } else { _local3.push(_args[_local4]); }; }; _local4++; }; return (affectTweens(removeTweenByIndex, _arg1, _local3)); } public static function removeAllTweens():Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; var _local1:Boolean; _local2 = 0; while (_local2 < _tweenList.length) { removeTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function pauseTweens(_arg1:Object, ... _args):Boolean{ var _local4:uint; var _local3:Array = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(pauseTweenByIndex, _arg1, _local3)); } public static function pauseAllTweens():Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; var _local1:Boolean; _local2 = 0; while (_local2 < _tweenList.length) { pauseTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function resumeTweens(_arg1:Object, ... _args):Boolean{ var _local4:uint; var _local3:Array = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(resumeTweenByIndex, _arg1, _local3)); } public static function resumeAllTweens():Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; var _local1:Boolean; _local2 = 0; while (_local2 < _tweenList.length) { resumeTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } private static function affectTweens(_arg1:Function, _arg2:Object, _arg3:Array):Boolean{ var _local5:uint; var _local6:Array; var _local7:uint; var _local8:uint; var _local9:uint; var _local4:Boolean; if (!Boolean(_tweenList)){ return (false); }; _local5 = 0; while (_local5 < _tweenList.length) { if (((_tweenList[_local5]) && ((_tweenList[_local5].scope == _arg2)))){ if (_arg3.length == 0){ _arg1(_local5); _local4 = true; } else { _local6 = new Array(); _local7 = 0; while (_local7 < _arg3.length) { if (Boolean(_tweenList[_local5].properties[_arg3[_local7]])){ _local6.push(_arg3[_local7]); }; _local7++; }; if (_local6.length > 0){ _local8 = AuxFunctions.getObjectLength(_tweenList[_local5].properties); if (_local8 == _local6.length){ _arg1(_local5); _local4 = true; } else { _local9 = splitTweens(_local5, _local6); _arg1(_local9); _local4 = true; }; }; }; }; _local5++; }; return (_local4); } public static function splitTweens(_arg1:Number, _arg2:Array):uint{ var _local5:uint; var _local6:String; var _local7:Boolean; var _local3:TweenListObj = _tweenList[_arg1]; var _local4:TweenListObj = _local3.clone(false); _local5 = 0; while (_local5 < _arg2.length) { _local6 = _arg2[_local5]; if (Boolean(_local3.properties[_local6])){ _local3.properties[_local6] = undefined; delete _local3.properties[_local6]; }; _local5++; }; for (_local6 in _local4.properties) { _local7 = false; _local5 = 0; while (_local5 < _arg2.length) { if (_arg2[_local5] == _local6){ _local7 = true; break; }; _local5++; }; if (!_local7){ _local4.properties[_local6] = undefined; delete _local4.properties[_local6]; }; }; _tweenList.push(_local4); return ((_tweenList.length - 1)); } private static function updateTweens():Boolean{ var _local1:int; if (_tweenList.length == 0){ return (false); }; _local1 = 0; while (_local1 < _tweenList.length) { if ((((_tweenList[_local1] == undefined)) || (!(_tweenList[_local1].isPaused)))){ if (!updateTweenByIndex(_local1)){ removeTweenByIndex(_local1); }; if (_tweenList[_local1] == null){ removeTweenByIndex(_local1, true); _local1--; }; }; _local1++; }; return (true); } public static function removeTweenByIndex(_arg1:Number, _arg2:Boolean=false):Boolean{ _tweenList[_arg1] = null; if (_arg2){ _tweenList.splice(_arg1, 1); }; return (true); } public static function pauseTweenByIndex(_arg1:Number):Boolean{ var _local2:TweenListObj = _tweenList[_arg1]; if ((((_local2 == null)) || (_local2.isPaused))){ return (false); }; _local2.timePaused = getCurrentTweeningTime(_local2); _local2.isPaused = true; return (true); } public static function resumeTweenByIndex(_arg1:Number):Boolean{ var _local2:TweenListObj = _tweenList[_arg1]; if ((((_local2 == null)) || (!(_local2.isPaused)))){ return (false); }; var _local3:Number = getCurrentTweeningTime(_local2); _local2.timeStart = (_local2.timeStart + (_local3 - _local2.timePaused)); _local2.timeComplete = (_local2.timeComplete + (_local3 - _local2.timePaused)); _local2.timePaused = undefined; _local2.isPaused = false; return (true); } private static function updateTweenByIndex(_arg1:Number):Boolean{ var tTweening:TweenListObj; var mustUpdate:Boolean; var nv:Number; var t:Number; var b:Number; var c:Number; var d:Number; var pName:String; var eventScope:Object; var tScope:Object; var tProperty:Object; var pv:Number; var i = _arg1; tTweening = _tweenList[i]; if ((((tTweening == null)) || (!(Boolean(tTweening.scope))))){ return (false); }; var isOver:Boolean; var cTime:Number = getCurrentTweeningTime(tTweening); if (cTime >= tTweening.timeStart){ tScope = tTweening.scope; if (tTweening.isCaller){ do { t = (((tTweening.timeComplete - tTweening.timeStart) / tTweening.count) * (tTweening.timesCalled + 1)); b = tTweening.timeStart; c = (tTweening.timeComplete - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d); } while (!(cTime >= nv)); } else { mustUpdate = (((((tTweening.skipUpdates < 1)) || (!(tTweening.skipUpdates)))) || ((tTweening.updatesSkipped >= tTweening.skipUpdates))); if (cTime >= tTweening.timeComplete){ isOver = true; mustUpdate = true; }; if (!tTweening.hasStarted){ if (Boolean(tTweening.onStart)){ eventScope = (Boolean(tTweening.onStartScope)) ? tTweening.onStartScope : tScope; try { tTweening.onStart.apply(eventScope, tTweening.onStartParams); } catch(e2:Error) { handleError(tTweening, e2, "onStart"); }; }; for (pName in tTweening.properties) { if (tTweening.properties[pName].isSpecialProperty){ if (Boolean(_specialPropertyList[pName].preProcess)){ tTweening.properties[pName].valueComplete = _specialPropertyList[pName].preProcess(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].originalValueComplete, tTweening.properties[pName].extra); }; pv = _specialPropertyList[pName].getValue(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra); } else { pv = tScope[pName]; }; tTweening.properties[pName].valueStart = (isNaN(pv)) ? tTweening.properties[pName].valueComplete : pv; }; mustUpdate = true; tTweening.hasStarted = true; }; if (mustUpdate){ for (pName in tTweening.properties) { tProperty = tTweening.properties[pName]; if (isOver){ nv = tProperty.valueComplete; } else { if (tProperty.hasModifier){ t = (cTime - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, 0, 1, d, tTweening.transitionParams); nv = tProperty.modifierFunction(tProperty.valueStart, tProperty.valueComplete, nv, tProperty.modifierParameters); } else { t = (cTime - tTweening.timeStart); b = tProperty.valueStart; c = (tProperty.valueComplete - tProperty.valueStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d, tTweening.transitionParams); }; }; if (tTweening.rounded){ nv = Math.round(nv); }; if (tProperty.isSpecialProperty){ _specialPropertyList[pName].setValue(tScope, nv, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra); } else { tScope[pName] = nv; }; }; tTweening.updatesSkipped = 0; if (Boolean(tTweening.onUpdate)){ eventScope = (Boolean(tTweening.onUpdateScope)) ? tTweening.onUpdateScope : tScope; try { tTweening.onUpdate.apply(eventScope, tTweening.onUpdateParams); } catch(e3:Error) { handleError(tTweening, e3, "onUpdate"); }; }; } else { tTweening.updatesSkipped++; }; }; if (((isOver) && (Boolean(tTweening.onComplete)))){ eventScope = (Boolean(tTweening.onCompleteScope)) ? tTweening.onCompleteScope : tScope; try { tTweening.onComplete.apply(eventScope, tTweening.onCompleteParams); } catch(e4:Error) { handleError(tTweening, e4, "onComplete"); }; }; return (!(isOver)); }; return (true); } public static function init(... _args):void{ _inited = true; _transitionList = new Object(); Equations.init(); _specialPropertyList = new Object(); _specialPropertyModifierList = new Object(); _specialPropertySplitterList = new Object(); } public static function registerTransition(_arg1:String, _arg2:Function):void{ if (!_inited){ init(); }; _transitionList[_arg1] = _arg2; } public static function registerSpecialProperty(_arg1:String, _arg2:Function, _arg3:Function, _arg4:Array=null, _arg5:Function=null):void{ if (!_inited){ init(); }; var _local6:SpecialProperty = new SpecialProperty(_arg2, _arg3, _arg4, _arg5); _specialPropertyList[_arg1] = _local6; } public static function registerSpecialPropertyModifier(_arg1:String, _arg2:Function, _arg3:Function):void{ if (!_inited){ init(); }; var _local4:SpecialPropertyModifier = new SpecialPropertyModifier(_arg2, _arg3); _specialPropertyModifierList[_arg1] = _local4; } public static function registerSpecialPropertySplitter(_arg1:String, _arg2:Function, _arg3:Array=null):void{ if (!_inited){ init(); }; var _local4:SpecialPropertySplitter = new SpecialPropertySplitter(_arg2, _arg3); _specialPropertySplitterList[_arg1] = _local4; } private static function startEngine():void{ _engineExists = true; _tweenList = new Array(); __tweener_controller__ = new MovieClip(); __tweener_controller__.addEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); _currentTimeFrame = 0; updateTime(); } private static function stopEngine():void{ _engineExists = false; _tweenList = null; _currentTime = 0; _currentTimeFrame = 0; __tweener_controller__.removeEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); __tweener_controller__ = null; } public static function updateTime():void{ _currentTime = getTimer(); } public static function updateFrame():void{ _currentTimeFrame++; } public static function onEnterFrame(_arg1:Event):void{ updateTime(); updateFrame(); var _local2:Boolean; _local2 = updateTweens(); if (!_local2){ stopEngine(); }; } public static function setTimeScale(_arg1:Number):void{ var _local2:Number; var _local3:Number; if (isNaN(_arg1)){ _arg1 = 1; }; if (_arg1 < 1E-5){ _arg1 = 1E-5; }; if (_arg1 != _timeScale){ if (_tweenList != null){ _local2 = 0; while (_local2 < _tweenList.length) { _local3 = getCurrentTweeningTime(_tweenList[_local2]); _tweenList[_local2].timeStart = (_local3 - (((_local3 - _tweenList[_local2].timeStart) * _timeScale) / _arg1)); _tweenList[_local2].timeComplete = (_local3 - (((_local3 - _tweenList[_local2].timeComplete) * _timeScale) / _arg1)); if (_tweenList[_local2].timePaused != undefined){ _tweenList[_local2].timePaused = (_local3 - (((_local3 - _tweenList[_local2].timePaused) * _timeScale) / _arg1)); }; _local2++; }; }; _timeScale = _arg1; }; } public static function isTweening(_arg1:Object):Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ return (true); }; _local2++; }; return (false); } public static function getTweens(_arg1:Object):Array{ var _local2:uint; var _local3:String; if (!Boolean(_tweenList)){ return ([]); }; var _local4:Array = new Array(); _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ for (_local3 in _tweenList[_local2].properties) { _local4.push(_local3); }; }; _local2++; }; return (_local4); } public static function getTweenCount(_arg1:Object):Number{ var _local2:uint; if (!Boolean(_tweenList)){ return (0); }; var _local3:Number = 0; _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ _local3 = (_local3 + AuxFunctions.getObjectLength(_tweenList[_local2].properties)); }; _local2++; }; return (_local3); } private static function handleError(_arg1:TweenListObj, _arg2:Error, _arg3:String):void{ var eventScope:Object; var pTweening = _arg1; var pError = _arg2; var pCallBackName = _arg3; if (((Boolean(pTweening.onError)) && ((pTweening.onError is Function)))){ eventScope = (Boolean(pTweening.onErrorScope)) ? pTweening.onErrorScope : pTweening.scope; try { pTweening.onError.apply(eventScope, [pTweening.scope, pError]); } catch(metaError:Error) { printError(((((String(pTweening.scope) + " raised an error while executing the 'onError' handler. Original error:\n ") + pError.getStackTrace()) + "\nonError error: ") + metaError.getStackTrace())); }; } else { if (!Boolean(pTweening.onError)){ printError(((((String(pTweening.scope) + " raised an error while executing the '") + pCallBackName) + "'handler. \n") + pError.getStackTrace())); }; }; } public static function getCurrentTweeningTime(_arg1:Object):Number{ return ((_arg1.useFrames) ? _currentTimeFrame : _currentTime); } public static function getVersion():String{ return ("AS3 1.31.74"); } public static function printError(_arg1:String):void{ trace(("## [Tweener] Error: " + _arg1)); } } }//package caurina.transitions
Section 82
//TweenListObj (caurina.transitions.TweenListObj) package caurina.transitions { public class TweenListObj { public var scope:Object; public var properties:Object; public var timeStart:Number; public var timeComplete:Number; public var useFrames:Boolean; public var transition:Function; public var transitionParams:Object; public var onStart:Function; public var onUpdate:Function; public var onComplete:Function; public var onOverwrite:Function; public var onError:Function; public var onStartParams:Array; public var onUpdateParams:Array; public var onCompleteParams:Array; public var onOverwriteParams:Array; public var onStartScope:Object; public var onUpdateScope:Object; public var onCompleteScope:Object; public var onOverwriteScope:Object; public var onErrorScope:Object; public var rounded:Boolean; public var isPaused:Boolean; public var timePaused:Number; public var isCaller:Boolean; public var count:Number; public var timesCalled:Number; public var waitFrames:Boolean; public var skipUpdates:Number; public var updatesSkipped:Number; public var hasStarted:Boolean; public function TweenListObj(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Boolean, _arg5:Function, _arg6:Object){ scope = _arg1; timeStart = _arg2; timeComplete = _arg3; useFrames = _arg4; transition = _arg5; transitionParams = _arg6; properties = new Object(); isPaused = false; timePaused = undefined; isCaller = false; updatesSkipped = 0; timesCalled = 0; skipUpdates = 0; hasStarted = false; } public function clone(_arg1:Boolean):TweenListObj{ var _local3:String; var _local2:TweenListObj = new TweenListObj(scope, timeStart, timeComplete, useFrames, transition, transitionParams); _local2.properties = new Array(); for (_local3 in properties) { _local2.properties[_local3] = properties[_local3].clone(); }; _local2.skipUpdates = skipUpdates; _local2.updatesSkipped = updatesSkipped; if (!_arg1){ _local2.onStart = onStart; _local2.onUpdate = onUpdate; _local2.onComplete = onComplete; _local2.onOverwrite = onOverwrite; _local2.onError = onError; _local2.onStartParams = onStartParams; _local2.onUpdateParams = onUpdateParams; _local2.onCompleteParams = onCompleteParams; _local2.onOverwriteParams = onOverwriteParams; _local2.onStartScope = onStartScope; _local2.onUpdateScope = onUpdateScope; _local2.onCompleteScope = onCompleteScope; _local2.onOverwriteScope = onOverwriteScope; _local2.onErrorScope = onErrorScope; }; _local2.rounded = rounded; _local2.isPaused = isPaused; _local2.timePaused = timePaused; _local2.isCaller = isCaller; _local2.count = count; _local2.timesCalled = timesCalled; _local2.waitFrames = waitFrames; _local2.hasStarted = hasStarted; return (_local2); } public function toString():String{ var _local3:String; var _local1 = "\n[TweenListObj "; _local1 = (_local1 + ("scope:" + String(scope))); _local1 = (_local1 + ", properties:"); var _local2:Boolean; for (_local3 in properties) { if (!_local2){ _local1 = (_local1 + ","); }; _local1 = (_local1 + ("[name:" + properties[_local3].name)); _local1 = (_local1 + (",valueStart:" + properties[_local3].valueStart)); _local1 = (_local1 + (",valueComplete:" + properties[_local3].valueComplete)); _local1 = (_local1 + "]"); _local2 = false; }; _local1 = (_local1 + (", timeStart:" + String(timeStart))); _local1 = (_local1 + (", timeComplete:" + String(timeComplete))); _local1 = (_local1 + (", useFrames:" + String(useFrames))); _local1 = (_local1 + (", transition:" + String(transition))); _local1 = (_local1 + (", transitionParams:" + String(transitionParams))); if (skipUpdates){ _local1 = (_local1 + (", skipUpdates:" + String(skipUpdates))); }; if (updatesSkipped){ _local1 = (_local1 + (", updatesSkipped:" + String(updatesSkipped))); }; if (Boolean(onStart)){ _local1 = (_local1 + (", onStart:" + String(onStart))); }; if (Boolean(onUpdate)){ _local1 = (_local1 + (", onUpdate:" + String(onUpdate))); }; if (Boolean(onComplete)){ _local1 = (_local1 + (", onComplete:" + String(onComplete))); }; if (Boolean(onOverwrite)){ _local1 = (_local1 + (", onOverwrite:" + String(onOverwrite))); }; if (Boolean(onError)){ _local1 = (_local1 + (", onError:" + String(onError))); }; if (onStartParams){ _local1 = (_local1 + (", onStartParams:" + String(onStartParams))); }; if (onUpdateParams){ _local1 = (_local1 + (", onUpdateParams:" + String(onUpdateParams))); }; if (onCompleteParams){ _local1 = (_local1 + (", onCompleteParams:" + String(onCompleteParams))); }; if (onOverwriteParams){ _local1 = (_local1 + (", onOverwriteParams:" + String(onOverwriteParams))); }; if (onStartScope){ _local1 = (_local1 + (", onStartScope:" + String(onStartScope))); }; if (onUpdateScope){ _local1 = (_local1 + (", onUpdateScope:" + String(onUpdateScope))); }; if (onCompleteScope){ _local1 = (_local1 + (", onCompleteScope:" + String(onCompleteScope))); }; if (onOverwriteScope){ _local1 = (_local1 + (", onOverwriteScope:" + String(onOverwriteScope))); }; if (onErrorScope){ _local1 = (_local1 + (", onErrorScope:" + String(onErrorScope))); }; if (rounded){ _local1 = (_local1 + (", rounded:" + String(rounded))); }; if (isPaused){ _local1 = (_local1 + (", isPaused:" + String(isPaused))); }; if (timePaused){ _local1 = (_local1 + (", timePaused:" + String(timePaused))); }; if (isCaller){ _local1 = (_local1 + (", isCaller:" + String(isCaller))); }; if (count){ _local1 = (_local1 + (", count:" + String(count))); }; if (timesCalled){ _local1 = (_local1 + (", timesCalled:" + String(timesCalled))); }; if (waitFrames){ _local1 = (_local1 + (", waitFrames:" + String(waitFrames))); }; if (hasStarted){ _local1 = (_local1 + (", hasStarted:" + String(hasStarted))); }; _local1 = (_local1 + "]\n"); return (_local1); } public static function makePropertiesChain(_arg1:Object):Object{ var _local3:Object; var _local4:Object; var _local5:Object; var _local6:Number; var _local7:Number; var _local8:Number; var _local2:Object = _arg1.base; if (_local2){ _local3 = {}; if ((_local2 is Array)){ _local4 = []; _local8 = 0; while (_local8 < _local2.length) { _local4.push(_local2[_local8]); _local8++; }; } else { _local4 = [_local2]; }; _local4.push(_arg1); _local6 = _local4.length; _local7 = 0; while (_local7 < _local6) { if (_local4[_local7]["base"]){ _local5 = AuxFunctions.concatObjects(makePropertiesChain(_local4[_local7]["base"]), _local4[_local7]); } else { _local5 = _local4[_local7]; }; _local3 = AuxFunctions.concatObjects(_local3, _local5); _local7++; }; if (_local3["base"]){ delete _local3["base"]; }; return (_local3); //unresolved jump }; return (_arg1); } } }//package caurina.transitions
Section 83
//APIEvents (com.api.as3.evnt.APIEvents) package com.api.as3.evnt { import flash.events.*; public class APIEvents extends Event { private var _data:Object; public static var USERNAME:String = "USERNAME"; public static var GETSCORE:String = "GETSCORE"; public static var GIVESCORE:String = "GIVESCORE"; public static var STARTGAME:String = "STARTGAME"; public static var AUTHURL:String = "AUTHURL"; public static var BADDATA:String = "BADDATA"; public static var LOADERROR:String = "LOADERROR"; public static var SECURITY_ERROR:String = "SECURITY_ERROR"; public static var IO_ERROR:String = "IO_ERROR"; public function APIEvents(_arg1:String, _arg2:Object=undefined, _arg3:Boolean=false, _arg4:Boolean=false):void{ super(_arg1, _arg3, _arg4); _data = _arg2; } public function get data():Object{ return (_data); } } }//package com.api.as3.evnt
Section 84
//RC4 (com.api.as3.security.RC4) package com.api.as3.security { public class RC4 { protected static var sbox:Array = new Array(0xFF); protected static var mykey:Array = new Array(0xFF); public static function encrypt(_arg1:String, _arg2:String):String{ var _local3:Array = strToChars(_arg1); var _local4:Array = strToChars(_arg2); var _local5:Array = calculate(_local3, _local4); return (charsToHex(_local5)); } public static function decrypt(_arg1:String, _arg2:String):String{ var _local3:Array = hexToChars(_arg1); var _local4:Array = strToChars(_arg2); var _local5:Array = calculate(_local3, _local4); return (charsToStr(_local5)); } protected static function initialize(_arg1:Array){ var _local3:Number; var _local2:Number = 0; var _local4:Number = _arg1.length; var _local5:Number = 0; while (_local5 <= 0xFF) { mykey[_local5] = _arg1[(_local5 % _local4)]; sbox[_local5] = _local5; _local5++; }; var _local6:Number = 0; while (_local6 <= 0xFF) { _local2 = (((_local2 + sbox[_local6]) + mykey[_local6]) % 0x0100); _local3 = sbox[_local6]; sbox[_local6] = sbox[_local2]; sbox[_local2] = _local3; _local6++; }; } protected static function calculate(_arg1:Array, _arg2:Array):Array{ var _local6:Number; var _local7:Number; var _local8:Number; var _local10:Number; initialize(_arg2); var _local3:Number = 0; var _local4:Number = 0; var _local5:Array = new Array(); var _local9:Number = 0; while (_local9 < _arg1.length) { _local3 = ((_local3 + 1) % 0x0100); _local4 = ((_local4 + sbox[_local3]) % 0x0100); _local7 = sbox[_local3]; sbox[_local3] = sbox[_local4]; sbox[_local4] = _local7; _local10 = ((sbox[_local3] + sbox[_local4]) % 0x0100); _local6 = sbox[_local10]; _local8 = (_arg1[_local9] ^ _local6); _local5.push(_local8); _local9++; }; return (_local5); } protected static function charsToHex(_arg1:Array):String{ var _local2:String = new String(""); var _local3:Array = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"); var _local4:Number = 0; while (_local4 < _arg1.length) { _local2 = (_local2 + (_local3[(_arg1[_local4] >> 4)] + _local3[(_arg1[_local4] & 15)])); _local4++; }; return (_local2); } protected static function hexToChars(_arg1:String):Array{ var _local2:Array = new Array(); var _local3:Number = ((_arg1.substr(0, 2))=="0x") ? 2 : 0; while (_local3 < _arg1.length) { _local2.push(parseInt(_arg1.substr(_local3, 2), 16)); _local3 = (_local3 + 2); }; return (_local2); } protected static function charsToStr(_arg1:Array):String{ var _local2:String = new String(""); var _local3:Number = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode(_arg1[_local3])); _local3++; }; return (_local2); } protected static function strToChars(_arg1:String):Array{ var _local2:Array = new Array(); var _local3:Number = 0; while (_local3 < _arg1.length) { _local2.push(_arg1.charCodeAt(_local3)); _local3++; }; return (_local2); } } }//package com.api.as3.security
Section 85
//API (com.api.as3.API) package com.api.as3 { import flash.display.*; import flash.events.*; import flash.net.*; import com.api.as3.evnt.*; import com.api.as3.security.*; public class API extends MovieClip { private var theKey:String; private var url:String; private var gameid:String; private var idkey:String;// = "JKLdfr34,56D5,673rdSsDS" public function API(_arg1:String, _arg2, _arg3){ this.theKey = _arg2; this.url = _arg3; this.gameid = _arg1; } public function startGame():void{ var xml:String; var query_de:String; var query_en:String; var reply_de:String; var reply_en:String; var loader:URLLoader; xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; xml = (xml + "\t <root>\n"); xml = (xml + "\t\t<query name=\"startgame\">\n"); xml = (xml + (("\t\t\t<game gameid=\"" + gameid) + "\"></game>\n")); xml = (xml + "\t\t</query>\n"); xml = (xml + "\t</root>"); query_de = xml; var query:* = RC4.encrypt(xml, theKey); query = (query + RC4.encrypt(gameid, idkey)); query_en = query; loader = new URLLoader(); loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function (_arg1:SecurityErrorEvent){ trace(("Security Error in metod 'startGame': " + _arg1)); sendEvent(APIEvents.SECURITY_ERROR, {metod:"startGame", text:_arg1.text, type:_arg1.type}); }); loader.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:IOErrorEvent){ trace(("IO Error in metod 'startGame': " + _arg1)); sendEvent(APIEvents.IO_ERROR, {metod:"startGame", text:_arg1.text, type:_arg1.type}); }); loader.addEventListener(Event.COMPLETE, function (_arg1:Event){ var _local3:XML; var _local4:Number; var _local5:String; var _local2:URLVariables = new URLVariables(loader.data); if (_local2.resp){ reply_en = _local2.resp; _local3 = new XML(RC4.decrypt(_local2.resp, theKey)); reply_de = _local3.toString(); _local4 = 0; _local5 = ""; if (_local3 != ""){ _local4 = (_local3.reply[0].game[0].@authed) ? _local3.reply[0].game[0].@authed : 0; _local5 = (_local3.reply[0].info[0].@username) ? _local3.reply[0].info[0].@username : ""; }; sendEvent(APIEvents.STARTGAME, {authed:_local4, username:_local5, query_de:query_de, query_en:query_en, reply_de:reply_de, reply_en:reply_en}); } else { trace("Bad xml data loaded in metod 'startGame'."); sendEvent(APIEvents.BADDATA, {metod:"startGame"}); }; }); var request:URLRequest = new URLRequest(url); var variables:URLVariables = new URLVariables(); variables.query = query; variables.k = Math.random(); request.data = variables; try { loader.load(request); } catch(error:Error) { trace("Unable to load requested document."); sendEvent(APIEvents.LOADERROR, {metod:"startGame"}); }; } public function getAuthUrl():void{ var xml:String; var query_de:String; var query_en:String; var reply_de:String; var reply_en:String; var loader:URLLoader; xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; xml = (xml + "\t <root>"); xml = (xml + "\t\t<query name=\"getauthurl\">"); xml = (xml + (("\t\t\t<game gameid=\"" + gameid) + "\"></game>")); xml = (xml + "\t\t</query>"); xml = (xml + "\t</root>"); query_de = xml; var query:* = RC4.encrypt(xml, theKey); query = (query + RC4.encrypt(gameid, idkey)); query_en = query; loader = new URLLoader(); loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function (_arg1:SecurityErrorEvent){ trace(("Security Error in metod 'getAuthUrl': " + _arg1)); sendEvent(APIEvents.SECURITY_ERROR, {metod:"getAuthUrl", text:_arg1.text, type:_arg1.type}); }); loader.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:IOErrorEvent){ trace(("IO Error in metod 'getAuthUrl': " + _arg1)); sendEvent(APIEvents.IO_ERROR, {metod:"getAuthUrl", text:_arg1.text, type:_arg1.type}); }); loader.addEventListener(Event.COMPLETE, function (_arg1:Event){ var _local3:XML; var _local4:String; var _local2:URLVariables = new URLVariables(loader.data); if (_local2.resp){ reply_en = _local2.resp; _local3 = new XML(RC4.decrypt(_local2.resp, theKey)); reply_de = _local3.toString(); _local4 = ""; if (_local3 != ""){ _local4 = (_local3.reply[0].info[0].@authurl) ? _local3.reply[0].info[0].@authurl : ""; }; sendEvent(APIEvents.AUTHURL, {authurl:_local4, query_de:query_de, query_en:query_en, reply_de:reply_de, reply_en:reply_en}); } else { trace("Bad xml data loaded in metod 'getAuthUrl'."); sendEvent(APIEvents.BADDATA, {metod:"getAuthUrl"}); }; }); var request:URLRequest = new URLRequest(url); var variables:URLVariables = new URLVariables(); variables.query = query; variables.k = Math.random(); request.data = variables; try { loader.load(request); } catch(error:Error) { trace("Unable to load requested document."); sendEvent(APIEvents.LOADERROR, {metod:"getAuthUrl"}); }; } public function getUserName():void{ var xml:String; var query_de:String; var query_en:String; var reply_de:String; var reply_en:String; var loader:URLLoader; xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; xml = (xml + "\t <root>"); xml = (xml + "\t\t<query name=\"getusername\">"); xml = (xml + (("\t\t\t<game gameid=\"" + gameid) + "\"></game>")); xml = (xml + "\t\t</query>"); xml = (xml + "\t</root>"); query_de = xml; var query:* = RC4.encrypt(xml, theKey); query = (query + RC4.encrypt(gameid, idkey)); query_en = query; loader = new URLLoader(); loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function (_arg1:SecurityErrorEvent){ trace(("Security Error in metod 'getUserName': " + _arg1)); sendEvent(APIEvents.SECURITY_ERROR, {metod:"getUserName", text:_arg1.text, type:_arg1.type}); }); loader.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:IOErrorEvent){ trace(("IO Error in metod 'getUserName': " + _arg1)); sendEvent(APIEvents.IO_ERROR, {metod:"getUserName", text:_arg1.text, type:_arg1.type}); }); loader.addEventListener(Event.COMPLETE, function (_arg1:Event){ var _local3:XML; var _local4:String; var _local2:URLVariables = new URLVariables(loader.data); if (_local2.resp){ reply_en = _local2.resp; _local3 = new XML(RC4.decrypt(_local2.resp, theKey)); reply_de = _local3.toString(); _local4 = ""; if (_local3 != ""){ _local4 = (_local3.reply[0].info[0].@username) ? _local3.reply[0].info[0].@username : ""; }; sendEvent(APIEvents.USERNAME, {username:_local4, query_de:query_de, query_en:query_en, reply_de:reply_de, reply_en:reply_en}); } else { trace("Bad xml data loaded in metod 'getUserName'."); sendEvent(APIEvents.BADDATA, {metod:"getUserName"}); }; }); var request:URLRequest = new URLRequest(url); var variables:URLVariables = new URLVariables(); variables.query = query; variables.k = Math.random(); request.data = variables; try { loader.load(request); } catch(error:Error) { trace("Unable to load requested document."); sendEvent(APIEvents.LOADERROR, {metod:"getUserName"}); }; } public function getScore(_arg1):void{ var xml:String; var query_de:String; var query_en:String; var reply_de:String; var reply_en:String; var loader:URLLoader; var level = _arg1; xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; xml = (xml + "\t <root>"); xml = (xml + "\t\t<query name=\"getScore\">"); xml = (xml + (((("\t\t\t<game gameid=\"" + gameid) + "\" level=\"") + level) + "\"></game>")); xml = (xml + "\t\t</query>"); xml = (xml + "\t</root>"); query_de = xml; var query:* = RC4.encrypt(xml, theKey); query = (query + RC4.encrypt(gameid, idkey)); query_en = query; loader = new URLLoader(); loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function (_arg1:SecurityErrorEvent){ trace(("Security Erro in metod 'getScore'r: " + _arg1)); sendEvent(APIEvents.SECURITY_ERROR, {metod:"getScore", text:_arg1.text, type:_arg1.type}); }); loader.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:IOErrorEvent){ trace(("IO Error in metod 'getScore': " + _arg1)); sendEvent(APIEvents.IO_ERROR, {metod:"getScore", text:_arg1.text, type:_arg1.type}); }); loader.addEventListener(Event.COMPLETE, function (_arg1:Event){ var _local3:XML; var _local4:Number; var _local5:Number; var _local6:Number; var _local2:URLVariables = new URLVariables(loader.data); if (_local2.resp){ reply_en = _local2.resp; _local3 = new XML(RC4.decrypt(_local2.resp, theKey)); reply_de = _local3.toString(); _local4 = 0; _local5 = 0; _local6 = 0; if (_local3 != ""){ _local4 = (_local3.reply[0].game[0].@gameid) ? _local3.reply[0].game[0].@gameid : 0; _local5 = (_local3.reply[0].game[0].@level) ? _local3.reply[0].game[0].@level : 0; _local6 = (_local3.reply[0].game[0].@score) ? _local3.reply[0].game[0].@score : 0; }; sendEvent(APIEvents.GETSCORE, {gameid:_local4, level:_local5, score:_local6, query_de:query_de, query_en:query_en, reply_de:reply_de, reply_en:reply_en}); } else { trace("Bad xml data loaded in metod 'getScore'."); sendEvent(APIEvents.BADDATA, {metod:"getScore"}); }; }); var request:URLRequest = new URLRequest(url); var variables:URLVariables = new URLVariables(); variables.query = query; variables.k = Math.random(); request.data = variables; try { loader.load(request); } catch(error:Error) { trace("Unable to load requested document."); sendEvent(APIEvents.LOADERROR, {metod:"getScore"}); }; } public function giveScore(_arg1, _arg2):void{ var xml:String; var query_de:String; var query_en:String; var reply_de:String; var reply_en:String; var loader:URLLoader; var level = _arg1; var score = _arg2; xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; xml = (xml + "\t <root>"); xml = (xml + "\t\t<query name=\"givescore\">"); xml = (xml + (((((("\t\t\t<game gameid=\"" + gameid) + "\" level=\"") + level) + "\" score=\"") + score) + "\"></game>")); xml = (xml + "\t\t</query>"); xml = (xml + "\t</root>"); query_de = xml; var query:* = RC4.encrypt(xml, theKey); query = (query + RC4.encrypt(gameid, idkey)); query_en = query; loader = new URLLoader(); loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function (_arg1:SecurityErrorEvent){ trace(("Security Error in metod 'giveScore': " + _arg1)); sendEvent(APIEvents.SECURITY_ERROR, {metod:"giveScore", text:_arg1.text, type:_arg1.type}); }); loader.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:IOErrorEvent){ trace(("IO Error in metod 'giveScore': " + _arg1)); sendEvent(APIEvents.IO_ERROR, {metod:"giveScore", text:_arg1.text, type:_arg1.type}); }); loader.addEventListener(Event.COMPLETE, function (_arg1:Event){ var _local3:XML; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:String; var _local2:URLVariables = new URLVariables(loader.data); if (_local2.resp){ reply_en = _local2.resp; _local3 = new XML(RC4.decrypt(_local2.resp, theKey)); reply_de = _local3.toString(); _local4 = 0; _local5 = 0; _local6 = 0; _local7 = ""; if (_local3 != ""){ _local4 = (_local3.reply[0].game[0].@gameid) ? _local3.reply[0].game[0].@gameid : 0; _local5 = (_local3.reply[0].game[0].@level) ? _local3.reply[0].game[0].@level : 0; _local6 = (_local3.reply[0].info[0].@authed) ? _local3.reply[0].info[0].@authed : 0; _local7 = (_local3.reply[0].info[0].@username) ? _local3.reply[0].info[0].@username : ""; }; sendEvent(APIEvents.GIVESCORE, {gameid:_local4, level:_local5, authed:_local6, username:_local7, query_de:query_de, query_en:query_en, reply_de:reply_de, reply_en:reply_en}); } else { trace("Bad xml data loaded in metod 'giveScore'."); sendEvent(APIEvents.BADDATA, {metod:"giveScore"}); }; }); var request:URLRequest = new URLRequest(url); var variables:URLVariables = new URLVariables(); variables.query = query; variables.k = Math.random(); request.data = variables; try { loader.load(request); } catch(error:Error) { trace("Unable to load requested document."); sendEvent(APIEvents.LOADERROR, {metod:"giveScore"}); }; } private function sendEvent(_arg1:String, _arg2:Object):void{ dispatchEvent(new APIEvents(_arg1, _arg2)); } } }//package com.api.as3
Section 86
//BigAssCanvas (com.bit101.display.BigAssCanvas) package com.bit101.display { import flash.display.*; import flash.geom.*; public class BigAssCanvas extends Sprite { private var _bitmaps:Array; private var _width:Number; private var _height:Number; private var _transparent:Boolean; private var _color:uint; public function BigAssCanvas(_arg1:Number, _arg2:Number, _arg3:Boolean=false, _arg4:uint=0xFFFFFF){ _width = _arg1; _height = _arg2; _transparent = _arg3; _color = _arg4; makeBitmaps(); } private function makeBitmaps():void{ var _local3:Number; var _local4:Number; var _local5:Bitmap; _bitmaps = new Array(); var _local1:Number = _height; var _local2:Number = 0; while (_local1 > 0) { _local3 = 0; _local4 = _width; while (_local4 > 0) { _local5 = new Bitmap(new BitmapData(Math.min(2880, _local4), Math.min(2880, _local1), _transparent, _color)); _local5.x = _local3; _local5.y = _local2; addChild(_local5); _bitmaps.push(_local5); _local4 = (_local4 - _local5.width); _local3 = (_local3 + _local5.width); }; _local2 = (_local2 + Math.min(2880, _local1)); _local1 = (_local1 - Math.min(2880, _local1)); }; } public function draw(_arg1:IBitmapDrawable, _arg2:Matrix=null, _arg3:ColorTransform=null, _arg4:String=null, _arg5:Rectangle=null, _arg6:Boolean=false):void{ var _local8:Bitmap; var _local9:Matrix; var _local10:Rectangle; if (_arg2 == null){ _arg2 = new Matrix(); }; var _local7:int; while (_local7 < _bitmaps.length) { _local8 = (_bitmaps[_local7] as Bitmap); _local9 = _arg2.clone(); _arg2.clone().tx = (_local9.tx - _local8.x); _local9.ty = (_local9.ty - _local8.y); if (_arg5 != null){ _local10 = _arg5.clone(); _arg5.clone().x = (_local10.x - _local8.x); _local10.y = (_local10.y - _local8.y); } else { _local10 = null; }; _local8.bitmapData.draw(_arg1, _local9, _arg3, _arg4, _local10, _arg6); _local7++; }; } public function dispose():void{ var _local1:Bitmap; while (_bitmaps.length > 0) { _local1 = (_bitmaps.shift() as Bitmap); removeChild(_local1); _local1.bitmapData.dispose(); }; } public function fillRect(_arg1:Rectangle, _arg2:uint):void{ var _local4:Bitmap; var _local5:Rectangle; var _local3:int; while (_local3 < _bitmaps.length) { _local4 = (_bitmaps[_local3] as Bitmap); _local5 = _arg1.clone(); _arg1.clone().x = (_local5.x - _local4.x); _local5.y = (_local5.y - _local4.y); _local4.bitmapData.fillRect(_local5, _arg2); _local3++; }; } public function copyPixelsOut(_arg1:Rectangle, _arg2:Boolean=true, _arg3:uint=4278190080):BitmapData{ var _local6:Bitmap; var _local7:Rectangle; var _local4:BitmapData = new BitmapData(_arg1.width, _arg1.height, true, _arg3); var _local5:int; while (_local5 < _bitmaps.length) { _local6 = (_bitmaps[_local5] as Bitmap); _local7 = _arg1.clone(); _arg1.clone().x = (_local7.x - _local6.x); _local7.y = (_local7.y - _local6.y); if (_local7.intersects(new Rectangle(0, 0, 2880, 2880))){ _local4.copyPixels(_local6.bitmapData, _local7, new Point()); }; _local5++; }; return (_local4); } public function getPixel(_arg1:Number, _arg2:Number):uint{ var _local4:Bitmap; var _local3:int; while (_local3 < _bitmaps.length) { _local4 = (_bitmaps[_local3] as Bitmap); if ((((((((_arg1 >= _local4.x)) && ((_arg1 < (_local4.x + _local4.width))))) && ((_arg2 >= _local4.y)))) && ((_arg2 < (_local4.y + _local4.height))))){ return (_local4.bitmapData.getPixel((_arg1 - _local4.x), (_arg2 - _local4.y))); }; _local3++; }; return (0); } public function setPixel(_arg1:Number, _arg2:Number, _arg3:uint):void{ var _local5:Bitmap; var _local4:int; while (_local4 < _bitmaps.length) { _local5 = (_bitmaps[_local4] as Bitmap); if ((((((((_arg1 >= _local5.x)) && ((_arg1 < (_local5.x + _local5.width))))) && ((_arg2 >= _local5.y)))) && ((_arg2 < (_local5.y + _local5.height))))){ _local5.bitmapData.setPixel(Math.round((_arg1 - _local5.x)), Math.round((_arg2 - _local5.y)), _arg3); }; _local4++; }; } public function getPixel32(_arg1:Number, _arg2:Number):uint{ var _local4:Bitmap; var _local3:int; while (_local3 < _bitmaps.length) { _local4 = (_bitmaps[_local3] as Bitmap); if ((((((((_arg1 >= _local4.x)) && ((_arg1 < (_local4.x + _local4.width))))) && ((_arg2 >= _local4.y)))) && ((_arg2 < (_local4.y + _local4.height))))){ return (_local4.bitmapData.getPixel32((_arg1 - _local4.x), (_arg2 - _local4.y))); }; _local3++; }; return (0); } public function setPixel32(_arg1:Number, _arg2:Number, _arg3:uint):void{ var _local5:Bitmap; var _local4:int; while (_local4 < _bitmaps.length) { _local5 = (_bitmaps[_local4] as Bitmap); if ((((((((_arg1 >= _local5.x)) && ((_arg1 < (_local5.x + _local5.width))))) && ((_arg2 >= _local5.y)))) && ((_arg2 < (_local5.y + _local5.height))))){ _local5.bitmapData.setPixel32((_arg1 - _local5.x), (_arg2 - _local5.y), _arg3); }; _local4++; }; } public function noise(_arg1:int, _arg2:uint=0, _arg3:uint=0xFF, _arg4:uint=7, _arg5:Boolean=false):void{ var _local7:Bitmap; var _local6:int; while (_local6 < _bitmaps.length) { _local7 = (_bitmaps[_local6] as Bitmap); _local7.bitmapData.noise(_arg1, _arg2, _arg3, _arg4, _arg5); _local6++; }; } public function perlinNoise(_arg1:Number, _arg2:Number, _arg3:uint, _arg4:int, _arg5:Boolean, _arg6:uint=7, _arg7:Boolean=false):void{ var _local10:Bitmap; var _local11:Array; var _local12:int; var _local8:Array = new Array(); var _local9:int; while (_local9 < _arg3) { _local8.push(new Point()); _local9++; }; _local9 = 0; while (_local9 < _bitmaps.length) { _local10 = (_bitmaps[_local9] as Bitmap); _local11 = new Array(); _local12 = 0; while (_local12 < _local8.length) { _local11[_local12] = new Point((_local8[_local12].x + _local10.x), (_local8[_local12].y + _local10.y)); _local12++; }; _local10.bitmapData.perlinNoise(_arg1, _arg2, _arg3, _arg4, false, _arg5, _arg6, _arg7, _local11); _local9++; }; } public function lock():void{ var _local2:Bitmap; var _local1:int; while (_local1 < _bitmaps.length) { _local2 = (_bitmaps[_local1] as Bitmap); _local2.bitmapData.lock(); _local1++; }; } public function unlock():void{ var _local2:Bitmap; var _local1:int; while (_local1 < _bitmaps.length) { _local2 = (_bitmaps[_local1] as Bitmap); _local2.bitmapData.unlock(); _local1++; }; } } }//package com.bit101.display
Section 87
//SimpleParticle (com.midasplayer.extras.SimpleParticle) package com.midasplayer.extras { import flash.display.*; public dynamic class SimpleParticle extends Shape { private var _color:Number;// = 0 private var _size:Number;// = 1 private var _type:String;// = "rect" public static var RECT:String = "rect"; public static var CIRCLE:String = "circle"; private function draw(){ clear(); graphics.beginFill(_color, 1); switch (type){ case RECT: graphics.drawRect((-(size) / 2), (-(size) / 2), size, size); break; case CIRCLE: graphics.drawCircle((-(size) / 2), (-(size) / 2), size); break; }; graphics.endFill(); } public function clear(){ graphics.clear(); } public function set color(_arg1:Number){ _color = _arg1; draw(); } public function set size(_arg1:Number){ _size = _arg1; draw(); } public function set type(_arg1:String){ _type = _arg1; draw(); } public function get color():Number{ return (_color); } public function get size():Number{ return (_size); } public function get type():String{ return (_type); } } }//package com.midasplayer.extras
Section 88
//Water (com.midasplayer.extras.Water) package com.midasplayer.extras { import flash.display.*; public class Water extends MovieClip { private var m_lines:Array; public function Water(){ m_lines = new Array(); super(); } public function init(_arg1:Number, _arg2:Number){ var _local3:WaterLine; var _local5:int; var _local4:uint = 0xFF0000; if (this.name == "RED"){ _local4 = 0xFF0000; _local5 = 1; }; if (this.name == "GREEN"){ _local4 = 0xFF00; _local5 = 1; }; if (this.name == "BLUE"){ _local4 = 2782939; _local5 = 1; }; var _local6:* = 0; while (_local6 < _local5) { _local3 = new WaterLine(); _local3.addParams(_local4, _arg1, _arg2); _local3.x = (_local6 * 1.5); addChild(_local3); m_lines.push(_local3); _local6++; }; } public function decrThickness(_arg1:Boolean):Boolean{ var _local2:int; var _local3:Boolean; var _local4:int; var _local5:Boolean; if (_arg1){ _local2 = 0; while (_local2 < m_lines.length) { _local3 = false; if (m_lines[_local2].decrThickness()){ _local3 = true; } else { return (false); }; _local2++; }; return (_local3); //unresolved jump }; _local4 = 0; while (_local4 < m_lines.length) { _local5 = false; if (m_lines[_local4].incrThickness()){ _local5 = true; } else { return (false); }; _local4++; }; return (_local5); } } }//package com.midasplayer.extras
Section 89
//WaterLine (com.midasplayer.extras.WaterLine) package com.midasplayer.extras { import flash.display.*; import flash.events.*; public class WaterLine extends MovieClip { private var _bubbles:Array; private var _particles:Array; private var _height:Number;// = 400 private var _step:Number; private var _particlesQuantity:Number;// = 20 private var _line:Shape; private var _color:uint; private var _lineSize:Number; public function WaterLine(){ trace("WaterLine()"); } public function addParams(_arg1:uint, _arg2:Number, _arg3:Number):void{ _color = _arg1; _height = _arg2; _lineSize = _arg3; init(); } private function init(){ _line = new Shape(); _line.alpha = 0.8; addChild(_line); _bubbles = []; _particles = []; _step = (_height / (_particlesQuantity - 1)); createLine(); addEventListener(Event.ENTER_FRAME, animate); } private function createLine():void{ var _local1:SimpleParticle; var _local2:* = 0; while (_local2 < _particlesQuantity) { _local1 = new SimpleParticle(); _local1.elasticX = 0; _local1.yIni = (_local1.y = (_step * _local2)); addChild(_local1); _particles.push(_local1); _local2++; }; } public function decrThickness():Boolean{ _lineSize--; if (_lineSize <= 0){ return (true); }; return (false); } public function incrThickness():Boolean{ _lineSize = (_lineSize + 0.5); if (_lineSize >= 5){ return (true); }; return (false); } private function animate(_arg1:Event):void{ var _local2:SimpleParticle; var _local3:SimpleParticle; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local9:Number; var _local8:Number = 10; var _local10:Number = 3; _line.graphics.clear(); _line.graphics.moveTo(_particles[0].x, _particles[0].y); _line.graphics.lineStyle(_lineSize, _color, 1); var _local11:* = 0; while (_local11 < _particles.length) { _local3 = _particles[_local11]; if (_local11 == 0){ _local3.x = (_local3.x + ((((Math.random() * _local10) * randomDirection) - _local3.x) * 0.9)); }; _local2 = ((_local11)>0) ? _particles[(_local11 - 1)] : _local3; _local7 = Math.sqrt((Math.pow((mouseX - 0), 2) + Math.pow((mouseY - _local3.yIni), 2))); if (_local7 < _local8){ } else { _local5 = _local2.x; _local3.elasticX = ((_local3.elasticX * 0.4) + ((_local5 - _local3.x) * 0.4)); _local3.x = (_local3.x + _local3.elasticX); }; if (_local11 > 0){ _line.graphics.curveTo(_local2.x, _local2.y, ((_local2.x + _local3.x) / 2), ((_local2.y + _local3.y) / 2)); }; _local11++; }; } private function createBubbles():void{ var _local2:SimpleParticle; var _local4:Number; var _local5:Number; var _local6:*; var _local1:Array = [_color, _color]; var _local3:* = 0; while (_local3 < 5) { _local2 = new SimpleParticle(); _local2.type = SimpleParticle.CIRCLE; _local2.size = 0.8; _local2.color = _local1[Math.round((Math.random() * (_local1.length - 1)))]; _local2.alpha = 1; addChild(_local2); _bubbles.push(_local2); _local3++; }; for (_local6 in _bubbles) { _local2 = _bubbles[_local6]; if (!_local2.isOut){ _local2.y = (_local2.y + ((Math.random() * 5) + 10)); _local4 = Math.floor((_local2.y / this._step)); _local2.x = (_local2.x + (((_particles[_local4].x + ((Math.random() * 1) * randomDirection)) - _local2.x) * 0.8)); _local5 = Math.sqrt((Math.pow((mouseX - _local2.x), 2) + Math.pow((mouseY - _local2.y), 2))); if ((((_local5 < 4)) && (!(_local2.isOut)))){ }; } else { _local2.y = (_local2.y + _local2.speedY); _local2.speedY = (_local2.speedY + 3); _local2.x = (_local2.x + _local2.speedX); _local2.alpha = (_local2.alpha - 0.005); }; if ((((_local2.y > _height)) || ((_local2.alpha < 0)))){ _bubbles.splice(_local6, 1); _local2.parent.removeChild(_local2); _local2 = null; }; }; } private function spreadBubble(_arg1:SimpleParticle):void{ _arg1.isOut = true; parent.parent.addChild(_arg1); _arg1.size = 1.2; _arg1.alpha = 0.35; _arg1.x = (parent.x + _arg1.x); _arg1.y = (parent.y + _arg1.y); _arg1.speedY = (-5 - (Math.random() * 10)); _arg1.speedX = (((Math.random() * 15) + 1) * randomDirection); } public function get randomDirection():Number{ return (((Math.round((Math.random() * 1)) * 2) - 1)); } } }//package com.midasplayer.extras
Section 90
//EmailPage (com.novelgames.flashgames.highscores.EmailPage) package com.novelgames.flashgames.highscores { import flash.display.*; import flash.text.*; public dynamic class EmailPage extends MovieClip { public var ownEmailText:TextField; public var sendButton:SimpleButton; public var friendEmailsText:TextField; public var closeButton:SimpleButton; } }//package com.novelgames.flashgames.highscores
Section 91
//HighScores (com.novelgames.flashgames.highscores.HighScores) package com.novelgames.flashgames.highscores { import fl.core.*; import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.net.*; import flash.external.*; import flash.xml.*; public class HighScores extends UIComponent { private var __siteID:String; private var __gameID:String; private var __gameName:String; private var __loadScoresURL:String; private var __alwaysReloadScores:Boolean; private var __maxNoOfScores:int; private var __afterShowAction:String; private var __showTableAfterSave:Boolean; private var __submitType:String; private var __siteIDFlashVars:String; private var __gameIDFlashVars:String; private var __gameNameFlashVars:String; private var __playerIDFlashVars:String; private var __playerNameFlashVars:String; private var __allowSubmitAsGuest:Boolean; private var __guestName:String; private var __hashKey:String; private var __encrypted:Boolean; private var __saveScoreURL:String; private var __forgetPasswordURL:String; private var __registerURL:String; private var __afterSubmitAction:String; private var __shareText:String; private var __shareURL:String; private var __shareSendEmailURL:String; private var playerScore:int; private var playerName:String; private var playerEmail:String; private var playerID:String; private var playerUsername:String; private var playerPassword:String; private var scoreRange:int; private var duplicateNameTreatment:int; private var records:Array; private var currentPage:int; private var highlightedIndex:int; private var isLoadingHighScores:Boolean; private var isLoadingHighScoresSilently:Boolean; private var loadHighScoresFinishedAction:Function; private var loadHighScoresFailedCloseAction:Function; private var shareFinishedAction:Function; private var drawCalled:Boolean; public static var SCORERANGE_ETERNITY:int = 1; public static var SCORERANGE_PASTDAY:int = 2; public static var SCORERANGE_PASTWEEK:int = 3; public static var SCORERANGE_PASTMONTH:int = 4; public static var SCORERANGE_PASTYEAR:int = 5; public static var SCORERANGE_THISDAY:int = 6; public static var SCORERANGE_THISWEEK:int = 7; public static var SCORERANGE_THISMONTH:int = 8; public static var SCORERANGE_THISYEAR:int = 9; public static var DUPLICATENAMETREATMENT_SHOWALL:int = 1; public static var DUPLICATENAMETREATMENT_SHOWHIGHEST:int = 2; public static var DUPLICATENAMETREATMENT_SHOWLATEST:int = 3; override protected function configUI():void{ super.configUI(); __siteID = "1"; __gameID = "1"; __gameName = ""; __loadScoresURL = "loadScores.php"; __alwaysReloadScores = false; __maxNoOfScores = 10; __afterShowAction = ""; __showTableAfterSave = true; __submitType = "name"; __siteIDFlashVars = "siteID"; __gameIDFlashVars = "gameID"; __gameNameFlashVars = "gameName"; __playerIDFlashVars = "playerID"; __playerNameFlashVars = "playerName"; __allowSubmitAsGuest = true; __guestName = "Guest"; __hashKey = ""; __encrypted = false; __saveScoreURL = "saveScore.php"; __forgetPasswordURL = "forgetPassword.php"; __registerURL = "register.php"; __afterSubmitAction = ""; __shareText = "I have just scored SCORE in GAMENAME!"; __shareURL = ""; __shareSendEmailURL = "sendEmail.php"; playerName = null; playerEmail = null; playerID = null; playerUsername = null; playerPassword = null; records = null; isLoadingHighScores = false; drawCalled = false; } public function set siteID(_arg1:String):void{ __siteID = _arg1; } public function get siteID():String{ return (__siteID); } public function set gameID(_arg1:String):void{ __gameID = _arg1; } public function get gameID():String{ return (__gameID); } public function set gameName(_arg1:String):void{ __gameName = _arg1; } public function get gameName():String{ return (__gameName); } public function set loadScoresURL(_arg1:String):void{ __loadScoresURL = _arg1; } public function get loadScoresURL():String{ return (__loadScoresURL); } public function set alwaysReloadScores(_arg1:Boolean):void{ __alwaysReloadScores = _arg1; } public function get alwaysReloadScores():Boolean{ return (__alwaysReloadScores); } public function set maxNoOfScores(_arg1:int):void{ __maxNoOfScores = _arg1; } public function get maxNoOfScores():int{ return (__maxNoOfScores); } public function set afterShowAction(_arg1:String):void{ __afterShowAction = _arg1; } public function get afterShowAction():String{ return (__afterShowAction); } public function set showTableAfterSave(_arg1:Boolean):void{ __showTableAfterSave = _arg1; } public function get showTableAfterSave():Boolean{ return (__showTableAfterSave); } public function set submitType(_arg1:String):void{ __submitType = _arg1; } public function get submitType():String{ return (__submitType); } public function set siteIDFlashVars(_arg1:String):void{ __siteIDFlashVars = _arg1; } public function get siteIDFlashVars():String{ return (__siteIDFlashVars); } public function set gameIDFlashVars(_arg1:String):void{ __gameIDFlashVars = _arg1; } public function get gameIDFlashVars():String{ return (__gameIDFlashVars); } public function set gameNameFlashVars(_arg1:String):void{ __gameNameFlashVars = _arg1; } public function get gameNameFlashVars():String{ return (__gameNameFlashVars); } public function set playerIDFlashVars(_arg1:String):void{ __playerIDFlashVars = _arg1; } public function get playerIDFlashVars():String{ return (__playerIDFlashVars); } public function set playerNameFlashVars(_arg1:String):void{ __playerNameFlashVars = _arg1; } public function get playerNameFlashVars():String{ return (__playerNameFlashVars); } public function set allowSubmitAsGuest(_arg1:Boolean):void{ __allowSubmitAsGuest = _arg1; } public function get allowSubmitAsGuest():Boolean{ return (__allowSubmitAsGuest); } public function set guestName(_arg1:String):void{ __guestName = _arg1; } public function get guestName():String{ return (__guestName); } public function set hashKey(_arg1:String):void{ __hashKey = _arg1; } public function get hashKey():String{ return (__hashKey); } public function set encrypted(_arg1:Boolean):void{ __encrypted = _arg1; } public function get encrypted():Boolean{ return (__encrypted); } public function set saveScoreURL(_arg1:String):void{ __saveScoreURL = _arg1; } public function get saveScoreURL():String{ return (__saveScoreURL); } public function set forgetPasswordURL(_arg1:String):void{ __forgetPasswordURL = _arg1; } public function get forgetPasswordURL():String{ return (__forgetPasswordURL); } public function set registerURL(_arg1:String):void{ __registerURL = _arg1; } public function get registerURL():String{ return (__registerURL); } public function set afterSubmitAction(_arg1:String):void{ __afterSubmitAction = _arg1; } public function get afterSubmitAction():String{ return (__afterSubmitAction); } public function set shareText(_arg1:String):void{ __shareText = _arg1; } public function get shareText():String{ return (__shareText); } public function set shareURL(_arg1:String):void{ __shareURL = _arg1; } public function get shareURL():String{ return (__shareURL); } public function set shareSendEmailURL(_arg1:String):void{ __shareSendEmailURL = _arg1; } public function get shareSendEmailURL():String{ return (__shareSendEmailURL); } public function showHighScores():void{ doShowHighScores(); } public function showEnterHighScore(_arg1:Number):void{ doShowEnterHighScore(_arg1); } public function hide():void{ doHide(); } public function loadScores(_arg1:Boolean=true):void{ doLoadScores(_arg1); } public function setPlayerID(_arg1:String):void{ this.playerID = _arg1; } public function setPlayerName(_arg1:String):void{ this.playerName = _arg1; } override protected function draw():void{ if (drawCalled){ return; }; drawCalled = true; if (((((((!((siteIDFlashVars == null))) && (!((siteIDFlashVars == ""))))) && (!((root.loaderInfo.parameters[siteIDFlashVars] == null))))) && (!((root.loaderInfo.parameters[siteIDFlashVars] == ""))))){ siteID = root.loaderInfo.parameters[siteIDFlashVars]; }; if (((((((!((gameIDFlashVars == null))) && (!((gameIDFlashVars == ""))))) && (!((root.loaderInfo.parameters[gameIDFlashVars] == null))))) && (!((root.loaderInfo.parameters[gameIDFlashVars] == ""))))){ gameID = root.loaderInfo.parameters[gameIDFlashVars]; }; if (((((((!((gameNameFlashVars == null))) && (!((gameNameFlashVars == ""))))) && (!((root.loaderInfo.parameters[gameNameFlashVars] == null))))) && (!((root.loaderInfo.parameters[gameNameFlashVars] == ""))))){ gameName = root.loaderInfo.parameters[gameNameFlashVars]; }; if (((((!((playerIDFlashVars == null))) && (!((playerIDFlashVars == ""))))) && ((playerID == null)))){ playerID = root.loaderInfo.parameters[playerIDFlashVars]; }; if (((((!((playerNameFlashVars == null))) && (!((playerNameFlashVars == ""))))) && ((playerName == null)))){ playerName = root.loaderInfo.parameters[playerNameFlashVars]; }; } private function doHide(_arg1:Event=null):void{ while (numChildren > 0) { this.removeChild(getChildAt((numChildren - 1))); }; } private function doLoadScores(_arg1:Boolean=false, _arg2:Function=null, _arg3:Function=null):void{ var _local4:URLVariables; var _local5:URLRequest; var _local6:URLLoader; isLoadingHighScores = true; isLoadingHighScoresSilently = _arg1; if (!_arg1){ showLoadingHighScores(); }; loadHighScoresFinishedAction = ((_arg2 == null)) ? doHide : _arg2; loadHighScoresFailedCloseAction = ((_arg3 == null)) ? doHide : _arg3; _local4 = new URLVariables(); _local4.siteID = siteID; _local4.gameID = gameID; _local5 = new URLRequest(); _local5.method = "GET"; _local5.data = _local4; _local5.url = loadScoresURL; _local6 = new URLLoader(); _local6.addEventListener(IOErrorEvent.IO_ERROR, loadHighScoresFailed); _local6.addEventListener(SecurityErrorEvent.SECURITY_ERROR, loadHighScoresFailed); _local6.addEventListener(Event.COMPLETE, loadHighScoresFinished); _local6.load(_local5); } private function showLoadingHighScores():void{ var _local1:MovieClip; doHide(); _local1 = new Status(); _local1.gotoAndStop("loadingHighScores"); _local1.closeButton.visible = false; this.addChild(_local1); } private function loadHighScoresFailed(_arg1:Event=null):void{ var _local2:MovieClip; isLoadingHighScores = false; if (isLoadingHighScoresSilently){ loadHighScoresFailedCloseAction(); return; }; doHide(); _local2 = new Status(); _local2.gotoAndStop("loadHighScoresFailed"); _local2.closeButton.addEventListener(MouseEvent.CLICK, loadHighScoresFailedCloseAction); this.addChild(_local2); } private function loadHighScoresFinished(_arg1:Event):void{ var rootNode:XMLNode; var node:XMLNode; var event = _arg1; var urlLoader:URLLoader = URLLoader(event.currentTarget); var xmlDocument:XMLDocument = new XMLDocument(); try { xmlDocument = new XMLDocument(); xmlDocument.ignoreWhite = true; xmlDocument.parseXML(urlLoader.data); } catch(e:Error) { loadHighScoresFailed(); return; }; isLoadingHighScores = false; rootNode = xmlDocument.firstChild; parseScoreRange(rootNode.attributes.scoreRange); parseDuplicateNameTreatment(rootNode.attributes.duplicateNameTreatment); records = new Array(); node = rootNode.firstChild; while (node) { if (node.nodeName != "RECORD"){ } else { records.push(new Record(node.attributes.name, Number(node.attributes.score))); }; node = node.nextSibling; }; if (records.length > maxNoOfScores){ records.splice(maxNoOfScores); }; loadHighScoresFinishedAction(); } private function parseScoreRange(_arg1:String):void{ switch (_arg1){ case "pastDay": scoreRange = SCORERANGE_PASTDAY; break; case "pastWeek": scoreRange = SCORERANGE_PASTWEEK; break; case "pastMonth": scoreRange = SCORERANGE_PASTMONTH; break; case "pastYear": scoreRange = SCORERANGE_PASTYEAR; break; case "thisDay": scoreRange = SCORERANGE_THISDAY; break; case "thisWeek": scoreRange = SCORERANGE_THISWEEK; break; case "thisMonth": scoreRange = SCORERANGE_THISMONTH; break; case "thisYear": scoreRange = SCORERANGE_THISYEAR; break; case "eternity": default: scoreRange = SCORERANGE_ETERNITY; break; }; } private function parseDuplicateNameTreatment(_arg1:String):void{ switch (_arg1){ case "showHighest": duplicateNameTreatment = DUPLICATENAMETREATMENT_SHOWHIGHEST; break; case "showLatest": duplicateNameTreatment = DUPLICATENAMETREATMENT_SHOWLATEST; break; case "showAll": default: duplicateNameTreatment = DUPLICATENAMETREATMENT_SHOWALL; break; }; } private function doShowHighScores(_arg1:int=-1):void{ this.highlightedIndex = _arg1; if (isLoadingHighScores){ loadHighScoresFinishedAction = doShowHighScoresWithRecords; showLoadingHighScores(); } else { if (records == null){ doLoadScores(false, doShowHighScoresWithRecords, showHighScoresEnded); } else { doShowHighScoresWithRecords(); }; }; } private function doShowHighScoresWithRecords():void{ var _local1:MovieClip; doHide(); _local1 = new Table(); this.addChild(_local1); setTitleText(); drawRecords(); initializeArrowButtons(); updateArrowButtons(); _local1.closeButton.addEventListener(MouseEvent.CLICK, showHighScoresEnded); if (alwaysReloadScores){ records = null; }; } private function setTitleText():void{ var _local1:* = this.getChildAt(0); switch (scoreRange){ case SCORERANGE_ETERNITY: _local1.titleText.gotoAndStop("eternity"); break; case SCORERANGE_PASTDAY: _local1.titleText.gotoAndStop("pastDay"); break; case SCORERANGE_PASTWEEK: _local1.titleText.gotoAndStop("pastWeek"); break; case SCORERANGE_PASTMONTH: _local1.titleText.gotoAndStop("pastMonth"); break; case SCORERANGE_PASTYEAR: _local1.titleText.gotoAndStop("pastYear"); break; case SCORERANGE_THISDAY: _local1.titleText.gotoAndStop("thisDay"); break; case SCORERANGE_THISWEEK: _local1.titleText.gotoAndStop("thisWeek"); break; case SCORERANGE_THISMONTH: _local1.titleText.gotoAndStop("thisMonth"); break; case SCORERANGE_THISYEAR: _local1.titleText.gotoAndStop("thisYear"); break; }; } private function drawRecords():void{ var _local1:* = this.getChildAt(0); var _local2:int = getNoOfRecordsPerPage(); if (highlightedIndex == -1){ currentPage = 0; } else { currentPage = Math.floor((highlightedIndex / _local2)); }; if (currentPage >= records.length){ currentPage = (records.length - 1); }; if (currentPage < 0){ currentPage = 0; }; drawCurrentPageRecords(); } private function getNoOfRecordsPerPage():int{ var _local2:int; var _local1:* = this.getChildAt(0); _local2 = 0; while (_local1[("item" + _local2)]) { _local2++; }; return (_local2); } private function drawCurrentPageRecords():void{ var _local3:MovieClip; var _local4:int; var _local1:* = this.getChildAt(0); var _local2:int = getNoOfRecordsPerPage(); _local4 = 0; while (_local4 < _local2) { _local3 = _local1[("item" + _local4)]; if (_local3.rankText){ _local3.rankText.autoSize = "left"; _local3.rankText.embedFonts = false; }; if (_local3.nameText){ _local3.nameText.embedFonts = false; }; if (_local3.scoreText){ _local3.scoreText.embedFonts = false; }; if (((currentPage * _local2) + _local4) < records.length){ if (_local3.rankText){ _local3.rankText.text = (((currentPage * _local2) + _local4) + 1); }; if (_local3.nameText){ _local3.nameText.text = ((records[((currentPage * _local2) + _local4)].name == null)) ? "" : records[((currentPage * _local2) + _local4)].name; }; if (_local3.scoreText){ _local3.scoreText.text = records[((currentPage * _local2) + _local4)].score; }; } else { if (_local3.rankText){ _local3.rankText.text = ""; }; if (_local3.nameText){ _local3.nameText.text = ""; }; if (_local3.scoreText){ _local3.scoreText.text = ""; }; }; if (_local3.highlight){ if (((currentPage * _local2) + _local4) == highlightedIndex){ _local3.highlight.play(); _local3.highlight.visible = true; } else { _local3.highlight.stop(); _local3.highlight.visible = false; }; }; _local4++; }; } private function initializeArrowButtons():void{ var _local1:* = this.getChildAt(0); _local1.previousPageButton.addEventListener(MouseEvent.CLICK, previousPageButtonClicked); _local1.nextPageButton.addEventListener(MouseEvent.CLICK, nextPageButtonClicked); } private function previousPageButtonClicked(_arg1:MouseEvent):void{ currentPage--; drawCurrentPageRecords(); updateArrowButtons(); } private function nextPageButtonClicked(_arg1:MouseEvent):void{ currentPage++; drawCurrentPageRecords(); updateArrowButtons(); } private function updateArrowButtons():void{ var _local1:* = this.getChildAt(0); var _local2:int = getNoOfRecordsPerPage(); _local1.previousPageButton.visible = (currentPage > 0); _local1.nextPageButton.visible = (currentPage < (Math.ceil((records.length / _local2)) - 1)); } private function showHighScoresEnded(_arg1:MouseEvent=null):void{ doHide(); if (afterShowAction != ""){ var _local2 = Object(parent); _local2[afterShowAction](); }; } private function doShowEnterHighScore(_arg1:int):void{ var _local2:MovieClip; this.playerScore = _arg1; if (submitType == "silent"){ saveScore(); } else { doHide(); _local2 = new ScorePage(); this.addChild(_local2); _local2.scoreText.embedFonts = false; _local2.scoreText.text = _arg1.toString(); _local2.submitButton.addEventListener(MouseEvent.CLICK, submitScoreButtonClicked); _local2.closeButton.addEventListener(MouseEvent.CLICK, saveScoreEnded); initializeShareInButtons(reshowEnterHighScore); }; } private function initializeShareInButtons(_arg1:Function):void{ var _local2:* = this.getChildAt(0); this.shareFinishedAction = _arg1; if (_local2.facebookButton){ _local2.facebookButton.addEventListener(MouseEvent.CLICK, facebookButtonClicked); _local2.facebookButton.buttonMode = true; }; if (_local2.twitterButton){ _local2.twitterButton.addEventListener(MouseEvent.CLICK, twitterButtonClicked); _local2.twitterButton.buttonMode = true; }; if (_local2.mySpaceButton){ _local2.mySpaceButton.addEventListener(MouseEvent.CLICK, mySpaceButtonClicked); _local2.mySpaceButton.buttonMode = true; }; if (_local2.emailButton){ _local2.emailButton.addEventListener(MouseEvent.CLICK, emailButtonClicked); _local2.emailButton.buttonMode = true; }; } private function facebookButtonClicked(_arg1:MouseEvent):void{ var _local2:URLVariables; var _local3:URLRequest; _local2 = new URLVariables(); _local2.t = substituteParameters(shareText); _local2.u = getShareURL(shareURL); _local3 = new URLRequest(); _local3.method = "GET"; _local3.data = _local2; _local3.url = "http://www.facebook.com/sharer.php"; navigateToURL(_local3, "_blank"); } private function twitterButtonClicked(_arg1:MouseEvent):void{ var _local2:URLVariables; var _local3:URLRequest; var _local4:String; var _local5:String; _local4 = substituteParameters(shareText); _local5 = getShareURL(shareURL); if (((_local4.length + _local5.length) + 1) > 140){ _local4 = _local4.substr(0, ((140 - _local5.length) - 1)); }; _local4 = (_local4 + (" " + _local5)); _local2 = new URLVariables(); _local2.status = _local4; _local3 = new URLRequest(); _local3.method = "GET"; _local3.data = _local2; _local3.url = "http://twitter.com/home"; navigateToURL(_local3, "_blank"); } private function mySpaceButtonClicked(_arg1:MouseEvent):void{ var _local2:URLVariables; var _local3:URLRequest; _local2 = new URLVariables(); _local2.u = getShareURL(shareURL); _local3 = new URLRequest(); _local3.method = "GET"; _local3.data = _local2; _local3.url = "http://www.myspace.com/Modules/PostTo/Pages/"; navigateToURL(_local3, "_blank"); } private function emailButtonClicked(_arg1:MouseEvent):void{ var _local2:MovieClip; doHide(); _local2 = new EmailPage(); _local2.ownEmailText.embedFonts = false; _local2.ownEmailText.addEventListener(FocusEvent.FOCUS_IN, onOwnEmailTextFocusIn); _local2.ownEmailText.addEventListener(FocusEvent.FOCUS_OUT, onOwnEmailTextFocusOut); _local2.friendEmailsText.embedFonts = false; _local2.friendEmailsText.addEventListener(FocusEvent.FOCUS_IN, onFriendEmailsTextFocusIn); _local2.friendEmailsText.addEventListener(FocusEvent.FOCUS_OUT, onFriendEmailsTextFocusOut); _local2.closeButton.addEventListener(MouseEvent.CLICK, shareFinishedAction); _local2.sendButton.addEventListener(MouseEvent.CLICK, onSendEmailButtonClicked); this.addChild(_local2); } private function onOwnEmailTextFocusIn(_arg1:FocusEvent):void{ var _local3:*; var _local2:* = this.getChildAt((numChildren - 1)); if (_local2 == null){ return; }; if (_local2.ownEmailText == null){ return; }; _local3 = new EmailPage(); if (_local2.ownEmailText.text == _local3.ownEmailText.text){ _local2.ownEmailText.text = ""; }; } private function onOwnEmailTextFocusOut(_arg1:FocusEvent):void{ var _local3:*; var _local2:* = this.getChildAt((numChildren - 1)); if (_local2 == null){ return; }; if (_local2.ownEmailText == null){ return; }; if (_local2.ownEmailText.text == ""){ _local3 = new EmailPage(); _local2.ownEmailText.text = _local3.ownEmailText.text; }; } private function onFriendEmailsTextFocusIn(_arg1:FocusEvent):void{ var _local3:*; var _local2:* = this.getChildAt((numChildren - 1)); if (_local2 == null){ return; }; if (_local2.ownEmailText == null){ return; }; _local3 = new EmailPage(); if (_local2.friendEmailsText.text == _local3.friendEmailsText.text){ _local2.friendEmailsText.text = ""; }; } private function onFriendEmailsTextFocusOut(_arg1:FocusEvent):void{ var _local3:*; var _local2:* = this.getChildAt((numChildren - 1)); if (_local2 == null){ return; }; if (_local2.ownEmailText == null){ return; }; if (_local2.friendEmailsText.text == ""){ _local3 = new EmailPage(); _local2.friendEmailsText.text = _local3.friendEmailsText.text; }; } private function onSendEmailButtonClicked(_arg1:MouseEvent):void{ var _local2:URLVariables; var _local3:URLRequest; var _local4:URLLoader; var _local5:* = this.getChildAt((numChildren - 1)); _local2 = new URLVariables(); _local2.gameID = gameID; _local2.gameName = gameName; _local2.playerScore = playerScore; _local2.url = getShareURL(shareURL); _local2.ownEmail = _local5.ownEmailText.text; _local2.friendEmails = _local5.friendEmailsText.text; _local2.date = getDateString(); _local2.hash = getSendEmailHash(_local2); _local3 = new URLRequest(); _local3.method = "POST"; _local3.data = _local2; _local3.url = shareSendEmailURL; _local4 = new URLLoader(); _local4.addEventListener(IOErrorEvent.IO_ERROR, sendEmailFailed); _local4.addEventListener(SecurityErrorEvent.SECURITY_ERROR, sendEmailFailed); _local4.addEventListener(Event.COMPLETE, sendEmailFinished); _local4.load(_local3); showSendingEmails(); } private function getSendEmailHash(_arg1:URLVariables):String{ var _local2 = ""; _local2 = (_local2 + _arg1.gameID); _local2 = (_local2 + _arg1.gameName); _local2 = (_local2 + _arg1.playerScore); _local2 = (_local2 + _arg1.url); _local2 = (_local2 + _arg1.ownEmail); _local2 = (_local2 + _arg1.friendEmails); _local2 = (_local2 + _arg1.date); _local2 = (_local2 + hashKey); return (MD5.md5String(_local2)); } private function showSendingEmails():void{ var _local1:MovieClip; doHide(); _local1 = new Status(); _local1.gotoAndStop("sendingEmails"); _local1.closeButton.visible = false; this.addChild(_local1); } private function sendEmailFailed(_arg1:Event=null):void{ var _local2:MovieClip; doHide(); _local2 = new Status(); _local2.gotoAndStop("sendEmailsFailed"); _local2.closeButton.addEventListener(MouseEvent.CLICK, shareFinishedAction); this.addChild(_local2); } private function sendEmailFinished(_arg1:Event):void{ var _local5:String; var _local6:String; var _local2:URLLoader = URLLoader(_arg1.currentTarget); var _local3:String = _local2.data; var _local4:URLVariables = new URLVariables(_local3); var _local7:Object = new Object(); for (_local5 in _local4) { _local6 = trim(_local5); _local7[_local6] = trim(_local4[_local5]); }; if (_local7.success != "true"){ sendEmailFailed(); return; }; shareFinishedAction(); } private function substituteParameters(_arg1:String):String{ _arg1 = _arg1.replace(/SCORE/g, playerScore); _arg1 = _arg1.replace(/GAMENAME/g, gameName); return (_arg1); } private function getShareURL(_arg1:String):String{ var e:Error; var shareURL = _arg1; if (((!((shareURL == null))) && (!((shareURL == ""))))){ return (shareURL); }; try { shareURL = ExternalInterface.call("document.location.href.toString"); } catch(e) { shareURL = null; }; if ((((shareURL == null)) || ((shareURL == "")))){ return (""); }; return (shareURL); } private function submitScoreButtonClicked(_arg1:MouseEvent):void{ var _local2:MovieClip; doHide(); if (!getShouldPrompt()){ saveScore(); return; }; switch (submitType){ case "name": _local2 = new NamePage(); break; case "nameEmail": _local2 = new NameEmailPage(); break; case "login": if (allowSubmitAsGuest){ _local2 = new LoginPage(); } else { _local2 = new LoginNoGuestPage(); }; break; }; this.addChild(_local2); initializeSubmitPage(); } private function getShouldPrompt():Boolean{ switch (submitType){ case "name": case "nameEmail": return ((playerName == null)); case "login": return ((playerID == null)); case "noPrompt": case "silent": return (false); }; return (true); } private function initializeSubmitPage():void{ var _local1:* = this.getChildAt((numChildren - 1)); if (_local1.nameText){ _local1.nameText.embedFonts = false; _local1.nameText.text = ((playerName == null)) ? "" : playerName; }; if (_local1.emailText){ _local1.emailText.embedFonts = false; _local1.emailText.text = ((playerEmail == null)) ? "" : playerEmail; }; if (_local1.usernameText){ _local1.usernameText.embedFonts = false; _local1.usernameText.text = ((playerUsername == null)) ? "" : playerUsername; }; if (_local1.passwordText){ _local1.passwordText.embedFonts = false; _local1.passwordText.text = ((playerPassword == null)) ? "" : playerPassword; }; if (_local1.submitButton){ _local1.submitButton.addEventListener(MouseEvent.CLICK, finalSubmitButtonClicked); }; if (_local1.forgetPasswordButton){ _local1.forgetPasswordButton.addEventListener(MouseEvent.CLICK, onForgetPasswordButtonClicked); _local1.forgetPasswordButton.buttonMode = true; }; if (_local1.registerButton){ _local1.registerButton.addEventListener(MouseEvent.CLICK, onRegisterButtonClicked); }; if (_local1.submitScoreAsGuestButton){ _local1.submitScoreAsGuestButton.addEventListener(MouseEvent.CLICK, onSubmitScoreAsGuestButtonClicked); }; _local1.closeButton.addEventListener(MouseEvent.CLICK, reshowEnterHighScore); } private function reshowEnterHighScore(_arg1:MouseEvent=null):void{ doShowEnterHighScore(playerScore); } private function onForgetPasswordButtonClicked(_arg1:MouseEvent):void{ navigateToURL(new URLRequest(forgetPasswordURL), "_blank"); } private function onRegisterButtonClicked(_arg1:MouseEvent):void{ navigateToURL(new URLRequest(registerURL), "_blank"); } private function onSubmitScoreAsGuestButtonClicked(_arg1:MouseEvent):void{ playerName = guestName; saveScore(); } private function finalSubmitButtonClicked(_arg1:MouseEvent):void{ var _local2:* = this.getChildAt(0); if (_local2.nameText){ playerName = _local2.nameText.text; }; if (_local2.emailText){ playerEmail = _local2.emailText.text; }; if (_local2.usernameText){ playerUsername = _local2.usernameText.text; }; if (_local2.passwordText){ playerPassword = _local2.passwordText.text; }; saveScore(); } private function saveScore():void{ if (!records){ doLoadScores((submitType == "silent"), saveScoreWithRecords, ((submitType == "silent")) ? saveScoreEnded : reshowEnterHighScore); return; }; saveScoreWithRecords(); } private function saveScoreWithRecords():void{ var _local1:URLVariables; var _local2:URLRequest; var _local3:URLLoader; var _local4:String; var _local5:int; if (submitType != "silent"){ showSubmittingScore(); }; _local1 = new URLVariables(); _local1.siteID = siteID; _local1.gameID = gameID; _local1.gameName = gameName; _local1.playerScore = playerScore; if (playerID != null){ _local1.playerID = playerID; }; if (playerName != null){ _local1.playerName = playerName; }; if (playerEmail != null){ _local1.playerEmail = playerEmail; }; if (playerUsername != null){ _local1.playerUsername = playerUsername; }; if (playerPassword != null){ _local1.playerPassword = playerPassword; }; _local1.date = getDateString(); _local1.hash = getHash(_local1); if (encrypted){ _local4 = getEncryptedResult(_local1); _local1 = new URLVariables(); _local1.encryptedResult = _local4; }; _local2 = new URLRequest(); _local2.data = _local1; _local2.method = "POST"; _local2.url = saveScoreURL; _local3 = new URLLoader(); _local3.addEventListener(IOErrorEvent.IO_ERROR, saveScoreFailed); _local3.addEventListener(SecurityErrorEvent.SECURITY_ERROR, saveScoreFailed); _local3.addEventListener(Event.COMPLETE, saveScoreFinished); _local3.load(_local2); } private function getDateString():String{ var _local2:String; var _local3:String; var _local4:String; var _local5:String; var _local6:String; var _local7:String; var _local8:String; var _local1:Date = new Date(); _local2 = ("" + _local1.getUTCFullYear()); _local3 = ("" + (_local1.getUTCMonth() + 1)); if (_local3.length < 2){ _local3 = ("0" + _local3); }; _local4 = ("" + _local1.getUTCDate()); if (_local4.length < 2){ _local4 = ("0" + _local4); }; _local5 = ("" + _local1.getUTCHours()); if (_local5.length < 2){ _local5 = ("0" + _local5); }; _local6 = ("" + _local1.getUTCMinutes()); if (_local6.length < 2){ _local6 = ("0" + _local6); }; _local7 = ("" + _local1.getUTCSeconds()); if (_local7.length < 2){ _local7 = ("0" + _local7); }; return ((((((_local2 + _local3) + _local4) + _local5) + _local6) + _local7)); } private function getHash(_arg1:URLVariables):String{ var _local2 = ""; _local2 = (_local2 + _arg1.siteID); _local2 = (_local2 + _arg1.gameID); _local2 = (_local2 + _arg1.gameName); _local2 = (_local2 + _arg1.playerScore); if (_arg1.playerID != null){ _local2 = (_local2 + _arg1.playerID); }; if (_arg1.playerName != null){ _local2 = (_local2 + _arg1.playerName); }; if (_arg1.playerEmail != null){ _local2 = (_local2 + _arg1.playerEmail); }; if (_arg1.playerUsername != null){ _local2 = (_local2 + _arg1.playerUsername); }; if (_arg1.playerPassword != null){ _local2 = (_local2 + _arg1.playerPassword); }; _local2 = (_local2 + _arg1.date); _local2 = (_local2 + hashKey); return (MD5.md5String(_local2)); } private function getEncryptedResult(_arg1:URLVariables):String{ var _local7:String; var _local8:int; var _local2:String = _arg1.toString(); var _local3:ByteArray = new ByteArray(); var _local4:ByteArray = new ByteArray(); var _local5:Array = new Array(); var _local6 = ""; _local3.writeUTFBytes(_local2); _local4.writeUTFBytes(hashKey); _local4.writeByte(0); while ((_local4.length % 3) != 0) { _local4.writeByte(0); }; _local8 = 0; while (_local8 < _local3.length) { _local5[_local8] = ((_local3[_local8] + _local4[((_local8 * 3) % _local4.length)]) % 0x0100); _local8++; }; _local8 = 0; while (_local8 < _local5.length) { _local7 = _local5[_local8].toString(16); if (_local7.length <= 1){ _local7 = ("0" + _local7); }; _local6 = (_local6 + _local7); _local8++; }; return (_local6); } private function showSubmittingScore():void{ var _local1:MovieClip; doHide(); _local1 = new Status(); _local1.gotoAndStop("submittingScore"); _local1.closeButton.visible = false; this.addChild(_local1); } private function saveScoreFailed(_arg1:Event):void{ doHide(); if (submitType != "silent"){ showSaveScoreFailed(); } else { saveScoreEnded(); }; } private function showSaveScoreFailed(_arg1:String=null):void{ var _local2:MovieClip; doHide(); switch (submitType){ case "name": _local2 = new NameFailedPage(); break; case "nameEmail": _local2 = new NameEmailFailedPage(); break; case "login": if (allowSubmitAsGuest){ _local2 = new LoginFailedPage(); } else { _local2 = new LoginNoGuestFailedPage(); }; break; case "noPrompt": _local2 = new Status(); _local2.gotoAndStop("submitScoreFailed"); break; }; this.addChild(_local2); initializeSubmitPage(); initializeReasonText(_arg1); } private function initializeReasonText(_arg1:String=null):void{ var _local2:* = this.getChildAt((numChildren - 1)); if (!_local2.reasonText){ return; }; switch (_arg1){ case "nameRejected": _local2.reasonText.gotoAndStop("nameRejected"); break; case "loginFailed": _local2.reasonText.gotoAndStop("loginFailed"); break; default: _local2.reasonText.gotoAndStop("submitFailed"); break; }; } private function saveScoreFinished(_arg1:Event):void{ var _local5:String; var _local6:String; var _local2:URLLoader = URLLoader(_arg1.currentTarget); var _local3:String = _local2.data; var _local4:URLVariables = new URLVariables(_local3); var _local7:Object = new Object(); for (_local5 in _local4) { _local6 = trim(_local5); _local7[_local6] = trim(_local4[_local5]); }; if (_local7.success != "true"){ doHide(); if (submitType != "silent"){ showSaveScoreFailed(_local7.reason); } else { saveScoreEnded(); }; return; }; doHide(); if (_local7.playerID != null){ playerID = _local7.playerID; }; if (_local7.playerName != null){ playerName = _local7.playerName; }; insertRecord(playerName, playerScore); if ((((submitType == "silent")) || (!(showTableAfterSave)))){ saveScoreEnded(); } else { showTableShare(); }; } private function insertRecord(_arg1:String, _arg2:int):void{ var _local4:int; var _local3:Boolean; switch (duplicateNameTreatment){ case DUPLICATENAMETREATMENT_SHOWHIGHEST: _local4 = 0; while (_local4 < records.length) { if (records[_local4].name != _arg1){ } else { if (records[_local4].score > _arg2){ _local3 = false; } else { records.splice(_local4, 1); _local4--; }; }; _local4++; }; break; case DUPLICATENAMETREATMENT_SHOWLATEST: _local4 = 0; while (_local4 < records.length) { if (records[_local4].name == _arg1){ records.splice(_local4, 1); _local4--; }; _local4++; }; break; case DUPLICATENAMETREATMENT_SHOWALL: default: break; }; if (_local3){ _local4 = 0; while (_local4 < records.length) { if (records[_local4].score <= _arg2){ break; }; _local4++; }; records.splice(_local4, 0, new Record(_arg1, _arg2)); records.splice(maxNoOfScores); if (_local4 < records.length){ highlightedIndex = _local4; } else { highlightedIndex = -1; }; } else { highlightedIndex = -1; }; } private function showTableShare():void{ var _local1:MovieClip; doHide(); _local1 = new TableShare(); this.addChild(_local1); setTitleText(); drawRecords(); initializeArrowButtons(); updateArrowButtons(); initializeShareInButtons(reshowTableShare); _local1.closeButton.addEventListener(MouseEvent.CLICK, saveScoreEnded); if (alwaysReloadScores){ records = null; }; } private function reshowTableShare(_arg1:MouseEvent=null):void{ showTableShare(); } private function trim(_arg1:String):String{ _arg1 = _arg1.replace(/^[\r\n\s]*/m, ""); _arg1 = _arg1.replace(/[\r\n\s]*$/m, ""); return (_arg1); } private function saveScoreEnded(_arg1:MouseEvent=null):void{ doHide(); if (afterSubmitAction != ""){ var _local2 = Object(parent); _local2[afterSubmitAction](); }; } } }//package com.novelgames.flashgames.highscores
Section 92
//LoginFailedPage (com.novelgames.flashgames.highscores.LoginFailedPage) package com.novelgames.flashgames.highscores { import flash.display.*; import flash.text.*; public dynamic class LoginFailedPage extends MovieClip { public var forgetPasswordButton:MovieClip; public var reasonText:MovieClip; public var submitScoreAsGuestButton:SimpleButton; public var submitButton:SimpleButton; public var usernameText:TextField; public var registerButton:SimpleButton; public var closeButton:SimpleButton; public var passwordText:TextField; } }//package com.novelgames.flashgames.highscores
Section 93
//LoginNoGuestFailedPage (com.novelgames.flashgames.highscores.LoginNoGuestFailedPage) package com.novelgames.flashgames.highscores { import flash.display.*; import flash.text.*; public dynamic class LoginNoGuestFailedPage extends MovieClip { public var forgetPasswordButton:MovieClip; public var reasonText:MovieClip; public var submitButton:SimpleButton; public var usernameText:TextField; public var registerButton:SimpleButton; public var closeButton:SimpleButton; public var passwordText:TextField; } }//package com.novelgames.flashgames.highscores
Section 94
//LoginNoGuestPage (com.novelgames.flashgames.highscores.LoginNoGuestPage) package com.novelgames.flashgames.highscores { import flash.display.*; import flash.text.*; public dynamic class LoginNoGuestPage extends MovieClip { public var forgetPasswordButton:MovieClip; public var submitButton:SimpleButton; public var usernameText:TextField; public var registerButton:SimpleButton; public var closeButton:SimpleButton; public var passwordText:TextField; } }//package com.novelgames.flashgames.highscores
Section 95
//LoginPage (com.novelgames.flashgames.highscores.LoginPage) package com.novelgames.flashgames.highscores { import flash.display.*; import flash.text.*; public dynamic class LoginPage extends MovieClip { public var forgetPasswordButton:MovieClip; public var submitScoreAsGuestButton:SimpleButton; public var submitButton:SimpleButton; public var usernameText:TextField; public var registerButton:SimpleButton; public var closeButton:SimpleButton; public var passwordText:TextField; } }//package com.novelgames.flashgames.highscores
Section 96
//MD5 (com.novelgames.flashgames.highscores.MD5) package com.novelgames.flashgames.highscores { import flash.utils.*; public class MD5 { public static function md5String(_arg1:String):String{ var _local2:ByteArray = new ByteArray(); _local2.writeUTFBytes(_arg1); return (md5ByteArray(_local2)); } public static function md5ByteArray(_arg1:ByteArray):String{ var _local2:Array; var _local3:Array; var _local4:int; var _local5:int; var _local6:int; var _local13:Array; var _local14:uint; var _local15:uint; var _local16:uint; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:*; _local2 = [7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]; _local3 = new Array(64); _local4 = 0; while (_local4 < 64) { _local3[_local4] = Math.floor((Math.abs(Math.sin((_local4 + 1))) * Math.pow(2, 32))); _local4++; }; var _local7:uint = 1732584193; var _local8:uint = 4023233417; var _local9:uint = 2562383102; var _local10:uint = 271733878; var _local11:int = (_arg1.length * 8); _arg1.writeByte(128); while (((_arg1.length * 8) % 0x0200) != 448) { _arg1.writeByte(0); }; _arg1.writeByte((_local11 & 0xFF)); _arg1.writeByte(((_local11 >> 8) & 0xFF)); _arg1.writeByte(((_local11 >> 16) & 0xFF)); _arg1.writeByte(((_local11 >> 24) & 0xFF)); _arg1.writeByte(0); _arg1.writeByte(0); _arg1.writeByte(0); _arg1.writeByte(0); var _local12:int = ((_arg1.length * 8) / 0x0200); _local6 = 0; while (_local6 < _local12) { _local13 = new Array(16); _local5 = 0; while (_local5 < 16) { _local13[_local5] = ((((_arg1[(((_local6 * 64) + (_local5 * 4)) + 3)] << 24) | (_arg1[(((_local6 * 64) + (_local5 * 4)) + 2)] << 16)) | (_arg1[(((_local6 * 64) + (_local5 * 4)) + 1)] << 8)) | _arg1[((_local6 * 64) + (_local5 * 4))]); _local5++; }; _local14 = _local7; _local15 = _local8; _local16 = _local9; _local17 = _local10; _local4 = 0; while (_local4 < 64) { if (_local4 < 16){ _local18 = ((_local15 & _local16) | (~(_local15) & _local17)); _local19 = _local4; } else { if (_local4 < 32){ _local18 = ((_local17 & _local15) | (~(_local17) & _local16)); _local19 = (((5 * _local4) + 1) % 16); } else { if (_local4 < 48){ _local18 = ((_local15 ^ _local16) ^ _local17); _local19 = (((3 * _local4) + 5) % 16); } else { _local18 = (_local16 ^ (_local15 | ~(_local17))); _local19 = ((7 * _local4) % 16); }; }; }; _local20 = _local17; _local17 = _local16; _local16 = _local15; _local15 = (_local15 + leftRotate((((_local14 + _local18) + _local3[_local4]) + _local13[_local19]), _local2[_local4])); _local14 = _local20; _local4++; }; _local7 = (_local7 + _local14); _local8 = (_local8 + _local15); _local9 = (_local9 + _local16); _local10 = (_local10 + _local17); _local6++; }; _arg1.length = (_local11 / 8); return ((((hexToString(_local7) + hexToString(_local8)) + hexToString(_local9)) + hexToString(_local10))); } private static function leftRotate(_arg1:uint, _arg2:int):uint{ var _local3:uint = ((1 << _arg2) - 1); return (((_arg1 << _arg2) | ((_arg1 >> (32 - _arg2)) & _local3))); } private static function hexToString(_arg1:uint):String{ return ((((hexByteToString((_arg1 & 0xFF)) + hexByteToString(((_arg1 >> 8) & 0xFF))) + hexByteToString(((_arg1 >> 16) & 0xFF))) + hexByteToString(((_arg1 >> 24) & 0xFF)))); } private static function hexByteToString(_arg1:uint):String{ var _local2:String = _arg1.toString(16); while (_local2.length < 2) { _local2 = ("0" + _local2); }; return (_local2); } } }//package com.novelgames.flashgames.highscores
Section 97
//NameEmailFailedPage (com.novelgames.flashgames.highscores.NameEmailFailedPage) package com.novelgames.flashgames.highscores { import flash.display.*; import flash.text.*; public dynamic class NameEmailFailedPage extends MovieClip { public var reasonText:MovieClip; public var emailText:TextField; public var submitButton:SimpleButton; public var nameText:TextField; public var closeButton:SimpleButton; } }//package com.novelgames.flashgames.highscores
Section 98
//NameEmailPage (com.novelgames.flashgames.highscores.NameEmailPage) package com.novelgames.flashgames.highscores { import flash.display.*; import flash.text.*; public dynamic class NameEmailPage extends MovieClip { public var emailText:TextField; public var submitButton:SimpleButton; public var nameText:TextField; public var closeButton:SimpleButton; } }//package com.novelgames.flashgames.highscores
Section 99
//NameFailedPage (com.novelgames.flashgames.highscores.NameFailedPage) package com.novelgames.flashgames.highscores { import flash.display.*; import flash.text.*; public dynamic class NameFailedPage extends MovieClip { public var reasonText:MovieClip; public var submitButton:SimpleButton; public var nameText:TextField; public var closeButton:SimpleButton; } }//package com.novelgames.flashgames.highscores
Section 100
//NamePage (com.novelgames.flashgames.highscores.NamePage) package com.novelgames.flashgames.highscores { import flash.display.*; import flash.text.*; public dynamic class NamePage extends MovieClip { public var submitButton:SimpleButton; public var nameText:TextField; public var closeButton:SimpleButton; } }//package com.novelgames.flashgames.highscores
Section 101
//Record (com.novelgames.flashgames.highscores.Record) package com.novelgames.flashgames.highscores { public class Record { public var name:String; public var score:Number; public function Record(_arg1:String, _arg2:Number){ this.name = _arg1; this.score = _arg2; } } }//package com.novelgames.flashgames.highscores
Section 102
//ScorePage (com.novelgames.flashgames.highscores.ScorePage) package com.novelgames.flashgames.highscores { import flash.display.*; import flash.text.*; public dynamic class ScorePage extends MovieClip { public var mySpaceButton:MovieClip; public var submitButton:SimpleButton; public var scoreText:TextField; public var facebookButton:MovieClip; public var closeButton:SimpleButton; public var twitterButton:MovieClip; public var emailButton:MovieClip; } }//package com.novelgames.flashgames.highscores
Section 103
//Status (com.novelgames.flashgames.highscores.Status) package com.novelgames.flashgames.highscores { import flash.display.*; public dynamic class Status extends MovieClip { public var closeButton:SimpleButton; } }//package com.novelgames.flashgames.highscores
Section 104
//Table (com.novelgames.flashgames.highscores.Table) package com.novelgames.flashgames.highscores { import flash.display.*; public dynamic class Table extends MovieClip { public var item5:MovieClip; public var item6:MovieClip; public var item7:MovieClip; public var item8:MovieClip; public var item9:MovieClip; public var nextPageButton:SimpleButton; public var titleText:MovieClip; public var closeButton:SimpleButton; public var item0:MovieClip; public var item1:MovieClip; public var previousPageButton:SimpleButton; public var item2:MovieClip; public var item3:MovieClip; public var item4:MovieClip; } }//package com.novelgames.flashgames.highscores
Section 105
//TableShare (com.novelgames.flashgames.highscores.TableShare) package com.novelgames.flashgames.highscores { import flash.display.*; public dynamic class TableShare extends MovieClip { public var nextPageButton:SimpleButton; public var mySpaceButton:MovieClip; public var facebookButton:MovieClip; public var titleText:MovieClip; public var closeButton:SimpleButton; public var twitterButton:MovieClip; public var item0:MovieClip; public var emailButton:MovieClip; public var item1:MovieClip; public var previousPageButton:SimpleButton; public var item2:MovieClip; public var item3:MovieClip; public var item4:MovieClip; } }//package com.novelgames.flashgames.highscores
Section 106
//ProcessEvent (com.touchmypixel.events.ProcessEvent) package com.touchmypixel.events { import flash.events.*; public class ProcessEvent extends Event { public var percentage:Number;// = 0 public static const START = "Process.Start"; public static const PROGRESS = "Process.Progress"; public static const COMPLETE = "Process.Complete"; public function ProcessEvent(_arg1:String, _arg2:Number=0, _arg3:Boolean=false, _arg4:Boolean=false){ this.percentage = _arg2; if (_arg1 == COMPLETE){ this.percentage = 1; }; super(_arg1, _arg3, _arg4); } } }//package com.touchmypixel.events
Section 107
//Animation (com.touchmypixel.peepee.utils.Animation) package com.touchmypixel.peepee.utils { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import com.bit101.display.*; public class Animation extends Sprite { public var bitmap:Bitmap; public var clip:MovieClip; public var frames:Array; public var currentFrame:Number;// = 1 private var _playing:Boolean;// = false private var _cache:Boolean;// = true public var repeat:Boolean;// = true public var onEnd:Function; private var clipData:MovieClip; public var reverse:Boolean;// = false public var speed:Number;// = 1 public var treatAsLoopedGraphic:Boolean;// = false public var bigBitmap:BigAssCanvas; public var cols:Number;// = 0 public var rows:Number;// = 0 public var r:Rectangle; private var _totalFrames; public var useSpriteSheet:Boolean;// = false public function Animation(){ frames = []; super(); bitmap = new Bitmap(); bitmap.smoothing = false; addChild(bitmap); } public function set bitmapData(_arg1:BitmapData){ bitmap.bitmapData = _arg1; } public function get bitmapData():BitmapData{ return (bitmap.bitmapData); } public function get playing():Boolean{ return (_playing); } public function get totalFrames():Number{ return (clip.totalFrames); } public function buildCacheFromLibrary(_arg1:String):void{ if (useSpriteSheet){ buildCacheFromClip2(new (getDefinitionByName(_arg1))); } else { buildCacheFromClip(new (getDefinitionByName(_arg1))); }; } public function buildCacheFromClip(_arg1:MovieClip):void{ var _local3:*; var _local4:BitmapData; var _local5:Matrix; clip = _arg1; if (clip["e_bounds"] != null){ _local3 = clip["e_bounds"]; r = new Rectangle(_local3.x, _local3.y, _local3.width, _local3.height); clip["e_bounds"].visible = false; } else { r = clip.getRect(clip); }; var _local2:* = 1; while (_local2 <= clip.totalFrames) { clip.gotoAndStop(_local2); makeAllChildrenGoToFrame(clip, _local2); _local4 = new BitmapData(r.width, r.height, true, 0); _local5 = new Matrix(); _local5.translate(-(r.x), -(r.y)); _local5.scale(clip.scaleX, clip.scaleY); _local4.draw(clip, _local5); frames.push(_local4); _local2++; }; bitmap.x = r.x; bitmap.y = r.y; } public function buildCacheFromClip2(_arg1:MovieClip):void{ var _local3:*; var _local4:*; var _local5:*; var _local6:Matrix; clip = _arg1; if (clip["e_bounds"] != null){ _local3 = clip["e_bounds"]; r = new Rectangle(_local3.x, _local3.y, _local3.width, _local3.height); clip["e_bounds"].visible = false; } else { r = clip.getRect(clip); }; cols = Math.floor((2880 / r.width)); rows = Math.ceil((clip.totalFrames / cols)); bigBitmap = new BigAssCanvas(Math.ceil((cols * clip.width)), Math.ceil((rows * clip.height)), true); var _local2:* = 0; while (_local2 <= (clip.totalFrames - 1)) { clip.gotoAndStop((_local2 + 1)); makeAllChildrenGoToFrame(clip, (_local2 + 1)); _local4 = ((_local2 % cols) * r.width); _local5 = (Math.floor((_local2 / cols)) * r.height); _local6 = new Matrix(); _local6.translate(-(r.x), -(r.y)); _local6.scale(clip.scaleX, clip.scaleY); _local6.translate(_local4, _local5); bigBitmap.draw(clip, _local6, null, null); _local2++; }; _totalFrames = clip.totalFrames; } private function makeAllChildrenGoToFrame(_arg1:MovieClip, _arg2:int):void{ var _local4:*; var _local3:int; while (_local3 < _arg1.numChildren) { _local4 = _arg1.getChildAt(_local3); if ((_local4 is MovieClip)){ makeAllChildrenGoToFrame(_local4, _arg2); _local4.gotoAndStop(_arg2); }; _local3++; }; } public function play():void{ _playing = true; addEventListener(Event.ENTER_FRAME, enterFrame, false, 0, true); } public function stop():void{ _playing = false; removeEventListener(Event.ENTER_FRAME, enterFrame); } public function gotoAndStop(_arg1:Number):void{ if (treatAsLoopedGraphic){ if (_arg1 > totalFrames){ _arg1 = (_arg1 % totalFrames); }; }; currentFrame = _arg1; goto(currentFrame); stop(); } public function gotoAndPlay(_arg1:Number):void{ currentFrame = _arg1; goto(currentFrame); play(); } public function gotoAndPlayRandomFrame():void{ gotoAndPlay(Math.ceil((Math.random() * totalFrames))); } public function nextFrame(_arg1:Boolean=false):void{ if (_arg1){ currentFrame = (currentFrame + speed); } else { currentFrame++; }; if (currentFrame > totalFrames){ currentFrame = 1; }; goto(Math.floor(currentFrame)); } public function prevFrame(_arg1:Boolean=false):void{ if (_arg1){ currentFrame = (currentFrame - speed); } else { currentFrame--; }; if (currentFrame < 1){ currentFrame = totalFrames; }; goto(Math.floor(currentFrame)); } private function goto(_arg1:Number):void{ var _local2:*; var _local3:Rectangle; var _local4:Rectangle; if (!_cache){ if (!clipData){ _local2 = getQualifiedClassName(clip); clipData = new (getDefinitionByName(_local2)); _local3 = clipData.getRect(clipData); clipData.x = _local3.x; clipData.y = _local3.y; addChild(clipData); }; clipData.gotoAndStop(_arg1); } else { if (useSpriteSheet){ _local4 = r.clone(); _local4.x = (((currentFrame - 1) % cols) * r.width); _local4.y = (Math.floor(((currentFrame - 1) / cols)) * r.height); if (bitmapData){ bitmapData.dispose(); }; bitmapData = bigBitmap.copyPixelsOut(_local4); bitmap.bitmapData = bitmapData; bitmap.smoothing = true; } else { bitmap.bitmapData = frames[(currentFrame - 1)]; bitmap.smoothing = true; }; }; } public function enterFrame(_arg1:Event=null):void{ if (reverse){ prevFrame(true); } else { nextFrame(true); }; if (currentFrame >= totalFrames){ if (!repeat){ stop(); }; dispatchEvent(new Event(Event.COMPLETE)); if (onEnd != null){ onEnd(); }; }; } public function update():void{ stop(); frames = []; buildCacheFromClip(clip); } public function destroy(){ stop(); if (parent){ parent.removeChild(this); }; } } }//package com.touchmypixel.peepee.utils
Section 108
//AnimationCache (com.touchmypixel.peepee.utils.AnimationCache) package com.touchmypixel.peepee.utils { import flash.utils.*; import flash.events.*; import com.touchmypixel.events.*; public class AnimationCache extends EventDispatcher { public var cacheQueue:Array; public var currentlyProcessingItem:uint;// = 0 public var replaceExisting:Boolean;// = false private var animations:Object; private static var instance:AnimationCache; public function AnimationCache(){ cacheQueue = []; animations = {}; super(); if (AnimationCache.instance){ throw (new Error("AnimationCache is a Singleton. Don't Instantiate!")); }; instance = this; } public function cacheAnimation(_arg1:String, _arg2:Boolean=false):Animation{ var _local3:Animation; if (((!(animations[_arg1])) || (replaceExisting))){ _local3 = new Animation(); _local3.useSpriteSheet = _arg2; _local3.buildCacheFromLibrary(_arg1); animations[_arg1] = _local3; } else { _local3 = animations[_arg1]; }; return (_local3); } public function getAnimation(_arg1):Animation{ var _local2:Animation; if (!animations[_arg1]){ trace(("MISSING ANIMATION :" + _arg1)); return (null); }; _local2 = new Animation(); _local2.frames = animations[_arg1].frames; _local2.bigBitmap = animations[_arg1].bigBitmap; _local2.bitmap.x = animations[_arg1].bitmap.x; _local2.bitmap.y = animations[_arg1].bitmap.y; _local2.cols = animations[_arg1].cols; _local2.rows = animations[_arg1].rows; _local2.r = animations[_arg1].r; _local2.clip = animations[_arg1].clip; _local2.useSpriteSheet = animations[_arg1].useSpriteSheet; _local2.gotoAndStop(1); return (_local2); } public function addToBulkCache(_arg1:Array){ var _local2:*; for each (_local2 in _arg1) { cacheQueue.push(_local2); }; } public function processQueue(){ currentlyProcessingItem = 0; dispatchEvent(new ProcessEvent(ProcessEvent.START)); process(); } private function process():void{ var _local1:* = cacheQueue[currentlyProcessingItem++]; if (_local1 != null){ cacheAnimation(_local1); dispatchEvent(new ProcessEvent(ProcessEvent.PROGRESS, (currentlyProcessingItem / cacheQueue.length))); setTimeout(process, 1); } else { dispatchEvent(new ProcessEvent(ProcessEvent.COMPLETE)); cacheQueue = []; }; } public static function getInstance():AnimationCache{ return ((instance) ? instance : new (AnimationCache)); } } }//package com.touchmypixel.peepee.utils
Section 109
//BaseScrollPane (fl.containers.BaseScrollPane) package fl.containers { import fl.core.*; import fl.controls.*; import flash.display.*; import flash.events.*; import flash.geom.*; import fl.events.*; public class BaseScrollPane extends UIComponent { protected var defaultLineScrollSize:Number;// = 4 protected var _maxHorizontalScrollPosition:Number;// = 0 protected var vScrollBar:Boolean; protected var disabledOverlay:Shape; protected var hScrollBar:Boolean; protected var availableWidth:Number; protected var _verticalPageScrollSize:Number;// = 0 protected var vOffset:Number;// = 0 protected var _verticalScrollBar:ScrollBar; protected var useFixedHorizontalScrolling:Boolean;// = false protected var contentWidth:Number;// = 0 protected var contentHeight:Number;// = 0 protected var _horizontalPageScrollSize:Number;// = 0 protected var background:DisplayObject; protected var _useBitmpScrolling:Boolean;// = false protected var contentPadding:Number;// = 0 protected var availableHeight:Number; protected var _horizontalScrollBar:ScrollBar; protected var contentScrollRect:Rectangle; protected var _horizontalScrollPolicy:String; protected var _verticalScrollPolicy:String; protected static const SCROLL_BAR_STYLES:Object = {upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {repeatDelay:500, repeatInterval:35, skin:"ScrollPane_upSkin", contentPadding:0, disabledAlpha:0.5}; public function BaseScrollPane(){ contentWidth = 0; contentHeight = 0; contentPadding = 0; vOffset = 0; _maxHorizontalScrollPosition = 0; _horizontalPageScrollSize = 0; _verticalPageScrollSize = 0; defaultLineScrollSize = 4; useFixedHorizontalScrolling = false; _useBitmpScrolling = false; super(); } protected function handleWheel(_arg1:MouseEvent):void{ if (((((!(enabled)) || (!(_verticalScrollBar.visible)))) || ((contentHeight <= availableHeight)))){ return; }; _verticalScrollBar.scrollPosition = (_verticalScrollBar.scrollPosition - (_arg1.delta * verticalLineScrollSize)); setVerticalScrollPosition(_verticalScrollBar.scrollPosition); dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _arg1.delta, horizontalScrollPosition)); } public function get verticalScrollPosition():Number{ return (_verticalScrollBar.scrollPosition); } protected function drawDisabledOverlay():void{ if (enabled){ if (contains(disabledOverlay)){ removeChild(disabledOverlay); }; } else { disabledOverlay.x = (disabledOverlay.y = contentPadding); disabledOverlay.width = availableWidth; disabledOverlay.height = availableHeight; disabledOverlay.alpha = (getStyleValue("disabledAlpha") as Number); addChild(disabledOverlay); }; } public function set verticalScrollPosition(_arg1:Number):void{ drawNow(); _verticalScrollBar.scrollPosition = _arg1; setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); } protected function setContentSize(_arg1:Number, _arg2:Number):void{ if ((((((contentWidth == _arg1)) || (useFixedHorizontalScrolling))) && ((contentHeight == _arg2)))){ return; }; contentWidth = _arg1; contentHeight = _arg2; invalidate(InvalidationType.SIZE); } public function get horizontalScrollPosition():Number{ return (_horizontalScrollBar.scrollPosition); } public function get horizontalScrollBar():ScrollBar{ return (_horizontalScrollBar); } override public function set enabled(_arg1:Boolean):void{ if (enabled == _arg1){ return; }; _verticalScrollBar.enabled = _arg1; _horizontalScrollBar.enabled = _arg1; super.enabled = _arg1; } public function get verticalLineScrollSize():Number{ return (_verticalScrollBar.lineScrollSize); } public function get horizontalScrollPolicy():String{ return (_horizontalScrollPolicy); } protected function calculateAvailableSize():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = ScrollBar.WIDTH; _local2 = (contentPadding = Number(getStyleValue("contentPadding"))); _local3 = ((height - (2 * _local2)) - vOffset); vScrollBar = (((_verticalScrollPolicy == ScrollPolicy.ON)) || ((((_verticalScrollPolicy == ScrollPolicy.AUTO)) && ((contentHeight > _local3))))); _local4 = ((width - (vScrollBar) ? _local1 : 0) - (2 * _local2)); _local5 = (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - _local4); hScrollBar = (((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_local5 > 0))))); if (hScrollBar){ _local3 = (_local3 - _local1); }; if (((((((hScrollBar) && (!(vScrollBar)))) && ((_verticalScrollPolicy == ScrollPolicy.AUTO)))) && ((contentHeight > _local3)))){ vScrollBar = true; _local4 = (_local4 - _local1); }; availableHeight = (_local3 + vOffset); availableWidth = _local4; } public function get maxVerticalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentHeight - availableHeight))); } public function set horizontalScrollPosition(_arg1:Number):void{ drawNow(); _horizontalScrollBar.scrollPosition = _arg1; setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); } public function get horizontalLineScrollSize():Number{ return (_horizontalScrollBar.lineScrollSize); } public function set verticalPageScrollSize(_arg1:Number):void{ _verticalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } public function get verticalScrollPolicy():String{ return (_verticalScrollPolicy); } protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function get useBitmapScrolling():Boolean{ return (_useBitmpScrolling); } protected function handleScroll(_arg1:ScrollEvent):void{ if (_arg1.target == _verticalScrollBar){ setVerticalScrollPosition(_arg1.position); } else { setHorizontalScrollPosition(_arg1.position); }; } public function set verticalLineScrollSize(_arg1:Number):void{ _verticalScrollBar.lineScrollSize = _arg1; } public function get verticalScrollBar():ScrollBar{ return (_verticalScrollBar); } protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function set horizontalPageScrollSize(_arg1:Number):void{ _horizontalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STATE)){ drawLayout(); }; updateChildren(); super.draw(); } public function set horizontalScrollPolicy(_arg1:String):void{ _horizontalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } override protected function configUI():void{ var _local1:Graphics; super.configUI(); contentScrollRect = new Rectangle(0, 0, 85, 85); _verticalScrollBar = new ScrollBar(); _verticalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _verticalScrollBar.visible = false; _verticalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_verticalScrollBar); copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); _horizontalScrollBar = new ScrollBar(); _horizontalScrollBar.direction = ScrollBarDirection.HORIZONTAL; _horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _horizontalScrollBar.visible = false; _horizontalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_horizontalScrollBar); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); disabledOverlay = new Shape(); _local1 = disabledOverlay.graphics; _local1.beginFill(0xFFFFFF); _local1.drawRect(0, 0, width, height); _local1.endFill(); addEventListener(MouseEvent.MOUSE_WHEEL, handleWheel, false, 0, true); } protected function calculateContentWidth():void{ } public function get verticalPageScrollSize():Number{ if (isNaN(availableHeight)){ drawNow(); }; return (((((_verticalPageScrollSize == 0)) && (!(isNaN(availableHeight))))) ? availableHeight : _verticalPageScrollSize); } protected function drawLayout():void{ calculateAvailableSize(); calculateContentWidth(); background.width = width; background.height = height; if (vScrollBar){ _verticalScrollBar.visible = true; _verticalScrollBar.x = ((width - ScrollBar.WIDTH) - contentPadding); _verticalScrollBar.y = contentPadding; _verticalScrollBar.height = availableHeight; } else { _verticalScrollBar.visible = false; }; _verticalScrollBar.setScrollProperties(availableHeight, 0, (contentHeight - availableHeight), verticalPageScrollSize); setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); if (hScrollBar){ _horizontalScrollBar.visible = true; _horizontalScrollBar.x = contentPadding; _horizontalScrollBar.y = ((height - ScrollBar.WIDTH) - contentPadding); _horizontalScrollBar.width = availableWidth; } else { _horizontalScrollBar.visible = false; }; _horizontalScrollBar.setScrollProperties(availableWidth, 0, (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - availableWidth), horizontalPageScrollSize); setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); drawDisabledOverlay(); } protected function drawBackground():void{ var _local1:DisplayObject; _local1 = background; background = getDisplayObjectInstance(getStyleValue("skin")); background.width = width; background.height = height; addChildAt(background, 0); if (((!((_local1 == null))) && (!((_local1 == background))))){ removeChild(_local1); }; } public function set horizontalLineScrollSize(_arg1:Number):void{ _horizontalScrollBar.lineScrollSize = _arg1; } public function get horizontalPageScrollSize():Number{ if (isNaN(availableWidth)){ drawNow(); }; return (((((_horizontalPageScrollSize == 0)) && (!(isNaN(availableWidth))))) ? availableWidth : _horizontalPageScrollSize); } public function get maxHorizontalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentWidth - availableWidth))); } protected function setStyles():void{ copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); } protected function updateChildren():void{ _verticalScrollBar.enabled = (_horizontalScrollBar.enabled = enabled); _verticalScrollBar.drawNow(); _horizontalScrollBar.drawNow(); } public function set verticalScrollPolicy(_arg1:String):void{ _verticalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } public function set useBitmapScrolling(_arg1:Boolean):void{ _useBitmpScrolling = _arg1; invalidate(InvalidationType.STATE); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.containers
Section 110
//CellRenderer (fl.controls.listClasses.CellRenderer) package fl.controls.listClasses { import fl.controls.*; import flash.events.*; public class CellRenderer extends LabelButton implements ICellRenderer { protected var _data:Object; protected var _listData:ListData; private static var defaultStyles:Object = {upSkin:"CellRenderer_upSkin", downSkin:"CellRenderer_downSkin", overSkin:"CellRenderer_overSkin", disabledSkin:"CellRenderer_disabledSkin", selectedDisabledSkin:"CellRenderer_selectedDisabledSkin", selectedUpSkin:"CellRenderer_selectedUpSkin", selectedDownSkin:"CellRenderer_selectedDownSkin", selectedOverSkin:"CellRenderer_selectedOverSkin", textFormat:null, disabledTextFormat:null, embedFonts:null, textPadding:5}; public function CellRenderer():void{ toggle = true; focusEnabled = false; } override protected function toggleSelected(_arg1:MouseEvent):void{ } override public function get selected():Boolean{ return (super.selected); } public function set listData(_arg1:ListData):void{ _listData = _arg1; label = _listData.label; setStyle("icon", _listData.icon); } override public function set selected(_arg1:Boolean):void{ super.selected = _arg1; } public function set data(_arg1:Object):void{ _data = _arg1; } public function get listData():ListData{ return (_listData); } override public function setSize(_arg1:Number, _arg2:Number):void{ super.setSize(_arg1, _arg2); } override protected function drawLayout():void{ var _local1:Number; var _local2:Number; var _local3:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = 0; if (icon != null){ icon.x = _local1; icon.y = Math.round(((height - icon.height) >> 1)); _local2 = (icon.width + _local1); }; if (label.length > 0){ textField.visible = true; _local3 = Math.max(0, ((width - _local2) - (_local1 * 2))); textField.width = _local3; textField.height = (textField.textHeight + 4); textField.x = (_local2 + _local1); textField.y = Math.round(((height - textField.height) >> 1)); } else { textField.visible = false; }; background.width = width; background.height = height; } public function get data():Object{ return (_data); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls.listClasses
Section 111
//ICellRenderer (fl.controls.listClasses.ICellRenderer) package fl.controls.listClasses { public interface ICellRenderer { function setSize(_arg1:Number, _arg2:Number):void; function get listData():ListData; function get data():Object; function setMouseState(_arg1:String):void; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function set data(_arg1:Object):void; function set selected(_arg1:Boolean):void; function set listData(_arg1:ListData):void; function get selected():Boolean; } }//package fl.controls.listClasses
Section 112
//ListData (fl.controls.listClasses.ListData) package fl.controls.listClasses { import fl.core.*; public class ListData { protected var _index:uint; protected var _owner:UIComponent; protected var _label:String; protected var _icon:Object;// = null protected var _row:uint; protected var _column:uint; public function ListData(_arg1:String, _arg2:Object, _arg3:UIComponent, _arg4:uint, _arg5:uint, _arg6:uint=0){ _icon = null; super(); _label = _arg1; _icon = _arg2; _owner = _arg3; _index = _arg4; _row = _arg5; _column = _arg6; } public function get owner():UIComponent{ return (_owner); } public function get label():String{ return (_label); } public function get row():uint{ return (_row); } public function get index():uint{ return (_index); } public function get icon():Object{ return (_icon); } public function get column():uint{ return (_column); } } }//package fl.controls.listClasses
Section 113
//BaseButton (fl.controls.BaseButton) package fl.controls { import fl.core.*; import flash.display.*; import flash.utils.*; import flash.events.*; import fl.events.*; public class BaseButton extends UIComponent { protected var pressTimer:Timer; protected var _autoRepeat:Boolean;// = false protected var _selected:Boolean;// = false protected var background:DisplayObject; private var unlockedMouseState:String; protected var mouseState:String; private var _mouseStateLocked:Boolean;// = false private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35}; public function BaseButton(){ buttonMode = true; mouseChildren = false; useHandCursor = false; setupMouseEvents(); setMouseState("up"); pressTimer = new Timer(1, 0); pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true); } override public function get enabled():Boolean{ return (super.enabled); } protected function startPress():void{ if (_autoRepeat){ pressTimer.delay = Number(getStyleValue("repeatDelay")); pressTimer.start(); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function drawLayout():void{ background.width = width; background.height = height; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; mouseEnabled = _arg1; } public function set autoRepeat(_arg1:Boolean):void{ _autoRepeat = _arg1; } protected function mouseEventHandler(_arg1:MouseEvent):void{ if (_arg1.type == MouseEvent.MOUSE_DOWN){ setMouseState("down"); startPress(); } else { if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){ setMouseState("over"); endPress(); } else { if (_arg1.type == MouseEvent.ROLL_OUT){ setMouseState("up"); endPress(); }; }; }; } protected function drawBackground():void{ var _local1:String = (enabled) ? mouseState : "disabled"; if (selected){ _local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1)); }; _local1 = (_local1 + "Skin"); var _local2:DisplayObject = background; background = getDisplayObjectInstance(getStyleValue(_local1)); addChildAt(background, 0); if (((!((_local2 == null))) && (!((_local2 == background))))){ removeChild(_local2); }; } public function get selected():Boolean{ return (_selected); } protected function setupMouseEvents():void{ addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true); } protected function endPress():void{ pressTimer.reset(); } public function set mouseStateLocked(_arg1:Boolean):void{ _mouseStateLocked = _arg1; if (_arg1 == false){ setMouseState(unlockedMouseState); } else { unlockedMouseState = mouseState; }; } public function get autoRepeat():Boolean{ return (_autoRepeat); } public function set selected(_arg1:Boolean):void{ if (_selected == _arg1){ return; }; _selected = _arg1; invalidate(InvalidationType.STATE); } protected function buttonDown(_arg1:TimerEvent):void{ if (!_autoRepeat){ endPress(); return; }; if (pressTimer.currentCount == 1){ pressTimer.delay = Number(getStyleValue("repeatInterval")); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } public function setMouseState(_arg1:String):void{ if (_mouseStateLocked){ unlockedMouseState = _arg1; return; }; if (mouseState == _arg1){ return; }; mouseState = _arg1; invalidate(InvalidationType.STATE); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 114
//Button (fl.controls.Button) package fl.controls { import fl.core.*; import flash.display.*; import fl.managers.*; public class Button extends LabelButton implements IFocusManagerComponent { protected var _emphasized:Boolean;// = false protected var emphasizedBorder:DisplayObject; private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2}; public static var createAccessibilityImplementation:Function; public function set emphasized(_arg1:Boolean):void{ _emphasized = _arg1; invalidate(InvalidationType.STYLES); } override protected function initializeAccessibility():void{ if (Button.createAccessibilityImplementation != null){ Button.createAccessibilityImplementation(this); }; } protected function drawEmphasized():void{ var _local2:Number; if (emphasizedBorder != null){ removeChild(emphasizedBorder); }; emphasizedBorder = null; if (!_emphasized){ return; }; var _local1:Object = getStyleValue("emphasizedSkin"); if (_local1 != null){ emphasizedBorder = getDisplayObjectInstance(_local1); }; if (emphasizedBorder != null){ addChildAt(emphasizedBorder, 0); _local2 = Number(getStyleValue("emphasizedPadding")); emphasizedBorder.x = (emphasizedBorder.y = -(_local2)); emphasizedBorder.width = (width + (_local2 * 2)); emphasizedBorder.height = (height + (_local2 * 2)); }; } public function get emphasized():Boolean{ return (_emphasized); } override protected function draw():void{ if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){ drawEmphasized(); }; super.draw(); if (emphasizedBorder != null){ setChildIndex(emphasizedBorder, (numChildren - 1)); }; } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; var _local3:*; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("emphasizedPadding")); if ((((_local2 < 0)) || (!(_emphasized)))){ _local2 = 0; }; _local3 = getStyleValue("focusRectPadding"); _local3 = ((_local3)==null) ? 2 : _local3; _local3 = (_local3 + _local2); uiFocusRect.x = -(_local3); uiFocusRect.y = -(_local3); uiFocusRect.width = (width + (_local3 * 2)); uiFocusRect.height = (height + (_local3 * 2)); }; } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles)); } } }//package fl.controls
Section 115
//ButtonLabelPlacement (fl.controls.ButtonLabelPlacement) package fl.controls { public class ButtonLabelPlacement { public static const TOP:String = "top"; public static const LEFT:String = "left"; public static const BOTTOM:String = "bottom"; public static const RIGHT:String = "right"; } }//package fl.controls
Section 116
//ComboBox (fl.controls.ComboBox) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.events.*; import fl.data.*; import fl.managers.*; import flash.geom.*; import fl.events.*; import flash.text.*; import flash.ui.*; public class ComboBox extends UIComponent implements IFocusManagerComponent { protected var _dropdownWidth:Number; protected var highlightedCell:int;// = -1 protected var _prompt:String; protected var isOpen:Boolean;// = false protected var list:List; protected var _rowCount:uint;// = 5 protected var currentIndex:int; protected var isKeyDown:Boolean;// = false protected var _labels:Array; protected var background:BaseButton; protected var inputField:TextInput; protected var listOverIndex:uint; protected var editableValue:String; protected var _editable:Boolean;// = false private var collectionItemImport:SimpleCollectionItem; protected static const BACKGROUND_STYLES:Object = {overSkin:"overSkin", downSkin:"downSkin", upSkin:"upSkin", disabledSkin:"disabledSkin", repeatInterval:"repeatInterval"}; protected static const LIST_STYLES:Object = {upSkin:"comboListUpSkin", overSkin:"comboListOverSkin", downSkin:"comobListDownSkin", disabledSkin:"comboListDisabledSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval", textFormat:"textFormat", disabledAlpha:"disabledAlpha", skin:"listSkin"}; private static var defaultStyles:Object = {upSkin:"ComboBox_upSkin", downSkin:"ComboBox_downSkin", overSkin:"ComboBox_overSkin", disabledSkin:"ComboBox_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:3, buttonWidth:24, disabledAlpha:null, listSkin:null}; public static var createAccessibilityImplementation:Function; public function ComboBox(){ _rowCount = 5; _editable = false; isOpen = false; highlightedCell = -1; isKeyDown = false; super(); } protected function drawList():void{ list.rowCount = Math.max(0, Math.min(_rowCount, list.dataProvider.length)); } public function set imeMode(_arg1:String):void{ inputField.imeMode = _arg1; } public function get dropdown():List{ return (list); } public function get dropdownWidth():Number{ return (list.width); } public function sortItemsOn(_arg1:String, _arg2:Object=null){ return (list.sortItemsOn(_arg1, _arg2)); } protected function onEnter(_arg1:ComponentEvent):void{ _arg1.stopPropagation(); } public function removeItemAt(_arg1:uint):void{ list.removeItemAt(_arg1); invalidate(InvalidationType.DATA); } public function open():void{ currentIndex = selectedIndex; if (((isOpen) || ((length == 0)))){ return; }; dispatchEvent(new Event(Event.OPEN)); isOpen = true; addEventListener(Event.ENTER_FRAME, addCloseListener, false, 0, true); positionList(); list.scrollToSelected(); stage.addChild(list); } public function get selectedItem():Object{ return (list.selectedItem); } public function set text(_arg1:String):void{ if (!editable){ return; }; inputField.text = _arg1; } public function get labelField():String{ return (list.labelField); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:int; var _local3:uint; var _local4:Number; var _local5:int; isKeyDown = true; if (_arg1.ctrlKey){ switch (_arg1.keyCode){ case Keyboard.UP: if (highlightedCell > -1){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); break; case Keyboard.DOWN: open(); break; }; return; }; _arg1.stopPropagation(); _local2 = Math.max(((calculateAvailableHeight() / list.rowHeight) << 0), 1); _local3 = selectedIndex; _local4 = ((highlightedCell)==-1) ? selectedIndex : highlightedCell; _local5 = -1; switch (_arg1.keyCode){ case Keyboard.SPACE: if (isOpen){ close(); } else { open(); }; return; case Keyboard.ESCAPE: if (isOpen){ if (highlightedCell > -1){ selectedIndex = selectedIndex; }; close(); }; return; case Keyboard.UP: _local5 = Math.max(0, (_local4 - 1)); break; case Keyboard.DOWN: _local5 = Math.min((length - 1), (_local4 + 1)); break; case Keyboard.PAGE_UP: _local5 = Math.max((_local4 - _local2), 0); break; case Keyboard.PAGE_DOWN: _local5 = Math.min((_local4 + _local2), (length - 1)); break; case Keyboard.HOME: _local5 = 0; break; case Keyboard.END: _local5 = (length - 1); break; case Keyboard.ENTER: if (((_editable) && ((highlightedCell == -1)))){ editableValue = inputField.text; selectedIndex = -1; } else { if (((isOpen) && ((highlightedCell > -1)))){ editableValue = null; selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; }; dispatchEvent(new ComponentEvent(ComponentEvent.ENTER)); close(); return; default: if (editable){ break; }; _local5 = list.getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), _local4); break; }; if (_local5 > -1){ if (isOpen){ highlightCell(_local5); inputField.text = list.itemToLabel(getItemAt(_local5)); } else { highlightCell(); selectedIndex = _local5; dispatchEvent(new Event(Event.CHANGE)); }; }; } public function set dropdownWidth(_arg1:Number):void{ _dropdownWidth = _arg1; invalidate(InvalidationType.SIZE); } public function get editable():Boolean{ return (_editable); } override protected function focusInHandler(_arg1:FocusEvent):void{ super.focusInHandler(_arg1); if (editable){ stage.focus = inputField.textField; }; } protected function onStageClick(_arg1:MouseEvent):void{ if (!isOpen){ return; }; if (((!(contains((_arg1.target as DisplayObject)))) && (!(list.contains((_arg1.target as DisplayObject)))))){ if (highlightedCell != -1){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); }; } protected function handleDataChange(_arg1:DataChangeEvent):void{ invalidate(InvalidationType.DATA); } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ isKeyDown = false; } protected function onListItemUp(_arg1:MouseEvent):void{ var _local2:*; stage.removeEventListener(MouseEvent.MOUSE_UP, onListItemUp); if (((!((_arg1.target is ICellRenderer))) || (!(list.contains((_arg1.target as DisplayObject)))))){ return; }; editableValue = null; _local2 = selectedIndex; selectedIndex = _arg1.target.listData.index; if (_local2 != selectedIndex){ dispatchEvent(new Event(Event.CHANGE)); }; close(); } public function removeAll():void{ list.removeAll(); inputField.text = ""; invalidate(InvalidationType.DATA); } public function set selectedItem(_arg1:Object):void{ list.selectedItem = _arg1; invalidate(InvalidationType.SELECTED); } protected function highlightCell(_arg1:int=-1):void{ var _local2:ICellRenderer; if (highlightedCell > -1){ _local2 = list.itemToCellRenderer(getItemAt(highlightedCell)); if (_local2 != null){ _local2.setMouseState("up"); }; }; if (_arg1 == -1){ return; }; list.scrollToIndex(_arg1); list.drawNow(); _local2 = list.itemToCellRenderer(getItemAt(_arg1)); if (_local2 != null){ _local2.setMouseState("over"); highlightedCell = _arg1; }; } public function itemToLabel(_arg1:Object):String{ if (_arg1 == null){ return (""); }; return (list.itemToLabel(_arg1)); } public function addItemAt(_arg1:Object, _arg2:uint):void{ list.addItemAt(_arg1, _arg2); invalidate(InvalidationType.DATA); } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ return (list.replaceItemAt(_arg1, _arg2)); } protected function showPrompt():void{ inputField.text = _prompt; } public function set rowCount(_arg1:uint):void{ _rowCount = _arg1; invalidate(InvalidationType.SIZE); } public function get restrict():String{ return (inputField.restrict); } protected function setEmbedFonts():void{ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ inputField.textField.embedFonts = _local1; }; } public function sortItems(... _args){ return (list.sortItems.apply(list, _args)); } public function set labelField(_arg1:String):void{ list.labelField = _arg1; invalidate(InvalidationType.DATA); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; drawTextField(); } public function set prompt(_arg1:String):void{ if (_arg1 == ""){ _prompt = null; } else { _prompt = _arg1; }; invalidate(InvalidationType.STATE); } public function get length():int{ return (list.length); } protected function drawTextField():void{ inputField.setStyle("upSkin", ""); inputField.setStyle("disabledSkin", ""); inputField.enabled = enabled; inputField.editable = _editable; inputField.textField.selectable = ((enabled) && (_editable)); inputField.mouseEnabled = (inputField.mouseChildren = ((enabled) && (_editable))); inputField.focusEnabled = false; if (_editable){ inputField.addEventListener(FocusEvent.FOCUS_IN, onInputFieldFocus, false, 0, true); inputField.addEventListener(FocusEvent.FOCUS_OUT, onInputFieldFocusOut, false, 0, true); } else { inputField.removeEventListener(FocusEvent.FOCUS_IN, onInputFieldFocus); inputField.removeEventListener(FocusEvent.FOCUS_OUT, onInputFieldFocusOut); }; } protected function onInputFieldFocusOut(_arg1:FocusEvent):void{ inputField.removeEventListener(ComponentEvent.ENTER, onEnter); selectedIndex = selectedIndex; } protected function passEvent(_arg1:Event):void{ dispatchEvent(_arg1); } public function get imeMode():String{ return (inputField.imeMode); } public function get labelFunction():Function{ return (list.labelFunction); } protected function calculateAvailableHeight():Number{ var _local1:Number; _local1 = Number(getStyleValue("contentPadding")); return ((list.height - (_local1 * 2))); } public function get selectedIndex():int{ return (list.selectedIndex); } override protected function focusOutHandler(_arg1:FocusEvent):void{ isKeyDown = false; if (isOpen){ if (((!(_arg1.relatedObject)) || (!(list.contains(_arg1.relatedObject))))){ if (((!((highlightedCell == -1))) && (!((highlightedCell == selectedIndex))))){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); }; }; super.focusOutHandler(_arg1); } public function get selectedLabel():String{ if (editableValue != null){ return (editableValue); }; if (selectedIndex == -1){ return (null); }; return (itemToLabel(selectedItem)); } public function get text():String{ return (inputField.text); } protected function onListChange(_arg1:Event):void{ editableValue = null; dispatchEvent(_arg1); invalidate(InvalidationType.SELECTED); if (isKeyDown){ return; }; close(); } protected function onToggleListVisibility(_arg1:MouseEvent):void{ _arg1.stopPropagation(); dispatchEvent(_arg1); if (isOpen){ close(); } else { open(); stage.addEventListener(MouseEvent.MOUSE_UP, onListItemUp, false, 0, true); }; } override protected function draw():void{ var _local1:*; _local1 = selectedIndex; if ((((_local1 == -1)) && (((((!((prompt == null))) || (editable))) || ((length == 0)))))){ _local1 = Math.max(-1, Math.min(_local1, (length - 1))); } else { editableValue = null; _local1 = Math.max(0, Math.min(_local1, (length - 1))); }; if (list.selectedIndex != _local1){ list.selectedIndex = _local1; invalidate(InvalidationType.SELECTED, false); }; if (isInvalid(InvalidationType.STYLES)){ setStyles(); setEmbedFonts(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.STATE)){ drawTextFormat(); drawLayout(); invalidate(InvalidationType.DATA); }; if (isInvalid(InvalidationType.DATA)){ drawList(); invalidate(InvalidationType.SELECTED, true); }; if (isInvalid(InvalidationType.SELECTED)){ if ((((_local1 == -1)) && (!((editableValue == null))))){ inputField.text = editableValue; } else { if (_local1 > -1){ if (length > 0){ inputField.horizontalScrollPosition = 0; inputField.text = itemToLabel(list.selectedItem); }; } else { if ((((_local1 == -1)) && (!((_prompt == null))))){ showPrompt(); } else { inputField.text = ""; }; }; }; if (((((editable) && ((selectedIndex > -1)))) && ((stage.focus == inputField.textField)))){ inputField.setSelection(0, inputField.length); }; }; drawTextField(); super.draw(); } public function addItem(_arg1:Object):void{ list.addItem(_arg1); invalidate(InvalidationType.DATA); } public function get rowCount():uint{ return (_rowCount); } override protected function configUI():void{ super.configUI(); background = new BaseButton(); background.focusEnabled = false; copyStylesToChild(background, BACKGROUND_STYLES); background.addEventListener(MouseEvent.MOUSE_DOWN, onToggleListVisibility, false, 0, true); addChild(background); inputField = new TextInput(); inputField.focusTarget = (this as IFocusManagerComponent); inputField.focusEnabled = false; inputField.addEventListener(Event.CHANGE, onTextInput, false, 0, true); addChild(inputField); list = new List(); list.focusEnabled = false; copyStylesToChild(list, LIST_STYLES); list.addEventListener(Event.CHANGE, onListChange, false, 0, true); list.addEventListener(ListEvent.ITEM_CLICK, onListChange, false, 0, true); list.addEventListener(ListEvent.ITEM_ROLL_OUT, passEvent, false, 0, true); list.addEventListener(ListEvent.ITEM_ROLL_OVER, passEvent, false, 0, true); list.verticalScrollBar.addEventListener(Event.SCROLL, passEvent, false, 0, true); } protected function positionList():void{ var _local1:Point; _local1 = localToGlobal(new Point(0, 0)); list.x = _local1.x; if (((_local1.y + height) + list.height) > stage.stageHeight){ list.y = (_local1.y - list.height); } else { list.y = (_local1.y + height); }; } public function get value():String{ var _local1:Object; if (editableValue != null){ return (editableValue); }; _local1 = selectedItem; if (((!(_editable)) && (!((_local1.data == null))))){ return (_local1.data); }; return (itemToLabel(_local1)); } public function get prompt():String{ return (_prompt); } public function set dataProvider(_arg1:DataProvider):void{ _arg1.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true); list.dataProvider = _arg1; invalidate(InvalidationType.DATA); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; if (!_editable){ return; }; inputField.restrict = _arg1; } protected function onTextInput(_arg1:Event):void{ _arg1.stopPropagation(); if (!_editable){ return; }; editableValue = inputField.text; selectedIndex = -1; dispatchEvent(new Event(Event.CHANGE)); } protected function onInputFieldFocus(_arg1:FocusEvent):void{ inputField.addEventListener(ComponentEvent.ENTER, onEnter, false, 0, true); close(); } public function getItemAt(_arg1:uint):Object{ return (list.getItemAt(_arg1)); } override protected function initializeAccessibility():void{ if (ComboBox.createAccessibilityImplementation != null){ ComboBox.createAccessibilityImplementation(this); }; } protected function drawLayout():void{ var _local1:Number; var _local2:Number; _local1 = (getStyleValue("buttonWidth") as Number); _local2 = (getStyleValue("textPadding") as Number); background.setSize(width, height); inputField.x = (inputField.y = _local2); inputField.setSize(((width - _local1) - _local2), (height - _local2)); list.width = (isNaN(_dropdownWidth)) ? width : _dropdownWidth; background.enabled = enabled; background.drawNow(); } public function removeItem(_arg1:Object):Object{ return (list.removeItem(_arg1)); } private function addCloseListener(_arg1:Event){ removeEventListener(Event.ENTER_FRAME, addCloseListener); if (!isOpen){ return; }; stage.addEventListener(MouseEvent.MOUSE_DOWN, onStageClick, false, 0, true); } public function get dataProvider():DataProvider{ return (list.dataProvider); } public function get textField():TextInput{ return (inputField); } protected function setStyles():void{ copyStylesToChild(background, BACKGROUND_STYLES); copyStylesToChild(list, LIST_STYLES); } public function set labelFunction(_arg1:Function):void{ list.labelFunction = _arg1; invalidate(InvalidationType.DATA); } protected function drawTextFormat():void{ var _local1:TextFormat; _local1 = (getStyleValue((_enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local1 == null){ _local1 = new TextFormat(); }; inputField.textField.defaultTextFormat = _local1; inputField.textField.setTextFormat(_local1); setEmbedFonts(); } public function set selectedIndex(_arg1:int):void{ list.selectedIndex = _arg1; highlightCell(); invalidate(InvalidationType.SELECTED); } public function close():void{ highlightCell(); highlightedCell = -1; if (!isOpen){ return; }; dispatchEvent(new Event(Event.CLOSE)); stage.removeEventListener(MouseEvent.MOUSE_DOWN, onStageClick); isOpen = false; stage.removeChild(list); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, List.getStyleDefinition())); } } }//package fl.controls
Section 117
//LabelButton (fl.controls.LabelButton) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.ui.*; public class LabelButton extends BaseButton implements IFocusManagerComponent { protected var _toggle:Boolean;// = false public var textField:TextField; protected var mode:String;// = "center" protected var _labelPlacement:String;// = "right" protected var oldMouseState:String; protected var _label:String;// = "Label" protected var icon:DisplayObject; private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false}; public static var createAccessibilityImplementation:Function; override protected function draw():void{ if (textField.text != _label){ label = _label; }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); drawIcon(); drawTextFormat(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } override protected function drawLayout():void{ var _local7:Number; var _local8:Number; var _local1:Number = Number(getStyleValue("textPadding")); var _local2:String = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement; textField.height = (textField.textHeight + 4); var _local3:Number = (textField.textWidth + 4); var _local4:Number = (textField.textHeight + 4); var _local5:Number = ((icon)==null) ? 0 : (icon.width + _local1); var _local6:Number = ((icon)==null) ? 0 : (icon.height + _local1); textField.visible = (label.length > 0); if (icon != null){ icon.x = Math.round(((width - icon.width) / 2)); icon.y = Math.round(((height - icon.height) / 2)); }; if (textField.visible == false){ textField.width = 0; textField.height = 0; } else { if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){ _local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1)))); if ((height - 2) > _local4){ _local8 = _local4; } else { _local8 = (height - 2); }; _local3 = _local7; textField.width = _local3; _local4 = _local8; textField.height = _local4; textField.x = Math.round(((width - _local3) / 2)); textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0)); if (icon != null){ icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1)); }; } else { _local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1)))); _local3 = _local7; textField.width = _local3; textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0)); textField.y = Math.round(((height - textField.height) / 2)); if (icon != null){ icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1)); }; }; }; super.drawLayout(); } protected function toggleSelected(_arg1:MouseEvent):void{ selected = !(selected); dispatchEvent(new Event(Event.CHANGE, true)); } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ setMouseState(oldMouseState); oldMouseState = null; endPress(); dispatchEvent(new MouseEvent(MouseEvent.CLICK)); }; } public function get labelPlacement():String{ return (_labelPlacement); } public function get toggle():Boolean{ return (_toggle); } protected function setEmbedFont(){ var _local1:Object = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } override public function get selected():Boolean{ return ((_toggle) ? _selected : false); } override protected function configUI():void{ super.configUI(); textField = new TextField(); textField.type = TextFieldType.DYNAMIC; textField.selectable = false; addChild(textField); } override protected function initializeAccessibility():void{ if (LabelButton.createAccessibilityImplementation != null){ LabelButton.createAccessibilityImplementation(this); }; } public function set labelPlacement(_arg1:String):void{ _labelPlacement = _arg1; invalidate(InvalidationType.SIZE); } protected function drawIcon():void{ var _local1:DisplayObject = icon; var _local2:String = (enabled) ? mouseState : "disabled"; if (selected){ _local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1)); }; _local2 = (_local2 + "Icon"); var _local3:Object = getStyleValue(_local2); if (_local3 == null){ _local3 = getStyleValue("icon"); }; if (_local3 != null){ icon = getDisplayObjectInstance(_local3); }; if (icon != null){ addChildAt(icon, 1); }; if (((!((_local1 == null))) && (!((_local1 == icon))))){ removeChild(_local1); }; } public function set label(_arg1:String):void{ _label = _arg1; if (textField.text != _label){ textField.text = _label; dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE)); }; invalidate(InvalidationType.SIZE); invalidate(InvalidationType.STYLES); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ if (oldMouseState == null){ oldMouseState = mouseState; }; setMouseState("down"); startPress(); }; } public function set toggle(_arg1:Boolean):void{ if (((!(_arg1)) && (super.selected))){ selected = false; }; _toggle = _arg1; if (_toggle){ addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true); } else { removeEventListener(MouseEvent.CLICK, toggleSelected); }; invalidate(InvalidationType.STATE); } override public function set selected(_arg1:Boolean):void{ _selected = _arg1; if (_toggle){ invalidate(InvalidationType.STATE); }; } protected function drawTextFormat():void{ var _local1:Object = UIComponent.getStyleDefinition(); var _local2:TextFormat = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); var _local3:TextFormat = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); } public function get label():String{ return (_label); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition())); } } }//package fl.controls
Section 118
//List (fl.controls.List) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.utils.*; import flash.events.*; import fl.managers.*; import flash.geom.*; import flash.ui.*; public class List extends SelectableList implements IFocusManagerComponent { protected var _labelField:String;// = "label" protected var _rowHeight:Number;// = 20 protected var _cellRenderer:Object; protected var _iconField:String;// = "icon" protected var _labelFunction:Function; protected var _iconFunction:Function; private static var defaultStyles:Object = {focusRectSkin:null, focusRectPadding:null}; public static var createAccessibilityImplementation:Function; public function List(){ _rowHeight = 20; _labelField = "label"; _iconField = "icon"; super(); } public function get iconField():String{ return (_iconField); } protected function doKeySelection(_arg1:int, _arg2:Boolean, _arg3:Boolean):void{ var _local4:Boolean; var _local5:int; var _local6:Array; var _local7:int; var _local8:int; _local4 = false; if (_arg2){ _local6 = []; _local7 = lastCaretIndex; _local8 = _arg1; if (_local7 == -1){ _local7 = ((caretIndex)!=-1) ? caretIndex : _arg1; }; if (_local7 > _local8){ _local8 = _local7; _local7 = _arg1; }; _local5 = _local7; while (_local5 <= _local8) { _local6.push(_local5); _local5++; }; selectedIndices = _local6; caretIndex = _arg1; _local4 = true; } else { selectedIndex = _arg1; caretIndex = (lastCaretIndex = _arg1); _local4 = true; }; if (_local4){ dispatchEvent(new Event(Event.CHANGE)); }; invalidate(InvalidationType.DATA); } override protected function drawList():void{ var _local1:Rectangle; var _local2:uint; var _local3:uint; var _local4:uint; var _local5:Object; var _local6:ICellRenderer; var _local7:Dictionary; var _local8:Dictionary; var _local9:Boolean; var _local10:String; var _local11:Object; var _local12:Sprite; var _local13:String; listHolder.x = (listHolder.y = contentPadding); _local1 = listHolder.scrollRect; _local1.x = _horizontalScrollPosition; _local1.y = (Math.floor(_verticalScrollPosition) % rowHeight); listHolder.scrollRect = _local1; listHolder.cacheAsBitmap = useBitmapScrolling; _local2 = Math.floor((_verticalScrollPosition / rowHeight)); _local3 = Math.min(length, ((_local2 + rowCount) + 1)); _local7 = (renderedItems = new Dictionary(true)); _local4 = _local2; while (_local4 < _local3) { _local7[_dataProvider.getItemAt(_local4)] = true; _local4++; }; _local8 = new Dictionary(true); while (activeCellRenderers.length > 0) { _local6 = (activeCellRenderers.pop() as ICellRenderer); _local5 = _local6.data; if ((((_local7[_local5] == null)) || ((invalidItems[_local5] == true)))){ availableCellRenderers.push(_local6); } else { _local8[_local5] = _local6; invalidItems[_local5] = true; }; list.removeChild((_local6 as DisplayObject)); }; invalidItems = new Dictionary(true); _local4 = _local2; while (_local4 < _local3) { _local9 = false; _local5 = _dataProvider.getItemAt(_local4); if (_local8[_local5] != null){ _local9 = true; _local6 = _local8[_local5]; delete _local8[_local5]; } else { if (availableCellRenderers.length > 0){ _local6 = (availableCellRenderers.pop() as ICellRenderer); } else { _local6 = (getDisplayObjectInstance(getStyleValue("cellRenderer")) as ICellRenderer); _local12 = (_local6 as Sprite); if (_local12 != null){ _local12.addEventListener(MouseEvent.CLICK, handleCellRendererClick, false, 0, true); _local12.addEventListener(MouseEvent.ROLL_OVER, handleCellRendererMouseEvent, false, 0, true); _local12.addEventListener(MouseEvent.ROLL_OUT, handleCellRendererMouseEvent, false, 0, true); _local12.addEventListener(Event.CHANGE, handleCellRendererChange, false, 0, true); _local12.doubleClickEnabled = true; _local12.addEventListener(MouseEvent.DOUBLE_CLICK, handleCellRendererDoubleClick, false, 0, true); if (_local12["setStyle"] != null){ for (_local13 in rendererStyles) { var _local16 = _local12; _local16["setStyle"](_local13, rendererStyles[_local13]); }; }; }; }; }; list.addChild((_local6 as Sprite)); activeCellRenderers.push(_local6); _local6.y = (rowHeight * (_local4 - _local2)); _local6.setSize((availableWidth + _maxHorizontalScrollPosition), rowHeight); _local10 = itemToLabel(_local5); _local11 = null; if (_iconFunction != null){ _local11 = _iconFunction(_local5); } else { if (_iconField != null){ _local11 = _local5[_iconField]; }; }; if (!_local9){ _local6.data = _local5; }; _local6.listData = new ListData(_local10, _local11, this, _local4, _local4, 0); _local6.selected = !((_selectedIndices.indexOf(_local4) == -1)); if ((_local6 is UIComponent)){ (_local6 as UIComponent).drawNow(); }; _local4++; }; } public function get iconFunction():Function{ return (_iconFunction); } public function set iconField(_arg1:String):void{ if (_arg1 == _iconField){ return; }; _iconField = _arg1; invalidate(InvalidationType.DATA); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:int; if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.SPACE: if (caretIndex == -1){ caretIndex = 0; }; doKeySelection(caretIndex, _arg1.shiftKey, _arg1.ctrlKey); scrollToSelected(); break; default: _local2 = getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), selectedIndex); if (_local2 > -1){ selectedIndex = _local2; scrollToSelected(); }; break; }; _arg1.stopPropagation(); } override public function itemToLabel(_arg1:Object):String{ if (_labelFunction != null){ return (String(_labelFunction(_arg1))); }; return (((_arg1[_labelField])!=null) ? String(_arg1[_labelField]) : ""); } public function get labelField():String{ return (_labelField); } override protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ var _local4:int; var _local5:int; var _local6:int; _local4 = Math.max(Math.floor((calculateAvailableHeight() / rowHeight)), 1); _local5 = -1; _local6 = 0; switch (_arg1){ case Keyboard.UP: if (caretIndex > 0){ _local5 = (caretIndex - 1); }; break; case Keyboard.DOWN: if (caretIndex < (length - 1)){ _local5 = (caretIndex + 1); }; break; case Keyboard.PAGE_UP: if (caretIndex > 0){ _local5 = Math.max((caretIndex - _local4), 0); }; break; case Keyboard.PAGE_DOWN: if (caretIndex < (length - 1)){ _local5 = Math.min((caretIndex + _local4), (length - 1)); }; break; case Keyboard.HOME: if (caretIndex > 0){ _local5 = 0; }; break; case Keyboard.END: if (caretIndex < (length - 1)){ _local5 = (length - 1); }; break; }; if (_local5 >= 0){ doKeySelection(_local5, _arg2, _arg3); scrollToSelected(); }; } public function set labelField(_arg1:String):void{ if (_arg1 == _labelField){ return; }; _labelField = _arg1; invalidate(InvalidationType.DATA); } public function set rowCount(_arg1:uint):void{ var _local2:Number; var _local3:Number; _local2 = Number(getStyleValue("contentPadding")); _local3 = ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0; height = (((rowHeight * _arg1) + (2 * _local2)) + _local3); } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ list.x = -(_arg1); super.setHorizontalScrollPosition(_arg1, true); } public function set iconFunction(_arg1:Function):void{ if (_iconFunction == _arg1){ return; }; _iconFunction = _arg1; invalidate(InvalidationType.DATA); } public function get labelFunction():Function{ return (_labelFunction); } override protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ invalidate(InvalidationType.SCROLL); super.setVerticalScrollPosition(_arg1, true); } protected function calculateAvailableHeight():Number{ var _local1:Number; _local1 = Number(getStyleValue("contentPadding")); return (((height - (_local1 * 2)) - ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0)); } override protected function draw():void{ var _local1:Boolean; _local1 = !((contentHeight == (rowHeight * length))); contentHeight = (rowHeight * length); if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; if (_cellRenderer != getStyleValue("cellRenderer")){ _invalidateList(); _cellRenderer = getStyleValue("cellRenderer"); }; }; if (((isInvalid(InvalidationType.SIZE, InvalidationType.STATE)) || (_local1))){ drawLayout(); }; if (isInvalid(InvalidationType.RENDERER_STYLES)){ updateRendererStyles(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.SCROLL, InvalidationType.SELECTED)){ drawList(); }; updateChildren(); validate(); } override protected function configUI():void{ useFixedHorizontalScrolling = true; _horizontalScrollPolicy = ScrollPolicy.AUTO; _verticalScrollPolicy = ScrollPolicy.AUTO; super.configUI(); } override public function get rowCount():uint{ return (Math.ceil((calculateAvailableHeight() / rowHeight))); } override protected function initializeAccessibility():void{ if (List.createAccessibilityImplementation != null){ List.createAccessibilityImplementation(this); }; } override public function scrollToIndex(_arg1:int):void{ var _local2:uint; var _local3:uint; drawNow(); _local2 = (Math.floor(((_verticalScrollPosition + availableHeight) / rowHeight)) - 1); _local3 = Math.ceil((_verticalScrollPosition / rowHeight)); if (_arg1 < _local3){ verticalScrollPosition = (_arg1 * rowHeight); } else { if (_arg1 > _local2){ verticalScrollPosition = (((_arg1 + 1) * rowHeight) - availableHeight); }; }; } public function get rowHeight():Number{ return (_rowHeight); } public function set labelFunction(_arg1:Function):void{ if (_labelFunction == _arg1){ return; }; _labelFunction = _arg1; invalidate(InvalidationType.DATA); } public function set rowHeight(_arg1:Number):void{ _rowHeight = _arg1; invalidate(InvalidationType.SIZE); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, SelectableList.getStyleDefinition())); } } }//package fl.controls
Section 119
//ScrollBar (fl.controls.ScrollBar) package fl.controls { import fl.core.*; import flash.events.*; import fl.events.*; public class ScrollBar extends UIComponent { private var _direction:String;// = "vertical" protected var inDrag:Boolean;// = false protected var upArrow:BaseButton; private var _pageScrollSize:Number;// = 0 protected var downArrow:BaseButton; private var _pageSize:Number;// = 10 private var thumbScrollOffset:Number; private var _maxScrollPosition:Number;// = 0 private var _scrollPosition:Number;// = 0 protected var track:BaseButton; private var _minScrollPosition:Number;// = 0 private var _lineScrollSize:Number;// = 1 protected var thumb:LabelButton; protected static const THUMB_STYLES:Object = {disabledSkin:"thumbDisabledSkin", downSkin:"thumbDownSkin", overSkin:"thumbOverSkin", upSkin:"thumbUpSkin", icon:"thumbIcon", textPadding:0}; public static const WIDTH:Number = 15; protected static const DOWN_ARROW_STYLES:Object = {disabledSkin:"downArrowDisabledSkin", downSkin:"downArrowDownSkin", overSkin:"downArrowOverSkin", upSkin:"downArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const UP_ARROW_STYLES:Object = {disabledSkin:"upArrowDisabledSkin", downSkin:"upArrowDownSkin", overSkin:"upArrowOverSkin", upSkin:"upArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const TRACK_STYLES:Object = {disabledSkin:"trackDisabledSkin", downSkin:"trackDownSkin", overSkin:"trackOverSkin", upSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {downArrowDisabledSkin:"ScrollArrowDown_disabledSkin", downArrowDownSkin:"ScrollArrowDown_downSkin", downArrowOverSkin:"ScrollArrowDown_overSkin", downArrowUpSkin:"ScrollArrowDown_upSkin", thumbDisabledSkin:"ScrollThumb_upSkin", thumbDownSkin:"ScrollThumb_downSkin", thumbOverSkin:"ScrollThumb_overSkin", thumbUpSkin:"ScrollThumb_upSkin", trackDisabledSkin:"ScrollTrack_skin", trackDownSkin:"ScrollTrack_skin", trackOverSkin:"ScrollTrack_skin", trackUpSkin:"ScrollTrack_skin", upArrowDisabledSkin:"ScrollArrowUp_disabledSkin", upArrowDownSkin:"ScrollArrowUp_downSkin", upArrowOverSkin:"ScrollArrowUp_overSkin", upArrowUpSkin:"ScrollArrowUp_upSkin", thumbIcon:"ScrollBar_thumbIcon", repeatDelay:500, repeatInterval:35}; public function ScrollBar(){ _pageSize = 10; _pageScrollSize = 0; _lineScrollSize = 1; _minScrollPosition = 0; _maxScrollPosition = 0; _scrollPosition = 0; _direction = ScrollBarDirection.VERTICAL; inDrag = false; super(); setStyles(); focusEnabled = false; } public function get minScrollPosition():Number{ return (_minScrollPosition); } public function set minScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _arg1, _maxScrollPosition); } public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ var _local3:Number; _local3 = scrollPosition; _scrollPosition = Math.max(_minScrollPosition, Math.min(_maxScrollPosition, _arg1)); if (_local3 == _scrollPosition){ return; }; if (_arg2){ dispatchEvent(new ScrollEvent(_direction, (scrollPosition - _local3), scrollPosition)); }; updateThumb(); } public function set scrollPosition(_arg1:Number):void{ setScrollPosition(_arg1, true); } public function get pageScrollSize():Number{ return (((_pageScrollSize)==0) ? _pageSize : _pageScrollSize); } public function set pageSize(_arg1:Number):void{ if (_arg1 > 0){ _pageSize = _arg1; }; } public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ this.pageSize = _arg1; _minScrollPosition = _arg2; _maxScrollPosition = _arg3; if (_arg4 >= 0){ _pageScrollSize = _arg4; }; enabled = (_maxScrollPosition > _minScrollPosition); setScrollPosition(_scrollPosition, false); updateThumb(); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; downArrow.enabled = (track.enabled = (thumb.enabled = (upArrow.enabled = ((enabled) && ((_maxScrollPosition > _minScrollPosition)))))); updateThumb(); } protected function updateThumb():void{ var _local1:Number; _local1 = ((_maxScrollPosition - _minScrollPosition) + _pageSize); if ((((((track.height <= 12)) || ((_maxScrollPosition <= _minScrollPosition)))) || ((((_local1 == 0)) || (isNaN(_local1)))))){ thumb.height = 12; thumb.visible = false; } else { thumb.height = Math.max(13, ((_pageSize / _local1) * track.height)); thumb.y = (track.y + ((track.height - thumb.height) * ((_scrollPosition - _minScrollPosition) / (_maxScrollPosition - _minScrollPosition)))); thumb.visible = enabled; }; } protected function thumbPressHandler(_arg1:MouseEvent):void{ inDrag = true; thumbScrollOffset = (mouseY - thumb.y); thumb.mouseStateLocked = true; mouseChildren = false; stage.addEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler, false, 0, true); } protected function thumbReleaseHandler(_arg1:MouseEvent):void{ inDrag = false; mouseChildren = true; thumb.mouseStateLocked = false; stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag); stage.removeEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler); } public function set pageScrollSize(_arg1:Number):void{ if (_arg1 >= 0){ _pageScrollSize = _arg1; }; } protected function handleThumbDrag(_arg1:MouseEvent):void{ var _local2:Number; _local2 = Math.max(0, Math.min((track.height - thumb.height), ((mouseY - track.y) - thumbScrollOffset))); setScrollPosition((((_local2 / (track.height - thumb.height)) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition)); } public function set direction(_arg1:String):void{ var _local2:Boolean; if (_direction == _arg1){ return; }; _direction = _arg1; if (isLivePreview){ return; }; setScaleY(1); _local2 = (_direction == ScrollBarDirection.HORIZONTAL); if (((_local2) && (componentInspectorSetting))){ if (rotation == 90){ return; }; setScaleX(-1); rotation = -90; }; if (!componentInspectorSetting){ if (((_local2) && ((rotation == 0)))){ rotation = -90; setScaleX(-1); } else { if (((!(_local2)) && ((rotation == -90)))){ rotation = 0; setScaleX(1); }; }; }; invalidate(InvalidationType.SIZE); } public function set lineScrollSize(_arg1:Number):void{ if (_arg1 > 0){ _lineScrollSize = _arg1; }; } override public function get height():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.width : super.height); } protected function scrollPressHandler(_arg1:ComponentEvent):void{ var _local2:Number; var _local3:Number; _arg1.stopImmediatePropagation(); if (_arg1.currentTarget == upArrow){ setScrollPosition((_scrollPosition - _lineScrollSize)); } else { if (_arg1.currentTarget == downArrow){ setScrollPosition((_scrollPosition + _lineScrollSize)); } else { _local2 = (((track.mouseY / track.height) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition); _local3 = ((pageScrollSize)==0) ? pageSize : pageScrollSize; if (_scrollPosition < _local2){ setScrollPosition(Math.min(_local2, (_scrollPosition + _local3))); } else { if (_scrollPosition > _local2){ setScrollPosition(Math.max(_local2, (_scrollPosition - _local3))); }; }; }; }; } public function get pageSize():Number{ return (_pageSize); } public function set maxScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _minScrollPosition, _arg1); } public function get scrollPosition():Number{ return (_scrollPosition); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ var _local1:Number; if (isInvalid(InvalidationType.SIZE)){ _local1 = super.height; downArrow.move(0, Math.max(upArrow.height, (_local1 - downArrow.height))); track.setSize(WIDTH, Math.max(0, (_local1 - (downArrow.height + upArrow.height)))); updateThumb(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ setStyles(); }; downArrow.drawNow(); upArrow.drawNow(); track.drawNow(); thumb.drawNow(); validate(); } override protected function configUI():void{ super.configUI(); track = new BaseButton(); track.move(0, 14); track.useHandCursor = false; track.autoRepeat = true; track.focusEnabled = false; addChild(track); thumb = new LabelButton(); thumb.label = ""; thumb.setSize(WIDTH, 15); thumb.move(0, 15); thumb.focusEnabled = false; addChild(thumb); downArrow = new BaseButton(); downArrow.setSize(WIDTH, 14); downArrow.autoRepeat = true; downArrow.focusEnabled = false; addChild(downArrow); upArrow = new BaseButton(); upArrow.setSize(WIDTH, 14); upArrow.move(0, 0); upArrow.autoRepeat = true; upArrow.focusEnabled = false; addChild(upArrow); upArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); downArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); track.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbPressHandler, false, 0, true); enabled = false; } public function get direction():String{ return (_direction); } public function get lineScrollSize():Number{ return (_lineScrollSize); } override public function setSize(_arg1:Number, _arg2:Number):void{ if (_direction == ScrollBarDirection.HORIZONTAL){ super.setSize(_arg2, _arg1); } else { super.setSize(_arg1, _arg2); }; } public function get maxScrollPosition():Number{ return (_maxScrollPosition); } override public function get width():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.height : super.width); } protected function setStyles():void{ copyStylesToChild(downArrow, DOWN_ARROW_STYLES); copyStylesToChild(thumb, THUMB_STYLES); copyStylesToChild(track, TRACK_STYLES); copyStylesToChild(upArrow, UP_ARROW_STYLES); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 120
//ScrollBarDirection (fl.controls.ScrollBarDirection) package fl.controls { public class ScrollBarDirection { public static const HORIZONTAL:String = "horizontal"; public static const VERTICAL:String = "vertical"; } }//package fl.controls
Section 121
//ScrollPolicy (fl.controls.ScrollPolicy) package fl.controls { public class ScrollPolicy { public static const OFF:String = "off"; public static const ON:String = "on"; public static const AUTO:String = "auto"; } }//package fl.controls
Section 122
//SelectableList (fl.controls.SelectableList) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.utils.*; import flash.events.*; import fl.data.*; import fl.managers.*; import fl.events.*; import fl.containers.*; import flash.ui.*; public class SelectableList extends BaseScrollPane implements IFocusManagerComponent { protected var invalidItems:Dictionary; protected var renderedItems:Dictionary; protected var listHolder:Sprite; protected var _allowMultipleSelection:Boolean;// = false protected var lastCaretIndex:int;// = -1 protected var _selectedIndices:Array; protected var availableCellRenderers:Array; protected var list:Sprite; protected var caretIndex:int;// = -1 protected var updatedRendererStyles:Object; protected var preChangeItems:Array; protected var activeCellRenderers:Array; protected var rendererStyles:Object; protected var _verticalScrollPosition:Number; protected var _dataProvider:DataProvider; protected var _horizontalScrollPosition:Number; private var collectionItemImport:SimpleCollectionItem; protected var _selectable:Boolean;// = true private static var defaultStyles:Object = {skin:"List_skin", cellRenderer:CellRenderer, contentPadding:null, disabledAlpha:null}; public static var createAccessibilityImplementation:Function; public function SelectableList(){ _allowMultipleSelection = false; _selectable = true; caretIndex = -1; lastCaretIndex = -1; super(); activeCellRenderers = []; availableCellRenderers = []; invalidItems = new Dictionary(true); renderedItems = new Dictionary(true); _selectedIndices = []; if (dataProvider == null){ dataProvider = new DataProvider(); }; verticalScrollPolicy = ScrollPolicy.AUTO; rendererStyles = {}; updatedRendererStyles = {}; } protected function drawList():void{ } public function set allowMultipleSelection(_arg1:Boolean):void{ if (_arg1 == _allowMultipleSelection){ return; }; _allowMultipleSelection = _arg1; if (((!(_arg1)) && ((_selectedIndices.length > 1)))){ _selectedIndices = [_selectedIndices.pop()]; invalidate(InvalidationType.DATA); }; } public function sortItemsOn(_arg1:String, _arg2:Object=null){ return (_dataProvider.sortOn(_arg1, _arg2)); } public function removeItemAt(_arg1:uint):Object{ return (_dataProvider.removeItemAt(_arg1)); } public function get selectedItem():Object{ return (((_selectedIndices.length)==0) ? null : _dataProvider.getItemAt(selectedIndex)); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; }; } public function get selectable():Boolean{ return (_selectable); } public function itemToCellRenderer(_arg1:Object):ICellRenderer{ var _local2:*; var _local3:ICellRenderer; if (_arg1 != null){ for (_local2 in activeCellRenderers) { _local3 = (activeCellRenderers[_local2] as ICellRenderer); if (_local3.data == _arg1){ return (_local3); }; }; }; return (null); } public function getNextIndexAtLetter(_arg1:String, _arg2:int=-1):int{ var _local3:int; var _local4:Number; var _local5:Number; var _local6:Object; var _local7:String; if (length == 0){ return (-1); }; _arg1 = _arg1.toUpperCase(); _local3 = (length - 1); _local4 = 0; while (_local4 < _local3) { _local5 = ((_arg2 + 1) + _local4); if (_local5 > (length - 1)){ _local5 = (_local5 - length); }; _local6 = getItemAt(_local5); if (_local6 == null){ break; }; _local7 = itemToLabel(_local6); if (_local7 == null){ } else { if (_local7.charAt(0).toUpperCase() == _arg1){ return (_local5); }; }; _local4++; }; return (-1); } public function invalidateList():void{ _invalidateList(); invalidate(InvalidationType.DATA); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; list.mouseChildren = _enabled; } public function get selectedIndices():Array{ return (_selectedIndices.concat()); } public function set selectable(_arg1:Boolean):void{ if (_arg1 == _selectable){ return; }; if (!_arg1){ selectedIndices = []; }; _selectable = _arg1; } public function itemToLabel(_arg1:Object):String{ return (_arg1["label"]); } public function addItemAt(_arg1:Object, _arg2:uint):void{ _dataProvider.addItemAt(_arg1, _arg2); invalidateList(); } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ return (_dataProvider.replaceItemAt(_arg1, _arg2)); } protected function handleDataChange(_arg1:DataChangeEvent):void{ var _local2:int; var _local3:int; var _local4:String; var _local5:uint; _local2 = _arg1.startIndex; _local3 = _arg1.endIndex; _local4 = _arg1.changeType; if (_local4 == DataChangeType.INVALIDATE_ALL){ clearSelection(); invalidateList(); } else { if (_local4 == DataChangeType.INVALIDATE){ _local5 = 0; while (_local5 < _arg1.items.length) { invalidateItem(_arg1.items[_local5]); _local5++; }; } else { if (_local4 == DataChangeType.ADD){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ _selectedIndices[_local5] = (_selectedIndices[_local5] + (_local2 - _local3)); }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ if (_selectedIndices[_local5] <= _local3){ delete _selectedIndices[_local5]; } else { _selectedIndices[_local5] = (_selectedIndices[_local5] - ((_local2 - _local3) + 1)); }; }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE_ALL){ clearSelection(); } else { if (_local4 == DataChangeType.REPLACE){ } else { selectedItems = preChangeItems; preChangeItems = null; }; }; }; }; }; }; invalidate(InvalidationType.DATA); } protected function _invalidateList():void{ availableCellRenderers = []; while (activeCellRenderers.length > 0) { list.removeChild((activeCellRenderers.pop() as DisplayObject)); }; } protected function updateRendererStyles():void{ var _local1:Array; var _local2:uint; var _local3:uint; var _local4:String; _local1 = availableCellRenderers.concat(activeCellRenderers); _local2 = _local1.length; _local3 = 0; while (_local3 < _local2) { if (_local1[_local3].setStyle == null){ } else { for (_local4 in updatedRendererStyles) { _local1[_local3].setStyle(_local4, updatedRendererStyles[_local4]); }; _local1[_local3].drawNow(); }; _local3++; }; updatedRendererStyles = {}; } public function set selectedItem(_arg1:Object):void{ var _local2:int; _local2 = _dataProvider.getItemIndex(_arg1); selectedIndex = _local2; } public function sortItems(... _args){ return (_dataProvider.sort.apply(_dataProvider, _args)); } public function removeAll():void{ _dataProvider.removeAll(); } protected function handleCellRendererChange(_arg1:Event):void{ var _local2:ICellRenderer; var _local3:uint; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; _dataProvider.invalidateItemAt(_local3); } protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _horizontalScrollPosition){ return; }; _local3 = (_arg1 - _horizontalScrollPosition); _horizontalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.HORIZONTAL, _local3, _arg1)); }; } public function scrollToSelected():void{ scrollToIndex(selectedIndex); } public function invalidateItem(_arg1:Object):void{ if (renderedItems[_arg1] == null){ return; }; invalidItems[_arg1] = true; invalidate(InvalidationType.DATA); } protected function handleCellRendererClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; var _local4:int; var _local5:int; var _local6:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; if (((!(dispatchEvent(new ListEvent(ListEvent.ITEM_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)))) || (!(_selectable)))){ return; }; _local4 = selectedIndices.indexOf(_local3); if (!_allowMultipleSelection){ if (_local4 != -1){ return; }; _local2.selected = true; _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); } else { if (_arg1.shiftKey){ _local6 = ((_selectedIndices.length)>0) ? _selectedIndices[0] : _local3; _selectedIndices = []; if (_local6 > _local3){ _local5 = _local6; while (_local5 >= _local3) { _selectedIndices.push(_local5); _local5--; }; } else { _local5 = _local6; while (_local5 <= _local3) { _selectedIndices.push(_local5); _local5++; }; }; caretIndex = _local3; } else { if (_arg1.ctrlKey){ if (_local4 != -1){ _local2.selected = false; _selectedIndices.splice(_local4, 1); } else { _local2.selected = true; _selectedIndices.push(_local3); }; caretIndex = _local3; } else { _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); }; }; }; dispatchEvent(new Event(Event.CHANGE)); invalidate(InvalidationType.DATA); } public function get length():uint{ return (_dataProvider.length); } public function get allowMultipleSelection():Boolean{ return (_allowMultipleSelection); } protected function onPreChange(_arg1:DataChangeEvent):void{ switch (_arg1.changeType){ case DataChangeType.REMOVE: case DataChangeType.ADD: case DataChangeType.INVALIDATE: case DataChangeType.REMOVE_ALL: case DataChangeType.REPLACE: case DataChangeType.INVALIDATE_ALL: break; default: preChangeItems = selectedItems; break; }; } public function getRendererStyle(_arg1:String, _arg2:int=-1):Object{ return (rendererStyles[_arg1]); } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _verticalScrollPosition){ return; }; _local3 = (_arg1 - _verticalScrollPosition); _verticalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _local3, _arg1)); }; } protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } public function set selectedIndices(_arg1:Array):void{ if (!_selectable){ return; }; _selectedIndices = ((_arg1)==null) ? [] : _arg1.concat(); invalidate(InvalidationType.SELECTED); } public function get selectedIndex():int{ return (((_selectedIndices.length)==0) ? -1 : _selectedIndices[(_selectedIndices.length - 1)]); } override protected function draw():void{ super.draw(); } override protected function configUI():void{ super.configUI(); listHolder = new Sprite(); addChild(listHolder); listHolder.scrollRect = contentScrollRect; list = new Sprite(); listHolder.addChild(list); } public function addItem(_arg1:Object):void{ _dataProvider.addItem(_arg1); invalidateList(); } protected function handleCellRendererMouseEvent(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:String; _local2 = (_arg1.target as ICellRenderer); _local3 = ((_arg1.type)==MouseEvent.ROLL_OVER) ? ListEvent.ITEM_ROLL_OVER : ListEvent.ITEM_ROLL_OUT; dispatchEvent(new ListEvent(_local3, false, false, _local2.listData.column, _local2.listData.row, _local2.listData.index, _local2.data)); } public function clearRendererStyle(_arg1:String, _arg2:int=-1):void{ delete rendererStyles[_arg1]; updatedRendererStyles[_arg1] = null; invalidate(InvalidationType.RENDERER_STYLES); } protected function handleCellRendererDoubleClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; dispatchEvent(new ListEvent(ListEvent.ITEM_DOUBLE_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)); } public function get rowCount():uint{ return (0); } public function isItemSelected(_arg1:Object):Boolean{ return ((selectedItems.indexOf(_arg1) > -1)); } public function set dataProvider(_arg1:DataProvider):void{ if (_dataProvider != null){ _dataProvider.removeEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange); _dataProvider.removeEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange); }; _dataProvider = _arg1; _dataProvider.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true); _dataProvider.addEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange, false, 0, true); clearSelection(); invalidateList(); } override protected function drawLayout():void{ super.drawLayout(); contentScrollRect = listHolder.scrollRect; contentScrollRect.width = availableWidth; contentScrollRect.height = availableHeight; listHolder.scrollRect = contentScrollRect; } public function getItemAt(_arg1:uint):Object{ return (_dataProvider.getItemAt(_arg1)); } override protected function initializeAccessibility():void{ if (SelectableList.createAccessibilityImplementation != null){ SelectableList.createAccessibilityImplementation(this); }; } public function scrollToIndex(_arg1:int):void{ } public function removeItem(_arg1:Object):Object{ return (_dataProvider.removeItem(_arg1)); } public function get dataProvider():DataProvider{ return (_dataProvider); } public function set maxHorizontalScrollPosition(_arg1:Number):void{ _maxHorizontalScrollPosition = _arg1; invalidate(InvalidationType.SIZE); } public function setRendererStyle(_arg1:String, _arg2:Object, _arg3:uint=0):void{ if (rendererStyles[_arg1] == _arg2){ return; }; updatedRendererStyles[_arg1] = _arg2; rendererStyles[_arg1] = _arg2; invalidate(InvalidationType.RENDERER_STYLES); } public function invalidateItemAt(_arg1:uint):void{ var _local2:Object; _local2 = _dataProvider.getItemAt(_arg1); if (_local2 != null){ invalidateItem(_local2); }; } public function set selectedItems(_arg1:Array):void{ var _local2:Array; var _local3:uint; var _local4:int; if (_arg1 == null){ selectedIndices = null; return; }; _local2 = []; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _dataProvider.getItemIndex(_arg1[_local3]); if (_local4 != -1){ _local2.push(_local4); }; _local3++; }; selectedIndices = _local2; } public function clearSelection():void{ selectedIndex = -1; } override public function get maxHorizontalScrollPosition():Number{ return (_maxHorizontalScrollPosition); } public function get selectedItems():Array{ var _local1:Array; var _local2:uint; _local1 = []; _local2 = 0; while (_local2 < _selectedIndices.length) { _local1.push(_dataProvider.getItemAt(_selectedIndices[_local2])); _local2++; }; return (_local1); } public function set selectedIndex(_arg1:int):void{ selectedIndices = ((_arg1)==-1) ? null : [_arg1]; } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseScrollPane.getStyleDefinition())); } } }//package fl.controls
Section 123
//TextInput (fl.controls.TextInput) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.ui.*; public class TextInput extends UIComponent implements IFocusManagerComponent { protected var _html:Boolean;// = false protected var background:DisplayObject; protected var _savedHTML:String; protected var _editable:Boolean;// = true public var textField:TextField; private static var defaultStyles:Object = {upSkin:"TextInput_upSkin", disabledSkin:"TextInput_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:0, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function set alwaysShowSelection(_arg1:Boolean):void{ textField.alwaysShowSelection = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; updateTextFieldType(); } public function get imeMode():String{ return (_imeMode); } protected function handleChange(_arg1:Event):void{ _arg1.stopPropagation(); dispatchEvent(new Event(Event.CHANGE, true)); } public function set imeMode(_arg1:String):void{ _imeMode = _arg1; } protected function setEmbedFont(){ var _local1:Object = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } protected function drawLayout():void{ var _local1:Number = Number(getStyleValue("textPadding")); if (background != null){ background.width = width; background.height = height; }; textField.width = (width - (2 * _local1)); textField.height = (height - (2 * _local1)); textField.x = (textField.y = _local1); } public function set condenseWhite(_arg1:Boolean):void{ textField.condenseWhite = _arg1; } public function get textWidth():Number{ return (textField.textWidth); } override protected function focusOutHandler(_arg1:FocusEvent):void{ super.focusOutHandler(_arg1); if (editable){ setIMEMode(false); }; } override public function setFocus():void{ stage.focus = textField; } public function set displayAsPassword(_arg1:Boolean):void{ textField.displayAsPassword = _arg1; } protected function drawBackground():void{ var _local1:DisplayObject = background; var _local2:String = (enabled) ? "upSkin" : "disabledSkin"; background = getDisplayObjectInstance(getStyleValue(_local2)); if (background == null){ return; }; addChildAt(background, 0); if (((((!((_local1 == null))) && (!((_local1 == background))))) && (contains(_local1)))){ removeChild(_local1); }; } public function get text():String{ return (textField.text); } public function set maxChars(_arg1:int):void{ textField.maxChars = _arg1; } public function set horizontalScrollPosition(_arg1:int):void{ textField.scrollH = _arg1; } override protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((((_arg1 == textField)) || (super.isOurFocus(_arg1)))); } public function get textHeight():Number{ return (textField.textHeight); } public function get restrict():String{ return (textField.restrict); } public function get alwaysShowSelection():Boolean{ return (textField.alwaysShowSelection); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ var _local1:Object; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawTextFormat(); drawBackground(); _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; updateTextFieldType(); } public function setSelection(_arg1:int, _arg2:int):void{ textField.setSelection(_arg1, _arg2); } public function get condenseWhite():Boolean{ return (textField.condenseWhite); } public function get displayAsPassword():Boolean{ return (textField.displayAsPassword); } public function get selectionBeginIndex():int{ return (textField.selectionBeginIndex); } override protected function configUI():void{ super.configUI(); tabChildren = true; textField = new TextField(); addChild(textField); updateTextFieldType(); textField.addEventListener(TextEvent.TEXT_INPUT, handleTextInput, false, 0, true); textField.addEventListener(Event.CHANGE, handleChange, false, 0, true); textField.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown, false, 0, true); } public function get maxChars():int{ return (textField.maxChars); } public function set text(_arg1:String):void{ textField.text = _arg1; _html = false; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } protected function updateTextFieldType():void{ textField.type = (((enabled) && (editable))) ? TextFieldType.INPUT : TextFieldType.DYNAMIC; textField.selectable = enabled; } protected function handleKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ENTER){ dispatchEvent(new ComponentEvent(ComponentEvent.ENTER, true)); }; } public function get horizontalScrollPosition():int{ return (textField.scrollH); } public function get selectionEndIndex():int{ return (textField.selectionEndIndex); } public function get editable():Boolean{ return (_editable); } public function get maxHorizontalScrollPosition():int{ return (textField.maxScrollH); } public function appendText(_arg1:String):void{ textField.appendText(_arg1); } protected function drawTextFormat():void{ var _local1:Object = UIComponent.getStyleDefinition(); var _local2:TextFormat = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); var _local3:TextFormat = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); if (_html){ textField.htmlText = _savedHTML; }; } public function get length():int{ return (textField.length); } public function set htmlText(_arg1:String):void{ if (_arg1 == ""){ text = ""; return; }; _html = true; _savedHTML = _arg1; textField.htmlText = _arg1; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } protected function handleTextInput(_arg1:TextEvent):void{ _arg1.stopPropagation(); dispatchEvent(new TextEvent(TextEvent.TEXT_INPUT, true, false, _arg1.text)); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; textField.restrict = _arg1; } public function getLineMetrics(_arg1:int):TextLineMetrics{ return (textField.getLineMetrics(_arg1)); } override public function drawFocus(_arg1:Boolean):void{ if (focusTarget != null){ focusTarget.drawFocus(_arg1); return; }; super.drawFocus(_arg1); } override protected function focusInHandler(_arg1:FocusEvent):void{ if (_arg1.target == this){ stage.focus = textField; }; var _local2:IFocusManager = focusManager; if (((editable) && (_local2))){ _local2.showFocusIndicator = true; if (((textField.selectable) && ((textField.selectionBeginIndex == textField.selectionBeginIndex)))){ setSelection(0, textField.length); }; }; super.focusInHandler(_arg1); if (editable){ setIMEMode(true); }; } public function get htmlText():String{ return (textField.htmlText); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 124
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 125
//InvalidationType (fl.core.InvalidationType) package fl.core { public class InvalidationType { public static const SIZE:String = "size"; public static const ALL:String = "all"; public static const DATA:String = "data"; public static const SCROLL:String = "scroll"; public static const STATE:String = "state"; public static const STYLES:String = "styles"; public static const SELECTED:String = "selected"; public static const RENDERER_STYLES:String = "rendererStyles"; } }//package fl.core
Section 126
//UIComponent (fl.core.UIComponent) package fl.core { import flash.display.*; import flash.utils.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.system.*; public class UIComponent extends Sprite { protected var _x:Number; protected var _enabled:Boolean;// = true protected var callLaterMethods:Dictionary; private var _mouseFocusEnabled:Boolean;// = true private var tempText:TextField; private var _focusEnabled:Boolean;// = true protected var startHeight:Number; protected var _height:Number; protected var invalidateFlag:Boolean;// = false protected var _oldIMEMode:String;// = null protected var _inspector:Boolean;// = false protected var startWidth:Number; public var focusTarget:IFocusManagerComponent; protected var errorCaught:Boolean;// = false protected var invalidHash:Object; protected var sharedStyles:Object; protected var uiFocusRect:DisplayObject; protected var isLivePreview:Boolean;// = false protected var _imeMode:String;// = null protected var _width:Number; protected var instanceStyles:Object; public var version:String;// = "3.0.0.16" protected var isFocused:Boolean;// = false protected var _y:Number; public static var inCallLaterPhase:Boolean = false; private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)}; public static var createAccessibilityImplementation:Function; private static var focusManagers:Dictionary = new Dictionary(false); public function UIComponent(){ instanceStyles = {}; sharedStyles = {}; invalidHash = {}; callLaterMethods = new Dictionary(); StyleManager.registerInstance(this); configUI(); invalidate(InvalidationType.ALL); tabEnabled = (this is IFocusManagerComponent); focusRect = false; if (tabEnabled){ addEventListener(FocusEvent.FOCUS_IN, focusInHandler); addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler); addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); }; initializeFocusManager(); addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true); } public function getStyle(_arg1:String):Object{ return (instanceStyles[_arg1]); } protected function checkLivePreview():Boolean{ var className:String; if (parent == null){ return (false); }; try { className = getQualifiedClassName(parent); } catch(e:Error) { }; return ((className == "fl.livepreview::LivePreviewParent")); } private function callLaterDispatcher(_arg1:Event):void{ var _local3:Object; if (_arg1.type == Event.ADDED_TO_STAGE){ removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher); stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); return; }; _arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher); if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); return; }; inCallLaterPhase = true; var _local2:Dictionary = callLaterMethods; for (_local3 in _local2) { _local3(); delete _local2[_local3]; }; inCallLaterPhase = false; } protected function validate():void{ invalidHash = {}; } protected function focusOutHandler(_arg1:FocusEvent):void{ if (isOurFocus((_arg1.target as DisplayObject))){ drawFocus(false); isFocused = false; }; } public function set mouseFocusEnabled(_arg1:Boolean):void{ _mouseFocusEnabled = _arg1; } public function getFocus():InteractiveObject{ if (stage){ return (stage.focus); }; return (null); } override public function get height():Number{ return (_height); } private function addedHandler(_arg1:Event):void{ removeEventListener("addedToStage", addedHandler); initializeFocusManager(); } protected function getStyleValue(_arg1:String):Object{ return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]); } public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{ invalidHash[_arg1] = true; if (_arg2){ this.callLater(draw); }; } protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((_arg1 == this)); } public function get enabled():Boolean{ return (_enabled); } protected function getScaleX():Number{ return (super.scaleX); } protected function getScaleY():Number{ return (super.scaleY); } public function get focusEnabled():Boolean{ return (_focusEnabled); } protected function afterComponentParameters():void{ } override public function get scaleY():Number{ return ((height / startHeight)); } protected function setIMEMode(_arg1:Boolean){ var enabled = _arg1; if (_imeMode != null){ if (enabled){ IME.enabled = true; _oldIMEMode = IME.conversionMode; try { if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _imeMode; }; errorCaught = false; } catch(e:Error) { errorCaught = true; throw (new Error(("IME mode not supported: " + _imeMode))); }; } else { if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _oldIMEMode; }; IME.enabled = false; }; }; } protected function draw():void{ if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } override public function set height(_arg1:Number):void{ if (_height == _arg1){ return; }; setSize(width, _arg1); } protected function configUI():void{ isLivePreview = checkLivePreview(); var _local1:Number = rotation; rotation = 0; var _local2:Number = super.width; var _local3:Number = super.height; var _local4 = 1; super.scaleY = _local4; super.scaleX = _local4; setSize(_local2, _local3); move(super.x, super.y); rotation = _local1; startWidth = _local2; startHeight = _local3; if (numChildren > 0){ removeChildAt(0); }; } protected function setScaleY(_arg1:Number):void{ super.scaleY = _arg1; } override public function get scaleX():Number{ return ((width / startWidth)); } protected function setScaleX(_arg1:Number):void{ super.scaleX = _arg1; } private function initializeFocusManager():void{ if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true); } else { createFocusManager(); }; } protected function keyDownHandler(_arg1:KeyboardEvent):void{ } public function set focusManager(_arg1:IFocusManager):void{ UIComponent.focusManagers[this] = _arg1; } public function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } protected function isInvalid(_arg1:String, ... _args):Boolean{ if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){ return (true); }; while (_args.length > 0) { if (invalidHash[_args.pop()]){ return (true); }; }; return (false); } public function setStyle(_arg1:String, _arg2:Object):void{ if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; instanceStyles[_arg1] = _arg2; invalidate(InvalidationType.STYLES); } override public function get visible():Boolean{ return (super.visible); } protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (isOurFocus((_arg1.target as DisplayObject))){ _local2 = focusManager; if (((_local2) && (_local2.showFocusIndicator))){ drawFocus(true); isFocused = true; }; }; } public function get componentInspectorSetting():Boolean{ return (_inspector); } override public function get x():Number{ return ((isNaN(_x)) ? super.x : _x); } override public function get y():Number{ return ((isNaN(_y)) ? super.y : _y); } public function set enabled(_arg1:Boolean):void{ if (_arg1 == _enabled){ return; }; _enabled = _arg1; invalidate(InvalidationType.STATE); } public function setSize(_arg1:Number, _arg2:Number):void{ _width = _arg1; _height = _arg2; invalidate(InvalidationType.SIZE); dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false)); } protected function keyUpHandler(_arg1:KeyboardEvent):void{ } public function setSharedStyle(_arg1:String, _arg2:Object):void{ if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; sharedStyles[_arg1] = _arg2; if (instanceStyles[_arg1] == null){ invalidate(InvalidationType.STYLES); }; } public function set focusEnabled(_arg1:Boolean):void{ _focusEnabled = _arg1; } override public function set width(_arg1:Number):void{ if (_width == _arg1){ return; }; setSize(_arg1, height); } public function setFocus():void{ if (stage){ stage.focus = this; }; } override public function set scaleX(_arg1:Number):void{ setSize((startWidth * _arg1), height); } public function get mouseFocusEnabled():Boolean{ return (_mouseFocusEnabled); } override public function set scaleY(_arg1:Number):void{ setSize(width, (startHeight * _arg1)); } protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{ var skin = _arg1; var classDef:Object; if ((skin is Class)){ return ((new (skin) as DisplayObject)); }; if ((skin is DisplayObject)){ (skin as DisplayObject).x = 0; (skin as DisplayObject).y = 0; return ((skin as DisplayObject)); }; try { classDef = getDefinitionByName(skin.toString()); } catch(e:Error) { try { classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object); } catch(e:Error) { }; }; if (classDef == null){ return (null); }; return ((new (classDef) as DisplayObject)); } protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{ var _local3:String; for (_local3 in _arg2) { _arg1.setStyle(_local3, getStyleValue(_arg2[_local3])); }; } protected function initializeAccessibility():void{ if (UIComponent.createAccessibilityImplementation != null){ UIComponent.createAccessibilityImplementation(this); }; } public function get focusManager():IFocusManager{ var _local1:DisplayObject = this; while (_local1) { if (UIComponent.focusManagers[_local1] != null){ return (IFocusManager(UIComponent.focusManagers[_local1])); }; _local1 = _local1.parent; }; return (null); } override public function get width():Number{ return (_width); } protected function beforeComponentParameters():void{ } protected function callLater(_arg1:Function):void{ if (inCallLaterPhase){ return; }; callLaterMethods[_arg1] = true; if (stage != null){ stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); } else { addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); }; } public function move(_arg1:Number, _arg2:Number):void{ _x = _arg1; _y = _arg2; super.x = Math.round(_arg1); super.y = Math.round(_arg2); dispatchEvent(new ComponentEvent(ComponentEvent.MOVE)); } public function validateNow():void{ invalidate(InvalidationType.ALL, false); draw(); } override public function set visible(_arg1:Boolean):void{ if (super.visible == _arg1){ return; }; super.visible = _arg1; var _local2:String = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE; dispatchEvent(new ComponentEvent(_local2, true)); } protected function createFocusManager():void{ if (focusManagers[stage] == null){ focusManagers[stage] = new FocusManager(stage); }; } protected function hookAccessibility(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, hookAccessibility); initializeAccessibility(); } public function set componentInspectorSetting(_arg1:Boolean):void{ _inspector = _arg1; if (_inspector){ beforeComponentParameters(); } else { afterComponentParameters(); }; } override public function set y(_arg1:Number):void{ move(_x, _arg1); } public function drawFocus(_arg1:Boolean):void{ var _local2:Number; isFocused = _arg1; if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){ removeChild(uiFocusRect); uiFocusRect = null; }; if (_arg1){ uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite); if (uiFocusRect == null){ return; }; _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = -(_local2); uiFocusRect.y = -(_local2); uiFocusRect.width = (width + (_local2 * 2)); uiFocusRect.height = (height + (_local2 * 2)); addChildAt(uiFocusRect, 0); }; } override public function set x(_arg1:Number):void{ move(_arg1, _y); } public function drawNow():void{ draw(); } public static function getStyleDefinition():Object{ return (defaultStyles); } public static function mergeStyles(... _args):Object{ var _local5:Object; var _local6:String; var _local2:Object = {}; var _local3:uint = _args.length; var _local4:uint; while (_local4 < _local3) { _local5 = _args[_local4]; for (_local6 in _local5) { if (_local2[_local6] != null){ } else { _local2[_local6] = _args[_local4][_local6]; }; }; _local4++; }; return (_local2); } } }//package fl.core
Section 127
//DataProvider (fl.data.DataProvider) package fl.data { import flash.events.*; import fl.events.*; public class DataProvider extends EventDispatcher { protected var data:Array; public function DataProvider(_arg1:Object=null){ if (_arg1 == null){ data = []; } else { data = getDataFromObject(_arg1); }; } protected function dispatchPreChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.PRE_DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } public function invalidateItemAt(_arg1:int):void{ checkIndex(_arg1, (data.length - 1)); dispatchChangeEvent(DataChangeType.INVALIDATE, [data[_arg1]], _arg1, _arg1); } public function getItemIndex(_arg1:Object):int{ return (data.indexOf(_arg1)); } protected function getDataFromObject(_arg1:Object):Array{ var _local2:Array; var _local3:Array; var _local4:uint; var _local5:Object; var _local6:XML; var _local7:XMLList; var _local8:XML; var _local9:XMLList; var _local10:XML; var _local11:XMLList; var _local12:XML; if ((_arg1 is Array)){ _local3 = (_arg1 as Array); if (_local3.length > 0){ if ((((_local3[0] is String)) || ((_local3[0] is Number)))){ _local2 = []; _local4 = 0; while (_local4 < _local3.length) { _local5 = {label:String(_local3[_local4]), data:_local3[_local4]}; _local2.push(_local5); _local4++; }; return (_local2); }; }; return (_arg1.concat()); } else { if ((_arg1 is DataProvider)){ return (_arg1.toArray()); }; if ((_arg1 is XML)){ _local6 = (_arg1 as XML); _local2 = []; _local7 = _local6.*; for each (_local8 in _local7) { _arg1 = {}; _local9 = _local8.attributes(); for each (_local10 in _local9) { _arg1[_local10.localName()] = _local10.toString(); }; _local11 = _local8.*; for each (_local12 in _local11) { if (_local12.hasSimpleContent()){ _arg1[_local12.localName()] = _local12.toString(); }; }; _local2.push(_arg1); }; return (_local2); //unresolved jump }; }; throw (new ((!NULL! + !NULL!) + " to Array or DataProvider.").TypeError(!NULL!)); } public function removeItemAt(_arg1:uint):Object{ var _local2:Array; checkIndex(_arg1, (data.length - 1)); dispatchPreChangeEvent(DataChangeType.REMOVE, data.slice(_arg1, (_arg1 + 1)), _arg1, _arg1); _local2 = data.splice(_arg1, 1); dispatchChangeEvent(DataChangeType.REMOVE, _local2, _arg1, _arg1); return (_local2[0]); } public function addItem(_arg1:Object):void{ dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); data.push(_arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); } public function sortOn(_arg1:Object, _arg2:Object=null){ var _local3:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local3 = data.sortOn(_arg1, _arg2); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local3); } public function sort(... _args){ var _local2:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local2 = data.sort.apply(data, _args); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local2); } public function addItems(_arg1:Object):void{ addItemsAt(_arg1, data.length); } public function concat(_arg1:Object):void{ addItems(_arg1); } public function clone():DataProvider{ return (new DataProvider(data)); } public function toArray():Array{ return (data.concat()); } public function get length():uint{ return (data.length); } public function addItemAt(_arg1:Object, _arg2:uint):void{ checkIndex(_arg2, data.length); dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); data.splice(_arg2, 0, _arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); } public function getItemAt(_arg1:uint):Object{ checkIndex(_arg1, (data.length - 1)); return (data[_arg1]); } override public function toString():String{ return ((("DataProvider [" + data.join(" , ")) + "]")); } public function invalidateItem(_arg1:Object):void{ var _local2:uint; _local2 = getItemIndex(_arg1); if (_local2 == -1){ return; }; invalidateItemAt(_local2); } protected function dispatchChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } protected function checkIndex(_arg1:int, _arg2:int):void{ if ((((_arg1 > _arg2)) || ((_arg1 < 0)))){ throw (new RangeError((((("DataProvider index (" + _arg1) + ") is not in acceptable range (0 - ") + _arg2) + ")"))); }; } public function addItemsAt(_arg1:Object, _arg2:uint):void{ var _local3:Array; checkIndex(_arg2, data.length); _local3 = getDataFromObject(_arg1); dispatchPreChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); data.splice.apply(data, [_arg2, 0].concat(_local3)); dispatchChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); } public function replaceItem(_arg1:Object, _arg2:Object):Object{ var _local3:int; _local3 = getItemIndex(_arg2); if (_local3 != -1){ return (replaceItemAt(_arg1, _local3)); }; return (null); } public function removeItem(_arg1:Object):Object{ var _local2:int; _local2 = getItemIndex(_arg1); if (_local2 != -1){ return (removeItemAt(_local2)); }; return (null); } public function merge(_arg1:Object):void{ var _local2:Array; var _local3:uint; var _local4:uint; var _local5:uint; var _local6:Object; _local2 = getDataFromObject(_arg1); _local3 = _local2.length; _local4 = data.length; dispatchPreChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); _local5 = 0; while (_local5 < _local3) { _local6 = _local2[_local5]; if (getItemIndex(_local6) == -1){ data.push(_local6); }; _local5++; }; if (data.length > _local4){ dispatchChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); } else { dispatchChangeEvent(DataChangeType.ADD, [], -1, -1); }; } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ var _local3:Array; checkIndex(_arg2, (data.length - 1)); _local3 = [data[_arg2]]; dispatchPreChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); data[_arg2] = _arg1; dispatchChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); return (_local3[0]); } public function invalidate():void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, DataChangeType.INVALIDATE_ALL, data.concat(), 0, data.length)); } public function removeAll():void{ var _local1:Array; _local1 = data.concat(); dispatchPreChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); data = []; dispatchChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); } } }//package fl.data
Section 128
//SimpleCollectionItem (fl.data.SimpleCollectionItem) package fl.data { public dynamic class SimpleCollectionItem { public var label:String; public var data:String; public function toString():String{ return ((((("[SimpleCollectionItem: " + label) + ",") + data) + "]")); } } }//package fl.data
Section 129
//ComponentEvent (fl.events.ComponentEvent) package fl.events { import flash.events.*; public class ComponentEvent extends Event { public static const HIDE:String = "hide"; public static const BUTTON_DOWN:String = "buttonDown"; public static const MOVE:String = "move"; public static const RESIZE:String = "resize"; public static const ENTER:String = "enter"; public static const LABEL_CHANGE:String = "labelChange"; public static const SHOW:String = "show"; public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("ComponentEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new ComponentEvent(type, bubbles, cancelable)); } } }//package fl.events
Section 130
//DataChangeEvent (fl.events.DataChangeEvent) package fl.events { import flash.events.*; public class DataChangeEvent extends Event { protected var _items:Array; protected var _endIndex:uint; protected var _changeType:String; protected var _startIndex:uint; public static const PRE_DATA_CHANGE:String = "preDataChange"; public static const DATA_CHANGE:String = "dataChange"; public function DataChangeEvent(_arg1:String, _arg2:String, _arg3:Array, _arg4:int=-1, _arg5:int=-1):void{ super(_arg1); _changeType = _arg2; _startIndex = _arg4; _items = _arg3; _endIndex = ((_arg5)==-1) ? _startIndex : _arg5; } public function get changeType():String{ return (_changeType); } public function get startIndex():uint{ return (_startIndex); } public function get items():Array{ return (_items); } override public function clone():Event{ return (new DataChangeEvent(type, _changeType, _items, _startIndex, _endIndex)); } override public function toString():String{ return (formatToString("DataChangeEvent", "type", "changeType", "startIndex", "endIndex", "bubbles", "cancelable")); } public function get endIndex():uint{ return (_endIndex); } } }//package fl.events
Section 131
//DataChangeType (fl.events.DataChangeType) package fl.events { public class DataChangeType { public static const ADD:String = "add"; public static const REMOVE:String = "remove"; public static const REMOVE_ALL:String = "removeAll"; public static const CHANGE:String = "change"; public static const REPLACE:String = "replace"; public static const INVALIDATE:String = "invalidate"; public static const INVALIDATE_ALL:String = "invalidateAll"; public static const SORT:String = "sort"; } }//package fl.events
Section 132
//ListEvent (fl.events.ListEvent) package fl.events { import flash.events.*; public class ListEvent extends Event { protected var _index:int; protected var _item:Object; protected var _columnIndex:int; protected var _rowIndex:int; public static const ITEM_DOUBLE_CLICK:String = "itemDoubleClick"; public static const ITEM_ROLL_OUT:String = "itemRollOut"; public static const ITEM_ROLL_OVER:String = "itemRollOver"; public static const ITEM_CLICK:String = "itemClick"; public function ListEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:int=-1, _arg5:int=-1, _arg6:int=-1, _arg7:Object=null){ super(_arg1, _arg2, _arg3); _rowIndex = _arg5; _columnIndex = _arg4; _index = _arg6; _item = _arg7; } public function get rowIndex():Object{ return (_rowIndex); } public function get index():int{ return (_index); } public function get item():Object{ return (_item); } public function get columnIndex():int{ return (_columnIndex); } override public function clone():Event{ return (new ListEvent(type, bubbles, cancelable, _columnIndex, _rowIndex)); } override public function toString():String{ return (formatToString("ListEvent", "type", "bubbles", "cancelable", "columnIndex", "rowIndex", "index", "item")); } } }//package fl.events
Section 133
//ScrollEvent (fl.events.ScrollEvent) package fl.events { import flash.events.*; public class ScrollEvent extends Event { private var _position:Number; private var _direction:String; private var _delta:Number; public static const SCROLL:String = "scroll"; public function ScrollEvent(_arg1:String, _arg2:Number, _arg3:Number){ super(ScrollEvent.SCROLL, false, false); _direction = _arg1; _delta = _arg2; _position = _arg3; } override public function clone():Event{ return (new ScrollEvent(_direction, _delta, _position)); } public function get position():Number{ return (_position); } override public function toString():String{ return (formatToString("ScrollEvent", "type", "bubbles", "cancelable", "direction", "delta", "position")); } public function get delta():Number{ return (_delta); } public function get direction():String{ return (_direction); } } }//package fl.events
Section 134
//FocusManager (fl.managers.FocusManager) package fl.managers { import fl.core.*; import fl.controls.*; import flash.display.*; import flash.utils.*; import flash.events.*; import flash.text.*; import flash.ui.*; public class FocusManager implements IFocusManager { private var focusableObjects:Dictionary; private var _showFocusIndicator:Boolean;// = true private var defButton:Button; private var focusableCandidates:Array; private var _form:DisplayObjectContainer; private var _defaultButtonEnabled:Boolean;// = true private var activated:Boolean;// = false private var _defaultButton:Button; private var calculateCandidates:Boolean;// = true private var lastFocus:InteractiveObject; private var lastAction:String; public function FocusManager(_arg1:DisplayObjectContainer){ focusableObjects = new Dictionary(true); if (_arg1 != null){ _form = _arg1; addFocusables(DisplayObject(_arg1)); _arg1.addEventListener(Event.ADDED, addedHandler); _arg1.addEventListener(Event.REMOVED, removedHandler); activate(); }; } public function get showFocusIndicator():Boolean{ return (_showFocusIndicator); } private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{ var _local7:DisplayObject; var _local8:IFocusManagerGroup; var _local9:int; var _local10:DisplayObject; var _local11:IFocusManagerGroup; var _local5:int = focusableCandidates.length; var _local6:int = _arg1; while (true) { if (_arg2){ _arg1--; } else { _arg1++; }; if (_arg3){ if (((_arg2) && ((_arg1 < 0)))){ break; }; if (((!(_arg2)) && ((_arg1 == _local5)))){ break; }; } else { _arg1 = ((_arg1 + _local5) % _local5); if (_local6 == _arg1){ break; }; }; if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){ _local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1])); if ((_local7 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local7); _local9 = 0; while (_local9 < focusableCandidates.length) { _local10 = focusableCandidates[_local9]; if ((_local10 is IFocusManagerGroup)){ _local11 = IFocusManagerGroup(_local10); if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){ _arg1 = _local9; break; }; }; _local9++; }; }; return (_arg1); }; }; return (_arg1); } private function mouseFocusChangeHandler(_arg1:FocusEvent):void{ if ((_arg1.relatedObject is TextField)){ return; }; _arg1.preventDefault(); } public function set form(_arg1:DisplayObjectContainer):void{ _form = _arg1; } private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{ var focusable:IFocusManagerComponent; var io:InteractiveObject; var doc:DisplayObjectContainer; var i:int; var child:DisplayObject; var o = _arg1; var skipTopLevel = _arg2; if (!skipTopLevel){ if ((o is IFocusManagerComponent)){ focusable = IFocusManagerComponent(o); if (focusable.focusEnabled){ if (((focusable.tabEnabled) && (isTabVisible(o)))){ focusableObjects[o] = true; calculateCandidates = true; }; o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; } else { if ((o is InteractiveObject)){ io = (o as InteractiveObject); if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){ focusableObjects[io] = true; calculateCandidates = true; }; io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; }; }; if ((o is DisplayObjectContainer)){ doc = DisplayObjectContainer(o); o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){ i = 0; while (i < doc.numChildren) { try { child = doc.getChildAt(i); if (child != null){ addFocusables(doc.getChildAt(i)); }; } catch(error:SecurityError) { }; i = (i + 1); }; }; }; } private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{ return (_arg1.getChildIndex(_arg2)); } public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{ var _local2:InteractiveObject = _arg1; while (_arg1) { if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){ return (_arg1); }; _arg1 = _arg1.parent; }; return (_local2); } private function focusOutHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject = (_arg1.target as InteractiveObject); } private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{ var _local3:IFocusManagerGroup; if (!isEnabledAndVisible(_arg1)){ return (false); }; if ((_arg1 is IFocusManagerGroup)){ _local3 = IFocusManagerGroup(_arg1); if (_arg2 == _local3.groupName){ return (false); }; }; return (true); } private function setFocusToNextObject(_arg1:FocusEvent):void{ if (!hasFocusableObjects()){ return; }; var _local2:InteractiveObject = getNextFocusManagerComponent(_arg1.shiftKey); if (_local2){ setFocus(_local2); }; } private function sortFocusableObjectsTabIndex():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){ focusableCandidates.push(_local2); }; }; focusableCandidates.sort(sortByTabIndex); } private function removeFocusables(_arg1:DisplayObject):void{ var _local2:Object; var _local3:DisplayObject; if ((_arg1 is DisplayObjectContainer)){ _arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); _arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); for (_local2 in focusableObjects) { _local3 = DisplayObject(_local2); if (DisplayObjectContainer(_arg1).contains(_local3)){ if (_local3 == lastFocus){ lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local2]; calculateCandidates = true; }; }; }; } private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{ while (_arg1 != InteractiveObject(form)) { if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){ return (_arg1); }; _arg1 = _arg1.parent; if (_arg1 == null){ break; }; }; return (null); } public function sendDefaultButtonEvent():void{ defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); } private function addedHandler(_arg1:Event):void{ var _local2:DisplayObject = DisplayObject(_arg1.target); if (_local2.stage){ addFocusables(DisplayObject(_arg1.target)); }; } private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{ var _local3:TextField; var _local4:SimpleButton; var _local2:DisplayObjectContainer = DisplayObject(form).parent; while (_arg1 != _local2) { if ((_arg1 is UIComponent)){ if (!UIComponent(_arg1).enabled){ return (false); }; } else { if ((_arg1 is TextField)){ _local3 = TextField(_arg1); if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){ return (false); }; } else { if ((_arg1 is SimpleButton)){ _local4 = SimpleButton(_arg1); if (!_local4.enabled){ return (false); }; }; }; }; if (!_arg1.visible){ return (false); }; _arg1 = _arg1.parent; }; return (true); } private function tabChildrenChangeHandler(_arg1:Event):void{ if (_arg1.target != _arg1.currentTarget){ return; }; calculateCandidates = true; var _local2:DisplayObjectContainer = DisplayObjectContainer(_arg1.target); if (_local2.tabChildren){ addFocusables(_local2, true); } else { removeFocusables(_local2); }; } private function deactivateHandler(_arg1:Event):void{ var _local2:InteractiveObject = InteractiveObject(_arg1.target); } public function setFocus(_arg1:InteractiveObject):void{ if ((_arg1 is IFocusManagerComponent)){ IFocusManagerComponent(_arg1).setFocus(); } else { form.stage.focus = _arg1; }; } public function getFocus():InteractiveObject{ var _local1:InteractiveObject = form.stage.focus; return (findFocusManagerComponent(_local1)); } private function hasFocusableObjects():Boolean{ var _local1:Object; for (_local1 in focusableObjects) { return (true); }; return (false); } private function tabIndexChangeHandler(_arg1:Event):void{ calculateCandidates = true; } public function set defaultButton(_arg1:Button):void{ var _local2:Button = (_arg1) ? Button(_arg1) : null; if (_local2 != _defaultButton){ if (_defaultButton){ _defaultButton.emphasized = false; }; if (defButton){ defButton.emphasized = false; }; _defaultButton = _local2; defButton = _local2; if (_local2){ _local2.emphasized = true; }; }; } private function sortFocusableObjects():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){ sortFocusableObjectsTabIndex(); return; }; focusableCandidates.push(_local2); }; focusableCandidates.sort(sortByDepth); } private function keyFocusChangeHandler(_arg1:FocusEvent):void{ showFocusIndicator = true; if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){ setFocusToNextObject(_arg1); _arg1.preventDefault(); }; } private function getIndexOfFocusedObject(_arg1:DisplayObject):int{ var _local2:int = focusableCandidates.length; var _local3:int; _local3 = 0; while (_local3 < _local2) { if (focusableCandidates[_local3] == _arg1){ return (_local3); }; _local3++; }; return (-1); } public function hideFocus():void{ } private function removedHandler(_arg1:Event):void{ var _local2:int; var _local4:InteractiveObject; var _local3:DisplayObject = DisplayObject(_arg1.target); if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){ if (_local3 == lastFocus){ IFocusManagerComponent(lastFocus).drawFocus(false); lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local3]; calculateCandidates = true; } else { if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){ _local4 = (_local3 as InteractiveObject); if (_local4){ if (_local4 == lastFocus){ lastFocus = null; }; delete focusableObjects[_local4]; calculateCandidates = true; }; _local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); }; }; removeFocusables(_local3); } private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{ var _local5:int; var _local6:String; var _local7:String; var _local3 = ""; var _local4 = ""; var _local8 = "0000"; var _local9:DisplayObject = DisplayObject(_arg1); var _local10:DisplayObject = DisplayObject(_arg2); while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) { _local5 = getChildIndex(_local9.parent, _local9); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local3 = (_local7 + _local3); _local9 = _local9.parent; }; while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) { _local5 = getChildIndex(_local10.parent, _local10); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local4 = (_local7 + _local4); _local10 = _local10.parent; }; return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0); } public function get defaultButton():Button{ return (_defaultButton); } private function activateHandler(_arg1:Event):void{ var _local2:InteractiveObject = InteractiveObject(_arg1.target); if (lastFocus){ if ((lastFocus is IFocusManagerComponent)){ IFocusManagerComponent(lastFocus).setFocus(); } else { form.stage.focus = lastFocus; }; }; lastAction = "ACTIVATE"; } public function showFocus():void{ } public function set defaultButtonEnabled(_arg1:Boolean):void{ _defaultButtonEnabled = _arg1; } public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{ var _local8:IFocusManagerGroup; if (!hasFocusableObjects()){ return (null); }; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; var _local2:DisplayObject = form.stage.focus; _local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2))); var _local3 = ""; if ((_local2 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local2); _local3 = _local8.groupName; }; var _local4:int = getIndexOfFocusedObject(_local2); var _local5:Boolean; var _local6:int = _local4; if (_local4 == -1){ if (_arg1){ _local4 = focusableCandidates.length; }; _local5 = true; }; var _local7:int = getIndexOfNextObject(_local4, _arg1, _local5, _local3); return (findFocusManagerComponent(focusableCandidates[_local7])); } private function mouseDownHandler(_arg1:MouseEvent):void{ if (_arg1.isDefaultPrevented()){ return; }; var _local2:InteractiveObject = getTopLevelFocusTarget(InteractiveObject(_arg1.target)); if (!_local2){ return; }; showFocusIndicator = false; if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){ setFocus(_local2); }; lastAction = "MOUSEDOWN"; } private function isTabVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer = _arg1.parent; while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) { if (!_local2.tabChildren){ return (false); }; _local2 = _local2.parent; }; return (true); } public function get nextTabIndex():int{ return (0); } private function keyDownHandler(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.TAB){ lastAction = "KEY"; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; }; if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){ sendDefaultButtonEvent(); }; } private function focusInHandler(_arg1:FocusEvent):void{ var _local3:Button; var _local2:InteractiveObject = InteractiveObject(_arg1.target); if (form.contains(_local2)){ lastFocus = findFocusManagerComponent(InteractiveObject(_local2)); if ((lastFocus is Button)){ _local3 = Button(lastFocus); if (defButton){ defButton.emphasized = false; defButton = _local3; _local3.emphasized = true; }; } else { if (((defButton) && (!((defButton == _defaultButton))))){ defButton.emphasized = false; defButton = _defaultButton; _defaultButton.emphasized = true; }; }; }; } private function tabEnabledChangeHandler(_arg1:Event):void{ calculateCandidates = true; var _local2:InteractiveObject = InteractiveObject(_arg1.target); var _local3 = (focusableObjects[_local2] == true); if (_local2.tabEnabled){ if (((!(_local3)) && (isTabVisible(_local2)))){ if (!(_local2 is IFocusManagerComponent)){ _local2.focusRect = false; }; focusableObjects[_local2] = true; }; } else { if (_local3){ delete focusableObjects[_local2]; }; }; } public function set showFocusIndicator(_arg1:Boolean):void{ _showFocusIndicator = _arg1; } public function get form():DisplayObjectContainer{ return (_form); } private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{ return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2)); } public function get defaultButtonEnabled():Boolean{ return (_defaultButtonEnabled); } public function activate():void{ if (activated){ return; }; form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true); form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true); form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true); form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true); form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = true; if (lastFocus){ setFocus(lastFocus); }; } public function deactivate():void{ form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler); form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.removeEventListener(Event.ACTIVATE, activateHandler); form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler); form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = false; } } }//package fl.managers
Section 135
//IFocusManager (fl.managers.IFocusManager) package fl.managers { import fl.controls.*; import flash.display.*; public interface IFocusManager { function getFocus():InteractiveObject; function deactivate():void; function set defaultButton(_arg1:Button):void; function set showFocusIndicator(_arg1:Boolean):void; function get defaultButtonEnabled():Boolean; function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject; function get nextTabIndex():int; function get defaultButton():Button; function get showFocusIndicator():Boolean; function hideFocus():void; function activate():void; function showFocus():void; function set defaultButtonEnabled(_arg1:Boolean):void; function setFocus(_arg1:InteractiveObject):void; function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject; } }//package fl.managers
Section 136
//IFocusManagerComponent (fl.managers.IFocusManagerComponent) package fl.managers { public interface IFocusManagerComponent { function set focusEnabled(_arg1:Boolean):void; function drawFocus(_arg1:Boolean):void; function setFocus():void; function get focusEnabled():Boolean; function get tabEnabled():Boolean; function get tabIndex():int; function get mouseFocusEnabled():Boolean; } }//package fl.managers
Section 137
//IFocusManagerGroup (fl.managers.IFocusManagerGroup) package fl.managers { public interface IFocusManagerGroup { function get groupName():String; function get selected():Boolean; function set groupName(_arg1:String):void; function set selected(_arg1:Boolean):void; } }//package fl.managers
Section 138
//StyleManager (fl.managers.StyleManager) package fl.managers { import fl.core.*; import flash.utils.*; import flash.text.*; public class StyleManager { private var classToInstancesDict:Dictionary; private var globalStyles:Object; private var styleToClassesHash:Object; private var classToStylesDict:Dictionary; private var classToDefaultStylesDict:Dictionary; private static var _instance:StyleManager; public function StyleManager(){ styleToClassesHash = {}; classToInstancesDict = new Dictionary(true); classToStylesDict = new Dictionary(true); classToDefaultStylesDict = new Dictionary(true); globalStyles = UIComponent.getStyleDefinition(); } public static function clearComponentStyle(_arg1:Object, _arg2:String):void{ var _local3:Class = getClassDef(_arg1); var _local4:Object = getInstance().classToStylesDict[_local3]; if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){ delete _local4[_arg2]; invalidateComponentStyle(_local3, _arg2); }; } private static function getClassDef(_arg1:Object):Class{ var component = _arg1; if ((component is Class)){ return ((component as Class)); }; try { return ((getDefinitionByName(getQualifiedClassName(component)) as Class)); } catch(e:Error) { if ((component is UIComponent)){ try { return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class)); } catch(e:Error) { }; }; }; return (null); } public static function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Class = getClassDef(_arg1); var _local5:Object = getInstance().classToStylesDict[_local4]; if (_local5 == null){ _local5 = (getInstance().classToStylesDict[_local4] = {}); }; if (_local5 == _arg3){ return; }; _local5[_arg2] = _arg3; invalidateComponentStyle(_local4, _arg2); } private static function setSharedStyles(_arg1:UIComponent):void{ var _local5:String; var _local2:StyleManager = getInstance(); var _local3:Class = getClassDef(_arg1); var _local4:Object = _local2.classToDefaultStylesDict[_local3]; for (_local5 in _local4) { _arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5)); }; } public static function getComponentStyle(_arg1:Object, _arg2:String):Object{ var _local3:Class = getClassDef(_arg1); var _local4:Object = getInstance().classToStylesDict[_local3]; return (((_local4)==null) ? null : _local4[_arg2]); } private static function getInstance(){ if (_instance == null){ _instance = new (StyleManager); }; return (_instance); } private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{ var _local4:Object; var _local5:UIComponent; var _local3:Dictionary = getInstance().classToInstancesDict[_arg1]; if (_local3 == null){ return; }; for (_local4 in _local3) { _local5 = (_local4 as UIComponent); if (_local5 == null){ } else { _local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2)); }; }; } private static function invalidateStyle(_arg1:String):void{ var _local3:Object; var _local2:Dictionary = getInstance().styleToClassesHash[_arg1]; if (_local2 == null){ return; }; for (_local3 in _local2) { invalidateComponentStyle(Class(_local3), _arg1); }; } public static function registerInstance(_arg1:UIComponent):void{ var target:Class; var defaultStyles:Object; var styleToClasses:Object; var n:String; var instance = _arg1; var inst:StyleManager = getInstance(); var classDef:Class = getClassDef(instance); if (classDef == null){ return; }; if (inst.classToInstancesDict[classDef] == null){ inst.classToInstancesDict[classDef] = new Dictionary(true); target = classDef; while (defaultStyles == null) { if (target["getStyleDefinition"] != null){ defaultStyles = target["getStyleDefinition"](); break; }; try { target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class); } catch(err:Error) { try { target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class); } catch(e:Error) { defaultStyles = UIComponent.getStyleDefinition(); break; }; }; }; styleToClasses = inst.styleToClassesHash; for (n in defaultStyles) { if (styleToClasses[n] == null){ styleToClasses[n] = new Dictionary(true); }; styleToClasses[n][classDef] = true; }; inst.classToDefaultStylesDict[classDef] = defaultStyles; if (inst.classToStylesDict[classDef] == null){ inst.classToStylesDict[classDef] = {}; }; }; inst.classToInstancesDict[classDef][instance] = true; setSharedStyles(instance); } public static function getStyle(_arg1:String):Object{ return (getInstance().globalStyles[_arg1]); } private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{ var _local3:Class = getClassDef(_arg1); var _local4:StyleManager = getInstance(); var _local5:Object = _local4.classToStylesDict[_local3][_arg2]; if (_local5 != null){ return (_local5); }; _local5 = _local4.globalStyles[_arg2]; if (_local5 != null){ return (_local5); }; return (_local4.classToDefaultStylesDict[_local3][_arg2]); } public static function setStyle(_arg1:String, _arg2:Object):void{ var _local3:Object = getInstance().globalStyles; if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; _local3[_arg1] = _arg2; invalidateStyle(_arg1); } } }//package fl.managers
Section 139
//Base (TheGame.GameTemplate.Base) package TheGame.GameTemplate { import flash.display.*; public class Base extends MovieClip { public function Base(){ tabEnabled = false; } function beforeDeleteForAll(_arg1:DisplayObjectContainer){ var _local3:*; if (_arg1 != null){ if ((_arg1 is Base)){ (_arg1 as Base).beforeDelete(); } else { if ((_arg1 is BaseSprite)){ (_arg1 as BaseSprite).beforeDelete(); }; }; }; var _local2:* = 0; while (_local2 < _arg1.numChildren) { _local3 = _arg1.getChildAt(_local2); if ((_local3 is DisplayObjectContainer)){ beforeDeleteForAll(_local3); }; _local2++; }; } public function afterCreate(){ } public function beforeDelete(){ } } }//package TheGame.GameTemplate
Section 140
//BaseSprite (TheGame.GameTemplate.BaseSprite) package TheGame.GameTemplate { import flash.display.*; public class BaseSprite extends Sprite { public function afterCreate(){ } public function beforeDelete(){ } } }//package TheGame.GameTemplate
Section 141
//ButtonSoundOnOff (TheGame.GameTemplate.ButtonSoundOnOff) package TheGame.GameTemplate { import flash.display.*; import flash.events.*; import TheGame.*; public class ButtonSoundOnOff extends Base { public var inside_mc:MovieClip; var myGame:Game; var head_mc:MovieClip; var mouth_mc:MovieClip; var frameMouth:Number;// = 5 public function ButtonSoundOnOff(){ head_mc = inside_mc.head_mc_; mouth_mc = inside_mc.head_mc_.mouth_mc_; this.buttonMode = true; this.addEventListener(MouseEvent.CLICK, onClickSound); this.addEventListener(MouseEvent.MOUSE_OVER, onMouseOverSound); this.addEventListener(MouseEvent.MOUSE_OUT, onMouseOutSound); this.scaleX = (this.scaleY = 1); } override public function beforeDelete(){ this.removeEventListener(MouseEvent.CLICK, onClickSound); this.removeEventListener(MouseEvent.MOUSE_OVER, onMouseOverSound); this.removeEventListener(MouseEvent.MOUSE_OUT, onMouseOutSound); } public function initButton(_arg1:Game){ myGame = _arg1; setVolOnOff(1); mouth_mc.gotoAndStop(frameMouth); } function onClickSound(_arg1:Event){ myGame.flagSoundOn = !(myGame.flagSoundOn); setVolOnOff(1); mouth_mc.visible = (myGame.flagSoundOn) ? true : false; } function onMouseOverSound(_arg1:Event){ if (myGame.flagSoundOn){ mouth_mc.play(); }; } function onMouseOutSound(_arg1:Event){ forOnMouseOutSound(); } function forOnMouseOutSound(){ if (myGame.flagSoundOn){ mouth_mc.gotoAndStop(frameMouth); }; } public function setVolOnOff(_arg1:Number){ var _local2:Number; if (myGame.mainSound != null){ _local2 = (myGame.flagSoundOn) ? _arg1 : 0; myGame.mainSound.setVol((_local2 * myGame.musicVol)); head_mc.gotoAndStop(("s_" + choiceOnOff())); }; } public function choiceOnOff():String{ return ((myGame.flagSoundOn) ? "on" : "off"); } } }//package TheGame.GameTemplate
Section 142
//GameBase (TheGame.GameTemplate.GameBase) package TheGame.GameTemplate { import flash.display.*; import flash.events.*; import flash.text.*; import flash.ui.*; public class GameBase extends Base { var currentScreen:ScreenBase; public var saver:Saver; var _currentNextBtn:MyBtn; var _userName:String; protected var screens_mc:Sprite; protected var cap_txt:TextField; protected var caption_mc:MovieClip; protected var copyright_txt:TextField; public static var projectName:String; public static var gameClass:Class; public function GameBase(){ saver = new Saver("AllGame"); saver.isAutoSave = true; _userName = saver.getData("userName", ""); Lang.init(saver.getData("lang", 0)); stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPress); } override public function beforeDelete(){ stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyPress); } function onKeyPress(_arg1:KeyboardEvent){ if ((((_arg1.keyCode == Keyboard.ENTER)) || ((_arg1.keyCode == Keyboard.NUMPAD_ENTER)))){ if (currentNextBtn != null){ currentNextBtn.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); }; }; } protected function set Caption(_arg1:String){ cap_txt.text = ((_arg1)!="") ? Lang.txt(_arg1) : _arg1; cap_txt.visible = (caption_mc.visible = !((_arg1 == ""))); } public function get currentNextBtn():MyBtn{ return (_currentNextBtn); } public function set currentNextBtn(_arg1:MyBtn):void{ _currentNextBtn = _arg1; if (_currentNextBtn){ _currentNextBtn.Active = true; }; } public function get userName():String{ return (_userName); } public function set userName(_arg1:String):void{ _userName = _arg1; saver.setData("userName", _userName); } public function set saveCurLang(_arg1:String):void{ saver.setData("lang", Lang.curLangInd); } protected function swapFrame(_arg1:ScreenBase){ if (currentScreen){ currentNextBtn = null; beforeDeleteForAll(currentScreen); screens_mc.removeChild(currentScreen); }; screens_mc.addChild((currentScreen = _arg1)); stage.focus = stage; currentScreen.afterCreate(); } protected function goFrame(_arg1:ScreenBase, _arg2:String=""){ _arg1.myGame_ = this; swapFrame(_arg1); Caption = _arg2; } } }//package TheGame.GameTemplate
Section 143
//Lang (TheGame.GameTemplate.Lang) package TheGame.GameTemplate { public class Lang { var eng:String; var spa:String; var ger:String; var rus:String; static var curLang:String; protected static var Texts:Object; protected static var allowLangs:Array = ["eng", "rus"]; protected static var _curLangInd:Number; public function Lang(_arg1:String, _arg2:String=null, _arg3:String=null, _arg4:String=null){ eng = _arg1; spa = (_arg4) ? _arg4 : _arg1; ger = (_arg3) ? _arg3 : _arg1; rus = (_arg2) ? _arg2 : _arg1; } function get text():String{ return (this[curLang]); } static function get curLangInd():Number{ return (_curLangInd); } static function set curLangInd(_arg1:Number){ _curLangInd = _arg1; } static function swapLanguage(_arg1:Number=-1):Number{ if (_arg1 == -1){ curLangInd++; if (curLangInd >= allowLangs.length){ curLangInd = 0; }; } else { curLangInd = _arg1; }; curLang = allowLangs[curLangInd]; return (curLangInd); } static function txt(_arg1:String):String{ var _local2:Lang; if (Texts){ _local2 = (Texts[_arg1] as Lang); }; if (_local2 != null){ return (_local2.text); }; return (_arg1); } static function init(_arg1:Number=-1){ swapLanguage(_arg1); Texts = {myCarrier:new Lang("My Carrier", "Моя карьера", "Meine Karriere", ""), freeStyle:new Lang("World Freestyle", "Мировой фристайл", "Welttrickski", ""), next:new Lang("Next", "Дальше", "Weiter", ""), menu:new Lang("Menu", "Меню", "Menu", ""), mainMenu:new Lang("Main menu", "Главное меню", "Hauptmenu", ""), play:new Lang(" Play", " Игра", " Spielen", ""), moreGames:new Lang("More games", "Другие игры", "Mehr Spiele", ""), newGame:new Lang("From beginning", "С начала", "Von Anfang an", ""), changePers:new Lang("Change jumper", "Сменить прыгуна", "Springer zu ersetzen", ""), toStar:new Lang("Star competition!", "Соревнование за звезду!", "Wettkampf fur den Sternen!", ""), exit:new Lang("Exit", "Выход", "Austritt", ""), again:new Lang("Again", "Ещё раз", "Wieder", ""), cancel:new Lang("Cancel", "Отмена", "Abbrechen", ""), submit:new Lang("Submit record", "Выложить рекорд", "Rekord zu vorlegen ", ""), go_jump:new Lang("Jump!", "Вперёд!", "Springen!", ""), missEdu:new Lang("Miss Education", "Пропустить обучение", "Ausbildung zu uberspringen", ""), victory:new Lang("Victory!", "Победа!", "Sieg!", ""), skillUp:new Lang("Level up", "Повышение уровня", "Erhohung des Niveaus", ""), selectNewElement:new Lang("Learn new element", "Изучите новый элемент", "Studieren Sie neue Element", ""), select:new Lang("Choose jumper", "Выберите прыгуна", "Wahlen Sie den Springer", ""), guide:new Lang("Guide", "Руководство пользователя", "Anleitung", ""), end:new Lang("Finish", "Конец", "Ende", ""), levelGood:new Lang("Level complete!", "Уровень пройден!", "Niveau ist durchgehen!", ""), levelBad:new Lang("Level fail...", "Уровень не пройден...", "Niveau ist nicht durchgehen...", ""), records:new Lang("World records", "Мировые рекорды", "Weltrekorde", ""), name1:new Lang("Mariana", "Мариана", "Mariahna", ""), name2:new Lang("Arashi", "Араши", "Araschi", ""), name3:new Lang("Alena", "Алёна", "Alena", ""), name4:new Lang("Brayan", "Браян", "Brayan", ""), evolution:new Lang("Evolution", "Прогресс", "Fortschritt", ""), langName:new Lang(" English", " Русский", " Deutsch", " S"), myBest:new Lang("My best", "Личный рекорд", "Mein Rekord", ""), newRec:new Lang("New record!", "Новый рекорд!", "Neu Rekord", ""), result:new Lang("My result", "Мой результат", "Mein Resultat", ""), credits:new Lang("Credits", "Авторы", "Autoren", ""), enterName:new Lang("Enter your name", "Введите Ваше имя", "Fuhren Sie Ihren Namen ein", ""), tryAgain:new Lang("Try again", "Ещё раз", "Wieder", ""), SelectDif:new Lang("Select difficulty", "Выберите сложность", "Wahlen Sie die Schwierigkeitsgrad", ""), diff_easy:new Lang("Easy", "Лёгкая", "Leicht", ""), diff_normal:new Lang("Normal", "Нормальная", "Normal", ""), diff_hard:new Lang("Hard", "Трудная", "Schwierig", ""), tryHard:new Lang("Try high difficulty ;)", "Попробуйте высокую сложность ;)", "Wahlen Sie die hoch Schwierigkeitsgrad ;)", ""), time:new Lang("Time", "Время", "Zeit", ""), and:new Lang("and", "и", "und", ""), in_:new Lang("in", "в", "in", ""), or_:new Lang("or", "или", "oder", ""), repeat:new Lang("repeat", "повтор", "Wiederholung", ""), power:new Lang("Power", "Сила", "Kraft", ""), rotation:new Lang("Rotation", "Вращение", "Drehen", ""), points:new Lang("Points", "Очки", "Punkten", ""), points2:new Lang("points", "очков", "Punkten", ""), pointsLevel:new Lang("Points for level", "Очков за уровень", "Punkten fur Niveau", ""), pointsTotal:new Lang("Total points", "Всего очков", "Summe Punkten", ""), down:new Lang("down", "вниз", "hinunter", ""), up:new Lang("up", "вверх", "hinauf", ""), left:new Lang("left", "влево", "links", ""), right:new Lang("right", "вправо", "rechts", ""), funClub:new Lang("Fan-zone", "Фан-клуб", "Fan-Klub", ""), allDone:new Lang("Now free style!", "А теперь - фристайл!", "Und Jetzt - Trickski!", ""), tipQuick:new Lang("You need 1 star", "Требуется 1 звезда", "Es ist notig 1 Stern", ""), tipFull:new Lang("The mode executed by this charachter", "Режим уже пройден этим персонажем", "Das Regime ist von dieser Person schon durchgegangen", ""), exec2:new Lang("Execute 2 imperative elements (overhead)", "Выполните 2 обязательных элемента (наверху)", "Erfullen Sie 2 Pflichtubungen (oben)", ""), guide:new Lang(((" You need execute 5 imperative elements, which are overhead. \n\n " + " After imperative program you can get more points in free style. \n\n ") + " Remember! You should land straight and closer to vertical line to jump higher."), ((" Требуется выполнить 5 обязательных элементов, которые отображаются вверху. \n\n " + " После обязательных элементов Вы можете набрать очки за счёт выполнения свободной программы. \n\n") + " Помните! Чтобы лучше выпрыгивать, надо приземляться прямо и ближе к вертикали."), ((" Es ist erforderlich, 5 Pflichtubungen zu erfullen, die oben dargestellt werden. \n\n " + " Nach den obligatorischen Elementen, konnen Sie die Punkte fur die Rechnung der Ausfuhrung des freien Programms zusammennehmen. \n\n") + " Sie erinnern sich! Um besser herauszuspringen, muss man gerade und naher zur Vertikale landen."), ""), badLanding:new Lang("Incorrect landing", "Неправильное приземление", "Unrichtig Landung", ""), youMade:new Lang("You made", "Вы сделали", "Sie haben gemacht", ""), creditsText:new Lang(((("Develop - Vadim Pechersky \n" + "Graphics - Maxim Yurchenko \n") + "Music - FlashKit.com \n") + "Team - "), ((("Разработка - Вадим Печерский \n" + "Графика - Максим Юрченко \n") + "Музыка - FlashKit.com \n") + "Команда - "), ((("Entwicklung - Vadim Pechersky \n" + "Graphik - Maxim Yurchenko \n") + "Musik - FlashKit.com \n") + "Mannschaft - "), ""), tuck:new Lang("Tuck", "Группировка", "Gruppierung", ""), pike:new Lang("Pike", "Согнувшись", "Sich biegen", ""), straight:new Lang("Straight", "Прогнувшись", "Sich durchbiegen", ""), straddle:new Lang("Straddle", "Шпагат", "Spagat", ""), tilt:new Lang("Tilt", "Наклон", "Neigung", ""), swallow:new Lang("Swallow", "Ласточка", "Schwalbe", ""), wheel:new Lang("Wheel", "Колесо", "Rad", ""), ring:new Lang("Ring", "Кольцо", "Ring", ""), triangle:new Lang("Triangle", "Треугольник", "Dreieck", ""), fife:new Lang("Fife", "Дудка", "Rohrpfeife", ""), freefall:new Lang("Free fall", "Свободное падение", "Freifall", ""), hurdle:new Lang("Hurdle", "Барьер", "Barriere", ""), prayer:new Lang("Prayer", "Молитва", "Gebet", ""), knees:new Lang("Knees", "Колени", "Knie", ""), front:new Lang("front", "вперёд", "vorwarts", ""), back:new Lang("back", "назад", "ruckwarts", ""), ballin:new Lang("ball in", "на спину", "auf den Rucken", ""), ballout:new Lang("ball out", "со спины", "Von des Ruckens", ""), stand:new Lang("stand", "станьте", "steigen Sie", ""), beStraight:new Lang("straight", "прямо", "aufrecht", ""), before:new Lang("before", "перед", "vor", ""), every_new_:new Lang("every new", "каждым новым", "jeder neuen", ""), jump:new Lang("jump", "прыжком", "Sprung", ""), elementsOnTop:new Lang("Elements, that you need to do, will appear overhead.", "Элементы, которые Вам нужно сделать, появляются наверху.", "Die Elemente, die Sie machen mussen, erscheinen oben.", ""), exec1elementOnTop:new Lang("Execute element overhead. ", "Выполните элемент наверху. ", "Erfullen Sie das Element oben. ", ""), hold:new Lang("Hold", "Держите", "Presse", ""), inFlight:new Lang("in flight", "в полёте", "im Flug", ""), toShape:new Lang("to shape", "чтобы принять положение", "um die Lage zu einnehmen", ""), toRotate:new Lang("to rotate", "чтобы сделать оборот", "um die Umlauf zu machen", "")}; } } }//package TheGame.GameTemplate
Section 144
//MyBtn (TheGame.GameTemplate.MyBtn) package TheGame.GameTemplate { import flash.display.*; import flash.events.*; import flash.text.*; import TheGame.*; import flash.filters.*; public class MyBtn extends Base { public var back_mc_:MovieClip; public var fil2:MovieClip; public var active_mc_:MovieClip; public var back2_mc_:MovieClip; public var x_txt_:TextField; var x_txt:TextField; var back_mc:Sprite; var back2_mc:Sprite; var active_mc:Sprite; var textFilters:Object; var backFilters:Object; var backFilters2:Object; var tAppear:Number; var appearSteps:Number;// = 7 var finalScaleX:Number; var myAppearClip:DisplayObject; var text:String; var isActive:Boolean;// = false public var scaleStart:Number;// = 0.7 public var scaleUp:Number;// = 0.8 var minWidth:Number; var flagBig:Boolean;// = false var flagOverUp:Boolean;// = false var counterBlink:Number;// = 0 public var myPointer:PointerMenuBtn; public function MyBtn(){ stop(); x_txt = this["x_txt_"]; active_mc = this["active_mc_"]; back_mc = this["back_mc_"]; back2_mc = this["back2_mc_"]; var _local1:DropShadowFilter = new DropShadowFilter(0, 45, 1199984, 1, 5, 5, 1.37, 1); var _local2:DropShadowFilter = (_local1.clone() as DropShadowFilter); _local2.color = 0xCCCC; var _local3:DropShadowFilter = (_local1.clone() as DropShadowFilter); _local2.color = 26265; var _local4:ColorMatrixFilter = back_mc.filters[0]; var _local5:ColorMatrixFilter = fil2.filters[0]; var _local6:DropShadowFilter = new DropShadowFilter(2, 88, 91260, 1, 7, 7, 1.2, 1); var _local7:DropShadowFilter = new DropShadowFilter(0, 45, 16777164, 1, 7, 7, 1.2, 1); textFilters = {up:[_local1], over:[_local2], down:[_local3]}; backFilters = {up:[_local4], over:[_local4], down:[_local5]}; backFilters2 = {up:[_local6], over:[_local7], down:[_local6]}; buttonMode = true; addEventListener(MouseEvent.MOUSE_OVER, mouseOverUp); addEventListener(MouseEvent.MOUSE_OUT, mouseOut); addEventListener(MouseEvent.MOUSE_DOWN, mouseDown); addEventListener(MouseEvent.MOUSE_UP, mouseOverUp); forMouseOut(); x_txt.mouseEnabled = false; Active = Active; } override public function beforeDelete(){ removeEventListener(MouseEvent.MOUSE_OVER, mouseOverUp); removeEventListener(MouseEvent.MOUSE_OUT, mouseOut); removeEventListener(MouseEvent.MOUSE_DOWN, mouseDown); removeEventListener(MouseEvent.MOUSE_UP, mouseOverUp); removeEventListener(Event.ENTER_FRAME, onEnterFrameNext); } function mouseOut(_arg1){ forMouseOut(); } public function forMouseOut(){ flagOverUp = false; x_txt.filters = textFilters.up; back_mc.filters = backFilters.up; back2_mc.filters = backFilters2.up; x_txt.textColor = 0xFFFFFF; scaleX = (scaleY = scaleStart); if (myPointer != null){ myPointer.gotoAndStop(0); }; } function mouseOverUp(_arg1){ flagOverUp = true; x_txt.filters = textFilters.over; back_mc.filters = backFilters.over; back2_mc.filters = backFilters2.over; x_txt.textColor = 0xFFFFFF; if (((!((scaleX == scaleUp))) || (!((scaleY == scaleUp))))){ scaleX = (scaleY = scaleUp); }; if (myPointer != null){ myPointer.gotoAndStop((myPointer.findMyIndex(this) + 2)); }; } function mouseDown(_arg1){ x_txt.filters = textFilters.down; back_mc.filters = backFilters.down; back2_mc.filters = backFilters2.down; x_txt.textColor = 12507121; } public function startEndBlink(_arg1:Boolean){ if (!_arg1){ if (hasEventListener(Event.ENTER_FRAME)){ removeEventListener(Event.ENTER_FRAME, onEnterFrameNext); }; } else { addEventListener(Event.ENTER_FRAME, onEnterFrameNext); }; } function onEnterFrameNext(_arg1:Event){ if (flagOverUp){ return; }; if (counterBlink < 10){ counterBlink = (counterBlink + 1); } else { if (!flagBig){ scaleX = (scaleY = scaleUp); } else { scaleX = (scaleY = scaleStart); }; flagBig = !(flagBig); counterBlink = 0; }; } public function set Text(_arg1:String){ text = _arg1; x_txt.text = Lang.txt(text); if (x_txt.textWidth > minWidth){ x_txt.autoSize = "center"; }; back_mc.width = (x_txt.width + 20); back2_mc.width = (back_mc.width * 1.03); active_mc.width = (back_mc.width * 1.01); } public function get Text():String{ return (text); } function get Active():Boolean{ return (isActive); } function set Active(_arg1:Boolean){ isActive = _arg1; active_mc.visible = isActive; } public function get MinWidth():Number{ return (minWidth); } public function set MinWidth(_arg1:Number):void{ minWidth = _arg1; } function traceFilters(){ } function trace1Filter(_arg1:DisplayObject, _arg2){ var _local3:DropShadowFilter; var _local4:ColorMatrixFilter; if ((_arg2 is DropShadowFilter)){ _local3 = (_arg2 as DropShadowFilter); }; if ((_arg2 is ColorMatrixFilter)){ _local4 = (_arg2 as ColorMatrixFilter); }; } } }//package TheGame.GameTemplate
Section 145
//MyFunc (TheGame.GameTemplate.MyFunc) package TheGame.GameTemplate { import flash.utils.*; public class MyFunc { public static function random(_arg1:int):int{ return (Math.floor((Math.random() * _arg1))); } public static function hrefTo(_arg1:String="FlashTeam.ru", _arg2:String="http://games.flashteam.ru"):String{ return ((((("<a href='" + _arg2) + "' target='_blank'><u><b>") + _arg1) + "</b></u></a>")); } public static function getClass(_arg1:String):Class{ return ((getDefinitionByName(_arg1) as Class)); } public static function cloneArray(_arg1:Array):Array{ var _local2:Array = new Array(_arg1.length); var _local3:* = 0; while (_local3 < _arg1.length) { _local2[_local3] = _arg1[_local3]; _local3++; }; return (_local2); } } }//package TheGame.GameTemplate
Section 146
//PopupWindow (TheGame.GameTemplate.PopupWindow) package TheGame.GameTemplate { import flash.display.*; import flash.events.*; import caurina.transitions.*; import flash.text.*; import TheGame.Screens.*; import TheGame.*; public class PopupWindow extends Base { public var next2_btn_:myBtnBig; public var more_games_btn_:myBtnBig; public var title_txt:TextField; public var fon_mc_:MovieClip; public var walkthrough_btn_:myBtnBig; public var again_btn_:myBtnBig; public var message_txt:TextField; public var backside_mc_:MovieClip; public var play_on_f_btn_:myBtnBigcopy2; var fon_mc:Sprite; var backside_mc:MovieClip; var titleTxt:TextField; var messageTxt:TextField; var myLevel:Level; var again_button:MyBtn; var next2_button:MyBtn; var walk_button:MyBtn; var play_on_f_button:MyBtn; var more_games_button:MyBtn; var startY:Number; var buttonX:Number; var buttonY:Number; public function PopupWindow(){ visible = false; startY = y; y = -170; fon_mc = fon_mc_; fon_mc.addEventListener(MouseEvent.CLICK, onFonClick); backside_mc = backside_mc_; titleTxt = title_txt; messageTxt = message_txt; messageTxt.alpha = 0; again_button = again_btn_; next2_button = next2_btn_; walk_button = walkthrough_btn_; play_on_f_button = play_on_f_btn_; more_games_button = more_games_btn_; again_button.visible = (next2_button.visible = (walk_button.visible = (more_games_button.visible = (play_on_f_button.visible = false)))); buttonX = next2_button.x; buttonY = next2_button.y; gotoAndStop(1); } override public function beforeDelete(){ fon_mc.removeEventListener(MouseEvent.CLICK, onFonClick); next2_button.removeEventListener(MouseEvent.CLICK, onClickEnd); messageTxt.removeEventListener(Event.ENTER_FRAME, onEnterFrameMess); if (myLevel != null){ next2_button.removeEventListener(MouseEvent.CLICK, myLevel.onClickNext); again_button.removeEventListener(MouseEvent.CLICK, myLevel.goGameAgain); walk_button.removeEventListener(MouseEvent.CLICK, myLevel.goWalk); more_games_button.removeEventListener(MouseEvent.CLICK, myLevel.goMoreGames); }; } private function onFonClick(_arg1:MouseEvent):void{ } public function showMe(_arg1:Boolean){ visible = _arg1; } public function showMessage(_arg1:Level, _arg2:String="", _arg3:String="", _arg4:Boolean=false){ var _local5:Number; if (visible == true){ return; }; Tweener.addTween(this, {time:1, transition:"easeOutQuart", y:startY, onComplete:endTweener}); myLevel = _arg1; showMe(true); if (_arg3 == ""){ gotoAndStop(2); titleTxt.text = ("\n\n" + _arg2); } else { gotoAndStop(1); titleTxt.text = _arg2; }; messageTxt.text = _arg3; if (_arg4){ showButton(next2_button); _local5 = (myLevel.myNumber + 2); if (_local5 <= LevelsInfo.kLevels){ next2_button.x = (next2_button.x - 90); next2_button.Text = ("next level " + _local5); next2_button.addEventListener(MouseEvent.CLICK, myLevel.onClickNext); } else { next2_button.Text = "next"; next2_button.addEventListener(MouseEvent.CLICK, onClickEnd); myLevel.myGame.myGameOver = true; }; } else { showButton(again_button); walk_button.visible = true; again_button.addEventListener(MouseEvent.CLICK, myLevel.goGameAgain); walk_button.addEventListener(MouseEvent.CLICK, myLevel.goWalk); }; } function showButton(_arg1:MyBtn){ _arg1.visible = true; _arg1.x = buttonX; _arg1.y = buttonY; } function endTweener(){ messageTxt.addEventListener(Event.ENTER_FRAME, onEnterFrameMess); } function onEnterFrameMess(_arg1:Event){ if (messageTxt.alpha < 1){ messageTxt.alpha = (messageTxt.alpha + 0.1); } else { messageTxt.alpha = 1; messageTxt.removeEventListener(Event.ENTER_FRAME, onEnterFrameMess); }; } function onClickEnd(_arg1:Event){ myLevel.myGame.goAtFrame(Game.FRAME_SUBMIT); next2_button.removeEventListener(MouseEvent.CLICK, onClickEnd); } function onFacebook(_arg1:Event){ Game.openPage(Game.SPONSOR_BETWEEN_LEVEL); } } }//package TheGame.GameTemplate
Section 147
//Saver (TheGame.GameTemplate.Saver) package TheGame.GameTemplate { import flash.net.*; public class Saver { var myName:String; var so:SharedObject; var onSaving:Boolean;// = true var isAutoSave:Boolean;// = false public function Saver(_arg1:String){ myName = _arg1; init(); } function getMyProperty(_arg1:String, _arg2){ this[_arg1] = getData(_arg1, _arg2); } function saveMyProperty(_arg1:String){ setData(_arg1, this[_arg1]); } protected function init(){ so = SharedObject.getLocal(((GameBase.projectName + "_") + myName)); } public function getData(_arg1:String, _arg2){ var _local3:* = so.data[_arg1]; if ((((_local3 == null)) && (!((_arg2 == null))))){ trace((_arg1 + " is null")); _local3 = _arg2; setData(_arg1, _local3); _local3 = _arg2; }; return (_local3); } public function setData(_arg1:String, _arg2){ if (onSaving){ so.data[_arg1] = _arg2; }; if (((isAutoSave) && (onSaving))){ so.flush(); }; } public function removeMe(){ so.clear(); } } }//package TheGame.GameTemplate
Section 148
//ScreenBase (TheGame.GameTemplate.ScreenBase) package TheGame.GameTemplate { public class ScreenBase extends Base { public var myGame_:GameBase; public function Screen(){ } override public function beforeDelete(){ } } }//package TheGame.GameTemplate
Section 149
//SoundFabric (TheGame.GameTemplate.SoundFabric) package TheGame.GameTemplate { import flash.utils.*; import flash.media.*; public class SoundFabric { var s:Sound; public var sChannel:SoundChannel; var sound_str:String; var offsetMs:Number;// = 0 var loops:Number;// = 1 var vol:Number;// = 1 var isPlay:Boolean; public function SoundFabric(_arg1:String, _arg2:Number=0, _arg3:Number=1, _arg4:Number=1){ trace(("Sound " + [_arg1, _arg2, _arg3, _arg4])); sound_str = _arg1; offsetMs = _arg2; loops = _arg3; vol = _arg4; s = new (getDefinitionByName(sound_str)); play(); } public function stop(){ isPlay = false; sChannel.stop(); } function play(){ isPlay = true; sChannel = s.play(offsetMs, loops); setVol(vol); } function setVol(_arg1){ vol = _arg1; var _local2:SoundTransform = sChannel.soundTransform; _local2.volume = vol; sChannel.soundTransform = _local2; } } }//package TheGame.GameTemplate
Section 150
//EditPanel (TheGame.MyPhysics.EditPanel) package TheGame.MyPhysics { import fl.controls.*; import flash.display.*; import flash.utils.*; import flash.events.*; import flash.text.*; import TheGame.*; import TheGame.GameTemplate.*; import flash.ui.*; public class EditPanel extends Base { public var under_mc:MovieClip; public var ys_txt_:TextField; public var xs_txt_:TextField; public var fon_btn_:SimpleButton; public var dens_mc_:ComboBox; public var prop_txt_:TextField; public var combo_new_volt:ComboBox; public var scotch_txt_:TextField; public var stat_txt_:TextField; public var bonus_type_mc_:ComboBox; public var xToY_btn:MovieClip; public var combo_world:ComboBox; public var depthMinus_btn_:SimpleButton; public var simple_txt_:TextField; public var bonus_txt_:TextField; public var depthPlus_btn_:SimpleButton; public var rot_txt_:TextField; public var yToX_btn:MovieClip; public var del_btn_:SimpleButton; public var swim_txt_:TextField; var prop_txt:TextField; var del_btn:SimpleButton; var fon_btn:SimpleButton; var depthMinus_btn:SimpleButton; var depthPlus_btn:SimpleButton; var combo_mc:ComboBox; var dens_mc:ComboBox; var comboWorld:ComboBox; var comboNewVolt:ComboBox; var attachedClips:Array; public var physWorld:PhysicsWorld; var rot_txt:TextField; var xs_txt:TextField; var ys_txt:TextField; var lastAddedObj:PhysicsMovie; private var physMov:PhysicsMovie; var simple_txt:TextField; var scotch_txt:TextField; var stat_txt:TextField; var swim_txt:TextField; var bonus_txt:TextField; var bonus_type:ComboBox; public function EditPanel(){ alpha = 0.8; del_btn = del_btn_; fon_btn = fon_btn_; depthMinus_btn = depthMinus_btn_; depthPlus_btn = depthPlus_btn_; prop_txt = prop_txt_; dens_mc = dens_mc_; comboWorld = combo_world; comboNewVolt = combo_new_volt; rot_txt = rot_txt_; xs_txt = xs_txt_; ys_txt = ys_txt_; bonus_txt = bonus_txt_; bonus_type = bonus_type_mc_; rot_txt.addEventListener(KeyboardEvent.KEY_DOWN, onKey); xs_txt.addEventListener(KeyboardEvent.KEY_DOWN, onKey); ys_txt.addEventListener(KeyboardEvent.KEY_DOWN, onKey); bonus_txt.addEventListener(KeyboardEvent.KEY_DOWN, onKey); dens_mc.addEventListener(Event.CHANGE, onChangeDensity); bonus_type.addEventListener(Event.CHANGE, onChangeDensity); yToX_btn.addEventListener(MouseEvent.CLICK, yToX); xToY_btn.addEventListener(MouseEvent.CLICK, xToY); del_btn.addEventListener(MouseEvent.CLICK, delElement); fon_btn.addEventListener(MouseEvent.CLICK, changeFon); depthMinus_btn.addEventListener(MouseEvent.CLICK, onClickDepthMinus); depthPlus_btn.addEventListener(MouseEvent.CLICK, onClickDepthPlus); combo_mc = new ComboBox(); combo_mc.rowCount = 20; combo_mc.x = 22; combo_mc.y = 55; this.addChild(combo_mc); combo_mc.addEventListener(Event.CLOSE, onCloseCombo); combo_mc.addEventListener(Event.CHANGE, onSelectItem); combo_mc.addItem({label:""}); this.mouseEnabled = true; this.mouseChildren = true; under_mc.mouseEnabled = true; under_mc.addEventListener(MouseEvent.MOUSE_DOWN, drag); under_mc.addEventListener(MouseEvent.MOUSE_UP, drop); simple_txt = simple_txt_; scotch_txt = scotch_txt_; stat_txt = stat_txt_; swim_txt = swim_txt_; simple_txt.text = "1"; scotch_txt.text = (stat_txt.text = (swim_txt.text = "0")); } override public function beforeDelete(){ rot_txt.removeEventListener(KeyboardEvent.KEY_DOWN, onKey); xs_txt.removeEventListener(KeyboardEvent.KEY_DOWN, onKey); ys_txt.removeEventListener(KeyboardEvent.KEY_DOWN, onKey); bonus_txt.removeEventListener(KeyboardEvent.KEY_DOWN, onKey); dens_mc.removeEventListener(Event.CHANGE, onChangeDensity); bonus_type.removeEventListener(Event.CHANGE, onChangeDensity); yToX_btn.removeEventListener(MouseEvent.CLICK, yToX); xToY_btn.removeEventListener(MouseEvent.CLICK, xToY); del_btn.removeEventListener(MouseEvent.CLICK, delElement); fon_btn.removeEventListener(MouseEvent.CLICK, changeFon); depthMinus_btn.removeEventListener(MouseEvent.CLICK, onClickDepthMinus); depthPlus_btn.removeEventListener(MouseEvent.CLICK, onClickDepthPlus); combo_mc.removeEventListener(Event.CLOSE, onCloseCombo); combo_mc.removeEventListener(Event.CHANGE, onSelectItem); under_mc.removeEventListener(MouseEvent.MOUSE_DOWN, drag); under_mc.removeEventListener(MouseEvent.MOUSE_UP, drop); } function changeFon(_arg1):void{ if (physWorld.levelFon_mc.currentFrame < physWorld.levelFon_mc.totalFrames){ physWorld.levelFon_mc.nextFrame(); } else { physWorld.levelFon_mc.gotoAndStop(1); }; } function changeDepth(_arg1:Number){ var _local5:PhysicsMovie; var _local2:DisplayObjectContainer = physMov.parent; var _local3:Number = _local2.getChildIndex(physMov); var _local4:Number = (_local3 + _arg1); if ((((_local4 >= 0)) && ((_local4 < _local2.numChildren)))){ _local5 = PhysicsMovie(_local2.getChildAt(_local4)); _local2.swapChildrenAt(_local3, _local4); physWorld.swapObjs(physMov, _local5); }; } function onClickDepthMinus(_arg1:Event){ changeDepth(-1); } function onClickDepthPlus(_arg1:Event){ changeDepth(1); } function yToX(_arg1){ xs_txt.text = ys_txt.text; changeProp(xs_txt); } function xToY(_arg1){ ys_txt.text = xs_txt.text; changeProp(ys_txt); } function delElement(_arg1){ physWorld.deleteObj(physMov); physMov = null; } function onChangeDensity(_arg1){ changeProp(); } private function onKey(_arg1:KeyboardEvent):void{ if ((((_arg1.keyCode == Keyboard.ENTER)) || ((_arg1.keyCode == Keyboard.NUMPAD_ENTER)))){ changeProp((_arg1.currentTarget as TextField)); }; } public function initMe(_arg1:Array){ attachedClips = _arg1; var _local2:* = 0; while (_local2 < attachedClips.length) { combo_mc.addItem({label:getQualifiedClassName(attachedClips[_local2])}); _local2++; }; } public function onCloseCombo(_arg1:Event):void{ } public function onSelectItem(_arg1:Event):void{ addItem(); } function addItem(){ if (currentItem == ""){ return; }; if (((!((lastAddedObj == null))) && (!(lastAddedObj.wasTouched)))){ physWorld.deleteObj(lastAddedObj); }; lastAddedObj = physWorld.addObjAndEdit(currentItem, (this.x + 100), (this.y + 200)); } function get currentItem():String{ return (combo_mc.selectedItem.label); } public function drag(_arg1:MouseEvent):void{ this.startDrag(); alpha = 0.4; } public function drop(_arg1:MouseEvent):void{ this.stopDrag(); alpha = 0.8; } public function showProps(_arg1:PhysicsMovie){ if (physMov != null){ physMov.isCurEdit = false; }; physMov = _arg1; physMov.isCurEdit = true; prop_txt.text = getQualifiedClassName(physMov); rot_txt.text = physMov.rotation.toString(); xs_txt.text = physMov.scaleX.toString(); ys_txt.text = physMov.scaleY.toString(); dens_mc.text = physMov.myDensity.toString(); if ((physMov as PhysicsMovieBonus) != null){ (physMov as PhysicsMovieBonus).myMC.stop(); bonus_txt.text = (physMov as PhysicsMovieBonus).sizeBonus.toString(); findStartValueCombo(bonus_type, (physMov as PhysicsMovieBonus).typeBonus.toString()); changeVis(true); } else { changeVis(false); }; } public function initOnBegin(_arg1:Number){ prop_txt.text = ""; rot_txt.text = ""; xs_txt.text = ""; ys_txt.text = ""; dens_mc.text = ""; var _local2:XML = LevelsInfo.levelInfo[_arg1]; var _local3:Array = _local2.@kVolts.split("_"); findStartValueCombo(comboWorld, _local2.@worldZone); simple_txt.text = _local3[0]; stat_txt.text = _local3[1]; scotch_txt.text = _local3[2]; swim_txt.text = _local3[3]; findStartValueCombo(comboNewVolt, _local2.@firstVolt); changeVis(false); } public function onTextIn(_arg1:Event):void{ var _local2:TextField = (_arg1.currentTarget as TextField); changeProp(_local2); } function changeProp(_arg1:TextField=null){ if (physMov == null){ return; }; physMov.rotation = Number(rot_txt.text); physMov.scaleX = Number(xs_txt.text); physMov.scaleY = Number(ys_txt.text); physMov.myDensity = Number(dens_mc.selectedLabel); if ((physMov as PhysicsMovieBonus) != null){ (physMov as PhysicsMovieBonus).changeBonus(bonus_txt.text, bonus_type.selectedItem.data); }; } function changeVis(_arg1:Boolean){ bonus_txt.visible = _arg1; bonus_type.alpha = (_arg1) ? 1 : 0; bonus_type.visible = (bonus_type.textField.visible = _arg1); comboNewVolt.x = comboWorld.x; comboNewVolt.y = bonus_txt.y; comboNewVolt.alpha = (_arg1) ? 0 : 1; comboNewVolt.visible = (comboNewVolt.textField.visible = !(_arg1)); } function findStartValueCombo(_arg1:ComboBox, _arg2:String){ var _local3:* = 0; while (_arg1.getItemAt(_local3).data != _arg2.toLowerCase()) { _local3++; }; _arg1.selectedIndex = _local3; } } }//package TheGame.MyPhysics
Section 151
//Physics1Shape (TheGame.MyPhysics.Physics1Shape) package TheGame.MyPhysics { import flash.display.*; import Box2D.Collision.Shapes.*; import TheGame.GameTemplate.*; public class Physics1Shape extends BaseSprite { public var p1:MovieClip; public var p2:MovieClip; public var p3:MovieClip; public var p4:MovieClip; public var p5:MovieClip; public var p6:MovieClip; public var p7:MovieClip; public var p8:MovieClip; var myPhysMovie:PhysicsMovie; var myDef:Object; public var myShape:b2Shape; public function Physics1Shape(){ myPhysMovie = (parent as PhysicsMovie); if (myPhysMovie.myShapes == null){ myPhysMovie.myShapes = []; }; myPhysMovie.myShapes.push(this); visible = false; } override public function beforeDelete(){ } } }//package TheGame.MyPhysics
Section 152
//PhysicsContactListener (TheGame.MyPhysics.PhysicsContactListener) package TheGame.MyPhysics { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import TheGame.*; public class PhysicsContactListener extends b2ContactListener { var physWorld:PhysicsWorld; public function PhysicsContactListener(_arg1:PhysicsWorld){ physWorld = _arg1; } override public function Add(_arg1:b2ContactPoint):void{ addContact(_arg1); } override public function Persist(_arg1:b2ContactPoint):void{ } override public function Remove(_arg1:b2ContactPoint):void{ } override public function Result(_arg1:b2ContactResult):void{ } function addContact(_arg1:b2ContactPoint){ var _local4:PhysicsMovie; var _local5:PhysicsMovie; var _local6:PhysicsMovieBonus; var _local7:*; var _local8:PhysicsMovie; var _local9:Volt; var _local10:PhysicsMovieNoContact; var _local11:Volt; var _local12:PhysicsMovie; var _local13:Volt; var _local14:Volt; var _local15:PhysicsMovie; var _local2:* = _arg1.shape1.m_body.m_userData; var _local3:* = _arg1.shape2.m_body.m_userData; if ((((_local2 == null)) || ((_local3 == null)))){ return; }; if (_local2 != null){ _local4 = (_local2 as PhysicsMovie); }; if (_local3 != null){ _local5 = (_local3 as PhysicsMovie); }; if (((!(((_local4 as PhysicsMovieBonus) == null))) || (!(((_local5 as PhysicsMovieBonus) == null))))){ _local6 = ((((_local4 as PhysicsMovieBonus))!=null) ? _local4 : _local5 as PhysicsMovieBonus); _local7 = (((_local6)==_local4) ? _local5 : _local4 as Volt); if ((_local7 as Volt) != null){ _local6.addBonus(); Game.iAmGame.playSound("SndBonus"); }; }; if (((!(((_local4 as PhysicsMovWater) == null))) || (!(((_local5 as PhysicsMovWater) == null))))){ _local8 = (((_local4 as PhysicsMovWater))!=null) ? _local5 : _local4; if (!_local8.swimIfCan()){ trace([_local8.name, Game.stringForWater]); _local8.strForContact = Game.stringForWater; Game.iAmGame.playSound("SndWater", 0.9); }; } else { if (((!(((_local4 as PhysicsMovieNoContact) == null))) || (!(((_local5 as PhysicsMovieNoContact) == null))))){ if (((!(((_local4 as Volt) == null))) || (!(((_local5 as Volt) == null))))){ _local9 = ((((_local4 as Volt))!=null) ? _local4 : _local5 as Volt); _local10 = (((_local9)==_local4) ? _local5 : _local4 as PhysicsMovieNoContact); _local9.strForContact = Game.stringForNoContact; _local10.fixContact(_local9); Game.iAmGame.playSound("SndNoContact", 3); }; } else { if (((!(((_local4 as Volt) == null))) || (!(((_local5 as Volt) == null))))){ _local11 = ((((_local4 as Volt))!=null) ? _local4 : _local5 as Volt); _local12 = ((_local11)==_local4) ? _local5 : _local4; if ((_local12 as Volt) != null){ _local13 = (_local12 as Volt); }; if ((((_local11.id == Volt.VOLT_SCOTCH)) || (((!((_local13 == null))) && ((_local13.id == Volt.VOLT_SCOTCH)))))){ _local14 = ((_local11.id)==Volt.VOLT_SCOTCH) ? _local11 : _local13; _local15 = ((_local14)!=_local11) ? _local11 : _local12; _local14.doScotch(_local15, _arg1.position); }; }; }; }; } } }//package TheGame.MyPhysics
Section 153
//PhysicsMovie (TheGame.MyPhysics.PhysicsMovie) package TheGame.MyPhysics { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import flash.utils.*; import flash.events.*; import TheGame.GameTemplate.*; public class PhysicsMovie extends BaseSprite { public var myShapes:Array; protected var physWorld:PhysicsWorld; public var myDensity; public var myFriction; var myRestitution; protected var canSwimInWater:Boolean;// = false protected var collideMyBits:Number;// = 1 protected var collideMaskBits:Number;// = 1 var bodyDef:b2BodyDef; public var aBody:b2Body; public var isCurEdit:Boolean;// = false public var isSwimDown:Boolean;// = false var wasDrag:Boolean; var wasTouched:Boolean;// = false protected var objInfoParams:Array; var myXmlObj:XML; var myXmlS:String; public var strForContact:String;// = "" var flagAddSplashes:Boolean;// = false static var defaultDensity = 0; static var defaultFriction = 0.5; static var defaultRestitution = 0.5; public static var mainDensity:Number = 0.02; public static var waterMyBits:Number = 2; public static var waterMaskBits:Number = 3; public static var cantSwimMaskBits:Number = 1; public static var lastDrag:PhysicsMovie; public function PhysicsMovie(){ objInfoParams = ["x", "y", "scaleX", "scaleY", "rotation", "myDensity", "sizeBonus", "typeBonus"]; super(); cacheAsBitmap = true; myDensity = defaultDensity; collideMaskBits = waterMaskBits; } override public function beforeDelete(){ this.removeEventListener(Event.ENTER_FRAME, onCanNotSwim); removeEventListener(MouseEvent.MOUSE_DOWN, drag); removeEventListener(MouseEvent.MOUSE_UP, drop); removeEventListener(MouseEvent.DOUBLE_CLICK, doubleClick); removeEventListener(MouseEvent.MOUSE_MOVE, onMove); stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKey); } public function initMe(_arg1:PhysicsWorld){ physWorld = _arg1; addMeToWorld(); } public function swimIfCan():Boolean{ if (!canSwimInWater){ collideMaskBits = cantSwimMaskBits; setAllMyBits(true); isSwimDown = true; this.addEventListener(Event.ENTER_FRAME, onCanNotSwim); }; return (canSwimInWater); } private function addMeToWorld(){ if (physWorld.physObjs == null){ physWorld.physObjs = []; }; physWorld.physObjs.push(this); } public function makeEditable(){ buttonMode = true; mouseChildren = false; mouseEnabled = true; doubleClickEnabled = true; addEventListener(MouseEvent.MOUSE_DOWN, drag); addEventListener(MouseEvent.MOUSE_UP, drop); addEventListener(MouseEvent.DOUBLE_CLICK, doubleClick); } protected function onMove(_arg1:MouseEvent):void{ wasDrag = true; } protected function drag(_arg1){ wasTouched = true; wasDrag = false; this.startDrag(); addEventListener(MouseEvent.MOUSE_MOVE, onMove); if (lastDrag){ stage.removeEventListener(KeyboardEvent.KEY_DOWN, lastDrag.onKey); }; lastDrag = this; stage.addEventListener(KeyboardEvent.KEY_DOWN, onKey); } protected function drop(_arg1){ this.stopDrag(); removeEventListener(MouseEvent.MOUSE_MOVE, onMove); physWorld.myEditPanel.showProps(this); if (!wasDrag){ }; } protected function doubleClick(_arg1){ var _local2:PhysicsMovie = physWorld.duplicateObjAndEdit(this); physWorld.myEditPanel.showProps(_local2); } protected function onKey(_arg1:KeyboardEvent):void{ if (_arg1.charCode == String("d").charCodeAt(0)){ stage.removeEventListener(KeyboardEvent.KEY_DOWN, lastDrag.onKey); physWorld.deleteObj(this); }; } public function createMyObject(){ var _local1:Number; var _local6:Physics1Shape; var _local7:b2ShapeDef; var _local8:b2Vec2; var _local9:b2CircleDef; var _local10:b2PolygonDef; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:b2PolygonDef; var _local15:Number; var _local16:DisplayObject; var _local17:b2Vec2; bodyDef = new b2BodyDef(); bodyDef.userData = this; bodyDef.position.Set((x / physWorld.myScale), (y / physWorld.myScale)); bodyDef.angle = ((rotation / 180) * Math.PI); aBody = physWorld.m_world.CreateBody(bodyDef); var _local2:Number = Math.abs(scaleX); var _local3:Number = Math.abs(scaleY); var _local4:Number = Math.round((scaleX / _local2)); var _local5:Number = Math.round((scaleY / _local3)); for each (_local6 in myShapes) { _local8 = new b2Vec2((((_local6.x * _local2) * _local4) / physWorld.myScale), (((_local6.y * _local3) * _local5) / physWorld.myScale)); if ((_local6 is physCircle)){ _local9 = new b2CircleDef(); _local9.radius = (((_local6.width * _local2) / 2) / physWorld.myScale); _local9.localPosition = _local8; _local7 = _local9; } else { if ((_local6 is physRect)){ _local1 = _local6.rotation; _local6.rotation = 0; _local10 = new b2PolygonDef(); _local11 = (_local6.width * _local2); _local12 = (_local6.height * _local3); _local13 = _local1; if ((((_local4 == -1)) && ((_local5 == -1)))){ } else { if (_local4 == -1){ _local13 = -(_local13); } else { if (_local5 == -1){ _local13 = (180 - _local13); }; }; }; _local10.SetAsOrientedBox(((_local11 / 2) / physWorld.myScale), ((_local12 / 2) / physWorld.myScale), _local8, ((_local13 * Math.PI) / 180)); _local6.rotation = _local1; _local7 = _local10; } else { if (_local6["p1"] != null){ _local1 = _local6.rotation; _local6.rotation = 0; _local14 = new b2PolygonDef(); _local14.vertexCount = 8; _local15 = 0; while (true) { _local16 = (_local6[("p" + (_local15 + 1))] as DisplayObject); if (_local16 == null){ _local14.vertexCount = _local15; break; }; _local17 = new b2Vec2((((_local16.x * _local6.scaleX) * _local2) / physWorld.myScale), (((_local16.y * _local6.scaleY) * _local3) / physWorld.myScale)); _local14.vertices[_local15] = _local17; _local15++; }; _local6.rotation = _local1; _local7 = _local14; } else { continue; }; }; }; _local7.density = (myDensity * mainDensity); _local7.friction = ((myFriction)!=null) ? myFriction : defaultFriction; _local7.restitution = ((myRestitution)!=null) ? myRestitution : defaultRestitution; _local6.myShape = aBody.CreateShape(_local7); }; aBody.SetMassFromShapes(); setAllMyBits(false); } public function setAllMyBits(_arg1:Boolean){ var _local3:Physics1Shape; var _local2:Array = []; for each (_local3 in myShapes) { _local2.push(_local3.myShape); }; setAllMyBitsB2(_local2, _arg1); } public function setAllMyBitsB2(_arg1:Array, _arg2:Boolean){ var _local3:b2Shape; for each (_local3 in _arg1) { setToShapeMyBits(_local3); if (_arg2){ physWorld.m_world.Refilter(_local3); }; }; } public function setToShapeMyBits(_arg1:b2Shape){ _arg1.m_filter.categoryBits = collideMyBits; _arg1.m_filter.maskBits = collideMaskBits; } public function getObjectInfo():XML{ var _local3:String; var _local4:*; if (isSwimDown){ return (null); }; var _local1:String = getQualifiedClassName(this); var _local2:XML = new XML((("<" + _local1) + "/>")); for each (_local3 in objInfoParams) { if (((((this as PhysicsMovieBonus) == null)) && ((((_local3 == "sizeBonus")) || ((_local3 == "typeBonus")))))){ } else { _local4 = this[_local3]; if ((_local4 is Number)){ _local4 = (Math.round((_local4 * 1000)) / 1000); }; _local2.attribute(_local3)[0] = _local4; }; }; return (_local2); } public function setObjectInfo(_arg1:XML){ var _local2:String; var _local3:*; if (_arg1 != null){ myXmlObj = _arg1; } else { _arg1 = myXmlObj; }; if (_arg1 == null){ return; }; for each (_local2 in objInfoParams) { _local3 = _arg1.attribute(_local2)[0]; if (_local3 == null){ } else { if (!isNaN(Number(_local3))){ _local3 = Number(_local3); }; this[_local2] = _local3; }; }; } function onCanNotSwim(_arg1:Event){ if (this.alpha > 0){ this.alpha = (this.alpha - 1); if (!flagAddSplashes){ flagAddSplashes = true; addSplashes(); }; } else { removeMovie(); this.removeEventListener(Event.ENTER_FRAME, onCanNotSwim); }; } protected function removeMovie(){ this.alpha = 0; this.visible = false; parent.removeChild(this); } protected function addSplashes(){ } public function drawBody(_arg1:b2Body){ var _local2:MovieClip = (this.parent.addChild(new Symbol1Bloon()) as MovieClip); _local2.scaleX = (_local2.scaleY = 5); _arg1.m_userData = _local2; } public function drawJoint(_arg1:b2Joint){ var _local2:MovieClip = (this.parent.addChild(new electrcLine_copy()) as MovieClip); _arg1.m_userData = _local2; } } }//package TheGame.MyPhysics
Section 154
//PhysicsMovieBloon (TheGame.MyPhysics.PhysicsMovieBloon) package TheGame.MyPhysics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; public class PhysicsMovieBloon extends PhysicsMovie { var pusherBodyDef:b2BodyDef; var pusherBody:b2Body; var jointDef:b2PrismaticJointDef; var myJoint:b2PrismaticJoint; override public function beforeDelete(){ } override public function createMyObject(){ super.createMyObject(); canSwimInWater = true; createPusher(); createJoint(); myDensity = 0.5; } function createPusher(){ pusherBodyDef = new b2BodyDef(); pusherBodyDef.position.Set(aBody.GetPosition().x, (aBody.GetPosition().y + 2)); pusherBody = physWorld.m_world.CreateBody(pusherBodyDef); var _local1:b2PolygonDef = new b2PolygonDef(); _local1.SetAsBox(0.01, 0.01); var _local2:b2Shape = pusherBody.CreateShape(_local1); _local2.m_filter.categoryBits = 4; _local2.m_filter.maskBits = 4; } function createJoint(){ var _local1:b2Vec2 = new b2Vec2(0, -1); jointDef = new b2PrismaticJointDef(); jointDef.Initialize(pusherBody, aBody, pusherBody.GetWorldCenter(), _local1); jointDef.maxMotorForce = 1; jointDef.motorSpeed = 0.3; jointDef.enableMotor = true; myJoint = (physWorld.m_world.CreateJoint(jointDef) as b2PrismaticJoint); } } }//package TheGame.MyPhysics
Section 155
//PhysicsMovieBonus (TheGame.MyPhysics.PhysicsMovieBonus) package TheGame.MyPhysics { import flash.display.*; import flash.events.*; import flash.text.*; import TheGame.*; public class PhysicsMovieBonus extends PhysicsMovie { public var inside_mc:MovieClip; var myMC:MovieClip; var boxMC:MovieClip; var boxTxt:TextField; var sizeBonus:Number;// = 0 var typeBonus:Number;// = 0 var strForType:String;// = "n_" public function PhysicsMovieBonus(){ myMC = this.inside_mc; myMC.addEventListener(Event.ENTER_FRAME, onEnterFrameAppearance); } override public function beforeDelete(){ myMC.removeEventListener(Event.ENTER_FRAME, onEnterFrameAppearance); myMC.removeEventListener(Event.ENTER_FRAME, onEnterFrameDisappearance); } override public function createMyObject(){ super.createMyObject(); } function changeBonus(_arg1:String, _arg2:Number){ sizeBonus = Number(_arg1); boxTxt.text = _arg1; typeBonus = _arg2; boxMC.gotoAndStop((strForType + _arg2.toString())); } function addBonus(){ myMC.addEventListener(Event.ENTER_FRAME, onEnterFrameDisappearance); } function onEnterFrameAppearance(_arg1:Event){ if (myMC.currentFrame >= myMC.totalFrames){ myMC.gotoAndStop(myMC.totalFrames); myMC.removeEventListener(Event.ENTER_FRAME, onEnterFrameAppearance); }; if (myMC.currentFrame == 9){ boxMC = myMC.box_mc; boxTxt = boxMC.box_txt; boxTxt.text = sizeBonus.toString(); boxMC.gotoAndStop((strForType + typeBonus.toString())); }; } function onEnterFrameDisappearance(_arg1:Event){ if (myMC.currentFrame <= 1){ myMC.visible = false; this.aBody.DestroyShape(this.aBody.m_shapeList); this.physWorld.myKVolts[typeBonus] = (Number(this.physWorld.myKVolts[typeBonus]) + sizeBonus).toString(); Game.currentLevel.counterVolt.updatePopulationTxt(); Game.currentLevel.counterVolt.checkCurrentVolt(); myMC.removeEventListener(Event.ENTER_FRAME, onEnterFrameDisappearance); } else { myMC.gotoAndStop((myMC.currentFrame - 1)); }; } } }//package TheGame.MyPhysics
Section 156
//PhysicsMovieNoContact (TheGame.MyPhysics.PhysicsMovieNoContact) package TheGame.MyPhysics { import flash.events.*; import TheGame.*; public class PhysicsMovieNoContact extends PhysicsMovie { var myVolt:Volt; function fixContact(_arg1:Volt){ myVolt = _arg1; myVolt.addEventListener(Event.ENTER_FRAME, myVolt.onCanNotSwim); } override public function beforeDelete(){ if (myVolt != null){ myVolt.removeEventListener(Event.ENTER_FRAME, myVolt.onCanNotSwim); }; } } }//package TheGame.MyPhysics
Section 157
//PhysicsMovieSpin (TheGame.MyPhysics.PhysicsMovieSpin) package TheGame.MyPhysics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; public class PhysicsMovieSpin extends PhysicsMovie { var twisterBodyDef:b2BodyDef; var twisterShapeDef:b2PolygonDef; var twisterBody:b2Body; var twisterShape:b2Shape; var jointRevDef:b2RevoluteJointDef; var jointRev:b2RevoluteJoint; override public function beforeDelete(){ } override public function createMyObject(){ var _local1:Physics1Shape; super.createMyObject(); this.myDensity = 0.5; this.aBody.m_shapeList.m_density = this.myDensity; this.aBody.SetMassFromShapes(); createTwister(); createRevJoint(aBody, twisterBody, aBody.GetWorldCenter()); for each (_local1 in myShapes) { _local1.myShape.m_filter.categoryBits = 8; _local1.myShape.m_filter.maskBits = 9; physWorld.m_world.Refilter(_local1.myShape); }; } function createTwister(){ twisterBodyDef = new b2BodyDef(); twisterBodyDef.position.Set(aBody.GetPosition().x, aBody.GetPosition().y); twisterBody = physWorld.m_world.CreateBody(twisterBodyDef); twisterShapeDef = new b2PolygonDef(); twisterShapeDef.SetAsBox(0.01, 0.01); twisterShape = twisterBody.CreateShape(twisterShapeDef); twisterShape.m_filter.categoryBits = 4; twisterShape.m_filter.maskBits = 4; } function createRevJoint(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2){ jointRevDef = new b2RevoluteJointDef(); jointRevDef.Initialize(_arg1, _arg2, _arg3); jointRevDef.enableMotor = true; jointRevDef.motorSpeed = 0.5; jointRevDef.maxMotorTorque = 50; jointRev = (physWorld.m_world.CreateJoint(jointRevDef) as b2RevoluteJoint); } } }//package TheGame.MyPhysics
Section 158
//PhysicsMovWater (TheGame.MyPhysics.PhysicsMovWater) package TheGame.MyPhysics { public class PhysicsMovWater extends PhysicsMovie { public function PhysicsMovWater(){ myFriction = 1; myRestitution = 0.8; collideMyBits = waterMyBits; } override public function beforeDelete(){ } override public function createMyObject(){ super.createMyObject(); } } }//package TheGame.MyPhysics
Section 159
//PhysicsWorld (TheGame.MyPhysics.PhysicsWorld) package TheGame.MyPhysics { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import flash.utils.*; import TheGame.GameTemplate.*; import flash.system.*; public class PhysicsWorld extends Base { public var physObjs:Array; public var myScale:Number;// = 32 public var m_world:b2World; public var myEditPanel:EditPanel; public var levelFon_mc:MovieClip; public var objects_mc:Sprite; public var myKVolts:Array; public var worldZone:String; public var firstAppVolt:String; public function PhysicsWorld(){ levelFon_mc = this["levelFon_mc_"]; levelFon_mc.stop(); objects_mc = new Sprite(); this.addChild(objects_mc); } override public function beforeDelete(){ } public function getFromMeObjects(){ var _local1:PhysicsMovie; for each (_local1 in physObjs) { _local1.createMyObject(); }; } public function swapObjs(_arg1:PhysicsMovie, _arg2:PhysicsMovie){ var _local3:Number = physObjs.indexOf(_arg1); var _local4:Number = physObjs.indexOf(_arg2); var _local5:* = physObjs[_local3]; physObjs[_local3] = physObjs[_local4]; physObjs[_local4] = _local5; } public function getFullLevelText():XML{ var _local4:Number; var _local5:*; var _local6:PhysicsMovie; var _local7:XML; var _local1:XML = <world/> ; _local1.@backFrame = levelFon_mc.currentFrame.toString(); _local1.@quality = stage.quality.toString(); _local1.@kVolts = ((((((myEditPanel.simple_txt.text + "_") + myEditPanel.stat_txt.text) + "_") + myEditPanel.scotch_txt.text) + "_") + myEditPanel.swim_txt.text); _local1.@worldZone = myEditPanel.comboWorld.selectedItem.data; _local1.@firstVolt = myEditPanel.comboNewVolt.selectedItem.data; var _local2:Array = []; if (physObjs != null){ _local4 = 0; _local5 = 0; while (_local5 < physObjs.length) { _local6 = physObjs[_local5]; if ((_local6 as border_level) != null){ } else { _local7 = _local6.getObjectInfo(); if (_local7 != null){ _local1.children()[_local4] = _local7; _local4++; }; }; _local5++; }; }; var _local3 = ""; _local3 = (_local1.toXMLString() + "\n"); trace(_local3); System.setClipboard(_local3); return (_local1); } public function buildLevel(_arg1:XML){ var _local6:PhysicsMovie; var _local2:XML = _arg1; levelFon_mc.gotoAndStop(Number(_local2.@backFrame)); var _local3:String = _local2.@quality; firstAppVolt = _local2.@firstVolt; if (_local2.@worldZone == "standard"){ _local6 = new border_level(); objects_mc.addChild(_local6); _local6.initMe(this); }; var _local4:Number = _local2.children().length(); var _local5:* = 0; while (_local5 < _local4) { addPhysMovie(_local2.children()[_local5]); _local5++; }; } public function buildLevelData(_arg1:XML){ var _local2:XML = _arg1; var _local3:String = _local2.@kVolts; myKVolts = _local3.split("_"); worldZone = _local2.@worldZone; } protected function addPhysMovie(_arg1:XML=null, _arg2:String=null):PhysicsMovie{ if (_arg2 == null){ _arg2 = _arg1.name(); }; var _local3:Class = Class(getDefinitionByName(_arg2)); var _local4:PhysicsMovie = new (_local3); objects_mc.addChild(_local4); if (_arg1 != null){ _local4.setObjectInfo(_arg1); }; _local4.initMe(this); return (_local4); } protected function resetLevelInfo(){ var _local1:PhysicsMovie; for each (_local1 in physObjs) { _local1.setObjectInfo(null); }; } protected function makeEditable(){ var _local1:PhysicsMovie; for each (_local1 in physObjs) { _local1.makeEditable(); }; } public function addObjAndEdit(_arg1:String, _arg2:Number, _arg3:Number):PhysicsMovie{ trace("edit > add"); var _local4:PhysicsMovie = addPhysMovie(null, _arg1); _local4.makeEditable(); _local4.x = _arg2; _local4.y = _arg3; return (_local4); } public function duplicateObjAndEdit(_arg1:PhysicsMovie):PhysicsMovie{ trace("edit > duplicate"); var _local2:PhysicsMovie = addPhysMovie(_arg1.getObjectInfo()); _local2.makeEditable(); return (_local2); } public function deleteObj(_arg1:PhysicsMovie){ var _local3:PhysicsMovie; trace("edit > delete"); var _local2:* = 0; while (_local2 < physObjs.length) { _local3 = physObjs[_local2]; if (_arg1 == _local3){ _arg1.parent.removeChild(_arg1); physObjs.splice(_local2, 1); break; }; _local2++; }; } } }//package TheGame.MyPhysics
Section 160
//CreditsScreen (TheGame.Screens.CreditsScreen) package TheGame.Screens { import flash.display.*; import flash.events.*; import TheGame.GameTemplate.*; public class CreditsScreen extends Screen { public var game_border:MovieClip; public var menu_btn:myBtnBig; var menu_button:MyBtn; public function CreditsScreen(){ menu_button = menu_btn; menu_button.addEventListener(MouseEvent.CLICK, onClickMenu); } override public function afterCreate(){ myGame.gameBorder.visible = false; } override public function beforeDelete(){ myGame.gameBorder.visible = true; menu_button.removeEventListener(MouseEvent.CLICK, onClickMenu); } } }//package TheGame.Screens
Section 161
//Level (TheGame.Screens.Level) package TheGame.Screens { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.text.*; import TheGame.*; import TheGame.GameTemplate.*; import flash.ui.*; public class Level extends Screen { public var more_games_btn_:myBtnBig; public var button_pause_:button_pause; public var next_btn_:myBtnBig; public var exit_btn_:myBtnBig; public var counter_volt:voltMode; public var again_btn_:myBtnBig; public var walkthrough_btn_:myBtnBig; public var winEnd_:windowInGame; public var quality_btn:MovieClip; public var connect_mc:MovieClip; public var counter_time:counter_timer; public var workZone_mc_:workZone; public var connect_txt:TextField; public var winEnd:PopupWindow; public var buttonPause:PauseBtn; public var quality_button:QButton; public var workZone_mc:WorkZone; public var counterVolt:VoltModeBtn; public var counterTime:CounterTimer; var again_btn:MyBtn; var exit_btn:MyBtn; var next_btn:MyBtn; var walk_btn:MyBtn; var more_games_btn:MyBtn; public var modeGame:String; public var myNumber:Number; var pauseTimer:Timer; public static const MODE_TOWER:String = "tower"; public static const MODE_LEVEL:String = "level"; public function Level(){ workZone_mc = workZone_mc_; connect_txt = connect_mc.connect_txt_; winEnd = winEnd_; again_btn = again_btn_; exit_btn = exit_btn_; next_btn = next_btn_; walk_btn = walkthrough_btn_; more_games_btn = more_games_btn_; quality_button = quality_btn.in_mc; again_btn.addEventListener(MouseEvent.CLICK, goGameAgain); exit_btn.addEventListener(MouseEvent.CLICK, goExit); walk_btn.addEventListener(MouseEvent.CLICK, goWalk); more_games_btn.addEventListener(MouseEvent.CLICK, goMoreGames); quality_button.addEventListener(MouseEvent.CLICK, quality_button.onClickQ); next_btn.visible = false; buttonPause = button_pause_; buttonPause.initStop(this); connect_txt.text = ""; modeGame = MODE_LEVEL; counterVolt = counter_volt; counterTime = counter_time; } override public function afterCreate(){ stage.quality = (QButton.flagPress) ? StageQuality.HIGH : StageQuality.MEDIUM; Game.currentLevel = this; myGame.gameBorder.visible = false; workZone_mc.initLevel(this); connect_txt.text = ("LEVEL " + (myNumber + 1).toString()); stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownSpace); myGame.addWalkthrough(); } override public function beforeDelete(){ myGame.lastStateVoltModeBtn = counterVolt.currentVolt; myGame.gameBorder.visible = true; workZone_mc.beforeDelete(); stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyDownSpace); again_btn.removeEventListener(MouseEvent.CLICK, goGameAgain); exit_btn.removeEventListener(MouseEvent.CLICK, goExit); walk_btn.removeEventListener(MouseEvent.CLICK, goWalk); more_games_btn.removeEventListener(MouseEvent.CLICK, goMoreGames); quality_button.removeEventListener(MouseEvent.CLICK, quality_button.onClickQ); if (pauseTimer != null){ pauseTimer.stop(); pauseTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, onPauseTimer); } else { if (myGame.catcher){ myGame.catcher.end(); }; }; } public function showVoltModes(_arg1:Array){ counterVolt.init(_arg1, this, 0); } function onPauseTimer(_arg1:Event){ myGame.catcher.end(); myGame.goAtFrame(Game.FRAME_SELECT_GAME); } public function levelSuccess(){ if (myGame.flagWalk){ pauseTimer = new Timer(500, 1); pauseTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onPauseTimer); pauseTimer.start(); return; }; workZone_mc.transferAllVoltInState(Volt.STATE_GLAD); workZone_mc.mouseVoltFalse(); var _local1:Number = counterTime.stopWork(); var _local2:Number = (counterVolt.endLevelVolt() * 100); myGame.scoreGame = (_local2 + _local1); myGame.openOneLevel((myNumber + 1)); winEnd.showMessage(this, "Level done! ", ((((("Time score - " + _local1) + "\nUnused volts score - ") + _local2) + "\nTotal game score - ") + myGame.scoreGame.toString()), true); } public function levelFailed(_arg1:String){ workZone_mc.transferAllVoltInState(Volt.STATE_SAD); winEnd.showMessage(this, _arg1, "", false); counterTime.stopWork(); workZone_mc.mouseVoltFalse(); } private function goSubmit(_arg1:MouseEvent){ } private function goExit(_arg1:MouseEvent):void{ buttonPause.removeStop(); trace(("myGame.myGameOver " + myGame.myGameOver)); if (((myGame.myGameOver) && ((myGame.scoreGame > myGame.lastSubmitRecord)))){ myGame.goAtFrame(Game.FRAME_SUBMIT); } else { myGame.goAtFrame(Game.FRAME_SELECT_GAME); }; } public function goGameAgain(_arg1:MouseEvent){ forGoGameAgain(); } public function goWalk(_arg1:Event){ Game.openPage(Game.LINK_WALKTHROUGH); } public function goMoreGames(_arg1:Event){ Game.goToSponsorMain(); } function onKeyDownSpace(_arg1:KeyboardEvent){ if ((((((_arg1.keyCode == Keyboard.SPACE)) || ((_arg1.charCode == String("r").charCodeAt(0))))) || ((_arg1.charCode == String("R").charCodeAt(0))))){ forGoGameAgain(); }; } public function forGoGameAgain(){ if (modeGame == MODE_LEVEL){ myGame.goToGame(modeGame, myNumber); } else { myGame.goToGame(modeGame); }; } public function onClickNext(_arg1:Event){ myGame.goToGame(MODE_LEVEL, (myNumber + 1), true); } } }//package TheGame.Screens
Section 162
//MenuScreen (TheGame.Screens.MenuScreen) package TheGame.Screens { import flash.events.*; import TheGame.*; import TheGame.GameTemplate.*; public class MenuScreen extends Screen { public var record_btn:myBtnBig; public var pointer_mc_:pointer_for_menu_button; public var play_on_f_btn_:myBtnBigcopy; var pointer_mc:PointerMenuBtn; var recordBtn:MyBtn; override public function afterCreate(){ pointer_mc = pointer_mc_; pointer_mc.afterCreatePointer(myGame); recordBtn = record_btn; recordBtn.addEventListener(MouseEvent.CLICK, onRecord); myGame.useSpecialMouseClip(false); } override public function beforeDelete(){ myGame.useSpecialMouseClip(true); recordBtn.removeEventListener(MouseEvent.CLICK, onRecord); } function onRecord(_arg1:MouseEvent){ trace(("score " + myGame.scoreGame)); myGame.goAtFrame(Game.FRAME_SUBMIT); } function onPlayF(_arg1:Event){ Game.openPage(Game.LINK_PLAY_VOLT_CONNECT_FACEBOOK); } } }//package TheGame.Screens
Section 163
//Screen (TheGame.Screens.Screen) package TheGame.Screens { import flash.events.*; import TheGame.*; import TheGame.GameTemplate.*; public class Screen extends ScreenBase { public function get myGame():Game{ return ((myGame_ as Game)); } public function set myGame(_arg1:Game){ myGame_ = _arg1; } function onClickMenu(_arg1:Event){ myGame.goAtFrame(Game.FRAME_MENU); } } }//package TheGame.Screens
Section 164
//SelectGame (TheGame.Screens.SelectGame) package TheGame.Screens { import flash.display.*; import flash.events.*; import flash.text.*; import TheGame.*; import TheGame.GameTemplate.*; public class SelectGame extends Screen { public var game_border:MovieClip; public var menu_btn:myBtnBig; public var score_txt:TextField; public var mode_evolution_:MovieClip; var mode_evolution:MovieClip; var mode_high_btn:MovieClip; var menu_button:MyBtn; public var scoreTxt:TextField; public function SelectGame(){ mode_evolution = mode_evolution_; menu_button = menu_btn; menu_button.addEventListener(MouseEvent.CLICK, onClickMenu); scoreTxt = score_txt; stop(); } override public function afterCreate(){ stage.quality = StageQuality.HIGH; myGame.gameBorder.visible = false; scoreTxt.text = ("TOTAL SCORE\n" + myGame.scoreGame); if (myGame.openLevel[0] == 0){ myGame.openOneLevel(0); }; trace(("open " + myGame.openLevel)); gotoAndStop(myGame.findLastLevel()); var _local1:* = 0; while (_local1 < LevelsInfo.kLevels) { (mode_evolution[("lev" + (_local1 + 1))] as ButtonLevel).initButton(this, _local1, myGame.openLevel[_local1]); _local1++; }; } override public function beforeDelete(){ myGame.gameBorder.visible = true; var _local1:* = 0; while (_local1 < LevelsInfo.kLevels) { if (myGame.openLevel[_local1] == 1){ (mode_evolution[("lev" + (_local1 + 1))] as ButtonLevel).beforeDeleteButtonLevel(); }; _local1++; }; menu_button.removeEventListener(MouseEvent.CLICK, onClickMenu); } private function clickHighMode(_arg1:MouseEvent):void{ myGame.goToGame(Level.MODE_TOWER); } } }//package TheGame.Screens
Section 165
//Submit (TheGame.Screens.Submit) package TheGame.Screens { import flash.display.*; import flash.events.*; import flash.text.*; import TheGame.*; import TheGame.GameTemplate.*; public class Submit extends Screen { public var submit_btn_:myBtnBig; public var game_border:MovieClip; public var score_txt:TextField; public var menu_btn_:myBtnBig; public var map_btn_:myBtnBig; var menu_btn:MyBtn; var submit_btn:MyBtn; var map_btn:MyBtn; var scoreTxt:TextField; public function Submit(){ menu_btn = menu_btn_; submit_btn = submit_btn_; map_btn = map_btn_; menu_btn.addEventListener(MouseEvent.CLICK, goMenu); submit_btn.addEventListener(MouseEvent.CLICK, onClickSubmit); map_btn.addEventListener(MouseEvent.CLICK, onClickMap); scoreTxt = score_txt; submit_btn.visible = (map_btn.visible = (scoreTxt.visible = false)); } override public function afterCreate(){ myGame.gameBorder.visible = false; scoreTxt.text = myGame.scoreGame.toString(); myGame.useSpecialMouseClip(false); myGame.armorRecord(); } override public function beforeDelete(){ myGame.gameBorder.visible = true; menu_btn.removeEventListener(MouseEvent.CLICK, goMenu); submit_btn.removeEventListener(MouseEvent.CLICK, onClickSubmit); map_btn.removeEventListener(MouseEvent.CLICK, onClickMap); myGame.useSpecialMouseClip(true); } function goMenu(_arg1:Event){ myGame.submitNewRecord(false); myGame.goAtFrame(Game.FRAME_MENU); } function onClickSubmit(_arg1:Event){ myGame.submitNewRecord(true); myGame.goAtFrame(Game.FRAME_MENU); } function onClickMap(_arg1:Event){ myGame.submitNewRecord(false); myGame.goAtFrame(Game.FRAME_SELECT_GAME); } } }//package TheGame.Screens
Section 166
//AnimForButtonLevel (TheGame.AnimForButtonLevel) package TheGame { import TheGame.GameTemplate.*; public class AnimForButtonLevel extends Base { public function AnimForButtonLevel(){ this.gotoAndPlay(MyFunc.random(this.totalFrames)); } override public function beforeDelete(){ } } }//package TheGame
Section 167
//ButtonFunflow (TheGame.ButtonFunflow) package TheGame { import flash.events.*; import TheGame.GameTemplate.*; public class ButtonFunflow extends Base { public var myPointer:PointerMenuBtn; var text:String;// = "funflow" public function ButtonFunflow(){ gotoAndStop("out"); addEventListener(MouseEvent.CLICK, onClickFunflow); addEventListener(MouseEvent.ROLL_OVER, onRollOver); addEventListener(MouseEvent.ROLL_OUT, onRollOut); } override public function afterCreate(){ } override public function beforeDelete(){ removeEventListener(MouseEvent.CLICK, onClickFunflow); removeEventListener(MouseEvent.ROLL_OVER, onRollOver); removeEventListener(MouseEvent.ROLL_OUT, onRollOut); } function onClickFunflow(_arg1:Event){ Game.goToSponsorMain(); } function onRollOver(_arg1:Event){ gotoAndStop("over"); if (myPointer != null){ myPointer.gotoAndStop((myPointer.findMyIndex(this) + 2)); }; } function onRollOut(_arg1:Event){ gotoAndStop("out"); if (myPointer != null){ myPointer.gotoAndStop(0); }; } public function get Text():String{ return (text); } } }//package TheGame
Section 168
//ButtonLevel (TheGame.ButtonLevel) package TheGame { import flash.display.*; import flash.events.*; import flash.text.*; import TheGame.Screens.*; import TheGame.GameTemplate.*; public class ButtonLevel extends Base { public var x_txt_:TextField; public var for_event_:MovieClip; public var x_txt:TextField; public var myLevel:Number; var forEvent:MovieClip; var myScreen:SelectGame; var openFlag:Boolean;// = false var startY:Number; var oldText:String;// = "" public function ButtonLevel(){ stop(); x_txt = x_txt_; startY = x_txt.y; forEvent = for_event_; } override public function beforeDelete(){ forEvent.removeEventListener(MouseEvent.CLICK, clickOneLevel); forEvent.removeEventListener(MouseEvent.ROLL_OVER, onRollOverLevel); forEvent.removeEventListener(MouseEvent.ROLL_OUT, onRollOutLevel); } public function initButton(_arg1:SelectGame, _arg2:Number, _arg3:Number){ myScreen = _arg1; myLevel = _arg2; openFlag = ((_arg3)==1) ? true : false; x_txt.text = (myLevel + 1).toString(); if (openFlag){ buttonMode = true; forEvent.addEventListener(MouseEvent.CLICK, clickOneLevel); forEvent.addEventListener(MouseEvent.ROLL_OVER, onRollOverLevel); forEvent.addEventListener(MouseEvent.ROLL_OUT, onRollOutLevel); } else { gotoAndStop("close_level"); changeFormatTxt("close_level"); }; } public function beforeDeleteButtonLevel(){ forEvent.removeEventListener(MouseEvent.CLICK, clickOneLevel); forEvent.removeEventListener(MouseEvent.ROLL_OVER, onRollOverLevel); forEvent.removeEventListener(MouseEvent.ROLL_OUT, onRollOutLevel); } function clickOneLevel(_arg1:MouseEvent){ myScreen.myGame.goToGame(Level.MODE_LEVEL, myLevel); } function onRollOverLevel(_arg1:Event){ gotoAndStop("over_level"); changeFormatTxt("over_level"); oldText = myScreen.scoreTxt.text; myScreen.scoreTxt.text = ("LEVEL SCORE\n" + myScreen.myGame.scoreForLevel[myLevel]); } function onRollOutLevel(_arg1:Event){ gotoAndStop("open_level"); changeFormatTxt("open_level"); if (oldText != ""){ myScreen.scoreTxt.text = oldText; oldText = ""; }; } function changeFormatTxt(_arg1:String){ if (_arg1 == "over_level"){ x_txt.textColor = 0xFF9900; x_txt.y = (startY + 3); x_txt.scaleX = (x_txt.scaleY = 1.1); } else { x_txt.y = startY; x_txt.scaleX = (x_txt.scaleY = 1); x_txt.textColor = ((_arg1)=="open_level") ? 12190138 : 12476677; }; } } }//package TheGame
Section 169
//CounterTimer (TheGame.CounterTimer) package TheGame { import flash.display.*; import flash.events.*; import flash.text.*; import TheGame.GameTemplate.*; public class CounterTimer extends Base { public var clock_mc_:MovieClip; public var my_txt:TextField; var startValue:Number;// = 200 var calcSecond:Number; var _currentValue:Number; var saveCalcSecond:Number;// = -1 var myTxt:TextField; var clock_mc:MovieClip; public function CounterTimer(){ myTxt = my_txt; clock_mc = clock_mc_; currentValue = startValue; } override public function beforeDelete(){ this.removeEventListener(Event.ENTER_FRAME, onEnterFrameMy); } function startWork(){ calcSecond = ((saveCalcSecond)!=-1) ? saveCalcSecond : 0; saveCalcSecond = -1; this.addEventListener(Event.ENTER_FRAME, onEnterFrameMy); clock_mc.play(); } function onEnterFrameMy(_arg1:Event){ if (calcSecond < 23){ calcSecond = (calcSecond + 1); } else { calcSecond = 0; if (currentValue > 0){ currentValue = (currentValue - 1); } else { if (this.hasEventListener(Event.ENTER_FRAME)){ this.removeEventListener(Event.ENTER_FRAME, onEnterFrameMy); }; }; }; } public function stopWork():Number{ calcSecond = 0; if (this.hasEventListener(Event.ENTER_FRAME)){ this.removeEventListener(Event.ENTER_FRAME, onEnterFrameMy); }; clock_mc.stop(); return (currentValue); } public function pauseWork(){ saveCalcSecond = calcSecond; if (this.hasEventListener(Event.ENTER_FRAME)){ this.removeEventListener(Event.ENTER_FRAME, onEnterFrameMy); }; clock_mc.stop(); } public function get currentValue():Number{ return (_currentValue); } public function set currentValue(_arg1:Number):void{ _currentValue = _arg1; myTxt.text = _arg1.toString(); } } }//package TheGame
Section 170
//DocClass (TheGame.DocClass) package TheGame { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.net.*; import TheGame.GameTemplate.*; import com.novelgames.flashgames.highscores.*; import flash.system.*; public dynamic class DocClass extends Base { public var start_btn:myBtnBig; public var load_mc:MovieClip; public var high_scores:HighScores; public var title_mc:MovieClip; public var __setPropDict:Dictionary; var tt_mc:ScreenSponsorSplash; var loadMc:MovieClip; var myLoader:Loader; var visibleMc:MovieClip; var myTimer:Timer; var abs_url:String;// = "http://agi.armorgames.com/assets/agi/ABS.swf" var abs; var startBtn:MyBtn; var agMC:MovieClip; var titleMc:MovieClip; var flagLoadMathDaily:Boolean;// = true static var iAm:DocClass; static var blockFlag:Boolean = false; public function DocClass(){ __setPropDict = new Dictionary(true); super(); addFrameScript(0, frame1, 1, frame2); stop(); iAm = this; loadMc = load_mc; startBtn = start_btn; startBtn.visible = false; titleMc = title_mc; if (loaderInfo.url.indexOf("armorgames.com") < 0){ blockFlag = true; visible = false; return; }; Security.allowDomain(abs_url); var _local1:URLRequest = new URLRequest(abs_url); var _local2:Loader = new Loader(); _local2.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); _local2.load(_local1); loaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoadProgress); loaderInfo.addEventListener(Event.COMPLETE, onLoadComplete); startBtn.addEventListener(MouseEvent.CLICK, onStart); __setProp_high_scores_Scene1_Highscores_0(); } function loadComplete(_arg1:Event):void{ abs = _arg1.currentTarget.content; addChild(abs); swapChildren(abs, titleMc); abs.show({x:175, y:132}); } function onMyPr(_arg1:ProgressEvent){ var _local2:Number = Math.round(((_arg1.bytesLoaded / _arg1.bytesTotal) * 100)); } function completeLoad(_arg1:Event){ myTimer = new Timer(3000, 1); myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onMyTimer); myTimer.start(); } function onMyTimer(_arg1:Event){ removeChild(myLoader); flagLoadMathDaily = true; myLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, completeLoad); myTimer.stop(); myTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, onMyTimer); if (!loaderInfo.hasEventListener(Event.COMPLETE)){ play(); }; } public function get isKongregateOrSimilar():Boolean{ return ((loaderInfo.url.toLowerCase().indexOf("kongregate.com") >= 0)); } function onLoadProgress(_arg1:ProgressEvent){ var _local2:Number = Math.round(((_arg1.bytesLoaded / _arg1.bytesTotal) * 100)); trace(("load " + _local2)); loadMc.gotoAndStop(_local2); } function onLoadComplete(_arg1:Event){ loaderInfo.removeEventListener(ProgressEvent.PROGRESS, onLoadProgress); loaderInfo.removeEventListener(Event.COMPLETE, onLoadComplete); loadMc.visible = false; startBtn.visible = true; if (flagLoadMathDaily){ }; } function onStart(_arg1:MouseEvent){ addChild((agMC = new armorgames_intro())); agMC.inside_mc.addEventListener(Event.ENTER_FRAME, introEnterFrame); agMC.addEventListener(MouseEvent.CLICK, armorClick); startBtn.removeEventListener(MouseEvent.CLICK, onStart); } function introEnterFrame(_arg1:Event){ if (agMC.inside_mc.currentFrame >= agMC.inside_mc.totalFrames){ gotoAndStop(2); try { abs.hide(); } catch(e:Error) { }; agMC.inside_mc.stop(); agMC.inside_mc.removeEventListener(Event.ENTER_FRAME, introEnterFrame); agMC.removeEventListener(MouseEvent.CLICK, armorClick); removeChild(agMC); removeChild(titleMc); }; } function armorClick(_arg1:MouseEvent){ Game.goToSponsorMain(); } function __setProp_high_scores_Scene1_Highscores_0(){ try { high_scores["componentInspectorSetting"] = true; } catch(e:Error) { }; high_scores.afterShowAction = ""; high_scores.afterSubmitAction = ""; high_scores.allowSubmitAsGuest = true; high_scores.alwaysReloadScores = false; high_scores.enabled = true; high_scores.encrypted = true; high_scores.forgetPasswordURL = "http://www.mathdaily.com/help/67-trouble-logging-in.html"; high_scores.gameID = "99"; high_scores.gameIDFlashVars = "gameID"; high_scores.gameName = "Volt Connect"; high_scores.gameNameFlashVars = "gameName"; high_scores.guestName = "Guest"; high_scores.hashKey = "@dj8@$#!@fld9d87sh24030sj3np23875j4DERRFD!@30548@"; high_scores.loadScoresURL = "http://www.mathdaily.com/highscore/loadScores.php"; high_scores.maxNoOfScores = 100; high_scores.playerIDFlashVars = "playerID"; high_scores.playerNameFlashVars = "playerName"; high_scores.registerURL = "http://www.mathdaily.com/component/user/?task=register"; high_scores.saveScoreURL = "http://www.mathdaily.com/highscore/saveScore.php"; high_scores.shareSendEmailURL = "http://www.mathdaily.com/highscore/sendEmail.php"; high_scores.shareText = "I scored SCORE playing GAMENAME"; high_scores.shareURL = "http://www.mathdaily.com/fun-brain-games/78-volt-connect.html"; high_scores.showTableAfterSave = true; high_scores.siteID = "1"; high_scores.siteIDFlashVars = "siteID"; high_scores.submitType = "noPrompt"; high_scores.visible = true; try { high_scores["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_start_btn_Scene1_Layer6_0(){ if ((((__setPropDict[start_btn] == undefined)) || (!((int(__setPropDict[start_btn]) == 1))))){ __setPropDict[start_btn] = 1; try { start_btn["componentInspectorSetting"] = true; } catch(e:Error) { }; start_btn.MinWidth = 180; start_btn.Text = "start"; try { start_btn["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function frame1(){ __setProp_start_btn_Scene1_Layer6_0(); } function frame2(){ stop(); } } }//package TheGame
Section 171
//FirstAppearanceVolt (TheGame.FirstAppearanceVolt) package TheGame { import flash.display.*; import flash.events.*; import TheGame.Screens.*; import TheGame.GameTemplate.*; public class FirstAppearanceVolt extends Base { public var inside_mc_:MovieClip; public var next_btn:myBtnBig; var myLevel:Level; var myFrame:String; var next_button:MyBtn; var inside_mc:MovieClip; override public function beforeDelete(){ next_button.removeEventListener(MouseEvent.CLICK, onClickNext); } function initMe(_arg1:Level, _arg2:String){ myLevel = _arg1; myFrame = (_arg2 + "_frame"); next_button = next_btn; next_button.addEventListener(MouseEvent.CLICK, onClickNext); inside_mc = inside_mc_; inside_mc.gotoAndStop(myFrame); myLevel.counterTime.pauseWork(); } function onClickNext(_arg1:Event){ visible = false; myLevel.counterTime.startWork(); myLevel.removeChild(this); } } }//package TheGame
Section 172
//Game (TheGame.Game) package TheGame { import flash.display.*; import flash.utils.*; import flash.events.*; import TheGame.MyPhysics.*; import com.touchmypixel.peepee.utils.*; import flash.net.*; import flash.text.*; import TheGame.Screens.*; import TheGame.GameTemplate.*; import com.api.as3.evnt.*; import flash.media.*; import com.novelgames.flashgames.highscores.*; import com.api.as3.*; import flash.ui.*; import flash.system.*; public class Game extends GameBase { public var game_border:MovieClip; public var mouse_mc:MovieClip; public var caption_mc_:MovieClip; public var screens_mc_:MovieClip; public var cap_txt_:TextField; public var copyright_txt_:TextField; public var button_sound_:button_for_sound; var apiTtg:API; var ttgAuthUrl:String; var ttgUserLogeedIn:Boolean; public var highScores:HighScores; private var _scoreGame:Number;// = 0 var _lastSubmitRecord:Number;// = 0 var _scoreForLevel:Array; var _openLevel:Array; var _flagSoundOn:Boolean; var _myGameOver:Boolean; var _flagFirstAppVolt:Array; var _lastStateVoltModeBtn:Number; public var mainSound:SoundFabric; public var editPanel_mc:EditPanel; public var gameBorder:MovieClip; var buttonSound:ButtonSoundOnOff; public var mouseMc:MovieClip; var musics_game:Array; var musics_menu:Array; var arrayGoodMusic:Array; var last_music:String;// = "" var lastInd:Number; public var musicVol:Number;// = 0.9 public var flagWalk:Boolean;// = false public var catcher:MouseCatcher; var clipMouse:MovieClip; public var isWrite:Boolean;// = false var agi_url:String;// = "http://agi.armorgames.com/assets/agi/AGI.swf" var devKey:String;// = "f6b2f7bbabf258b1da53eb2c1203da39" var gameKey:String;// = "volt-connect" var agi; var flagMac:Boolean; var currentWindow:Base; var myPrevFrame:Number; public static const FRAME_GAME:String = "game"; public static const FRAME_SUBMIT:String = "submit"; public static const FRAME_SELECT_GAME:String = "select_game"; public static const FRAME_MENU:String = "menu"; public static const FRAME_CREDITS:String = "credits"; public static const LINK_FUNFLOW_LOGO:String = "http://apps.facebook.com/funflow/games/?ref=volt-connect_funflow"; public static const LINK_PLAY_VOLT_CONNECT_FACEBOOK:String = "http://apps.facebook.com/funflow/games/?gameId=75&ref=volt-connect"; public static const LINK_MORE_GAMES:String = "http://apps.facebook.com/funflow/games/?ref=volt-connect"; public static const LINK_DOWNLOAD_GAME:String = "http://apps.facebook.com/funflow/download.jsp?ref=volt-connect"; public static const LINK_BETWEEN_LEVEL:String = "http://www.facebook.com/sharer.php?u=http%3A%2F%2Ffacebook.king.com%2Ffacebook%2Fkinggames%2Fgames%2Fshare.jsp%3FgameId%3D75"; public static const LINK_WALKTHROUGH:String = "http://armorgames.com/guide/volt-connect-video-solution"; static const SPONSOR_MAIN:String = "http://armorgames.com"; static const SPONSOR_DOWNLOAD:String = "http://armorgames.com"; static const SPONSOR_PLAY:String = "http://armorgames.com"; static const SPONSOR_HIGHSCORES:String = "http://armorgames.com"; public static const SPONSOR_BETWEEN_LEVEL:String = ""; public static var stringForWater:String = "I can't swim!"; public static var stringForNoContact:String = "I'm killed..."; public static var iAmGame:Game; public static var kongregate; public static var currentLevel:Level; public static var voltAnimationCache:AnimationCache; public function Game(){ var _local11:String; musics_game = ["loop01", "loop02", "loop03", "loop05"]; musics_menu = ["Breathless"]; arrayGoodMusic = [[0, 1], [0, 1, 2, 3], [0, 1, 2, 3], [0, 3]]; GameBase.projectName = "VoltConnect"; super(); if (isKongregateOrSimilar){ initKongAPI(); }; MindJoltApi.createMe(parent); Security.allowDomain(agi_url); var _local1:URLRequest = new URLRequest(agi_url); var _local2:Loader = new Loader(); _local2.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); _local2.load(_local1); copyright_txt = copyright_txt_; cap_txt = cap_txt_; caption_mc = caption_mc_; screens_mc = screens_mc_; gameBorder = game_border; buttonSound = button_sound_; mouseMc = mouse_mc; highScores = parent["high_scores"]; editPanel_mc = new editPanel(); editPanel_mc.initMe([pBall, pBall2, pBallSpin, pBallSpin2, pBloon1, pBloon2, pBoard, pBoard2, pBonusBox, pBox1, pBox2, pBox3, pCane1, pCane2, pCane3, pNoContact, pNoContactLittle, pNoContactBig, pEgg, pGround1, pOval, pOval2, pPlank, pPlatform1, pPlatform2, pPlatform3, pPuddle, pStone, pWater, volt1, volt2, volt3, volt4]); editPanel_mc.visible = false; addChild(editPanel_mc); voltAnimationCache = AnimationCache.getInstance(); voltAnimationCache.replaceExisting = true; var _local3:Array = ["glad", "sad", "usual"]; var _local4:* = 0; while (_local4 < 4) { for each (_local11 in _local3) { voltAnimationCache.cacheAnimation(Volt.getLibraryName(_local4, _local11)); }; _local4++; }; voltAnimationCache.cacheAnimation("electric_line_in"); var _local5:Number = Volt.minD; while (_local5 <= Volt.maxD) { voltAnimationCache.cacheAnimation(("electric_line_in_" + String(_local5))); _local5 = (_local5 + Volt.jointStepX); }; _scoreForLevel = saver.getData("scoreLevel", initArray()); _lastSubmitRecord = saver.getData("lastSubmitRec", 0); _scoreGame = summArray(_scoreForLevel); _openLevel = saver.getData("openLevelInGame", initArray()); _flagSoundOn = saver.getData("flagSoundOnOff", true); _myGameOver = saver.getData("myGameOv", false); _flagFirstAppVolt = saver.getData("flFirstAppVolt", []); _lastStateVoltModeBtn = saver.getData("lastStateVoltMode", 0); if (flagWalk){ _openLevel = initArray(1); }; randomNextMusic(null); buttonSound.initButton(this); var _local6:String = Capabilities.version; var _local7:Array = _local6.split(","); var _local8:Number = _local7.length; var _local9:Array = _local7[0].split(" "); var _local10:String = (_local9[0] as String).toLowerCase(); flagMac = ((_local10)!="mac") ? false : true; mouseMc.stop(); useSpecialMouseClip(true); iAmGame = this; if (flagWalk){ goAtFrame(Game.FRAME_SELECT_GAME); } else { goAtFrame(Game.FRAME_MENU); }; } function loadComplete(_arg1:Event):void{ agi = _arg1.currentTarget.content; addChild(agi); agi.init(devKey, gameKey); } function onApiTtg(_arg1:APIEvents){ var _local2:String; trace(("onApiTtg " + _arg1.type)); switch (_arg1.type){ case APIEvents.STARTGAME: _local2 = _arg1.data.username; ttgUserLogeedIn = (_arg1.data.authed == 1); trace(_local2, ttgUserLogeedIn); if (!ttgUserLogeedIn){ apiTtg.getAuthUrl(); }; break; case APIEvents.AUTHURL: ttgShowLogin(_arg1); break; case APIEvents.IO_ERROR: break; }; } function ttgShowLogin(_arg1:APIEvents){ ttgAuthUrl = _arg1.data.authurl; var _local2:WinTtgLogin = new winTtgLogin(); _local2.myGame = this; showWinOnScreen(null, false); showWinOnScreen(_local2); } function ttgGoLogin(){ goToLink(ttgAuthUrl, false); } public function ttgGiveScore(_arg1:String, _arg2:Number){ if (ttgUserLogeedIn){ apiTtg.giveScore(_arg1, String(_arg2)); }; } public function hoodamathRecord(){ var _local1:HoodaScore30 = new HoodaScore30(0, 0, "volt001", "DESC"); parent["hoodamath_clip"].addChild(_local1); _local1.execFunction(afterScore); _local1.checkScoreboard(scoreGame); submitNewRecord(); } function afterScore(){ goAtFrame(Game.FRAME_MENU); } public function mathdailyRecordHighScores(){ trace(("record " + scoreGame)); highScores.showEnterHighScore(scoreGame); submitNewRecord(); } public function mathdailyShowHighScores(){ trace("show"); highScores.showHighScores(); } public function armorRecord(){ agi.showScoreboardSubmit(scoreGame); submitNewRecord(); } public function armorHighscores(){ agi.showScoreboardList(); } function showWinOnScreen(_arg1:Base, _arg2:Boolean=true){ if (_arg2){ screens_mc.addChild((currentWindow = _arg1)); currentWindow.afterCreate(); } else { if (currentWindow){ currentWindow.beforeDelete(); screens_mc.removeChild(currentWindow); currentWindow = null; }; }; } public function useSpecialMouseClip(_arg1:Boolean){ mouseMc.mouseEnabled = false; mouseMc.visible = _arg1; if (_arg1){ mouseMc.startDrag(true); stage.addEventListener(MouseEvent.MOUSE_MOVE, moveMouse); stage.addEventListener(MouseEvent.CLICK, showMyMouse); }; } public function mouseGotoAndStop(_arg1:Number){ if (_arg1 == 5){ _arg1 = 6; }; if (myPrevFrame == _arg1){ return; }; if (_arg1 < 5){ Mouse.hide(); } else { Mouse.show(); }; mouseMc.gotoAndStop(_arg1); myPrevFrame = _arg1; } override public function beforeDelete(){ stage.removeEventListener(MouseEvent.MOUSE_MOVE, moveMouse); stage.removeEventListener(MouseEvent.CLICK, showMyMouse); mainSound.sChannel.removeEventListener(Event.SOUND_COMPLETE, randomNextMusic); } function initArray(_arg1:Number=0):Array{ var _local2:Array = []; var _local3:* = 0; while (_local3 < LevelsInfo.kLevels) { _local2[_local3] = _arg1; _local3++; }; return (_local2); } public function goToGame(_arg1:String, _arg2:Number=0, _arg3:Boolean=false){ var _local4:Level = new level(); _local4.modeGame = _arg1; _local4.myNumber = _arg2; goFrame(_local4); stage.focus = stage; } public function goAtFrame(_arg1:String){ switch (_arg1){ case Game.FRAME_MENU: goFrame(new menu_screen_clip()); break; case Game.FRAME_CREDITS: goFrame(new credits_screen_clip()); break; case Game.FRAME_SUBMIT: goFrame(new screenSubmit()); break; case Game.FRAME_SELECT_GAME: goFrame(new screenSelectGame(), ""); break; }; mouseGotoAndStop(5); } function summArray(_arg1:Array):Number{ var _local2:Number = 0; var _local3:* = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + _arg1[_local3]); _local3++; }; return (_local2); } public function openOneLevel(_arg1:Number){ _openLevel[_arg1] = 1; openLevel = _openLevel; } public function findLastLevel():Number{ var _local1:* = 0; while (_local1 < _openLevel.length) { if (_openLevel[_local1] == 0){ return (_local1); }; _local1++; }; return (_openLevel.length); } private function showMyMouse(_arg1:MouseEvent):void{ } function moveMouse(_arg1:MouseEvent){ mouseMc.x = mouseX; mouseMc.y = mouseY; _arg1.updateAfterEvent(); } public function submitNewRecord(_arg1:Boolean=false){ lastSubmitRecord = scoreGame; trace(("lastSubmitRecord " + lastSubmitRecord)); if (_arg1){ }; } public function playSound(_arg1:String, _arg2:Number=1){ var _local3:Number = (Game.iAmGame.flagSoundOn) ? _arg2 : 0; new SoundFabric(_arg1, 0, 1, _local3); } function randomNextMusic(_arg1:Event){ var _local2:Number; if (mainSound != null){ mainSound.sChannel.removeEventListener(Event.SOUND_COMPLETE, randomNextMusic); _local2 = arrayGoodMusic[lastInd][MyFunc.random(arrayGoodMusic[lastInd].length)]; } else { _local2 = 2; }; lastInd = _local2; mainSound = new SoundFabric(musics_game[_local2], 0, 1, ((flagSoundOn) ? 1 : 0 * musicVol)); mainSound.sChannel.addEventListener(Event.SOUND_COMPLETE, randomNextMusic); } public function setRandomMusic(_arg1:Array, _arg2:Boolean=false){ var _local3:Number; var _local4:String; if (((!((_arg1 == null))) && ((_arg1.length > 0)))){ do { _local3 = MyFunc.random(_arg1.length); _local4 = _arg1[_local3]; } while ((((_local4 == last_music)) && (_arg2))); if (_local4 != last_music){ if (mainSound != null){ mainSound.stop(); }; mainSound = new SoundFabric(_local4, 0, 1000000, ((flagSoundOn) ? 1 : 0 * musicVol)); last_music = _local4; }; } else { if (mainSound != null){ mainSound.stop(); mainSound = null; last_music = null; }; }; } public function get scoreGame():Number{ return (_scoreGame); } public function set scoreGame(_arg1:Number):void{ trace(("scoreForLevel " + scoreForLevel)); if (scoreForLevel[currentLevel.myNumber] < _arg1){ _scoreGame = 0; scoreForLevel[currentLevel.myNumber] = _arg1; _scoreGame = summArray(scoreForLevel); ttgGiveScore("total", _scoreGame); }; } public function get scoreForLevel():Array{ return (_scoreForLevel); } public function set scoreForLevel(_arg1:Array):void{ _scoreForLevel = _arg1; saver.setData("scoreLevel", _scoreForLevel); } public function get flagSoundOn():Boolean{ return (_flagSoundOn); } public function set flagSoundOn(_arg1:Boolean):void{ _flagSoundOn = _arg1; saver.setData("flagSoundOnOff", _flagSoundOn); } public function get openLevel():Array{ return (_openLevel); } public function set openLevel(_arg1:Array):void{ _openLevel = _arg1; saver.setData("openLevelInGame", _openLevel); } public function get lastSubmitRecord():Number{ return (_lastSubmitRecord); } public function set lastSubmitRecord(_arg1:Number):void{ _lastSubmitRecord = _arg1; saver.setData("lastSubmitRec", _lastSubmitRecord); } public function get myGameOver():Boolean{ return (_myGameOver); } public function set myGameOver(_arg1:Boolean):void{ _myGameOver = _arg1; saver.setData("myGameOv", _myGameOver); } public function get flagFirstAppVolt():Array{ return (_flagFirstAppVolt); } public function set flagFirstAppVolt(_arg1:Array):void{ _flagFirstAppVolt = _arg1; saver.setData("flFirstAppVolt", _flagFirstAppVolt); } public function get lastStateVoltModeBtn():Number{ return (_lastStateVoltModeBtn); } public function set lastStateVoltModeBtn(_arg1:Number):void{ _lastStateVoltModeBtn = _arg1; saver.setData("lastStateVoltMode", _lastStateVoltModeBtn); } public function addWalkthrough(){ if (!flagWalk){ return; }; if (!isWrite){ clipMouse = mouseMc; clipMouse.stop(); }; if (catcher){ catcher.removeEventListener(MouseCatcher.EVENT_ADDITIONAL, onAdditionalEvent); }; catcher = new MouseCatcher(); addChild(catcher); catcher.clipMouse = clipMouse; catcher.begin(isWrite, (isWrite) ? null : WalkInfo.walkInfo[currentLevel.myNumber]); if (!isWrite){ catcher.addEventListener(MouseCatcher.EVENT_ADDITIONAL, onAdditionalEvent); }; } private function onAdditionalEvent(_arg1:EventMousePlay):void{ if (_arg1.name == "click"){ currentLevel.workZone_mc.mouseClick(null); }; if (_arg1.name == "count_volt"){ currentLevel.counterVolt.onSelect(null); }; if (_arg1.name == "stripe_up_over"){ currentLevel.workZone_mc.forOnStripeOver(currentLevel.workZone_mc.stripe_up); }; if (_arg1.name == "stripe_down_over"){ currentLevel.workZone_mc.forOnStripeOver(currentLevel.workZone_mc.stripe_down); }; if (_arg1.name == "stripe_up_out"){ currentLevel.workZone_mc.forOnStripeOut(currentLevel.workZone_mc.stripe_up); }; if (_arg1.name == "stripe_down_out"){ currentLevel.workZone_mc.forOnStripeOut(currentLevel.workZone_mc.stripe_down); }; } public function captureClick(_arg1:Boolean=true){ if (catcher){ if (!_arg1){ catcher.captureAdditional(<count_volt/> ); } else { catcher.captureAdditional(<click/> ); }; }; } public function captureOver(_arg1){ if (!isWrite){ return; }; if (currentLevel.workZone_mc.stripe_up == _arg1){ catcher.captureAdditional(<stripe_up_over/> ); }; if (currentLevel.workZone_mc.stripe_down == _arg1){ catcher.captureAdditional(<stripe_down_over/> ); }; } public function captureOut(_arg1){ if (!isWrite){ return; }; if (currentLevel.workZone_mc.stripe_up == _arg1){ catcher.captureAdditional(<stripe_up_out/> ); }; if (currentLevel.workZone_mc.stripe_down == _arg1){ catcher.captureAdditional(<stripe_down_out/> ); }; } private function onClickBtn(_arg1:MouseEvent):void{ catcher.end(); } public function get isKongregateOrSimilar():Boolean{ var _local1:String = loaderInfo.url.toLowerCase(); return ((_local1.indexOf("kongregate.com") >= 0)); } private function initKongAPI():void{ var _local1:Object = LoaderInfo(root.loaderInfo).parameters; var _local2:String = ((_local1.api_path) || ("http://www.kongregate.com/flash/API_AS3_Local.swf")); Security.allowDomain(_local2); trace(("API path: " + _local2)); var _local3:URLRequest = new URLRequest(_local2); var _local4:Loader = new Loader(); _local4.contentLoaderInfo.addEventListener(Event.COMPLETE, kongAPILoadComplete); _local4.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, kongAPIErrorHandler); _local4.load(_local3); this.addChild(_local4); } private function kongAPILoadComplete(_arg1:Event):void{ kongregate = _arg1.target.content; kongregate.services.connect(); trace(("\n" + kongregate.services)); trace(("\n" + kongregate.user)); trace(("\n" + kongregate.scores)); trace(("\n" + kongregate.stats)); } private function kongAPIErrorHandler(_arg1:IOErrorEvent):void{ trace("KongAPIError ", _arg1.text); } public static function goToLink(_arg1:String, _arg2:Boolean=true):void{ var _local3:URLRequest = new URLRequest(_arg1); navigateToURL(_local3, (_arg2) ? "_blank" : "_top"); } public static function goToSponsorMain(_arg1=null){ goToLink(SPONSOR_MAIN); } public static function openPage(_arg1:String){ var _local2:URLVariables = new URLVariables(); var _local3 = "_blank"; navigateToURL(new URLRequest(_arg1), _local3); } } }//package TheGame
Section 173
//HelpText (TheGame.HelpText) package TheGame { import flash.events.*; import TheGame.GameTemplate.*; public class HelpText extends Base { var flagDecrease:Boolean;// = true var speedBlink:Number;// = 0.04 public function HelpText(){ this.addEventListener(Event.ENTER_FRAME, onEnterFrameHelp); } override public function beforeDelete(){ this.removeEventListener(Event.ENTER_FRAME, onEnterFrameHelp); } function onEnterFrameHelp(_arg1:Event){ if (flagDecrease){ alpha = (alpha - speedBlink); if (alpha <= 0){ flagDecrease = false; }; } else { alpha = (alpha + speedBlink); if (alpha >= 1){ alpha = 1; flagDecrease = true; }; }; } } }//package TheGame
Section 174
//LevelsInfo (TheGame.LevelsInfo) package TheGame { public class LevelsInfo { public static var levelInfo:Array = [<world backFrame="9" quality="HIGH" kVolts="3_0_0_0" worldZone="standard" firstVolt="usual"> <volt1 x="221" y="357"/> <volt1 x="452" y="359"/> <pCane3 x="27" y="244" scaleX="1" scaleY="1" rotation="125" myDensity="0"/> <pBloon1 x="558" y="245" scaleX="1" scaleY="1" rotation="-30" myDensity="0"/> <pBloon2 x="600" y="213" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBox2 x="26" y="352" scaleX="0.6" scaleY="1" rotation="30" myDensity="0"/> <pBox2 x="616" y="343" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pOval2 x="76" y="377" scaleX="0.5" scaleY="0.5" rotation="0" myDensity="0"/> <pGround1 x="310" y="431" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pWater x="198" y="431" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> </world> , <world backFrame="13" quality="HIGH" kVolts="4_0_0_0" worldZone="standard" firstVolt="null"> <volt1 x="342" y="322"/> <volt1 x="369" y="128"/> <pEgg x="352" y="253" scaleX="0.6" scaleY="0.6" rotation="-110" myDensity="0"/> <pEgg x="362" y="267" scaleX="0.6" scaleY="0.6" rotation="-140" myDensity="0"/> <pPlatform1 x="368" y="241" scaleX="1" scaleY="1.1" rotation="0" myDensity="0"/> <pPlatform2 x="325" y="433" scaleX="1.2" scaleY="1" rotation="0" myDensity="0"/> <pCane2 x="85" y="271" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBox3 x="51" y="413" scaleX="1" scaleY="1" rotation="10" myDensity="0"/> <pCane1 x="567" y="289" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pWater x="324" y="441" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> </world> , <world backFrame="14" quality="MEDIUM" kVolts="0_5_0_0" worldZone="standard" firstVolt="flying"> <volt1 x="93" y="339"/> <volt1 x="524" y="358"/> <pBox2 x="155" y="397" scaleX="0.5" scaleY="0.5" rotation="0" myDensity="0"/> <pBox3 x="108" y="419" scaleX="1" scaleY="1" rotation="5" myDensity="0"/> <pBox1 x="156" y="431" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBox2 x="211" y="432" scaleX="1" scaleY="1" rotation="6" myDensity="0"/> <pBloon1 x="97" y="277" scaleX="1" scaleY="1.2" rotation="0" myDensity="0.5"/> <pPlank x="187" y="377" scaleX="1" scaleY="1" rotation="4" myDensity="0"/> <pEgg x="509" y="391" scaleX="1" scaleY="1" rotation="-20" myDensity="0"/> <pEgg x="544" y="390" scaleX="1" scaleY="1" rotation="20" myDensity="0"/> <pOval2 x="523" y="464" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pWater x="326" y="443" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBloon1 x="579" y="318" scaleX="1" scaleY="1" rotation="0" myDensity="0.5"/> <pBloon2 x="346" y="205" scaleX="1" scaleY="1" rotation="0" myDensity="1"/> </world> , <world backFrame="10" quality="HIGH" kVolts="3_1_0_0" worldZone="standard" firstVolt="null"> <volt1 x="218" y="375"/> <volt1 x="101" y="246"/> <pStone x="199" y="416" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pPlank x="11" y="246" scaleX="1" scaleY="1" rotation="-80" myDensity="0"/> <pOval2 x="11" y="359" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBoard x="52" y="277" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBoard2 x="49" y="131" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBox1 x="16" y="94" scaleX="1" scaleY="1" rotation="5" myDensity="0"/> <pStone x="172" y="414" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pStone x="238" y="416" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pStone x="276" y="409" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pStone x="390" y="219" scaleX="1" scaleY="1" rotation="10" myDensity="0"/> <pStone x="383" y="249" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pStone x="367" y="279" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pStone x="402" y="289" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pStone x="428" y="220" scaleX="1" scaleY="1" rotation="10" myDensity="0"/> <pStone x="422" y="251" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <volt1 x="391" y="182"/> <pStone x="440" y="281" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBox2 x="621" y="303" scaleX="0.6" scaleY="1" rotation="10" myDensity="0"/> <pBox3 x="621" y="390" scaleX="1" scaleY="1" rotation="-10" myDensity="0"/> <pWater x="325" y="445" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBoard2 x="405" y="316" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> </world> , <world backFrame="6" quality="MEDIUM" kVolts="4_0_0_0" worldZone="standard" firstVolt="sticking"> <volt1 x="129" y="124"/> <volt3 x="287" y="249"/> <pCane2 x="38" y="247" scaleX="0.8" scaleY="0.9" rotation="30" myDensity="0"/> <volt1 x="492" y="266"/> <pBallSpin x="319" y="208" scaleX="0.5" scaleY="0.5" rotation="0" myDensity="0"/> <volt1 x="127" y="266"/> <volt1 x="482" y="123"/> <pBoard x="101" y="157" scaleX="0.8" scaleY="1" rotation="0" myDensity="0"/> <pCane1 x="493" y="409" scaleX="0.8" scaleY="0.8" rotation="0" myDensity="0"/> <pCane1 x="550" y="402" scaleX="0.8" scaleY="0.8" rotation="0" myDensity="0"/> <pEgg x="558" y="258" scaleX="1" scaleY="1.1" rotation="0" myDensity="0"/> <pBoard2 x="523" y="300" scaleX="0.8" scaleY="1" rotation="0" myDensity="0"/> <pEgg x="557" y="184" scaleX="1" scaleY="-1.1" rotation="0" myDensity="0"/> <pPlank x="520" y="152" scaleX="0.6" scaleY="1" rotation="0" myDensity="0"/> <pCane3 x="31" y="358" scaleX="-0.7" scaleY="1" rotation="0" myDensity="0"/> <pCane1 x="142" y="406" scaleX="0.8" scaleY="0.8" rotation="0" myDensity="0"/> <pPlank x="75" y="289" scaleX="0.8" scaleY="1" rotation="0" myDensity="0"/> <pWater x="323" y="446" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> </world> , <world backFrame="5" quality="HIGH" kVolts="1_0_4_0" worldZone="standard" firstVolt="null"> <volt1 x="532" y="225"/> <volt1 x="119" y="228"/> <pBox1 x="122" y="266" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBox1 x="533" y="265" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBloon2 x="439" y="299" scaleX="1" scaleY="1" rotation="0" myDensity="0.5"/> <pBloon1 x="325" y="282" scaleX="1.3" scaleY="1.5" rotation="0" myDensity="0.5"/> <pBloon2 x="224" y="298" scaleX="1" scaleY="1" rotation="0" myDensity="0.5"/> <pPlatform1 x="123" y="374" scaleX="0.7" scaleY="0.9" rotation="0" myDensity="0"/> <pBox2 x="534" y="348" scaleX="0.8" scaleY="1.3" rotation="0" myDensity="0"/> <pBoard2 x="535" y="410" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pWater x="310" y="441" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> </world> , <world backFrame="6" quality="HIGH" kVolts="1_0_0_6" worldZone="standard" firstVolt="water"> <pCane3 x="88" y="248" scaleX="0.8" scaleY="0.9" rotation="0" myDensity="0"/> <volt1 x="502" y="166"/> <volt1 x="146" y="162"/> <volt4 x="339" y="387"/> <pPlatform1 x="145" y="249" scaleX="0.8" scaleY="0.8" rotation="0" myDensity="0"/> <pOval x="116" y="365" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pPlatform2 x="117" y="386" scaleX="1" scaleY="0.7" rotation="0" myDensity="0"/> <pCane2 x="535" y="298" scaleX="0.9" scaleY="0.9" rotation="-10" myDensity="0"/> <pCane2 x="500" y="301" scaleX="0.9" scaleY="0.9" rotation="170" myDensity="0"/> <pCane2 x="500" y="301" scaleX="0.9" scaleY="0.9" rotation="170" myDensity="0"/> <pOval x="517" y="438" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pWater x="318" y="421" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pPlank x="521" y="190" scaleX="0.4" scaleY="1.5" rotation="0" myDensity="0"/> </world> , <world backFrame="4" quality="HIGH" kVolts="4_0_0_0" worldZone="standard" firstVolt="null"> <pBox3 x="565" y="393" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <volt1 x="208" y="96"/> <pBox2 x="246" y="444" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pCane2 x="148" y="340" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pEgg x="127" y="426" scaleX="1" scaleY="1" rotation="20" myDensity="0"/> <pWater x="324" y="441" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <volt4 x="245" y="391"/> <volt4 x="563" y="326"/> <pBallSpin2 x="211" y="205" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBloon2 x="331" y="96" scaleX="1" scaleY="1.3" rotation="0" myDensity="0"/> <pBloon2 x="506" y="117" scaleX="1" scaleY="1.3" rotation="0" myDensity="0"/> <pCane3 x="408" y="235" scaleX="1" scaleY="1" rotation="-120" myDensity="0"/> </world> , <world backFrame="12" quality="HIGH" kVolts="5_2_0_0" worldZone="high" firstVolt="null"> <volt1 x="139" y="-115"/> <volt3 x="194" y="323"/> <volt3 x="435" y="328"/> <volt1 x="507" y="-125"/> <pStone x="272" y="408" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pCane2 x="31" y="213" scaleX="1" scaleY="1" rotation="-20" myDensity="0"/> <pStone x="363" y="406" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pOval2 x="28" y="411" scaleX="1" scaleY="1" rotation="10" myDensity="0"/> <pCane2 x="575" y="25" scaleX="-1" scaleY="1" rotation="-30" myDensity="0"/> <pBox2 x="508" y="-82" scaleX="0.5" scaleY="0.5" rotation="0" myDensity="0"/> <pCane2 x="74" y="26" scaleX="1" scaleY="1" rotation="30" myDensity="0"/> <pBox2 x="138" y="-78" scaleX="0.5" scaleY="0.5" rotation="0" myDensity="0"/> <pCane2 x="319" y="362" scaleX="1" scaleY="1" rotation="80" myDensity="0.1"/> <pEgg x="9" y="107" scaleX="1" scaleY="1" rotation="90" myDensity="0"/> <pCane2 x="607" y="205" scaleX="-1" scaleY="-1" rotation="0" myDensity="0"/> <pEgg x="629" y="99" scaleX="1" scaleY="-1" rotation="90" myDensity="0"/> <pEgg x="595" y="336" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pOval2 x="608" y="421" scaleX="1" scaleY="1" rotation="10" myDensity="0"/> <pWater x="314" y="445" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> </world> , <world backFrame="7" quality="HIGH" kVolts="12_0_0_0" worldZone="high" firstVolt="null"> <volt1 x="389" y="325"/> <volt1 x="224" y="323"/> <pPlank x="321" y="343" scaleX="3" scaleY="1" rotation="0" myDensity="0"/> <volt2 x="334" y="-55"/> <volt2 x="445" y="-178"/> <volt2 x="216" y="-179"/> <volt2 x="547" y="-52"/> <volt2 x="102" y="-52"/> <pBall x="113" y="440" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBall x="517" y="437" scaleX="1" scaleY="1" rotation="40" myDensity="0"/> <pCane1 x="24" y="481" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pCane1 x="604" y="485" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> </world> , <world backFrame="4" quality="HIGH" kVolts="3_0_0_0" worldZone="standard" firstVolt="null"> <volt1 x="381" y="141"/> <volt1 x="35" y="86"/> <pCane2 x="211" y="153" scaleX="1" scaleY="1" rotation="90" myDensity="0"/> <pCane3 x="443" y="210" scaleX="1" scaleY="1" rotation="-100" myDensity="0"/> <pBox2 x="32" y="151" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pCane1 x="528" y="337" scaleX="1" scaleY="0.7" rotation="80" myDensity="0"/> <pCane2 x="288" y="407" scaleX="1" scaleY="1" rotation="70" myDensity="0"/> <pWater x="332" y="485" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> </world> , <world backFrame="1" quality="HIGH" kVolts="16_0_0_0" worldZone="standard" firstVolt="null"> <pEgg x="187" y="392" scaleX="0.5" scaleY="0.5" rotation="0" myDensity="0"/> <volt1 x="509" y="370"/> <volt1 x="148" y="370"/> <pPlatform2 x="90" y="476" scaleX="1.3" scaleY="1" rotation="0" myDensity="0"/> <pEgg x="475" y="396" scaleX="0.5" scaleY="0.5" rotation="0" myDensity="0"/> <pPlatform2 x="571" y="480" scaleX="1.3" scaleY="1" rotation="0" myDensity="0"/> <pWater x="335" y="454" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> </world> , <world backFrame="7" quality="HIGH" kVolts="6_3_0_0" worldZone="standard" firstVolt="null"> <pBox2 x="145" y="122" scaleX="-1" scaleY="-1" rotation="0" myDensity="0"/> <pBox3 x="480" y="128" scaleX="1" scaleY="-1" rotation="0" myDensity="0"/> <volt3 x="66" y="97"/> <volt3 x="568" y="96"/> <pBox3 x="79" y="423" scaleX="1" scaleY="1" rotation="-30" myDensity="0"/> <pOval x="603" y="409" scaleX="0.8" scaleY="0.8" rotation="30" myDensity="0"/> <pPlank x="294" y="428" scaleX="-1" scaleY="-1" rotation="-15" myDensity="0"/> <pWater x="317" y="453" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pGround1 x="322" y="31" scaleX="1" scaleY="-1" rotation="0" myDensity="0"/> <pCane2 x="638" y="198" scaleX="-1" scaleY="1" rotation="0" myDensity="0"/> <pCane1 x="474" y="77" scaleX="1" scaleY="1.1" rotation="90" myDensity="0"/> <pCane1 x="169" y="76" scaleX="1" scaleY="1.1" rotation="90" myDensity="0"/> <pCane2 x="4" y="197" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBall x="321" y="77" scaleX="0.2" scaleY="0.2" rotation="0" myDensity="0"/> <pBall x="12" y="77" scaleX="0.2" scaleY="0.2" rotation="0" myDensity="0"/> <pBall x="625" y="81" scaleX="0.2" scaleY="0.2" rotation="0" myDensity="0"/> <pBloon2 x="410" y="321" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> </world> , <world backFrame="11" quality="HIGH" kVolts="10_2_0_0" worldZone="high" firstVolt="null"> <pCane1 x="307" y="203" scaleX="1" scaleY="1.1" rotation="90" myDensity="0.5"/> <volt3 x="313" y="225"/> <pPlatform1 x="312" y="336" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBall2 x="27" y="443" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pOval2 x="547" y="426" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <volt1 x="17" y="-49"/> <volt1 x="605" y="-37"/> <pWater x="317" y="454" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBonusBox x="306" y="-45" scaleX="1" scaleY="1" rotation="0" myDensity="0" sizeBonus="2" typeBonus="1"/> <pBloon1 x="379" y="-98" scaleX="1.2" scaleY="1.2" rotation="0" myDensity="0"/> <pBloon1 x="237" y="-129" scaleX="1.2" scaleY="1.8" rotation="0" myDensity="0"/> <pBoard2 x="305" y="-12" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pPlatform1 x="10" y="47" scaleX="-0.8" scaleY="0.8" rotation="0" myDensity="0"/> <pPlatform1 x="628" y="64" scaleX="0.9" scaleY="0.9" rotation="0" myDensity="0"/> </world> , <world backFrame="4" quality="HIGH" kVolts="4_0_0_0" worldZone="standard" firstVolt="null"> <volt1 x="540" y="183"/> <volt1 x="137" y="188"/> <pBoard2 x="332" y="220" scaleX="3" scaleY="0.5" rotation="0" myDensity="0.1"/> <pBall2 x="334" y="262" scaleX="0.3" scaleY="0.3" rotation="0" myDensity="0"/> <pWater x="292" y="463" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBloon1 x="63" y="338" scaleX="1" scaleY="1" rotation="0" myDensity="0.5"/> <pBloon2 x="207" y="87" scaleX="1" scaleY="1" rotation="0" myDensity="0.5"/> <pBloon2 x="509" y="370" scaleX="1" scaleY="1" rotation="0" myDensity="0.5"/> <pBloon1 x="426" y="125" scaleX="1" scaleY="1" rotation="0" myDensity="0.5"/> <pBall2 x="1" y="485" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBall2 x="23" y="-12" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBall2 x="626" y="464" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBall2 x="614" y="-6" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> </world> , <world backFrame="6" quality="HIGH" kVolts="6_0_1_0" worldZone="standard" firstVolt="null"> <volt1 x="599" y="179"/> <pCane3 x="27" y="161" scaleX="1" scaleY="1" rotation="-100" myDensity="0"/> <pCane2 x="458" y="249" scaleX="1" scaleY="1" rotation="60" myDensity="0"/> <pOval x="584" y="222" scaleX="0.5" scaleY="0.5" rotation="-30" myDensity="0"/> <pCane2 x="461" y="364" scaleX="1" scaleY="1" rotation="60" myDensity="0"/> <pCane1 x="67" y="321" scaleX="1" scaleY="1" rotation="20" myDensity="0"/> <volt1 x="595" y="289"/> <pOval x="582" y="334" scaleX="0.5" scaleY="0.5" rotation="-30" myDensity="0"/> <volt3 x="72" y="170"/> <pWater x="314" y="441" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pCane2 x="455" y="140" scaleX="1" scaleY="1" rotation="60" myDensity="0"/> <pOval x="584" y="108" scaleX="0.5" scaleY="0.5" rotation="-30" myDensity="0"/> <volt1 x="589" y="61"/> <pGround1 x="651" y="243" scaleX="1" scaleY="1" rotation="-90" myDensity="0"/> <pBoard x="-14" y="424" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> </world> , <world backFrame="2" quality="HIGH" kVolts="6_0_0_0" worldZone="standard" firstVolt="null"> <volt1 x="328" y="140"/> <volt1 x="128" y="140"/> <volt1 x="528" y="140"/> <pBox2 x="38" y="421" scaleX="0.9" scaleY="0.9" rotation="22" myDensity="0"/> <pWater x="324" y="441" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBloon1 x="95" y="99" scaleX="1.2" scaleY="1.2" rotation="-10" myDensity="0"/> <pBox1 x="128" y="180" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBloon2 x="288" y="84" scaleX="1" scaleY="0.9" rotation="-12" myDensity="0"/> <pBloon1 x="377" y="108" scaleX="1" scaleY="1" rotation="15" myDensity="0"/> <pBox2 x="331" y="180" scaleX="0.7" scaleY="0.6" rotation="0" myDensity="0"/> <pBloon2 x="572" y="96" scaleX="1" scaleY="0.8" rotation="12" myDensity="0"/> <pBox3 x="530" y="180" scaleX="1" scaleY="0.5" rotation="0" myDensity="0"/> <pBox2 x="333" y="259" scaleX="0.7" scaleY="0.6" rotation="0" myDensity="0"/> </world> , <world backFrame="1" quality="HIGH" kVolts="2_0_0_0" worldZone="standard" firstVolt="null"> <volt1 x="177" y="33"/> <volt1 x="482" y="332"/> <pCane3 x="237" y="174" scaleX="1.5" scaleY="1.5" rotation="-70" myDensity="0"/> <pBall x="225" y="21" scaleX="0.4" scaleY="0.4" rotation="0" myDensity="0.5"/> <pStone x="482" y="389" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBoard x="484" y="369" scaleX="0.6" scaleY="1.2" rotation="0" myDensity="0"/> <pStone x="471" y="427" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pEgg x="69" y="424" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pEgg x="150" y="428" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pStone x="498" y="435" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pWater x="332" y="464" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBox2 x="108" y="372" scaleX="0.6" scaleY="0.6" rotation="0" myDensity="0"/> <pCane2 x="111" y="393" scaleX="0.5" scaleY="0.5" rotation="80" myDensity="0"/> </world> , <world backFrame="8" quality="HIGH" kVolts="1_2_1_0" worldZone="standard" firstVolt="null"> <volt1 x="514" y="207"/> <volt1 x="134" y="259"/> <pCane1 x="117" y="373" scaleX="0.5" scaleY="0.6" rotation="0" myDensity="0"/> <pBox1 x="119" y="298" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pCane2 x="538" y="345" scaleX="0.5" scaleY="0.8" rotation="-5" myDensity="0"/> <pBox2 x="535" y="245" scaleX="0.6" scaleY="0.6" rotation="0" myDensity="0"/> <pBall2 x="321" y="240" scaleX="0.5" scaleY="0.5" rotation="0" myDensity="0"/> <pWater x="327" y="441" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <volt4 x="233" y="402"/> <pBloon1 x="243" y="35" scaleX="0.5" scaleY="0.9" rotation="0" myDensity="0"/> <pBloon1 x="397" y="36" scaleX="0.5" scaleY="0.9" rotation="0" myDensity="0"/> <pBloon1 x="161" y="47" scaleX="0.6" scaleY="0.7" rotation="0" myDensity="0"/> <pCane1 x="201" y="89" scaleX="0.3" scaleY="0.3" rotation="90" myDensity="0"/> <pBloon1 x="483" y="54" scaleX="0.6" scaleY="0.6" rotation="0" myDensity="0"/> <pCane1 x="439" y="90" scaleX="0.3" scaleY="0.3" rotation="90" myDensity="0"/> </world> , <world backFrame="6" quality="HIGH" kVolts="7_1_0_0" worldZone="standard" firstVolt="null"> <volt1 x="324" y="188"/> <volt1 x="53" y="190"/> <volt1 x="590" y="187"/> <pBox2 x="326" y="234" scaleX="0.5" scaleY="0.7" rotation="0" myDensity="0"/> <pPlank x="118" y="216" scaleX="0.7" scaleY="1" rotation="0" myDensity="0"/> <pBallSpin2 x="167" y="215" scaleX="-1" scaleY="-1" rotation="0" myDensity="0"/> <pPlank x="525" y="212" scaleX="0.7" scaleY="1" rotation="0" myDensity="0"/> <pBallSpin x="480" y="215" scaleX="-1" scaleY="-1" rotation="30" myDensity="0"/> <pPlatform1 x="327" y="335" scaleX="0.8" scaleY="0.8" rotation="0" myDensity="0"/> <pBox1 x="54" y="403" scaleX="1" scaleY="1" rotation="-10" myDensity="0"/> <pStone x="616" y="399" scaleX="1" scaleY="1" rotation="20" myDensity="0"/> <pWater x="321" y="436" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> </world> , <world backFrame="3" quality="HIGH" kVolts="5_1_0_0" worldZone="standard" firstVolt="null"> <volt1 x="564" y="203"/> <volt1 x="65" y="205"/> <pPlatform1 x="573" y="321" scaleX="1" scaleY="1.1" rotation="0" myDensity="0"/> <volt4 x="327" y="400"/> <pCane1 x="27" y="358" scaleX="0.9" scaleY="0.9" rotation="0" myDensity="0"/> <volt3 x="334" y="102"/> <pCane2 x="73" y="354" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBall x="623" y="410" scaleX="0.5" scaleY="0.5" rotation="0" myDensity="0"/> <pBox2 x="60" y="408" scaleX="1" scaleY="1" rotation="30" myDensity="0"/> <pWater x="330" y="428" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pCane3 x="559" y="150" scaleX="1" scaleY="1" rotation="100" myDensity="0"/> <pBoard2 x="26" y="236" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBloon1 x="242" y="36" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pCane1 x="362" y="91" scaleX="0.9" scaleY="0.9" rotation="90" myDensity="0"/> <pBall x="616" y="218" scaleX="0.2" scaleY="0.2" rotation="0" myDensity="0"/> </world> , <world backFrame="2" quality="HIGH" kVolts="2_1_1_0" worldZone="standard" firstVolt="null"> <volt1 x="606" y="101"/> <volt1 x="31" y="103"/> <pNoContact x="562" y="229" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBoard2 x="605" y="141" scaleX="0.3" scaleY="1" rotation="0" myDensity="0"/> <pBoard2 x="34" y="135" scaleX="0.3" scaleY="1" rotation="0" myDensity="0"/> <pNoContactLittle x="135" y="371" scaleX="1" scaleY="1" rotation="90" myDensity="0"/> <volt1 x="305" y="309"/> <pNoContact x="81" y="229" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBoard2 x="306" y="341" scaleX="0.3" scaleY="1" rotation="0" myDensity="0"/> <pBoard2 x="128" y="49" scaleX="0.3" scaleY="1" rotation="0" myDensity="0"/> <pBonusBox x="305" y="172" scaleX="1" scaleY="1" rotation="0" myDensity="0" sizeBonus="12" typeBonus="0"/> <pNoContactBig x="349" y="371" scaleX="1" scaleY="1" rotation="90" myDensity="0"/> <pBallSpin2 x="552" y="355" scaleX="0.3" scaleY="0.3" rotation="0" myDensity="0"/> <pBallSpin2 x="93" y="360" scaleX="0.3" scaleY="0.3" rotation="20" myDensity="0"/> <pNoContactLittle x="499" y="84" scaleX="1" scaleY="1" rotation="90" myDensity="0"/> <pBallSpin2 x="549" y="91" scaleX="0.3" scaleY="0.3" rotation="0" myDensity="0"/> <pNoContactLittle x="393" y="85" scaleX="1" scaleY="1" rotation="90" myDensity="0"/> <pPlank x="266" y="432" scaleX="3.5" scaleY="1" rotation="0" myDensity="0"/> </world> , <world backFrame="3" quality="HIGH" kVolts="5_0_0_0" worldZone="standard" firstVolt="null"> <volt1 x="70" y="387"/> <volt1 x="321" y="173"/> <pCane2 x="407" y="225" scaleX="1" scaleY="1" rotation="90" myDensity="0"/> <pStone x="353" y="428" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pStone x="444" y="425" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pStone x="70" y="427" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pStone x="169" y="428" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pStone x="545" y="418" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pStone x="611" y="351" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pStone x="638" y="350" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pStone x="259" y="425" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pWater x="336" y="450" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pNoContactBig x="216" y="347" scaleX="1" scaleY="1" rotation="90" myDensity="0"/> <pNoContactLittle x="480" y="345" scaleX="1" scaleY="1" rotation="90" myDensity="0"/> <pNoContactLittle x="538" y="308" scaleX="0.9" scaleY="0.9" rotation="0" myDensity="0"/> <pStone x="636" y="387" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pStone x="639" y="416" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> </world> , <world backFrame="4" quality="HIGH" kVolts="0_0_0_3" worldZone="standard" firstVolt="null"> <pBloon1 x="186" y="286" scaleX="1" scaleY="1" rotation="0" myDensity="0.5"/> <pBloon1 x="231" y="276" scaleX="1" scaleY="1" rotation="0" myDensity="0.5"/> <pBloon1 x="377" y="203" scaleX="1" scaleY="1" rotation="0" myDensity="0.5"/> <pBloon1 x="451" y="356" scaleX="1" scaleY="1" rotation="0" myDensity="0.5"/> <pBloon1 x="503" y="367" scaleX="1" scaleY="1" rotation="0" myDensity="0.5"/> <pWater x="345" y="439" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pBonusBox x="359" y="135" scaleX="1" scaleY="1" rotation="0" myDensity="0.5" sizeBonus="4" typeBonus="3"/> <pBloon1 x="330" y="206" scaleX="1" scaleY="1" rotation="0" myDensity="0.5"/> <volt4 x="202" y="258"/> <volt4 x="324" y="379"/> <volt4 x="480" y="339"/> <pPlank x="-48" y="150" scaleX="1" scaleY="1" rotation="10" myDensity="0"/> <volt4 x="31" y="246"/> <volt4 x="32" y="146"/> <pPlank x="-63" y="261" scaleX="1" scaleY="1" rotation="1" myDensity="0"/> <volt4 x="612" y="178"/> <pPlank x="696" y="196" scaleX="-1" scaleY="1" rotation="-5" myDensity="0"/> </world> , <world backFrame="4" quality="HIGH" kVolts="4_0_0_0" worldZone="high" firstVolt="null"> <pCane1 x="378" y="268" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <volt4 x="31" y="393"/> <pBoard2 x="379" y="404" scaleX="0.3" scaleY="1" rotation="0" myDensity="0"/> <pWater x="346" y="429" scaleX="1" scaleY="1" rotation="0" myDensity="0"/> <pCane3 x="462" y="159" scaleX="1" scaleY="1" rotation="-110" myDensity="0"/> <pCane3 x="297" y="159" scaleX="1" scaleY="-1" rotation="-70" myDensity="0"/> <volt1 x="465" y="-113"/> <pCane1 x="379" y="-9" scaleX="0.8" scaleY="1" rotation="0" myDensity="0"/> <pCane3 x="451" y="26" scaleX="0.95" scaleY="0.95" rotation="-100" myDensity="0"/> <pCane3 x="299" y="12" scaleX="0.95" scaleY="-0.95" rotation="-70" myDensity="0"/> <pCane3 x="314" y="-115" scaleX="0.8" scaleY="-0.9" rotation="-80" myDensity="0"/> <pCane3 x="449" y="-121" scaleX="0.9" scaleY="0.8" rotation="-110" myDensity="0"/> <pCane1 x="380" y="-289" scaleX="0.65" scaleY="1" rotation="0" myDensity="0"/> <pCane3 x="445" y="-272" scaleX="0.7" scaleY="0.7" rotation="-120" myDensity="0"/> <pCane2 x="384" y="-663" scaleX="0.6" scaleY="0.5" rotation="-110" myDensity="0"/> <pCane3 x="322" y="-253" scaleX="0.7" scaleY="-0.8" rotation="-80" myDensity="0"/> <pCane3 x="325" y="-412" scaleX="0.6" scaleY="-0.7" rotation="-70" myDensity="0"/> <pCane3 x="429" y="-402" scaleX="0.6" scaleY="0.6" rotation="-100" myDensity="0"/> <pCane1 x="381" y="-553" scaleX="0.5" scaleY="0.9" rotation="0" myDensity="0"/> <pCane3 x="341" y="-540" scaleX="0.5" scaleY="-0.5" rotation="-70" myDensity="0"/> <pCane3 x="419" y="-544" scaleX="0.5" scaleY="0.4" rotation="-120" myDensity="0"/> <pBonusBox x="385" y="-698" scaleX="1" scaleY="1" rotation="0" myDensity="0" sizeBonus="4" typeBonus="3"/> <pBonusBox x="518" y="-268" scaleX="1" scaleY="1" rotation="0" myDensity="0" sizeBonus="5" typeBonus="0"/> <pBonusBox x="262" y="-379" scaleX="1" scaleY="1" rotation="0" myDensity="0" sizeBonus="4" typeBonus="0"/> <volt4 x="203" y="390"/> <volt4 x="558" y="386"/> <pBonusBox x="460" y="-514" scaleX="1" scaleY="1" rotation="0" myDensity="0" sizeBonus="5" typeBonus="0"/> <volt4 x="62" y="394"/> <volt4 x="337" y="390"/> </world> ]; public static function get kLevels():Number{ return (levelInfo.length); } } }//package TheGame
Section 175
//PauseBtn (TheGame.PauseBtn) package TheGame { import flash.display.*; import flash.events.*; import TheGame.Screens.*; import TheGame.GameTemplate.*; public class PauseBtn extends Base { public var base_mc_:MovieClip; var myLevel:Level; var stopNow:Boolean;// = false var base_mc:MovieClip; var myWZ:WorkZone; public function PauseBtn(){ this.visible = false; base_mc = base_mc_; forOnRollOutPause(); } override public function beforeDelete(){ removeEL(); if (myWZ != null){ myWZ.removeEventListener(Event.ENTER_FRAME, myWZ.showWorld); }; } public function initStop(_arg1:Level){ myLevel = _arg1; this.visible = true; base_mc.addEventListener(MouseEvent.ROLL_OVER, onRollOverPause); base_mc.addEventListener(MouseEvent.ROLL_OUT, onRollOutPause); base_mc.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDownPause); base_mc.addEventListener(MouseEvent.MOUSE_UP, onMouseUpPause); } public function removeStop(){ this.visible = false; removeEL(); } function removeEL(){ base_mc.removeEventListener(MouseEvent.ROLL_OVER, onRollOverPause); base_mc.removeEventListener(MouseEvent.ROLL_OUT, onRollOutPause); base_mc.removeEventListener(MouseEvent.MOUSE_DOWN, onMouseDownPause); base_mc.removeEventListener(MouseEvent.MOUSE_UP, onMouseUpPause); } function onRollOverPause(_arg1:Event){ forOnRollOverPause(); } function forOnRollOverPause(){ gotoAndStop((playOrStop() + "_over")); } function onRollOutPause(_arg1:Event){ forOnRollOutPause(); } function forOnRollOutPause(){ gotoAndStop((playOrStop() + "_out")); } function onMouseDownPause(_arg1:Event){ gotoAndStop((playOrStop() + "_down")); } function onMouseUpPause(_arg1:Event){ myWZ = myLevel.workZone_mc; if (!stopNow){ myWZ.stopAllPhysics(); myLevel.counterTime.pauseWork(); } else { myWZ.addEventListener(Event.ENTER_FRAME, myWZ.showWorld); myLevel.counterTime.startWork(); }; stopNow = !(stopNow); forOnRollOverPause(); } function playOrStop():String{ return ((stopNow) ? "stop" : "play"); } } }//package TheGame
Section 176
//PointerMenuBtn (TheGame.PointerMenuBtn) package TheGame { import flash.events.*; import TheGame.GameTemplate.*; public class PointerMenuBtn extends Base { public var highscores_btn:myBtnBig; public var twoTower_mc:sponsor_logo_mathdaily; public var credits_btn:myBtnBig; public var play_btn:myBtnBig; public var more_games_btn:myBtnBig; public var myGame:Game; var play_button:MyBtn; var highscores_button:MyBtn; var more_games_button:MyBtn; var credits_button:MyBtn; var funflow_button:ButtonFunflow; public var txtButton:Array; public function PointerMenuBtn(){ txtButton = ["start", "highscores", "more games", "credits", "funflow"]; super(); gotoAndStop(0); } public function afterCreatePointer(_arg1:Game){ myGame = _arg1; play_button = play_btn; highscores_button = highscores_btn; credits_button = credits_btn; more_games_button = more_games_btn; funflow_button = twoTower_mc; play_button.addEventListener(MouseEvent.CLICK, onClickPlay); highscores_button.addEventListener(MouseEvent.CLICK, onClickHighscores); credits_button.addEventListener(MouseEvent.CLICK, onClickCredits); more_games_button.addEventListener(MouseEvent.CLICK, onClickMoreGames); initMyBtn(play_button); initMyBtn(highscores_button); initMyBtn(more_games_button); initMyBtn(credits_button); initMyBtn(funflow_button); } override public function beforeDelete(){ play_button.removeEventListener(MouseEvent.CLICK, onClickPlay); highscores_button.removeEventListener(MouseEvent.CLICK, onClickHighscores); credits_button.removeEventListener(MouseEvent.CLICK, onClickCredits); more_games_button.removeEventListener(MouseEvent.CLICK, onClickMoreGames); } function onClickPlay(_arg1:Event){ myGame.goAtFrame(Game.FRAME_SELECT_GAME); } function onClickHighscores(_arg1:Event){ myGame.armorHighscores(); } function onClickDownloadGame(_arg1:Event){ Game.openPage(Game.LINK_DOWNLOAD_GAME); } function onClickCredits(_arg1:Event){ myGame.goAtFrame(Game.FRAME_CREDITS); } function onClickMoreGames(_arg1:Event){ Game.goToSponsorMain(); } public function findMyIndex(_arg1):Number{ var _local2:* = 0; while (_local2 < txtButton.length) { if (txtButton[_local2] == _arg1.Text){ return (_local2); }; _local2++; }; return (-1); } function initMyBtn(_arg1){ _arg1.myPointer = this; if (_arg1 != funflow_button){ _arg1.scaleStart = 0.9; _arg1.scaleUp = 1; _arg1.forMouseOut(); }; } } }//package TheGame
Section 177
//QButton (TheGame.QButton) package TheGame { import flash.display.*; import flash.events.*; public class QButton extends SimpleButton { public static var flagPress:Boolean = false; public function onClickQ(_arg1:Event){ trace(("--- " + flagPress), stage.quality); flagPress = (flagPress) ? false : true; stage.quality = (flagPress) ? StageQuality.HIGH : StageQuality.MEDIUM; trace(("QQQ = " + stage.quality)); } } }//package TheGame
Section 178
//ScreenSponsorSplash (TheGame.ScreenSponsorSplash) package TheGame { import flash.display.*; import flash.events.*; import TheGame.GameTemplate.*; public class ScreenSponsorSplash extends Base { public var bumper_btn:SimpleButton; public var bumper_mc_:MovieClip; var bumper_mc:MovieClip; var play_game_btn:MyBtn; var play_other_btn:MyBtn; var myGame:Game; var frameLateBtns:Number; public function ScreenSponsorSplash(){ afterCreate(); } private function goToSponsorMain(_arg1:MouseEvent):void{ Game.goToSponsorMain(_arg1); } override public function afterCreate(){ bumper_btn.addEventListener(MouseEvent.CLICK, goToSponsorMain); bumper_mc = bumper_mc_; frameLateBtns = (bumper_mc.totalFrames - 1); } public function goNext(){ bumper_mc.stop(); beforeDelete(); parent.removeChild(this); } override public function beforeDelete(){ bumper_btn.removeEventListener(MouseEvent.CLICK, goToSponsorMain); bumper_mc.addFrameScript(frameLateBtns, null); } } }//package TheGame
Section 179
//Volt (TheGame.Volt) package TheGame { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import flash.utils.*; import flash.events.*; import TheGame.MyPhysics.*; import com.touchmypixel.peepee.utils.*; import flash.geom.*; import flash.text.*; import TheGame.Screens.*; import TheGame.GameTemplate.*; public class Volt extends PhysicsMovie { public var ownId_txt:TextField; var minDSqr:Number; var maxDSqr:Number; var maxConnects:Number;// = 6 var maxTempConnects:Number;// = 3 var _ownId:Number; var scotchedTo_arr:Array; var tempConnectLength:Number;// = 0 public var id:Number;// = 0 var isStart:Boolean;// = true public var tempConnect:VoltJoint; var constConnects:Array; var connectedVolts:Array; var volt_in:Sprite; var volt_in_an:Animation; var volt_in_an_usual:Animation; var volt_in_an_glad:Animation; var volt_in_an_sad:Animation; var volt_in_mc:MovieClip; var insideMeVolt:MovieClip; var volt_adding:Sprite; var myState:String; var pStart:Point; var _physBody:b2Body; var myB2Shapes:Array; var _physSatellite:b2Body; var physSatConnect:b2Joint; private var isBecameMovie:Boolean;// = false var myWorkZone:WorkZone; var startShine:MovieClip; var indexSplice:Number;// = -10 var myT:Timer; public static const VOLT_SIMPLE:Number = 0; public static const VOLT_STAT:Number = 1; public static const VOLT_SCOTCH:Number = 2; public static const VOLT_SWIM:Number = 3; public static const STATE_USUAL:String = "usual"; public static const STATE_SAD:String = "sad"; public static const STATE_GLAD:String = "glad"; public static const minD:Number = 40; public static const maxD:Number = 100; public static const jointStepX:Number = 10; public function Volt(){ minDSqr = Math.pow(minD, 2); maxDSqr = Math.pow(maxD, 2); super(); objInfoParams = ["x", "y"]; cacheAsBitmap = false; tempConnect = null; constConnects = []; connectedVolts = []; insideMeVolt = (addChild(new MovieClip()) as MovieClip); } override public function beforeDelete(){ if (myT != null){ myT.stop(); myT.removeEventListener(TimerEvent.TIMER, onMyTimer); }; } private function traceInfoIfOn(_arg1):void{ if (this.hitTestPoint(root.mouseX, root.mouseY, false)){ trace(name, id, rotation); }; } override public function createMyObject(){ } function addToMyShapes(_arg1:b2Shape){ if (myB2Shapes == null){ myB2Shapes = []; }; if (myShapes == null){ myShapes = []; }; myB2Shapes.push(_arg1); myShapes.push(_arg1); } override public function setAllMyBits(_arg1:Boolean){ setAllMyBitsB2(myB2Shapes, _arg1); } override public function swimIfCan():Boolean{ var _local1:Boolean = super.swimIfCan(); if (!_local1){ voltDestroyed(); }; return (_local1); } public function delAllConstConnects(){ var _local1:VoltJoint; while (constConnects.length > 0) { _local1 = constConnects[0]; _local1.removeMe(); }; } public function delConnectedVolt(_arg1:Volt){ var _local2:* = 0; while (_local2 < connectedVolts.length) { if (connectedVolts[_local2] == _arg1){ connectedVolts.splice(_local2, 1); break; }; _local2++; }; } public function delConstConnect(_arg1:VoltJoint){ var _local2:* = 0; while (_local2 < constConnects.length) { if (constConnects[_local2] == _arg1){ constConnects.splice(_local2, 1); break; }; _local2++; }; } public function doScotch(_arg1:PhysicsMovie, _arg2:b2Vec2){ var _local3:b2DistanceJointDef; var _local4:b2JointDef; var _local5:b2Joint; var _local6:PhysicsMovie; if (_arg1 == null){ return; }; if (scotchedTo_arr == null){ scotchedTo_arr = []; } else { for each (_local6 in scotchedTo_arr) { if (_local6 == _arg1){ return; }; }; }; scotchedTo_arr.push(_arg1); _local3 = new b2DistanceJointDef(); _local3.Initialize(_arg1.aBody, physSatellite, _arg2, aBody.GetWorldCenter()); _local3.collideConnected = true; _local4 = _local3; _local5 = physWorld.m_world.CreateJoint(_local4); } override public function getObjectInfo():XML{ if (isStart){ return (super.getObjectInfo()); }; return (null); } function setIdByClass(){ var _local1:String = getQualifiedClassName(this); switch (_local1){ case "volt1": id = 0; break; case "volt2": id = 1; break; case "volt3": id = 2; break; case "volt4": id = 3; break; }; } function makeState(_arg1:String="usual", _arg2:Boolean=false){ myState = _arg1; if (((!((volt_in == null))) && ((volt_in == volt_in_mc)))){ volt_in_mc.in_mc.gotoAndPlay(_arg1); if (_arg2){ volt_in_mc.in_mc.gotoAndPlay((volt_in_mc.in_mc.currentFrame + MyFunc.random(getFrames(_arg1)))); }; } else { if (volt_in != null){ insideMeVolt.removeChild(volt_in); }; volt_adding.visible = (_arg1 == STATE_USUAL); switch (_arg1){ case STATE_GLAD: volt_in_an = volt_in_an_glad; break; case STATE_SAD: volt_in_an = volt_in_an_sad; break; default: volt_in_an = volt_in_an_usual; break; }; volt_in = volt_in_an; insideMeVolt.addChild(volt_in); volt_in_an.play(); if (_arg2){ volt_in_an.gotoAndPlay(MyFunc.random(getFrames(_arg1))); }; }; } private function voltFunc(_arg1:String, _arg2=null){ if (_arg2 == null){ var _local3 = volt_in; _local3[_arg1](); } else { _local3 = volt_in; _local3[_arg1](_arg2); }; } override public function initMe(_arg1:PhysicsWorld){ super.initMe(_arg1); myWorkZone = (physWorld as WorkZone); setIdByClass(); if (id == VOLT_SWIM){ collideMaskBits = waterMaskBits; canSwimInWater = true; maxConnects = 6; }; if (id == VOLT_STAT){ maxConnects = 6; }; if (id == VOLT_SCOTCH){ maxConnects = 6; }; myWorkZone.addVoltPhysics(this); volt_in_an_usual = Game.voltAnimationCache.getAnimation(getLibraryName(id, STATE_USUAL)); volt_in_an_glad = Game.voltAnimationCache.getAnimation(getLibraryName(id, STATE_GLAD)); volt_in_an_sad = Game.voltAnimationCache.getAnimation(getLibraryName(id, STATE_SAD)); var _local2:Point = getAnimationPoint(); volt_adding = (new (getDefinitionByName(getAddingLibraryName(id))) as MovieClip); volt_adding.x = _local2.x; volt_adding.y = _local2.y; insideMeVolt.addChild(volt_adding); volt_adding.scaleX = (volt_adding.scaleY = 0.5); makeState(STATE_USUAL, true); insideMeVolt.swapChildren(volt_adding, volt_in); volt_in_mc = (new (getDefinitionByName(("volt_in" + String((id + 1))))) as MovieClip); if (((isStart) && ((myWorkZone.myLevel.modeGame == Level.MODE_LEVEL)))){ createShine(true); }; } function becomeMovie(){ if (!isBecameMovie){ isBecameMovie = true; insideMeVolt.removeChild(volt_in); volt_in = volt_in_mc; insideMeVolt.addChild(volt_in); makeState(myState); if (volt_adding != null){ volt_adding.visible = false; }; }; } function toConstConnect():Boolean{ if (tempConnect != null){ constConnects.push(tempConnect); tempConnect.becomeConst(); tempConnect = null; return (true); }; return (false); } function getDensity():Number{ switch (id){ default: return ((1 * mainDensity)); }; } function getAnimationPoint():Point{ switch (id){ case VOLT_SIMPLE: return (new Point(110, 169)); case VOLT_STAT: return (new Point(110, 172)); case VOLT_SCOTCH: return (new Point(110, 169)); case VOLT_SWIM: return (new Point(110, 169)); }; return (null); } function getFrames(_arg1:String="usual"):Number{ switch (id){ case VOLT_SIMPLE: switch (_arg1){ case STATE_USUAL: return (27); case STATE_SAD: return (16); case STATE_GLAD: return (13); }; break; case VOLT_STAT: switch (_arg1){ case STATE_USUAL: return (15); case STATE_SAD: return (17); case STATE_GLAD: return (17); }; break; case VOLT_SCOTCH: switch (_arg1){ case STATE_USUAL: return (16); case STATE_SAD: return (13); case STATE_GLAD: return (16); }; break; case VOLT_SWIM: switch (_arg1){ case STATE_USUAL: return (19); case STATE_SAD: return (12); case STATE_GLAD: return (21); }; break; }; return (1); } public function findMyNeighbours(_arg1:Array):Array{ var _local2:Volt; var _local3:Volt; for each (_local2 in _arg1) { if (_local2 == this){ return ([]); }; }; _arg1.push(this); for each (_local3 in connectedVolts) { _local3.findMyNeighbours(_arg1); }; return (_arg1); } public function get ownId():Number{ return (_ownId); } public function set ownId(_arg1:Number):void{ _ownId = _arg1; } public function get physBody():b2Body{ return (_physBody); } public function set physBody(_arg1:b2Body):void{ _physBody = _arg1; aBody = _arg1; } public function get physSatellite():b2Body{ return (_physSatellite); } public function set physSatellite(_arg1:b2Body):void{ _physSatellite = _arg1; } override protected function removeMovie(){ var _local3:*; var _local4:b2Body; var _local1:VoltSpirit = new VoltSpirit(); _local1.startMotion(this); super.removeMovie(); var _local2:* = 0; while (_local2 < myWorkZone.volts.length) { if (this == myWorkZone.volts[_local2]){ indexSplice = _local2; voltDestroyed(); _local3 = 0; while (_local3 < myShapes.length) { _local4 = (myShapes[_local3] as b2Shape).m_body; if (_local4 != null){ myWorkZone.m_world.DestroyBody(b2Shape(myShapes[_local3]).m_body); }; _local3++; }; myShapes = []; break; }; _local2++; }; } override protected function addSplashes(){ var _local1:MovieClip; if (this.strForContact == Game.stringForWater){ _local1 = (this.parent.addChild(new wat_mc()) as MovieClip); _local1.x = this.x; _local1.y = this.y; }; } public function createShine(_arg1:Boolean){ if (startShine != null){ removeChild(startShine); }; startShine = (addChild((_arg1) ? new startVoltClip() : new startVoltClip2()) as MovieClip); switch (id){ case VOLT_SCOTCH: startShine.x = (startShine.x - 27); startShine.y = (startShine.y - 27); break; case VOLT_SIMPLE: startShine.x = (startShine.x - 28); startShine.y = (startShine.y - 25); break; case VOLT_STAT: startShine.x = (startShine.x - 29); startShine.y = (startShine.y - 27); break; case VOLT_SWIM: startShine.x = (startShine.x - 29); startShine.y = (startShine.y - 31); break; }; swapChildren(startShine, insideMeVolt); } function voltDestroyed(){ makeState(STATE_SAD); delAllConstConnects(); if ((((strForContact == Game.stringForNoContact)) && (!((tempConnect == null))))){ tempConnect.removeTempMe(); }; myT = new Timer(1, 1); myT.addEventListener(TimerEvent.TIMER, onMyTimer); myT.start(); } function onMyTimer(_arg1:Event){ myWorkZone.myLevelFailed(); myWorkZone.myLevel.levelFailed(strForContact); delMeFromWorkZone(); } function delMeFromWorkZone(){ if (indexSplice != -10){ myWorkZone.volts.splice(indexSplice, 1); indexSplice = -10; }; } public static function getMaxTempConnects(_arg1:Number):Number{ return (3); } public static function getLibraryName(_arg1:Number, _arg2:String):String{ return (((("volt_in" + String((_arg1 + 1))) + "_") + _arg2)); } public static function getAddingLibraryName(_arg1:Number):String{ return ((("volt_in" + String((_arg1 + 1))) + "_adding")); } } }//package TheGame
Section 180
//VoltFlying (TheGame.VoltFlying) package TheGame { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import TheGame.MyPhysics.*; public class VoltFlying extends Volt { var pusherBodyDef:b2BodyDef; var pusherBody:b2Body; var jointDef:b2PrismaticJointDef; var myJoint:b2PrismaticJoint; override public function initMe(_arg1:PhysicsWorld){ super.initMe(_arg1); createPusher(); createJoint(); } function createPusher(){ pusherBodyDef = new b2BodyDef(); pusherBodyDef.position.Set(aBody.GetPosition().x, (aBody.GetPosition().y + 2)); pusherBody = physWorld.m_world.CreateBody(pusherBodyDef); var _local1:b2PolygonDef = new b2PolygonDef(); _local1.SetAsBox(0.01, 0.01); var _local2:b2Shape = pusherBody.CreateShape(_local1); _local2.m_filter.categoryBits = 4; _local2.m_filter.maskBits = 4; } function createJoint(){ var _local1:b2Vec2 = new b2Vec2(0, -1); jointDef = new b2PrismaticJointDef(); jointDef.Initialize(pusherBody, aBody, pusherBody.GetWorldCenter(), _local1); jointDef.maxMotorForce = 0.5; jointDef.motorSpeed = 0.4; jointDef.enableMotor = true; myJoint = (physWorld.m_world.CreateJoint(jointDef) as b2PrismaticJoint); } } }//package TheGame
Section 181
//VoltJoint (TheGame.VoltJoint) package TheGame { import flash.display.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import flash.events.*; import com.touchmypixel.peepee.utils.*; import TheGame.GameTemplate.*; public class VoltJoint extends Base { public var mask_mc:MovieClip; public var line_mc:MovieClip; var joint:b2Joint; var m_world:b2World; var connectedVolt1:Volt; var connectedVolt2:Volt; var myWorkZone:WorkZone; var dist:Number; var isRemoved:Boolean;// = false var clipLine_mc:Animation; var startWidth:Number; var counterWidth:Number;// = 0 public function VoltJoint(){ attachLineMovie("electric_line_in"); clipLine_mc.mask = mask_mc; } override public function beforeDelete(){ this.removeEventListener(Event.ENTER_FRAME, onEnFrWidth); } function attachLineMovie(_arg1:String){ clipLine_mc = Game.voltAnimationCache.getAnimation(_arg1); addChild(clipLine_mc); clipLine_mc.gotoAndPlay((MyFunc.random(clipLine_mc.totalFrames) + 1)); } function onEnFrWidth(_arg1:Event){ if (counterWidth > 5){ counterWidth = 0; if (getMyWidth() > (startWidth + 1000)){ removeMe(); }; } else { counterWidth = (counterWidth + 1); }; } public function becomeConst(){ removeChild(clipLine_mc); var _local1:Number = (Math.round((mask_mc.width / Volt.jointStepX)) * Volt.jointStepX); clipLine_mc.mask = null; mask_mc.visible = false; attachLineMovie(("electric_line_in_" + String(_local1))); startWidth = getMyWidth(); this.addEventListener(Event.ENTER_FRAME, onEnFrWidth); } public function removeMe(){ if (!isRemoved){ m_world.DestroyJoint(joint); if (parent != null){ parent.removeChild(this); }; connectedVolt1.delConnectedVolt(connectedVolt2); connectedVolt2.delConnectedVolt(connectedVolt1); connectedVolt1.delConstConnect(this); connectedVolt2.delConstConnect(this); myWorkZone.delConnect(this); isRemoved = true; if (this.hasEventListener(Event.ENTER_FRAME)){ this.removeEventListener(Event.ENTER_FRAME, onEnFrWidth); }; }; } public function removeTempMe(){ parent.removeChild(this); isRemoved = true; } function getMyWidth():Number{ return ((myWorkZone.myScale * Math.sqrt(myWorkZone.getDistSqr(connectedVolt1.x, connectedVolt1.y, connectedVolt2.x, connectedVolt2.y)))); } } }//package TheGame
Section 182
//VoltModeBtn (TheGame.VoltModeBtn) package TheGame { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import TheGame.Screens.*; import TheGame.GameTemplate.*; public class VoltModeBtn extends Base { public var border_pic:MovieClip; public var volts_plate:MovieClip; public var volts_pic:MovieClip; var numberVolts:Number;// = 4 private var myLevel:Level; var allKol:Array; var _currentVolt:Number; var myBorder:MovieClip; var myVolts:MovieClip; var myPlate:MovieClip; public static var kInfinity:Number = 1000; public function VoltModeBtn(){ myBorder = border_pic; myVolts = volts_pic; myPlate = volts_plate; } override public function beforeDelete(){ removeEventListener(MouseEvent.CLICK, onSelect); } public function init(_arg1:Array, _arg2:Level, _arg3:Number){ allKol = _arg1; myLevel = _arg2; buttonMode = true; currentVolt = _arg3; checkCurrentVolt(); addEventListener(MouseEvent.CLICK, onSelect); showEnableVolt(); } private function destruct(){ removeEventListener(MouseEvent.CLICK, onSelect); } public function onSelect(_arg1:MouseEvent):void{ var _local3:Point; var _local2:* = 0; while (_local2 < numberVolts) { _local3 = myLevel.workZone_mc.mousePoint(false); if (myVolts[("v_" + (_local2 + 1))].hitTestPoint(_local3.x, _local3.y, true)){ currentVolt = _local2; myLevel.myGame.captureClick(false); }; _local2++; }; } public function decreaseK():Boolean{ if (allKol[currentVolt] == 0){ return (false); }; if (allKol[currentVolt] < kInfinity){ allKol[currentVolt] = (allKol[currentVolt] - 1); }; updatePopulationTxt(); return (true); } public function updatePopulationTxt(){ var _local2:TextField; var _local1:* = 0; while (_local1 < allKol.length) { _local2 = myBorder[("population_" + (_local1 + 1))]; _local2.text = allKol[_local1].toString(); _local2.textColor = ((_local1)==currentVolt) ? 0xFFFFFF : 0xFFFFFF; _local1++; }; showEnableVolt(); } public function checkCurrentVolt(){ var _local1:Array; var _local2:*; if (allKol[currentVolt] == 0){ _local1 = []; _local2 = 0; while (_local2 < allKol.length) { if (allKol[_local2] != 0){ _local1.push(_local2); }; _local2++; }; if (_local1.length != 0){ currentVolt = _local1[0]; }; }; } public function get currentVolt():Number{ return (_currentVolt); } public function set currentVolt(_arg1:Number):void{ _currentVolt = _arg1; updatePopulationTxt(); } public function endLevelVolt():Number{ var _local1:Number = 0; var _local2:* = 0; while (_local2 < allKol.length) { _local1 = (_local1 + Number(allKol[_local2])); _local2++; }; return (_local1); } function showEnableVolt(){ var _local1:* = 1; while (_local1 < (allKol.length + 1)) { changeVisible(_local1, ((allKol[(_local1 - 1)])!=0) ? true : false); _local1++; }; } function changeVisible(_arg1:Number, _arg2:Boolean){ myVolts[("v_" + _arg1)].visible = (myPlate[("plate_" + _arg1)].visible = (myBorder[("population_" + _arg1)].visible = (myBorder[("c_" + _arg1)].visible = _arg2))); if (_arg2){ myBorder[("dark_" + _arg1)].visible = ((_arg1)!=(currentVolt + 1)) ? _arg2 : !(_arg2); myBorder[("r_" + _arg1)].visible = !(myBorder[("dark_" + _arg1)].visible); } else { myBorder[("dark_" + _arg1)].visible = (myBorder[("r_" + _arg1)].visible = _arg2); }; } } }//package TheGame
Section 183
//VoltSpirit (TheGame.VoltSpirit) package TheGame { import flash.display.*; import flash.events.*; import TheGame.GameTemplate.*; public class VoltSpirit extends Base { var myParent; var insideMe:MovieClip; override public function beforeDelete(){ insideMe.removeEventListener(Event.ENTER_FRAME, onEnterFrameInside); } public function startMotion(_arg1:Volt){ myParent = _arg1.parent; insideMe = (myParent.addChild(findMySpirit(_arg1.id)) as MovieClip); insideMe.x = _arg1.x; insideMe.y = _arg1.y; insideMe.addEventListener(Event.ENTER_FRAME, onEnterFrameInside); } function onEnterFrameInside(_arg1:Event){ if (insideMe.currentFrame >= insideMe.totalFrames){ insideMe.removeEventListener(Event.ENTER_FRAME, onEnterFrameInside); myParent.removeChild(insideMe); }; } function findMySpirit(_arg1:Number):DisplayObject{ switch (_arg1){ case Volt.VOLT_SIMPLE: return (new spirit_usual_clip()); case Volt.VOLT_STAT: return (new spirit_flying_clip()); case Volt.VOLT_SWIM: return (new spirit_water_clip()); case Volt.VOLT_SCOTCH: return (new spirit_sticking_clip()); }; return (null); } } }//package TheGame
Section 184
//WalkInfo (TheGame.WalkInfo) package TheGame { public class WalkInfo { public static var walkInfo:Array = [<way> <move x="63" y="104" k="7"/> <move x="62" y="108"/> <move x="66" y="117"/> <move x="74" y="134"/> <move x="78" y="139" k="3"/> <move x="79" y="147"/> <move x="85" y="159"/> <move x="99" y="186"/> <move x="123" y="219"/> <move x="143" y="256"/> <move x="164" y="304"/> <move x="184" y="339"/> <move x="199" y="359"/> <move x="206" y="366" k="1"/> <move x="209" y="371"/> <move x="211" y="379"/> <move x="216" y="388"/> <move x="216" y="390" k="15"/> <move x="216" y="390"/> <move x="216" y="390" k="2"/> <move x="217" y="390"/> <move x="217" y="388"/> <move x="220" y="387"/> <move x="226" y="386"/> <move x="233" y="386"/> <move x="241" y="386"/> <move x="246" y="386"/> <move x="254" y="386"/> <move x="260" y="391"/> <move x="266" y="391"/> <move x="273" y="391"/> <move x="281" y="389"/> <move x="284" y="386"/> <move x="291" y="382"/> <move x="296" y="378"/> <move x="299" y="376"/> <move x="300" y="372"/> <move x="301" y="368" k="3"/> <move x="302" y="368" k="2"/> <move x="303" y="366" k="5"/> <click x="303" y="366"/> <move x="303" y="366" k="1"/> <move x="309" y="365"/> <move x="314" y="364"/> <move x="318" y="363"/> <move x="324" y="361"/> <move x="329" y="360"/> <move x="337" y="360"/> <move x="344" y="360"/> <move x="348" y="360"/> <move x="353" y="360"/> <move x="359" y="360"/> <move x="364" y="360"/> <move x="368" y="360"/> <move x="370" y="360"/> <move x="372" y="360" k="1"/> <move x="374" y="360" k="6"/> <click x="374" y="360"/> <move x="374" y="360" k="11"/> </way> , <way> <move x="132" y="59" k="11"/> <move x="132" y="60"/> <move x="144" y="76"/> <move x="152" y="91"/> <move x="163" y="103"/> <move x="171" y="118"/> <move x="182" y="137"/> <move x="197" y="161"/> <move x="208" y="187"/> <move x="215" y="207"/> <move x="219" y="221"/> <move x="221" y="238"/> <move x="223" y="253"/> <move x="226" y="265"/> <move x="233" y="286"/> <move x="241" y="303"/> <move x="245" y="314"/> <move x="249" y="324"/> <move x="253" y="334"/> <move x="260" y="346"/> <move x="262" y="349" k="3"/> <move x="262" y="341"/> <move x="262" y="334"/> <move x="262" y="328"/> <move x="262" y="325" k="14"/> <click x="262" y="325"/> <move x="262" y="325" k="4"/> <move x="263" y="321"/> <move x="269" y="308"/> <move x="277" y="296"/> <move x="281" y="285"/> <move x="284" y="275"/> <move x="284" y="269"/> <move x="284" y="264"/> <move x="284" y="258"/> <move x="286" y="253"/> <move x="287" y="251"/> <move x="289" y="250"/> <move x="291" y="250" k="1"/> <move x="293" y="250" k="9"/> <click x="293" y="250"/> <move x="293" y="250"/> <move x="295" y="249"/> <move x="297" y="242"/> <move x="300" y="230"/> <move x="305" y="209"/> <move x="309" y="192"/> <move x="312" y="181"/> <move x="312" y="177" k="3"/> <move x="312" y="175"/> <move x="312" y="173" k="12"/> <click x="312" y="173"/> <move x="312" y="173" k="11"/> </way> , <way> <move x="192" y="72" k="16"/> <move x="192" y="74"/> <move x="194" y="83"/> <move x="197" y="96"/> <move x="197" y="100"/> <move x="198" y="102"/> <move x="204" y="110"/> <move x="215" y="129"/> <move x="248" y="176"/> <move x="283" y="211"/> <move x="325" y="244"/> <move x="363" y="267"/> <move x="390" y="285"/> <move x="405" y="293"/> <move x="427" y="311"/> <move x="454" y="340"/> <move x="470" y="362"/> <move x="478" y="378"/> <move x="483" y="394"/> <move x="490" y="409"/> <move x="494" y="420"/> <move x="496" y="424"/> <move x="498" y="428"/> <move x="500" y="428"/> <move x="504" y="430"/> <move x="509" y="433"/> <move x="513" y="435"/> <move x="519" y="438"/> <move x="522" y="443"/> <move x="525" y="446" k="8"/> <count_volt x="525" y="446"/> <move x="525" y="448"/> <move x="521" y="446"/> <move x="513" y="440"/> <move x="501" y="434"/> <move x="477" y="424"/> <move x="451" y="412"/> <move x="438" y="405"/> <move x="419" y="394"/> <move x="412" y="390"/> <move x="406" y="385"/> <move x="392" y="378"/> <move x="372" y="360"/> <move x="346" y="337"/> <move x="325" y="323"/> <move x="311" y="312"/> <move x="301" y="306"/> <move x="291" y="301"/> <move x="287" y="299"/> <move x="282" y="294"/> <move x="276" y="292"/> <move x="272" y="290"/> <move x="268" y="290"/> <move x="266" y="288"/> <move x="262" y="286"/> <move x="258" y="285"/> <move x="256" y="284"/> <move x="254" y="284"/> <move x="251" y="282"/> <move x="250" y="282"/> <move x="248" y="282"/> <move x="246" y="282"/> <move x="245" y="283"/> <move x="242" y="288"/> <move x="239" y="292"/> <move x="238" y="296" k="11"/> <click x="238" y="296"/> <move x="238" y="296" k="1"/> <move x="236" y="295"/> <move x="227" y="287"/> <move x="215" y="282"/> <move x="205" y="281"/> <move x="194" y="277"/> <move x="189" y="276"/> <move x="183" y="273"/> <move x="179" y="271"/> <move x="175" y="270" k="21"/> <click x="175" y="270"/> <move x="175" y="270" k="2"/> <move x="187" y="267"/> <move x="209" y="261"/> <move x="229" y="257"/> <move x="252" y="252"/> <move x="258" y="250"/> <move x="267" y="246"/> <move x="275" y="241"/> <move x="278" y="238"/> <move x="286" y="234"/> <move x="291" y="231"/> <move x="297" y="225"/> <move x="304" y="223"/> <move x="306" y="223" k="1"/> <move x="308" y="223"/> <move x="312" y="223"/> <move x="313" y="223"/> <move x="317" y="223" k="1"/> <move x="319" y="222"/> <move x="321" y="221" k="23"/> <move x="321" y="224" k="8"/> <click x="321" y="224"/> <move x="321" y="224" k="12"/> </way> , <way> <move x="263" y="104" k="16"/> <move x="268" y="113"/> <move x="278" y="128"/> <move x="290" y="143"/> <move x="300" y="159"/> <move x="311" y="174"/> <move x="321" y="187"/> <move x="330" y="200"/> <move x="340" y="216"/> <move x="351" y="236"/> <move x="361" y="259"/> <move x="375" y="285"/> <move x="395" y="319"/> <move x="417" y="345"/> <move x="432" y="367"/> <move x="444" y="383"/> <move x="453" y="394"/> <move x="460" y="401"/> <move x="464" y="407"/> <move x="472" y="415"/> <move x="482" y="425"/> <move x="491" y="434"/> <move x="498" y="442"/> <move x="500" y="449"/> <move x="503" y="452"/> <move x="505" y="452" k="1"/> <move x="507" y="452" k="1"/> <move x="509" y="452"/> <move x="511" y="452"/> <move x="512" y="452" k="7"/> <count_volt x="512" y="452"/> <move x="512" y="452" k="1"/> <move x="513" y="450" k="1"/> <move x="510" y="442"/> <move x="501" y="426"/> <move x="481" y="403"/> <move x="462" y="387"/> <move x="444" y="374"/> <move x="423" y="358"/> <move x="406" y="346"/> <move x="391" y="333"/> <move x="381" y="326"/> <move x="375" y="321"/> <move x="365" y="317"/> <move x="359" y="315"/> <move x="351" y="311"/> <move x="345" y="308"/> <move x="341" y="305"/> <move x="339" y="303" k="2"/> <move x="331" y="310"/> <move x="327" y="310"/> <move x="323" y="315"/> <move x="321" y="316" k="15"/> <click x="321" y="316"/> <move x="321" y="316" k="2"/> <move x="333" y="316"/> <move x="354" y="320"/> <move x="368" y="324"/> <move x="375" y="324"/> <move x="381" y="324"/> <move x="386" y="325"/> <move x="394" y="327"/> <move x="397" y="329"/> <move x="399" y="330"/> <move x="405" y="332"/> <move x="409" y="334"/> <move x="412" y="337"/> <move x="418" y="341" k="2"/> <move x="421" y="341"/> <move x="425" y="341"/> <move x="429" y="341"/> <move x="430" y="341"/> <move x="434" y="341" k="1"/> <move x="436" y="341" k="7"/> <click x="436" y="341"/> <move x="436" y="341" k="2"/> <move x="432" y="341"/> <move x="428" y="341"/> <move x="421" y="340"/> <move x="413" y="339"/> <move x="406" y="339"/> <move x="400" y="338"/> <move x="396" y="338"/> <move x="393" y="338" k="1"/> <move x="391" y="338"/> <move x="387" y="338"/> <move x="387" y="336" k="8"/> <move x="385" y="339"/> <move x="383" y="350"/> <move x="384" y="355"/> <move x="386" y="359"/> <move x="387" y="360"/> <move x="388" y="360"/> <move x="394" y="360"/> <move x="396" y="360" k="7"/> <click x="396" y="360"/> <move x="396" y="360" k="7"/> <move x="398" y="360" k="3"/> <move x="398" y="358"/> </way> , <way> <move x="334" y="96" k="17"/> <move x="334" y="100"/> <move x="336" y="106"/> <move x="347" y="121"/> <move x="351" y="125"/> <move x="353" y="128"/> <move x="357" y="131"/> <move x="364" y="136"/> <move x="369" y="142"/> <move x="374" y="147"/> <move x="381" y="151"/> <move x="387" y="155"/> <move x="395" y="161"/> <move x="399" y="162"/> <move x="402" y="168"/> <move x="409" y="177"/> <move x="413" y="185"/> <move x="415" y="188"/> <move x="416" y="192"/> <move x="416" y="197"/> <move x="418" y="204"/> <move x="418" y="208"/> <move x="418" y="210" k="7"/> <move x="419" y="210"/> <move x="422" y="201"/> <move x="423" y="195"/> <move x="424" y="195"/> <move x="424" y="191" k="6"/> <move x="427" y="193"/> <move x="428" y="195"/> <move x="429" y="197"/> <move x="429" y="201"/> <move x="429" y="203"/> <move x="429" y="205"/> <move x="430" y="207"/> <move x="430" y="209" k="4"/> <move x="431" y="209" k="5"/> <move x="433" y="208"/> <move x="435" y="208"/> <move x="437" y="205"/> <move x="439" y="202"/> <move x="441" y="202" k="3"/> <move x="438" y="192"/> <move x="434" y="185"/> <move x="431" y="181"/> <move x="429" y="181" k="4"/> <move x="432" y="186"/> <move x="432" y="191"/> <move x="435" y="197" k="2"/> <move x="437" y="198" k="9"/> <click x="437" y="198"/> <move x="439" y="198" k="4"/> <move x="439" y="196"/> <move x="428" y="188"/> <move x="403" y="179"/> <move x="376" y="175"/> <move x="345" y="173"/> <move x="325" y="173"/> <move x="298" y="173"/> <move x="275" y="175"/> <move x="257" y="179"/> <move x="240" y="187"/> <move x="219" y="190"/> <move x="201" y="193"/> <move x="192" y="196"/> <move x="191" y="202"/> <move x="191" y="204"/> <move x="191" y="206"/> <move x="191" y="207"/> <move x="192" y="210" k="5"/> <move x="193" y="210" k="1"/> <move x="193" y="208"/> <move x="193" y="206"/> <move x="193" y="204"/> <move x="193" y="202" k="33"/> <click x="193" y="202"/> <move x="193" y="202" k="11"/> </way> , <way> <move x="417" y="94" k="18"/> <move x="417" y="97"/> <move x="417" y="105"/> <move x="418" y="114"/> <move x="418" y="124"/> <move x="420" y="144"/> <move x="427" y="173"/> <move x="439" y="209"/> <move x="452" y="260"/> <move x="466" y="311"/> <move x="484" y="365"/> <move x="509" y="408"/> <move x="523" y="443"/> <move x="535" y="462"/> <move x="538" y="462" k="2"/> <move x="540" y="462"/> <move x="542" y="461"/> <move x="545" y="459"/> <move x="548" y="457"/> <move x="550" y="456"/> <move x="552" y="455" k="3"/> <move x="554" y="455" k="1"/> <move x="556" y="455"/> <move x="558" y="454" k="5"/> <count_volt x="558" y="454"/> <move x="558" y="454" k="2"/> <move x="554" y="451"/> <move x="542" y="443"/> <move x="507" y="427"/> <move x="417" y="385"/> <move x="367" y="359"/> <move x="347" y="348"/> <move x="341" y="344"/> <move x="329" y="334"/> <move x="311" y="317"/> <move x="291" y="292"/> <move x="275" y="272"/> <move x="261" y="249"/> <move x="250" y="227"/> <move x="241" y="214"/> <move x="240" y="212" k="2"/> <move x="235" y="209"/> <move x="232" y="208"/> <move x="228" y="208"/> <move x="226" y="208"/> <move x="224" y="209"/> <move x="222" y="209"/> <move x="219" y="209"/> <move x="215" y="209"/> <move x="213" y="209"/> <move x="211" y="208"/> <move x="209" y="208"/> <move x="207" y="207" k="9"/> <click x="207" y="207"/> <move x="207" y="207"/> <move x="208" y="207"/> <move x="216" y="205"/> <move x="220" y="204"/> <move x="230" y="202"/> <move x="240" y="201"/> <move x="247" y="201"/> <move x="250" y="202"/> <move x="256" y="202"/> <move x="263" y="202"/> <move x="267" y="202"/> <move x="270" y="202" k="1"/> <move x="276" y="202"/> <move x="283" y="203"/> <move x="291" y="206"/> <move x="295" y="206"/> <move x="299" y="206"/> <move x="302" y="206" k="7"/> <move x="300" y="206"/> <move x="298" y="206" k="6"/> <click x="298" y="206"/> <move x="298" y="206" k="2"/> <move x="313" y="206"/> <move x="355" y="206"/> <move x="393" y="204"/> <move x="401" y="204"/> <move x="403" y="204"/> <move x="408" y="204"/> <move x="423" y="206"/> <move x="428" y="206"/> <move x="429" y="204" k="2"/> <move x="431" y="204"/> <move x="437" y="204"/> <move x="438" y="204"/> <move x="442" y="204" k="1"/> <move x="446" y="203" k="7"/> <click x="446" y="203"/> <move x="446" y="203"/> <move x="444" y="203"/> <move x="436" y="203"/> <move x="429" y="202"/> <move x="419" y="196"/> <move x="406" y="193"/> <move x="399" y="190"/> <move x="397" y="189"/> <move x="395" y="189"/> <move x="393" y="189"/> <move x="391" y="189"/> <move x="390" y="189" k="13"/> <click x="390" y="189"/> <move x="390" y="189" k="11"/> </way> , <way> <move x="479" y="64" k="4"/> <move x="481" y="72"/> <move x="488" y="97"/> <move x="496" y="119"/> <move x="503" y="136"/> <move x="505" y="153"/> <move x="514" y="182"/> <move x="519" y="201"/> <move x="514" y="211"/> <move x="514" y="217"/> <move x="514" y="225"/> <move x="514" y="233"/> <move x="514" y="236"/> <move x="514" y="240"/> <move x="514" y="247"/> <move x="514" y="251"/> <move x="514" y="255"/> <move x="514" y="258" k="1"/> <move x="514" y="260" k="1"/> <move x="515" y="261" k="1"/> <move x="517" y="262" k="1"/> <move x="518" y="264" k="2"/> <move x="520" y="264" k="8"/> <click x="520" y="264"/> <move x="520" y="264" k="3"/> <move x="520" y="269"/> <move x="520" y="277"/> <move x="520" y="285"/> <move x="520" y="294"/> <move x="520" y="304"/> <move x="520" y="311"/> <move x="520" y="315"/> <move x="520" y="319"/> <move x="520" y="322"/> <move x="520" y="326"/> <move x="519" y="330"/> <move x="519" y="331" k="7"/> <click x="519" y="331"/> <move x="519" y="331"/> <move x="517" y="331"/> <move x="509" y="335"/> <move x="498" y="339"/> <move x="491" y="341"/> <move x="487" y="342"/> <move x="482" y="344"/> <move x="476" y="347"/> <move x="470" y="350"/> <move x="469" y="352"/> <move x="465" y="354"/> <move x="464" y="356"/> <move x="460" y="358"/> <move x="459" y="360"/> <move x="458" y="364"/> <move x="456" y="365" k="1"/> <move x="456" y="367" k="7"/> <click x="456" y="367"/> <move x="456" y="367" k="1"/> <move x="454" y="367"/> <move x="441" y="372"/> <move x="428" y="372"/> <move x="412" y="373"/> <move x="405" y="377"/> <move x="397" y="379"/> <move x="395" y="380" k="1"/> <move x="393" y="380" k="9"/> <click x="393" y="380"/> <move x="393" y="380" k="1"/> <move x="391" y="380"/> <move x="379" y="376"/> <move x="347" y="376"/> <move x="316" y="376"/> <move x="302" y="377"/> <move x="286" y="377"/> <move x="275" y="377"/> <move x="271" y="377"/> <move x="266" y="377"/> <move x="260" y="377"/> <move x="256" y="378" k="12"/> <click x="256" y="378"/> <move x="256" y="378" k="2"/> <move x="251" y="370"/> <move x="241" y="360"/> <move x="235" y="353"/> <move x="226" y="342"/> <move x="221" y="333"/> <move x="213" y="321"/> <move x="209" y="318"/> <move x="207" y="315"/> <move x="204" y="313"/> <move x="200" y="311"/> <move x="196" y="309"/> <move x="193" y="306" k="11"/> <click x="193" y="306"/> <move x="193" y="306" k="2"/> <move x="193" y="302"/> <move x="191" y="295"/> <move x="189" y="283"/> <move x="184" y="270"/> <move x="181" y="260"/> <move x="181" y="258" k="2"/> <move x="181" y="256"/> <move x="181" y="253" k="10"/> <click x="181" y="253"/> <move x="181" y="253" k="12"/> </way> , <way> <move x="556" y="74" k="2"/> <move x="546" y="80"/> <move x="510" y="88"/> <move x="468" y="88"/> <move x="430" y="91"/> <move x="391" y="91"/> <move x="361" y="89"/> <move x="347" y="78"/> <move x="323" y="73" k="1"/> <move x="321" y="77"/> <move x="317" y="85"/> <move x="313" y="93"/> <move x="311" y="95"/> <move x="310" y="97"/> <move x="307" y="100"/> <move x="299" y="108"/> <move x="295" y="111"/> <move x="292" y="112"/> <move x="290" y="112"/> <move x="288" y="111" k="6"/> <click x="288" y="111"/> <move x="288" y="111" k="4"/> <move x="288" y="114"/> <move x="292" y="124"/> <move x="306" y="149"/> <move x="324" y="183"/> <move x="342" y="220"/> <move x="355" y="240"/> <move x="370" y="253"/> <move x="391" y="264"/> <move x="412" y="278"/> <move x="449" y="297"/> <move x="467" y="307"/> <move x="473" y="310" k="1"/> <move x="475" y="310" k="3"/> <move x="477" y="309" k="30"/> <move x="479" y="309"/> <move x="480" y="309"/> <move x="482" y="309" k="2"/> <move x="484" y="309" k="5"/> <move x="486" y="309" k="12"/> <click x="486" y="309"/> <move x="486" y="309" k="3"/> <move x="486" y="310"/> <move x="484" y="311"/> <move x="475" y="315"/> <move x="467" y="322"/> <move x="461" y="325"/> <move x="454" y="325"/> <move x="447" y="325"/> <move x="435" y="325"/> <move x="422" y="325"/> <move x="412" y="326"/> <move x="408" y="332"/> <move x="407" y="334"/> <move x="405" y="335" k="15"/> <click x="405" y="335"/> <move x="405" y="335" k="2"/> <move x="399" y="338"/> <move x="387" y="345"/> <move x="373" y="353"/> <move x="367" y="356"/> <move x="361" y="360"/> <move x="351" y="366" k="1"/> <move x="350" y="368" k="1"/> <move x="348" y="368"/> <move x="343" y="367"/> <move x="341" y="366" k="1"/> <move x="341" y="364"/> <move x="341" y="362"/> <move x="341" y="360" k="7"/> <click x="341" y="360"/> <move x="341" y="360" k="12"/> </way> , <way> <move x="595" y="131" k="7"/> <move x="573" y="144"/> <move x="533" y="164"/> <move x="482" y="190"/> <move x="468" y="197"/> <move x="462" y="198"/> <move x="437" y="206"/> <move x="393" y="218"/> <move x="355" y="222"/> <move x="324" y="224"/> <move x="293" y="226"/> <move x="272" y="227"/> <move x="259" y="227"/> <move x="247" y="226"/> <move x="233" y="219"/> <move x="229" y="218"/> <move x="222" y="218"/> <move x="216" y="218"/> <move x="212" y="219"/> <move x="210" y="219"/> <move x="209" y="220"/> <move x="207" y="221" k="25"/> <move x="207" y="219"/> <move x="204" y="214" k="1"/> <move x="230" y="231"/> <move x="349" y="291"/> <move x="436" y="339"/> <move x="479" y="379"/> <stripe_down_over x="493" y="396"/> <move x="504" y="408"/> <move x="507" y="410" k="1"/> <move x="508" y="414"/> <move x="512" y="422"/> <move x="516" y="430"/> <stripe_down_out x="519" y="434"/> <move x="519" y="439" k="1"/> <move x="520" y="443"/> <move x="520" y="447" k="7"/> <count_volt x="520" y="447"/> <move x="520" y="447" k="1"/> <move x="514" y="438"/> <stripe_down_over x="509" y="431"/> <stripe_down_out x="500" y="425"/> <stripe_down_over x="492" y="420"/> <move x="442" y="395"/> <stripe_down_out x="407" y="376"/> <move x="356" y="344"/> <move x="324" y="323"/> <move x="299" y="303"/> <move x="284" y="290"/> <move x="270" y="279"/> <move x="256" y="263"/> <move x="244" y="254"/> <move x="234" y="246"/> <move x="223" y="240"/> <move x="217" y="237"/> <move x="209" y="233"/> <move x="205" y="229"/> <move x="199" y="226"/> <move x="198" y="224" k="6"/> <move x="198" y="231"/> <move x="199" y="235" k="9"/> <click x="199" y="235"/> <move x="199" y="235" k="4"/> <move x="219" y="238"/> <move x="277" y="245"/> <move x="326" y="251"/> <move x="371" y="251"/> <move x="389" y="251"/> <move x="399" y="251"/> <move x="405" y="251"/> <move x="413" y="250"/> <move x="420" y="248"/> <move x="427" y="248"/> <move x="439" y="243"/> <move x="445" y="243" k="8"/> <click x="445" y="243"/> <move x="445" y="243" k="4"/> <move x="438" y="248"/> <move x="430" y="254"/> <move x="420" y="262"/> <move x="414" y="267"/> <move x="405" y="273"/> <move x="396" y="276"/> <move x="384" y="278"/> <move x="371" y="281"/> <move x="359" y="284"/> <move x="345" y="289"/> <move x="338" y="293"/> <move x="333" y="297"/> <move x="329" y="299"/> <move x="325" y="303"/> <move x="320" y="310"/> <move x="316" y="311"/> <move x="313" y="312"/> <move x="310" y="313"/> <move x="308" y="313" k="9"/> <move x="306" y="313" k="2"/> <move x="306" y="311"/> <move x="306" y="309"/> <move x="308" y="305"/> <move x="309" y="303"/> <move x="310" y="297"/> <move x="312" y="294"/> <move x="314" y="289"/> <move x="319" y="282"/> <move x="319" y="274" k="2"/> <move x="319" y="272" k="4"/> <move x="319" y="270"/> <move x="317" y="270" k="1"/> <move x="317" y="268" k="2"/> <move x="316" y="266" k="3"/> <move x="315" y="264" k="1"/> <move x="314" y="262" k="24"/> <move x="314" y="260"/> <move x="314" y="255"/> <move x="314" y="251"/> <move x="314" y="247"/> <move x="314" y="246" k="4"/> <move x="314" y="244" k="7"/> <move x="312" y="244" k="1"/> <move x="312" y="245"/> <move x="311" y="251"/> <move x="311" y="253"/> <move x="311" y="255"/> <move x="311" y="258" k="2"/> <move x="311" y="260" k="18"/> <move x="309" y="260"/> <move x="307" y="260"/> <move x="306" y="258"/> <move x="303" y="255" k="9"/> <move x="301" y="255" k="1"/> <move x="299" y="255"/> <move x="296" y="252"/> <move x="292" y="251"/> <move x="290" y="249" k="2"/> <move x="289" y="249"/> <move x="287" y="248" k="5"/> <click x="287" y="248"/> <move x="287" y="248" k="1"/> <move x="292" y="247"/> <move x="298" y="253"/> <move x="313" y="257"/> <move x="322" y="259"/> <move x="327" y="259"/> <move x="334" y="259"/> <move x="338" y="259"/> <move x="340" y="259"/> <move x="341" y="259"/> <move x="348" y="256"/> <move x="352" y="255" k="1"/> <move x="354" y="255"/> <move x="355" y="255" k="5"/> <click x="355" y="255"/> <move x="357" y="254" k="1"/> <move x="359" y="244"/> <move x="362" y="231"/> <move x="365" y="210"/> <move x="366" y="187"/> <move x="366" y="172"/> <move x="366" y="164"/> <move x="363" y="159"/> <move x="361" y="155"/> <move x="359" y="151"/> <move x="355" y="143"/> <move x="354" y="136"/> <move x="351" y="129"/> <move x="351" y="121"/> <move x="347" y="111"/> <move x="347" y="109" k="1"/> <move x="346" y="107" k="1"/> <move x="343" y="101"/> <move x="342" y="96"/> <stripe_up_over x="341" y="94"/> <move x="341" y="92" k="1"/> <move x="339" y="91" k="2"/> <move x="338" y="89" k="10"/> <stripe_up_out x="335" y="95"/> <move x="330" y="103"/> <move x="327" y="110"/> <move x="325" y="116"/> <move x="317" y="128"/> <move x="302" y="143"/> <move x="279" y="157"/> <move x="262" y="165"/> <move x="260" y="166" k="1"/> <move x="261" y="163"/> <move x="266" y="155"/> <move x="269" y="144"/> <move x="279" y="123"/> <move x="282" y="102"/> <stripe_up_over x="283" y="83"/> <move x="283" y="75" k="13"/> <move x="282" y="84"/> <move x="280" y="93"/> <stripe_up_out x="279" y="97"/> <move x="277" y="108"/> <move x="276" y="121"/> <move x="276" y="133"/> <move x="276" y="136"/> <move x="272" y="149"/> <move x="262" y="173"/> <move x="252" y="193"/> <move x="238" y="218"/> <move x="227" y="250"/> <move x="217" y="274"/> <move x="215" y="276" k="2"/> <move x="214" y="278"/> <move x="208" y="287"/> <move x="205" y="297"/> <move x="203" y="309"/> <move x="203" y="315"/> <move x="203" y="319" k="1"/> <move x="203" y="320" k="4"/> <move x="202" y="314"/> <move x="199" y="311"/> <move x="199" y="309" k="5"/> <move x="197" y="309" k="1"/> <move x="195" y="309"/> <move x="195" y="307"/> <move x="193" y="307" k="10"/> <click x="193" y="307"/> <move x="193" y="307" k="2"/> <move x="194" y="306"/> <move x="209" y="303"/> <move x="240" y="300"/> <move x="278" y="300"/> <move x="320" y="300"/> <move x="358" y="300"/> <move x="382" y="298"/> <move x="397" y="295"/> <move x="403" y="292"/> <move x="410" y="290"/> <move x="418" y="289"/> <move x="428" y="288"/> <move x="449" y="293"/> <move x="461" y="295"/> <move x="463" y="296"/> <move x="465" y="297" k="3"/> <move x="465" y="298" k="2"/> <move x="465" y="300" k="21"/> <click x="465" y="300"/> <move x="465" y="300" k="11"/> </way> , <way> <move x="501" y="183" k="7"/> <move x="497" y="183"/> <move x="491" y="183"/> <move x="484" y="185"/> <move x="472" y="185"/> <move x="441" y="183"/> <move x="398" y="173"/> <move x="386" y="166"/> <move x="380" y="154"/> <move x="375" y="133" k="1"/> <move x="372" y="130" k="2"/> <move x="367" y="122"/> <move x="362" y="113"/> <stripe_up_over x="354" y="94"/> <move x="345" y="85"/> <move x="341" y="84" k="1"/> <move x="334" y="80"/> <move x="333" y="78"/> <move x="331" y="72"/> <move x="330" y="70" k="2"/> <move x="329" y="68"/> <move x="327" y="68"/> <move x="327" y="66" k="10"/> <move x="325" y="65" k="1"/> <move x="325" y="68"/> <move x="325" y="75"/> <move x="321" y="84"/> <move x="321" y="88"/> <move x="320" y="89"/> <stripe_up_out x="317" y="97"/> <move x="309" y="124"/> <move x="299" y="160"/> <move x="291" y="196"/> <move x="285" y="215"/> <move x="285" y="217"/> <move x="284" y="219"/> <move x="281" y="224"/> <move x="278" y="232"/> <move x="282" y="239"/> <move x="289" y="246"/> <move x="296" y="256"/> <move x="296" y="257"/> <move x="296" y="265"/> <move x="297" y="270"/> <move x="297" y="278"/> <move x="297" y="281"/> <move x="297" y="283"/> <move x="297" y="285" k="2"/> <move x="295" y="285" k="1"/> <move x="293" y="285" k="8"/> <click x="293" y="285"/> <move x="293" y="285" k="3"/> <move x="298" y="281"/> <move x="322" y="277"/> <move x="345" y="277"/> <move x="369" y="280"/> <move x="379" y="281"/> <move x="381" y="281" k="1"/> <move x="381" y="285" k="2"/> <move x="383" y="289" k="1"/> <move x="385" y="289" k="4"/> <move x="387" y="289"/> <move x="389" y="289"/> <move x="391" y="289"/> <move x="393" y="288"/> <move x="394" y="288"/> <move x="396" y="287"/> <move x="398" y="286" k="6"/> <click x="398" y="286"/> <move x="400" y="286" k="1"/> <move x="402" y="285" k="1"/> <move x="407" y="285"/> <move x="420" y="283"/> <move x="437" y="281"/> <move x="454" y="281"/> <move x="459" y="283"/> <move x="460" y="284"/> <move x="463" y="287"/> <move x="467" y="290"/> <move x="471" y="292"/> <move x="475" y="292"/> <move x="478" y="292"/> <move x="481" y="290" k="9"/> <click x="481" y="290"/> <move x="481" y="290" k="7"/> <move x="473" y="290"/> <move x="451" y="288"/> <move x="418" y="293"/> <move x="393" y="296"/> <move x="348" y="308"/> <move x="320" y="311"/> <move x="302" y="312"/> <move x="284" y="317"/> <move x="260" y="320"/> <move x="238" y="324"/> <move x="226" y="325"/> <move x="218" y="325"/> <move x="214" y="325"/> <move x="213" y="325"/> <move x="209" y="323"/> <move x="206" y="320"/> <move x="205" y="316"/> <move x="204" y="314" k="1"/> <move x="204" y="310"/> <move x="204" y="307"/> <move x="202" y="305"/> <move x="202" y="301"/> <move x="200" y="298" k="1"/> <move x="194" y="293"/> <move x="192" y="292"/> <move x="190" y="288"/> <move x="189" y="285"/> <move x="187" y="284" k="7"/> <click x="187" y="284"/> <move x="187" y="284" k="5"/> <move x="187" y="293"/> <move x="187" y="303"/> <move x="197" y="325"/> <move x="211" y="342"/> <move x="220" y="353"/> <move x="221" y="368"/> <move x="221" y="385"/> <move x="219" y="388" k="1"/> <move x="211" y="388"/> <move x="205" y="388" k="2"/> <move x="203" y="388" k="1"/> <move x="201" y="388"/> <move x="199" y="393"/> <stripe_down_over x="199" y="395"/> <move x="197" y="396"/> <move x="197" y="398" k="5"/> <stripe_down_out x="206" y="390"/> <move x="228" y="375"/> <move x="255" y="358"/> <move x="263" y="348"/> <move x="271" y="342"/> <move x="291" y="324"/> <move x="300" y="309"/> <move x="303" y="306" k="5"/> <move x="293" y="298"/> <move x="288" y="291"/> <move x="280" y="279"/> <move x="272" y="268"/> <move x="271" y="265" k="5"/> <move x="276" y="273" k="10"/> <click x="276" y="273"/> <move x="276" y="273" k="1"/> <move x="279" y="286"/> <move x="281" y="300"/> <move x="282" y="317"/> <move x="275" y="328"/> <move x="269" y="335"/> <move x="264" y="339"/> <move x="263" y="345"/> <move x="263" y="350"/> <move x="263" y="360"/> <move x="261" y="366"/> <move x="261" y="368" k="4"/> <move x="262" y="368"/> <move x="264" y="368"/> <move x="264" y="370" k="1"/> <move x="265" y="370" k="3"/> <click x="265" y="370"/> <move x="265" y="368"/> <move x="265" y="362"/> <move x="265" y="354"/> <move x="265" y="351" k="6"/> <click x="265" y="351"/> <move x="265" y="351" k="2"/> <move x="265" y="354"/> <move x="266" y="360" k="2"/> <move x="266" y="362"/> <move x="265" y="365"/> <move x="262" y="373"/> <move x="262" y="377"/> <move x="262" y="382"/> <move x="262" y="386"/> <move x="261" y="391"/> <stripe_down_over x="261" y="395"/> <move x="261" y="402"/> <move x="261" y="408"/> <move x="261" y="413"/> <move x="262" y="426"/> <move x="262" y="434"/> <move x="262" y="436" k="7"/> <move x="262" y="434"/> <move x="262" y="430"/> <move x="262" y="428"/> <move x="262" y="424"/> <move x="262" y="417"/> <move x="262" y="397"/> <stripe_down_out x="264" y="389"/> <move x="267" y="338"/> <move x="273" y="313"/> <move x="273" y="298"/> <move x="273" y="283"/> <move x="275" y="272"/> <move x="275" y="265"/> <move x="275" y="258"/> <move x="275" y="254"/> <move x="275" y="252"/> <move x="272" y="247"/> <move x="271" y="246"/> <move x="269" y="245"/> <move x="264" y="239" k="4"/> <move x="264" y="237"/> <move x="264" y="232"/> <move x="263" y="226"/> <move x="262" y="222"/> <move x="262" y="217"/> <move x="262" y="213" k="10"/> <click x="262" y="213"/> <move x="262" y="213" k="2"/> <move x="259" y="206"/> <move x="255" y="199"/> <move x="254" y="195" k="7"/> <click x="254" y="195"/> <move x="254" y="195" k="1"/> <move x="255" y="201"/> <move x="258" y="210"/> <move x="263" y="223"/> <move x="263" y="236"/> <move x="260" y="245"/> <move x="259" y="251"/> <move x="259" y="255"/> <move x="261" y="261"/> <move x="265" y="264" k="1"/> <move x="268" y="269"/> <move x="268" y="272"/> <move x="268" y="274"/> <move x="268" y="278" k="1"/> <move x="268" y="282" k="8"/> <click x="268" y="282"/> <move x="268" y="282"/> <move x="268" y="283"/> <move x="268" y="287" k="1"/> <move x="265" y="296"/> <move x="261" y="310"/> <move x="258" y="319"/> <move x="258" y="327"/> <move x="258" y="332"/> <move x="258" y="338"/> <move x="259" y="343"/> <move x="259" y="349"/> <move x="259" y="355"/> <move x="259" y="360"/> <move x="260" y="364"/> <move x="260" y="366"/> <move x="261" y="368" k="5"/> <move x="262" y="370"/> <move x="264" y="373"/> <move x="264" y="375" k="8"/> <click x="264" y="375"/> <move x="264" y="375" k="2"/> <move x="262" y="371"/> <move x="262" y="369"/> <move x="261" y="363"/> <move x="260" y="360"/> <move x="259" y="358" k="7"/> <click x="259" y="358"/> <move x="259" y="358" k="4"/> <move x="259" y="359"/> <move x="259" y="367"/> <move x="259" y="372"/> <move x="259" y="380"/> <move x="259" y="392"/> <stripe_down_over x="259" y="395"/> <move x="260" y="409"/> <move x="258" y="437"/> <move x="258" y="443" k="10"/> <move x="258" y="441"/> <move x="258" y="439"/> <move x="260" y="434"/> <move x="264" y="423"/> <move x="268" y="408"/> <stripe_down_out x="273" y="391"/> <move x="281" y="354"/> <move x="283" y="326"/> <move x="283" y="291"/> <move x="283" y="270"/> <move x="286" y="260"/> <move x="286" y="257"/> <move x="286" y="251"/> <move x="284" y="251"/> <move x="277" y="248"/> <move x="270" y="248"/> <move x="263" y="244"/> <move x="259" y="243"/> <move x="257" y="243" k="7"/> <click x="257" y="243"/> <move x="257" y="243" k="2"/> <move x="257" y="244"/> <move x="259" y="250"/> <move x="261" y="253"/> <move x="267" y="259"/> <move x="271" y="261"/> <move x="274" y="262"/> <move x="276" y="264"/> <move x="284" y="266"/> <move x="292" y="268"/> <move x="296" y="270"/> <move x="300" y="271"/> <move x="301" y="272"/> <move x="303" y="273"/> <move x="304" y="275"/> <move x="306" y="276"/> <move x="308" y="277"/> <move x="314" y="278"/> <move x="315" y="278" k="9"/> <click x="315" y="278"/> <move x="315" y="278" k="7"/> <move x="313" y="278" k="2"/> <move x="314" y="278"/> </way> , <way> <move x="445" y="222" k="10"/> <move x="443" y="222" k="1"/> <move x="433" y="222"/> <move x="414" y="219"/> <move x="343" y="193"/> <move x="284" y="170"/> <move x="247" y="151"/> <move x="226" y="139"/> <move x="205" y="126"/> <move x="189" y="115"/> <move x="168" y="107"/> <move x="151" y="104"/> <move x="147" y="104"/> <move x="140" y="104"/> <move x="128" y="104"/> <move x="120" y="104"/> <move x="116" y="101"/> <move x="114" y="99" k="8"/> <click x="114" y="99"/> <move x="114" y="99" k="3"/> <move x="124" y="105"/> <move x="157" y="127"/> <move x="183" y="143"/> <move x="211" y="164"/> <move x="256" y="194"/> <move x="299" y="219"/> <move x="351" y="245"/> <move x="395" y="266"/> <move x="421" y="278"/> <move x="444" y="291"/> <move x="457" y="297"/> <move x="464" y="299"/> <move x="468" y="299"/> <move x="474" y="299"/> <move x="475" y="299"/> <move x="477" y="298"/> <move x="483" y="297"/> <move x="485" y="297"/> <move x="486" y="297" k="1"/> <move x="488" y="297"/> <move x="491" y="298"/> <move x="492" y="299"/> <move x="494" y="299" k="1"/> <move x="497" y="301" k="2"/> <move x="501" y="302"/> <move x="503" y="303"/> <move x="505" y="303"/> <move x="507" y="304" k="10"/> <click x="507" y="304"/> <move x="507" y="304" k="9"/> <move x="508" y="302"/> <move x="508" y="300"/> <move x="510" y="297"/> <move x="512" y="293"/> <move x="513" y="287"/> <move x="513" y="285"/> <move x="513" y="283"/> <move x="513" y="281" k="1"/> <move x="511" y="280"/> <move x="507" y="280"/> <move x="505" y="280"/> <move x="503" y="280" k="1"/> <move x="501" y="280" k="8"/> <move x="502" y="280"/> <move x="504" y="280"/> <move x="508" y="280"/> <move x="512" y="280"/> <move x="515" y="280"/> <move x="523" y="280"/> <move x="529" y="280"/> <move x="534" y="280"/> <move x="538" y="280"/> <move x="544" y="280"/> <move x="549" y="280"/> <move x="551" y="280" k="2"/> <move x="545" y="281"/> <move x="541" y="281" k="1"/> <move x="539" y="281"/> <move x="538" y="281"/> <move x="532" y="281"/> <move x="528" y="282"/> <move x="521" y="284"/> <move x="518" y="285"/> <move x="514" y="287"/> <move x="510" y="292"/> <move x="509" y="294" k="1"/> <move x="508" y="296" k="1"/> <move x="508" y="297"/> <move x="508" y="299" k="8"/> <click x="508" y="299"/> <move x="508" y="299" k="3"/> <move x="509" y="300" k="7"/> </way> , <way> <move x="412" y="278" k="11"/> <move x="376" y="272"/> <move x="364" y="272"/> <move x="337" y="272"/> <move x="314" y="273"/> <move x="302" y="274" k="6"/> <move x="289" y="271"/> <move x="273" y="268"/> <move x="260" y="264"/> <move x="248" y="264"/> <move x="228" y="267"/> <move x="194" y="285"/> <move x="156" y="299"/> <move x="125" y="314"/> <move x="114" y="319"/> <move x="105" y="322"/> <move x="104" y="322" k="2"/> <move x="104" y="326"/> <move x="100" y="337"/> <move x="94" y="346"/> <move x="92" y="350"/> <move x="88" y="350"/> <move x="72" y="350"/> <move x="66" y="350" k="1"/> <move x="64" y="350" k="4"/> <click x="64" y="350"/> <move x="64" y="350" k="3"/> <move x="77" y="344"/> <move x="88" y="340"/> <move x="96" y="336"/> <move x="98" y="336"/> <move x="101" y="335"/> <move x="105" y="332"/> <move x="107" y="330"/> <move x="107" y="328"/> <move x="108" y="323"/> <move x="109" y="323"/> <move x="109" y="321"/> <move x="109" y="319" k="4"/> <move x="106" y="313"/> <move x="105" y="309"/> <move x="103" y="305" k="1"/> <move x="102" y="303" k="1"/> <move x="101" y="301" k="3"/> <move x="101" y="299" k="1"/> <click x="101" y="299"/> <move x="101" y="299"/> <move x="101" y="295"/> <move x="107" y="292"/> <move x="125" y="281"/> <move x="136" y="275"/> <move x="138" y="275" k="1"/> <move x="148" y="272"/> <move x="156" y="269"/> <move x="164" y="269"/> <move x="166" y="268"/> <move x="169" y="268"/> <move x="171" y="268" k="2"/> <move x="173" y="268" k="2"/> <move x="174" y="269"/> <move x="176" y="270" k="3"/> <move x="176" y="272" k="1"/> <move x="176" y="274"/> <move x="175" y="276" k="7"/> <click x="175" y="276"/> <move x="175" y="276" k="1"/> <move x="150" y="259"/> <move x="132" y="251"/> <move x="126" y="250"/> <move x="119" y="242"/> <move x="114" y="239"/> <move x="110" y="233"/> <move x="105" y="228" k="1"/> <move x="104" y="226" k="15"/> <click x="104" y="226"/> <move x="104" y="226" k="1"/> <move x="107" y="224"/> <move x="136" y="209"/> <move x="173" y="192"/> <move x="184" y="188"/> <move x="185" y="186"/> <move x="185" y="182" k="5"/> <move x="183" y="180" k="14"/> <move x="181" y="180" k="4"/> <move x="179" y="181" k="8"/> <click x="179" y="181"/> <move x="179" y="181" k="2"/> <move x="198" y="186"/> <move x="246" y="217"/> <move x="289" y="235"/> <move x="353" y="265"/> <move x="447" y="310"/> <move x="487" y="334"/> <move x="508" y="351"/> <move x="515" y="357" k="2"/> <move x="522" y="361"/> <move x="542" y="362"/> <move x="559" y="363"/> <move x="568" y="364"/> <move x="580" y="369"/> <move x="584" y="371" k="5"/> <move x="586" y="372" k="4"/> <move x="587" y="372" k="1"/> <move x="591" y="371" k="6"/> <move x="595" y="370"/> <move x="597" y="369"/> <move x="599" y="369" k="1"/> <move x="602" y="369" k="2"/> <click x="602" y="369"/> <move x="602" y="369" k="1"/> <move x="593" y="360"/> <move x="573" y="341"/> <move x="560" y="332"/> <move x="553" y="324"/> <move x="544" y="315"/> <move x="540" y="313"/> <move x="537" y="310"/> <move x="529" y="309" k="10"/> <move x="530" y="309" k="3"/> <click x="530" y="309"/> <move x="530" y="309"/> <move x="535" y="307"/> <move x="562" y="298"/> <move x="584" y="290"/> <move x="593" y="285" k="2"/> <move x="599" y="283" k="2"/> <move x="599" y="281" k="1"/> <move x="601" y="279" k="8"/> <click x="601" y="279"/> <move x="601" y="279" k="1"/> <move x="588" y="271"/> <move x="562" y="261"/> <move x="558" y="255"/> <move x="551" y="245"/> <move x="547" y="240"/> <move x="544" y="235"/> <move x="544" y="234"/> <move x="542" y="231"/> <move x="539" y="229" k="10"/> <click x="539" y="229"/> <move x="539" y="229" k="1"/> <move x="545" y="225"/> <move x="557" y="220"/> <move x="572" y="210"/> <move x="582" y="199"/> <move x="590" y="195"/> <move x="595" y="193" k="1"/> <move x="597" y="193"/> <move x="603" y="190" k="11"/> <click x="603" y="190"/> <move x="603" y="190" k="5"/> <move x="599" y="189"/> <move x="577" y="178"/> <move x="571" y="175"/> <move x="561" y="170"/> <move x="548" y="165"/> <move x="545" y="162"/> <move x="541" y="161"/> <move x="529" y="156"/> <move x="521" y="153" k="5"/> <move x="527" y="150"/> <move x="537" y="147" k="10"/> <click x="537" y="147"/> <move x="537" y="147" k="9"/> <move x="532" y="149"/> <move x="512" y="149"/> <move x="484" y="143"/> <move x="459" y="140"/> <move x="435" y="136"/> <move x="407" y="132"/> <move x="383" y="130"/> <move x="344" y="125"/> <move x="324" y="124"/> <move x="279" y="135"/> <move x="233" y="139"/> <move x="196" y="140"/> <move x="168" y="142"/> <move x="149" y="145"/> <move x="132" y="147"/> <move x="131" y="147" k="6"/> <click x="131" y="147"/> <move x="131" y="147" k="2"/> <move x="136" y="143"/> <move x="160" y="133"/> <move x="189" y="125"/> <move x="199" y="121"/> <move x="203" y="117"/> <move x="208" y="115" k="1"/> <move x="208" y="114" k="1"/> <move x="206" y="112"/> <move x="200" y="112" k="1"/> <move x="198" y="112" k="4"/> <move x="196" y="112" k="3"/> <click x="196" y="112"/> <move x="196" y="112" k="3"/> <move x="185" y="104"/> <move x="176" y="97"/> <move x="166" y="90"/> <move x="164" y="86" k="1"/> <move x="164" y="85" k="1"/> <move x="165" y="85" k="3"/> <move x="175" y="85"/> <move x="179" y="85" k="3"/> <click x="179" y="85"/> <move x="179" y="85" k="1"/> <move x="179" y="83"/> <move x="183" y="80"/> <move x="206" y="78"/> <move x="216" y="79"/> <move x="223" y="78"/> <move x="227" y="78"/> <move x="231" y="78" k="1"/> <move x="235" y="79"/> <move x="237" y="79"/> <move x="245" y="87" k="1"/> <move x="253" y="90"/> <move x="269" y="94"/> <move x="277" y="102"/> <move x="283" y="108"/> <move x="298" y="119"/> <move x="308" y="123" k="1"/> <click x="308" y="123"/> <move x="308" y="123"/> <move x="313" y="124"/> <move x="341" y="132"/> <move x="367" y="148"/> <move x="386" y="166"/> <move x="395" y="185"/> <move x="400" y="193"/> <move x="400" y="195"/> <move x="400" y="198"/> <move x="398" y="206"/> <move x="403" y="219"/> <move x="433" y="270"/> <move x="442" y="284"/> <move x="442" y="288"/> <move x="444" y="294"/> <move x="444" y="298"/> <move x="444" y="300" k="1"/> <move x="446" y="300" k="1"/> <move x="446" y="296"/> <click x="446" y="296"/> <move x="446" y="296" k="2"/> <move x="458" y="295"/> <move x="459" y="289"/> <move x="459" y="283"/> <move x="459" y="280"/> <move x="457" y="274"/> <move x="443" y="244"/> <move x="437" y="235"/> <move x="417" y="206"/> <move x="407" y="192"/> </way> , <way> <move x="291" y="189" k="3"/> <move x="287" y="189"/> <move x="280" y="186"/> <move x="276" y="186"/> <move x="258" y="189"/> <move x="216" y="190"/> <move x="181" y="190"/> <move x="169" y="190"/> <move x="165" y="190"/> <move x="160" y="190"/> <move x="150" y="191"/> <move x="140" y="192"/> <move x="133" y="192"/> <move x="121" y="193"/> <move x="109" y="193"/> <move x="94" y="193"/> <move x="88" y="193"/> <move x="84" y="191"/> <move x="80" y="190"/> <move x="75" y="189"/> <move x="74" y="187" k="9"/> <click x="74" y="187"/> <move x="74" y="187" k="1"/> <move x="74" y="188"/> <move x="74" y="198"/> <move x="74" y="210"/> <move x="74" y="222"/> <move x="74" y="232"/> <move x="74" y="249"/> <move x="74" y="259"/> <move x="74" y="261"/> <move x="74" y="263"/> <move x="74" y="265"/> <move x="74" y="266"/> <move x="74" y="268"/> <move x="71" y="272" k="2"/> <move x="70" y="274" k="6"/> <click x="70" y="274"/> <move x="70" y="274" k="1"/> <move x="71" y="275"/> <move x="99" y="277"/> <move x="166" y="277"/> <move x="228" y="272"/> <move x="282" y="262"/> <move x="320" y="250"/> <move x="350" y="240"/> <move x="397" y="229"/> <move x="448" y="217"/> <move x="502" y="205"/> <move x="534" y="197"/> <move x="544" y="194" k="1"/> <move x="550" y="194"/> <move x="561" y="194"/> <move x="569" y="195" k="1"/> <move x="570" y="195"/> <move x="572" y="194" k="2"/> <move x="576" y="194"/> <move x="580" y="194" k="7"/> <click x="580" y="194"/> <move x="580" y="194"/> <move x="581" y="201"/> <move x="581" y="211"/> <move x="585" y="222"/> <move x="591" y="237"/> <move x="596" y="246"/> <move x="600" y="251"/> <move x="601" y="253"/> <move x="601" y="258"/> <move x="601" y="266"/> <move x="601" y="268" k="8"/> <click x="601" y="268"/> <move x="602" y="271"/> <move x="597" y="285"/> <move x="585" y="328"/> <move x="575" y="389"/> <move x="569" y="432"/> <move x="565" y="450"/> <move x="562" y="459"/> <move x="559" y="464"/> <move x="556" y="467"/> <move x="547" y="472"/> <move x="540" y="472"/> <move x="536" y="471"/> <move x="532" y="469"/> <move x="529" y="467"/> <move x="527" y="466" k="5"/> <count_volt x="526" y="464"/> <move x="523" y="456"/> <move x="520" y="454"/> <move x="519" y="450"/> <move x="516" y="443"/> <move x="514" y="439"/> <move x="504" y="409"/> <move x="485" y="365"/> <move x="466" y="307"/> <move x="447" y="259"/> <move x="424" y="226"/> <move x="424" y="224" k="4"/> <move x="424" y="227"/> <move x="424" y="239"/> <move x="428" y="248"/> <move x="429" y="250"/> <move x="430" y="256"/> <move x="434" y="263"/> <move x="438" y="265"/> <move x="441" y="268"/> <move x="444" y="269" k="1"/> <move x="446" y="269"/> <move x="448" y="269"/> <move x="452" y="269"/> <move x="454" y="269"/> <move x="455" y="269"/> <move x="456" y="270"/> <move x="458" y="270" k="5"/> <click x="458" y="270"/> <move x="458" y="270" k="1"/> <move x="417" y="267"/> <move x="371" y="270"/> <move x="318" y="270"/> <move x="276" y="272"/> <move x="251" y="280"/> <move x="228" y="284"/> <move x="214" y="289"/> <move x="196" y="291"/> <move x="188" y="290"/> <move x="181" y="286"/> <move x="171" y="284"/> <move x="161" y="280"/> <move x="155" y="279" k="3"/> <move x="155" y="277"/> <move x="158" y="276"/> <move x="160" y="276"/> <move x="166" y="276"/> <move x="167" y="276" k="5"/> <move x="165" y="276"/> <move x="159" y="273"/> <move x="157" y="273"/> <move x="155" y="273" k="8"/> <click x="155" y="273"/> <move x="155" y="273" k="1"/> <move x="156" y="273"/> <move x="162" y="277"/> <move x="183" y="289"/> <move x="205" y="298"/> <move x="217" y="299"/> <move x="218" y="301"/> <move x="237" y="309"/> <move x="277" y="322"/> <move x="321" y="342"/> <move x="352" y="368"/> <move x="379" y="407"/> <move x="400" y="428"/> <move x="413" y="438" k="2"/> <move x="424" y="440"/> <move x="439" y="440"/> <move x="452" y="440"/> <move x="461" y="446"/> <move x="474" y="452"/> <move x="482" y="454" k="4"/> <move x="480" y="454" k="3"/> <count_volt x="478" y="454"/> <move x="476" y="446"/> <move x="472" y="438"/> <move x="467" y="424"/> <move x="456" y="405"/> <move x="446" y="387"/> <move x="429" y="368"/> <move x="394" y="338"/> <move x="373" y="316"/> <move x="348" y="299"/> <move x="324" y="288"/> <move x="315" y="282"/> <move x="305" y="278"/> <move x="297" y="274"/> <move x="294" y="267"/> <move x="287" y="258"/> <move x="283" y="253"/> <move x="274" y="244"/> <move x="268" y="241"/> <move x="262" y="236" k="3"/> <move x="260" y="234"/> <move x="254" y="233"/> <move x="251" y="231"/> <move x="249" y="227"/> <move x="248" y="225"/> <move x="246" y="223"/> <move x="245" y="215"/> <move x="245" y="212" k="6"/> <move x="245" y="208"/> <move x="245" y="202"/> <move x="245" y="199"/> <move x="245" y="197" k="13"/> <click x="245" y="197"/> <move x="245" y="197" k="2"/> <move x="252" y="201"/> <move x="265" y="215"/> <move x="284" y="241"/> <move x="317" y="283"/> <move x="363" y="346"/> <move x="394" y="392"/> <move x="427" y="445"/> <move x="458" y="479"/> <move x="466" y="485"/> <move x="467" y="488"/> <move x="474" y="489"/> <move x="492" y="483"/> <move x="512" y="472"/> <move x="515" y="466"/> <move x="516" y="460"/> <move x="516" y="455"/> <move x="516" y="453"/> <move x="517" y="452" k="7"/> <count_volt x="517" y="452"/> <move x="517" y="452" k="1"/> <move x="515" y="444"/> <move x="499" y="426"/> <move x="476" y="403"/> <move x="449" y="357"/> <move x="425" y="333"/> <move x="401" y="314"/> <move x="387" y="304"/> <move x="376" y="294"/> <move x="373" y="291"/> <move x="367" y="285"/> <move x="357" y="278"/> <move x="351" y="274"/> <move x="347" y="269"/> <move x="343" y="265"/> <move x="337" y="261"/> <move x="333" y="252"/> <move x="324" y="245"/> <move x="317" y="242"/> <move x="311" y="240"/> <move x="308" y="238"/> <move x="306" y="237"/> <move x="301" y="236"/> <move x="297" y="236" k="1"/> <move x="295" y="236"/> <move x="292" y="237" k="2"/> <move x="288" y="237"/> <move x="284" y="237"/> <move x="283" y="237"/> <move x="281" y="237" k="4"/> <move x="282" y="237"/> <move x="288" y="235"/> <move x="292" y="235"/> <move x="295" y="234" k="4"/> <click x="296" y="232"/> <move x="300" y="232"/> <move x="302" y="232"/> <move x="306" y="231" k="1"/> <move x="309" y="230" k="1"/> <move x="313" y="230"/> <move x="318" y="230"/> <move x="335" y="225"/> <move x="344" y="220"/> <move x="354" y="216"/> <move x="364" y="213"/> <move x="369" y="211"/> <move x="370" y="211"/> <move x="372" y="210"/> <move x="376" y="210"/> <move x="378" y="210" k="12"/> <click x="378" y="210"/> <move x="378" y="210" k="11"/> </way> , <way> <move x="198" y="178"/> <move x="213" y="191"/> <move x="225" y="204"/> <move x="244" y="212"/> <move x="265" y="227"/> <move x="286" y="240"/> <move x="303" y="252"/> <move x="325" y="268"/> <move x="369" y="296"/> <move x="407" y="337"/> <move x="431" y="355"/> <move x="444" y="373"/> <move x="453" y="386"/> <move x="455" y="393"/> <stripe_down_over x="455" y="395"/> <move x="459" y="407"/> <move x="464" y="411"/> <move x="473" y="419"/> <move x="479" y="419"/> <stripe_down_out x="485" y="424"/> <move x="497" y="429"/> <move x="504" y="436"/> <move x="511" y="441"/> <move x="515" y="446"/> <move x="518" y="450"/> <move x="519" y="450" k="3"/> <move x="520" y="451" k="2"/> <count_volt x="520" y="451"/> <move x="520" y="451"/> <move x="519" y="449"/> <move x="518" y="447" k="1"/> <move x="517" y="445"/> <move x="514" y="436"/> <stripe_down_over x="509" y="427"/> <stripe_down_out x="489" y="392"/> <move x="472" y="356"/> <move x="460" y="328"/> <move x="454" y="318"/> <move x="447" y="305"/> <move x="437" y="293"/> <move x="431" y="283"/> <move x="425" y="274"/> <move x="419" y="265"/> <move x="416" y="258"/> <move x="411" y="248"/> <move x="410" y="246" k="3"/> <move x="406" y="245"/> <move x="404" y="244" k="5"/> <click x="404" y="244"/> <move x="404" y="244"/> <move x="399" y="235"/> <move x="387" y="218"/> <move x="380" y="201"/> <move x="374" y="190"/> <move x="365" y="181"/> <move x="363" y="178"/> <move x="359" y="172"/> <move x="358" y="168"/> <move x="356" y="165" k="3"/> <move x="352" y="162"/> <move x="345" y="156"/> <move x="343" y="155" k="8"/> <move x="343" y="156"/> <move x="352" y="167"/> <move x="377" y="205"/> <move x="398" y="241"/> <move x="425" y="302"/> <move x="453" y="345"/> <move x="462" y="366"/> <move x="466" y="384"/> <move x="469" y="394"/> <stripe_down_over x="470" y="396"/> <move x="473" y="411"/> <move x="474" y="415"/> <move x="474" y="421"/> <move x="474" y="428"/> <stripe_down_out x="479" y="433"/> <move x="482" y="447"/> <move x="482" y="454"/> <move x="481" y="459" k="7"/> <count_volt x="479" y="459"/> <move x="477" y="453"/> <move x="477" y="447"/> <stripe_down_over x="472" y="428"/> <stripe_down_out x="459" y="392"/> <move x="444" y="359"/> <move x="418" y="313"/> <move x="394" y="270"/> <move x="378" y="244"/> <move x="368" y="220"/> <move x="358" y="201"/> <move x="356" y="191"/> <move x="355" y="188"/> <move x="351" y="180"/> <move x="350" y="173"/> <move x="349" y="166"/> <move x="349" y="158"/> <move x="349" y="157"/> <move x="349" y="155"/> <move x="348" y="153" k="4"/> <move x="346" y="150"/> <move x="346" y="148" k="11"/> <click x="346" y="148"/> <move x="346" y="148" k="2"/> <move x="343" y="143"/> <move x="340" y="135"/> <move x="336" y="126"/> <move x="335" y="119"/> <move x="334" y="113" k="1"/> <move x="332" y="109"/> <move x="332" y="105" k="1"/> <move x="332" y="103"/> <move x="332" y="101"/> <move x="332" y="98"/> <move x="332" y="96" k="2"/> <stripe_up_over x="332" y="94"/> <move x="331" y="90"/> <move x="331" y="87"/> <move x="330" y="85"/> <move x="330" y="83"/> <move x="330" y="81"/> <move x="330" y="79" k="4"/> <stripe_up_out x="322" y="96"/> <move x="318" y="104"/> <move x="309" y="117"/> <move x="299" y="137"/> <move x="295" y="152"/> <move x="291" y="162"/> <move x="287" y="173"/> <move x="284" y="177"/> <move x="283" y="179" k="1"/> <move x="282" y="183"/> <move x="281" y="189"/> <move x="280" y="196"/> <move x="278" y="202"/> <move x="278" y="207" k="2"/> <move x="278" y="209"/> <move x="278" y="211"/> <move x="278" y="212"/> <move x="278" y="214"/> <move x="278" y="220"/> <move x="278" y="223" k="2"/> <move x="278" y="225"/> <move x="280" y="228"/> <move x="281" y="228" k="6"/> <click x="281" y="228"/> <move x="281" y="228"/> <move x="283" y="215"/> <move x="285" y="195"/> <move x="290" y="170"/> <move x="291" y="153"/> <move x="291" y="146"/> <move x="291" y="144"/> <move x="291" y="141"/> <move x="291" y="137" k="3"/> <move x="294" y="137" k="2"/> <move x="296" y="137" k="6"/> <click x="296" y="137"/> <move x="296" y="137" k="3"/> <move x="298" y="137"/> <move x="302" y="137"/> <move x="313" y="137"/> <move x="323" y="134"/> <move x="333" y="131"/> <move x="339" y="129"/> <move x="341" y="128"/> <move x="344" y="128"/> <move x="346" y="128"/> <move x="346" y="129"/> <move x="346" y="131" k="1"/> <move x="347" y="133" k="7"/> <click x="347" y="133"/> <move x="347" y="133" k="1"/> <move x="343" y="126"/> <move x="336" y="113"/> <move x="332" y="104"/> <move x="326" y="98"/> <stripe_up_over x="324" y="94"/> <move x="319" y="92"/> <move x="317" y="92"/> <move x="315" y="92" k="3"/> <move x="313" y="92"/> <stripe_up_out x="313" y="95"/> <move x="313" y="105"/> <move x="312" y="112"/> <move x="311" y="120"/> <move x="309" y="129"/> <move x="309" y="135"/> <move x="309" y="140" k="11"/> <click x="309" y="140"/> <move x="309" y="140"/> <move x="309" y="138"/> <move x="307" y="128"/> <move x="302" y="115"/> <move x="298" y="107"/> <move x="292" y="101"/> <stripe_up_over x="289" y="91"/> <move x="288" y="87"/> <move x="287" y="83" k="4"/> <move x="287" y="86"/> <move x="287" y="88"/> <move x="285" y="89"/> <stripe_up_out x="289" y="96"/> <move x="292" y="103"/> <move x="296" y="108"/> <move x="292" y="115"/> <move x="292" y="122"/> <move x="292" y="124" k="2"/> <move x="290" y="124"/> <move x="289" y="127"/> <move x="287" y="130"/> <move x="282" y="135"/> <move x="281" y="137"/> <move x="281" y="139"/> <move x="279" y="140" k="7"/> <click x="279" y="140"/> <move x="279" y="140" k="1"/> <move x="279" y="142"/> <move x="290" y="153"/> <move x="318" y="181"/> <move x="372" y="224"/> <move x="407" y="246"/> <move x="455" y="304"/> <move x="471" y="341"/> <move x="478" y="357"/> <move x="487" y="376"/> <move x="490" y="385"/> <move x="492" y="393"/> <stripe_down_over x="493" y="397"/> <move x="495" y="402"/> <move x="498" y="412"/> <move x="500" y="415"/> <stripe_down_out x="503" y="423"/> <move x="505" y="431"/> <move x="506" y="438"/> <move x="506" y="440"/> <move x="506" y="441"/> <move x="507" y="442"/> <move x="509" y="442"/> <move x="511" y="442"/> <move x="515" y="442" k="1"/> <move x="519" y="442" k="4"/> <count_volt x="519" y="442"/> <stripe_down_over x="510" y="415"/> <stripe_down_out x="500" y="376"/> <move x="456" y="275"/> <move x="419" y="193"/> <move x="392" y="147"/> <move x="364" y="121"/> <move x="341" y="112"/> <move x="319" y="95"/> <stripe_up_over x="311" y="91"/> <move x="303" y="87" k="1"/> <move x="300" y="89"/> <move x="298" y="93"/> <stripe_up_out x="295" y="96"/> <move x="294" y="98"/> <move x="294" y="99"/> <move x="294" y="105"/> <move x="296" y="111"/> <move x="296" y="113" k="8"/> <move x="297" y="113" k="1"/> <move x="297" y="109"/> <move x="304" y="97"/> <move x="304" y="95" k="6"/> <click x="304" y="95"/> <move x="304" y="95" k="5"/> <move x="309" y="97"/> <move x="336" y="113"/> <move x="369" y="130"/> <move x="401" y="148"/> <move x="437" y="167"/> <move x="451" y="168"/> <move x="467" y="158"/> <move x="469" y="152"/> <move x="473" y="150"/> <move x="476" y="148"/> <move x="482" y="146"/> <move x="494" y="143"/> <move x="504" y="141"/> <move x="516" y="141"/> <move x="519" y="140"/> <move x="521" y="140"/> <move x="523" y="140"/> <move x="525" y="140"/> <move x="527" y="143"/> <move x="530" y="146"/> <move x="530" y="147" k="8"/> <click x="530" y="147"/> <move x="531" y="154"/> <move x="533" y="184"/> <move x="545" y="267"/> <move x="547" y="312"/> <move x="550" y="339"/> <move x="550" y="355"/> <move x="550" y="370"/> <stripe_down_over x="543" y="402"/> <stripe_down_out x="533" y="419"/> <move x="524" y="435" k="1"/> <move x="522" y="435"/> <move x="520" y="435"/> <move x="512" y="438"/> <move x="503" y="441"/> <move x="495" y="442" k="1"/> <stripe_down_over x="493" y="444"/> <stripe_down_out x="491" y="446"/> <move x="484" y="450"/> <move x="479" y="453"/> <move x="479" y="454" k="5"/> <count_volt x="479" y="454"/> <move x="479" y="448"/> <move x="476" y="440"/> <stripe_down_over x="471" y="431"/> <stripe_down_out x="460" y="388"/> <move x="454" y="366"/> <move x="449" y="331"/> <move x="438" y="287"/> <move x="427" y="256"/> <move x="419" y="239"/> <move x="410" y="221"/> <move x="403" y="205"/> <move x="402" y="199"/> <move x="396" y="188"/> <move x="391" y="174"/> <move x="388" y="167"/> <move x="385" y="160"/> <move x="382" y="154"/> <move x="379" y="149"/> <move x="378" y="147"/> <move x="376" y="143" k="6"/> <move x="377" y="142" k="4"/> <move x="367" y="142"/> <move x="362" y="142" k="2"/> <move x="360" y="141" k="4"/> <move x="358" y="141" k="7"/> <click x="358" y="141"/> <move x="358" y="141" k="2"/> <move x="367" y="141"/> <move x="379" y="140"/> <move x="386" y="137"/> <move x="393" y="134"/> <move x="402" y="130"/> <move x="417" y="125"/> <move x="435" y="122"/> <move x="439" y="121"/> <move x="441" y="121"/> <move x="443" y="120"/> <move x="448" y="120"/> <move x="452" y="119" k="5"/> <move x="450" y="119"/> <move x="448" y="119"/> <move x="446" y="119"/> <move x="442" y="119"/> <move x="440" y="119"/> <move x="437" y="120"/> <move x="435" y="120" k="1"/> <move x="433" y="121"/> <move x="431" y="121" k="1"/> <move x="429" y="121" k="3"/> <click x="429" y="121"/> <move x="429" y="121" k="2"/> <move x="427" y="121"/> <move x="425" y="121"/> <move x="420" y="121"/> <move x="415" y="124"/> <move x="413" y="127"/> <move x="411" y="135"/> <move x="413" y="151"/> <move x="423" y="187"/> <move x="446" y="243"/> <move x="464" y="298"/> <move x="487" y="351"/> <move x="504" y="392"/> <stripe_down_over x="513" y="400"/> <move x="518" y="418"/> <move x="518" y="426"/> <stripe_down_out x="520" y="431"/> <move x="520" y="433"/> <move x="520" y="441"/> <move x="518" y="447"/> <move x="518" y="449" k="5"/> <count_volt x="518" y="449"/> <stripe_down_over x="507" y="422"/> <stripe_down_out x="485" y="391"/> <move x="381" y="310"/> <move x="323" y="275"/> <move x="228" y="219"/> <move x="140" y="178"/> <move x="113" y="158"/> <move x="112" y="152"/> <move x="116" y="147"/> <move x="116" y="140"/> <move x="117" y="135"/> <move x="117" y="133"/> <move x="117" y="131" k="6"/> <move x="117" y="128"/> <move x="115" y="125"/> <move x="113" y="125"/> <move x="111" y="125" k="2"/> <move x="109" y="125" k="6"/> <click x="109" y="125"/> <move x="109" y="125" k="3"/> <move x="117" y="128"/> <move x="138" y="135"/> <move x="168" y="150"/> <move x="206" y="176"/> <move x="252" y="223"/> <move x="296" y="283"/> <move x="327" y="330"/> <move x="359" y="365"/> <move x="365" y="367"/> <move x="365" y="361"/> <move x="365" y="359" k="1"/> <move x="367" y="371"/> <move x="381" y="394"/> <stripe_down_over x="396" y="410"/> <move x="415" y="436"/> <move x="427" y="452"/> <move x="433" y="460"/> <move x="436" y="460" k="1"/> <move x="437" y="457"/> <stripe_down_out x="442" y="452"/> <stripe_down_over x="445" y="448"/> <stripe_down_out x="459" y="445"/> <move x="465" y="445"/> <move x="468" y="446"/> <move x="469" y="447"/> <move x="471" y="447" k="3"/> <count_volt x="471" y="447"/> <stripe_down_over x="470" y="426"/> <stripe_down_out x="460" y="391"/> <move x="433" y="332"/> <move x="404" y="276"/> <move x="378" y="224"/> <move x="354" y="183"/> <move x="344" y="164"/> <move x="336" y="152"/> <move x="330" y="144"/> <move x="320" y="135"/> <move x="302" y="124"/> <move x="287" y="119"/> <move x="280" y="115" k="1"/> <move x="278" y="115"/> <move x="270" y="113"/> <move x="259" y="106"/> <move x="250" y="99"/> <stripe_up_over x="246" y="90"/> <move x="238" y="74"/> <move x="234" y="66" k="1"/> <move x="234" y="64" k="10"/> <move x="238" y="79"/> <stripe_up_out x="245" y="97"/> <move x="255" y="137"/> <move x="260" y="156"/> <move x="263" y="164"/> <move x="263" y="178"/> <move x="259" y="184"/> <move x="260" y="192"/> <move x="264" y="202"/> <move x="267" y="212"/> <move x="267" y="220"/> <move x="267" y="222" k="2"/> <move x="267" y="223" k="3"/> <move x="265" y="226"/> <move x="263" y="228"/> <move x="263" y="233"/> <move x="262" y="235" k="16"/> <click x="262" y="235"/> <move x="262" y="235" k="1"/> <move x="260" y="236"/> <move x="256" y="236"/> <move x="243" y="236"/> <move x="231" y="237"/> <move x="225" y="238"/> <move x="215" y="238"/> <move x="205" y="238"/> <move x="202" y="238"/> <move x="200" y="238" k="3"/> <move x="200" y="236"/> <move x="200" y="234" k="10"/> <move x="202" y="234"/> <move x="204" y="234" k="1"/> <move x="206" y="234"/> <move x="208" y="234"/> <move x="210" y="235"/> <move x="212" y="235" k="5"/> <click x="212" y="235"/> <move x="213" y="235" k="5"/> <move x="215" y="235"/> <move x="215" y="236" k="4"/> </way> , <way> <click x="116" y="187" k="1"/> <move x="116" y="187" k="14"/> <move x="117" y="187"/> <move x="119" y="187"/> <move x="131" y="187"/> <move x="165" y="187"/> <move x="211" y="189"/> <move x="225" y="190" k="1"/> <move x="227" y="190"/> <move x="227" y="191"/> <move x="228" y="197"/> <move x="228" y="201" k="6"/> <click x="228" y="201"/> <move x="229" y="202"/> <move x="265" y="202"/> <move x="347" y="202"/> <move x="400" y="202"/> <move x="409" y="198"/> <move x="420" y="195"/> <move x="435" y="195"/> <move x="456" y="200"/> <move x="466" y="203" k="10"/> <click x="466" y="203"/> <move x="464" y="203"/> <move x="454" y="200"/> <move x="423" y="198"/> <move x="369" y="201"/> <move x="316" y="205"/> <move x="288" y="207"/> <move x="278" y="208" k="1"/> <move x="276" y="208" k="3"/> <move x="279" y="208"/> <move x="286" y="208"/> <move x="295" y="208"/> <move x="303" y="208" k="1"/> <move x="305" y="208" k="4"/> <click x="305" y="208"/> <move x="305" y="208"/> <move x="310" y="206"/> <move x="328" y="200"/> <move x="334" y="198" k="2"/> <move x="335" y="197"/> <move x="339" y="197" k="2"/> <move x="341" y="197" k="3"/> <move x="343" y="197" k="5"/> <click x="343" y="197"/> <move x="343" y="197" k="11"/> </way> , <way> <move x="394" y="275"/> <move x="499" y="248"/> <move x="527" y="234"/> <move x="558" y="217"/> <move x="592" y="200"/> <move x="615" y="186"/> <move x="618" y="181" k="7"/> <move x="604" y="175"/> <move x="592" y="168"/> <move x="588" y="162"/> <move x="577" y="155"/> <move x="564" y="149"/> <move x="551" y="146"/> <move x="539" y="145"/> <move x="536" y="142" k="4"/> <move x="537" y="142" k="7"/> <click x="537" y="142"/> <move x="537" y="142" k="1"/> <move x="534" y="152"/> <move x="526" y="181"/> <move x="517" y="217"/> <move x="511" y="242"/> <move x="510" y="247"/> <move x="510" y="251"/> <move x="510" y="253"/> <move x="511" y="254"/> <move x="517" y="254"/> <move x="527" y="245"/> <move x="530" y="243" k="7"/> <click x="530" y="243"/> <move x="530" y="243" k="6"/> <move x="524" y="246" k="1"/> <move x="523" y="246"/> <move x="518" y="249"/> <move x="508" y="253"/> <move x="502" y="256"/> <move x="497" y="258"/> <move x="493" y="261" k="2"/> <move x="491" y="258"/> <move x="503" y="234"/> <move x="529" y="177"/> <move x="538" y="134"/> <move x="535" y="114"/> <move x="528" y="104" k="1"/> <move x="523" y="106"/> <move x="520" y="109"/> <move x="515" y="107"/> <move x="511" y="107" k="1"/> <move x="512" y="117"/> <move x="517" y="167"/> <move x="528" y="291"/> <move x="542" y="338"/> <move x="575" y="373"/> <move x="579" y="384"/> <move x="581" y="393"/> <move x="587" y="402"/> <move x="588" y="403"/> <move x="581" y="417"/> <move x="571" y="432"/> <move x="570" y="434"/> <move x="568" y="435" k="3"/> <count_volt x="568" y="435"/> <move x="568" y="435"/> <move x="568" y="426"/> <move x="551" y="377"/> <move x="530" y="343"/> <move x="497" y="285"/> <move x="472" y="234"/> <move x="465" y="214"/> <move x="457" y="201"/> <move x="455" y="197"/> <move x="451" y="191"/> <move x="442" y="181"/> <move x="430" y="168"/> <move x="410" y="153"/> <move x="399" y="139"/> <move x="397" y="138" k="3"/> <click x="397" y="138"/> <move x="397" y="138"/> <move x="401" y="138"/> <move x="432" y="147"/> <move x="442" y="147" k="1"/> <move x="449" y="151"/> <move x="474" y="156"/> <move x="483" y="159" k="16"/> <move x="479" y="164"/> <move x="477" y="174"/> <move x="477" y="187"/> <move x="477" y="195"/> <move x="481" y="205"/> <move x="483" y="209"/> <move x="483" y="212"/> <move x="483" y="214"/> <move x="483" y="216"/> <move x="484" y="220"/> <move x="484" y="222"/> <move x="482" y="226"/> <move x="482" y="230"/> <move x="482" y="234" k="1"/> <move x="482" y="236" k="4"/> <move x="488" y="239"/> <move x="514" y="251"/> <move x="545" y="265"/> <move x="558" y="271"/> <move x="564" y="271"/> <move x="564" y="269"/> <move x="557" y="269"/> <move x="529" y="260"/> <move x="434" y="228"/> <move x="332" y="205"/> <move x="261" y="179"/> <move x="261" y="175"/> <move x="262" y="173"/> <move x="263" y="166"/> <move x="263" y="162"/> <move x="263" y="161" k="1"/> <move x="259" y="168"/> <move x="235" y="201"/> <move x="202" y="234"/> <move x="191" y="254"/> <move x="191" y="260"/> <move x="190" y="268"/> <move x="188" y="270"/> <move x="181" y="273"/> <move x="162" y="273"/> <move x="154" y="273"/> <move x="150" y="273"/> <move x="149" y="269"/> <move x="146" y="263"/> <move x="143" y="259"/> <move x="141" y="258" k="1"/> <move x="136" y="255"/> <move x="134" y="255"/> <move x="129" y="253"/> <move x="126" y="252" k="8"/> <click x="126" y="252"/> <move x="126" y="252"/> <move x="131" y="251"/> <move x="146" y="246"/> <move x="169" y="239"/> <move x="178" y="233"/> <move x="190" y="222"/> <move x="193" y="215"/> <move x="199" y="206"/> <move x="199" y="200" k="3"/> <move x="197" y="200"/> <move x="192" y="203"/> <move x="186" y="204"/> <move x="184" y="204" k="4"/> <move x="182" y="204"/> <move x="176" y="201"/> <move x="174" y="198" k="4"/> <move x="172" y="198"/> <move x="162" y="198"/> <move x="160" y="198" k="12"/> <move x="158" y="198" k="6"/> <click x="158" y="198"/> <move x="158" y="198" k="3"/> <move x="162" y="199"/> <move x="180" y="207"/> <move x="191" y="212"/> <move x="194" y="215"/> <move x="199" y="223"/> <move x="204" y="229"/> <move x="209" y="232"/> <move x="215" y="232"/> <move x="216" y="232"/> <move x="219" y="229"/> <move x="220" y="221"/> <move x="222" y="215" k="1"/> <move x="225" y="213"/> <move x="231" y="207" k="10"/> <click x="231" y="207"/> <move x="231" y="207" k="11"/> </way> , <way> <move x="47" y="327" k="15"/> <move x="49" y="327" k="6"/> <move x="51" y="327"/> <move x="55" y="327"/> <move x="66" y="320"/> <move x="81" y="313"/> <move x="90" y="305"/> <move x="105" y="299"/> <move x="144" y="295"/> <move x="176" y="288"/> <move x="189" y="281"/> <move x="225" y="262"/> <move x="273" y="237"/> <move x="295" y="227" k="4"/> <move x="298" y="226"/> <move x="306" y="226"/> <move x="315" y="226"/> <move x="316" y="226" k="1"/> <move x="320" y="225"/> <move x="326" y="224" k="1"/> <move x="328" y="224"/> <move x="329" y="223" k="1"/> <move x="331" y="223"/> <move x="333" y="222" k="37"/> <click x="333" y="222"/> <move x="333" y="222" k="2"/> <move x="334" y="220"/> <move x="340" y="213"/> <move x="343" y="207"/> <move x="344" y="204"/> <move x="346" y="198"/> <move x="351" y="192"/> <move x="355" y="182"/> <move x="358" y="176"/> <move x="360" y="175" k="2"/> <move x="362" y="175"/> <move x="363" y="175"/> <move x="365" y="174" k="1"/> <move x="367" y="174"/> <move x="369" y="174"/> <move x="371" y="174" k="2"/> <move x="373" y="174" k="6"/> <click x="373" y="174"/> <move x="373" y="174"/> <move x="369" y="174"/> <move x="361" y="176"/> <move x="354" y="176"/> <move x="342" y="181"/> <move x="330" y="181"/> <move x="316" y="181"/> <move x="309" y="180"/> <move x="302" y="177" k="1"/> <move x="300" y="176" k="1"/> <move x="297" y="173"/> <move x="296" y="169"/> <move x="290" y="164" k="7"/> <click x="290" y="164"/> <move x="290" y="164" k="9"/> <move x="292" y="162"/> <move x="302" y="161"/> <move x="315" y="157"/> <move x="336" y="153"/> <move x="357" y="150"/> <move x="360" y="150"/> <move x="362" y="150"/> <move x="369" y="150"/> <move x="379" y="150"/> <move x="389" y="149"/> <move x="398" y="149"/> <move x="406" y="147"/> <move x="420" y="147"/> <move x="433" y="147"/> <move x="440" y="147"/> <move x="442" y="147"/> <move x="444" y="147"/> <move x="446" y="147" k="1"/> <move x="448" y="148"/> <move x="450" y="149" k="5"/> <move x="452" y="149" k="9"/> <move x="453" y="150"/> <move x="455" y="153"/> <move x="456" y="154" k="7"/> <click x="456" y="154"/> <move x="456" y="154" k="2"/> <move x="422" y="160"/> <move x="370" y="160"/> <move x="286" y="160"/> <move x="247" y="161"/> <move x="232" y="161"/> <move x="230" y="161" k="1"/> <move x="226" y="161"/> <move x="224" y="161"/> <move x="219" y="161"/> <move x="213" y="162"/> <move x="212" y="164"/> <move x="211" y="166" k="7"/> <click x="211" y="166"/> <move x="211" y="166" k="11"/> </way> , <way> <move x="127" y="385" k="6"/> <move x="138" y="380"/> <move x="170" y="373"/> <move x="201" y="372"/> <move x="219" y="372"/> <move x="233" y="372"/> <move x="252" y="372"/> <move x="273" y="373"/> <move x="301" y="375"/> <move x="314" y="375"/> <move x="331" y="372"/> <move x="341" y="369"/> <move x="344" y="369"/> <move x="352" y="368"/> <move x="362" y="365"/> <move x="370" y="365"/> <move x="377" y="365"/> <move x="388" y="368"/> <move x="413" y="374"/> <move x="428" y="378"/> <move x="431" y="378" k="13"/> <click x="431" y="378"/> <move x="431" y="378" k="2"/> <move x="431" y="376"/> <move x="431" y="370"/> <move x="431" y="368"/> <move x="431" y="363"/> <move x="431" y="359"/> <move x="430" y="354"/> <move x="427" y="351"/> <move x="423" y="348"/> <move x="419" y="343"/> <move x="417" y="339"/> <move x="414" y="333"/> <move x="412" y="329"/> <move x="412" y="323" k="2"/> <move x="412" y="321"/> <move x="412" y="319" k="5"/> <click x="412" y="319"/> <move x="412" y="319" k="11"/> </way> , <way> <move x="190" y="386" k="1"/> <move x="192" y="379"/> <move x="194" y="375"/> <move x="196" y="372"/> <move x="198" y="361"/> <move x="201" y="345"/> <move x="202" y="333"/> <move x="202" y="324"/> <move x="202" y="316"/> <move x="201" y="314"/> <move x="196" y="308"/> <move x="192" y="302"/> <move x="188" y="299"/> <move x="186" y="299" k="2"/> <move x="186" y="302"/> <move x="187" y="307"/> <move x="187" y="309"/> <move x="187" y="311"/> <move x="189" y="313" k="2"/> <move x="190" y="313"/> <move x="192" y="313" k="8"/> <click x="192" y="313"/> <move x="192" y="309"/> <move x="194" y="297"/> <move x="196" y="282"/> <move x="196" y="270"/> <move x="201" y="254"/> <move x="202" y="245"/> <move x="205" y="245"/> <move x="207" y="244"/> <move x="213" y="242"/> <move x="217" y="241"/> <move x="221" y="240"/> <move x="223" y="239"/> <move x="226" y="239" k="3"/> <move x="227" y="237" k="2"/> <click x="227" y="237"/> <move x="227" y="237" k="2"/> <move x="233" y="237"/> <move x="260" y="239"/> <move x="283" y="240"/> <move x="304" y="234"/> <move x="325" y="227"/> <move x="346" y="224"/> <move x="360" y="224"/> <move x="364" y="224"/> <move x="366" y="224" k="1"/> <move x="369" y="224"/> <move x="375" y="224"/> <move x="380" y="224"/> <move x="386" y="224"/> <move x="391" y="223"/> <move x="394" y="222"/> <move x="396" y="222"/> <move x="400" y="222"/> <move x="407" y="222"/> <move x="412" y="221" k="1"/> <move x="414" y="221"/> <move x="420" y="220"/> <move x="424" y="219"/> <move x="427" y="219"/> <move x="433" y="216"/> <move x="439" y="214" k="11"/> <click x="439" y="214"/> <move x="439" y="214" k="4"/> <move x="437" y="214"/> <move x="435" y="214" k="1"/> <move x="433" y="214"/> <move x="431" y="212"/> <move x="425" y="212"/> <move x="423" y="212"/> <move x="414" y="208"/> <move x="402" y="204"/> <move x="384" y="200"/> <move x="378" y="199"/> <move x="372" y="199"/> <move x="369" y="199"/> <move x="364" y="197"/> <move x="361" y="194"/> <move x="356" y="196" k="1"/> <move x="353" y="194"/> <move x="349" y="193"/> <move x="342" y="190"/> <move x="334" y="186"/> <move x="331" y="184"/> <move x="330" y="182" k="4"/> <move x="328" y="180"/> <move x="327" y="178"/> <move x="324" y="174"/> <move x="322" y="170"/> <move x="317" y="167" k="1"/> <move x="314" y="163"/> <move x="310" y="157" k="1"/> <move x="308" y="158"/> <move x="305" y="166"/> <move x="303" y="172"/> <move x="302" y="175"/> <move x="301" y="177" k="4"/> <move x="305" y="179"/> <move x="308" y="181" k="19"/> <move x="310" y="181" k="14"/> <move x="312" y="181" k="1"/> <move x="314" y="180"/> <move x="315" y="180" k="9"/> <move x="317" y="180"/> <move x="319" y="179" k="1"/> <move x="321" y="179" k="18"/> <click x="321" y="179"/> <move x="321" y="179" k="11"/> </way> , <way> <move x="269" y="357"/> <move x="273" y="329"/> <move x="293" y="296"/> <move x="310" y="269"/> <move x="320" y="245"/> <move x="341" y="207"/> <move x="353" y="187"/> <move x="364" y="176"/> <move x="368" y="167"/> <move x="374" y="161"/> <move x="388" y="153"/> <move x="400" y="147"/> <move x="411" y="142"/> <move x="423" y="136"/> <move x="433" y="131"/> <move x="439" y="129"/> <move x="453" y="127"/> <move x="467" y="126"/> <move x="483" y="123"/> <move x="501" y="123"/> <move x="505" y="123"/> <move x="507" y="123"/> <move x="509" y="122"/> <move x="510" y="122"/> <move x="512" y="122"/> <move x="517" y="119"/> <move x="521" y="117"/> <move x="523" y="117"/> <move x="525" y="116"/> <move x="528" y="115"/> <move x="530" y="113"/> <move x="533" y="113" k="7"/> <click x="533" y="113"/> <move x="533" y="113"/> <move x="529" y="113"/> <move x="517" y="110"/> <move x="502" y="108"/> <move x="481" y="105"/> <move x="459" y="103"/> <move x="449" y="101"/> <move x="445" y="101" k="1"/> <move x="443" y="102"/> <move x="443" y="104" k="4"/> <click x="443" y="104"/> <move x="443" y="104" k="1"/> <move x="435" y="112"/> <move x="419" y="125"/> <move x="400" y="139"/> <move x="386" y="149"/> <move x="381" y="150"/> <move x="379" y="151" k="7"/> <click x="379" y="151"/> <move x="380" y="151"/> <move x="382" y="151"/> <move x="387" y="160"/> <move x="399" y="192"/> <move x="420" y="241"/> <move x="433" y="278"/> <move x="457" y="327"/> <move x="466" y="351"/> <move x="477" y="377"/> <move x="494" y="397"/> <move x="500" y="402" k="2"/> <move x="503" y="410"/> <move x="506" y="418"/> <move x="511" y="431"/> <move x="512" y="437"/> <move x="515" y="440"/> <move x="515" y="444" k="2"/> <move x="516" y="446" k="3"/> <count_volt x="516" y="446"/> <move x="500" y="418"/> <move x="486" y="394"/> <move x="450" y="348"/> <move x="423" y="307"/> <move x="397" y="259"/> <move x="379" y="229"/> <move x="353" y="198"/> <move x="332" y="184"/> <move x="326" y="180" k="1"/> <move x="325" y="178"/> <move x="323" y="172"/> <move x="317" y="167"/> <move x="316" y="167"/> <move x="314" y="167"/> <move x="312" y="167"/> <move x="308" y="163"/> <move x="299" y="157"/> <move x="295" y="156" k="6"/> <click x="295" y="156"/> <move x="296" y="156" k="1"/> <move x="298" y="156"/> <move x="303" y="163"/> <move x="317" y="179"/> <move x="340" y="225"/> <move x="362" y="276"/> <move x="394" y="340"/> <move x="406" y="367"/> <move x="407" y="369" k="1"/> <move x="404" y="362"/> <move x="381" y="329"/> <move x="305" y="282"/> <move x="247" y="249"/> <move x="212" y="210"/> <move x="204" y="185"/> <move x="198" y="170"/> <move x="186" y="157"/> <move x="170" y="143"/> <move x="149" y="131"/> <move x="117" y="122"/> <move x="99" y="120"/> <move x="96" y="120" k="2"/> <move x="94" y="120" k="7"/> <click x="94" y="120"/> <move x="94" y="120"/> <move x="94" y="118"/> <move x="122" y="113"/> <move x="147" y="104"/> <move x="162" y="102"/> <move x="170" y="99"/> <move x="171" y="97" k="2"/> <move x="171" y="100" k="4"/> <click x="171" y="100"/> <move x="171" y="100" k="1"/> <move x="174" y="102"/> <move x="189" y="109"/> <move x="199" y="110"/> <move x="201" y="110" k="1"/> <move x="208" y="111"/> <move x="212" y="113"/> <move x="216" y="115"/> <move x="222" y="115"/> <move x="224" y="115"/> <move x="225" y="115" k="4"/> <click x="225" y="115"/> <move x="225" y="115" k="4"/> <move x="225" y="116"/> <move x="223" y="119"/> <move x="223" y="121"/> <move x="222" y="125"/> <move x="222" y="128"/> <move x="222" y="130" k="1"/> </way> , <way> <move x="342" y="341" k="14"/> <move x="342" y="339"/> <move x="342" y="331"/> <move x="342" y="323"/> <move x="339" y="308"/> <move x="336" y="296"/> <move x="336" y="286"/> <move x="335" y="280"/> <move x="331" y="267"/> <move x="327" y="259"/> <move x="319" y="245"/> <move x="314" y="232"/> <move x="307" y="217"/> <move x="296" y="193"/> <move x="288" y="181"/> <move x="280" y="174"/> <move x="273" y="168"/> <move x="263" y="161"/> <move x="253" y="159"/> <move x="244" y="155"/> <move x="238" y="149"/> <move x="232" y="140"/> <move x="230" y="138" k="4"/> <move x="230" y="134"/> <move x="230" y="132" k="1"/> <move x="230" y="130"/> <move x="230" y="129"/> <move x="230" y="127" k="2"/> <move x="231" y="124"/> <move x="232" y="123" k="1"/> <move x="237" y="121"/> <move x="241" y="121"/> <move x="243" y="120" k="4"/> <move x="243" y="118" k="1"/> <move x="243" y="116"/> <move x="243" y="114"/> <move x="243" y="112" k="1"/> <click x="243" y="112"/> <move x="243" y="112"/> <move x="244" y="112"/> <move x="244" y="118"/> <move x="245" y="123"/> <move x="250" y="131"/> <move x="262" y="144"/> <move x="285" y="156"/> <move x="305" y="166"/> <move x="341" y="177"/> <move x="362" y="191"/> <move x="394" y="196"/> <move x="411" y="198"/> <move x="424" y="201"/> <move x="429" y="205"/> <move x="441" y="211"/> <move x="442" y="211"/> <move x="444" y="210"/> <move x="448" y="209" k="1"/> <move x="452" y="208"/> <move x="455" y="206"/> <move x="464" y="200"/> <move x="466" y="198"/> <move x="468" y="198"/> <move x="469" y="199" k="14"/> <move x="471" y="199"/> <click x="471" y="199"/> <move x="471" y="199" k="2"/> <move x="471" y="206"/> <move x="477" y="238"/> <move x="495" y="288"/> <move x="516" y="337"/> <move x="525" y="366"/> <move x="531" y="391"/> <move x="532" y="403"/> <move x="532" y="411"/> <move x="532" y="418"/> <move x="530" y="424"/> <move x="529" y="435"/> <move x="527" y="443"/> <move x="526" y="447"/> <move x="525" y="449" k="3"/> <move x="524" y="451" k="2"/> <count_volt x="524" y="451"/> <move x="522" y="451"/> <move x="520" y="451"/> <move x="513" y="447"/> <move x="503" y="442"/> <move x="478" y="433"/> <move x="449" y="424"/> <move x="416" y="411"/> <move x="380" y="399"/> <move x="354" y="388"/> <move x="340" y="382"/> <move x="331" y="376"/> <move x="312" y="363"/> <move x="299" y="356"/> <move x="285" y="348"/> <move x="275" y="342"/> <move x="267" y="336"/> <move x="264" y="334"/> <move x="262" y="331"/> <move x="257" y="328"/> <move x="252" y="326"/> <move x="247" y="324"/> <move x="240" y="321"/> <move x="233" y="316"/> <move x="223" y="308"/> <move x="214" y="298"/> <move x="208" y="289"/> <move x="204" y="281"/> <move x="204" y="276"/> <move x="203" y="268"/> <move x="203" y="265"/> <move x="203" y="261"/> <move x="203" y="259"/> <move x="203" y="258"/> <move x="203" y="256"/> <move x="203" y="252"/> <move x="203" y="250"/> <move x="203" y="249"/> <move x="203" y="247"/> <move x="203" y="245"/> <move x="203" y="243" k="2"/> <click x="203" y="243"/> <move x="204" y="242"/> <move x="205" y="235"/> <move x="205" y="231"/> <move x="205" y="229"/> <move x="201" y="224"/> <move x="197" y="223"/> <move x="195" y="222" k="1"/> <move x="193" y="222"/> <move x="182" y="218"/> <move x="170" y="218"/> <move x="154" y="213"/> <move x="149" y="208" k="18"/> <click x="149" y="208"/> <move x="149" y="208" k="1"/> <move x="149" y="209"/> <move x="149" y="221"/> <move x="150" y="229"/> <move x="153" y="242"/> <move x="157" y="256"/> <move x="161" y="272"/> <move x="162" y="281"/> <move x="165" y="291"/> <move x="174" y="310"/> <move x="181" y="318"/> <move x="185" y="319"/> <move x="188" y="321"/> <move x="190" y="322" k="8"/> <click x="190" y="322"/> <move x="190" y="322" k="1"/> <move x="190" y="324"/> <move x="191" y="329"/> <move x="192" y="330"/> <move x="195" y="335"/> <move x="195" y="337" k="3"/> <move x="197" y="338"/> <move x="197" y="340"/> </way> , <way> <move x="86" y="471" k="2"/> <move x="111" y="470"/> <move x="149" y="472"/> <move x="202" y="475"/> <move x="270" y="479"/> <move x="304" y="479"/> <move x="379" y="477"/> <move x="411" y="471"/> <move x="416" y="469"/> <move x="419" y="466"/> <move x="430" y="460"/> <move x="444" y="455"/> <move x="461" y="450"/> <move x="473" y="446"/> <move x="488" y="444"/> <move x="511" y="442"/> <move x="531" y="442"/> <move x="549" y="440" k="4"/> <move x="535" y="446"/> <move x="525" y="451"/> <move x="521" y="453"/> <move x="520" y="454"/> <move x="518" y="454" k="5"/> <count_volt x="518" y="454"/> <move x="518" y="454"/> <move x="516" y="452"/> <move x="508" y="441" k="1"/> <move x="452" y="408"/> <move x="413" y="381"/> <move x="373" y="352"/> <move x="344" y="330"/> <move x="309" y="307"/> <move x="271" y="281"/> <move x="259" y="272"/> <move x="252" y="261"/> <move x="250" y="257"/> <move x="250" y="253" k="1"/> <move x="250" y="249"/> <move x="251" y="245"/> <move x="252" y="244" k="1"/> <move x="252" y="240"/> <move x="252" y="236"/> <move x="252" y="231"/> <move x="251" y="229"/> <move x="251" y="227" k="9"/> <move x="252" y="229"/> <move x="254" y="233" k="10"/> <click x="254" y="233"/> <move x="254" y="233"/> <move x="263" y="236"/> <move x="285" y="254"/> <move x="338" y="276"/> <move x="378" y="296"/> <move x="426" y="330"/> <move x="464" y="358"/> <move x="494" y="373"/> <move x="520" y="388"/> <move x="531" y="395"/> <move x="533" y="399"/> <move x="536" y="405"/> <move x="537" y="413"/> <move x="540" y="420"/> <move x="543" y="424"/> <move x="547" y="430"/> <move x="552" y="432"/> <move x="558" y="437"/> <move x="561" y="438"/> <move x="563" y="438" k="1"/> <move x="566" y="438"/> <move x="567" y="439"/> <move x="568" y="441"/> <move x="568" y="444"/> <move x="568" y="446" k="4"/> <count_volt x="568" y="446"/> <move x="568" y="446"/> <move x="565" y="443"/> <move x="560" y="429"/> <move x="553" y="421"/> <move x="510" y="383"/> <move x="451" y="345"/> <move x="411" y="314"/> <move x="369" y="268"/> <move x="315" y="220"/> <move x="254" y="195"/> <move x="206" y="161"/> <move x="184" y="148"/> <move x="149" y="134"/> <move x="122" y="119"/> <move x="111" y="112"/> <move x="100" y="100"/> <move x="94" y="92"/> <move x="91" y="85"/> <move x="87" y="80"/> <move x="86" y="76"/> <move x="86" y="70"/> <move x="83" y="64"/> <move x="77" y="55"/> <move x="76" y="49" k="3"/> <move x="76" y="48"/> <move x="81" y="47"/> <move x="91" y="46"/> <move x="96" y="46" k="16"/> <click x="96" y="46"/> <move x="96" y="46" k="10"/> <move x="99" y="48"/> <move x="110" y="54"/> <move x="115" y="54"/> <move x="116" y="55" k="1"/> <move x="120" y="58"/> <move x="128" y="63"/> <move x="131" y="64" k="1"/> <move x="134" y="66" k="20"/> <move x="140" y="75"/> <move x="141" y="77" k="3"/> <move x="144" y="80"/> <move x="146" y="81"/> <move x="146" y="83"/> <move x="146" y="87" k="2"/> <move x="148" y="90"/> <move x="150" y="90"/> <move x="152" y="90"/> <move x="155" y="93"/> <move x="157" y="94" k="1"/> <move x="160" y="96"/> <move x="160" y="98" k="3"/> <move x="164" y="100" k="1"/> <move x="166" y="101"/> <move x="168" y="102" k="4"/> <move x="170" y="102" k="1"/> <move x="172" y="103" k="1"/> <move x="173" y="103" k="2"/> <move x="175" y="103"/> <move x="177" y="103" k="1"/> <move x="177" y="105" k="26"/> <move x="175" y="104"/> <move x="174" y="102"/> <move x="172" y="101" k="93"/> <click x="172" y="101"/> <move x="172" y="101" k="10"/> <move x="170" y="101"/> <move x="163" y="110"/> <move x="152" y="115"/> <move x="141" y="120"/> <move x="116" y="134"/> <move x="93" y="146"/> <move x="65" y="161"/> <move x="46" y="169"/> <move x="39" y="176"/> <move x="37" y="179"/> <move x="35" y="184"/> <move x="32" y="191"/> <move x="29" y="197"/> <move x="28" y="205"/> <move x="27" y="214"/> <move x="27" y="220"/> <move x="28" y="224" k="1"/> <move x="30" y="224"/> <move x="34" y="224"/> <move x="36" y="224"/> <move x="38" y="224"/> <move x="39" y="224"/> <move x="40" y="222" k="1"/> <move x="40" y="220"/> <move x="40" y="218"/> <move x="40" y="214" k="1"/> <move x="40" y="212" k="3"/> <move x="40" y="211"/> <move x="40" y="209"/> <move x="40" y="207"/> <move x="40" y="205" k="2"/> <move x="40" y="203"/> <move x="40" y="200" k="2"/> <move x="40" y="198"/> <move x="40" y="196" k="6"/> <click x="40" y="196"/> <move x="40" y="196" k="1"/> <move x="40" y="197"/> <move x="40" y="205"/> <move x="40" y="212"/> <move x="40" y="217"/> <move x="40" y="225"/> <move x="35" y="240"/> <move x="31" y="255"/> <move x="26" y="265"/> <move x="23" y="271"/> <move x="22" y="275" k="1"/> <move x="22" y="277"/> <move x="22" y="279"/> <move x="23" y="280"/> <move x="24" y="282" k="1"/> <move x="26" y="283" k="1"/> <move x="28" y="284" k="7"/> <click x="28" y="284"/> <move x="28" y="284" k="3"/> <move x="31" y="299"/> <move x="33" y="314"/> <move x="35" y="324"/> <move x="35" y="331"/> <move x="35" y="341"/> <move x="35" y="346"/> <move x="35" y="354"/> <move x="35" y="356"/> <move x="35" y="359"/> <move x="35" y="361" k="9"/> <move x="35" y="363" k="8"/> <click x="35" y="363"/> <move x="35" y="363"/> <move x="34" y="367"/> <move x="31" y="378"/> <move x="31" y="382"/> <move x="44" y="396"/> <move x="70" y="408"/> <move x="129" y="421"/> <move x="157" y="425"/> <move x="185" y="431"/> <move x="231" y="435"/> <move x="292" y="442"/> <move x="350" y="442" k="1"/> <move x="456" y="436"/> <move x="495" y="428"/> <move x="528" y="414"/> <move x="549" y="401"/> <move x="561" y="384"/> <move x="578" y="357"/> <move x="595" y="326"/> <move x="607" y="296"/> <move x="618" y="272"/> <move x="621" y="257"/> <move x="627" y="242"/> <move x="626" y="234"/> <move x="624" y="231"/> <move x="624" y="227"/> <move x="622" y="226" k="2"/> <move x="622" y="224"/> <move x="620" y="224"/> <move x="618" y="222"/> <move x="615" y="216"/> <move x="613" y="214"/> <move x="613" y="212" k="2"/> <move x="612" y="210" k="3"/> <move x="611" y="208" k="7"/> <click x="611" y="208"/> <move x="611" y="208" k="1"/> <move x="611" y="212"/> <move x="613" y="225"/> <move x="615" y="242"/> <move x="621" y="260"/> <move x="621" y="268"/> <move x="620" y="274"/> <move x="620" y="275"/> <move x="619" y="281"/> <move x="614" y="288"/> <move x="614" y="294"/> <move x="611" y="297"/> <move x="609" y="298" k="11"/> <click x="609" y="298"/> <move x="609" y="298"/> <move x="608" y="302"/> <move x="608" y="309"/> <move x="608" y="319"/> <move x="608" y="326" k="1"/> <move x="606" y="341"/> <move x="606" y="350"/> <move x="606" y="355"/> <move x="605" y="361"/> <move x="605" y="366"/> <move x="606" y="376"/> <move x="606" y="380"/> <move x="607" y="382"/> <move x="608" y="384"/> <move x="610" y="384"/> <move x="610" y="385"/> <move x="611" y="385" k="3"/> <move x="612" y="385" k="6"/> <click x="612" y="385"/> <move x="612" y="385" k="2"/> <move x="612" y="391"/> <move x="612" y="411" k="5"/> <move x="610" y="411"/> <move x="595" y="411"/> <move x="585" y="411"/> <move x="583" y="410" k="1"/> <move x="577" y="410"/> <move x="571" y="410"/> <move x="563" y="410"/> <move x="559" y="410"/> <move x="556" y="410" k="8"/> <click x="556" y="410"/> <move x="556" y="410" k="1"/> <move x="548" y="410"/> <move x="528" y="411"/> <move x="517" y="412"/> <move x="512" y="412"/> <move x="503" y="412"/> <move x="497" y="412"/> <move x="496" y="412"/> <move x="488" y="411"/> <move x="483" y="411"/> <move x="481" y="411" k="9"/> <click x="481" y="411"/> <move x="481" y="411" k="1"/> <move x="475" y="413"/> <move x="450" y="414"/> <move x="400" y="421"/> <move x="382" y="421"/> <move x="380" y="421" k="5"/> <move x="382" y="415"/> <move x="384" y="414"/> <move x="386" y="413" k="1"/> <move x="388" y="412" k="7"/> <click x="388" y="412"/> <move x="388" y="412" k="3"/> <move x="368" y="415"/> <move x="362" y="415"/> <move x="351" y="417"/> <move x="346" y="417"/> <move x="337" y="420"/> <move x="320" y="420"/> <move x="316" y="420"/> <move x="314" y="420"/> <move x="311" y="420"/> <move x="309" y="420" k="5"/> <move x="307" y="418"/> <move x="304" y="416" k="7"/> <click x="304" y="416"/> <move x="304" y="416" k="2"/> <move x="298" y="411"/> <move x="292" y="408"/> <move x="288" y="408" k="1"/> <move x="279" y="407"/> <move x="273" y="407"/> <move x="272" y="407"/> <move x="270" y="407"/> <move x="266" y="407"/> <move x="258" y="404"/> <move x="252" y="401" k="1"/> <move x="250" y="401"/> <move x="247" y="401"/> <move x="241" y="401"/> <move x="238" y="403"/> <move x="234" y="405"/> <move x="230" y="407"/> <move x="228" y="409" k="1"/> <move x="226" y="410" k="6"/> <click x="226" y="410"/> <move x="226" y="410"/> <move x="226" y="412"/> <move x="218" y="417"/> <move x="208" y="423"/> <move x="188" y="424"/> <move x="177" y="424"/> <move x="176" y="424" k="4"/> <move x="176" y="422"/> <move x="176" y="418"/> <move x="176" y="416"/> <move x="173" y="412"/> <move x="171" y="411" k="20"/> <click x="171" y="411"/> <move x="171" y="411" k="2"/> <move x="163" y="411"/> <move x="132" y="421"/> <move x="119" y="423"/> <move x="113" y="423"/> <move x="102" y="423"/> <move x="85" y="423"/> <move x="77" y="423" k="4"/> <move x="77" y="419" k="2"/> <move x="77" y="417" k="10"/> <click x="77" y="417"/> <move x="77" y="417" k="11"/> </way> , <way> <move x="566" y="298" k="6"/> <move x="564" y="298"/> <move x="542" y="301"/> <move x="493" y="308"/> <move x="458" y="313"/> <move x="415" y="328"/> <move x="399" y="330"/> <move x="372" y="336"/> <move x="344" y="342"/> <move x="319" y="345"/> <move x="294" y="353"/> <move x="279" y="358"/> <move x="261" y="364"/> <move x="248" y="368"/> <move x="241" y="368"/> <move x="237" y="371"/> <move x="227" y="374"/> <move x="212" y="376"/> <move x="197" y="378"/> <move x="190" y="378"/> <move x="188" y="378"/> <move x="185" y="380"/> <move x="183" y="380" k="1"/> <move x="181" y="380"/> <move x="179" y="381" k="1"/> <move x="175" y="382"/> <move x="171" y="384"/> <move x="169" y="385" k="4"/> <move x="167" y="385" k="5"/> <click x="167" y="385"/> <move x="168" y="385"/> <move x="181" y="386"/> <move x="212" y="386"/> <move x="228" y="386"/> <move x="244" y="386"/> <move x="252" y="386"/> <move x="255" y="386"/> <move x="259" y="386" k="1"/> <move x="261" y="386"/> <move x="262" y="386" k="9"/> <click x="262" y="386"/> <move x="264" y="386"/> <move x="274" y="386"/> <move x="289" y="386"/> <move x="304" y="386"/> <move x="314" y="389"/> <move x="324" y="390"/> <move x="326" y="390"/> <move x="329" y="388" k="1"/> <move x="330" y="386" k="1"/> <move x="331" y="386" k="1"/> <move x="335" y="386"/> <move x="338" y="387"/> <move x="340" y="387"/> <move x="345" y="387"/> <move x="347" y="387"/> <move x="349" y="387" k="1"/> <move x="353" y="387"/> <move x="357" y="387" k="3"/> <click x="357" y="387"/> <move x="358" y="387"/> <move x="377" y="387"/> <move x="412" y="388"/> <move x="431" y="394" k="4"/> <move x="434" y="391"/> <move x="439" y="388"/> <move x="443" y="387" k="1"/> <move x="445" y="385" k="5"/> <click x="445" y="385"/> <move x="451" y="384"/> <move x="474" y="382"/> <move x="501" y="375"/> <move x="515" y="375"/> <move x="525" y="375"/> <move x="535" y="375"/> <move x="541" y="375" k="10"/> <click x="541" y="375"/> <move x="541" y="375" k="11"/> </way> , <way> <move x="536" y="210" k="1"/> <move x="487" y="206"/> <move x="445" y="197"/> <move x="414" y="194"/> <move x="387" y="189"/> <move x="374" y="185" k="1"/> <move x="333" y="173"/> <move x="297" y="162"/> <move x="257" y="151"/> <move x="227" y="147"/> <move x="223" y="147" k="6"/> <move x="220" y="149"/> <move x="218" y="151"/> <move x="216" y="151"/> <move x="214" y="152" k="1"/> <move x="212" y="153" k="8"/> <click x="212" y="153"/> <move x="212" y="153" k="1"/> <move x="219" y="143"/> <move x="229" y="134"/> <move x="234" y="130"/> <move x="243" y="125"/> <move x="247" y="122"/> <move x="259" y="113"/> <move x="263" y="111"/> <move x="270" y="107"/> <move x="274" y="106"/> <move x="280" y="104"/> <move x="281" y="102"/> <move x="291" y="102"/> <move x="296" y="102"/> <move x="302" y="102"/> <move x="305" y="102"/> <move x="319" y="102"/> <move x="321" y="102" k="3"/> <move x="323" y="102" k="2"/> <click x="323" y="102"/> <move x="323" y="102" k="3"/> <move x="323" y="105"/> <move x="321" y="115"/> <move x="321" y="125"/> <move x="319" y="137"/> <move x="321" y="157"/> <move x="333" y="183"/> <move x="338" y="201"/> <move x="355" y="226" k="1"/> <move x="390" y="262"/> <move x="413" y="288"/> <move x="441" y="313"/> <move x="445" y="320"/> <move x="448" y="323"/> <move x="449" y="325"/> <move x="451" y="328"/> <move x="454" y="333"/> <move x="456" y="336"/> <move x="462" y="341"/> <move x="466" y="343"/> <move x="469" y="346"/> <move x="470" y="349"/> <move x="473" y="352"/> <move x="477" y="356"/> <move x="484" y="362"/> <move x="489" y="367"/> <move x="490" y="369" k="1"/> <move x="492" y="369" k="5"/> <move x="494" y="369"/> <click x="494" y="369"/> <move x="495" y="369" k="1"/> <move x="496" y="370"/> <move x="497" y="372" k="4"/> <move x="499" y="373" k="1"/> <move x="499" y="375" k="6"/> <move x="499" y="377" k="2"/> <move x="501" y="377"/> <move x="505" y="377"/> <move x="507" y="377"/> <move x="510" y="377"/> <move x="514" y="377"/> <move x="516" y="377"/> <move x="522" y="377"/> <move x="524" y="377"/> <move x="527" y="378" k="1"/> <move x="533" y="378"/> <move x="535" y="378"/> <move x="536" y="378"/> <move x="540" y="378"/> <move x="542" y="378"/> <move x="545" y="378" k="6"/> <click x="545" y="378"/> <move x="545" y="378" k="3"/> <move x="543" y="378"/> <move x="537" y="378"/> <move x="524" y="382"/> <move x="509" y="382"/> <move x="492" y="382"/> <move x="472" y="382"/> <move x="460" y="383"/> <move x="455" y="383"/> <move x="449" y="383"/> <move x="447" y="383"/> <move x="444" y="383"/> <move x="436" y="379"/> <move x="432" y="379"/> <move x="429" y="378"/> <move x="424" y="376"/> <move x="418" y="375"/> <move x="415" y="375"/> <move x="411" y="375"/> <move x="407" y="374" k="12"/> <click x="407" y="374"/> <move x="407" y="374" k="5"/> <move x="406" y="372" k="1"/> <move x="406" y="370" k="1"/> <move x="405" y="368"/> <move x="403" y="367"/> <move x="399" y="365"/> <move x="392" y="361"/> <move x="388" y="359"/> <move x="383" y="358"/> <move x="377" y="358"/> <move x="374" y="358"/> <move x="368" y="356"/> <move x="356" y="349"/> <move x="346" y="348"/> <move x="340" y="348"/> <move x="339" y="348" k="1"/> <move x="337" y="348"/> <move x="333" y="346" k="1"/> <move x="331" y="346"/> <move x="329" y="346"/> <move x="327" y="343"/> <move x="326" y="342"/> <move x="325" y="340"/> <move x="325" y="338"/> <move x="325" y="336"/> <move x="325" y="334" k="1"/> <move x="324" y="332" k="5"/> <click x="324" y="332"/> <move x="324" y="332" k="3"/> <move x="322" y="330"/> <move x="321" y="328"/> <move x="317" y="327"/> <move x="313" y="327"/> <move x="310" y="327"/> <move x="306" y="326"/> <move x="300" y="326"/> <move x="294" y="323"/> <move x="289" y="323"/> <move x="285" y="323"/> <move x="279" y="324"/> <move x="274" y="329"/> <move x="270" y="334"/> <move x="269" y="340"/> <move x="269" y="346"/> <move x="269" y="351"/> <move x="269" y="353"/> <move x="267" y="357"/> <move x="266" y="361"/> <move x="264" y="366"/> <move x="263" y="368"/> <move x="261" y="370" k="1"/> <move x="258" y="375"/> <move x="256" y="375"/> <move x="254" y="375"/> <move x="252" y="377"/> <move x="250" y="378"/> <move x="250" y="379"/> <move x="248" y="379" k="3"/> <move x="248" y="380" k="10"/> <move x="242" y="381"/> <move x="240" y="381"/> <move x="238" y="384"/> <move x="233" y="390"/> <move x="230" y="393" k="2"/> <move x="228" y="394" k="3"/> <move x="224" y="396"/> <move x="218" y="397" k="1"/> <move x="216" y="397" k="1"/> <move x="214" y="394"/> <move x="213" y="392"/> <move x="211" y="390" k="2"/> <move x="207" y="388"/> <move x="199" y="386"/> <move x="194" y="385"/> <move x="184" y="383"/> <move x="183" y="383"/> <move x="179" y="382" k="7"/> <move x="180" y="382"/> <move x="181" y="380"/> <move x="185" y="380" k="1"/> <move x="187" y="381" k="16"/> <move x="188" y="382" k="1"/> <click x="188" y="382"/> <move x="188" y="382" k="11"/> </way> , <way> <move x="584" y="227" k="5"/> <move x="584" y="225"/> <move x="567" y="211"/> <move x="528" y="190"/> <move x="512" y="178"/> <move x="499" y="159"/> <move x="492" y="141"/> <move x="483" y="122"/> <move x="477" y="104"/> <move x="475" y="99"/> <stripe_up_over x="475" y="94"/> <move x="475" y="91"/> <move x="475" y="85"/> <move x="475" y="80"/> <move x="475" y="74" k="25"/> <move x="469" y="94"/> <stripe_up_out x="465" y="121"/> <move x="451" y="185"/> <move x="450" y="191" k="2"/> <move x="450" y="195"/> <move x="444" y="204"/> <move x="441" y="206"/> <move x="440" y="208" k="3"/> <move x="438" y="209" k="6"/> <click x="438" y="209"/> <move x="438" y="209"/> <move x="440" y="205"/> <move x="442" y="195"/> <move x="445" y="187"/> <move x="445" y="179"/> <move x="445" y="174"/> <move x="446" y="166"/> <move x="446" y="160"/> <move x="446" y="156"/> <move x="448" y="151"/> <move x="449" y="150" k="1"/> <move x="455" y="149"/> <move x="459" y="149"/> <move x="462" y="149" k="7"/> <click x="462" y="149"/> <move x="462" y="149" k="1"/> <move x="470" y="132"/> <stripe_up_over x="475" y="93"/> <move x="475" y="39"/> <stripe_up_out x="475" y="32"/> <stripe_up_over x="475" y="28"/> <stripe_up_out x="475" y="23"/> <stripe_up_over x="475" y="19"/> <move x="475" y="19" k="10"/> <stripe_up_out x="475" y="22"/> <stripe_up_over x="475" y="28"/> <stripe_up_out x="475" y="34"/> <stripe_up_over x="475" y="46"/> <move x="477" y="69"/> <move x="481" y="92"/> <stripe_up_out x="483" y="101"/> <move x="485" y="119"/> <move x="485" y="120"/> <move x="485" y="122"/> <move x="485" y="130"/> <move x="483" y="138"/> <move x="480" y="144"/> <move x="480" y="150" k="2"/> <move x="480" y="152"/> <move x="481" y="152"/> <move x="485" y="152" k="4"/> <move x="487" y="152" k="6"/> <click x="487" y="152"/> <move x="487" y="152" k="4"/> <move x="487" y="150"/> <move x="486" y="148"/> <move x="478" y="145"/> <move x="463" y="142"/> <move x="451" y="142"/> <move x="448" y="142" k="1"/> <move x="439" y="148"/> <move x="431" y="148"/> <move x="429" y="150"/> <move x="427" y="150"/> <move x="422" y="150"/> <move x="408" y="150"/> <move x="398" y="150"/> <move x="388" y="150"/> <move x="383" y="150" k="1"/> <move x="381" y="150" k="1"/> <move x="379" y="150"/> <move x="376" y="150"/> <move x="374" y="150"/> <move x="372" y="150" k="4"/> <move x="370" y="149" k="1"/> <move x="368" y="149"/> <move x="364" y="148"/> <move x="363" y="148" k="1"/> <move x="361" y="148"/> <move x="359" y="148" k="5"/> <click x="359" y="148"/> <move x="359" y="148"/> <move x="357" y="145"/> <move x="352" y="133"/> <move x="347" y="112"/> <move x="344" y="95"/> <stripe_up_over x="341" y="86"/> <move x="336" y="65"/> <move x="336" y="63" k="22"/> <move x="344" y="91"/> <stripe_up_out x="353" y="111"/> <move x="360" y="139"/> <move x="360" y="149"/> <move x="358" y="154"/> <move x="356" y="158"/> <move x="356" y="160" k="3"/> <move x="356" y="162" k="1"/> <move x="357" y="164" k="2"/> <move x="359" y="165"/> <move x="360" y="167" k="8"/> <move x="360" y="175"/> <move x="360" y="181"/> <move x="360" y="186" k="7"/> <move x="360" y="179"/> <move x="361" y="177" k="1"/> <move x="361" y="175" k="8"/> <click x="361" y="175"/> <move x="361" y="173"/> <move x="357" y="168"/> <move x="343" y="161"/> <move x="328" y="159"/> <move x="318" y="155" k="3"/> <move x="312" y="155"/> <move x="308" y="157"/> <move x="305" y="157" k="1"/> <move x="297" y="157"/> <move x="293" y="158" k="7"/> <move x="293" y="156" k="6"/> <move x="291" y="156" k="5"/> <click x="291" y="156"/> <move x="291" y="156" k="6"/> <move x="291" y="154"/> <move x="306" y="148"/> <move x="331" y="143"/> <move x="352" y="138"/> <move x="385" y="128"/> <move x="406" y="119"/> <move x="422" y="112"/> <move x="427" y="109"/> <move x="428" y="107"/> <move x="429" y="102"/> <move x="433" y="97"/> <stripe_up_over x="434" y="93"/> <move x="436" y="83"/> <move x="436" y="81" k="4"/> <move x="441" y="85" k="9"/> <move x="441" y="87" k="2"/> <move x="442" y="94"/> <stripe_up_out x="442" y="98"/> <move x="446" y="134"/> <move x="446" y="161"/> <move x="446" y="181"/> <move x="446" y="195"/> <move x="446" y="201"/> <move x="443" y="206"/> <move x="441" y="211"/> <move x="436" y="216"/> <move x="431" y="220"/> <move x="431" y="222"/> <move x="429" y="223" k="5"/> <move x="427" y="223" k="7"/> <click x="427" y="223"/> <move x="427" y="223" k="1"/> <move x="425" y="223"/> <move x="425" y="219"/> <move x="424" y="211"/> <move x="424" y="204"/> <move x="424" y="198"/> <move x="423" y="191"/> <move x="422" y="187"/> <move x="418" y="182"/> <move x="418" y="179" k="1"/> <move x="418" y="175"/> <move x="418" y="171"/> <move x="418" y="170"/> <move x="418" y="168" k="1"/> <move x="418" y="166"/> <move x="418" y="164"/> <move x="414" y="162" k="6"/> <move x="410" y="160"/> <move x="408" y="160"/> <move x="406" y="160" k="15"/> <move x="407" y="160" k="2"/> <move x="409" y="161"/> <move x="411" y="161"/> <move x="413" y="161"/> <move x="415" y="161" k="8"/> <click x="415" y="161"/> <move x="415" y="161" k="1"/> <move x="416" y="151"/> <move x="419" y="136"/> <move x="420" y="113"/> <stripe_up_over x="424" y="92"/> <move x="423" y="79"/> <move x="423" y="72" k="19"/> <move x="423" y="73"/> <move x="428" y="91"/> <stripe_up_out x="433" y="104"/> <move x="438" y="125"/> <move x="446" y="139"/> <move x="447" y="141" k="1"/> <move x="447" y="145"/> <move x="443" y="150"/> <move x="433" y="157"/> <move x="420" y="166"/> <move x="411" y="168"/> <move x="398" y="170"/> <move x="392" y="169"/> <move x="383" y="166"/> <move x="376" y="163"/> <move x="375" y="161" k="1"/> <move x="373" y="160"/> <move x="370" y="158"/> <move x="369" y="158"/> <move x="367" y="158" k="14"/> <move x="367" y="161"/> <move x="367" y="163" k="12"/> <move x="375" y="161"/> <move x="425" y="149"/> <move x="443" y="145" k="5"/> <move x="443" y="146"/> <move x="442" y="150"/> <move x="439" y="155"/> <move x="438" y="159" k="5"/> <move x="436" y="159" k="6"/> <click x="436" y="159"/> <move x="436" y="155"/> <move x="436" y="151"/> <move x="434" y="146"/> <move x="430" y="140"/> <move x="429" y="138"/> <move x="427" y="137"/> <move x="419" y="133"/> <move x="408" y="130"/> <move x="393" y="126"/> <move x="377" y="120"/> <move x="370" y="116"/> <move x="368" y="112"/> <move x="366" y="111" k="8"/> <click x="366" y="111"/> <move x="366" y="111" k="4"/> <move x="366" y="104"/> <stripe_up_over x="367" y="91"/> <move x="371" y="70"/> <move x="372" y="66" k="17"/> <move x="379" y="82"/> <stripe_up_out x="389" y="99"/> <move x="397" y="108"/> <move x="407" y="124"/> <move x="411" y="131"/> <move x="413" y="139"/> <move x="416" y="151"/> <move x="420" y="162"/> <move x="420" y="169"/> <move x="420" y="175"/> <move x="420" y="180"/> <move x="420" y="184"/> <move x="419" y="188"/> <move x="418" y="191" k="1"/> <move x="418" y="193"/> <move x="417" y="195" k="2"/> <move x="415" y="191" k="1"/> <move x="413" y="191"/> <move x="411" y="191" k="28"/> <click x="411" y="191"/> <move x="411" y="191"/> <move x="409" y="191"/> <move x="406" y="186"/> <move x="400" y="180"/> <move x="388" y="171"/> <move x="377" y="165"/> <move x="371" y="162"/> <move x="368" y="159"/> <move x="364" y="154"/> <move x="362" y="153"/> <move x="361" y="151" k="18"/> <move x="362" y="151" k="17"/> <click x="362" y="151"/> <move x="362" y="151"/> <move x="362" y="145"/> <move x="362" y="135"/> <move x="362" y="132"/> <move x="360" y="120"/> <move x="360" y="115"/> <move x="360" y="111"/> <move x="360" y="107"/> <move x="360" y="106"/> <move x="360" y="104"/> <move x="360" y="102"/> <move x="360" y="100"/> <move x="360" y="98" k="3"/> <move x="360" y="96"/> <move x="360" y="95" k="7"/> <click x="360" y="95"/> <move x="360" y="95" k="6"/> <move x="366" y="104"/> <move x="370" y="116"/> <move x="376" y="131"/> <move x="385" y="145"/> <move x="399" y="172"/> <move x="410" y="193"/> <move x="411" y="202"/> <move x="414" y="210"/> <move x="414" y="224"/> <move x="415" y="239"/> <move x="416" y="249"/> <move x="416" y="263"/> <move x="416" y="278"/> <move x="418" y="292"/> <move x="419" y="309"/> <move x="417" y="329"/> <move x="410" y="354"/> <move x="407" y="364"/> <move x="405" y="368"/> <move x="405" y="386"/> <stripe_down_over x="405" y="409"/> <move x="407" y="425"/> <move x="409" y="428" k="2"/> <move x="412" y="425"/> <move x="416" y="420"/> <move x="419" y="412"/> <move x="419" y="408" k="3"/> <move x="419" y="406" k="6"/> <move x="419" y="404"/> <move x="419" y="401" k="5"/> <move x="418" y="399" k="2"/> <move x="418" y="396"/> <stripe_down_out x="423" y="393"/> <move x="436" y="381"/> <move x="442" y="374"/> <move x="446" y="364"/> <move x="452" y="351"/> <move x="457" y="333"/> <move x="464" y="311"/> <move x="464" y="302"/> <move x="463" y="300"/> <move x="462" y="294"/> <move x="460" y="284"/> <move x="459" y="276"/> <move x="461" y="266"/> <move x="463" y="262" k="1"/> <move x="465" y="262"/> <move x="467" y="262"/> <move x="469" y="259"/> <move x="470" y="259" k="4"/> <move x="472" y="263"/> <move x="474" y="268"/> <move x="475" y="270" k="1"/> <move x="477" y="271" k="1"/> <move x="478" y="273"/> <move x="479" y="275" k="6"/> <move x="476" y="271"/> <move x="474" y="267" k="2"/> <move x="473" y="265" k="8"/> <click x="473" y="265"/> <move x="473" y="265"/> <move x="474" y="277"/> <move x="478" y="293"/> <move x="479" y="307"/> <move x="479" y="319"/> <move x="479" y="327"/> <move x="479" y="331" k="12"/> <click x="479" y="331"/> <move x="479" y="331"/> <move x="479" y="336"/> <move x="480" y="351"/> <move x="480" y="364"/> <move x="477" y="386"/> <stripe_down_over x="474" y="399"/> <move x="473" y="406"/> <move x="473" y="412"/> <move x="473" y="413" k="11"/> <move x="474" y="405"/> <stripe_down_out x="478" y="394"/> <move x="484" y="374"/> <move x="484" y="364"/> <move x="481" y="354"/> <move x="481" y="335"/> <move x="481" y="321"/> <move x="480" y="313"/> <move x="479" y="307"/> <move x="479" y="298"/> <move x="479" y="291"/> <move x="479" y="287"/> <move x="479" y="279"/> <move x="478" y="275"/> <move x="478" y="274"/> <move x="478" y="272" k="1"/> <move x="478" y="268"/> <move x="478" y="266" k="8"/> <click x="478" y="266"/> <move x="478" y="266"/> <move x="478" y="280"/> <move x="478" y="309"/> <move x="478" y="347"/> <move x="478" y="375"/> <move x="478" y="381" k="2"/> <move x="477" y="373"/> <move x="478" y="367"/> <move x="478" y="366" k="2"/> <move x="478" y="367"/> <move x="478" y="369"/> <move x="479" y="371" k="4"/> <move x="480" y="373"/> <move x="482" y="374" k="3"/> <move x="484" y="374" k="1"/> <move x="485" y="372" k="4"/> <move x="483" y="372" k="3"/> <move x="483" y="368" k="6"/> <move x="482" y="366" k="1"/> <move x="481" y="364"/> <move x="479" y="363" k="8"/> <click x="479" y="363"/> <move x="479" y="363" k="1"/> <move x="479" y="366"/> <move x="475" y="377"/> <stripe_down_over x="468" y="396"/> <move x="465" y="406"/> <move x="459" y="421"/> <move x="458" y="423" k="2"/> <move x="458" y="424" k="13"/> <move x="461" y="419"/> <move x="470" y="406"/> <stripe_down_out x="474" y="393"/> <move x="483" y="375"/> <move x="488" y="361"/> <move x="491" y="347"/> <move x="494" y="335"/> <move x="497" y="325"/> <move x="498" y="321"/> <move x="498" y="317"/> <move x="498" y="313" k="8"/> <click x="498" y="313"/> <move x="498" y="313" k="1"/> <move x="498" y="320"/> <move x="496" y="324"/> <move x="490" y="326"/> <move x="484" y="327"/> <move x="475" y="329"/> <move x="465" y="330"/> <move x="460" y="330"/> <move x="450" y="330"/> <move x="446" y="332"/> <move x="440" y="332"/> <move x="434" y="332"/> <move x="431" y="332"/> <move x="427" y="331"/> <move x="425" y="331" k="3"/> <move x="425" y="332" k="2"/> <move x="424" y="334" k="2"/> <move x="423" y="336" k="4"/> <move x="422" y="338"/> <move x="418" y="343"/> <move x="414" y="348"/> <move x="410" y="350" k="10"/> <click x="410" y="350"/> <move x="410" y="350" k="1"/> <move x="407" y="345"/> <move x="395" y="339"/> <move x="371" y="336"/> <move x="333" y="336"/> <move x="308" y="342"/> <move x="293" y="343"/> <move x="284" y="343"/> <move x="278" y="344"/> <move x="275" y="346"/> <move x="273" y="346"/> <move x="271" y="347"/> <move x="270" y="349" k="8"/> <click x="270" y="349"/> <move x="270" y="349" k="4"/> <move x="271" y="349" k="1"/> <move x="273" y="349" k="6"/> <move x="275" y="352"/> <move x="264" y="348"/> <move x="228" y="344"/> <move x="192" y="329"/> <move x="171" y="320"/> <move x="140" y="316"/> <move x="122" y="318"/> <move x="105" y="319"/> <move x="90" y="319"/> <move x="71" y="320"/> <move x="60" y="316"/> <move x="50" y="315"/> <move x="44" y="315" k="10"/> <click x="44" y="315"/> <move x="44" y="315" k="1"/> <move x="49" y="314"/> <move x="62" y="316"/> <move x="76" y="324"/> <move x="81" y="327"/> <move x="91" y="331"/> <move x="110" y="334"/> <move x="114" y="336" k="2"/> <move x="115" y="336"/> <move x="119" y="336"/> <move x="121" y="336"/> <move x="123" y="336" k="15"/> <click x="123" y="336"/> <move x="123" y="336" k="3"/> <move x="126" y="336"/> <move x="134" y="336"/> <move x="138" y="336"/> <move x="140" y="336" k="2"/> <move x="145" y="332" k="1"/> <move x="146" y="331"/> </way> ]; } }//package TheGame
Section 185
//WinTtgLogin (TheGame.WinTtgLogin) package TheGame { import flash.display.*; import flash.events.*; import TheGame.GameTemplate.*; public class WinTtgLogin extends Base { public var game_border:MovieClip; public var cancel_btn_:myBtnBig; public var login_btn_:myBtnBig; public var myGame:Game; var login_btn:MyBtn; var cancel_btn:MyBtn; override public function afterCreate(){ trace("AFTER CREATE"); login_btn = login_btn_; cancel_btn = cancel_btn_; login_btn.addEventListener(MouseEvent.CLICK, onLoginClick); cancel_btn.addEventListener(MouseEvent.CLICK, onCancelClick); } override public function beforeDelete(){ login_btn.removeEventListener(MouseEvent.CLICK, onLoginClick); cancel_btn.removeEventListener(MouseEvent.CLICK, onCancelClick); } function onLoginClick(_arg1:MouseEvent){ myGame.ttgGoLogin(); } function onCancelClick(_arg1:Event){ showMe(false); } function showMe(_arg1:Boolean=true){ visible = _arg1; if (!_arg1){ myGame.showWinOnScreen(this, false); }; } } }//package TheGame
Section 186
//WorkZone (TheGame.WorkZone) package TheGame { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Dynamics.Joints.*; import flash.utils.*; import flash.events.*; import TheGame.MyPhysics.*; import flash.geom.*; import TheGame.Screens.*; import TheGame.GameTemplate.*; public class WorkZone extends PhysicsWorld { public var mask_mc_:workZonePlat; public var levelFon_mc_:MovieClip; public var isEditLevel:Boolean;// = false public var myLevel:Level; public var levelNo:Number; public var mask_mc:MovieClip; var allWorlObjects:MovieClip; var plat_mc:MovieClip; var grounds_mc:MovieClip; var connects_mc:MovieClip; var volts_mc:MovieClip; var highestVolt:Volt; var editLevel_btn:MovieClip; var editPanel_mc:EditPanel; public var stripe_up:MovieClip; public var stripe_down:MovieClip; var stripeStep:Number;// = 10 var dyk:Number; var isVizualize:Boolean;// = true var volts:Array; var connects:Array; var newConnectLines:Array; var firstVoltPoints:Array; var voltOwnId:Number; var towerStartY:Number;// = -1 var nowH:Number;// = 0 var maxH:Number;// = 0 var isNewConnect:Boolean;// = false var canNowConnect:Boolean;// = true public var myW:Number; public var myH:Number; var Lzone:Number;// = 20 var Hzone:Number;// = 15 var enginePerFrame:int; var kTimeSteps:int; var m_iterations:int; var m_timeStep:Number; var stepI:int;// = 0 var tLevelFailed:Timer; var timer:Timer; var tAllVoltEnd:Timer; var appVolt:FirstAppearanceVolt; public static const WORLD_STANDARD:String = "standard"; public static const WORLD_HIGH:String = "high"; public static const WORLD_LONG_RIGHT:String = "right"; public function WorkZone(){ mask_mc = mask_mc_; myW = mask_mc.width; myH = mask_mc.height; addChild((allWorlObjects = new MovieClip())); allWorlObjects.addChild((connects_mc = new MovieClip())); allWorlObjects.addChild((grounds_mc = new MovieClip())); allWorlObjects.addChild((volts_mc = new MovieClip())); addChild((plat_mc = new workZonePlat())); addChild((stripe_up = new rollover_stripe())); addChild((stripe_down = new rollover_stripe())); addChild((editLevel_btn = new edit_btn())); editLevel_btn.x = 605; editLevel_btn.y = 35; editLevel_btn.visible = false; this.mask = mask_mc; plat_mc.addEventListener(MouseEvent.CLICK, mouseClick); stripe_up.addEventListener(MouseEvent.CLICK, mouseClick); stripe_down.addEventListener(MouseEvent.CLICK, mouseClick); editLevel_btn.addEventListener(MouseEvent.CLICK, editLevel); editLevel_btn.buttonMode = true; stripe_down.y = 390; } override public function beforeDelete(){ if (((!((tLevelFailed == null))) && (tLevelFailed.running))){ tLevelFailed.stop(); }; stopAllPhysics(); plat_mc.removeEventListener(MouseEvent.CLICK, mouseClick); removeEventListener(Event.ENTER_FRAME, showWorld); plat_mc.removeEventListener(MouseEvent.CLICK, mouseClick); stripe_up.removeEventListener(MouseEvent.CLICK, mouseClick); stripe_down.removeEventListener(MouseEvent.CLICK, mouseClick); editLevel_btn.removeEventListener(MouseEvent.CLICK, editLevel); stripe_up.removeEventListener(MouseEvent.MOUSE_OVER, onStripeOver); stripe_down.removeEventListener(MouseEvent.MOUSE_OVER, onStripeOver); stripe_up.removeEventListener(MouseEvent.MOUSE_OUT, onStripeOut); stripe_down.removeEventListener(MouseEvent.MOUSE_OUT, onStripeOut); removeEventListener(Event.ENTER_FRAME, lookHighTower); removeEventListener(Event.ENTER_FRAME, scrollMove); if (timer != null){ timer.stop(); timer.removeEventListener(TimerEvent.TIMER, onTimerForTimer); }; if (tAllVoltEnd != null){ tAllVoltEnd.stop(); tAllVoltEnd.removeEventListener(TimerEvent.TIMER, onLevelFailed); }; enableUserMouse(true); } private function editLevel(_arg1:MouseEvent):void{ var _local2:Volt; var _local3:Sprite; isEditLevel = !(isEditLevel); if (isEditLevel){ for each (_local2 in volts) { if (!_local2.isStart){ _local2.parent.removeChild(_local2); }; }; for each (_local3 in connects) { _local3.parent.removeChild(_local3); }; resetLevelInfo(); stopAllPhysics(); editLevel_btn.gotoAndStop(2); makeEditable(); editPanel_mc.visible = true; editPanel_mc.physWorld = this; editPanel_mc.initOnBegin(levelNo); myEditPanel = editPanel_mc; plat_mc.mouseEnabled = false; if (worldZone != WORLD_HIGH){ stripe_up.mouseEnabled = false; stripe_down.mouseEnabled = false; }; } else { LevelsInfo.levelInfo[levelNo] = getFullLevelText(); editPanel_mc.visible = false; myLevel.goGameAgain(null); }; } private function lookHighTower(_arg1:Event):void{ changeY(0); } private function getMaxY():Number{ return ((((Hzone * 0.5) - highestVolt.physBody.GetWorldCenter().y) * myScale)); } function onStripeOut(_arg1:MouseEvent){ myLevel.myGame.captureOut(_arg1.target); forOnStripeOut(_arg1.target); } public function forOnStripeOut(_arg1){ (_arg1 as MovieClip).alpha = 0; dyk = 0; removeEventListener(Event.ENTER_FRAME, scrollMove); } function onStripeOver(_arg1:MouseEvent){ myLevel.myGame.captureOver(_arg1.target); forOnStripeOver(_arg1.target); } public function forOnStripeOver(_arg1){ switch (_arg1){ case stripe_up: dyk = 1; break; case stripe_down: dyk = -1; break; }; addEventListener(Event.ENTER_FRAME, scrollMove); } private function scrollMove(_arg1:Event):void{ dyk = (dyk + (dyk / Math.abs(dyk))); changeY(dyk); } private function changeY(_arg1:Number, _arg2:Number=INF):void{ var _local3:Point = mousePoint(false); var _local4:Number = ((_arg2)!=Infinity) ? _arg2 : (allWorlObjects.y + _arg1); if (_local4 > getMaxY()){ _local4 = getMaxY(); stripe_up.alpha = 0; } else { if (stripe_up.hitTestPoint(_local3.x, _local3.y, false)){ stripe_up.alpha = 1; }; }; if (_local4 < 0){ _local4 = 0; stripe_down.alpha = 0; } else { if (stripe_down.hitTestPoint(_local3.x, _local3.y, false)){ stripe_down.alpha = 1; }; }; objects_mc.y = (allWorlObjects.y = _local4); } public function initLevel(_arg1:Level){ myLevel = _arg1; levelNo = myLevel.myNumber; editPanel_mc = (myLevel.myGame_ as Game).editPanel_mc; var _local2:Number = stage.frameRate; addEventListener(Event.ENTER_FRAME, showWorld); enginePerFrame = 2; kTimeSteps = (_local2 * enginePerFrame); m_timeStep = (1 / kTimeSteps); m_iterations = 10; initLevelData(); initPhysics(); initLevelPhysics(); showLevelInfo(); myLevel.counterTime.startWork(); if (!myLevel.myGame.flagWalk){ addFirstVolt(); }; } function addFirstVolt(){ var _local1:*; if (firstAppVolt != "null"){ _local1 = 0; while (_local1 < myLevel.myGame.flagFirstAppVolt.length) { if (myLevel.myGame.flagFirstAppVolt[_local1] == firstAppVolt){ return; }; _local1++; }; appVolt = (myLevel.addChild(new first_appearance_volt_clip()) as FirstAppearanceVolt); appVolt.initMe(myLevel, firstAppVolt); myLevel.myGame.flagFirstAppVolt.push(firstAppVolt); }; } private function showLevelInfo():void{ if (myLevel.modeGame == Level.MODE_LEVEL){ ifAllConstConnected(); } else { showCurrentHeight(); }; } private function showCurrentHeight():void{ var highestValue:Number = 0; if (((volts) && ((volts.length > 0)))){ volts.sort(function (_arg1:Volt, _arg2:Volt):Number{ return ((_arg1.y - _arg2.y)); }); highestVolt = volts[0]; highestValue = Math.round((highestVolt.physBody.GetWorldCenter().y * 10)); }; if (worldZone == WORLD_HIGH){ return; }; if (towerStartY == -1){ towerStartY = highestValue; }; nowH = (towerStartY - highestValue); if (maxH < nowH){ maxH = nowH; }; if (nowH < 0){ myLevel.winEnd.showMe(true); }; } public function highestVoltFunc(_arg1:Volt, _arg2:Volt):Number{ return (-((_arg1.physBody.GetWorldCenter().y - _arg2.physBody.GetWorldCenter().y))); } private function initLevelData():void{ volts = []; connects = []; newConnectLines = []; voltOwnId = 0; buildLevelData(LevelsInfo.levelInfo[levelNo]); myLevel.showVoltModes(myKVolts); if ((((myLevel.modeGame == Level.MODE_TOWER)) || ((worldZone == WORLD_HIGH)))){ stripe_up.visible = (stripe_down.visible = true); stripe_up.alpha = (stripe_down.alpha = 0); if (((!(myLevel.myGame.flagWalk)) || (((myLevel.myGame.flagWalk) && (myLevel.myGame.isWrite))))){ stripe_up.addEventListener(MouseEvent.MOUSE_OVER, onStripeOver); stripe_down.addEventListener(MouseEvent.MOUSE_OVER, onStripeOver); stripe_up.addEventListener(MouseEvent.MOUSE_OUT, onStripeOut); stripe_down.addEventListener(MouseEvent.MOUSE_OUT, onStripeOut); }; } else { stripe_up.visible = (stripe_down.visible = false); }; if (myLevel.modeGame == Level.MODE_TOWER){ addEventListener(Event.ENTER_FRAME, lookHighTower); }; if (isWalkShow){ enableUserMouse(false); }; } function enableUserMouse(_arg1:Boolean){ myLevel.counterVolt.buttonMode = (myLevel.buttonMode = _arg1); myLevel.counterVolt.mouseEnabled = (myLevel.mouseEnabled = _arg1); myLevel.counterVolt.mouseChildren = (myLevel.mouseChildren = _arg1); myLevel.myGame.useSpecialMouseClip(_arg1); } function get isWalkShow():Boolean{ return (((myLevel.myGame.flagWalk) && (!(myLevel.myGame.isWrite)))); } private function initPhysics():void{ var _local1:b2AABB = new b2AABB(); var _local2:Number = (-(Lzone) / 2); var _local3:Number = (-(Hzone) / 2); var _local4:Number = ((Lzone * 3) / 2); var _local5:Number = ((Hzone * 3) / 2); switch (worldZone){ case WORLD_STANDARD: break; case WORLD_HIGH: _local3 = (-10 * Hzone); _local5 = (3 * Hzone); break; case WORLD_LONG_RIGHT: _local4 = (10 * Lzone); break; }; _local1.lowerBound.Set(_local2, _local3); _local1.upperBound.Set(_local4, _local5); var _local6:b2Vec2 = new b2Vec2(0, 10); var _local7:Boolean; m_world = new b2World(_local1, _local6, _local7); var _local8:PhysicsContactListener = new PhysicsContactListener(this); m_world.SetContactListener(_local8); } private function initLevelPhysics():void{ buildLevel(LevelsInfo.levelInfo[levelNo]); getFromMeObjects(); } function addRect(_arg1:Object, _arg2:Number=0.3){ var _local3:Number = _arg1.x1; var _local4:Number = _arg1.y1; var _local5:Number = _arg1.x2; var _local6:Number = _arg1.y2; var _local7:Number = (_local5 - _local3); var _local8:Number = (_local6 - _local4); var _local9:Number = (_local3 + (_local7 / 2)); var _local10:Number = (_local4 + (_local8 / 2)); var _local11:* = 20; var _local12:* = 2.6; var _local13:b2PolygonDef = new b2PolygonDef(); _local13.SetAsBox((_local7 / 2), (_local8 / 2)); _local13.friction = _arg2; _local13.density = 0; addPhysicsBody(new invisBox(), grounds_mc, _local9, _local10, _local7, _local8, _local13); } function addPhysicsBody(_arg1:Sprite, _arg2:MovieClip, _arg3:Number, _arg4:Number, _arg5, _arg6, _arg7:b2ShapeDef):b2Body{ var _local8:b2BodyDef = new b2BodyDef(); _local8.position.Set(_arg3, _arg4); _local8.userData = _arg1; if (((!((_arg2 == null))) && (!((_arg1 == null))))){ if (isVizualize){ _arg2.addChild(_arg1); } else { _arg1.visible = false; _arg2.addChild(new point1()); }; }; if (_arg5 != null){ _arg1.width = (myScale * _arg5); }; if (_arg6 != null){ _arg1.height = (myScale * _arg6); }; var _local9:b2Body = m_world.CreateBody(_local8); var _local10:b2Shape = _local9.CreateShape(_arg7); _local9.SetMassFromShapes(); return (_local9); } function showConnect(_arg1:Volt, _arg2:Point, _arg3:Number, _arg4:VoltJoint):MovieClip{ if (_arg4 == null){ _arg4 = ((isVizualize) ? new electrcLine() : new line1() as VoltJoint); connects_mc.addChild(_arg4); mouseVoltTrue(); _arg1.tempConnect = _arg4; }; isNewConnect = true; _arg4.x = _arg1.x; _arg4.y = _arg1.y; _arg4.rotation = ((Math.atan2((_arg2.y - _arg1.y), (_arg2.x - _arg1.x)) * 180) / Math.PI); _arg4.mask_mc.width = _arg3; _arg4.dist = _arg3; return (_arg4); } public function mousePoint(_arg1:Boolean=true):Point{ var _local2:Point = new Point(stage.mouseX, stage.mouseY); if (_arg1){ _local2.x = (_local2.x - allWorlObjects.x); _local2.y = (_local2.y - allWorlObjects.y); }; return (_local2); } function showTempConnects(_arg1:Boolean=true){ var distSqr:Number; var v1:Volt; var maxTempConnects:Number; var lineInfo:Object; var v:Volt; var dist:Number; var isMouse = _arg1; var p:Point = mousePoint(); var mX:Number = (isMouse) ? p.x : -1000; var mY:Number = (isMouse) ? p.y : -1000; isNewConnect = false; newConnectLines = []; var newLinesInfo:Array = []; for each (v1 in volts) { v1.tempConnectLength = 0; if (v1.isSwimDown){ } else { distSqr = getDistSqr(v1.x, v1.y, mX, mY); if ((((((distSqr > v1.minDSqr)) && ((distSqr < v1.maxDSqr)))) && ((v1.constConnects.length < v1.maxConnects)))){ dist = Math.sqrt(distSqr); newLinesInfo.push({dist:dist, v:v1}); }; }; }; maxTempConnects = Volt.getMaxTempConnects(this.myLevel.counterVolt.currentVolt); if (newLinesInfo.length > maxTempConnects){ newLinesInfo.sort(function (_arg1, _arg2):Number{ return ((_arg1.dist - _arg2.dist)); }); newLinesInfo.length = maxTempConnects; }; for each (lineInfo in newLinesInfo) { (lineInfo.v as Volt).tempConnectLength = lineInfo.dist; }; for each (v in volts) { if (v.tempConnectLength > 0){ newConnectLines.push(showConnect(v, new Point(mX, mY), v.tempConnectLength, v.tempConnect)); } else { removeVoltTempConnect(v); }; }; if (newConnectLines.length == 0){ mouseVoltFalse(); }; } function removeVoltTempConnect(_arg1:Volt){ if (_arg1.tempConnect != null){ if (_arg1.tempConnect.parent == connects_mc){ connects_mc.removeChild(_arg1.tempConnect); }; _arg1.tempConnect = null; }; } public function ifAllConstConnected():Boolean{ var _local3:Volt; var _local4:Number; var _local5:Volt; var _local6:Boolean; var _local7:*; var _local1:Array = (volts[0] as Volt).findMyNeighbours([]); var _local2:Number = 0; for each (_local3 in _local1) { if (_local3.isStart){ _local2++; }; }; _local4 = 0; for each (_local5 in volts) { if (_local5.isStart){ _local4++; }; }; _local6 = (_local2 == _local4); if (_local6){ myLevel.levelSuccess(); stopAllPhysics(); _local7 = 0; while (_local7 < volts.length) { volts[_local7].createShine(false); _local7++; }; }; return (_local6); } function showWorld(_arg1){ var _local5:*; var _local6:Sprite; var _local7:b2Vec2; var _local8:Number; var _local9:Sprite; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Volt; var _local2:* = 0; while (_local2 < enginePerFrame) { stepI++; m_world.Step(m_timeStep, m_iterations); _local2++; }; if (!m_world.m_lock){ _local5 = 0; while (_local5 < volts.length) { if ((((volts[_local5].id == Volt.VOLT_SCOTCH)) && (volts[_local5].flagForDoScotch))){ volts[_local5].doScotch(); }; _local5++; }; }; var _local3:b2Body = m_world.m_bodyList; while (_local3) { if ((_local3.m_userData is Sprite)){ _local6 = (_local3.m_userData as Sprite); _local7 = _local3.GetPosition(); _local6.x = (_local7.x * myScale); _local6.y = (_local7.y * myScale); _local8 = (_local3.GetAngle() * (180 / Math.PI)); _local6.rotation = _local8; if ((_local6 is Volt)){ if (Math.abs(Math.round(_local8)) >= 2){ (_local6 as Volt).becomeMovie(); } else { _local6.rotation = 0; }; }; }; _local3 = _local3.m_next; }; var _local4:b2Joint = m_world.GetJointList(); while (_local4) { if ((_local4.m_userData is Sprite)){ _local9 = (_local4.m_userData as Sprite); _local10 = _local4.GetBody1().GetPosition(); _local11 = _local4.GetBody2().GetPosition(); _local9.x = (_local10.x * myScale); _local9.y = (_local10.y * myScale); _local9.rotation = (Math.atan2((_local11.y - _local10.y), (_local11.x - _local10.x)) * (180 / Math.PI)); }; _local4 = _local4.GetNext(); }; if (((enableAddVolt()) && (!((myLevel.counterVolt.allKol[myLevel.counterVolt._currentVolt] == 0))))){ if (canNowConnect){ showTempConnects(); }; } else { for each (_local12 in volts) { removeVoltTempConnect(_local12); }; }; if ((((myLevel.modeGame == Level.MODE_TOWER)) || ((worldZone == WORLD_HIGH)))){ showCurrentHeight(); }; } public function addVolt(_arg1:Point, _arg2:Number):Volt{ var _local3:Class = (getDefinitionByName(("volt" + (_arg2 + 1))) as Class); var _local4:* = (new (_local3) as ((_arg2)!=Volt.VOLT_STAT) ? Volt : VoltFlying); _local4.id = _arg2; _local4.isStart = false; _local4.x = _arg1.x; _local4.y = _arg1.y; _local4.initMe(this); return (_local4); } function addVoltPhysics(_arg1:Volt):Volt{ var _local5:MovieClip; var _local2:Point = new Point((_arg1.x / myScale), (_arg1.y / myScale)); _arg1.ownId = voltOwnId++; volts.push(_arg1); var _local3:b2CircleDef = new b2CircleDef(); _local3.radius = ((26 / 2) / myScale); _local3.density = _arg1.getDensity(); _local3.friction = 0.2; _local3.restitution = 0.2; var _local4:b2Body = addPhysicsBody(_arg1, volts_mc, _local2.x, _local2.y, null, null, _local3); _arg1.physBody = _local4; var _local6:b2CircleDef = new b2CircleDef(); _local6.radius = 0.2; _local6.density = (0.1 * PhysicsMovie.mainDensity); _local6.friction = 0.8; _local6.restitution = 0.1; var _local7:b2Body = addPhysicsBody(_local5, volts_mc, _local2.x, _local2.y, null, null, _local6); _arg1.physSatellite = _local7; var _local8:b2RevoluteJointDef = new b2RevoluteJointDef(); _local8.Initialize(_local7, _arg1.physBody, _arg1.physBody.GetWorldCenter()); _local8.collideConnected = false; _local8.maxMotorTorque = 0.5; _arg1.physSatConnect = m_world.CreateJoint(_local8); _arg1.addToMyShapes(_local4.GetShapeList()); _arg1.addToMyShapes(_local7.GetShapeList()); return (_arg1); } public function mouseClick(_arg1:MouseEvent){ var _local2:Volt; var _local3:Volt; var _local4:Number; var _local5:*; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2PrismaticJointDef; var _local12:b2DistanceJointDef; var _local13:b2JointDef; if (!enableAddVolt()){ return; }; if (((((isNewConnect) && ((newConnectLines.length >= 1)))) && (!(grounds_mc.hitTestPoint(mousePoint(false).x, mousePoint(false).y, true))))){ if (!this.myLevel.counterVolt.decreaseK()){ return; }; if (((myLevel.myGame.isWrite) && (myLevel.myGame.flagWalk))){ myLevel.myGame.captureClick(true); }; _local2 = addVolt(mousePoint(), this.myLevel.counterVolt.currentVolt); _local2.constConnects = _local2.constConnects.concat(newConnectLines); this.myLevel.counterVolt.checkCurrentVolt(); mouseVoltFalse(); for each (_local3 in volts) { if (((!((_local3.tempConnect == null))) && (!((_local3 == _local2))))){ _local6 = _local3.physBody.GetWorldCenter(); _local7 = _local2.physBody.GetWorldCenter(); _local8 = Math.sqrt(getDistSqr(_local6.x, _local6.y, _local7.x, _local7.y)); _local9 = new b2Vec2(((_local6.x + _local7.x) / 2), ((_local6.y + _local7.y) / 2)); _local10 = new b2Vec2(0, 1); _local11 = new b2PrismaticJointDef(); _local11.Initialize(_local3.physSatellite, _local2.physSatellite, _local9, _local10); _local11.collideConnected = true; _local12 = new b2DistanceJointDef(); _local12.Initialize(_local3.physSatellite, _local2.physSatellite, _local3.physSatellite.GetWorldCenter(), _local2.physSatellite.GetWorldCenter()); _local12.collideConnected = true; _local13 = _local12; _local13.userData = _local3.tempConnect; _local3.tempConnect.joint = m_world.CreateJoint(_local13); _local3.tempConnect.m_world = m_world; _local3.tempConnect.connectedVolt1 = _local3; _local3.tempConnect.connectedVolt2 = _local2; _local3.tempConnect.myWorkZone = this; _local3.toConstConnect(); _local3.connectedVolts.push(_local2); _local2.connectedVolts.push(_local3); }; }; connects = connects.concat(newConnectLines); newConnectLines = []; isNewConnect = false; canNowConnect = false; timer = new Timer(400, 1); timer.addEventListener(TimerEvent.TIMER, onTimerForTimer); timer.start(); showLevelInfo(); _local4 = 0; for each (_local5 in this.physObjs) { if ((_local5 as PhysicsMovieBonus) != null){ trace(("найден бонус " + allVoltEnd())); _local4 = 3000; }; }; if (((allVoltEnd()) && (!(ifAllConstConnected())))){ tAllVoltEnd = new Timer(_local4, 1); tAllVoltEnd.addEventListener(TimerEvent.TIMER, onLevelFailed); tAllVoltEnd.start(); }; }; } function onTimerForTimer(_arg1:Event){ canNowConnect = true; } function delConnect(_arg1:VoltJoint){ var _local2:* = 0; while (_local2 < connects.length) { if (connects[_local2] == _arg1){ connects.splice(_local2); break; }; _local2++; }; } function getDistSqr(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2)))); } function allVoltEnd():Boolean{ var _local1:* = 0; while (_local1 < myKVolts.length) { if (myKVolts[_local1] != 0){ return (false); }; _local1++; }; return (true); } public function transferAllVoltInState(_arg1:String){ var _local2:* = 0; while (_local2 < volts.length) { volts[_local2].makeState(_arg1, true); _local2++; }; } public function stopAllPhysics(){ removeEventListener(Event.ENTER_FRAME, showWorld); } public function myLevelFailed(){ stopAllPhysics(); showTempConnects(false); } function onLevelFailed(_arg1:Event){ if (((allVoltEnd()) && (!(ifAllConstConnected())))){ myLevel.levelFailed("No more volts..."); myLevelFailed(); }; } function enableAddVolt():Boolean{ var _local1:*; for each (_local1 in physObjs) { if (_local1.hitTestPoint(mousePoint(false).x, mousePoint(false).y, true)){ mouseVoltFalse(); return (false); }; }; return (true); } public function mouseVoltTrue(){ if (((!((appVolt == null))) && (appVolt.visible))){ mouseVoltFalse(); return; }; myLevel.myGame.mouseGotoAndStop((Game.currentLevel.counterVolt.currentVolt + 1)); myLevel.myGame.mouseMc.mouseEnabled = false; myLevel.myGame.mouseMc.mouseChildren = false; } public function mouseVoltFalse(){ myLevel.myGame.mouseGotoAndStop(5); } } }//package TheGame
Section 187
//ag_intro_mc_631 (VoltConnectarmorgames_fla.ag_intro_mc_631) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class ag_intro_mc_631 extends MovieClip { public function ag_intro_mc_631(){ addFrameScript(0, frame1, 224, frame225); } function frame1(){ gotoAndPlay(2); } function frame225(){ } } }//package VoltConnectarmorgames_fla
Section 188
//allClip_141 (VoltConnectarmorgames_fla.allClip_141) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class allClip_141 extends MovieClip { public function allClip_141(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package VoltConnectarmorgames_fla
Section 189
//flag_641 (VoltConnectarmorgames_fla.flag_641) package VoltConnectarmorgames_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.filters.*; public dynamic class flag_641 extends MovieClip { public var flag_mc:MovieClip; public var mapBitmap:BitmapData; public var mapPoint:Point; public var componentX:Number; public var componentY:Number; public var _scaleX:Number; public var _scaleY:Number; public var mode:String; public var color:Number; public var _alpha:Number; public function flag_641(){ addFrameScript(0, frame1); } public function EnterFrame(_arg1:Event){ var _local2:DisplacementMapFilter = new DisplacementMapFilter(mapBitmap, mapPoint, componentX, componentY, _scaleX, _scaleY, mode, color, _alpha); flag_mc.filters = new Array(_local2); mapPoint.x = (mapPoint.x + 2); if (mapPoint.x > 0){ mapPoint.x = -2185; }; } function frame1(){ mapBitmap = new BitmapData(2500, 300, true); mapBitmap.perlinNoise(60, 60, 2, 10, true, true, 1); mapPoint = new Point(-2457, -30); componentX = 1; componentY = 1; _scaleX = 10; _scaleY = 5; mode = "color"; color = 0; _alpha = 0; this.addEventListener(Event.ENTER_FRAME, EnterFrame); } } }//package VoltConnectarmorgames_fla
Section 190
//QualityButton_313 (VoltConnectarmorgames_fla.QualityButton_313) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class QualityButton_313 extends MovieClip { public var in_mc:QualityButton_low; public function QualityButton_313(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package VoltConnectarmorgames_fla
Section 191
//splash_639 (VoltConnectarmorgames_fla.splash_639) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class splash_639 extends MovieClip { public function splash_639(){ addFrameScript(4, frame5, 46, frame47); } function frame5(){ } function frame47(){ stop(); } } }//package VoltConnectarmorgames_fla
Section 192
//Timeline_595 (VoltConnectarmorgames_fla.Timeline_595) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class Timeline_595 extends MovieClip { public function Timeline_595(){ addFrameScript(13, frame14); } function frame14(){ stop(); } } }//package VoltConnectarmorgames_fla
Section 193
//Timeline_602 (VoltConnectarmorgames_fla.Timeline_602) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class Timeline_602 extends MovieClip { public function Timeline_602(){ addFrameScript(19, frame20); } function frame20(){ stop(); } } }//package VoltConnectarmorgames_fla
Section 194
//volt_in_in1_199 (VoltConnectarmorgames_fla.volt_in_in1_199) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class volt_in_in1_199 extends MovieClip { public function volt_in_in1_199(){ addFrameScript(26, frame27, 46, frame47, 63, frame64); } function frame27(){ gotoAndPlay("usual"); } function frame47(){ gotoAndPlay("sad"); } function frame64(){ gotoAndPlay("glad"); } } }//package VoltConnectarmorgames_fla
Section 195
//volt_in_in1_glad_206 (VoltConnectarmorgames_fla.volt_in_in1_glad_206) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class volt_in_in1_glad_206 extends MovieClip { public function volt_in_in1_glad_206(){ addFrameScript(12, frame13); } function frame13(){ gotoAndPlay("glad"); } } }//package VoltConnectarmorgames_fla
Section 196
//volt_in_in1_sad_208 (VoltConnectarmorgames_fla.volt_in_in1_sad_208) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class volt_in_in1_sad_208 extends MovieClip { public function volt_in_in1_sad_208(){ addFrameScript(15, frame16); } function frame16(){ gotoAndPlay("sad"); } } }//package VoltConnectarmorgames_fla
Section 197
//volt_in_in1_usual_210 (VoltConnectarmorgames_fla.volt_in_in1_usual_210) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class volt_in_in1_usual_210 extends MovieClip { public function volt_in_in1_usual_210(){ addFrameScript(26, frame27); } function frame27(){ gotoAndPlay("usual"); } } }//package VoltConnectarmorgames_fla
Section 198
//volt_in_in2_212 (VoltConnectarmorgames_fla.volt_in_in2_212) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class volt_in_in2_212 extends MovieClip { public function volt_in_in2_212(){ addFrameScript(14, frame15, 36, frame37, 58, frame59); } function frame15(){ gotoAndPlay("usual"); } function frame37(){ gotoAndPlay("sad"); } function frame59(){ gotoAndPlay("glad"); } } }//package VoltConnectarmorgames_fla
Section 199
//volt_in_in2_glad_222 (VoltConnectarmorgames_fla.volt_in_in2_glad_222) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class volt_in_in2_glad_222 extends MovieClip { public function volt_in_in2_glad_222(){ addFrameScript(16, frame17); } function frame17(){ gotoAndPlay("glad"); } } }//package VoltConnectarmorgames_fla
Section 200
//volt_in_in2_sad_224 (VoltConnectarmorgames_fla.volt_in_in2_sad_224) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class volt_in_in2_sad_224 extends MovieClip { public function volt_in_in2_sad_224(){ addFrameScript(16, frame17); } function frame17(){ gotoAndPlay("sad"); } } }//package VoltConnectarmorgames_fla
Section 201
//volt_in_in2_usual_226 (VoltConnectarmorgames_fla.volt_in_in2_usual_226) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class volt_in_in2_usual_226 extends MovieClip { public function volt_in_in2_usual_226(){ addFrameScript(14, frame15); } function frame15(){ gotoAndPlay("usual"); } } }//package VoltConnectarmorgames_fla
Section 202
//volt_in_in3_228 (VoltConnectarmorgames_fla.volt_in_in3_228) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class volt_in_in3_228 extends MovieClip { public function volt_in_in3_228(){ addFrameScript(15, frame16, 32, frame33, 52, frame53); } function frame16(){ gotoAndPlay("usual"); } function frame33(){ gotoAndPlay("sad"); } function frame53(){ gotoAndPlay("glad"); } } }//package VoltConnectarmorgames_fla
Section 203
//volt_in_in3_glad_233 (VoltConnectarmorgames_fla.volt_in_in3_glad_233) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class volt_in_in3_glad_233 extends MovieClip { public function volt_in_in3_glad_233(){ addFrameScript(15, frame16); } function frame16(){ gotoAndPlay("glad"); } } }//package VoltConnectarmorgames_fla
Section 204
//volt_in_in3_sad_235 (VoltConnectarmorgames_fla.volt_in_in3_sad_235) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class volt_in_in3_sad_235 extends MovieClip { public function volt_in_in3_sad_235(){ addFrameScript(12, frame13); } function frame13(){ gotoAndPlay("sad"); } } }//package VoltConnectarmorgames_fla
Section 205
//volt_in_in3_usual_237 (VoltConnectarmorgames_fla.volt_in_in3_usual_237) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class volt_in_in3_usual_237 extends MovieClip { public function volt_in_in3_usual_237(){ addFrameScript(15, frame16); } function frame16(){ gotoAndPlay("usual"); } } }//package VoltConnectarmorgames_fla
Section 206
//volt_in_in4_239 (VoltConnectarmorgames_fla.volt_in_in4_239) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class volt_in_in4_239 extends MovieClip { public function volt_in_in4_239(){ addFrameScript(18, frame19, 34, frame35, 59, frame60); } function frame19(){ gotoAndPlay("usual"); } function frame35(){ gotoAndPlay("sad"); } function frame60(){ gotoAndPlay("glad"); } } }//package VoltConnectarmorgames_fla
Section 207
//volt_in_in4_glad_246 (VoltConnectarmorgames_fla.volt_in_in4_glad_246) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class volt_in_in4_glad_246 extends MovieClip { public function volt_in_in4_glad_246(){ addFrameScript(20, frame21); } function frame21(){ gotoAndPlay("glad"); } } }//package VoltConnectarmorgames_fla
Section 208
//volt_in_in4_sad_248 (VoltConnectarmorgames_fla.volt_in_in4_sad_248) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class volt_in_in4_sad_248 extends MovieClip { public function volt_in_in4_sad_248(){ addFrameScript(11, frame12); } function frame12(){ gotoAndPlay("sad"); } } }//package VoltConnectarmorgames_fla
Section 209
//volt_in_in4_usual_250 (VoltConnectarmorgames_fla.volt_in_in4_usual_250) package VoltConnectarmorgames_fla { import flash.display.*; public dynamic class volt_in_in4_usual_250 extends MovieClip { public function volt_in_in4_usual_250(){ addFrameScript(18, frame19); } function frame19(){ gotoAndPlay("usual"); } } }//package VoltConnectarmorgames_fla
Section 210
//armorgames_intro (armorgames_intro) package { import flash.display.*; public dynamic class armorgames_intro extends MovieClip { public var inside_mc:MovieClip; } }//package
Section 211
//ball1 (ball1) package { import flash.display.*; public dynamic class ball1 extends MovieClip { } }//package
Section 212
//blue_top (blue_top) package { import flash.display.*; public dynamic class blue_top extends SimpleButton { } }//package
Section 213
//border_level (border_level) package { import TheGame.MyPhysics.*; public dynamic class border_level extends PhysicsMovie { } }//package
Section 214
//btLevel (btLevel) package { import TheGame.*; public dynamic class btLevel extends ButtonLevel { } }//package
Section 215
//button_for_sound (button_for_sound) package { import TheGame.GameTemplate.*; public dynamic class button_for_sound extends ButtonSoundOnOff { } }//package
Section 216
//button_pause (button_pause) package { import TheGame.*; public dynamic class button_pause extends PauseBtn { } }//package
Section 217
//CellRenderer_disabledSkin (CellRenderer_disabledSkin) package { import flash.display.*; public dynamic class CellRenderer_disabledSkin extends MovieClip { } }//package
Section 218
//CellRenderer_downSkin (CellRenderer_downSkin) package { import flash.display.*; public dynamic class CellRenderer_downSkin extends MovieClip { } }//package
Section 219
//CellRenderer_overSkin (CellRenderer_overSkin) package { import flash.display.*; public dynamic class CellRenderer_overSkin extends MovieClip { } }//package
Section 220
//CellRenderer_selectedDisabledSkin (CellRenderer_selectedDisabledSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDisabledSkin extends MovieClip { } }//package
Section 221
//CellRenderer_selectedDownSkin (CellRenderer_selectedDownSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDownSkin extends MovieClip { } }//package
Section 222
//CellRenderer_selectedOverSkin (CellRenderer_selectedOverSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedOverSkin extends MovieClip { } }//package
Section 223
//CellRenderer_selectedUpSkin (CellRenderer_selectedUpSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedUpSkin extends MovieClip { } }//package
Section 224
//CellRenderer_upSkin (CellRenderer_upSkin) package { import flash.display.*; public dynamic class CellRenderer_upSkin extends MovieClip { } }//package
Section 225
//clsBTNINV (clsBTNINV) package { import flash.display.*; public dynamic class clsBTNINV extends SimpleButton { } }//package
Section 226
//clsCLOSE (clsCLOSE) package { import flash.display.*; public dynamic class clsCLOSE extends MovieClip { } }//package
Section 227
//clsHI (clsHI) package { import flash.display.*; public dynamic class clsHI extends MovieClip { } }//package
Section 228
//clsSUBMIT (clsSUBMIT) package { import flash.display.*; public dynamic class clsSUBMIT extends MovieClip { } }//package
Section 229
//clsSUBMITWINDOW (clsSUBMITWINDOW) package { import fl.controls.*; import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.net.*; import flash.text.*; import flash.media.*; import flash.ui.*; import flash.system.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; public dynamic class clsSUBMITWINDOW extends MovieClip { public var ____HI:clsHI; public var ____BTNBIG:clsBTNINV; public var ____TRYAGAIN:clsTRYAGAIN; public var ____CLOSE:clsCLOSE; public var ____MESSAGE:TextField; public var ____ERROR:TextField; public var ____INITIALS:TextInput; public var ____TITLE:TextField; public var ____SUBMIT:clsSUBMIT; public function clsSUBMITWINDOW(){ this.__setProp_____INITIALS_clsSUBMITWINDOW_input_0(); } function __setProp_____INITIALS_clsSUBMITWINDOW_input_0(){ try { this.____INITIALS["componentInspectorSetting"] = true; } catch(e:Error) { }; this.____INITIALS.displayAsPassword = false; this.____INITIALS.editable = true; this.____INITIALS.enabled = true; this.____INITIALS.maxChars = 3; this.____INITIALS.restrict = "ABCDEFGHIJKLMNOPQRSTUVXYWZ"; this.____INITIALS.text = ""; this.____INITIALS.visible = true; try { this.____INITIALS["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 230
//clsTRYAGAIN (clsTRYAGAIN) package { import flash.display.*; public dynamic class clsTRYAGAIN extends MovieClip { } }//package
Section 231
//ComboBox_disabledSkin (ComboBox_disabledSkin) package { import flash.display.*; public dynamic class ComboBox_disabledSkin extends MovieClip { } }//package
Section 232
//ComboBox_downSkin (ComboBox_downSkin) package { import flash.display.*; public dynamic class ComboBox_downSkin extends MovieClip { } }//package
Section 233
//ComboBox_overSkin (ComboBox_overSkin) package { import flash.display.*; public dynamic class ComboBox_overSkin extends MovieClip { } }//package
Section 234
//ComboBox_upSkin (ComboBox_upSkin) package { import flash.display.*; public dynamic class ComboBox_upSkin extends MovieClip { } }//package
Section 235
//counter_timer (counter_timer) package { import TheGame.*; public dynamic class counter_timer extends CounterTimer { } }//package
Section 236
//credits_screen_clip (credits_screen_clip) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.net.*; import flash.text.*; import TheGame.Screens.*; import flash.media.*; import flash.ui.*; import flash.system.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.xml.*; import adobe.utils.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; public dynamic class credits_screen_clip extends CreditsScreen { public function credits_screen_clip(){ __setProp_menu_btn_credits_screen_(); } function __setProp_menu_btn_credits_screen_(){ try { menu_btn["componentInspectorSetting"] = true; } catch(e:Error) { }; menu_btn.MinWidth = 0; menu_btn.Text = "menu"; try { menu_btn["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 237
//edit_btn (edit_btn) package { import flash.display.*; public dynamic class edit_btn extends MovieClip { public function edit_btn(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 238
//editPanel (editPanel) package { import flash.display.*; import flash.utils.*; import flash.events.*; import TheGame.MyPhysics.*; import fl.data.*; import flash.geom.*; import flash.net.*; import flash.text.*; import flash.media.*; import flash.ui.*; import flash.system.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.xml.*; import adobe.utils.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; public dynamic class editPanel extends EditPanel { public function editPanel(){ __setProp_bonus_type_mc__editPanel_(); __setProp_combo_new_volt_editPanel_(); __setProp_dens_mc__editPanel_Layer6_0(); __setProp_combo_world_editPanel_Layer6_0(); } function __setProp_bonus_type_mc__editPanel_(){ var _local2:SimpleCollectionItem; var _local3:Array; var _local4:Object; var _local5:int; var _local6:*; try { bonus_type_mc_["componentInspectorSetting"] = true; } catch(e:Error) { }; var _local1:DataProvider = new DataProvider(); _local3 = [{label:"simple", data:0}, {label:"stat", data:1}, {label:"scotch", data:2}, {label:"swim", data:3}]; _local5 = 0; while (_local5 < _local3.length) { _local2 = new SimpleCollectionItem(); _local4 = _local3[_local5]; for (_local6 in _local4) { _local2[_local6] = _local4[_local6]; }; _local1.addItem(_local2); _local5++; }; bonus_type_mc_.dataProvider = _local1; bonus_type_mc_.editable = false; bonus_type_mc_.enabled = true; bonus_type_mc_.prompt = ""; bonus_type_mc_.restrict = ""; bonus_type_mc_.rowCount = 10; bonus_type_mc_.visible = true; try { bonus_type_mc_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_combo_new_volt_editPanel_(){ var _local2:SimpleCollectionItem; var _local3:Array; var _local4:Object; var _local5:int; var _local6:*; try { combo_new_volt["componentInspectorSetting"] = true; } catch(e:Error) { }; var _local1:DataProvider = new DataProvider(); _local3 = [{label:"no new volts", data:"null"}, {label:"usual", data:"usual"}, {label:"flying", data:"flying"}, {label:"water", data:"water"}, {label:"sticking", data:"sticking"}]; _local5 = 0; while (_local5 < _local3.length) { _local2 = new SimpleCollectionItem(); _local4 = _local3[_local5]; for (_local6 in _local4) { _local2[_local6] = _local4[_local6]; }; _local1.addItem(_local2); _local5++; }; combo_new_volt.dataProvider = _local1; combo_new_volt.editable = false; combo_new_volt.enabled = true; combo_new_volt.prompt = ""; combo_new_volt.restrict = ""; combo_new_volt.rowCount = 5; combo_new_volt.visible = true; try { combo_new_volt["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_dens_mc__editPanel_Layer6_0(){ var _local2:SimpleCollectionItem; var _local3:Array; var _local4:Object; var _local5:int; var _local6:*; try { dens_mc_["componentInspectorSetting"] = true; } catch(e:Error) { }; var _local1:DataProvider = new DataProvider(); _local3 = [{label:0, data:0}, {label:0.5, data:0.5}, {label:1, data:1}]; _local5 = 0; while (_local5 < _local3.length) { _local2 = new SimpleCollectionItem(); _local4 = _local3[_local5]; for (_local6 in _local4) { _local2[_local6] = _local4[_local6]; }; _local1.addItem(_local2); _local5++; }; dens_mc_.dataProvider = _local1; dens_mc_.editable = true; dens_mc_.enabled = true; dens_mc_.prompt = ""; dens_mc_.restrict = ""; dens_mc_.rowCount = 10; dens_mc_.visible = true; try { dens_mc_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_combo_world_editPanel_Layer6_0(){ var _local2:SimpleCollectionItem; var _local3:Array; var _local4:Object; var _local5:int; var _local6:*; try { combo_world["componentInspectorSetting"] = true; } catch(e:Error) { }; var _local1:DataProvider = new DataProvider(); _local3 = [{label:"standard", data:"standard"}, {label:"high", data:"high"}, {label:"long-right", data:"right"}]; _local5 = 0; while (_local5 < _local3.length) { _local2 = new SimpleCollectionItem(); _local4 = _local3[_local5]; for (_local6 in _local4) { _local2[_local6] = _local4[_local6]; }; _local1.addItem(_local2); _local5++; }; combo_world.dataProvider = _local1; combo_world.editable = false; combo_world.enabled = true; combo_world.prompt = ""; combo_world.restrict = ""; combo_world.rowCount = 5; combo_world.visible = true; try { combo_world["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 239
//electrcLine (electrcLine) package { import TheGame.*; public dynamic class electrcLine extends VoltJoint { } }//package
Section 240
//electrcLine_copy (electrcLine_copy) package { import flash.display.*; public dynamic class electrcLine_copy extends MovieClip { public var mask_mc:MovieClip; } }//package
Section 241
//electric_line_in (electric_line_in) package { import flash.display.*; public dynamic class electric_line_in extends MovieClip { } }//package
Section 242
//electric_line_in_100 (electric_line_in_100) package { import flash.display.*; public dynamic class electric_line_in_100 extends MovieClip { public var mask_mc:MovieClip; } }//package
Section 243
//electric_line_in_40 (electric_line_in_40) package { import flash.display.*; public dynamic class electric_line_in_40 extends MovieClip { public var mask_mc:MovieClip; } }//package
Section 244
//electric_line_in_50 (electric_line_in_50) package { import flash.display.*; public dynamic class electric_line_in_50 extends MovieClip { public var mask_mc:MovieClip; } }//package
Section 245
//electric_line_in_60 (electric_line_in_60) package { import flash.display.*; public dynamic class electric_line_in_60 extends MovieClip { public var mask_mc:MovieClip; } }//package
Section 246
//electric_line_in_70 (electric_line_in_70) package { import flash.display.*; public dynamic class electric_line_in_70 extends MovieClip { public var mask_mc:MovieClip; } }//package
Section 247
//electric_line_in_80 (electric_line_in_80) package { import flash.display.*; public dynamic class electric_line_in_80 extends MovieClip { public var mask_mc:MovieClip; } }//package
Section 248
//electric_line_in_90 (electric_line_in_90) package { import flash.display.*; public dynamic class electric_line_in_90 extends MovieClip { public var mask_mc:MovieClip; } }//package
Section 249
//EventMousePlay (EventMousePlay) package { import flash.events.*; public class EventMousePlay extends Event { public var x:Number; public var y:Number; public var xml:XML; public var name:String; public function EventMousePlay(_arg1:String, _arg2:Number, _arg3:Number, _arg4:String, _arg5:XML, _arg6:Boolean=false, _arg7:Boolean=false){ super(_arg1, _arg6, _arg7); this.x = _arg2; this.y = _arg3; this.name = _arg4; this.xml = _arg5; } override public function clone():Event{ return (new EventMousePlay(type, x, y, name, xml, bubbles, cancelable)); } override public function toString():String{ return (formatToString("EventMousePlay", "type", "x", "y", "name", "xml", "bubbles", "cancelable", "eventPhase")); } } }//package
Section 250
//ferryBlue (ferryBlue) package { import flash.display.*; public dynamic class ferryBlue extends MovieClip { public function ferryBlue(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 251
//ferryGreen (ferryGreen) package { import flash.display.*; public dynamic class ferryGreen extends MovieClip { public function ferryGreen(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 252
//ferryRed (ferryRed) package { import flash.display.*; public dynamic class ferryRed extends MovieClip { public function ferryRed(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 253
//first_appearance_volt_clip (first_appearance_volt_clip) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.net.*; import flash.text.*; import TheGame.*; import flash.media.*; import flash.ui.*; import flash.system.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.xml.*; import adobe.utils.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; public dynamic class first_appearance_volt_clip extends FirstAppearanceVolt { public function first_appearance_volt_clip(){ __setProp_next_btn_first_appearance_volt_(); } function __setProp_next_btn_first_appearance_volt_(){ try { next_btn["componentInspectorSetting"] = true; } catch(e:Error) { }; next_btn.MinWidth = 0; next_btn.Text = "next"; try { next_btn["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 254
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { } }//package
Section 255
//Font1 (Font1) package { import flash.text.*; public dynamic class Font1 extends Font { } }//package
Section 256
//game (game) package { import TheGame.*; public dynamic class game extends Game { } }//package
Section 257
//Help2 (Help2) package { import TheGame.*; public dynamic class Help2 extends HelpText { } }//package
Section 258
//Help3 (Help3) package { import TheGame.*; public dynamic class Help3 extends HelpText { } }//package
Section 259
//Help4 (Help4) package { import TheGame.*; public dynamic class Help4 extends HelpText { } }//package
Section 260
//Help6 (Help6) package { import TheGame.*; public dynamic class Help6 extends HelpText { } }//package
Section 261
//Help7 (Help7) package { import TheGame.*; public dynamic class Help7 extends HelpText { } }//package
Section 262
//Help8 (Help8) package { import TheGame.*; public dynamic class Help8 extends HelpText { } }//package
Section 263
//hitZone (hitZone) package { import flash.display.*; public dynamic class hitZone extends MovieClip { } }//package
Section 264
//HoodaScore30 (HoodaScore30) package { import flash.display.*; import flash.events.*; import flash.net.*; import flash.text.*; public class HoodaScore30 extends Sprite { public var ____HAVEFUNCTION:Boolean;// = false private var ____STEP:String;// = "" private var ____ERRORCODE:String;// = "" public var ____CLOSE:Sprite; public var ____FUNCTION:Function; private var ____WELCOMEMSG:String;// = "" public var ____ERROR:TextField; public var ____GAMECODE:String;// = "" public var ____SCORE:Number;// = 0 public var ____MESSAGE:TextField; private var ____ERRORMSG:String;// = "" public var ____HI:Sprite; public var ____SUBMITWINDOW:Sprite; public var ____TRYAGAIN:Sprite; public var ____SUBMIT:Sprite; public var ____RESULT:String;// = "" private var ____ORDER:String;// = "" public var ____INITIALS:Sprite; public var ____BTNBIG:SimpleButton; private var ____INSTRUMSG:String;// = "" private var ____AS:String;// = "AS3" public var ____TITLE:TextField; private static var ____HOODASERVER:String = "http://hoodamath.com/games/highscores/"; private static var ____HOODAURL:String = "http://hoodamath.com/games/highscores/"; public function HoodaScore30(_arg1:Number, _arg2:Number, _arg3:String, _arg4:String):void{ this.____RESULT = ""; this.____ERRORCODE = 0; this.____ERRORMSG = ""; this.____GAMECODE = _arg3; this.____ORDER = _arg4; this.____STEP = "check"; this.____SUBMITWINDOW.____HI.addEventListener(MouseEvent.CLICK, this.showScoreboard); this.____SUBMITWINDOW.____CLOSE.addEventListener(MouseEvent.CLICK, this.removeWindow); this.____SUBMITWINDOW.____TRYAGAIN.addEventListener(MouseEvent.CLICK, this.submitScore); this.____SUBMITWINDOW.____SUBMIT.addEventListener(MouseEvent.CLICK, this.submitScore); this.____SUBMITWINDOW.____INITIALS.addEventListener(Event.CHANGE, this.changeSubmitButton); this.____SUBMITWINDOW.visible = false; this.____SUBMITWINDOW.____HI.buttonMode = true; this.____SUBMITWINDOW.____CLOSE.buttonMode = true; this.____SUBMITWINDOW.____TRYAGAIN.buttonMode = true; this.____SUBMITWINDOW.____SUBMIT.buttonMode = true; this.____SUBMITWINDOW.____HI.useHandCursor = true; this.____SUBMITWINDOW.____CLOSE.useHandCursor = true; this.____SUBMITWINDOW.____TRYAGAIN.useHandCursor = true; this.____SUBMITWINDOW.____SUBMIT.useHandCursor = true; var _local5:TextFormat = new TextFormat(); _local5.size = 29; _local5.color = "0xFF0000"; _local5.font = "Arial"; _local5.bold = true; _local5.align = "center"; this.____SUBMITWINDOW.____INITIALS.maxChars = 3; this.____SUBMITWINDOW.____INITIALS.restrict = "ABCDEFGHIJKLMNOPQRSTUVXYWZ"; this.____SUBMITWINDOW.____INITIALS.setStyle("textFormat", _local5); this.____SUBMITWINDOW.____BTNBIG.x = -(_arg1); this.____SUBMITWINDOW.____BTNBIG.y = -(_arg2); this.____SUBMITWINDOW.____BTNBIG.height = 3000; this.____SUBMITWINDOW.____BTNBIG.width = 3000; this.____SUBMITWINDOW.____BTNBIG.useHandCursor = false; this.x = _arg1; this.y = _arg2; } public function execFunction(_arg1:Function):void{ this.____FUNCTION = _arg1; this.____HAVEFUNCTION = true; } private function showError():void{ this.____SUBMITWINDOW.____TITLE.text = "ERROR!"; this.____SUBMITWINDOW.____ERROR.text = ((("Error: " + this.____ERRORCODE) + " / ") + this.____ERRORMSG); this.____SUBMITWINDOW.____ERROR.visible = true; this.____SUBMITWINDOW.____ERROR.y = 65; this.____SUBMITWINDOW.____CLOSE.x = 42; this.____SUBMITWINDOW.____CLOSE.visible = true; this.____SUBMITWINDOW.____TRYAGAIN.visible = true; this.____SUBMITWINDOW.____TRYAGAIN.x = 150; this.____SUBMITWINDOW.____SUBMIT.visible = false; } public function removeWindow(_arg1:MouseEvent):void{ this.hideWindow(); } public function putHoodaLink(_arg1:Boolean):void{ this.____SUBMITWINDOW.____ERROR.visible = false; if (_arg1){ this.____SUBMITWINDOW.____TITLE.text = "Score successfully submited!"; } else { this.____SUBMITWINDOW.____TITLE.text = "Check scoreboard for this game!"; }; this.____SUBMITWINDOW.____CLOSE.x = 94; this.____SUBMITWINDOW.____CLOSE.visible = true; this.____SUBMITWINDOW.____HI.visible = true; } private function PHPErrorHandler(_arg1:IOErrorEvent){ this.____ERRORCODE = 6; if (!this.checkResult()){ this.showError(); }; } public function changeSubmitButton(_arg1:Event):void{ if (_arg1.target.text.length > 0){ this.____SUBMITWINDOW.____SUBMIT.alpha = 1; this.____SUBMITWINDOW.____SUBMIT.enabled = true; } else { this.____SUBMITWINDOW.____SUBMIT.alpha = 0.6; this.____SUBMITWINDOW.____SUBMIT.enabled = false; }; } public function checkScoreboard(_arg1:Number):void{ var onDataLoad:*; var score = _arg1; onDataLoad = function (_arg1:Event){ var _local2:URLVariables = new URLVariables(_arg1.target.data); ____ERRORCODE = _local2.errorcode; ____RESULT = _local2.result; var _local3:Boolean = checkResult(); if (((_local3) && ((____RESULT == "entered")))){ ____SUBMITWINDOW.____TITLE.text = "YOU ENTERED TOP SCORE!"; ____SUBMITWINDOW.____MESSAGE.text = "Type in your initials below:"; ____SUBMITWINDOW.____MESSAGE.visible = true; ____SUBMITWINDOW.____ERROR.visible = false; ____SUBMITWINDOW.____CLOSE.x = 42; ____SUBMITWINDOW.____CLOSE.visible = true; ____SUBMITWINDOW.____TRYAGAIN.visible = false; ____SUBMITWINDOW.____TRYAGAIN.x = 10000; ____SUBMITWINDOW.____SUBMIT.visible = true; ____SUBMITWINDOW.____SUBMIT.alpha = 0.6; ____SUBMITWINDOW.____SUBMIT.enabled = false; ____SUBMITWINDOW.____INITIALS.x = 85; ____STEP = "submit"; ____SUBMITWINDOW.____INITIALS.text = ""; ____SUBMITWINDOW.____INITIALS.visible = true; stage.focus = ____SUBMITWINDOW.____INITIALS; ____SUBMITWINDOW.____INITIALS.setFocus(); ____SUBMITWINDOW.____INITIALS.setSelection(____SUBMITWINDOW.____INITIALS.length, ____SUBMITWINDOW.____INITIALS.length); } else { if (____ERRORCODE != 0){ showError(); } else { putHoodaLink(false); }; }; }; this.____SCORE = score; this.____SUBMITWINDOW.____MESSAGE.text = ""; this.____SUBMITWINDOW.____MESSAGE.visible = false; this.____SUBMITWINDOW.____CLOSE.visible = false; this.____SUBMITWINDOW.____SUBMIT.visible = false; this.____SUBMITWINDOW.____HI.visible = false; this.____SUBMITWINDOW.____TRYAGAIN.visible = false; this.____SUBMITWINDOW.____TRYAGAIN.x = 10000; this.____SUBMITWINDOW.____CLOSE.visible = false; this.____SUBMITWINDOW.____TITLE.text = "CHECKING SCOREBOARD"; this.____SUBMITWINDOW.____ERROR.y = 82; this.____SUBMITWINDOW.____ERROR.text = "Contacting server..."; this.____SUBMITWINDOW.____ERROR.visible = true; this.____SUBMITWINDOW.____INITIALS.visible = false; this.____SUBMITWINDOW.____INITIALS.x = 10000; this.____SUBMITWINDOW.visible = true; var PHPURLRequest:URLRequest = new URLRequest((____HOODASERVER + "entered_top_20.php")); var PHPSendVars:URLVariables = new URLVariables(); var PHPLoader:URLLoader = new URLLoader(); PHPLoader.addEventListener(IOErrorEvent.IO_ERROR, this.PHPErrorHandler); PHPSendVars.score = this.____SCORE; PHPSendVars.order = this.____ORDER; PHPSendVars.gamecode = this.____GAMECODE; PHPSendVars.asv = this.____AS; PHPURLRequest.method = URLRequestMethod.POST; PHPURLRequest.data = PHPSendVars; PHPLoader.dataFormat = URLLoaderDataFormat.TEXT; PHPLoader.load(PHPURLRequest); PHPLoader.addEventListener(Event.COMPLETE, onDataLoad); } private function checkResult():Boolean{ if (this.____ERRORCODE != 0){ this.____RESULT = "failed"; }; switch (Number(this.____ERRORCODE)){ case 0: this.____ERRORMSG = "sucess"; break; case 1: this.____ERRORMSG = "blank game code"; break; case 2: this.____ERRORMSG = "unknown game"; break; case 3: this.____ERRORMSG = "blank score"; break; case 4: this.____ERRORMSG = "zeroed score"; break; case 5: this.____ERRORMSG = "blank initials"; break; case 6: this.____ERRORMSG = "server failure"; break; }; if (this.____ERRORCODE != 0){ return (false); }; return (true); } public function hideWindow():void{ this.____SUBMITWINDOW.visible = false; if (this.____HAVEFUNCTION){ this.____FUNCTION(); }; } public function submitScore(_arg1:MouseEvent):void{ var PHPURLRequest:URLRequest; var PHPSendVars:URLVariables; var PHPLoader:URLLoader; var e = _arg1; if (this.____STEP == "check"){ this.checkScoreboard(this.____SCORE); } else { if (this.____SUBMITWINDOW.____INITIALS.text.length != 0){ var onDataLoad:* = function (_arg1:Event){ var _local2:URLVariables = new URLVariables(_arg1.target.data); ____ERRORCODE = _local2.errorcode; if (checkResult()){ putHoodaLink(true); } else { showError(); }; }; this.____SUBMITWINDOW.____ERROR.y = 82; this.____SUBMITWINDOW.____ERROR.text = "Submiting score... please wait..."; this.____SUBMITWINDOW.____ERROR.visible = true; this.____SUBMITWINDOW.____MESSAGE.visible = false; this.____SUBMITWINDOW.____TRYAGAIN.visible = false; this.____SUBMITWINDOW.____TRYAGAIN.x = 10000; this.____SUBMITWINDOW.____INITIALS.visible = false; this.____SUBMITWINDOW.____INITIALS.x = 10000; this.____SUBMITWINDOW.____SUBMIT.visible = false; this.____SUBMITWINDOW.____CLOSE.visible = false; this.____SUBMITWINDOW.____MESSAGE.visible = false; this.____SUBMITWINDOW.____ERROR.visible = true; PHPURLRequest = new URLRequest((____HOODASERVER + "submit_score.php")); PHPSendVars = new URLVariables(); PHPLoader = new URLLoader(); PHPSendVars.initials = this.____SUBMITWINDOW.____INITIALS.text; PHPSendVars.score = this.____SCORE; PHPSendVars.gamecode = this.____GAMECODE; PHPSendVars.asv = this.____AS; PHPURLRequest.method = URLRequestMethod.POST; PHPURLRequest.data = PHPSendVars; PHPLoader.dataFormat = URLLoaderDataFormat.TEXT; PHPLoader.load(PHPURLRequest); PHPLoader.addEventListener(Event.COMPLETE, onDataLoad); }; }; } public function showScoreboard(_arg1:MouseEvent):void{ var _local2:URLRequest = new URLRequest(((((____HOODAURL + "show_top_20.php?gamecode=") + this.____GAMECODE) + "&order=") + this.____ORDER)); navigateToURL(_local2, "_blank"); this.hideWindow(); } } }//package
Section 265
//hor_funflow (hor_funflow) package { import TheGame.*; public dynamic class hor_funflow extends ButtonFunflow { } }//package
Section 266
//hor_funflow_2 (hor_funflow_2) package { import TheGame.*; public dynamic class hor_funflow_2 extends ButtonFunflow { } }//package
Section 267
//hor_funflow_3 (hor_funflow_3) package { import TheGame.*; public dynamic class hor_funflow_3 extends ButtonFunflow { } }//package
Section 268
//invisBox (invisBox) package { import flash.display.*; public dynamic class invisBox extends MovieClip { } }//package
Section 269
//level (level) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.net.*; import flash.text.*; import TheGame.Screens.*; import flash.media.*; import flash.ui.*; import flash.system.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.xml.*; import adobe.utils.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; public dynamic class level extends Level { public function level(){ __setProp_again_btn__level_Btns(); __setProp_exit_btn__level_Btns(); __setProp_next_btn__level_Btns(); __setProp_walkthrough_btn__level_Btns(); __setProp_more_games_btn__level_Btns(); } function __setProp_again_btn__level_Btns(){ try { again_btn_["componentInspectorSetting"] = true; } catch(e:Error) { }; again_btn_.MinWidth = 0; again_btn_.Text = "replay"; try { again_btn_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_exit_btn__level_Btns(){ try { exit_btn_["componentInspectorSetting"] = true; } catch(e:Error) { }; exit_btn_.MinWidth = 0; exit_btn_.Text = "exit "; try { exit_btn_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_next_btn__level_Btns(){ try { next_btn_["componentInspectorSetting"] = true; } catch(e:Error) { }; next_btn_.MinWidth = 0; next_btn_.Text = "next"; try { next_btn_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_walkthrough_btn__level_Btns(){ try { walkthrough_btn_["componentInspectorSetting"] = true; } catch(e:Error) { }; walkthrough_btn_.MinWidth = 0; walkthrough_btn_.Text = "walkthrough"; try { walkthrough_btn_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_more_games_btn__level_Btns(){ try { more_games_btn_["componentInspectorSetting"] = true; } catch(e:Error) { }; more_games_btn_.MinWidth = 0; more_games_btn_.Text = "more games"; try { more_games_btn_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 270
//level1_objs (level1_objs) package { import TheGame.MyPhysics.*; public dynamic class level1_objs extends PhysicsWorld { } }//package
Section 271
//line1 (line1) package { import TheGame.*; public dynamic class line1 extends VoltJoint { } }//package
Section 272
//List_skin (List_skin) package { import flash.display.*; public dynamic class List_skin extends MovieClip { } }//package
Section 273
//loop01 (loop01) package { import flash.media.*; public dynamic class loop01 extends Sound { } }//package
Section 274
//loop02 (loop02) package { import flash.media.*; public dynamic class loop02 extends Sound { } }//package
Section 275
//loop03 (loop03) package { import flash.media.*; public dynamic class loop03 extends Sound { } }//package
Section 276
//loop05 (loop05) package { import flash.media.*; public dynamic class loop05 extends Sound { } }//package
Section 277
//mcBannedSign (mcBannedSign) package { import flash.display.*; public dynamic class mcBannedSign extends MovieClip { public var bg:MovieClip; } }//package
Section 278
//mcCrownMask (mcCrownMask) package { import flash.display.*; public dynamic class mcCrownMask extends MovieClip { } }//package
Section 279
//mcFerryLine (mcFerryLine) package { import flash.display.*; public dynamic class mcFerryLine extends MovieClip { } }//package
Section 280
//mcLogoHolder (mcLogoHolder) package { import flash.display.*; public dynamic class mcLogoHolder extends MovieClip { } }//package
Section 281
//mcLogoMask (mcLogoMask) package { import flash.display.*; public dynamic class mcLogoMask extends MovieClip { } }//package
Section 282
//mcOtherGames (mcOtherGames) package { import flash.display.*; public dynamic class mcOtherGames extends MovieClip { } }//package
Section 283
//mcPlay (mcPlay) package { import flash.display.*; public dynamic class mcPlay extends MovieClip { } }//package
Section 284
//mcWaterRing (mcWaterRing) package { import flash.display.*; public dynamic class mcWaterRing extends MovieClip { public function mcWaterRing(){ addFrameScript(39, frame40); } function frame40(){ stop(); } } }//package
Section 285
//menu_screen_clip (menu_screen_clip) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.net.*; import flash.text.*; import TheGame.Screens.*; import flash.media.*; import flash.ui.*; import flash.system.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.xml.*; import adobe.utils.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; public dynamic class menu_screen_clip extends MenuScreen { public function menu_screen_clip(){ __setProp_play_on_f_btn__menu_screen_Layer1_0(); __setProp_record_btn_menu_screen_Layer4_0(); } function __setProp_play_on_f_btn__menu_screen_Layer1_0(){ try { play_on_f_btn_["componentInspectorSetting"] = true; } catch(e:Error) { }; play_on_f_btn_.MinWidth = 0; play_on_f_btn_.Text = "play volts on iii"; try { play_on_f_btn_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_record_btn_menu_screen_Layer4_0(){ try { record_btn["componentInspectorSetting"] = true; } catch(e:Error) { }; record_btn.MinWidth = 180; record_btn.Text = "test"; try { record_btn["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 286
//MindJoltApi (MindJoltApi) package { import flash.display.*; import flash.events.*; import flash.net.*; import flash.system.*; public class MindJoltApi extends Sprite { var mindjoltAPI:Object; static var iAm:MindJoltApi; function initMe(){ var _local1:Object; var _local2:Loader; if (mindjoltAPI == null){ Security.allowDomain("static.mindjolt.com"); _local1 = LoaderInfo(root.loaderInfo).parameters; _local2 = new Loader(); _local2.contentLoaderInfo.addEventListener(Event.COMPLETE, loadFinished); _local2.load(new URLRequest(((_local1.mjPath) || ("http://static.mindjolt.com/api/as3/api_as3_local.swf")))); this.addChild(_local2); }; } function postmindjoltAPIConnect(_arg1:Boolean){ trace("[mindjoltAPI] service successfully loaded"); } function loadFinished(_arg1:Event):void{ mindjoltAPI = _arg1.currentTarget.content; if (mindjoltAPI != null){ mindjoltAPI.service.connect(postmindjoltAPIConnect); trace("[mindjoltAPI] service successfully loaded"); } else { trace("[mindjoltAPI] failed to load"); }; } public static function createMe(_arg1:DisplayObjectContainer){ if (_arg1.loaderInfo.url.indexOf("mindjolt.com") < 0){ return; }; iAm = new (MindJoltApi); _arg1.addChild(iAm); iAm.initMe(); } public static function submitScore(_arg1:Number, _arg2:String=null):Boolean{ if (!iAm){ return (false); }; trace("[mindjoltAPI] submitScore", [_arg1, _arg2]); iAm.mindjoltAPI.service.submitScore(_arg1, _arg2); return (true); } } }//package
Section 287
//mini_funflow (mini_funflow) package { import TheGame.*; public dynamic class mini_funflow extends ButtonFunflow { } }//package
Section 288
//MouseCatcher (MouseCatcher) package { import flash.display.*; import flash.events.*; import flash.system.*; public class MouseCatcher extends MovieClip { var xml:XML; var lastNote:XML; var iXml:Number;// = 0 var t:Number; var isWrite:Boolean; var justMadeSpecial:Boolean;// = false public var clipMouse:MovieClip; public static const EVENT_ADDITIONAL:String = "additional event"; public function begin(_arg1:Boolean, _arg2:XML):void{ isWrite = _arg1; xml = new XML(_arg2); t = new Date().getTime(); if (isWrite){ xml = <way/> ; addEventListener(Event.ENTER_FRAME, captureMove); } else { addEventListener(Event.ENTER_FRAME, showAction); }; } public function end():void{ if (isWrite){ removeEventListener(Event.ENTER_FRAME, captureMove); System.setClipboard(xml.toString()); trace(xml); } else { removeEventListener(Event.ENTER_FRAME, showAction); }; } private function showAction(_arg1:Event):void{ var _local4:Number; var _local5:Number; var _local2:XML = xml.children()[iXml]; if (_local2 == null){ trace("end"); end(); return; }; var _local3:Number = Number(_local2.@k); if (((isNaN(_local3)) || ((_local3 == 0)))){ _local4 = Number(_local2.@x); _local5 = Number(_local2.@y); clipMouse.x = _local4; clipMouse.y = _local5; if (_local2.name() != "move"){ dispatchEvent(new EventMousePlay(EVENT_ADDITIONAL, _local4, _local5, _local2.name(), _local2)); }; iXml++; } else { --_local3; _local2.@k = _local3; }; } public function captureAdditional(_arg1:XML):void{ addAction(_arg1); justMadeSpecial = true; } private function captureMove(_arg1:Event):void{ var _local2:XML = <move/> ; if (!justMadeSpecial){ addAction(_local2); }; justMadeSpecial = false; } private function addAction(_arg1:XML){ var _local3:Number; var _local2:Number = new Date().getTime(); _arg1.@x = root.mouseX; _arg1.@y = root.mouseY; if (((((((((lastNote) && ((lastNote.name() == "move")))) && ((_arg1.name() == "move")))) && ((lastNote.@x == _arg1.@x)))) && ((lastNote.@y == _arg1.@y)))){ _local3 = Number(lastNote.@k); if (isNaN(_local3)){ lastNote.@k = 1; } else { ++_local3; lastNote.@k = _local3; }; } else { lastNote = _arg1; xml.children()[iXml] = _arg1; iXml++; }; t = _local2; } } }//package
Section 289
//myBtnBig (myBtnBig) package { import TheGame.GameTemplate.*; public dynamic class myBtnBig extends MyBtn { } }//package
Section 290
//myBtnBigcopy (myBtnBigcopy) package { import TheGame.GameTemplate.*; public dynamic class myBtnBigcopy extends MyBtn { } }//package
Section 291
//myBtnBigcopy2 (myBtnBigcopy2) package { import TheGame.GameTemplate.*; public dynamic class myBtnBigcopy2 extends MyBtn { } }//package
Section 292
//orange_bottom (orange_bottom) package { import flash.display.*; public dynamic class orange_bottom extends SimpleButton { } }//package
Section 293
//pBall (pBall) package { import TheGame.MyPhysics.*; public dynamic class pBall extends PhysicsMovie { } }//package
Section 294
//pBall2 (pBall2) package { import TheGame.MyPhysics.*; public dynamic class pBall2 extends PhysicsMovie { } }//package
Section 295
//pBallSpin (pBallSpin) package { import TheGame.MyPhysics.*; public dynamic class pBallSpin extends PhysicsMovieSpin { } }//package
Section 296
//pBallSpin2 (pBallSpin2) package { import TheGame.MyPhysics.*; public dynamic class pBallSpin2 extends PhysicsMovieSpin { } }//package
Section 297
//pBloon1 (pBloon1) package { import TheGame.MyPhysics.*; public dynamic class pBloon1 extends PhysicsMovieBloon { } }//package
Section 298
//pBloon2 (pBloon2) package { import TheGame.MyPhysics.*; public dynamic class pBloon2 extends PhysicsMovieBloon { } }//package
Section 299
//pBoard (pBoard) package { import TheGame.MyPhysics.*; public dynamic class pBoard extends PhysicsMovie { } }//package
Section 300
//pBoard2 (pBoard2) package { import TheGame.MyPhysics.*; public dynamic class pBoard2 extends PhysicsMovie { } }//package
Section 301
//pBonusBox (pBonusBox) package { import TheGame.MyPhysics.*; public dynamic class pBonusBox extends PhysicsMovieBonus { } }//package
Section 302
//pBox1 (pBox1) package { import TheGame.MyPhysics.*; public dynamic class pBox1 extends PhysicsMovie { } }//package
Section 303
//pBox2 (pBox2) package { import TheGame.MyPhysics.*; public dynamic class pBox2 extends PhysicsMovie { } }//package
Section 304
//pBox3 (pBox3) package { import TheGame.MyPhysics.*; public dynamic class pBox3 extends PhysicsMovie { } }//package
Section 305
//pCane1 (pCane1) package { import TheGame.MyPhysics.*; public dynamic class pCane1 extends PhysicsMovie { } }//package
Section 306
//pCane2 (pCane2) package { import TheGame.MyPhysics.*; public dynamic class pCane2 extends PhysicsMovie { } }//package
Section 307
//pCane3 (pCane3) package { import TheGame.MyPhysics.*; public dynamic class pCane3 extends PhysicsMovie { } }//package
Section 308
//pEgg (pEgg) package { import TheGame.MyPhysics.*; public dynamic class pEgg extends PhysicsMovie { } }//package
Section 309
//pGround1 (pGround1) package { import TheGame.MyPhysics.*; public dynamic class pGround1 extends PhysicsMovie { } }//package
Section 310
//physCircle (physCircle) package { import TheGame.MyPhysics.*; public dynamic class physCircle extends Physics1Shape { } }//package
Section 311
//physOval (physOval) package { import TheGame.MyPhysics.*; public dynamic class physOval extends Physics1Shape { } }//package
Section 312
//physRect (physRect) package { import TheGame.MyPhysics.*; public dynamic class physRect extends Physics1Shape { } }//package
Section 313
//physTrapec1 (physTrapec1) package { import TheGame.MyPhysics.*; public dynamic class physTrapec1 extends PhysicsMovie { } }//package
Section 314
//physTrapecia (physTrapecia) package { import TheGame.MyPhysics.*; public dynamic class physTrapecia extends Physics1Shape { } }//package
Section 315
//pNoContact (pNoContact) package { import TheGame.MyPhysics.*; public dynamic class pNoContact extends PhysicsMovieNoContact { } }//package
Section 316
//pNoContactBig (pNoContactBig) package { import TheGame.MyPhysics.*; public dynamic class pNoContactBig extends PhysicsMovieNoContact { } }//package
Section 317
//pNoContactLittle (pNoContactLittle) package { import TheGame.MyPhysics.*; public dynamic class pNoContactLittle extends PhysicsMovieNoContact { } }//package
Section 318
//point1 (point1) package { import flash.display.*; public dynamic class point1 extends MovieClip { } }//package
Section 319
//pointer_for_menu_button (pointer_for_menu_button) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.net.*; import flash.text.*; import TheGame.*; import flash.media.*; import flash.ui.*; import flash.system.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.xml.*; import adobe.utils.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; public dynamic class pointer_for_menu_button extends PointerMenuBtn { public var __setPropDict:Dictionary; public function pointer_for_menu_button(){ __setPropDict = new Dictionary(true); super(); addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7); } function __setProp_play_btn_pointer_for_menu_button_(){ if ((((__setPropDict[play_btn] == undefined)) || (!((((int(__setPropDict[play_btn]) >= 1)) && ((int(__setPropDict[play_btn]) <= 7))))))){ __setPropDict[play_btn] = currentFrame; try { play_btn["componentInspectorSetting"] = true; } catch(e:Error) { }; play_btn.MinWidth = 180; play_btn.Text = "start"; try { play_btn["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp_highscores_btn_pointer_for_menu_button_(){ if ((((__setPropDict[highscores_btn] == undefined)) || (!((((int(__setPropDict[highscores_btn]) >= 1)) && ((int(__setPropDict[highscores_btn]) <= 7))))))){ __setPropDict[highscores_btn] = currentFrame; try { highscores_btn["componentInspectorSetting"] = true; } catch(e:Error) { }; highscores_btn.MinWidth = 180; highscores_btn.Text = "highscores"; try { highscores_btn["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp_more_games_btn_pointer_for_menu_button_(){ if ((((__setPropDict[more_games_btn] == undefined)) || (!((((int(__setPropDict[more_games_btn]) >= 1)) && ((int(__setPropDict[more_games_btn]) <= 7))))))){ __setPropDict[more_games_btn] = currentFrame; try { more_games_btn["componentInspectorSetting"] = true; } catch(e:Error) { }; more_games_btn.MinWidth = 180; more_games_btn.Text = "more games"; try { more_games_btn["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function __setProp_credits_btn_pointer_for_menu_button_(){ if ((((__setPropDict[credits_btn] == undefined)) || (!((((int(__setPropDict[credits_btn]) >= 1)) && ((int(__setPropDict[credits_btn]) <= 7))))))){ __setPropDict[credits_btn] = currentFrame; try { credits_btn["componentInspectorSetting"] = true; } catch(e:Error) { }; credits_btn.MinWidth = 180; credits_btn.Text = "credits"; try { credits_btn["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function frame1(){ __setProp_credits_btn_pointer_for_menu_button_(); __setProp_more_games_btn_pointer_for_menu_button_(); __setProp_highscores_btn_pointer_for_menu_button_(); __setProp_play_btn_pointer_for_menu_button_(); } function frame2(){ __setProp_credits_btn_pointer_for_menu_button_(); __setProp_more_games_btn_pointer_for_menu_button_(); __setProp_highscores_btn_pointer_for_menu_button_(); __setProp_play_btn_pointer_for_menu_button_(); } function frame3(){ __setProp_credits_btn_pointer_for_menu_button_(); __setProp_more_games_btn_pointer_for_menu_button_(); __setProp_highscores_btn_pointer_for_menu_button_(); __setProp_play_btn_pointer_for_menu_button_(); } function frame4(){ __setProp_credits_btn_pointer_for_menu_button_(); __setProp_more_games_btn_pointer_for_menu_button_(); __setProp_highscores_btn_pointer_for_menu_button_(); __setProp_play_btn_pointer_for_menu_button_(); } function frame5(){ __setProp_credits_btn_pointer_for_menu_button_(); __setProp_more_games_btn_pointer_for_menu_button_(); __setProp_highscores_btn_pointer_for_menu_button_(); __setProp_play_btn_pointer_for_menu_button_(); } function frame6(){ __setProp_credits_btn_pointer_for_menu_button_(); __setProp_more_games_btn_pointer_for_menu_button_(); __setProp_highscores_btn_pointer_for_menu_button_(); __setProp_play_btn_pointer_for_menu_button_(); } function frame7(){ __setProp_credits_btn_pointer_for_menu_button_(); __setProp_more_games_btn_pointer_for_menu_button_(); __setProp_highscores_btn_pointer_for_menu_button_(); __setProp_play_btn_pointer_for_menu_button_(); } } }//package
Section 320
//pOval (pOval) package { import TheGame.MyPhysics.*; public dynamic class pOval extends PhysicsMovie { } }//package
Section 321
//pOval2 (pOval2) package { import TheGame.MyPhysics.*; public dynamic class pOval2 extends PhysicsMovie { } }//package
Section 322
//pPlank (pPlank) package { import TheGame.MyPhysics.*; public dynamic class pPlank extends PhysicsMovie { } }//package
Section 323
//pPlatform1 (pPlatform1) package { import TheGame.MyPhysics.*; public dynamic class pPlatform1 extends PhysicsMovie { } }//package
Section 324
//pPlatform2 (pPlatform2) package { import TheGame.MyPhysics.*; public dynamic class pPlatform2 extends PhysicsMovie { } }//package
Section 325
//pPlatform3 (pPlatform3) package { import TheGame.MyPhysics.*; public dynamic class pPlatform3 extends PhysicsMovie { } }//package
Section 326
//pPuddle (pPuddle) package { import TheGame.MyPhysics.*; public dynamic class pPuddle extends PhysicsMovie { } }//package
Section 327
//pStone (pStone) package { import TheGame.MyPhysics.*; public dynamic class pStone extends PhysicsMovie { } }//package
Section 328
//Puff (Puff) package { import flash.display.*; public dynamic class Puff extends MovieClip { } }//package
Section 329
//pWater (pWater) package { import TheGame.MyPhysics.*; public dynamic class pWater extends PhysicsMovWater { } }//package
Section 330
//QualityButton_low (QualityButton_low) package { import TheGame.*; public dynamic class QualityButton_low extends QButton { } }//package
Section 331
//rollover_stripe (rollover_stripe) package { import flash.display.*; public dynamic class rollover_stripe extends MovieClip { } }//package
Section 332
//screenSelectGame (screenSelectGame) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.net.*; import flash.text.*; import TheGame.Screens.*; import flash.media.*; import flash.ui.*; import flash.system.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.xml.*; import adobe.utils.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; public dynamic class screenSelectGame extends SelectGame { public function screenSelectGame(){ __setProp_menu_btn_screenSelectGame_Button_0(); } function __setProp_menu_btn_screenSelectGame_Button_0(){ try { menu_btn["componentInspectorSetting"] = true; } catch(e:Error) { }; menu_btn.MinWidth = 0; menu_btn.Text = "menu"; try { menu_btn["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 333
//screenSubmit (screenSubmit) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.net.*; import flash.text.*; import TheGame.Screens.*; import flash.media.*; import flash.ui.*; import flash.system.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.xml.*; import adobe.utils.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; public dynamic class screenSubmit extends Submit { public function screenSubmit(){ __setProp_submit_btn__screenSubmit_(); __setProp_menu_btn__screenSubmit_(); __setProp_map_btn__screenSubmit_(); } function __setProp_submit_btn__screenSubmit_(){ try { submit_btn_["componentInspectorSetting"] = true; } catch(e:Error) { }; submit_btn_.MinWidth = 0; submit_btn_.Text = "submit record"; try { submit_btn_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_menu_btn__screenSubmit_(){ try { menu_btn_["componentInspectorSetting"] = true; } catch(e:Error) { }; menu_btn_.MinWidth = 0; menu_btn_.Text = "menu"; try { menu_btn_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_map_btn__screenSubmit_(){ try { map_btn_["componentInspectorSetting"] = true; } catch(e:Error) { }; map_btn_.MinWidth = 0; map_btn_.Text = "go to map"; try { map_btn_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 334
//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_disabledSkin extends MovieClip { } }//package
Section 335
//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_downSkin extends MovieClip { } }//package
Section 336
//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_overSkin extends MovieClip { } }//package
Section 337
//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_upSkin extends MovieClip { } }//package
Section 338
//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_disabledSkin extends MovieClip { } }//package
Section 339
//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_downSkin extends MovieClip { } }//package
Section 340
//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_overSkin extends MovieClip { } }//package
Section 341
//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_upSkin extends MovieClip { } }//package
Section 342
//ScrollBar_thumbIcon (ScrollBar_thumbIcon) package { import flash.display.*; public dynamic class ScrollBar_thumbIcon extends MovieClip { } }//package
Section 343
//ScrollThumb_downSkin (ScrollThumb_downSkin) package { import flash.display.*; public dynamic class ScrollThumb_downSkin extends MovieClip { } }//package
Section 344
//ScrollThumb_overSkin (ScrollThumb_overSkin) package { import flash.display.*; public dynamic class ScrollThumb_overSkin extends MovieClip { } }//package
Section 345
//ScrollThumb_upSkin (ScrollThumb_upSkin) package { import flash.display.*; public dynamic class ScrollThumb_upSkin extends MovieClip { } }//package
Section 346
//ScrollTrack_skin (ScrollTrack_skin) package { import flash.display.*; public dynamic class ScrollTrack_skin extends MovieClip { } }//package
Section 347
//sfxBell (sfxBell) package { import flash.media.*; public dynamic class sfxBell extends Sound { } }//package
Section 348
//sfxBounce (sfxBounce) package { import flash.media.*; public dynamic class sfxBounce extends Sound { } }//package
Section 349
//SndBonus (SndBonus) package { import flash.media.*; public dynamic class SndBonus extends Sound { } }//package
Section 350
//SndNoContact (SndNoContact) package { import flash.media.*; public dynamic class SndNoContact extends Sound { } }//package
Section 351
//SndWater (SndWater) package { import flash.media.*; public dynamic class SndWater extends Sound { } }//package
Section 352
//spirit_flying_clip (spirit_flying_clip) package { import flash.display.*; public dynamic class spirit_flying_clip extends MovieClip { public function spirit_flying_clip(){ addFrameScript(74, frame75); } function frame75(){ stop(); } } }//package
Section 353
//spirit_sticking_clip (spirit_sticking_clip) package { import flash.display.*; public dynamic class spirit_sticking_clip extends MovieClip { public function spirit_sticking_clip(){ addFrameScript(74, frame75); } function frame75(){ stop(); } } }//package
Section 354
//spirit_usual_clip (spirit_usual_clip) package { import flash.display.*; public dynamic class spirit_usual_clip extends MovieClip { public function spirit_usual_clip(){ addFrameScript(74, frame75); } function frame75(){ stop(); } } }//package
Section 355
//spirit_water_clip (spirit_water_clip) package { import flash.display.*; public dynamic class spirit_water_clip extends MovieClip { public function spirit_water_clip(){ addFrameScript(74, frame75); } function frame75(){ stop(); } } }//package
Section 356
//sponsor_logo (sponsor_logo) package { import TheGame.*; public dynamic class sponsor_logo extends ButtonFunflow { } }//package
Section 357
//sponsor_logo_hood (sponsor_logo_hood) package { import TheGame.*; public dynamic class sponsor_logo_hood extends ButtonFunflow { } }//package
Section 358
//sponsor_logo_mathdaily (sponsor_logo_mathdaily) package { import TheGame.*; public dynamic class sponsor_logo_mathdaily extends ButtonFunflow { public function sponsor_logo_mathdaily(){ addFrameScript(0, frame1); } function frame1(){ this.buttonMode = true; } } }//package
Section 359
//sponsor_logo_mathdaily_big (sponsor_logo_mathdaily_big) package { import TheGame.*; public dynamic class sponsor_logo_mathdaily_big extends ButtonFunflow { } }//package
Section 360
//sponsor_logo_mathdaily_small (sponsor_logo_mathdaily_small) package { import TheGame.*; public dynamic class sponsor_logo_mathdaily_small extends ButtonFunflow { public function sponsor_logo_mathdaily_small(){ addFrameScript(0, frame1); } function frame1(){ this.buttonMode = true; } } }//package
Section 361
//startVoltClip (startVoltClip) package { import flash.display.*; public dynamic class startVoltClip extends MovieClip { public function startVoltClip(){ addFrameScript(57, frame58); } function frame58(){ gotoAndPlay(1); } } }//package
Section 362
//startVoltClip2 (startVoltClip2) package { import flash.display.*; public dynamic class startVoltClip2 extends MovieClip { public function startVoltClip2(){ addFrameScript(30, frame31); } function frame31(){ gotoAndPlay(1); } } }//package
Section 363
//Symbol1Bloon (Symbol1Bloon) package { import flash.display.*; public dynamic class Symbol1Bloon extends MovieClip { } }//package
Section 364
//TextInput_disabledSkin (TextInput_disabledSkin) package { import flash.display.*; public dynamic class TextInput_disabledSkin extends MovieClip { } }//package
Section 365
//TextInput_upSkin (TextInput_upSkin) package { import flash.display.*; public dynamic class TextInput_upSkin extends MovieClip { } }//package
Section 366
//twotower_mc (twotower_mc) package { import TheGame.*; public dynamic class twotower_mc extends ScreenSponsorSplash { } }//package
Section 367
//ver_funflow (ver_funflow) package { import TheGame.*; public dynamic class ver_funflow extends ButtonFunflow { } }//package
Section 368
//volt_in1 (volt_in1) package { import flash.display.*; public dynamic class volt_in1 extends MovieClip { public var in_mc:MovieClip; } }//package
Section 369
//volt_in1_adding (volt_in1_adding) package { import flash.display.*; public dynamic class volt_in1_adding extends MovieClip { } }//package
Section 370
//volt_in1_glad (volt_in1_glad) package { import flash.display.*; public dynamic class volt_in1_glad extends MovieClip { } }//package
Section 371
//volt_in1_sad (volt_in1_sad) package { import flash.display.*; public dynamic class volt_in1_sad extends MovieClip { } }//package
Section 372
//volt_in1_usual (volt_in1_usual) package { import flash.display.*; public dynamic class volt_in1_usual extends MovieClip { } }//package
Section 373
//volt_in2 (volt_in2) package { import flash.display.*; public dynamic class volt_in2 extends MovieClip { public var in_mc:MovieClip; } }//package
Section 374
//volt_in2_adding (volt_in2_adding) package { import flash.display.*; public dynamic class volt_in2_adding extends MovieClip { } }//package
Section 375
//volt_in2_glad (volt_in2_glad) package { import flash.display.*; public dynamic class volt_in2_glad extends MovieClip { } }//package
Section 376
//volt_in2_sad (volt_in2_sad) package { import flash.display.*; public dynamic class volt_in2_sad extends MovieClip { } }//package
Section 377
//volt_in2_usual (volt_in2_usual) package { import flash.display.*; public dynamic class volt_in2_usual extends MovieClip { } }//package
Section 378
//volt_in3 (volt_in3) package { import flash.display.*; public dynamic class volt_in3 extends MovieClip { public var in_mc:MovieClip; } }//package
Section 379
//volt_in3_adding (volt_in3_adding) package { import flash.display.*; public dynamic class volt_in3_adding extends MovieClip { } }//package
Section 380
//volt_in3_glad (volt_in3_glad) package { import flash.display.*; public dynamic class volt_in3_glad extends MovieClip { } }//package
Section 381
//volt_in3_sad (volt_in3_sad) package { import flash.display.*; public dynamic class volt_in3_sad extends MovieClip { } }//package
Section 382
//volt_in3_usual (volt_in3_usual) package { import flash.display.*; public dynamic class volt_in3_usual extends MovieClip { } }//package
Section 383
//volt_in4 (volt_in4) package { import flash.display.*; public dynamic class volt_in4 extends MovieClip { public var in_mc:MovieClip; } }//package
Section 384
//volt_in4_adding (volt_in4_adding) package { import flash.display.*; public dynamic class volt_in4_adding extends MovieClip { } }//package
Section 385
//volt_in4_glad (volt_in4_glad) package { import flash.display.*; public dynamic class volt_in4_glad extends MovieClip { } }//package
Section 386
//volt_in4_sad (volt_in4_sad) package { import flash.display.*; public dynamic class volt_in4_sad extends MovieClip { } }//package
Section 387
//volt_in4_usual (volt_in4_usual) package { import flash.display.*; public dynamic class volt_in4_usual extends MovieClip { } }//package
Section 388
//volt1 (volt1) package { import TheGame.*; public dynamic class volt1 extends Volt { } }//package
Section 389
//volt2 (volt2) package { import TheGame.*; public dynamic class volt2 extends VoltFlying { } }//package
Section 390
//volt3 (volt3) package { import TheGame.*; public dynamic class volt3 extends Volt { } }//package
Section 391
//volt4 (volt4) package { import TheGame.*; public dynamic class volt4 extends Volt { } }//package
Section 392
//voltMode (voltMode) package { import TheGame.*; public dynamic class voltMode extends VoltModeBtn { } }//package
Section 393
//wat_mc (wat_mc) package { import flash.display.*; public dynamic class wat_mc extends MovieClip { } }//package
Section 394
//WaterHolderB (WaterHolderB) package { import flash.display.*; import com.midasplayer.extras.*; public dynamic class WaterHolderB extends MovieClip { public var BLUE:Water; } }//package
Section 395
//WaterHolderG (WaterHolderG) package { import flash.display.*; import com.midasplayer.extras.*; public dynamic class WaterHolderG extends MovieClip { public var GREEN:Water; } }//package
Section 396
//WaterHolderR (WaterHolderR) package { import flash.display.*; import com.midasplayer.extras.*; public dynamic class WaterHolderR extends MovieClip { public var RED:Water; } }//package
Section 397
//windowInGame (windowInGame) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.net.*; import flash.text.*; import TheGame.GameTemplate.*; import flash.media.*; import flash.ui.*; import flash.system.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.xml.*; import adobe.utils.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; public dynamic class windowInGame extends PopupWindow { public function windowInGame(){ __setProp_next2_btn__windowInGame_(); __setProp_more_games_btn__windowInGame_(); __setProp_walkthrough_btn__windowInGame_(); __setProp_play_on_f_btn__windowInGame_Layer9_0(); __setProp_again_btn__windowInGame_Layer9_0(); } function __setProp_next2_btn__windowInGame_(){ try { next2_btn_["componentInspectorSetting"] = true; } catch(e:Error) { }; next2_btn_.MinWidth = 0; next2_btn_.Text = "next"; try { next2_btn_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_more_games_btn__windowInGame_(){ try { more_games_btn_["componentInspectorSetting"] = true; } catch(e:Error) { }; more_games_btn_.MinWidth = 0; more_games_btn_.Text = "more games"; try { more_games_btn_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_walkthrough_btn__windowInGame_(){ try { walkthrough_btn_["componentInspectorSetting"] = true; } catch(e:Error) { }; walkthrough_btn_.MinWidth = 0; walkthrough_btn_.Text = "walkthrough"; try { walkthrough_btn_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_play_on_f_btn__windowInGame_Layer9_0(){ try { play_on_f_btn_["componentInspectorSetting"] = true; } catch(e:Error) { }; play_on_f_btn_.MinWidth = 0; play_on_f_btn_.Text = "share on iii"; try { play_on_f_btn_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_again_btn__windowInGame_Layer9_0(){ try { again_btn_["componentInspectorSetting"] = true; } catch(e:Error) { }; again_btn_.MinWidth = 0; again_btn_.Text = "replay"; try { again_btn_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 398
//winTtgLogin (winTtgLogin) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.net.*; import flash.text.*; import TheGame.*; import flash.media.*; import flash.ui.*; import flash.system.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.xml.*; import adobe.utils.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; public dynamic class winTtgLogin extends WinTtgLogin { public function winTtgLogin(){ __setProp_cancel_btn__win_ttg_login_(); __setProp_login_btn__win_ttg_login_(); } function __setProp_cancel_btn__win_ttg_login_(){ try { cancel_btn_["componentInspectorSetting"] = true; } catch(e:Error) { }; cancel_btn_.MinWidth = 0; cancel_btn_.Text = "cancel"; try { cancel_btn_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_login_btn__win_ttg_login_(){ try { login_btn_["componentInspectorSetting"] = true; } catch(e:Error) { }; login_btn_.MinWidth = 0; login_btn_.Text = "login"; try { login_btn_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 399
//workZone (workZone) package { import TheGame.*; public dynamic class workZone extends WorkZone { } }//package
Section 400
//workZonePlat (workZonePlat) package { import flash.display.*; public dynamic class workZonePlat extends MovieClip { } }//package
Section 401
//Глаза1 (Глаза1) package { import TheGame.*; public dynamic class Глаза1 extends AnimForButtonLevel { } }//package
Section 402
//Глаза3 (Глаза3) package { import TheGame.*; public dynamic class Глаза3 extends AnimForButtonLevel { } }//package

Library Items

Symbol 1 Font {Font1}Used by:520 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1313
Symbol 2 Sound {sfxBounce}
Symbol 3 Sound {sfxBell}
Symbol 4 GraphicUsed by:148
Symbol 5 GraphicUsed by:6 628
Symbol 6 MovieClipUses:5Used by:148 784 881 1069  Timeline
Symbol 7 GraphicUsed by:8 632 1322
Symbol 8 MovieClipUses:7Used by:148 650 784 881 1069  Timeline
Symbol 9 GraphicUsed by:10 633 1323
Symbol 10 MovieClipUses:9Used by:148 650 784 881 1069  Timeline
Symbol 11 GraphicUsed by:12 634 1324
Symbol 12 MovieClipUses:11Used by:148 650 784 881 1069  Timeline
Symbol 13 GraphicUsed by:14
Symbol 14 MovieClipUses:13Used by:148 784 1069
Symbol 15 GraphicUsed by:16 629
Symbol 16 MovieClipUses:15Used by:21
Symbol 17 GraphicUsed by:18 630
Symbol 18 MovieClipUses:17Used by:21
Symbol 19 GraphicUsed by:21 631
Symbol 20 GraphicUsed by:21 511 631 907 1320
Symbol 21 MovieClipUses:16 18 19 20Used by:148 650 784 881 1069  Timeline
Symbol 22 FontUsed by:23 145 523 612 613 826 827 828 829 836 845 846 847 864 879 942 960 961 1067 1118 1343 1347 1357 1371
Symbol 23 TextUses:22Used by:24
Symbol 24 MovieClipUses:23Used by:148 784
Symbol 25 GraphicUsed by:26
Symbol 26 MovieClipUses:25Used by:27
Symbol 27 MovieClipUses:26Used by:30
Symbol 28 GraphicUsed by:29
Symbol 29 MovieClipUses:28Used by:30
Symbol 30 MovieClipUses:27 29Used by:148 784
Symbol 31 BitmapUsed by:32
Symbol 32 GraphicUses:31Used by:39
Symbol 33 BitmapUsed by:34
Symbol 34 GraphicUses:33Used by:39
Symbol 35 BitmapUsed by:36
Symbol 36 GraphicUses:35Used by:39
Symbol 37 BitmapUsed by:38
Symbol 38 GraphicUses:37Used by:39
Symbol 39 MovieClipUses:32 34 36 38Used by:131 519 868 878
Symbol 40 GraphicUsed by:41
Symbol 41 MovieClipUses:40Used by:131 519 868
Symbol 42 BitmapUsed by:43
Symbol 43 GraphicUses:42Used by:44
Symbol 44 MovieClipUses:43Used by:45
Symbol 45 MovieClipUses:44Used by:131 519 868
Symbol 46 GraphicUsed by:47
Symbol 47 MovieClipUses:46Used by:50
Symbol 48 GraphicUsed by:49
Symbol 49 MovieClipUses:48Used by:50
Symbol 50 MovieClipUses:47 49Used by:131 519 868
Symbol 51 GraphicUsed by:67 565 732 735 737 739 1376
Symbol 52 GraphicUsed by:67 565 732 735 737 739 1376
Symbol 53 GraphicUsed by:67 565 732 735 737 739 1376
Symbol 54 GraphicUsed by:67
Symbol 55 GraphicUsed by:67 565 732 735 737 739 773 1122 1376
Symbol 56 GraphicUsed by:67 565 732 735 737 739 1376
Symbol 57 GraphicUsed by:67 565 732 735 737 739 1376 1377
Symbol 58 GraphicUsed by:67 565 732 735 737 739 1376
Symbol 59 GraphicUsed by:67 565 732 735 737 739 1376
Symbol 60 GraphicUsed by:64 564 729 1375
Symbol 61 GraphicUsed by:64 564 729 1375
Symbol 62 GraphicUsed by:64 564 729 1375
Symbol 63 GraphicUsed by:64 564 729 731 1375
Symbol 64 MovieClipUses:60 61 62 63Used by:67
Symbol 65 GraphicUsed by:67 732 735 737
Symbol 66 GraphicUsed by:67 565 732 735 737 739 773 1376
Symbol 67 MovieClipUses:51 52 53 54 55 56 57 58 59 64 65 66Used by:131 519 868
Symbol 68 GraphicUsed by:69
Symbol 69 MovieClipUses:68Used by:89
Symbol 70 GraphicUsed by:83 556 682 686 688 690 774 941 945 948 1336
Symbol 71 GraphicUsed by:83 556 682 686 688 690 774 941 945 948 1336
Symbol 72 GraphicUsed by:83 556 682 686 688 690 941 945 948 1336
Symbol 73 GraphicUsed by:83 556 682 686 688 690 941 945 948 1336
Symbol 74 GraphicUsed by:83 556 682 686 688 690 941 945 948 1336
Symbol 75 GraphicUsed by:83
Symbol 76 GraphicUsed by:80 555 677 1335
Symbol 77 GraphicUsed by:80 555 677 1335
Symbol 78 GraphicUsed by:80 555 677 1335
Symbol 79 GraphicUsed by:80 555 677 1335
Symbol 80 MovieClipUses:76 77 78 79Used by:83
Symbol 81 GraphicUsed by:83
Symbol 82 GraphicUsed by:83 556 682 686 688 690 774 941 945 948 1336
Symbol 83 MovieClipUses:70 71 72 73 74 75 80 81 82Used by:89
Symbol 84 GraphicUsed by:86
Symbol 85 GraphicUsed by:86
Symbol 86 MovieClipUses:84 85Used by:89
Symbol 87 GraphicUsed by:89 556 682 686 688 690 771 772 773 774 941 945 948 1336
Symbol 88 GraphicUsed by:89 556 682 686 688 690 771 772 773 774 941 945 948 1336
Symbol 89 MovieClipUses:69 83 86 87 88Used by:131 519 868
Symbol 90 GraphicUsed by:108
Symbol 91 GraphicUsed by:108
Symbol 92 GraphicUsed by:108 562 719 722 724 726 772 1354
Symbol 93 GraphicUsed by:108 562 719 722 724 726 772 1354
Symbol 94 GraphicUsed by:108 562 719 722 724 726 1354
Symbol 95 GraphicUsed by:108 562 719 722 724 726 1354
Symbol 96 GraphicUsed by:100 559 710 1351
Symbol 97 GraphicUsed by:100 559 710 1351
Symbol 98 GraphicUsed by:100 559 710 1351
Symbol 99 GraphicUsed by:100 559 710 1351
Symbol 100 MovieClipUses:96 97 98 99Used by:108
Symbol 101 GraphicUsed by:105 561 713 1353
Symbol 102 GraphicUsed by:105
Symbol 103 GraphicUsed by:105 561 713 1353
Symbol 104 GraphicUsed by:105 561 1353
Symbol 105 MovieClipUses:101 102 103 104Used by:108
Symbol 106 GraphicUsed by:108 719 722 724
Symbol 107 GraphicUsed by:108 562 719 722 724 726 772 1354
Symbol 108 MovieClipUses:90 91 92 93 94 95 100 105 106 107Used by:131 519 868
Symbol 109 GraphicUsed by:130 570 747 750 752 754 771 1364
Symbol 110 GraphicUsed by:130 570 747 750 752 754 771 1364
Symbol 111 GraphicUsed by:130 570 747 750 752 754 1364
Symbol 112 GraphicUsed by:130 549 570 747 750 752 754 1364
Symbol 113 GraphicUsed by:130 549 570 747 750 752 754 1364
Symbol 114 GraphicUsed by:130 570 747 750 752 754 771 1364
Symbol 115 GraphicUsed by:130 747 750 752
Symbol 116 GraphicUsed by:130 570 747 750 752 754 1364
Symbol 117 GraphicUsed by:130 549 570 747 750 752 754 771 1364
Symbol 118 GraphicUsed by:122 542 567 742 1362
Symbol 119 GraphicUsed by:122 542 567 742 1362
Symbol 120 GraphicUsed by:122 542 567 742 1362
Symbol 121 GraphicUsed by:122 542 567 742 745 1362
Symbol 122 MovieClipUses:118 119 120 121Used by:130
Symbol 123 GraphicUsed by:127 543 569 743 1363
Symbol 124 GraphicUsed by:127 543 569 743 1363
Symbol 125 GraphicUsed by:127 543 743 1363
Symbol 126 GraphicUsed by:127 543 569 743 746 1363
Symbol 127 MovieClipUses:123 124 125 126Used by:130
Symbol 128 GraphicUsed by:130 549 570 747 750 752 754 771 1364
Symbol 129 GraphicUsed by:130 549 570 747 750 752 754 771 1364
Symbol 130 MovieClipUses:109 110 111 112 113 114 115 116 117 122 127 128 129Used by:131 519 868
Symbol 131 MovieClipUses:39 41 45 50 67 89 108 130Used by:148 784 1069
Symbol 132 FontUsed by:133 233 298 301 524 611 640 643 646 648 776 777 778 779 780 781 854 1068 1342 1344 1356 1370
Symbol 133 TextUses:132Used by:148
Symbol 134 GraphicUsed by:135
Symbol 135 MovieClipUses:134Used by:148 784
Symbol 136 GraphicUsed by:137
Symbol 137 MovieClipUses:136Used by:148 784
Symbol 138 GraphicUsed by:139 785
Symbol 139 MovieClipUses:138Used by:148 573 784 1043 1069
Symbol 140 GraphicUsed by:141
Symbol 141 MovieClipUses:140Used by:147 616 880
Symbol 142 GraphicUsed by:143
Symbol 143 MovieClipUses:142Used by:144
Symbol 144 MovieClipUses:143Used by:147 616 880
Symbol 145 EditableTextUses:22 1066Used by:147
Symbol 146 MovieClipUsed by:147 573 616 880 1072 1076
Symbol 147 MovieClip {myBtnBig}Uses:141 144 145 146Used by:148 617 784 866 878 881 1043 1069 1379 1408  Timeline
Symbol 148 MovieClip {winTtgLogin}Uses:4 6 8 10 12 14 21 24 30 131 133 135 137 139 147
Symbol 149 GraphicUsed by:200
Symbol 150 GraphicUsed by:155
Symbol 151 GraphicUsed by:155
Symbol 152 BitmapUsed by:153
Symbol 153 GraphicUses:152Used by:154
Symbol 154 MovieClipUses:153Used by:155
Symbol 155 MovieClip {VoltConnectarmorgames_fla.flag_641}Uses:150 151 154Used by:158
Symbol 156 BitmapUsed by:157
Symbol 157 GraphicUses:156Used by:158
Symbol 158 MovieClipUses:155 157Used by:197
Symbol 159 SoundUsed by:197
Symbol 160 GraphicUsed by:197
Symbol 161 GraphicUsed by:162
Symbol 162 MovieClipUses:161Used by:197
Symbol 163 ShapeTweeningUsed by:184
Symbol 164 ShapeTweeningUsed by:184
Symbol 165 ShapeTweeningUsed by:184
Symbol 166 GraphicUsed by:184
Symbol 167 GraphicUsed by:184
Symbol 168 ShapeTweeningUsed by:184
Symbol 169 ShapeTweeningUsed by:184
Symbol 170 ShapeTweeningUsed by:184
Symbol 171 ShapeTweeningUsed by:184
Symbol 172 ShapeTweeningUsed by:184
Symbol 173 ShapeTweeningUsed by:184
Symbol 174 ShapeTweeningUsed by:184
Symbol 175 GraphicUsed by:184
Symbol 176 ShapeTweeningUsed by:184
Symbol 177 ShapeTweeningUsed by:184
Symbol 178 ShapeTweeningUsed by:184
Symbol 179 ShapeTweeningUsed by:184
Symbol 180 ShapeTweeningUsed by:184
Symbol 181 ShapeTweeningUsed by:184
Symbol 182 ShapeTweeningUsed by:184
Symbol 183 GraphicUsed by:184
Symbol 184 MovieClip {Puff}Uses:163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183Used by:185
Symbol 185 MovieClipUses:184Used by:186
Symbol 186 MovieClipUses:185Used by:197
Symbol 187 BitmapUsed by:188
Symbol 188 GraphicUses:187Used by:189 197
Symbol 189 MovieClipUses:188Used by:197
Symbol 190 GraphicUsed by:191
Symbol 191 MovieClipUses:190Used by:197
Symbol 192 GraphicUsed by:197
Symbol 193 GraphicUsed by:197
Symbol 194 GraphicUsed by:195
Symbol 195 MovieClipUses:194Used by:197
Symbol 196 GraphicUsed by:197
Symbol 197 MovieClip {VoltConnectarmorgames_fla.splash_639}Uses:158 159 160 162 186 189 191 188 192 193 195 196Used by:200
Symbol 198 GraphicUsed by:199
Symbol 199 ButtonUses:198Used by:200
Symbol 200 MovieClip {twotower_mc}Uses:149 197 199
Symbol 201 BitmapUsed by:202 203
Symbol 202 GraphicUses:201Used by:204
Symbol 203 GraphicUses:201Used by:204
Symbol 204 MovieClip {sponsor_logo}Uses:202 203
Symbol 205 BitmapUsed by:206 207
Symbol 206 GraphicUses:205Used by:208
Symbol 207 GraphicUses:205Used by:208
Symbol 208 MovieClip {sponsor_logo_hood}Uses:206 207
Symbol 209 BitmapUsed by:210
Symbol 210 GraphicUses:209Used by:213
Symbol 211 BitmapUsed by:212
Symbol 212 GraphicUses:211Used by:213
Symbol 213 MovieClip {hor_funflow_3}Uses:210 212
Symbol 214 GraphicUsed by:232 585 1400
Symbol 215 GraphicUsed by:231
Symbol 216 GraphicUsed by:231
Symbol 217 GraphicUsed by:231
Symbol 218 SoundUsed by:231
Symbol 219 SoundUsed by:231
Symbol 220 GraphicUsed by:231
Symbol 221 GraphicUsed by:222
Symbol 222 MovieClipUses:221Used by:231
Symbol 223 SoundUsed by:231
Symbol 224 SoundUsed by:231
Symbol 225 SoundUsed by:231
Symbol 226 SoundUsed by:231
Symbol 227 GraphicUsed by:228
Symbol 228 MovieClipUses:227Used by:231
Symbol 229 SoundUsed by:231
Symbol 230 SoundUsed by:231
Symbol 231 MovieClip {VoltConnectarmorgames_fla.ag_intro_mc_631}Uses:215 216 217 218 219 220 222 223 224 225 226 228 229 230Used by:232
Symbol 232 MovieClip {armorgames_intro}Uses:214 231
Symbol 233 TextUses:132Used by:234
Symbol 234 MovieClip {Help8}Uses:233
Symbol 235 GraphicUsed by:236
Symbol 236 MovieClip {mcWaterRing}Uses:235
Symbol 237 BitmapUsed by:238
Symbol 238 GraphicUses:237Used by:239
Symbol 239 MovieClip {mcPlay}Uses:238
Symbol 240 BitmapUsed by:241
Symbol 241 GraphicUses:240Used by:242
Symbol 242 MovieClip {mcOtherGames}Uses:241
Symbol 243 GraphicUsed by:244
Symbol 244 MovieClip {mcLogoMask}Uses:243
Symbol 245 GraphicUsed by:246
Symbol 246 MovieClipUses:245Used by:247
Symbol 247 MovieClip {mcLogoHolder}Uses:246
Symbol 248 GraphicUsed by:249
Symbol 249 MovieClip {mcFerryLine}Uses:248
Symbol 250 GraphicUsed by:251
Symbol 251 MovieClip {mcCrownMask}Uses:250
Symbol 252 GraphicUsed by:253
Symbol 253 MovieClipUses:252Used by:256
Symbol 254 FontUsed by:255
Symbol 255 EditableTextUses:254Used by:256
Symbol 256 MovieClip {mcBannedSign}Uses:253 255
Symbol 257 GraphicUsed by:258
Symbol 258 MovieClipUses:257Used by:263 268 273
Symbol 259 BitmapUsed by:260
Symbol 260 GraphicUses:259Used by:263
Symbol 261 BitmapUsed by:262
Symbol 262 GraphicUses:261Used by:263
Symbol 263 MovieClip {ferryRed}Uses:258 260 262
Symbol 264 BitmapUsed by:265
Symbol 265 GraphicUses:264Used by:268
Symbol 266 BitmapUsed by:267
Symbol 267 GraphicUses:266Used by:268
Symbol 268 MovieClip {ferryGreen}Uses:258 265 267
Symbol 269 BitmapUsed by:270
Symbol 270 GraphicUses:269Used by:273
Symbol 271 BitmapUsed by:272
Symbol 272 GraphicUses:271Used by:273
Symbol 273 MovieClip {ferryBlue}Uses:258 270 272
Symbol 274 MovieClip {com.midasplayer.extras.WaterLine}
Symbol 275 MovieClip {com.midasplayer.extras.Water}Used by:276 277 278
Symbol 276 MovieClip {WaterHolderR}Uses:275
Symbol 277 MovieClip {WaterHolderG}Uses:275
Symbol 278 MovieClip {WaterHolderB}Uses:275
Symbol 279 GraphicUsed by:280
Symbol 280 Button {orange_bottom}Uses:279
Symbol 281 GraphicUsed by:282
Symbol 282 Button {blue_top}Uses:281
Symbol 283 BitmapUsed by:284
Symbol 284 GraphicUses:283Used by:287
Symbol 285 BitmapUsed by:286
Symbol 286 GraphicUses:285Used by:287
Symbol 287 MovieClip {sponsor_logo_mathdaily_big}Uses:284 286Used by:1069
Symbol 288 BitmapUsed by:289
Symbol 289 GraphicUses:288Used by:292
Symbol 290 BitmapUsed by:291
Symbol 291 GraphicUses:290Used by:292
Symbol 292 MovieClip {sponsor_logo_mathdaily}Uses:289 291Used by:878
Symbol 293 BitmapUsed by:294
Symbol 294 GraphicUses:293Used by:297
Symbol 295 BitmapUsed by:296
Symbol 296 GraphicUses:295Used by:297
Symbol 297 MovieClip {sponsor_logo_mathdaily_small}Uses:294 296Used by:866
Symbol 298 TextUses:132Used by:300
Symbol 299 GraphicUsed by:300
Symbol 300 MovieClip {Help7}Uses:298 299Used by:650
Symbol 301 TextUses:132Used by:303
Symbol 302 GraphicUsed by:303
Symbol 303 MovieClip {Help6}Uses:301 302Used by:650
Symbol 304 GraphicUsed by:306
Symbol 305 GraphicUsed by:306
Symbol 306 Button {clsBTNINV}Uses:304 305Used by:335
Symbol 307 GraphicUsed by:335
Symbol 308 FontUsed by:309 314 317 319 322 520 1313
Symbol 309 EditableTextUses:308Used by:335
Symbol 310 FontUsed by:311 312 520 1313
Symbol 311 EditableTextUses:310Used by:335
Symbol 312 EditableTextUses:310Used by:335
Symbol 313 GraphicUsed by:315
Symbol 314 TextUses:308Used by:315
Symbol 315 MovieClip {clsCLOSE}Uses:313 314Used by:335
Symbol 316 GraphicUsed by:318 320
Symbol 317 TextUses:308Used by:318
Symbol 318 MovieClip {clsTRYAGAIN}Uses:316 317Used by:335
Symbol 319 TextUses:308Used by:320
Symbol 320 MovieClip {clsSUBMIT}Uses:316 319Used by:335
Symbol 321 GraphicUsed by:324
Symbol 322 TextUses:308Used by:324
Symbol 323 GraphicUsed by:324
Symbol 324 MovieClip {clsHI}Uses:321 322 323Used by:335
Symbol 325 GraphicUsed by:326
Symbol 326 MovieClipUses:325Used by:334
Symbol 327 MovieClip {fl.core.ComponentShim}Used by:334 504 1225 1244 1271 1272 1273
Symbol 328 GraphicUsed by:329
Symbol 329 MovieClip {TextInput_disabledSkin}Uses:328Used by:334
Symbol 330 GraphicUsed by:331
Symbol 331 MovieClip {TextInput_upSkin}Uses:330Used by:334
Symbol 332 GraphicUsed by:333
Symbol 333 MovieClip {focusRectSkin}Uses:332Used by:334
Symbol 334 MovieClip {fl.controls.TextInput}Uses:326 327 329 331 333Used by:335
Symbol 335 MovieClip {clsSUBMITWINDOW}Uses:306 307 309 311 312 315 318 320 324 334Used by:336
Symbol 336 MovieClip {HoodaScore30}Uses:335
Symbol 337 GraphicUsed by:Timeline
Symbol 338 GraphicUsed by:Timeline
Symbol 339 GraphicUsed by:382 397 426 434 437 464 473 476 480 483 486 490 503
Symbol 340 GraphicUsed by:341
Symbol 341 MovieClipUses:340Used by:382
Symbol 342 FontUsed by:343 345 347 349 351 353 355 357 359 362 364 366 367 368 385 387 389 391 393 395 399 400 403 408 410 412 414 424 428 429 431 433 436 439 440 442 444 445 447 450 455 459 462 465 466 468 470 474 475 478 479 484 485 488 489 493 496 497 499 502 520 756 760 1297 1298 1299 1301 1302 1303 1305 1306 1307 1309 1310 1311 1313
Symbol 343 TextUses:342Used by:344
Symbol 344 MovieClipUses:343Used by:361
Symbol 345 TextUses:342Used by:346
Symbol 346 MovieClipUses:345Used by:361
Symbol 347 TextUses:342Used by:348
Symbol 348 MovieClipUses:347Used by:361
Symbol 349 TextUses:342Used by:350
Symbol 350 MovieClipUses:349Used by:361
Symbol 351 TextUses:342Used by:352
Symbol 352 MovieClipUses:351Used by:361
Symbol 353 TextUses:342Used by:354
Symbol 354 MovieClipUses:353Used by:361
Symbol 355 TextUses:342Used by:356
Symbol 356 MovieClipUses:355Used by:361
Symbol 357 TextUses:342Used by:358
Symbol 358 MovieClipUses:357Used by:361
Symbol 359 TextUses:342Used by:360
Symbol 360 MovieClipUses:359Used by:361
Symbol 361 MovieClipUses:344 346 348 350 352 354 356 358 360Used by:382 483
Symbol 362 TextUses:342Used by:363
Symbol 363 MovieClipUses:362Used by:382 483
Symbol 364 TextUses:342Used by:365
Symbol 365 MovieClipUses:364Used by:382 483
Symbol 366 EditableTextUses:342Used by:372
Symbol 367 EditableTextUses:342Used by:372
Symbol 368 EditableTextUses:342Used by:372
Symbol 369 GraphicUsed by:370
Symbol 370 MovieClipUses:369Used by:371
Symbol 371 MovieClipUses:370Used by:372
Symbol 372 MovieClipUses:366 367 368 371Used by:382 483
Symbol 373 GraphicUsed by:375
Symbol 374 GraphicUsed by:375
Symbol 375 ButtonUses:373 374Used by:382 397 426 434 437 464 473 476 480 483 486 490 503
Symbol 376 GraphicUsed by:378
Symbol 377 GraphicUsed by:378
Symbol 378 ButtonUses:376 377Used by:382 483
Symbol 379 GraphicUsed by:381
Symbol 380 GraphicUsed by:381
Symbol 381 ButtonUses:379 380Used by:382 483
Symbol 382 MovieClip {com.novelgames.flashgames.highscores.Table}Uses:339 341 361 363 365 372 375 378 381Used by:504
Symbol 383 GraphicUsed by:384 491
Symbol 384 MovieClipUses:383Used by:397 426 434 437 464 473 476 480 486 490
Symbol 385 TextUses:342Used by:386
Symbol 386 MovieClipUses:385Used by:397
Symbol 387 TextUses:342Used by:388
Symbol 388 MovieClipUses:387Used by:397
Symbol 389 TextUses:342Used by:390
Symbol 390 MovieClipUses:389Used by:397
Symbol 391 TextUses:342Used by:392
Symbol 392 MovieClipUses:391Used by:397 472
Symbol 393 TextUses:342Used by:394
Symbol 394 MovieClipUses:393Used by:397
Symbol 395 TextUses:342Used by:396
Symbol 396 MovieClipUses:395Used by:397
Symbol 397 MovieClip {com.novelgames.flashgames.highscores.Status}Uses:339 384 386 375 388 390 392 394 396Used by:504
Symbol 398 GraphicUsed by:426
Symbol 399 EditableTextUses:342Used by:426
Symbol 400 TextUses:342Used by:401
Symbol 401 ButtonUses:400Used by:426
Symbol 402 GraphicUsed by:406 495
Symbol 403 TextUses:342Used by:404
Symbol 404 MovieClipUses:403Used by:406
Symbol 405 GraphicUsed by:406 495
Symbol 406 ButtonUses:402 404 405Used by:426 434 437 473 476
Symbol 407 GraphicUsed by:426 483
Symbol 408 TextUses:342Used by:409
Symbol 409 MovieClipUses:408Used by:426 483
Symbol 410 TextUses:342Used by:411
Symbol 411 MovieClipUses:410Used by:426 483
Symbol 412 TextUses:342Used by:413
Symbol 413 MovieClipUses:412Used by:426 483
Symbol 414 TextUses:342Used by:415
Symbol 415 MovieClipUses:414Used by:426 483
Symbol 416 GraphicUsed by:417
Symbol 417 MovieClipUses:416Used by:426 483
Symbol 418 GraphicUsed by:419
Symbol 419 MovieClipUses:418Used by:426 483
Symbol 420 GraphicUsed by:421
Symbol 421 MovieClipUses:420Used by:426 483
Symbol 422 GraphicUsed by:423
Symbol 423 MovieClipUses:422Used by:426 483
Symbol 424 TextUses:342Used by:425
Symbol 425 MovieClipUses:424Used by:426 483
Symbol 426 MovieClip {com.novelgames.flashgames.highscores.ScorePage}Uses:339 384 398 399 401 406 407 409 411 413 415 417 419 421 423 425 375Used by:504
Symbol 427 GraphicUsed by:434 476
Symbol 428 EditableTextUses:342Used by:434
Symbol 429 TextUses:342Used by:430
Symbol 430 MovieClipUses:429Used by:434 437 473 476
Symbol 431 TextUses:342Used by:432
Symbol 432 MovieClipUses:431Used by:434 476
Symbol 433 EditableTextUses:342Used by:434
Symbol 434 MovieClip {com.novelgames.flashgames.highscores.NameEmailPage}Uses:339 384 427 428 430 432 433 375 406Used by:504
Symbol 435 GraphicUsed by:437 473
Symbol 436 EditableTextUses:342Used by:437
Symbol 437 MovieClip {com.novelgames.flashgames.highscores.NamePage}Uses:339 384 435 436 430 375 406Used by:504
Symbol 438 GraphicUsed by:464 486
Symbol 439 EditableTextUses:342Used by:464
Symbol 440 TextUses:342Used by:441
Symbol 441 MovieClipUses:440Used by:464 480 486 490
Symbol 442 TextUses:342Used by:443
Symbol 443 MovieClipUses:442Used by:464 480 486 490
Symbol 444 EditableTextUses:342Used by:464
Symbol 445 TextUses:342Used by:446
Symbol 446 MovieClipUses:445Used by:464 480 486 490
Symbol 447 TextUses:342Used by:448
Symbol 448 MovieClipUses:447Used by:464 480
Symbol 449 GraphicUsed by:453
Symbol 450 TextUses:342Used by:451
Symbol 451 MovieClipUses:450Used by:453
Symbol 452 GraphicUsed by:453
Symbol 453 ButtonUses:449 451 452Used by:464 480 486 490
Symbol 454 GraphicUsed by:458 461
Symbol 455 TextUses:342Used by:456
Symbol 456 MovieClipUses:455Used by:458
Symbol 457 GraphicUsed by:458 461
Symbol 458 ButtonUses:454 456 457Used by:464 480 486 490
Symbol 459 TextUses:342Used by:460
Symbol 460 MovieClipUses:459Used by:461
Symbol 461 ButtonUses:454 460 457Used by:464 480
Symbol 462 TextUses:342Used by:463
Symbol 463 MovieClipUses:462Used by:464 480 486 490
Symbol 464 MovieClip {com.novelgames.flashgames.highscores.LoginPage}Uses:339 384 438 439 441 443 444 446 448 375 453 458 461 463Used by:504
Symbol 465 EditableTextUses:342Used by:473
Symbol 466 TextUses:342Used by:467
Symbol 467 MovieClipUses:466Used by:472
Symbol 468 TextUses:342Used by:469
Symbol 469 MovieClipUses:468Used by:472
Symbol 470 TextUses:342Used by:471
Symbol 471 MovieClipUses:470Used by:472
Symbol 472 MovieClipUses:467 392 469 471Used by:473 476 480 490
Symbol 473 MovieClip {com.novelgames.flashgames.highscores.NameFailedPage}Uses:339 384 435 465 430 472 375 406Used by:504
Symbol 474 EditableTextUses:342Used by:476
Symbol 475 EditableTextUses:342Used by:476
Symbol 476 MovieClip {com.novelgames.flashgames.highscores.NameEmailFailedPage}Uses:339 384 427 474 430 432 475 472 375 406Used by:504
Symbol 477 GraphicUsed by:480
Symbol 478 EditableTextUses:342Used by:480
Symbol 479 EditableTextUses:342Used by:480
Symbol 480 MovieClip {com.novelgames.flashgames.highscores.LoginFailedPage}Uses:339 384 477 478 441 443 479 446 448 472 375 453 458 461 463Used by:504
Symbol 481 GraphicUsed by:482
Symbol 482 MovieClipUses:481Used by:483
Symbol 483 MovieClip {com.novelgames.flashgames.highscores.TableShare}Uses:339 482 361 363 365 372 407 409 411 413 415 417 419 421 423 425 375 378 381Used by:504
Symbol 484 EditableTextUses:342Used by:486
Symbol 485 EditableTextUses:342Used by:486
Symbol 486 MovieClip {com.novelgames.flashgames.highscores.LoginNoGuestPage}Uses:339 384 438 484 441 443 485 446 375 453 458 463Used by:504
Symbol 487 GraphicUsed by:490
Symbol 488 EditableTextUses:342Used by:490
Symbol 489 EditableTextUses:342Used by:490
Symbol 490 MovieClip {com.novelgames.flashgames.highscores.LoginNoGuestFailedPage}Uses:339 384 487 488 441 443 489 446 472 375 453 458 463Used by:504
Symbol 491 MovieClipUses:383Used by:503
Symbol 492 GraphicUsed by:503
Symbol 493 TextUses:342Used by:494
Symbol 494 MovieClipUses:493Used by:495
Symbol 495 ButtonUses:402 494 405Used by:503
Symbol 496 EditableTextUses:342Used by:503
Symbol 497 TextUses:342Used by:498
Symbol 498 MovieClipUses:497Used by:503
Symbol 499 TextUses:342Used by:500
Symbol 500 MovieClipUses:499Used by:503
Symbol 501 GraphicUsed by:503
Symbol 502 EditableTextUses:342Used by:503
Symbol 503 MovieClip {com.novelgames.flashgames.highscores.EmailPage}Uses:339 491 375 492 495 496 498 500 501 502Used by:504
Symbol 504 MovieClip {com.novelgames.flashgames.highscores.HighScores}Uses:382 327 397 426 434 437 464 473 476 480 483 486 490 503Used by:Timeline
Symbol 505 GraphicUsed by:Timeline
Symbol 506 GraphicUsed by:507 598 599 870 1058 1059 1144
Symbol 507 MovieClipUses:506Used by:511 639 1140
Symbol 508 GraphicUsed by:509 906 1319
Symbol 509 MovieClipUses:508Used by:511 639
Symbol 510 GraphicUsed by:511
Symbol 511 MovieClipUses:507 509 510 20Used by:650 881  Timeline
Symbol 512 GraphicUsed by:513
Symbol 513 MovieClipUses:512Used by:878 1155  Timeline
Symbol 514 GraphicUsed by:517
Symbol 515 GraphicUsed by:517
Symbol 516 GraphicUsed by:517
Symbol 517 MovieClipUses:514 515 516Used by:Timeline
Symbol 518 GraphicUsed by:519
Symbol 519 MovieClipUses:39 41 518 45 50 67 89 108 130Used by:Timeline
Symbol 520 EditableTextUses:1 308 310 342Used by:573
Symbol 521 GraphicUsed by:522
Symbol 522 MovieClipUses:521Used by:573
Symbol 523 EditableTextUses:22 1066Used by:573
Symbol 524 TextUses:132Used by:573
Symbol 525 GraphicUsed by:526 601 1055
Symbol 526 MovieClipUses:525Used by:551
Symbol 527 GraphicUsed by:528
Symbol 528 MovieClipUses:527Used by:550 851
Symbol 529 GraphicUsed by:530 549
Symbol 530 MovieClipUses:529Used by:549
Symbol 531 GraphicUsed by:532
Symbol 532 MovieClipUses:531Used by:549
Symbol 533 GraphicUsed by:549
Symbol 534 ShapeTweeningUsed by:541
Symbol 535 ShapeTweeningUsed by:541
Symbol 536 ShapeTweeningUsed by:541
Symbol 537 ShapeTweeningUsed by:541
Symbol 538 ShapeTweeningUsed by:541
Symbol 539 ShapeTweeningUsed by:541
Symbol 540 GraphicUsed by:541
Symbol 541 MovieClipUses:534 535 536 537 538 539 540Used by:549
Symbol 542 MovieClipUses:118 119 120 121Used by:549
Symbol 543 MovieClipUses:123 124 126 125Used by:549
Symbol 544 GraphicUsed by:545
Symbol 545 MovieClipUses:544Used by:549
Symbol 546 GraphicUsed by:549
Symbol 547 GraphicUsed by:548
Symbol 548 MovieClipUses:547Used by:549
Symbol 549 MovieClipUses:112 113 530 532 533 541 117 542 543 545 128 129 546 529 548Used by:550
Symbol 550 MovieClipUses:528 549Used by:551
Symbol 551 MovieClip {button_for_sound}Uses:526 550Used by:573 1408
Symbol 552 GraphicUsed by:553
Symbol 553 MovieClipUses:552Used by:556 562 565 570
Symbol 554 GraphicUsed by:556
Symbol 555 MovieClipUses:76 77 78 79Used by:556
Symbol 556 MovieClipUses:553 73 74 554 70 71 72 87 88 82 555Used by:572 805
Symbol 557 GraphicUsed by:562
Symbol 558 GraphicUsed by:562
Symbol 559 MovieClipUses:96 97 98 99Used by:562
Symbol 560 GraphicUsed by:561
Symbol 561 MovieClipUses:101 104 103 560Used by:562
Symbol 562 MovieClipUses:553 557 558 92 93 107 94 95 559 561Used by:572 805
Symbol 563 GraphicUsed by:565
Symbol 564 MovieClipUses:60 61 62 63Used by:565
Symbol 565 MovieClipUses:553 51 52 53 563 55 56 57 58 59 564 66Used by:572 805
Symbol 566 GraphicUsed by:570 747 750 752 754 771 1364
Symbol 567 MovieClipUses:118 119 120 121Used by:570
Symbol 568 GraphicUsed by:569
Symbol 569 MovieClipUses:123 124 568 126Used by:570
Symbol 570 MovieClipUses:553 109 110 111 112 113 114 566 129 128 116 117 567 569Used by:572 805
Symbol 571 GraphicUsed by:572
Symbol 572 MovieClipUses:556 562 565 570 571Used by:573
Symbol 573 MovieClip {game}Uses:146 520 522 139 523 524 551 572Used by:1408  Timeline
Symbol 574 GraphicUsed by:577
Symbol 575 GraphicUsed by:577
Symbol 576 GraphicUsed by:577
Symbol 577 MovieClip {edit_btn}Uses:574 575 576Used by:1408
Symbol 578 GraphicUsed by:579
Symbol 579 MovieClip {ball1}Uses:578Used by:1408
Symbol 580 GraphicUsed by:581
Symbol 581 MovieClip {hitZone}Uses:580Used by:1408
Symbol 582 GraphicUsed by:583
Symbol 583 MovieClip {invisBox}Uses:582Used by:1408
Symbol 584 MovieClip {level1_objs}Used by:1408
Symbol 585 MovieClipUses:214Used by:588
Symbol 586 GraphicUsed by:587
Symbol 587 MovieClipUses:586Used by:588
Symbol 588 MovieClip {line1}Uses:585 587Used by:1408
Symbol 589 GraphicUsed by:590
Symbol 590 MovieClip {point1}Uses:589Used by:1408
Symbol 591 GraphicUsed by:592
Symbol 592 MovieClip {rollover_stripe}Uses:591Used by:1408
Symbol 593 GraphicUsed by:594
Symbol 594 MovieClip {Symbol1Bloon}Uses:593Used by:1408
Symbol 595 GraphicUsed by:596
Symbol 596 MovieClipUses:595Used by:617 1379
Symbol 597 GraphicUsed by:600
Symbol 598 MovieClipUses:506Used by:600 907
Symbol 599 MovieClipUses:506Used by:600
Symbol 600 MovieClipUses:597 598 599Used by:617 936
Symbol 601 MovieClipUses:525Used by:617
Symbol 602 GraphicUsed by:603
Symbol 603 MovieClipUses:602Used by:617
Symbol 604 GraphicUsed by:605 1056
Symbol 605 MovieClipUses:604Used by:617
Symbol 606 GraphicUsed by:607
Symbol 607 MovieClipUses:606Used by:609
Symbol 608 GraphicUsed by:609
Symbol 609 MovieClipUses:607 608Used by:610
Symbol 610 MovieClipUses:609Used by:617
Symbol 611 EditableTextUses:132Used by:617
Symbol 612 EditableTextUses:22 1066Used by:617
Symbol 613 EditableTextUses:22 1066Used by:616
Symbol 614 GraphicUsed by:615
Symbol 615 MovieClipUses:614Used by:616 880
Symbol 616 MovieClip {myBtnBigcopy2}Uses:141 144 613 146 615Used by:617 1408
Symbol 617 MovieClip {windowInGame}Uses:596 600 601 603 605 610 147 611 612 616Used by:866 1408
Symbol 618 GraphicUsed by:619
Symbol 619 MovieClipUses:618Used by:650
Symbol 620 GraphicUsed by:621 930 1321
Symbol 621 MovieClipUses:620Used by:650 881
Symbol 622 GraphicUsed by:626 931
Symbol 623 GraphicUsed by:626 931
Symbol 624 GraphicUsed by:626 931
Symbol 625 GraphicUsed by:626 931
Symbol 626 MovieClipUses:622 623 624 625Used by:650
Symbol 627 GraphicUsed by:650 881
Symbol 628 MovieClipUses:5Used by:650
Symbol 629 MovieClipUses:15Used by:631
Symbol 630 MovieClipUses:17Used by:631
Symbol 631 MovieClipUses:629 630 19 20Used by:650
Symbol 632 MovieClipUses:7Used by:650 936
Symbol 633 MovieClipUses:9Used by:650 936
Symbol 634 MovieClipUses:11Used by:650 936
Symbol 635 GraphicUsed by:636
Symbol 636 MovieClipUses:635Used by:650
Symbol 637 GraphicUsed by:639 907 1320
Symbol 638 GraphicUsed by:639
Symbol 639 MovieClipUses:507 509 637 638Used by:650
Symbol 640 TextUses:132Used by:642
Symbol 641 GraphicUsed by:642
Symbol 642 MovieClipUses:640 641Used by:650 1408
Symbol 643 TextUses:132Used by:645
Symbol 644 GraphicUsed by:645
Symbol 645 MovieClip {Help2}Uses:643 644Used by:650 1408
Symbol 646 TextUses:132Used by:647
Symbol 647 MovieClip {Help3}Uses:646Used by:650 1408
Symbol 648 TextUses:132Used by:649
Symbol 649 MovieClip {Help4}Uses:648Used by:650 1408
Symbol 650 MovieClipUses:619 621 8 626 10 12 511 21 627 628 631 632 633 634 636 639 642 645 647 649 303 300Used by:653
Symbol 651 GraphicUsed by:652
Symbol 652 MovieClip {workZonePlat}Uses:651Used by:653
Symbol 653 MovieClip {workZone}Uses:650 652Used by:866 1408
Symbol 654 GraphicUsed by:655
Symbol 655 MovieClipUses:654Used by:656 665 666 667 668 669 670 671 1316
Symbol 656 MovieClip {electrcLine}Uses:655Used by:1408
Symbol 657 GraphicUsed by:663
Symbol 658 GraphicUsed by:663
Symbol 659 GraphicUsed by:663
Symbol 660 GraphicUsed by:663
Symbol 661 GraphicUsed by:663
Symbol 662 GraphicUsed by:663
Symbol 663 MovieClipUses:657 658 659 660 661 662Used by:664 665 666 667 668 669 670 671
Symbol 664 MovieClip {electric_line_in}Uses:663Used by:1408
Symbol 665 MovieClip {electric_line_in_100}Uses:655 663Used by:1408
Symbol 666 MovieClip {electric_line_in_40}Uses:655 663Used by:1408
Symbol 667 MovieClip {electric_line_in_50}Uses:655 663Used by:1408
Symbol 668 MovieClip {electric_line_in_60}Uses:655 663Used by:1408
Symbol 669 MovieClip {electric_line_in_70}Uses:655 663Used by:1408
Symbol 670 MovieClip {electric_line_in_80}Uses:655 663Used by:1408
Symbol 671 MovieClip {electric_line_in_90}Uses:655 663Used by:1408
Symbol 672 BitmapUsed by:673
Symbol 673 GraphicUses:672Used by:674 1333
Symbol 674 MovieClipUses:673Used by:675
Symbol 675 MovieClipUses:674Used by:682 686 688 690 732 735 737 739 747 750 752 754 941 945 948
Symbol 676 GraphicUsed by:682 686 688 690 774 941 945 948 1336
Symbol 677 MovieClip {Глаза1}Uses:76 77 78 79Used by:682 686 690 774 941 945 1408
Symbol 678 GraphicUsed by:680
Symbol 679 GraphicUsed by:680
Symbol 680 MovieClip {Глаза3}Uses:678 679Used by:682 688 948 1408
Symbol 681 GraphicUsed by:682 686 688 945
Symbol 682 MovieClip {VoltConnectarmorgames_fla.volt_in_in1_199}Uses:675 70 71 72 73 74 676 87 88 677 82 680 681Used by:683
Symbol 683 MovieClip {volt_in1}Uses:682Used by:1408
Symbol 684 GraphicUsed by:685 721
Symbol 685 MovieClip {volt_in1_adding}Uses:684Used by:1408
Symbol 686 MovieClip {VoltConnectarmorgames_fla.volt_in_in1_glad_206}Uses:675 70 71 72 73 74 676 87 88 677 681 82Used by:687
Symbol 687 MovieClip {volt_in1_glad}Uses:686Used by:1408
Symbol 688 MovieClip {VoltConnectarmorgames_fla.volt_in_in1_sad_208}Uses:675 70 71 72 73 74 676 87 88 680 82 681Used by:689
Symbol 689 MovieClip {volt_in1_sad}Uses:688Used by:1408
Symbol 690 MovieClip {VoltConnectarmorgames_fla.volt_in_in1_usual_210}Uses:675 70 71 72 73 74 676 87 88 677 82Used by:691
Symbol 691 MovieClip {volt_in1_usual}Uses:690Used by:1408
Symbol 692 GraphicUsed by:703 1348
Symbol 693 GraphicUsed by:703 1348
Symbol 694 GraphicUsed by:703 1348
Symbol 695 GraphicUsed by:703 1348
Symbol 696 GraphicUsed by:703 1348
Symbol 697 GraphicUsed by:703 1348
Symbol 698 GraphicUsed by:703 1348
Symbol 699 GraphicUsed by:703 1348
Symbol 700 GraphicUsed by:703 1348
Symbol 701 GraphicUsed by:703 1348
Symbol 702 GraphicUsed by:703 1348
Symbol 703 MovieClipUses:692 693 694 695 696 697 698 699 700 701 702Used by:719 722 724 726 771 772 773 774
Symbol 704 BitmapUsed by:705
Symbol 705 GraphicUses:704Used by:706 1349
Symbol 706 MovieClipUses:705Used by:707 771 772 773 774
Symbol 707 MovieClipUses:706Used by:719 722 724 726
Symbol 708 GraphicUsed by:719 722 724 726 1354
Symbol 709 GraphicUsed by:719 722 724 726 1354
Symbol 710 MovieClipUses:96 97 98 99Used by:719 722 726 772
Symbol 711 GraphicUsed by:713
Symbol 712 GraphicUsed by:713 718
Symbol 713 MovieClipUses:101 711 103 712Used by:719 722 726 772
Symbol 714 GraphicUsed by:716
Symbol 715 GraphicUsed by:716
Symbol 716 MovieClipUses:714 715Used by:719 724
Symbol 717 GraphicUsed by:718
Symbol 718 MovieClipUses:712 717Used by:719 724
Symbol 719 MovieClip {VoltConnectarmorgames_fla.volt_in_in2_212}Uses:703 707 708 709 92 93 94 95 710 713 107 716 718 106Used by:720
Symbol 720 MovieClip {volt_in2}Uses:719Used by:1408
Symbol 721 MovieClip {volt_in2_adding}Uses:684Used by:1408
Symbol 722 MovieClip {VoltConnectarmorgames_fla.volt_in_in2_glad_222}Uses:703 707 708 709 92 93 94 95 710 713 106 107Used by:723
Symbol 723 MovieClip {volt_in2_glad}Uses:722Used by:1408
Symbol 724 MovieClip {VoltConnectarmorgames_fla.volt_in_in2_sad_224}Uses:703 707 708 709 92 93 94 95 716 718 107 106Used by:725
Symbol 725 MovieClip {volt_in2_sad}Uses:724Used by:1408
Symbol 726 MovieClip {VoltConnectarmorgames_fla.volt_in_in2_usual_226}Uses:703 707 708 709 92 93 94 95 710 713 107Used by:727
Symbol 727 MovieClip {volt_in2_usual}Uses:726Used by:1408
Symbol 728 GraphicUsed by:732 735 737 739 1376
Symbol 729 MovieClipUses:60 61 62 63Used by:732 734 735 773
Symbol 730 GraphicUsed by:732 737
Symbol 731 MovieClipUses:63Used by:732 737
Symbol 732 MovieClip {VoltConnectarmorgames_fla.volt_in_in3_228}Uses:675 51 52 53 728 55 56 57 58 59 729 66 730 731 65Used by:733
Symbol 733 MovieClip {volt_in3}Uses:732Used by:1408
Symbol 734 MovieClip {volt_in3_adding}Uses:729Used by:1408
Symbol 735 MovieClip {VoltConnectarmorgames_fla.volt_in_in3_glad_233}Uses:675 51 52 53 728 55 56 57 58 59 729 65 66Used by:736
Symbol 736 MovieClip {volt_in3_glad}Uses:735Used by:1408
Symbol 737 MovieClip {VoltConnectarmorgames_fla.volt_in_in3_sad_235}Uses:675 51 52 53 728 55 56 57 58 59 730 731 66 65Used by:738
Symbol 738 MovieClip {volt_in3_sad}Uses:737Used by:1408
Symbol 739 MovieClip {VoltConnectarmorgames_fla.volt_in_in3_usual_237}Uses:675 51 52 53 728 55 56 57 58 59 66Used by:740
Symbol 740 MovieClip {volt_in3_usual}Uses:739Used by:1408
Symbol 741 GraphicUsed by:747 750 752 754 1364
Symbol 742 MovieClipUses:118 119 120 121Used by:747 749 750 771
Symbol 743 MovieClipUses:123 124 125 126Used by:747 749 750 771
Symbol 744 GraphicUsed by:747 752
Symbol 745 MovieClipUses:121Used by:747 752
Symbol 746 MovieClipUses:126Used by:747 752
Symbol 747 MovieClip {VoltConnectarmorgames_fla.volt_in_in4_239}Uses:741 675 109 110 111 112 113 114 566 116 117 742 743 128 129 744 745 746 115Used by:748
Symbol 748 MovieClip {volt_in4}Uses:747Used by:1408
Symbol 749 MovieClip {volt_in4_adding}Uses:742 743Used by:1408
Symbol 750 MovieClip {VoltConnectarmorgames_fla.volt_in_in4_glad_246}Uses:741 675 109 110 111 112 113 114 566 115 116 117 742 743 128 129Used by:751
Symbol 751 MovieClip {volt_in4_glad}Uses:750Used by:1408
Symbol 752 MovieClip {VoltConnectarmorgames_fla.volt_in_in4_sad_248}Uses:741 675 109 110 111 112 113 114 566 116 117 744 745 746 128 129 115Used by:753
Symbol 753 MovieClip {volt_in4_sad}Uses:752Used by:1408
Symbol 754 MovieClip {VoltConnectarmorgames_fla.volt_in_in4_usual_250}Uses:741 675 109 110 111 112 113 114 566 116 117 128 129Used by:755
Symbol 755 MovieClip {volt_in4_usual}Uses:754Used by:1408
Symbol 756 EditableTextUses:342Used by:757
Symbol 757 MovieClip {volt1}Uses:756Used by:1408
Symbol 758 MovieClip {volt2}Used by:1408
Symbol 759 MovieClip {volt3}Used by:1408
Symbol 760 EditableTextUses:342Used by:761
Symbol 761 MovieClip {volt4}Uses:760Used by:1408
Symbol 762 GraphicUsed by:763
Symbol 763 MovieClipUses:762Used by:764
Symbol 764 MovieClip {startVoltClip2}Uses:763Used by:1408
Symbol 765 GraphicUsed by:768
Symbol 766 GraphicUsed by:767
Symbol 767 MovieClipUses:766Used by:768
Symbol 768 MovieClip {startVoltClip}Uses:765 767Used by:1408
Symbol 769 GraphicUsed by:770
Symbol 770 MovieClipUses:769Used by:771 772 773 774
Symbol 771 MovieClip {spirit_water_clip}Uses:706 703 109 110 114 566 117 742 743 128 129 87 88 770Used by:1408
Symbol 772 MovieClip {spirit_flying_clip}Uses:706 703 92 93 710 713 107 770 87 88Used by:1408
Symbol 773 MovieClip {spirit_sticking_clip}Uses:706 703 55 729 66 87 88 770Used by:1408
Symbol 774 MovieClip {spirit_usual_clip}Uses:706 703 70 71 676 87 88 677 82 770Used by:1408
Symbol 775 GraphicUsed by:784
Symbol 776 TextUses:132Used by:784
Symbol 777 TextUses:132Used by:784
Symbol 778 TextUses:132Used by:784
Symbol 779 TextUses:132Used by:784
Symbol 780 TextUses:132Used by:784
Symbol 781 TextUses:132Used by:784
Symbol 782 GraphicUsed by:783 786
Symbol 783 MovieClipUses:782Used by:784 1043 1069
Symbol 784 MovieClip {credits_screen_clip}Uses:775 6 8 10 12 14 21 24 30 131 776 777 778 779 780 135 137 781 139 783 147Used by:1408
Symbol 785 MovieClipUses:138Used by:866
Symbol 786 MovieClipUses:782Used by:866
Symbol 787 GraphicUsed by:788
Symbol 788 MovieClipUses:787Used by:866
Symbol 789 GraphicUsed by:790
Symbol 790 MovieClipUses:789Used by:866
Symbol 791 GraphicUsed by:792 832
Symbol 792 MovieClipUses:791Used by:793
Symbol 793 MovieClipUses:792Used by:866
Symbol 794 GraphicUsed by:795
Symbol 795 MovieClipUses:794Used by:866
Symbol 796 GraphicUsed by:797
Symbol 797 MovieClipUses:796Used by:804
Symbol 798 GraphicUsed by:799
Symbol 799 MovieClipUses:798Used by:804
Symbol 800 GraphicUsed by:801
Symbol 801 MovieClipUses:800Used by:804
Symbol 802 GraphicUsed by:803
Symbol 803 MovieClipUses:802Used by:804
Symbol 804 MovieClipUses:797 799 801 803Used by:831
Symbol 805 MovieClipUses:565 556 562 570Used by:831
Symbol 806 GraphicUsed by:807
Symbol 807 MovieClipUses:806Used by:830
Symbol 808 GraphicUsed by:809
Symbol 809 MovieClipUses:808Used by:830
Symbol 810 GraphicUsed by:811
Symbol 811 MovieClipUses:810Used by:830
Symbol 812 GraphicUsed by:813
Symbol 813 MovieClipUses:812Used by:830
Symbol 814 GraphicUsed by:815
Symbol 815 MovieClipUses:814Used by:830
Symbol 816 GraphicUsed by:817
Symbol 817 MovieClipUses:816Used by:830
Symbol 818 GraphicUsed by:819
Symbol 819 MovieClipUses:818Used by:830
Symbol 820 GraphicUsed by:821
Symbol 821 MovieClipUses:820Used by:830
Symbol 822 GraphicUsed by:823
Symbol 823 MovieClipUses:822Used by:825
Symbol 824 GraphicUsed by:825
Symbol 825 MovieClipUses:823 824Used by:830
Symbol 826 EditableTextUses:22 1066Used by:830
Symbol 827 EditableTextUses:22 1066Used by:830
Symbol 828 EditableTextUses:22 1066Used by:830
Symbol 829 EditableTextUses:22 1066Used by:830
Symbol 830 MovieClipUses:807 809 811 813 815 817 819 821 825 826 827 828 829Used by:831
Symbol 831 MovieClip {voltMode}Uses:804 805 830Used by:866 1408
Symbol 832 MovieClipUses:791Used by:833
Symbol 833 MovieClipUses:832Used by:866
Symbol 834 GraphicUsed by:835
Symbol 835 MovieClipUses:834Used by:837
Symbol 836 EditableTextUses:22Used by:837
Symbol 837 MovieClipUses:835 836Used by:866
Symbol 838 GraphicUsed by:839
Symbol 839 MovieClipUses:838Used by:848
Symbol 840 GraphicUsed by:841
Symbol 841 MovieClipUses:840Used by:842
Symbol 842 MovieClipUses:841Used by:848
Symbol 843 GraphicUsed by:844
Symbol 844 MovieClipUses:843Used by:848
Symbol 845 TextUses:22Used by:848
Symbol 846 TextUses:22Used by:848
Symbol 847 TextUses:22Used by:848
Symbol 848 MovieClip {button_pause}Uses:839 842 844 845 846 847Used by:866 1408
Symbol 849 GraphicUsed by:850
Symbol 850 MovieClipUses:849Used by:866
Symbol 851 MovieClipUses:528Used by:866
Symbol 852 GraphicUsed by:853
Symbol 853 MovieClipUses:852Used by:856
Symbol 854 TextUses:132Used by:856
Symbol 855 GraphicUsed by:856
Symbol 856 Button {QualityButton_low}Uses:853 854 855Used by:857 1408
Symbol 857 MovieClip {VoltConnectarmorgames_fla.QualityButton_313}Uses:856Used by:866
Symbol 858 GraphicUsed by:861
Symbol 859 GraphicUsed by:861
Symbol 860 GraphicUsed by:861
Symbol 861 MovieClipUses:858 859 860Used by:865
Symbol 862 GraphicUsed by:863
Symbol 863 MovieClipUses:862Used by:865
Symbol 864 EditableTextUses:22 1066Used by:865
Symbol 865 MovieClip {counter_timer}Uses:861 863 864Used by:866 1408
Symbol 866 MovieClip {level}Uses:653 785 786 788 790 793 795 831 833 837 848 617 147 297 850 851 857 865Used by:1408
Symbol 867 GraphicUsed by:868
Symbol 868 MovieClipUses:39 41 867 45 50 67 89 108 130Used by:881
Symbol 869 GraphicUsed by:873
Symbol 870 MovieClipUses:506Used by:873 1140 1145 1149
Symbol 871 GraphicUsed by:872
Symbol 872 MovieClipUses:871Used by:873 875 877
Symbol 873 MovieClipUses:869 870 872Used by:878
Symbol 874 GraphicUsed by:875
Symbol 875 MovieClipUses:874 872Used by:878
Symbol 876 GraphicUsed by:877
Symbol 877 MovieClipUses:876 872Used by:878
Symbol 878 MovieClip {pointer_for_menu_button}Uses:873 513 147 292 39 875 877Used by:881 1408
Symbol 879 EditableTextUses:22 1066Used by:880
Symbol 880 MovieClip {myBtnBigcopy}Uses:141 144 879 146 615Used by:881 1408
Symbol 881 MovieClip {menu_screen_clip}Uses:627 6 868 621 8 10 12 511 21 878 880 147Used by:1408
Symbol 882 GraphicUsed by:936
Symbol 883 GraphicUsed by:936
Symbol 884 GraphicUsed by:889 1179
Symbol 885 GraphicUsed by:886 1079 1087 1176
Symbol 886 MovieClipUses:885Used by:889
Symbol 887 GraphicUsed by:888
Symbol 888 MovieClipUses:887Used by:889
Symbol 889 MovieClipUses:884 886 888Used by:936 1181
Symbol 890 GraphicUsed by:891 1185
Symbol 891 MovieClipUses:890Used by:892
Symbol 892 MovieClipUses:891Used by:896
Symbol 893 GraphicUsed by:894 1187
Symbol 894 MovieClipUses:893Used by:896
Symbol 895 GraphicUsed by:896 1188
Symbol 896 MovieClipUses:892 894 895Used by:936
Symbol 897 GraphicUsed by:898 1114 1125
Symbol 898 MovieClipUses:897Used by:905 924
Symbol 899 GraphicUsed by:904
Symbol 900 GraphicUsed by:901 921 1127 1134 1327
Symbol 901 MovieClipUses:900Used by:904
Symbol 902 GraphicUsed by:903 922 1128 1135 1328
Symbol 903 MovieClipUses:902Used by:904
Symbol 904 MovieClipUses:899 901 903Used by:905
Symbol 905 MovieClipUses:898 904Used by:936
Symbol 906 MovieClipUses:508Used by:907
Symbol 907 MovieClipUses:598 906 637 20Used by:936
Symbol 908 GraphicUsed by:909 1151
Symbol 909 MovieClipUses:908Used by:912 914
Symbol 910 GraphicUsed by:911
Symbol 911 MovieClipUses:910Used by:912
Symbol 912 MovieClipUses:909 911Used by:936
Symbol 913 GraphicUsed by:914
Symbol 914 MovieClipUses:909 913Used by:936
Symbol 915 GraphicUsed by:916 1197
Symbol 916 MovieClipUses:915Used by:919
Symbol 917 GraphicUsed by:918 1198
Symbol 918 MovieClipUses:917Used by:919
Symbol 919 MovieClipUses:916 918Used by:936
Symbol 920 GraphicUsed by:923
Symbol 921 MovieClipUses:900Used by:923
Symbol 922 MovieClipUses:902Used by:923
Symbol 923 MovieClipUses:920 921 922Used by:924
Symbol 924 MovieClipUses:898 923Used by:936
Symbol 925 GraphicUsed by:926
Symbol 926 MovieClipUses:925Used by:936
Symbol 927 GraphicUsed by:928
Symbol 928 MovieClipUses:927Used by:929
Symbol 929 MovieClipUses:928Used by:936
Symbol 930 MovieClipUses:620Used by:936
Symbol 931 MovieClipUses:622 623 624 625Used by:936
Symbol 932 GraphicUsed by:933 1096
Symbol 933 MovieClipUses:932Used by:936
Symbol 934 GraphicUsed by:935 1094
Symbol 935 MovieClipUses:934Used by:936
Symbol 936 MovieClipUses:882 883 889 896 600 905 907 912 914 919 924 926 929 930 632 634 931 633 933 935Used by:1043
Symbol 937 GraphicUsed by:938
Symbol 938 MovieClipUses:937Used by:951
Symbol 939 GraphicUsed by:940
Symbol 940 MovieClipUses:939Used by:951
Symbol 941 MovieClipUses:675 70 71 72 73 74 676 87 88 677 82Used by:951
Symbol 942 EditableTextUses:22 1066Used by:951
Symbol 943 GraphicUsed by:944
Symbol 944 MovieClipUses:943Used by:951
Symbol 945 MovieClipUses:675 70 71 72 73 74 676 87 88 677 681 82Used by:951
Symbol 946 GraphicUsed by:947
Symbol 947 MovieClipUses:946Used by:951
Symbol 948 MovieClipUses:675 70 71 72 73 74 676 87 88 680 82Used by:951
Symbol 949 GraphicUsed by:950
Symbol 950 MovieClipUses:949Used by:951
Symbol 951 MovieClip {btLevel}Uses:938 940 941 942 944 945 947 948 950Used by:952 1408
Symbol 952 MovieClipUses:951Used by:1043
Symbol 953 GraphicUsed by:1043
Symbol 954 GraphicUsed by:955
Symbol 955 MovieClipUses:954Used by:1043
Symbol 956 GraphicUsed by:957
Symbol 957 MovieClipUses:956Used by:959
Symbol 958 GraphicUsed by:959
Symbol 959 MovieClipUses:957 958Used by:1043
Symbol 960 EditableTextUses:22 1066Used by:1043
Symbol 961 TextUses:22Used by:1043
Symbol 962 GraphicUsed by:1043
Symbol 963 BitmapUsed by:964
Symbol 964 GraphicUses:963Used by:971 1332
Symbol 965 BitmapUsed by:966
Symbol 966 GraphicUses:965Used by:971 1332
Symbol 967 BitmapUsed by:968
Symbol 968 GraphicUses:967Used by:971 1332
Symbol 969 BitmapUsed by:970
Symbol 970 GraphicUses:969Used by:971 1332
Symbol 971 MovieClipUses:964 966 968 970Used by:1043
Symbol 972 GraphicUsed by:973
Symbol 973 MovieClipUses:972Used by:1043
Symbol 974 GraphicUsed by:1043
Symbol 975 GraphicUsed by:976
Symbol 976 MovieClipUses:975Used by:1043
Symbol 977 GraphicUsed by:1043
Symbol 978 GraphicUsed by:979
Symbol 979 MovieClipUses:978Used by:1043
Symbol 980 GraphicUsed by:1043
Symbol 981 GraphicUsed by:982
Symbol 982 MovieClipUses:981Used by:1043
Symbol 983 GraphicUsed by:1043
Symbol 984 GraphicUsed by:985
Symbol 985 MovieClipUses:984Used by:1043
Symbol 986 GraphicUsed by:1043
Symbol 987 GraphicUsed by:988
Symbol 988 MovieClipUses:987Used by:1043
Symbol 989 GraphicUsed by:1043
Symbol 990 GraphicUsed by:991
Symbol 991 MovieClipUses:990Used by:1043
Symbol 992 GraphicUsed by:1043
Symbol 993 GraphicUsed by:994
Symbol 994 MovieClipUses:993Used by:1043
Symbol 995 GraphicUsed by:1043
Symbol 996 GraphicUsed by:997
Symbol 997 MovieClipUses:996Used by:1043
Symbol 998 GraphicUsed by:1043
Symbol 999 GraphicUsed by:1000
Symbol 1000 MovieClipUses:999Used by:1043
Symbol 1001 GraphicUsed by:1043
Symbol 1002 GraphicUsed by:1003
Symbol 1003 MovieClipUses:1002Used by:1043
Symbol 1004 GraphicUsed by:1043
Symbol 1005 GraphicUsed by:1006
Symbol 1006 MovieClipUses:1005Used by:1043
Symbol 1007 GraphicUsed by:1043
Symbol 1008 GraphicUsed by:1009
Symbol 1009 MovieClipUses:1008Used by:1043
Symbol 1010 GraphicUsed by:1043
Symbol 1011 GraphicUsed by:1012
Symbol 1012 MovieClipUses:1011Used by:1043
Symbol 1013 GraphicUsed by:1043
Symbol 1014 GraphicUsed by:1015
Symbol 1015 MovieClipUses:1014Used by:1043
Symbol 1016 GraphicUsed by:1043
Symbol 1017 GraphicUsed by:1018
Symbol 1018 MovieClipUses:1017Used by:1043
Symbol 1019 GraphicUsed by:1043
Symbol 1020 GraphicUsed by:1021
Symbol 1021 MovieClipUses:1020Used by:1043
Symbol 1022 GraphicUsed by:1043
Symbol 1023 GraphicUsed by:1024
Symbol 1024 MovieClipUses:1023Used by:1043
Symbol 1025 GraphicUsed by:1043
Symbol 1026 GraphicUsed by:1027
Symbol 1027 MovieClipUses:1026Used by:1043
Symbol 1028 GraphicUsed by:1043
Symbol 1029 GraphicUsed by:1030
Symbol 1030 MovieClipUses:1029Used by:1043
Symbol 1031 GraphicUsed by:1043
Symbol 1032 GraphicUsed by:1033
Symbol 1033 MovieClipUses:1032Used by:1043
Symbol 1034 GraphicUsed by:1043
Symbol 1035 GraphicUsed by:1036
Symbol 1036 MovieClipUses:1035Used by:1043
Symbol 1037 GraphicUsed by:1043
Symbol 1038 GraphicUsed by:1039
Symbol 1039 MovieClipUses:1038Used by:1043
Symbol 1040 GraphicUsed by:1043
Symbol 1041 GraphicUsed by:1042
Symbol 1042 MovieClipUses:1041Used by:1043
Symbol 1043 MovieClip {screenSelectGame}Uses:936 952 953 955 139 783 147 959 960 961 962 971 973 974 976 977 979 980 982 983 985 986 988 989 991 992 994 995 997 998 1000 1001 1003 1004 1006 1007 1009 1010 1012 1013 1015 1016 1018 1019 1021 1022 1024 1025 1027 1028 1030 1031 1033 1034 1036 1037 1039 1040 1042Used by:1408
Symbol 1044 GraphicUsed by:1069
Symbol 1045 GraphicUsed by:1046
Symbol 1046 MovieClipUses:1045Used by:1049
Symbol 1047 GraphicUsed by:1048
Symbol 1048 MovieClipUses:1047Used by:1049
Symbol 1049 MovieClipUses:1046 1048Used by:1069 1208
Symbol 1050 GraphicUsed by:1051
Symbol 1051 MovieClipUses:1050Used by:1052
Symbol 1052 MovieClipUses:1051Used by:1069 1208
Symbol 1053 GraphicUsed by:1054
Symbol 1054 MovieClipUses:1053Used by:1069 1378
Symbol 1055 MovieClipUses:525Used by:1069 1378
Symbol 1056 MovieClipUses:604Used by:1069 1378
Symbol 1057 GraphicUsed by:1060
Symbol 1058 MovieClipUses:506Used by:1060 1320
Symbol 1059 MovieClipUses:506Used by:1060 1374
Symbol 1060 MovieClipUses:1057 1058 1059Used by:1069 1378
Symbol 1061 GraphicUsed by:1062
Symbol 1062 MovieClipUses:1061Used by:1064
Symbol 1063 GraphicUsed by:1064
Symbol 1064 MovieClipUses:1062 1063Used by:1065
Symbol 1065 MovieClipUses:1064Used by:1069 1378
Symbol 1066 FontUsed by:145 523 612 613 826 827 828 829 864 879 942 960 1067 1118
Symbol 1067 EditableTextUses:22 1066Used by:1069
Symbol 1068 TextUses:132Used by:1069
Symbol 1069 MovieClip {screenSubmit}Uses:1044 6 8 10 12 14 21 131 1049 1052 139 783 1054 1055 1056 1060 1065 147 1067 1068 287Used by:1408
Symbol 1070 GraphicUsed by:1071 1072
Symbol 1071 MovieClip {physCircle}Uses:1070Used by:1085 1091 1092 1093 1095 1097 1141 1146 1150 1154 1189 1196 1408
Symbol 1072 MovieClip {physOval}Uses:1070 146Used by:1180 1181 1408
Symbol 1073 GraphicUsed by:1074
Symbol 1074 MovieClip {physRect}Uses:1073Used by:1104 1109 1124 1131 1132 1138 1141 1146 1150 1155 1165 1170 1175 1184 1189 1196 1200 1203 1207 1208 1274 1408
Symbol 1075 GraphicUsed by:1076
Symbol 1076 MovieClip {physTrapecia}Uses:146 1075Used by:1156 1408
Symbol 1077 GraphicUsed by:1084
Symbol 1078 GraphicUsed by:1084 1090
Symbol 1079 MovieClipUses:885Used by:1084
Symbol 1080 GraphicUsed by:1081 1088
Symbol 1081 MovieClipUses:1080Used by:1082
Symbol 1082 MovieClipUses:1081Used by:1084
Symbol 1083 GraphicUsed by:1084 1090
Symbol 1084 MovieClipUses:1077 1078 1079 1082 1083Used by:1085 1092
Symbol 1085 MovieClip {pBall}Uses:1071 1084Used by:1408
Symbol 1086 GraphicUsed by:1090
Symbol 1087 MovieClipUses:885Used by:1090
Symbol 1088 MovieClipUses:1080Used by:1089
Symbol 1089 MovieClipUses:1088Used by:1090
Symbol 1090 MovieClipUses:1086 1078 1087 1089 1083Used by:1091 1093
Symbol 1091 MovieClip {pBall2}Uses:1071 1090Used by:1408
Symbol 1092 MovieClip {pBallSpin}Uses:1071 1084Used by:1408
Symbol 1093 MovieClip {pBallSpin2}Uses:1071 1090Used by:1408
Symbol 1094 MovieClipUses:934Used by:1095
Symbol 1095 MovieClip {pBloon1}Uses:1071 1094Used by:1408
Symbol 1096 MovieClipUses:932Used by:1097
Symbol 1097 MovieClip {pBloon2}Uses:1071 1096Used by:1408
Symbol 1098 GraphicUsed by:1099 1105 1190
Symbol 1099 MovieClipUses:1098Used by:1103
Symbol 1100 GraphicUsed by:1101 1106
Symbol 1101 MovieClipUses:1100Used by:1102
Symbol 1102 MovieClipUses:1101Used by:1103
Symbol 1103 MovieClipUses:1099 1102Used by:1104
Symbol 1104 MovieClip {pBoard}Uses:1074 1103Used by:1408
Symbol 1105 MovieClipUses:1098Used by:1108
Symbol 1106 MovieClipUses:1100Used by:1107
Symbol 1107 MovieClipUses:1106Used by:1108
Symbol 1108 MovieClipUses:1105 1107Used by:1109
Symbol 1109 MovieClip {pBoard2}Uses:1074 1108Used by:1408
Symbol 1110 BitmapUsed by:1111
Symbol 1111 GraphicUses:1110Used by:1112
Symbol 1112 MovieClipUses:1111Used by:1113
Symbol 1113 MovieClipUses:1112Used by:1123
Symbol 1114 MovieClipUses:897Used by:1117
Symbol 1115 GraphicUsed by:1116
Symbol 1116 MovieClipUses:1115Used by:1117
Symbol 1117 MovieClipUses:1114 1116Used by:1122
Symbol 1118 EditableTextUses:22 1066Used by:1122
Symbol 1119 GraphicUsed by:1122
Symbol 1120 GraphicUsed by:1122
Symbol 1121 GraphicUsed by:1122
Symbol 1122 MovieClipUses:1117 55 1118 1119 1120 1121Used by:1123
Symbol 1123 MovieClipUses:1113 1122Used by:1124
Symbol 1124 MovieClip {pBonusBox}Uses:1074 1123Used by:1408
Symbol 1125 MovieClipUses:897Used by:1130 1137
Symbol 1126 GraphicUsed by:1129
Symbol 1127 MovieClipUses:900Used by:1129
Symbol 1128 MovieClipUses:902Used by:1129
Symbol 1129 MovieClipUses:1126 1127 1128Used by:1130
Symbol 1130 MovieClipUses:1125 1129Used by:1131 1132
Symbol 1131 MovieClip {pBox1}Uses:1074 1130Used by:1408
Symbol 1132 MovieClip {pBox2}Uses:1074 1130Used by:1408
Symbol 1133 GraphicUsed by:1136
Symbol 1134 MovieClipUses:900Used by:1136
Symbol 1135 MovieClipUses:902Used by:1136
Symbol 1136 MovieClipUses:1133 1134 1135Used by:1137
Symbol 1137 MovieClipUses:1125 1136Used by:1138
Symbol 1138 MovieClip {pBox3}Uses:1074 1137Used by:1408
Symbol 1139 GraphicUsed by:1140
Symbol 1140 MovieClipUses:1139 507 870Used by:1141
Symbol 1141 MovieClip {pCane1}Uses:1074 1071 1140Used by:1408
Symbol 1142 GraphicUsed by:1143
Symbol 1143 MovieClipUses:1142Used by:1145
Symbol 1144 MovieClipUses:506Used by:1145
Symbol 1145 MovieClipUses:1143 1144 870Used by:1146
Symbol 1146 MovieClip {pCane2}Uses:1074 1071 1145Used by:1408
Symbol 1147 GraphicUsed by:1148
Symbol 1148 MovieClipUses:1147Used by:1149
Symbol 1149 MovieClipUses:1148 870Used by:1150
Symbol 1150 MovieClip {pCane3}Uses:1074 1071 1149Used by:1408
Symbol 1151 MovieClipUses:908Used by:1153 1206
Symbol 1152 GraphicUsed by:1153
Symbol 1153 MovieClipUses:1151 1152Used by:1154
Symbol 1154 MovieClip {pEgg}Uses:1071 1153Used by:1408
Symbol 1155 MovieClip {pGround1}Uses:1074 513Used by:1408
Symbol 1156 MovieClip {physTrapec1}Uses:1076Used by:1408
Symbol 1157 GraphicUsed by:1158
Symbol 1158 MovieClipUses:1157Used by:1164
Symbol 1159 GraphicUsed by:1164
Symbol 1160 GraphicUsed by:1164 1169
Symbol 1161 GraphicUsed by:1164 1169
Symbol 1162 GraphicUsed by:1164
Symbol 1163 GraphicUsed by:1164
Symbol 1164 MovieClipUses:1158 1159 1160 1161 1162 1163Used by:1165
Symbol 1165 MovieClip {pNoContact}Uses:1074 1164Used by:1408
Symbol 1166 GraphicUsed by:1167
Symbol 1167 MovieClipUses:1166Used by:1169 1174
Symbol 1168 GraphicUsed by:1169
Symbol 1169 MovieClipUses:1167 1168 1160 1161Used by:1170
Symbol 1170 MovieClip {pNoContactBig}Uses:1074 1169Used by:1408
Symbol 1171 GraphicUsed by:1174
Symbol 1172 GraphicUsed by:1174
Symbol 1173 GraphicUsed by:1174
Symbol 1174 MovieClipUses:1167 1171 1172 1173Used by:1175
Symbol 1175 MovieClip {pNoContactLittle}Uses:1074 1174Used by:1408
Symbol 1176 MovieClipUses:885Used by:1179
Symbol 1177 GraphicUsed by:1178
Symbol 1178 MovieClipUses:1177Used by:1179
Symbol 1179 MovieClipUses:884 1176 1178Used by:1180
Symbol 1180 MovieClip {pOval}Uses:1072 1179Used by:1408
Symbol 1181 MovieClip {pOval2}Uses:1072 889Used by:1408
Symbol 1182 GraphicUsed by:1183
Symbol 1183 MovieClipUses:1182Used by:1184
Symbol 1184 MovieClip {pPlank}Uses:1183 1074Used by:1408
Symbol 1185 MovieClipUses:890Used by:1186
Symbol 1186 MovieClipUses:1185Used by:1188
Symbol 1187 MovieClipUses:893Used by:1188
Symbol 1188 MovieClipUses:1186 1187 895Used by:1189
Symbol 1189 MovieClip {pPlatform1}Uses:1071 1074 1188Used by:1408
Symbol 1190 MovieClipUses:1098Used by:1195
Symbol 1191 GraphicUsed by:1192
Symbol 1192 MovieClipUses:1191Used by:1193
Symbol 1193 MovieClipUses:1192Used by:1195
Symbol 1194 GraphicUsed by:1195
Symbol 1195 MovieClipUses:1190 1193 1194Used by:1196
Symbol 1196 MovieClip {pPlatform2}Uses:1074 1071 1195Used by:1408
Symbol 1197 MovieClipUses:915Used by:1199
Symbol 1198 MovieClipUses:917Used by:1199
Symbol 1199 MovieClipUses:1197 1198Used by:1200
Symbol 1200 MovieClip {pPlatform3}Uses:1074 1199Used by:1408
Symbol 1201 GraphicUsed by:1202
Symbol 1202 MovieClipUses:1201Used by:1203
Symbol 1203 MovieClip {pPuddle}Uses:1074 1202Used by:1408
Symbol 1204 GraphicUsed by:1205
Symbol 1205 MovieClipUses:1204Used by:1206
Symbol 1206 MovieClipUses:1151 1205Used by:1207
Symbol 1207 MovieClip {pStone}Uses:1074 1206Used by:1408
Symbol 1208 MovieClip {pWater}Uses:1074 1049 1052Used by:1408
Symbol 1209 GraphicUsed by:1210
Symbol 1210 MovieClipUses:1209Used by:1225 1272 1273
Symbol 1211 GraphicUsed by:1212
Symbol 1212 MovieClip {focusRectSkin}Uses:1211Used by:1225 1271 1272 1273
Symbol 1213 GraphicUsed by:1214
Symbol 1214 MovieClip {ComboBox_upSkin}Uses:1213Used by:1273
Symbol 1215 GraphicUsed by:1216
Symbol 1216 MovieClip {ComboBox_disabledSkin}Uses:1215Used by:1273
Symbol 1217 GraphicUsed by:1218
Symbol 1218 MovieClip {ComboBox_overSkin}Uses:1217Used by:1273
Symbol 1219 GraphicUsed by:1220
Symbol 1220 MovieClip {ComboBox_downSkin}Uses:1219Used by:1273
Symbol 1221 GraphicUsed by:1222
Symbol 1222 MovieClip {TextInput_disabledSkin}Uses:1221Used by:1225
Symbol 1223 GraphicUsed by:1224
Symbol 1224 MovieClip {TextInput_upSkin}Uses:1223Used by:1225
Symbol 1225 MovieClip {fl.controls.TextInput}Uses:1210 327 1222 1224 1212Used by:1273 1408
Symbol 1226 GraphicUsed by:1227
Symbol 1227 MovieClip {List_skin}Uses:1226Used by:1272
Symbol 1228 GraphicUsed by:1229
Symbol 1229 MovieClip {CellRenderer_upSkin}Uses:1228Used by:1244
Symbol 1230 GraphicUsed by:1231
Symbol 1231 MovieClip {CellRenderer_disabledSkin}Uses:1230Used by:1244
Symbol 1232 GraphicUsed by:1233
Symbol 1233 MovieClip {CellRenderer_downSkin}Uses:1232Used by:1244
Symbol 1234 GraphicUsed by:1235
Symbol 1235 MovieClip {CellRenderer_overSkin}Uses:1234Used by:1244
Symbol 1236 GraphicUsed by:1237
Symbol 1237 MovieClip {CellRenderer_selectedDisabledSkin}Uses:1236Used by:1244
Symbol 1238 GraphicUsed by:1239
Symbol 1239 MovieClip {CellRenderer_selectedDownSkin}Uses:1238Used by:1244
Symbol 1240 GraphicUsed by:1241
Symbol 1241 MovieClip {CellRenderer_selectedOverSkin}Uses:1240Used by:1244
Symbol 1242 GraphicUsed by:1243
Symbol 1243 MovieClip {CellRenderer_selectedUpSkin}Uses:1242Used by:1244
Symbol 1244 MovieClip {fl.controls.listClasses.CellRenderer}Uses:1229 327 1231 1233 1235 1237 1239 1241 1243Used by:1272
Symbol 1245 GraphicUsed by:1246
Symbol 1246 MovieClip {ScrollTrack_skin}Uses:1245Used by:1271
Symbol 1247 GraphicUsed by:1250
Symbol 1248 GraphicUsed by:1249 1252 1256 1265
Symbol 1249 MovieClipUses:1248Used by:1250 1260 1262
Symbol 1250 MovieClip {ScrollArrowUp_downSkin}Uses:1247 1249Used by:1271
Symbol 1251 GraphicUsed by:1252
Symbol 1252 MovieClip {ScrollArrowDown_downSkin}Uses:1251 1248Used by:1271
Symbol 1253 GraphicUsed by:1254
Symbol 1254 MovieClip {ScrollThumb_downSkin}Uses:1253Used by:1271
Symbol 1255 GraphicUsed by:1256
Symbol 1256 MovieClip {ScrollArrowDown_overSkin}Uses:1255 1248Used by:1271
Symbol 1257 GraphicUsed by:1258
Symbol 1258 MovieClip {ScrollThumb_overSkin}Uses:1257Used by:1271
Symbol 1259 GraphicUsed by:1260
Symbol 1260 MovieClip {ScrollArrowUp_overSkin}Uses:1259 1249Used by:1271
Symbol 1261 GraphicUsed by:1262 1265
Symbol 1262 MovieClip {ScrollArrowUp_upSkin}Uses:1261 1249Used by:1271
Symbol 1263 GraphicUsed by:1264
Symbol 1264 MovieClip {ScrollThumb_upSkin}Uses:1263Used by:1271
Symbol 1265 MovieClip {ScrollArrowDown_upSkin}Uses:1261 1248Used by:1271
Symbol 1266 GraphicUsed by:1267 1268
Symbol 1267 MovieClip {ScrollArrowDown_disabledSkin}Uses:1266Used by:1271
Symbol 1268 MovieClip {ScrollArrowUp_disabledSkin}Uses:1266Used by:1271
Symbol 1269 GraphicUsed by:1270
Symbol 1270 MovieClip {ScrollBar_thumbIcon}Uses:1269Used by:1271
Symbol 1271 MovieClip {fl.controls.ScrollBar}Uses:1246 327 1212 1250 1252 1254 1256 1258 1260 1262 1264 1265 1267 1268 1270Used by:1272
Symbol 1272 MovieClip {fl.controls.List}Uses:1210 327 1227 1244 1212 1271Used by:1273 1408
Symbol 1273 MovieClip {fl.controls.ComboBox}Uses:1210 327 1212 1214 1216 1218 1220 1225 1272Used by:1314 1408
Symbol 1274 MovieClip {border_level}Uses:1074Used by:1408
Symbol 1275 GraphicUsed by:1276
Symbol 1276 MovieClipUses:1275Used by:1314
Symbol 1277 TextUses:1Used by:1314
Symbol 1278 EditableTextUses:1Used by:1314
Symbol 1279 TextUses:1Used by:1314
Symbol 1280 EditableTextUses:1Used by:1314
Symbol 1281 TextUses:1Used by:1314
Symbol 1282 EditableTextUses:1Used by:1314
Symbol 1283 TextUses:1Used by:1314
Symbol 1284 EditableTextUses:1Used by:1314
Symbol 1285 EditableTextUses:1Used by:1314
Symbol 1286 TextUses:1Used by:1314
Symbol 1287 EditableTextUses:1Used by:1314
Symbol 1288 TextUses:1Used by:1314
Symbol 1289 EditableTextUses:1Used by:1314
Symbol 1290 TextUses:1Used by:1314
Symbol 1291 EditableTextUses:1Used by:1314
Symbol 1292 TextUses:1Used by:1314
Symbol 1293 TextUses:1Used by:1314
Symbol 1294 GraphicUsed by:1295
Symbol 1295 MovieClipUses:1294Used by:1314
Symbol 1296 GraphicUsed by:1300 1304 1308 1312
Symbol 1297 TextUses:342Used by:1300
Symbol 1298 TextUses:342Used by:1300
Symbol 1299 TextUses:342Used by:1300
Symbol 1300 ButtonUses:1296 1297 1298 1299Used by:1314
Symbol 1301 TextUses:342Used by:1304
Symbol 1302 TextUses:342Used by:1304
Symbol 1303 TextUses:342Used by:1304
Symbol 1304 ButtonUses:1296 1301 1302 1303Used by:1314
Symbol 1305 TextUses:342Used by:1308
Symbol 1306 TextUses:342Used by:1308
Symbol 1307 TextUses:342Used by:1308
Symbol 1308 ButtonUses:1296 1305 1306 1307Used by:1314
Symbol 1309 TextUses:342Used by:1312
Symbol 1310 TextUses:342Used by:1312
Symbol 1311 TextUses:342Used by:1312
Symbol 1312 ButtonUses:1296 1309 1310 1311Used by:1314
Symbol 1313 EditableTextUses:1 308 310 342Used by:1314
Symbol 1314 MovieClip {editPanel}Uses:1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1273 1286 1287 1288 1289 1290 1291 1292 1293 1295 1300 1304 1308 1312 1313Used by:1408
Symbol 1315 GraphicUsed by:1316
Symbol 1316 MovieClip {electrcLine_copy}Uses:655 1315Used by:1408
Symbol 1317 GraphicUsed by:1341 1369 1377
Symbol 1318 GraphicUsed by:1341 1346 1369 1377
Symbol 1319 MovieClipUses:508Used by:1320
Symbol 1320 MovieClipUses:1058 1319 637 20Used by:1341 1377
Symbol 1321 MovieClipUses:620Used by:1341 1346 1369 1377
Symbol 1322 MovieClipUses:7Used by:1325 1346
Symbol 1323 MovieClipUses:9Used by:1325 1346
Symbol 1324 MovieClipUses:11Used by:1325 1346
Symbol 1325 MovieClipUses:1322 1323 1324Used by:1341 1369 1377
Symbol 1326 GraphicUsed by:1329
Symbol 1327 MovieClipUses:900Used by:1329
Symbol 1328 MovieClipUses:902Used by:1329
Symbol 1329 MovieClipUses:1326 1327 1328Used by:1330 1359
Symbol 1330 MovieClipUses:1329Used by:1341 1377
Symbol 1331 GraphicUsed by:1341
Symbol 1332 MovieClipUses:964 966 968 970Used by:1341
Symbol 1333 MovieClipUses:673Used by:1334
Symbol 1334 MovieClipUses:1333Used by:1336 1364 1376
Symbol 1335 MovieClipUses:76 77 78 79Used by:1336
Symbol 1336 MovieClipUses:1334 70 71 72 73 74 676 87 88 1335 82Used by:1341 1377
Symbol 1337 GraphicUsed by:1338
Symbol 1338 MovieClipUses:1337Used by:1341 1377
Symbol 1339 GraphicUsed by:1341 1346 1369 1377
Symbol 1340 GraphicUsed by:1341
Symbol 1341 MovieClipUses:1317 1318 1320 1321 1325 1330 1331 1332 1336 1338 1339 1340Used by:1378
Symbol 1342 TextUses:132Used by:1378
Symbol 1343 TextUses:22Used by:1378
Symbol 1344 TextUses:132Used by:1378
Symbol 1345 GraphicUsed by:1346
Symbol 1346 MovieClipUses:1345 1321 1318 1322 1323 1324 1339Used by:1378
Symbol 1347 TextUses:22Used by:1378
Symbol 1348 MovieClipUses:692 693 694 695 696 697 698 699 700 701 702Used by:1354
Symbol 1349 MovieClipUses:705Used by:1350
Symbol 1350 MovieClipUses:1349Used by:1354
Symbol 1351 MovieClipUses:96 97 98 99Used by:1354
Symbol 1352 GraphicUsed by:1353
Symbol 1353 MovieClipUses:101 1352 103 104Used by:1354
Symbol 1354 MovieClipUses:1348 1350 708 709 92 93 94 95 1351 1353 107Used by:1355
Symbol 1355 MovieClipUses:1354Used by:1378
Symbol 1356 TextUses:132Used by:1378
Symbol 1357 TextUses:22Used by:1378
Symbol 1358 GraphicUsed by:1369
Symbol 1359 MovieClipUses:1329Used by:1369
Symbol 1360 GraphicUsed by:1361
Symbol 1361 MovieClipUses:1360Used by:1369
Symbol 1362 MovieClipUses:118 119 120 121Used by:1364
Symbol 1363 MovieClipUses:123 124 126 125Used by:1364
Symbol 1364 MovieClipUses:741 1334 109 110 111 112 113 114 566 116 117 1362 1363 128 129Used by:1369
Symbol 1365 GraphicUsed by:1368 1380
Symbol 1366 GraphicUsed by:1368 1380
Symbol 1367 GraphicUsed by:1368 1380
Symbol 1368 MovieClip {VoltConnectarmorgames_fla.Timeline_595}Uses:1365 1366 1367Used by:1369
Symbol 1369 MovieClipUses:1358 1318 1359 1321 1325 1361 1364 1339 1317 1368Used by:1378
Symbol 1370 TextUses:132Used by:1378
Symbol 1371 TextUses:22Used by:1378
Symbol 1372 GraphicUsed by:1373
Symbol 1373 MovieClipUses:1372Used by:1374
Symbol 1374 MovieClipUses:1373 1059Used by:1377
Symbol 1375 MovieClipUses:60 61 62 63Used by:1376
Symbol 1376 MovieClipUses:1334 51 52 53 728 55 56 57 58 59 1375 66Used by:1377
Symbol 1377 MovieClipUses:1317 1318 1320 1321 1325 1330 1336 1374 1338 1376 1339 57Used by:1378
Symbol 1378 MovieClipUses:1055 1056 1060 1065 1054 1341 1342 1343 1344 1346 1347 1355 1356 1357 1369 1370 1371 1377Used by:1379
Symbol 1379 MovieClip {first_appearance_volt_clip}Uses:596 1378 147Used by:1408
Symbol 1380 MovieClip {VoltConnectarmorgames_fla.Timeline_602}Uses:1365 1366 1367Used by:1381
Symbol 1381 MovieClip {wat_mc}Uses:1380Used by:1408
Symbol 1382 BitmapUsed by:1383
Symbol 1383 GraphicUses:1382Used by:1386
Symbol 1384 BitmapUsed by:1385
Symbol 1385 GraphicUses:1384Used by:1386
Symbol 1386 MovieClip {hor_funflow}Uses:1383 1385Used by:1408
Symbol 1387 BitmapUsed by:1388
Symbol 1388 GraphicUses:1387Used by:1389
Symbol 1389 MovieClip {mini_funflow}Uses:1388Used by:1408
Symbol 1390 BitmapUsed by:1391
Symbol 1391 GraphicUses:1390Used by:1394
Symbol 1392 BitmapUsed by:1393
Symbol 1393 GraphicUses:1392Used by:1394
Symbol 1394 MovieClip {ver_funflow}Uses:1391 1393Used by:1408
Symbol 1395 BitmapUsed by:1396
Symbol 1396 GraphicUses:1395Used by:1399
Symbol 1397 BitmapUsed by:1398
Symbol 1398 GraphicUses:1397Used by:1399
Symbol 1399 MovieClip {hor_funflow_2}Uses:1396 1398Used by:1408
Symbol 1400 ButtonUses:214Used by:1408
Symbol 1401 Sound {SndWater}Used by:1408
Symbol 1402 Sound {SndBonus}Used by:1408
Symbol 1403 Sound {SndNoContact}Used by:1408
Symbol 1404 Sound {loop01}Used by:1408
Symbol 1405 Sound {loop02}Used by:1408
Symbol 1406 Sound {loop03}Used by:1408
Symbol 1407 Sound {loop05}Used by:1408
Symbol 1408 MovieClip {VoltConnectarmorgames_fla.allClip_141}Uses:573 577 579 581 583 584 588 590 592 594 617 653 656 664 665 666 667 668 669 670 671 683 685 687 689 691 720 721 723 725 727 733 734 736 738 740 748 749 751 753 755 757 758 759 761 764 768 771 772 773 774 784 866 881 1043 1069 1071 1072 1074 1076 1085 1091 1092 1093 1095 1097 1104 1109 1124 1131 1132 1138 1141 1146 1150 1154 1155 1156 1165 1170 1175 1180 1181 1184 1189 1196 1200 1203 1207 1208 1273 1272 1225 147 1274 951 551 848 865 1314 1316 1379 878 831 1381 677 680 649 647 645 642 1386 1389 1394 1399 880 616 1400 856 1401 1402 1403 1404 1405 1406 1407Used by:Timeline

Instance Names

"high_scores"Frame 1Symbol 504 MovieClip {com.novelgames.flashgames.highscores.HighScores}
"load_mc"Frame 1Symbol 517 MovieClip
"title_mc"Frame 1Symbol 519 MovieClip
"start_btn"Frame 1Symbol 147 MovieClip {myBtnBig}
"back2_mc_"Symbol 147 MovieClip {myBtnBig} Frame 1Symbol 141 MovieClip
"active_mc_"Symbol 147 MovieClip {myBtnBig} Frame 1Symbol 141 MovieClip
"back_mc_"Symbol 147 MovieClip {myBtnBig} Frame 1Symbol 144 MovieClip
"x_txt_"Symbol 147 MovieClip {myBtnBig} Frame 1Symbol 145 EditableText
"fil2"Symbol 147 MovieClip {myBtnBig} Frame 1Symbol 146 MovieClip
"game_border"Symbol 148 MovieClip {winTtgLogin} Frame 1Symbol 139 MovieClip
"cancel_btn_"Symbol 148 MovieClip {winTtgLogin} Frame 1Symbol 147 MovieClip {myBtnBig}
"login_btn_"Symbol 148 MovieClip {winTtgLogin} Frame 1Symbol 147 MovieClip {myBtnBig}
"flag_mc"Symbol 155 MovieClip {VoltConnectarmorgames_fla.flag_641} Frame 1Symbol 154 MovieClip
"bumper_mc_"Symbol 200 MovieClip {twotower_mc} Frame 1Symbol 197 MovieClip {VoltConnectarmorgames_fla.splash_639}
"bumper_btn"Symbol 200 MovieClip {twotower_mc} Frame 1Symbol 199 Button
"inside_mc"Symbol 232 MovieClip {armorgames_intro} Frame 1Symbol 231 MovieClip {VoltConnectarmorgames_fla.ag_intro_mc_631}
"bg"Symbol 256 MovieClip {mcBannedSign} Frame 1Symbol 253 MovieClip
"RED"Symbol 276 MovieClip {WaterHolderR} Frame 1Symbol 275 MovieClip {com.midasplayer.extras.Water}
"GREEN"Symbol 277 MovieClip {WaterHolderG} Frame 1Symbol 275 MovieClip {com.midasplayer.extras.Water}
"BLUE"Symbol 278 MovieClip {WaterHolderB} Frame 1Symbol 275 MovieClip {com.midasplayer.extras.Water}
"____BTNBIG"Symbol 335 MovieClip {clsSUBMITWINDOW} Frame 1Symbol 306 Button {clsBTNINV}
"____TITLE"Symbol 335 MovieClip {clsSUBMITWINDOW} Frame 1Symbol 309 EditableText
"____MESSAGE"Symbol 335 MovieClip {clsSUBMITWINDOW} Frame 1Symbol 311 EditableText
"____ERROR"Symbol 335 MovieClip {clsSUBMITWINDOW} Frame 1Symbol 312 EditableText
"____CLOSE"Symbol 335 MovieClip {clsSUBMITWINDOW} Frame 1Symbol 315 MovieClip {clsCLOSE}
"____TRYAGAIN"Symbol 335 MovieClip {clsSUBMITWINDOW} Frame 1Symbol 318 MovieClip {clsTRYAGAIN}
"____SUBMIT"Symbol 335 MovieClip {clsSUBMITWINDOW} Frame 1Symbol 320 MovieClip {clsSUBMIT}
"____HI"Symbol 335 MovieClip {clsSUBMITWINDOW} Frame 1Symbol 324 MovieClip {clsHI}
"____INITIALS"Symbol 335 MovieClip {clsSUBMITWINDOW} Frame 1Symbol 334 MovieClip {fl.controls.TextInput}
"____SUBMITWINDOW"Symbol 336 MovieClip {HoodaScore30} Frame 1Symbol 335 MovieClip {clsSUBMITWINDOW}
"nameText"Symbol 372 MovieClip Frame 1Symbol 366 EditableText
"scoreText"Symbol 372 MovieClip Frame 1Symbol 367 EditableText
"rankText"Symbol 372 MovieClip Frame 1Symbol 368 EditableText
"highlight"Symbol 372 MovieClip Frame 1Symbol 371 MovieClip
"titleText"Symbol 382 MovieClip {com.novelgames.flashgames.highscores.Table} Frame 1Symbol 361 MovieClip
"item0"Symbol 382 MovieClip {com.novelgames.flashgames.highscores.Table} Frame 1Symbol 372 MovieClip
"item1"Symbol 382 MovieClip {com.novelgames.flashgames.highscores.Table} Frame 1Symbol 372 MovieClip
"item2"Symbol 382 MovieClip {com.novelgames.flashgames.highscores.Table} Frame 1Symbol 372 MovieClip
"item3"Symbol 382 MovieClip {com.novelgames.flashgames.highscores.Table} Frame 1Symbol 372 MovieClip
"item4"Symbol 382 MovieClip {com.novelgames.flashgames.highscores.Table} Frame 1Symbol 372 MovieClip
"item5"Symbol 382 MovieClip {com.novelgames.flashgames.highscores.Table} Frame 1Symbol 372 MovieClip
"item6"Symbol 382 MovieClip {com.novelgames.flashgames.highscores.Table} Frame 1Symbol 372 MovieClip
"item7"Symbol 382 MovieClip {com.novelgames.flashgames.highscores.Table} Frame 1Symbol 372 MovieClip
"item8"Symbol 382 MovieClip {com.novelgames.flashgames.highscores.Table} Frame 1Symbol 372 MovieClip
"item9"Symbol 382 MovieClip {com.novelgames.flashgames.highscores.Table} Frame 1Symbol 372 MovieClip
"closeButton"Symbol 382 MovieClip {com.novelgames.flashgames.highscores.Table} Frame 1Symbol 375 Button
"nextPageButton"Symbol 382 MovieClip {com.novelgames.flashgames.highscores.Table} Frame 1Symbol 378 Button
"previousPageButton"Symbol 382 MovieClip {com.novelgames.flashgames.highscores.Table} Frame 1Symbol 381 Button
"closeButton"Symbol 397 MovieClip {com.novelgames.flashgames.highscores.Status} Frame 1Symbol 375 Button
"scoreText"Symbol 426 MovieClip {com.novelgames.flashgames.highscores.ScorePage} Frame 1Symbol 399 EditableText
"submitButton"Symbol 426 MovieClip {com.novelgames.flashgames.highscores.ScorePage} Frame 1Symbol 406 Button
"twitterButton"Symbol 426 MovieClip {com.novelgames.flashgames.highscores.ScorePage} Frame 1Symbol 417 MovieClip
"mySpaceButton"Symbol 426 MovieClip {com.novelgames.flashgames.highscores.ScorePage} Frame 1Symbol 419 MovieClip
"facebookButton"Symbol 426 MovieClip {com.novelgames.flashgames.highscores.ScorePage} Frame 1Symbol 421 MovieClip
"emailButton"Symbol 426 MovieClip {com.novelgames.flashgames.highscores.ScorePage} Frame 1Symbol 423 MovieClip
"closeButton"Symbol 426 MovieClip {com.novelgames.flashgames.highscores.ScorePage} Frame 1Symbol 375 Button
"nameText"Symbol 434 MovieClip {com.novelgames.flashgames.highscores.NameEmailPage} Frame 1Symbol 428 EditableText
"emailText"Symbol 434 MovieClip {com.novelgames.flashgames.highscores.NameEmailPage} Frame 1Symbol 433 EditableText
"closeButton"Symbol 434 MovieClip {com.novelgames.flashgames.highscores.NameEmailPage} Frame 1Symbol 375 Button
"submitButton"Symbol 434 MovieClip {com.novelgames.flashgames.highscores.NameEmailPage} Frame 1Symbol 406 Button
"nameText"Symbol 437 MovieClip {com.novelgames.flashgames.highscores.NamePage} Frame 1Symbol 436 EditableText
"closeButton"Symbol 437 MovieClip {com.novelgames.flashgames.highscores.NamePage} Frame 1Symbol 375 Button
"submitButton"Symbol 437 MovieClip {com.novelgames.flashgames.highscores.NamePage} Frame 1Symbol 406 Button
"usernameText"Symbol 464 MovieClip {com.novelgames.flashgames.highscores.LoginPage} Frame 1Symbol 439 EditableText
"passwordText"Symbol 464 MovieClip {com.novelgames.flashgames.highscores.LoginPage} Frame 1Symbol 444 EditableText
"closeButton"Symbol 464 MovieClip {com.novelgames.flashgames.highscores.LoginPage} Frame 1Symbol 375 Button
"submitButton"Symbol 464 MovieClip {com.novelgames.flashgames.highscores.LoginPage} Frame 1Symbol 453 Button
"registerButton"Symbol 464 MovieClip {com.novelgames.flashgames.highscores.LoginPage} Frame 1Symbol 458 Button
"submitScoreAsGuestButton"Symbol 464 MovieClip {com.novelgames.flashgames.highscores.LoginPage} Frame 1Symbol 461 Button
"forgetPasswordButton"Symbol 464 MovieClip {com.novelgames.flashgames.highscores.LoginPage} Frame 1Symbol 463 MovieClip
"nameText"Symbol 473 MovieClip {com.novelgames.flashgames.highscores.NameFailedPage} Frame 1Symbol 465 EditableText
"reasonText"Symbol 473 MovieClip {com.novelgames.flashgames.highscores.NameFailedPage} Frame 1Symbol 472 MovieClip
"closeButton"Symbol 473 MovieClip {com.novelgames.flashgames.highscores.NameFailedPage} Frame 1Symbol 375 Button
"submitButton"Symbol 473 MovieClip {com.novelgames.flashgames.highscores.NameFailedPage} Frame 1Symbol 406 Button
"nameText"Symbol 476 MovieClip {com.novelgames.flashgames.highscores.NameEmailFailedPage} Frame 1Symbol 474 EditableText
"emailText"Symbol 476 MovieClip {com.novelgames.flashgames.highscores.NameEmailFailedPage} Frame 1Symbol 475 EditableText
"reasonText"Symbol 476 MovieClip {com.novelgames.flashgames.highscores.NameEmailFailedPage} Frame 1Symbol 472 MovieClip
"closeButton"Symbol 476 MovieClip {com.novelgames.flashgames.highscores.NameEmailFailedPage} Frame 1Symbol 375 Button
"submitButton"Symbol 476 MovieClip {com.novelgames.flashgames.highscores.NameEmailFailedPage} Frame 1Symbol 406 Button
"usernameText"Symbol 480 MovieClip {com.novelgames.flashgames.highscores.LoginFailedPage} Frame 1Symbol 478 EditableText
"passwordText"Symbol 480 MovieClip {com.novelgames.flashgames.highscores.LoginFailedPage} Frame 1Symbol 479 EditableText
"reasonText"Symbol 480 MovieClip {com.novelgames.flashgames.highscores.LoginFailedPage} Frame 1Symbol 472 MovieClip
"closeButton"Symbol 480 MovieClip {com.novelgames.flashgames.highscores.LoginFailedPage} Frame 1Symbol 375 Button
"submitButton"Symbol 480 MovieClip {com.novelgames.flashgames.highscores.LoginFailedPage} Frame 1Symbol 453 Button
"registerButton"Symbol 480 MovieClip {com.novelgames.flashgames.highscores.LoginFailedPage} Frame 1Symbol 458 Button
"submitScoreAsGuestButton"Symbol 480 MovieClip {com.novelgames.flashgames.highscores.LoginFailedPage} Frame 1Symbol 461 Button
"forgetPasswordButton"Symbol 480 MovieClip {com.novelgames.flashgames.highscores.LoginFailedPage} Frame 1Symbol 463 MovieClip
"titleText"Symbol 483 MovieClip {com.novelgames.flashgames.highscores.TableShare} Frame 1Symbol 361 MovieClip
"item0"Symbol 483 MovieClip {com.novelgames.flashgames.highscores.TableShare} Frame 1Symbol 372 MovieClip
"item1"Symbol 483 MovieClip {com.novelgames.flashgames.highscores.TableShare} Frame 1Symbol 372 MovieClip
"item2"Symbol 483 MovieClip {com.novelgames.flashgames.highscores.TableShare} Frame 1Symbol 372 MovieClip
"item3"Symbol 483 MovieClip {com.novelgames.flashgames.highscores.TableShare} Frame 1Symbol 372 MovieClip
"item4"Symbol 483 MovieClip {com.novelgames.flashgames.highscores.TableShare} Frame 1Symbol 372 MovieClip
"twitterButton"Symbol 483 MovieClip {com.novelgames.flashgames.highscores.TableShare} Frame 1Symbol 417 MovieClip
"mySpaceButton"Symbol 483 MovieClip {com.novelgames.flashgames.highscores.TableShare} Frame 1Symbol 419 MovieClip
"facebookButton"Symbol 483 MovieClip {com.novelgames.flashgames.highscores.TableShare} Frame 1Symbol 421 MovieClip
"emailButton"Symbol 483 MovieClip {com.novelgames.flashgames.highscores.TableShare} Frame 1Symbol 423 MovieClip
"closeButton"Symbol 483 MovieClip {com.novelgames.flashgames.highscores.TableShare} Frame 1Symbol 375 Button
"nextPageButton"Symbol 483 MovieClip {com.novelgames.flashgames.highscores.TableShare} Frame 1Symbol 378 Button
"previousPageButton"Symbol 483 MovieClip {com.novelgames.flashgames.highscores.TableShare} Frame 1Symbol 381 Button
"usernameText"Symbol 486 MovieClip {com.novelgames.flashgames.highscores.LoginNoGuestPage} Frame 1Symbol 484 EditableText
"passwordText"Symbol 486 MovieClip {com.novelgames.flashgames.highscores.LoginNoGuestPage} Frame 1Symbol 485 EditableText
"closeButton"Symbol 486 MovieClip {com.novelgames.flashgames.highscores.LoginNoGuestPage} Frame 1Symbol 375 Button
"submitButton"Symbol 486 MovieClip {com.novelgames.flashgames.highscores.LoginNoGuestPage} Frame 1Symbol 453 Button
"registerButton"Symbol 486 MovieClip {com.novelgames.flashgames.highscores.LoginNoGuestPage} Frame 1Symbol 458 Button
"forgetPasswordButton"Symbol 486 MovieClip {com.novelgames.flashgames.highscores.LoginNoGuestPage} Frame 1Symbol 463 MovieClip
"usernameText"Symbol 490 MovieClip {com.novelgames.flashgames.highscores.LoginNoGuestFailedPage} Frame 1Symbol 488 EditableText
"passwordText"Symbol 490 MovieClip {com.novelgames.flashgames.highscores.LoginNoGuestFailedPage} Frame 1Symbol 489 EditableText
"reasonText"Symbol 490 MovieClip {com.novelgames.flashgames.highscores.LoginNoGuestFailedPage} Frame 1Symbol 472 MovieClip
"closeButton"Symbol 490 MovieClip {com.novelgames.flashgames.highscores.LoginNoGuestFailedPage} Frame 1Symbol 375 Button
"submitButton"Symbol 490 MovieClip {com.novelgames.flashgames.highscores.LoginNoGuestFailedPage} Frame 1Symbol 453 Button
"registerButton"Symbol 490 MovieClip {com.novelgames.flashgames.highscores.LoginNoGuestFailedPage} Frame 1Symbol 458 Button
"forgetPasswordButton"Symbol 490 MovieClip {com.novelgames.flashgames.highscores.LoginNoGuestFailedPage} Frame 1Symbol 463 MovieClip
"closeButton"Symbol 503 MovieClip {com.novelgames.flashgames.highscores.EmailPage} Frame 1Symbol 375 Button
"sendButton"Symbol 503 MovieClip {com.novelgames.flashgames.highscores.EmailPage} Frame 1Symbol 495 Button
"ownEmailText"Symbol 503 MovieClip {com.novelgames.flashgames.highscores.EmailPage} Frame 1Symbol 496 EditableText
"friendEmailsText"Symbol 503 MovieClip {com.novelgames.flashgames.highscores.EmailPage} Frame 1Symbol 502 EditableText
"mouth_mc_"Symbol 549 MovieClip Frame 1Symbol 541 MovieClip
"head_mc_"Symbol 550 MovieClip Frame 1Symbol 549 MovieClip
"inside_mc"Symbol 551 MovieClip {button_for_sound} Frame 1Symbol 550 MovieClip
"v_1"Symbol 572 MovieClip Frame 1Symbol 556 MovieClip
"v_2"Symbol 572 MovieClip Frame 2Symbol 562 MovieClip
"v_3"Symbol 572 MovieClip Frame 3Symbol 565 MovieClip
"v_4"Symbol 572 MovieClip Frame 4Symbol 570 MovieClip
"screens_mc_"Symbol 573 MovieClip {game} Frame 1Symbol 146 MovieClip
"cap_txt_"Symbol 573 MovieClip {game} Frame 1Symbol 520 EditableText
"caption_mc_"Symbol 573 MovieClip {game} Frame 1Symbol 522 MovieClip
"game_border"Symbol 573 MovieClip {game} Frame 1Symbol 139 MovieClip
"copyright_txt_"Symbol 573 MovieClip {game} Frame 1Symbol 523 EditableText
"button_sound_"Symbol 573 MovieClip {game} Frame 1Symbol 551 MovieClip {button_for_sound}
"mouse_mc"Symbol 573 MovieClip {game} Frame 1Symbol 572 MovieClip
"mask_mc"Symbol 588 MovieClip {line1} Frame 1Symbol 585 MovieClip
"line_mc"Symbol 588 MovieClip {line1} Frame 1Symbol 587 MovieClip
"back2_mc_"Symbol 616 MovieClip {myBtnBigcopy2} Frame 1Symbol 141 MovieClip
"active_mc_"Symbol 616 MovieClip {myBtnBigcopy2} Frame 1Symbol 141 MovieClip
"back_mc_"Symbol 616 MovieClip {myBtnBigcopy2} Frame 1Symbol 144 MovieClip
"x_txt_"Symbol 616 MovieClip {myBtnBigcopy2} Frame 1Symbol 613 EditableText
"fil2"Symbol 616 MovieClip {myBtnBigcopy2} Frame 1Symbol 146 MovieClip
"fon_mc_"Symbol 617 MovieClip {windowInGame} Frame 1Symbol 596 MovieClip
"backside_mc_"Symbol 617 MovieClip {windowInGame} Frame 1Symbol 610 MovieClip
"next2_btn_"Symbol 617 MovieClip {windowInGame} Frame 1Symbol 147 MovieClip {myBtnBig}
"more_games_btn_"Symbol 617 MovieClip {windowInGame} Frame 1Symbol 147 MovieClip {myBtnBig}
"walkthrough_btn_"Symbol 617 MovieClip {windowInGame} Frame 1Symbol 147 MovieClip {myBtnBig}
"message_txt"Symbol 617 MovieClip {windowInGame} Frame 1Symbol 611 EditableText
"title_txt"Symbol 617 MovieClip {windowInGame} Frame 1Symbol 612 EditableText
"play_on_f_btn_"Symbol 617 MovieClip {windowInGame} Frame 1Symbol 616 MovieClip {myBtnBigcopy2}
"again_btn_"Symbol 617 MovieClip {windowInGame} Frame 1Symbol 147 MovieClip {myBtnBig}
"levelFon_mc_"Symbol 653 MovieClip {workZone} Frame 1Symbol 650 MovieClip
"mask_mc_"Symbol 653 MovieClip {workZone} Frame 1Symbol 652 MovieClip {workZonePlat}
"mask_mc"Symbol 656 MovieClip {electrcLine} Frame 1Symbol 655 MovieClip
"mask_mc"Symbol 665 MovieClip {electric_line_in_100} Frame 1Symbol 655 MovieClip
"mask_mc"Symbol 666 MovieClip {electric_line_in_40} Frame 1Symbol 655 MovieClip
"mask_mc"Symbol 667 MovieClip {electric_line_in_50} Frame 1Symbol 655 MovieClip
"mask_mc"Symbol 668 MovieClip {electric_line_in_60} Frame 1Symbol 655 MovieClip
"mask_mc"Symbol 669 MovieClip {electric_line_in_70} Frame 1Symbol 655 MovieClip
"mask_mc"Symbol 670 MovieClip {electric_line_in_80} Frame 1Symbol 655 MovieClip
"mask_mc"Symbol 671 MovieClip {electric_line_in_90} Frame 1Symbol 655 MovieClip
"in_mc"Symbol 683 MovieClip {volt_in1} Frame 1Symbol 682 MovieClip {VoltConnectarmorgames_fla.volt_in_in1_199}
"in_mc"Symbol 720 MovieClip {volt_in2} Frame 1Symbol 719 MovieClip {VoltConnectarmorgames_fla.volt_in_in2_212}
"in_mc"Symbol 733 MovieClip {volt_in3} Frame 1Symbol 732 MovieClip {VoltConnectarmorgames_fla.volt_in_in3_228}
"in_mc"Symbol 748 MovieClip {volt_in4} Frame 1Symbol 747 MovieClip {VoltConnectarmorgames_fla.volt_in_in4_239}
"ownId_txt"Symbol 757 MovieClip {volt1} Frame 1Symbol 756 EditableText
"ownId_txt"Symbol 761 MovieClip {volt4} Frame 1Symbol 760 EditableText
"game_border"Symbol 784 MovieClip {credits_screen_clip} Frame 1Symbol 139 MovieClip
"menu_btn"Symbol 784 MovieClip {credits_screen_clip} Frame 1Symbol 147 MovieClip {myBtnBig}
"plate_1"Symbol 804 MovieClip Frame 1Symbol 797 MovieClip
"plate_2"Symbol 804 MovieClip Frame 1Symbol 799 MovieClip
"plate_3"Symbol 804 MovieClip Frame 1Symbol 801 MovieClip
"plate_4"Symbol 804 MovieClip Frame 1Symbol 803 MovieClip
"v_3"Symbol 805 MovieClip Frame 1Symbol 565 MovieClip
"v_1"Symbol 805 MovieClip Frame 1Symbol 556 MovieClip
"v_2"Symbol 805 MovieClip Frame 1Symbol 562 MovieClip
"v_4"Symbol 805 MovieClip Frame 1Symbol 570 MovieClip
"c_2"Symbol 830 MovieClip Frame 1Symbol 807 MovieClip
"c_3"Symbol 830 MovieClip Frame 1Symbol 809 MovieClip
"c_4"Symbol 830 MovieClip Frame 1Symbol 811 MovieClip
"c_1"Symbol 830 MovieClip Frame 1Symbol 813 MovieClip
"dark_2"Symbol 830 MovieClip Frame 1Symbol 815 MovieClip
"dark_3"Symbol 830 MovieClip Frame 1Symbol 817 MovieClip
"dark_4"Symbol 830 MovieClip Frame 1Symbol 819 MovieClip
"dark_1"Symbol 830 MovieClip Frame 1Symbol 821 MovieClip
"r_1"Symbol 830 MovieClip Frame 1Symbol 825 MovieClip
"r_2"Symbol 830 MovieClip Frame 1Symbol 825 MovieClip
"r_3"Symbol 830 MovieClip Frame 1Symbol 825 MovieClip
"r_4"Symbol 830 MovieClip Frame 1Symbol 825 MovieClip
"population_1"Symbol 830 MovieClip Frame 1Symbol 826 EditableText
"population_2"Symbol 830 MovieClip Frame 1Symbol 827 EditableText
"population_3"Symbol 830 MovieClip Frame 1Symbol 828 EditableText
"population_4"Symbol 830 MovieClip Frame 1Symbol 829 EditableText
"volts_plate"Symbol 831 MovieClip {voltMode} Frame 1Symbol 804 MovieClip
"volts_pic"Symbol 831 MovieClip {voltMode} Frame 1Symbol 805 MovieClip
"border_pic"Symbol 831 MovieClip {voltMode} Frame 1Symbol 830 MovieClip
"connect_txt_"Symbol 837 MovieClip Frame 1Symbol 836 EditableText
"base_mc_"Symbol 848 MovieClip {button_pause} Frame 1Symbol 839 MovieClip
"in_mc"Symbol 857 MovieClip {VoltConnectarmorgames_fla.QualityButton_313} Frame 1Symbol 856 Button {QualityButton_low}
"clock_mc_"Symbol 865 MovieClip {counter_timer} Frame 1Symbol 861 MovieClip
"my_txt"Symbol 865 MovieClip {counter_timer} Frame 1Symbol 864 EditableText
"workZone_mc_"Symbol 866 MovieClip {level} Frame 1Symbol 653 MovieClip {workZone}
"counter_volt"Symbol 866 MovieClip {level} Frame 1Symbol 831 MovieClip {voltMode}
"connect_mc"Symbol 866 MovieClip {level} Frame 1Symbol 837 MovieClip
"button_pause_"Symbol 866 MovieClip {level} Frame 1Symbol 848 MovieClip {button_pause}
"winEnd_"Symbol 866 MovieClip {level} Frame 1Symbol 617 MovieClip {windowInGame}
"again_btn_"Symbol 866 MovieClip {level} Frame 1Symbol 147 MovieClip {myBtnBig}
"exit_btn_"Symbol 866 MovieClip {level} Frame 1Symbol 147 MovieClip {myBtnBig}
"next_btn_"Symbol 866 MovieClip {level} Frame 1Symbol 147 MovieClip {myBtnBig}
"walkthrough_btn_"Symbol 866 MovieClip {level} Frame 1Symbol 147 MovieClip {myBtnBig}
"more_games_btn_"Symbol 866 MovieClip {level} Frame 1Symbol 147 MovieClip {myBtnBig}
"quality_btn"Symbol 866 MovieClip {level} Frame 1Symbol 857 MovieClip {VoltConnectarmorgames_fla.QualityButton_313}
"counter_time"Symbol 866 MovieClip {level} Frame 1Symbol 865 MovieClip {counter_timer}
"play_btn"Symbol 878 MovieClip {pointer_for_menu_button} Frame 1Symbol 147 MovieClip {myBtnBig}
"highscores_btn"Symbol 878 MovieClip {pointer_for_menu_button} Frame 1Symbol 147 MovieClip {myBtnBig}
"more_games_btn"Symbol 878 MovieClip {pointer_for_menu_button} Frame 1Symbol 147 MovieClip {myBtnBig}
"credits_btn"Symbol 878 MovieClip {pointer_for_menu_button} Frame 1Symbol 147 MovieClip {myBtnBig}
"twoTower_mc"Symbol 878 MovieClip {pointer_for_menu_button} Frame 1Symbol 292 MovieClip {sponsor_logo_mathdaily}
"back2_mc_"Symbol 880 MovieClip {myBtnBigcopy} Frame 1Symbol 141 MovieClip
"active_mc_"Symbol 880 MovieClip {myBtnBigcopy} Frame 1Symbol 141 MovieClip
"back_mc_"Symbol 880 MovieClip {myBtnBigcopy} Frame 1Symbol 144 MovieClip
"x_txt_"Symbol 880 MovieClip {myBtnBigcopy} Frame 1Symbol 879 EditableText
"fil2"Symbol 880 MovieClip {myBtnBigcopy} Frame 1Symbol 146 MovieClip
"pointer_mc_"Symbol 881 MovieClip {menu_screen_clip} Frame 1Symbol 878 MovieClip {pointer_for_menu_button}
"play_on_f_btn_"Symbol 881 MovieClip {menu_screen_clip} Frame 1Symbol 880 MovieClip {myBtnBigcopy}
"record_btn"Symbol 881 MovieClip {menu_screen_clip} Frame 1Symbol 147 MovieClip {myBtnBig}
"anim_mc"Symbol 945 MovieClip Frame 1Symbol 677 MovieClip {Глаза1}
"anim_mc"Symbol 948 MovieClip Frame 1Symbol 680 MovieClip {Глаза3}
"x_txt_"Symbol 951 MovieClip {btLevel} Frame 1Symbol 942 EditableText
"for_event_"Symbol 951 MovieClip {btLevel} Frame 1Symbol 944 MovieClip
"lev1"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev2"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev3"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev4"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev5"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev6"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev7"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev8"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev9"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev10"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev11"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev12"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev13"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev14"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev15"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev16"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev17"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev18"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev19"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev20"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev21"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev22"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev23"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev24"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"lev25"Symbol 952 MovieClip Frame 1Symbol 951 MovieClip {btLevel}
"mode_evolution_"Symbol 1043 MovieClip {screenSelectGame} Frame 1Symbol 952 MovieClip
"game_border"Symbol 1043 MovieClip {screenSelectGame} Frame 1Symbol 139 MovieClip
"menu_btn"Symbol 1043 MovieClip {screenSelectGame} Frame 1Symbol 147 MovieClip {myBtnBig}
"score_txt"Symbol 1043 MovieClip {screenSelectGame} Frame 1Symbol 960 EditableText
"game_border"Symbol 1069 MovieClip {screenSubmit} Frame 1Symbol 139 MovieClip
"submit_btn_"Symbol 1069 MovieClip {screenSubmit} Frame 1Symbol 147 MovieClip {myBtnBig}
"menu_btn_"Symbol 1069 MovieClip {screenSubmit} Frame 1Symbol 147 MovieClip {myBtnBig}
"map_btn_"Symbol 1069 MovieClip {screenSubmit} Frame 1Symbol 147 MovieClip {myBtnBig}
"score_txt"Symbol 1069 MovieClip {screenSubmit} Frame 1Symbol 1067 EditableText
"p1"Symbol 1072 MovieClip {physOval} Frame 1Symbol 146 MovieClip
"p2"Symbol 1072 MovieClip {physOval} Frame 1Symbol 146 MovieClip
"p3"Symbol 1072 MovieClip {physOval} Frame 1Symbol 146 MovieClip
"p8"Symbol 1072 MovieClip {physOval} Frame 1Symbol 146 MovieClip
"p7"Symbol 1072 MovieClip {physOval} Frame 1Symbol 146 MovieClip
"p5"Symbol 1072 MovieClip {physOval} Frame 1Symbol 146 MovieClip
"p4"Symbol 1072 MovieClip {physOval} Frame 1Symbol 146 MovieClip
"p6"Symbol 1072 MovieClip {physOval} Frame 1Symbol 146 MovieClip
"p1"Symbol 1076 MovieClip {physTrapecia} Frame 1Symbol 146 MovieClip
"p2"Symbol 1076 MovieClip {physTrapecia} Frame 1Symbol 146 MovieClip
"p4"Symbol 1076 MovieClip {physTrapecia} Frame 1Symbol 146 MovieClip
"p3"Symbol 1076 MovieClip {physTrapecia} Frame 1Symbol 146 MovieClip
"box_txt"Symbol 1122 MovieClip Frame 1Symbol 1118 EditableText
"box_mc"Symbol 1123 MovieClip Frame 8Symbol 1122 MovieClip
"inside_mc"Symbol 1124 MovieClip {pBonusBox} Frame 1Symbol 1123 MovieClip
"under_mc"Symbol 1314 MovieClip {editPanel} Frame 1Symbol 1276 MovieClip
"simple_txt_"Symbol 1314 MovieClip {editPanel} Frame 1Symbol 1278 EditableText
"stat_txt_"Symbol 1314 MovieClip {editPanel} Frame 1Symbol 1280 EditableText
"scotch_txt_"Symbol 1314 MovieClip {editPanel} Frame 1Symbol 1282 EditableText
"swim_txt_"Symbol 1314 MovieClip {editPanel} Frame 1Symbol 1284 EditableText
"bonus_txt_"Symbol 1314 MovieClip {editPanel} Frame 1Symbol 1285 EditableText
"bonus_type_mc_"Symbol 1314 MovieClip {editPanel} Frame 1Symbol 1273 MovieClip {fl.controls.ComboBox}
"combo_new_volt"Symbol 1314 MovieClip {editPanel} Frame 1Symbol 1273 MovieClip {fl.controls.ComboBox}
"rot_txt_"Symbol 1314 MovieClip {editPanel} Frame 1Symbol 1287 EditableText
"xs_txt_"Symbol 1314 MovieClip {editPanel} Frame 1Symbol 1289 EditableText
"ys_txt_"Symbol 1314 MovieClip {editPanel} Frame 1Symbol 1291 EditableText
"xToY_btn"Symbol 1314 MovieClip {editPanel} Frame 1Symbol 1295 MovieClip
"yToX_btn"Symbol 1314 MovieClip {editPanel} Frame 1Symbol 1295 MovieClip
"dens_mc_"Symbol 1314 MovieClip {editPanel} Frame 1Symbol 1273 MovieClip {fl.controls.ComboBox}
"combo_world"Symbol 1314 MovieClip {editPanel} Frame 1Symbol 1273 MovieClip {fl.controls.ComboBox}
"del_btn_"Symbol 1314 MovieClip {editPanel} Frame 1Symbol 1300 Button
"fon_btn_"Symbol 1314 MovieClip {editPanel} Frame 1Symbol 1304 Button
"depthPlus_btn_"Symbol 1314 MovieClip {editPanel} Frame 1Symbol 1308 Button
"depthMinus_btn_"Symbol 1314 MovieClip {editPanel} Frame 1Symbol 1312 Button
"prop_txt_"Symbol 1314 MovieClip {editPanel} Frame 1Symbol 1313 EditableText
"mask_mc"Symbol 1316 MovieClip {electrcLine_copy} Frame 1Symbol 655 MovieClip
"inside_mc_"Symbol 1379 MovieClip {first_appearance_volt_clip} Frame 1Symbol 1378 MovieClip
"next_btn"Symbol 1379 MovieClip {first_appearance_volt_clip} Frame 1Symbol 147 MovieClip {myBtnBig}

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 11284 bytes "<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmln ..."

Labels

"РАДОСТЬ"Symbol 67 MovieClip Frame 1
"РАДОСТЬ"Symbol 108 MovieClip Frame 1
"РАДОСТЬ"Symbol 130 MovieClip Frame 1
"out"Symbol 204 MovieClip {sponsor_logo} Frame 1
"over"Symbol 204 MovieClip {sponsor_logo} Frame 2
"out"Symbol 208 MovieClip {sponsor_logo_hood} Frame 1
"over"Symbol 208 MovieClip {sponsor_logo_hood} Frame 2
"out"Symbol 213 MovieClip {hor_funflow_3} Frame 1
"over"Symbol 213 MovieClip {hor_funflow_3} Frame 2
"off"Symbol 263 MovieClip {ferryRed} Frame 1
"on"Symbol 263 MovieClip {ferryRed} Frame 2
"off"Symbol 268 MovieClip {ferryGreen} Frame 1
"on"Symbol 268 MovieClip {ferryGreen} Frame 2
"off"Symbol 273 MovieClip {ferryBlue} Frame 1
"on"Symbol 273 MovieClip {ferryBlue} Frame 2
"out"Symbol 287 MovieClip {sponsor_logo_mathdaily_big} Frame 1
"over"Symbol 287 MovieClip {sponsor_logo_mathdaily_big} Frame 2
"out"Symbol 292 MovieClip {sponsor_logo_mathdaily} Frame 1
"over"Symbol 292 MovieClip {sponsor_logo_mathdaily} Frame 2
"out"Symbol 297 MovieClip {sponsor_logo_mathdaily_small} Frame 1
"over"Symbol 297 MovieClip {sponsor_logo_mathdaily_small} Frame 2
"eternity"Symbol 361 MovieClip Frame 1
"pastDay"Symbol 361 MovieClip Frame 8
"pastWeek"Symbol 361 MovieClip Frame 16
"pastMonth"Symbol 361 MovieClip Frame 24
"pastYear"Symbol 361 MovieClip Frame 33
"thisDay"Symbol 361 MovieClip Frame 41
"thisWeek"Symbol 361 MovieClip Frame 48
"thisMonth"Symbol 361 MovieClip Frame 57
"thisYear"Symbol 361 MovieClip Frame 66
"loadingHighScores"Symbol 397 MovieClip {com.novelgames.flashgames.highscores.Status} Frame 1
"loadHighScoresFailed"Symbol 397 MovieClip {com.novelgames.flashgames.highscores.Status} Frame 16
"submittingScore"Symbol 397 MovieClip {com.novelgames.flashgames.highscores.Status} Frame 33
"submitScoreFailed"Symbol 397 MovieClip {com.novelgames.flashgames.highscores.Status} Frame 46
"sendingEmails"Symbol 397 MovieClip {com.novelgames.flashgames.highscores.Status} Frame 62
"sendEmailsFailed"Symbol 397 MovieClip {com.novelgames.flashgames.highscores.Status} Frame 75
"failed"Symbol 472 MovieClip Frame 1
"nameRejected"Symbol 472 MovieClip Frame 9
"loginFailed"Symbol 472 MovieClip Frame 21
"s_on"Symbol 549 MovieClip Frame 1
"s_off"Symbol 549 MovieClip Frame 2
"usual"Symbol 682 MovieClip {VoltConnectarmorgames_fla.volt_in_in1_199} Frame 1
"СТАТИЧНОЕ"Symbol 682 MovieClip {VoltConnectarmorgames_fla.volt_in_in1_199} Frame 1
"sad_begin"Symbol 682 MovieClip {VoltConnectarmorgames_fla.volt_in_in1_199} Frame 28
"sad"Symbol 682 MovieClip {VoltConnectarmorgames_fla.volt_in_in1_199} Frame 32
"ПЕЧАЛЬ"Symbol 682 MovieClip {VoltConnectarmorgames_fla.volt_in_in1_199} Frame 32
"sad_ending"Symbol 682 MovieClip {VoltConnectarmorgames_fla.volt_in_in1_199} Frame 48
"glad"Symbol 682 MovieClip {VoltConnectarmorgames_fla.volt_in_in1_199} Frame 52
"РАДОСТЬ"Symbol 682 MovieClip {VoltConnectarmorgames_fla.volt_in_in1_199} Frame 52
"glad"Symbol 686 MovieClip {VoltConnectarmorgames_fla.volt_in_in1_glad_206} Frame 1
"РАДОСТЬ"Symbol 686 MovieClip {VoltConnectarmorgames_fla.volt_in_in1_glad_206} Frame 1
"sad"Symbol 688 MovieClip {VoltConnectarmorgames_fla.volt_in_in1_sad_208} Frame 1
"ПЕЧАЛЬ"Symbol 688 MovieClip {VoltConnectarmorgames_fla.volt_in_in1_sad_208} Frame 1
"sad_ending"Symbol 688 MovieClip {VoltConnectarmorgames_fla.volt_in_in1_sad_208} Frame 17
"usual"Symbol 690 MovieClip {VoltConnectarmorgames_fla.volt_in_in1_usual_210} Frame 1
"СТАТИЧНОЕ"Symbol 690 MovieClip {VoltConnectarmorgames_fla.volt_in_in1_usual_210} Frame 1
"usual"Symbol 719 MovieClip {VoltConnectarmorgames_fla.volt_in_in2_212} Frame 1
"СТАТИЧНОЕ"Symbol 719 MovieClip {VoltConnectarmorgames_fla.volt_in_in2_212} Frame 1
"sad_begin"Symbol 719 MovieClip {VoltConnectarmorgames_fla.volt_in_in2_212} Frame 16
"sad"Symbol 719 MovieClip {VoltConnectarmorgames_fla.volt_in_in2_212} Frame 21
"ПЕЧАЛЬ"Symbol 719 MovieClip {VoltConnectarmorgames_fla.volt_in_in2_212} Frame 21
"sad_ending"Symbol 719 MovieClip {VoltConnectarmorgames_fla.volt_in_in2_212} Frame 38
"glad"Symbol 719 MovieClip {VoltConnectarmorgames_fla.volt_in_in2_212} Frame 43
"РАДОСТЬ"Symbol 719 MovieClip {VoltConnectarmorgames_fla.volt_in_in2_212} Frame 43
"glad"Symbol 722 MovieClip {VoltConnectarmorgames_fla.volt_in_in2_glad_222} Frame 1
"РАДОСТЬ"Symbol 722 MovieClip {VoltConnectarmorgames_fla.volt_in_in2_glad_222} Frame 1
"sad"Symbol 724 MovieClip {VoltConnectarmorgames_fla.volt_in_in2_sad_224} Frame 1
"ПЕЧАЛЬ"Symbol 724 MovieClip {VoltConnectarmorgames_fla.volt_in_in2_sad_224} Frame 1
"usual"Symbol 726 MovieClip {VoltConnectarmorgames_fla.volt_in_in2_usual_226} Frame 1
"СТАТИЧНОЕ"Symbol 726 MovieClip {VoltConnectarmorgames_fla.volt_in_in2_usual_226} Frame 1
"usual"Symbol 732 MovieClip {VoltConnectarmorgames_fla.volt_in_in3_228} Frame 1
"СТАТИЧНОЕ"Symbol 732 MovieClip {VoltConnectarmorgames_fla.volt_in_in3_228} Frame 1
"sad_begin"Symbol 732 MovieClip {VoltConnectarmorgames_fla.volt_in_in3_228} Frame 17
"sad"Symbol 732 MovieClip {VoltConnectarmorgames_fla.volt_in_in3_228} Frame 21
"ПЕЧАЛЬ"Symbol 732 MovieClip {VoltConnectarmorgames_fla.volt_in_in3_228} Frame 21
"sad_ending"Symbol 732 MovieClip {VoltConnectarmorgames_fla.volt_in_in3_228} Frame 34
"glad"Symbol 732 MovieClip {VoltConnectarmorgames_fla.volt_in_in3_228} Frame 38
"РАДОСТЬ"Symbol 732 MovieClip {VoltConnectarmorgames_fla.volt_in_in3_228} Frame 38
"glad"Symbol 735 MovieClip {VoltConnectarmorgames_fla.volt_in_in3_glad_233} Frame 1
"РАДОСТЬ"Symbol 735 MovieClip {VoltConnectarmorgames_fla.volt_in_in3_glad_233} Frame 1
"sad"Symbol 737 MovieClip {VoltConnectarmorgames_fla.volt_in_in3_sad_235} Frame 1
"ПЕЧАЛЬ"Symbol 737 MovieClip {VoltConnectarmorgames_fla.volt_in_in3_sad_235} Frame 1
"usual"Symbol 739 MovieClip {VoltConnectarmorgames_fla.volt_in_in3_usual_237} Frame 1
"СТАТИЧНОЕ"Symbol 739 MovieClip {VoltConnectarmorgames_fla.volt_in_in3_usual_237} Frame 1
"usual"Symbol 747 MovieClip {VoltConnectarmorgames_fla.volt_in_in4_239} Frame 1
"СТАТИЧНОЕ"Symbol 747 MovieClip {VoltConnectarmorgames_fla.volt_in_in4_239} Frame 1
"sad_begin"Symbol 747 MovieClip {VoltConnectarmorgames_fla.volt_in_in4_239} Frame 20
"sad"Symbol 747 MovieClip {VoltConnectarmorgames_fla.volt_in_in4_239} Frame 24
"ПЕЧАЛЬ"Symbol 747 MovieClip {VoltConnectarmorgames_fla.volt_in_in4_239} Frame 24
"sad_ending"Symbol 747 MovieClip {VoltConnectarmorgames_fla.volt_in_in4_239} Frame 36
"glad"Symbol 747 MovieClip {VoltConnectarmorgames_fla.volt_in_in4_239} Frame 40
"РАДОСТЬ"Symbol 747 MovieClip {VoltConnectarmorgames_fla.volt_in_in4_239} Frame 40
"glad"Symbol 750 MovieClip {VoltConnectarmorgames_fla.volt_in_in4_glad_246} Frame 1
"РАДОСТЬ"Symbol 750 MovieClip {VoltConnectarmorgames_fla.volt_in_in4_glad_246} Frame 1
"sad"Symbol 752 MovieClip {VoltConnectarmorgames_fla.volt_in_in4_sad_248} Frame 1
"ПЕЧАЛЬ"Symbol 752 MovieClip {VoltConnectarmorgames_fla.volt_in_in4_sad_248} Frame 1
"sad_ending"Symbol 752 MovieClip {VoltConnectarmorgames_fla.volt_in_in4_sad_248} Frame 13
"usual"Symbol 754 MovieClip {VoltConnectarmorgames_fla.volt_in_in4_usual_250} Frame 1
"СТАТИЧНОЕ"Symbol 754 MovieClip {VoltConnectarmorgames_fla.volt_in_in4_usual_250} Frame 1
"sad_begin"Symbol 754 MovieClip {VoltConnectarmorgames_fla.volt_in_in4_usual_250} Frame 20
"volt_in"Symbol 757 MovieClip {volt1} Frame 1
"volt_in"Symbol 758 MovieClip {volt2} Frame 1
"volt_in"Symbol 759 MovieClip {volt3} Frame 1
"volt_in"Symbol 761 MovieClip {volt4} Frame 1
"play_out"Symbol 848 MovieClip {button_pause} Frame 1
"play_over"Symbol 848 MovieClip {button_pause} Frame 2
"play_down"Symbol 848 MovieClip {button_pause} Frame 3
"stop_out"Symbol 848 MovieClip {button_pause} Frame 4
"stop_over"Symbol 848 MovieClip {button_pause} Frame 5
"stop_down"Symbol 848 MovieClip {button_pause} Frame 6
"qualityHigh"Symbol 857 MovieClip {VoltConnectarmorgames_fla.QualityButton_313} Frame 1
"open_level"Symbol 951 MovieClip {btLevel} Frame 1
"over_level"Symbol 951 MovieClip {btLevel} Frame 2
"close_level"Symbol 951 MovieClip {btLevel} Frame 3
"n_2"Symbol 1122 MovieClip Frame 1
"n_1"Symbol 1122 MovieClip Frame 2
"n_3"Symbol 1122 MovieClip Frame 3
"n_0"Symbol 1122 MovieClip Frame 4
"usual"Symbol 1336 MovieClip Frame 1
"СТАТИЧНОЕ"Symbol 1336 MovieClip Frame 1
"usual"Symbol 1354 MovieClip Frame 1
"СТАТИЧНОЕ"Symbol 1354 MovieClip Frame 1
"usual"Symbol 1364 MovieClip Frame 1
"СТАТИЧНОЕ"Symbol 1364 MovieClip Frame 1
"usual"Symbol 1376 MovieClip Frame 1
"СТАТИЧНОЕ"Symbol 1376 MovieClip Frame 1
"usual_frame"Symbol 1378 MovieClip Frame 1
"flying_frame"Symbol 1378 MovieClip Frame 2
"water_frame"Symbol 1378 MovieClip Frame 3
"sticking_frame"Symbol 1378 MovieClip Frame 4
"out"Symbol 1386 MovieClip {hor_funflow} Frame 1
"over"Symbol 1386 MovieClip {hor_funflow} Frame 2
"out"Symbol 1394 MovieClip {ver_funflow} Frame 1
"over"Symbol 1394 MovieClip {ver_funflow} Frame 2
"out"Symbol 1399 MovieClip {hor_funflow_2} Frame 1
"over"Symbol 1399 MovieClip {hor_funflow_2} Frame 2




https://swfchan.com/54/267883/info.shtml
Created: 9/6 -2026 09:35:51 Last modified: 9/6 -2026 09:35:51 Server time: 29/06 -2026 22:42:06